Compartir a través de


Localizar la biblioteca de interfaz de usuario en una aplicación

La localización es una clave para hacer productos que se pueden usar en todo el mundo y por personas que hablan diferentes idiomas. La biblioteca de interfaz de usuario de Azure Communication Services proporciona compatibilidad integrada con algunos lenguajes y funcionalidades, como derecha a izquierda (RTL). Los desarrolladores pueden proporcionar sus propios archivos de localización para la biblioteca de interfaz de usuario.

En este artículo, aprenderá a configurar la localización correctamente mediante la biblioteca de interfaz de usuario de la aplicación.

Prerrequisitos

Configurar la localización

Para obtener documentación detallada e inicios rápidos sobre la biblioteca de interfaz de usuario web, consulte el libro gráfico de la biblioteca de interfaz de usuario web.

Para obtener más información, consulte Localización en la biblioteca de interfaz de usuario web.

Para obtener más información, consulte la biblioteca de interfaz de usuario de Android de código abierto y el código de aplicación de ejemplo.

Idiomas disponibles

En la tabla siguiente se enumeran los CallCompositeSupportedLocale identificadores de las traducciones integradas. Si desea localizar la composición, pase un objeto Locale de CallCompositeSupportedLocale en CallCompositeLocalizationOptions como opciones en CallComposite.

Language CallCompositeSupportedLocale
Árabe (Arabia Saudí) CallCompositeSupportedLocale.AR_SA
Alemán (Alemania) CallCompositeSupportedLocale.DE_DE
Inglés (EE. UU.) CallCompositeSupportedLocale.EN_US
English (Reino Unido) CallCompositeSupportedLocale.EN_UK
Español (España) CallCompositeSupportedLocale.ES_ES
Spanish CallCompositeSupportedLocale.ES
Finés (Finlandia) CallCompositeSupportedLocale.FI_FI
Francés (Francia) CallCompositeSupportedLocale.FR_FR
French CallCompositeSupportedLocale.FR
Hebreo (Israel) CallCompositeSupportedLocale.IW_IL
Italiano (Italia) CallCompositeSupportedLocale.IT_IT
Italian CallCompositeSupportedLocale.IT
Japonés (Japón) CallCompositeSupportedLocale.JA_JP
Japanese CallCompositeSupportedLocale.JA
Coreano (Corea) CallCompositeSupportedLocale.KO_KR
Korean CallCompositeSupportedLocale.KO
Neerlandés (Países Bajos) CallCompositeSupportedLocale.NL_NL
Holandés CallCompositeSupportedLocale.NL
Noruego (bokmal) CallCompositeSupportedLocale.NB_NO
Polaco (Polonia) CallCompositeSupportedLocale.PL_PL
Polaco CallCompositeSupportedLocale.PL
Portugués (Brasil) CallCompositeSupportedLocale.PT_BR
Portuguese CallCompositeSupportedLocale.PT
Ruso (Rusia) CallCompositeSupportedLocale.RU_RU
Russian CallCompositeSupportedLocale.RU
Sueco (Suecia) CallCompositeSupportedLocale.SV_SE
Turco (Turquía) CallCompositeSupportedLocale.TR_TR
Turco CallCompositeSupportedLocale.TR
Chino (simplificado) CallCompositeSupportedLocale.ZH_CN
Chino (tradicional) CallCompositeSupportedLocale.ZH_TW
Chinese CallCompositeSupportedLocale.ZH

Proveedor de localización

CallCompositeLocalizationOptions es un contenedor de opciones que establece todas las cadenas para los componentes de la biblioteca de interfaz de usuario de Android mediante CallCompositeSupportedLocale. De forma predeterminada, todas las etiquetas de texto usan cadenas en inglés. Puede usar CallCompositeLocalizationOptions para establecer un idioma diferente pasando un Locale objeto de CallCompositeSupportedLocale. Lista para usar, la biblioteca de interfaz de usuario incluye un conjunto de Locale objetos que se pueden usar con los componentes y compuestos de la interfaz de usuario.

También puede obtener una lista de Locale objetos mediante la función CallCompositeSupportedLocale.getSupportedLocales()estática .

Captura de pantalla que muestra la localización de Android.

Para usar CallCompositeLocalizationOptions, especifique CallCompositeSupportedLocale y páselo a CallCompositeBuilder. En el ejemplo siguiente se localiza el compuesto en francés.

import com.azure.android.communication.ui.calling.models.CallCompositeLocalizationOptions
import com.azure.android.communication.ui.calling.models.CallCompositeSupportedLocale

// CallCompositeSupportedLocale provides a list of supported locales
val callComposite: CallComposite =
            CallCompositeBuilder().localization(
                CallCompositeLocalizationOptions(CallCompositeSupportedLocale.FR)
            ).build()

