Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
- Un recurso de Communication Services implementado. Creación de un recurso de Communication Services.
- Token de acceso de usuario para habilitar el cliente de llamada. Obtenga un token de acceso de usuario.
- Opcional: Finalización del inicio rápido para familiarizarse con los componentes de la biblioteca de interfaz de usuario.
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 .
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 |
|---|---|
|
|
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.
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)
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 |
|---|---|
|
|
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.
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.