Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A localização é uma chave para a criação de produtos que podem ser usados em todo o mundo e por pessoas que falam idiomas diferentes. A Biblioteca de UI dos Serviços de Comunicação do Azure fornece suporte pronto para uso para alguns idiomas e funcionalidades, como da direita para a esquerda (RTL). Os desenvolvedores podem fornecer seus próprios arquivos de localização para a Biblioteca de Interface do Usuário.
Neste artigo, você aprenderá a configurar a localização corretamente usando a Biblioteca de Interface do Usuário em seu aplicativo.
Pré-requisitos
- Uma conta do Azure com uma assinatura ativa. Crie uma conta gratuitamente.
- Um recurso dos Serviços de Comunicação implantado. Crie um recurso dos Serviços de Comunicação.
- Um token de acesso do usuário para habilitar o cliente de chamada. Obtenha um token de acesso do usuário.
- Opcional: conclusão do início rápido para introdução aos compostos da Biblioteca de interface de UI.
Configurar localização
Para obter documentação detalhada e guias de início rápido sobre a Biblioteca de Interface do Usuário da Web, consulte o Storybook da Biblioteca de Interface do Usuário da Web.
Para saber mais, consulte Localização na Biblioteca de Interface do Usuário da Web.
Para obter mais informações, consulte a biblioteca de interface do usuário do Android de software livre e o código do aplicativo de exemplo.
Idiomas disponíveis
A tabela a seguir lista CallCompositeSupportedLocale IDs para traduções prontas para uso. Se você quiser localizar a composição, passe um objeto Locale de CallCompositeSupportedLocale para CallCompositeLocalizationOptions como opções em CallComposite.
| Linguagem | CallCompositeSupportedLocale |
|---|---|
| Árabe (Arábia Saudita) | CallCompositeSupportedLocale.AR_SA |
| Alemão (Alemanha) | CallCompositeSupportedLocale.DE_DE |
| Inglês (EUA) | CallCompositeSupportedLocale.EN_US |
| Inglês (Reino Unido) | CallCompositeSupportedLocale.EN_UK |
| Espanhol (Espanha) | CallCompositeSupportedLocale.ES_ES |
| Spanish | CallCompositeSupportedLocale.ES |
| Finlandês (Finlândia) | CallCompositeSupportedLocale.FI_FI |
| Francês (França) | CallCompositeSupportedLocale.FR_FR |
| French | CallCompositeSupportedLocale.FR |
| Hebraico (Israel) | CallCompositeSupportedLocale.IW_IL |
| Italiano (Itália) | CallCompositeSupportedLocale.IT_IT |
| Italian | CallCompositeSupportedLocale.IT |
| Japonês (Japão) | CallCompositeSupportedLocale.JA_JP |
| Japanese | CallCompositeSupportedLocale.JA |
| Coreano (Coreia do Sul) | CallCompositeSupportedLocale.KO_KR |
| Korean | CallCompositeSupportedLocale.KO |
| Holandês (Países Baixos) | CallCompositeSupportedLocale.NL_NL |
| Holandês | CallCompositeSupportedLocale.NL |
| Norueguês (Bokmål) | CallCompositeSupportedLocale.NB_NO |
| Polonês (Polônia) | CallCompositeSupportedLocale.PL_PL |
| Polonês | CallCompositeSupportedLocale.PL |
| Português (Brasil) | CallCompositeSupportedLocale.PT_BR |
| Portuguese | CallCompositeSupportedLocale.PT |
| Russo (Rússia) | CallCompositeSupportedLocale.RU_RU |
| Russian | CallCompositeSupportedLocale.RU |
| Sueco (Suécia) | CallCompositeSupportedLocale.SV_SE |
| Turco (Turquia) | CallCompositeSupportedLocale.TR_TR |
| Turco | CallCompositeSupportedLocale.TR |
| Chinês (simplificado) | CallCompositeSupportedLocale.ZH_CN |
| Chinês (Tradicional) | CallCompositeSupportedLocale.ZH_TW |
| Chinese | CallCompositeSupportedLocale.ZH |
Provedor de localização
CallCompositeLocalizationOptions é um wrapper de opções que define todas as cadeias de caracteres dos componentes da biblioteca de UI do Android usando CallCompositeSupportedLocale. Por padrão, todos os rótulos de texto usam cadeias de caracteres em inglês. Você pode usar CallCompositeLocalizationOptions para definir um idioma diferente passando um Locale objeto de CallCompositeSupportedLocale. Pronto para uso, a Biblioteca de UI inclui um conjunto de objetos Locale que podem ser usados com os componentes e compostos da UI.
Você também pode obter uma lista de Locale objetos usando a função CallCompositeSupportedLocale.getSupportedLocales()estática.
Para usar CallCompositeLocalizationOptions, especifique CallCompositeSupportedLocale e passe para CallCompositeBuilder. O exemplo a seguir adapta o composite para o 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()
Direção do layout
Certas culturas (por exemplo, árabe e hebraico) podem precisar de localização para ter um layout da direita para a esquerda. Você pode especificar layoutDirection como parte de CallCompositeLocalizationOptions. O layout do composto será espelhado, mas o texto permanecerá na direção da cadeia de caracteres.
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 |
|---|---|
|
|
Personalizando traduções
Há duas opções para personalizar as traduções de idioma que fornecemos. Você pode usar a lista de chaves de localização para substituir uma cadeia de caracteres específica para o par chave/valor. Você pode especificar a localidade como um dos idiomas com suporte. Quando uma chave não for fornecida, ela recorrerá a uma string de tradução disponível. Se você especificar um idioma sem suporte, deverá fornecer traduções para todas as chaves desse idioma (usando o string.xml arquivo) e, em seguida, voltar para cadeias de caracteres em inglês quando uma chave não for fornecida.
Digamos que você queira que a barra de controle use cadeias de caracteres da localidade em inglês (EUA), mas você deseja alterar o rótulo do botão Ingressar Chamada para Iniciar Reunião no modo de exibição de instalação. Crie um string.xml arquivo (ou outro nome de arquivo) com o par chave/valor para chaves selecionadas que você deseja substituir. O exemplo a seguir substitui a chave azure_communication_ui_calling_setup_view_button_join_call.
Para obter mais informações, consulte a biblioteca de interface do usuário do iOS de software livre e o código de aplicativo de exemplo.
Detecção de idioma
Se o aplicativo der suporte à localização, a Biblioteca de Interface do Usuário será exibida com base no idioma preferido do sistema do usuário se fizer parte dos idiomas disponíveis listados na próxima seção. Caso contrário, o idioma usa como padrão as cadeias de caracteres predefinidas em inglês (en).
Idiomas disponíveis
A tabela a seguir lista traduções prontas para uso para locale. Se você quiser localizar o composto, passe locale em LocalizationOptions como opções em CallComposite.
| Linguagem | LocalidadeSuportada | Identificador |
|---|---|---|
| Chinês simplificado | zh |
zh |
| Chinês simplificado | zhHans |
zh-Hans |
| Chinês, simplificado (china continental) | zhHansCN |
zh-Hans-CN |
| Chinês tradicional | zhHant |
zh-Hant |
| Chinês, Tradicional (Taiwan) | zhHantTW |
zh-Hant-TW |
| Holandês | nl |
nl |
| Holandês (Países Baixos) | 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 (França) | frFR |
fr-FR |
| German | de |
de |
| Alemão (Alemanha) | deDE |
de-DE |
| Italian | it |
it |
| Italiano (Itália) | itIT |
it-IT |
| Japanese | ja |
ja |
| Japonês (Japão) | jaJP |
ja-JP |
| Korean | ko |
ko |
| Coreano (Coreia do Sul) | koKR |
ko-KR |
| Portuguese | pt |
pt |
| Português (Brasil) | ptBR |
pt-BR |
| Russian | ru |
ru |
| Russo (Rússia) | ruRU |
ru-RU |
| Spanish | es |
es |
| Espanhol (Espanha) | esES |
es-ES |
| Turco | tr |
tr |
| Turco (Türkiye) | trTR |
tr-TR |
Você também pode obter uma lista de locale estruturas usando a função 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"]
OpçõesDeLocalização
LocalizationOptions é um wrapper de opções que define todas as cadeias de caracteres nos componentes da Biblioteca de UI usando locale. Por padrão, todos os rótulos de texto usam cadeias de caracteres em inglês (en). Você pode usar LocalizationOptions para definir uma estrutura diferente locale . Pronto para uso, a Biblioteca de UI inclui um conjunto de estruturas locale que podem ser usadas com os componentes e compostos da UI.
Para usar LocalizationOptions, especifique uma estrutura Swift locale (com ou sem um código de região) e passe-a para CallCompositeOptions. O exemplo a seguir localiza a composição em francês para a França (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)
Direção do layout
Certas culturas (por exemplo, árabe e hebraico) podem precisar de localização para ter layout da direita para a esquerda. Você pode especificar layoutDirection como parte de LocalizationOptions. O layout do composto será espelhado, mas o texto permanecerá na direção da cadeia de caracteres.
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)
O exemplo a seguir mostra o espelhamento do layout de direita para esquerda. Se você não especificar layoutDirection, ele será definido como false (layout da esquerda para a direita).
layoutDirection = .leftToRight (padrão) |
layoutDirection = .rightToLeft |
|---|---|
|
|
Personalizando traduções
Há duas opções para personalizar as traduções de idioma que fornecemos. Para substituir uma cadeia de caracteres específica, você pode usar a lista de chaves de localização para o par chave/valor. Você pode especificar locale como um dos idiomas com suporte. Quando uma chave não é fornecida, ela volta para uma string de tradução suportada. Se você especificar um idioma sem suporte, deverá fornecer traduções para todas as chaves desse idioma (usando o Localizable.strings arquivo) e, em seguida, voltar para cadeias de caracteres em inglês quando uma chave não for fornecida.
Digamos que você queira que a barra de controle use cadeias de caracteres da localidade em inglês (EUA), mas você deseja alterar o rótulo do botão Ingressar Chamada para Iniciar Reunião no modo de exibição de instalação. Habilite a localização no projeto para a instância locale que você deseja substituir. Crie um Localizable.strings arquivo (ou outro nome de arquivo com a extensão .strings) com o par chave/valor para chaves selecionadas que você deseja substituir. O exemplo a seguir substitui a chave AzureCommunicationUI.SetupView.Button.JoinCall.
Para especificar que você está substituindo Localizable.strings, crie um objeto LocalizationOptions para especificar locale e localizationFilename. Ou quando você está usando o locale inicializador, ele considera as chaves Localizable.strings para locale.collatorIdentifier como o idioma do seu projeto.
let localizationOptions = LocalizationOptions(locale: Locale(identifier: "fr"),
localizableFilename: "Localizable")
let callCompositeOptions = CallCompositeOptions(localization: localizationOptions)
let callComposite = CallComposite(withOptions: callCompositeOptions)
Voz sobreposta de acessibilidade para localização
Para que o voiceover funcione corretamente para uma localização, verifique se o idioma foi adicionado às localizações do aplicativo. A narração detecta então que o aplicativo suporta o idioma especificado em LocalizationOptions para locale. Ele seleciona a voz de fala para o idioma usando a voz encontrada em Configurações>Acessibilidade>Fala no dispositivo. Você pode verificar se o idioma foi adicionado ao seu projeto, conforme mostrado no exemplo a seguir.