Dirección del diseño

Ciertas culturas (por ejemplo, árabe y hebreo) pueden necesitar ser localizadas para adoptar una disposición de derecha a izquierda. Puede especificar layoutDirection como parte de CallCompositeLocalizationOptions. El diseño de la composición se reflejará, pero el texto permanecerá en la dirección de la cadena.

import com.azure.android.communication.ui.calling.models.CallCompositeLocalizationOptions
import com.azure.android.communication.ui.calling.models.CallCompositeSupportedLocale

// CallCompositeSupportedLocale provides a list of supported locales
val callComposite: CallComposite =
            CallCompositeBuilder().localization(
                CallCompositeLocalizationOptions(CallCompositeSupportedLocale.FR, LayoutDirection.LTR)
            ).build()
LayoutDirection.RTL LayoutDirection.LTR
Captura de pantalla del diseño de derecha a izquierda de Android. Captura de pantalla del diseño de izquierda a derecha de Android.

Personalización de traducciones

Hay dos opciones para personalizar las traducciones de idioma que proporcionamos. Puede usar la lista de claves de localización para invalidar una cadena determinada para el par clave-valor. Puede especificar la configuración regional como uno de los idiomas admitidos. Cuando no se proporciona una clave, se revertirá a una cadena de traducción admitida. Si especifica un idioma no admitido, debe proporcionar traducciones para todas las claves de ese idioma (mediante el string.xml archivo) y, a continuación, revertir a cadenas en inglés cuando no se proporciona una clave.

Supongamos que quiere que la barra de control use cadenas de la configuración regional de inglés (EE. UU.), pero quiere cambiar la etiqueta del botón Unirse a la llamada a Iniciar reunión en la vista de configuración. Cree un string.xml archivo (u otro nombre de archivo) con el par clave-valor para las claves seleccionadas que desea invalidar. En el ejemplo siguiente se invalida la clave azure_communication_ui_calling_setup_view_button_join_call.

Captura de pantalla que muestra el proyecto de configuración de localización de Android.

Captura de pantalla que muestra la etiqueta personalizada de ejemplo de Android.

Para obtener más información, consulte la biblioteca de interfaz de usuario de iOS de código abierto y el código de aplicación de ejemplo.

Detección de idioma

Si la aplicación admite la localización, la biblioteca de interfaz de usuario se muestra en función del idioma preferido por el sistema del usuario si forma parte de los idiomas disponibles enumerados en la sección siguiente. De lo contrario, el idioma tiene como valor predeterminado las cadenas predefinidas en inglés (en).

Idiomas disponibles

En la tabla siguiente se enumeran las traducciones listas para usar para locale. Si desea localizar el compuesto, pase locale en LocalizationOptions como opciones en CallComposite.

Language SupportedLocale Identificador
Chino simplificado zh zh
Chino simplificado zhHans zh-Hans
Chino simplificado (China continental) zhHansCN zh-Hans-CN
Chino tradicional zhHant zh-Hant
Chino, tradicional (Taiwán) zhHantTW zh-Hant-TW
Holandés nl nl
Neerlandés (Países Bajos) nlNL nl-NL
Inglés en en
Inglés (Reino Unido) enGB en-GB
Inglés (Estados Unidos) enUS en-US
French fr fr
Francés (Francia) frFR fr-FR
German de de
Alemán (Alemania) deDE de-DE
Italian it it
Italiano (Italia) itIT it-IT
Japanese ja ja
Japonés (Japón) jaJP ja-JP
Korean ko ko
Coreano (Corea del Sur) koKR ko-KR
Portuguese pt pt
Portugués (Brasil) ptBR pt-BR
Russian ru ru
Ruso (Rusia) ruRU ru-RU
Spanish es es
Español (España) esES es-ES
Turco tr tr
Turco (Turquía) trTR tr-TR

También puede obtener una lista de locale estructuras mediante la función SupportedLocale.valuesestática .

let locales: [Locale] = SupportedLocale.values.map{ $0.identifier }
print(locales)

// ["de", "de-DE", "en", "en-GB", "en-US", "es", "es-ES", "fr", "fr-FR", "it", "it-IT", "ja", "ja-JP", "ko", "ko-KR", "nl", "nl-NL", "pt", "pt-BR", "ru", "ru-RU", "tr", "tr-TR", "zh", "zh-Hans", "zh-Hans-CN", "zh-Hant", "zh-Hant-TW"]

Opciones de localización

LocalizationOptions es un contenedor de opciones que establece todas las cadenas para los componentes de la biblioteca de interfaz de usuario mediante locale. De forma predeterminada, todas las etiquetas de texto usan cadenas en inglés (en). Puede usar LocalizationOptions para establecer una estructura diferente locale . Lista para usar, la biblioteca de interfaz de usuario incluye un conjunto de locale estructuras que se pueden usar con los componentes y compuestos de la interfaz de usuario.

Para usar LocalizationOptions, especifique una estructura swift locale (con o sin código de región) y pásela a CallCompositeOptions. En el ejemplo siguiente se localiza el compuesto en francés para Francia (fr-FR).

// Creating a Swift locale structure
var localizationOptions = LocalizationOptions(locale: Locale(identifier: "fr-FR"))

// Use IntelliSense SupportedLocale to get supported locale structures
localizationOptions = LocalizationOptions(locale: SupportedLocale.frFR)

let callCompositeOptions = CallCompositeOptions(localization: localizationOptions)
let callComposite = CallComposite(withOptions: callCompositeOptions)

Captura de pantalla que muestra la localización de iOS.

Dirección del diseño

Ciertas culturas (por ejemplo, el árabe y el hebreo) pueden necesitar localización para un diseño de derecha a izquierda. Puede especificar layoutDirection como parte de LocalizationOptions. El diseño de la composición se reflejará, pero el texto permanecerá en la dirección de la cadena.

var localizationOptions: LocalizationOptions

// Initializer with locale and layoutDirection
localizationOptions = LocalizationOptions(locale: Locale(identifier: "en"),
                                          layoutDirection: .rightToLeft)

// Initializer with locale, localizableFilename, and layoutDirection
localizationOptions = LocalizationOptions(locale: Locale(identifier: "en"),
                                          localizableFilename: "Localizable",
                                          layoutDirection: .rightToLeft)

// Add localizationOptions as an option
let callCompositeOptions = CallCompositeOptions(localization: localizationOptions)
let callComposite = CallComposite(withOptions: callCompositeOptions)

En el ejemplo siguiente se muestra el reflejo del diseño de derecha a izquierda. Si no especifica layoutDirection, el valor predeterminado es false (diseño de izquierda a derecha).

layoutDirection = .leftToRight (valor predeterminado) layoutDirection = .rightToLeft
Captura de pantalla que muestra una dirección de diseño de iOS de izquierda a derecha. Captura de pantalla que muestra una dirección de diseño de iOS de derecha a izquierda.

Personalización de traducciones

Hay dos opciones para personalizar las traducciones de idioma que proporcionamos. Para invalidar una cadena determinada, puede usar la lista de claves de localización para el par clave-valor. Puede especificar locale como uno de los idiomas admitidos. Cuando no se proporciona una clave, vuelve a una cadena de traducción admitida. Si especifica un idioma no admitido, debe proporcionar traducciones para todas las claves de ese idioma (mediante el Localizable.strings archivo) y, a continuación, revertir a cadenas en inglés cuando no se proporciona una clave.

Supongamos que quiere que la barra de control use cadenas de la configuración regional de inglés (EE. UU.), pero quiere cambiar la etiqueta del botón Unirse a la llamada a Iniciar reunión en la vista de configuración. Habilite la configuración regional en el proyecto para la instancia locale que desea sobrescribir. Cree un Localizable.strings archivo (u otro nombre de archivo con la extensión .strings) con el par clave-valor para las claves seleccionadas que desea invalidar. En el ejemplo siguiente se invalida la clave AzureCommunicationUI.SetupView.Button.JoinCall.

Captura de pantalla que muestra un proyecto de instalación de iOS.

Captura de pantalla que muestra una cadena personalizada de iOS.

Para especificar que está reemplazando con Localizable.strings, cree un objeto LocalizationOptions para especificar locale y localizationFilename. O cuando se usa el inicializador de locale, examina las claves de Localizable.strings para locale.collatorIdentifier como lenguaje del proyecto.

let localizationOptions = LocalizationOptions(locale: Locale(identifier: "fr"),
                                              localizableFilename: "Localizable")
let callCompositeOptions = CallCompositeOptions(localization: localizationOptions)
let callComposite = CallComposite(withOptions: callCompositeOptions)

VoiceOver de accesibilidad para la localización

Para que la narración por voz funcione correctamente en una localización, asegúrese de que el idioma se ha agregado a las localizaciones de la aplicación. Después, la voiceover detecta que la aplicación admite el idioma especificado en LocalizationOptions para locale. Selecciona la voz de habla para el idioma mediante la voz encontrada en Configuración>Accesibilidad>Voz en el dispositivo. Puede comprobar que el lenguaje se agrega al proyecto, como se muestra en el ejemplo siguiente.

Captura de pantalla que muestra las localización del proyecto de Xcode de iOS.

Pasos siguientes