Localizzare la libreria dell'interfaccia utente in un'applicazione
La localizzazione è una chiave per creare prodotti che possono essere usati in tutto il mondo e da persone che parlano lingue diverse. La libreria dell'interfaccia utente di Servizi di comunicazione di Azure offre supporto predefinito per alcune lingue e funzionalità, ad esempio da destra a sinistra (RTL). Gli sviluppatori possono fornire i propri file di localizzazione per la libreria dell'interfaccia utente.
Questo articolo illustra come configurare correttamente la localizzazione usando la libreria dell'interfaccia utente nell'applicazione.
Prerequisiti
- Un account Azure con una sottoscrizione attiva. Creare un account gratuitamente.
- Una risorsa di Servizi di comunicazione distribuita. Creare una risorsa di Servizi di comunicazione.
- Token di accesso utente per abilitare il client di chiamata. Ottenere un token di accesso utente.
- Facoltativo: completamento della guida introduttiva per iniziare a usare i compositi della libreria dell'interfaccia utente.
Configurare la localizzazione
Per la documentazione dettagliata e gli argomenti di avvio rapido sulla libreria dell'interfaccia utente Web, vedere il libro della raccolta dell'interfaccia utente Web.
Per altre informazioni, vedere Localizzazione nella libreria dell'interfaccia utente Web.
Per altre informazioni, vedere la libreria dell'interfaccia utente Android open source e il codice dell'applicazione di esempio.
Lingue disponibili
Nella tabella seguente sono elencati CallCompositeSupportedLocale
gli ID per le traduzioni predefinite. Se si vuole localizzare il composito, passare un Locale
oggetto da CallCompositeSupportedLocale
a come CallCompositeLocalizationOptions
opzioni in CallComposite
.
Lingua | CallCompositeSupportedLocale |
---|---|
Arabo (Arabia Saudita) | CallCompositeSupportedLocale.AR_SA |
Tedesco (Germania) | CallCompositeSupportedLocale.DE_DE |
Inglese (Stati Uniti) | CallCompositeSupportedLocale.EN_US |
Inglese (Regno Unito) | CallCompositeSupportedLocale.EN_UK |
Spagnolo (Spagna) | CallCompositeSupportedLocale.ES_ES |
Spagnolo | CallCompositeSupportedLocale.ES |
Finlandese (Finlandia) | CallCompositeSupportedLocale.FI_FI |
Francese (Francia) | CallCompositeSupportedLocale.FR_FR |
Francese | CallCompositeSupportedLocale.FR |
Ebraico (Israele) | CallCompositeSupportedLocale.IW_IL |
Italiano (Italia) | CallCompositeSupportedLocale.IT_IT |
Italiano | CallCompositeSupportedLocale.IT |
Giapponese (Giappone) | CallCompositeSupportedLocale.JA_JP |
Giapponese | CallCompositeSupportedLocale.JA |
Coreano (Corea) | CallCompositeSupportedLocale.KO_KR |
Coreano | CallCompositeSupportedLocale.KO |
Olandese (Paesi Bassi) | CallCompositeSupportedLocale.NL_NL |
Olandese | CallCompositeSupportedLocale.NL |
Norvegese (Bokmål) | CallCompositeSupportedLocale.NB_NO |
Polacco (Polonia) | CallCompositeSupportedLocale.PL_PL |
Polacco | CallCompositeSupportedLocale.PL |
Portoghese (Brasile) | CallCompositeSupportedLocale.PT_BR |
Portoghese | CallCompositeSupportedLocale.PT |
Russo (Russia) | CallCompositeSupportedLocale.RU_RU |
Russo | CallCompositeSupportedLocale.RU |
Svedese (Svezia) | CallCompositeSupportedLocale.SV_SE |
Turco (Turchia) | CallCompositeSupportedLocale.TR_TR |
Turco | CallCompositeSupportedLocale.TR |
Cinese semplificato | CallCompositeSupportedLocale.ZH_CN |
Cinese tradizionale | CallCompositeSupportedLocale.ZH_TW |
Cinese | CallCompositeSupportedLocale.ZH |
Provider di localizzazione
CallCompositeLocalizationOptions
è un wrapper di opzioni che imposta tutte le stringhe per i componenti della libreria dell'interfaccia utente Android usando CallCompositeSupportedLocale
. Per impostazione predefinita, tutte le etichette di testo usano stringhe in inglese. È possibile usare CallCompositeLocalizationOptions
per impostare una lingua diversa passando un Locale
oggetto da CallCompositeSupportedLocale
. La libreria dell'interfaccia utente include un set di Locale
oggetti utilizzabili con i componenti dell'interfaccia utente e i compositi.
È anche possibile ottenere un elenco di Locale
oggetti usando la funzione CallCompositeSupportedLocale.getSupportedLocales()
statica .
Per usare CallCompositeLocalizationOptions
, specificare CallCompositeSupportedLocale
e passarlo a CallCompositeBuilder
. Nell'esempio seguente la composizione viene localizzata in francese.
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()
Direzione layout
Alcune impostazioni cultura (ad esempio, arabo ed ebraico) potrebbero dover disporre di un layout da destra a sinistra. È possibile specificare layoutDirection
come parte di CallCompositeLocalizationOptions
. Il layout del composito verrà sottoposto a mirroring, ma il testo rimarrà nella direzione della stringa.
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 |
---|---|
Personalizzazione delle traduzioni
Sono disponibili due opzioni per personalizzare le traduzioni della lingua fornite. È possibile usare l'elenco delle chiavi di localizzazione per eseguire l'override di una determinata stringa per la coppia chiave/valore. È possibile specificare le impostazioni locali come una delle lingue supportate. Quando non viene specificata una chiave, verrà eseguito il fallback a una stringa di traduzione supportata. Se si specifica una lingua non supportata, è necessario fornire traduzioni per tutte le chiavi per tale lingua (usando il file) e quindi eseguire il string.xml
fallback alle stringhe in inglese quando non viene fornita una chiave.
Si supponga di voler usare le stringhe dalle impostazioni locali inglese (STATI UNITI), ma si vuole modificare l'etichetta del pulsante Partecipa alla chiamata a Avvia riunione nella visualizzazione configurazione. Creare un string.xml
file (o un altro nome file) con la coppia chiave/valore per le chiavi selezionate di cui si vuole eseguire l'override. Nell'esempio seguente viene eseguito l'override della chiave azure_communication_ui_calling_setup_view_button_join_call
.
Per altre informazioni, vedere la libreria dell'interfaccia utente iOS open source e il codice dell'applicazione di esempio.
Rilevamento lingua
Se l'applicazione supporta la localizzazione, la libreria dell'interfaccia utente viene visualizzata in base alla lingua preferita dal sistema dell'utente se fa parte delle lingue disponibili elencate nella sezione successiva. In caso contrario, per impostazione predefinita la lingua corrisponde alle stringhe predefinite in inglese (en
).
Lingue disponibili
Nella tabella seguente sono elencate le traduzioni predefinite per locale
. Se si vuole localizzare il composito, passare locale
come LocalizationOptions
opzioni in CallComposite
.
Lingua | SupportedLocale | Identificatore |
---|---|---|
Cinese semplificato | zh |
zh |
Cinese semplificato | zhHans |
zh-Hans |
Cinese semplificato (Cina continentale) | zhHansCN |
zh-Hans-CN |
Cinese tradizionale | zhHant |
zh-Hant |
Cinese, tradizionale (Taiwan) | zhHantTW |
zh-Hant-TW |
Olandese | nl |
nl |
Olandese (Paesi Bassi) | nlNL |
nl-NL |
italiano | en |
en |
Inglese (Regno Unito) | enGB |
en-GB |
Inglese (Stati Uniti) | enUS |
en-US |
Francese | fr |
fr |
Francese (Francia) | frFR |
fr-FR |
Tedesco | de |
de |
Tedesco (Germania) | deDE |
de-DE |
Italiano | it |
it |
Italiano (Italia) | itIT |
it-IT |
Giapponese | ja |
ja |
Giapponese (Giappone) | jaJP |
ja-JP |
Coreano | ko |
ko |
Coreano (Corea del Sud) | koKR |
ko-KR |
Portoghese | pt |
pt |
Portoghese (Brasile) | ptBR |
pt-BR |
Russo | ru |
ru |
Russo (Russia) | ruRU |
ru-RU |
Spagnolo | es |
es |
Spagnolo (Spagna) | esES |
es-ES |
Turco | tr |
tr |
Turco (Turchia) | trTR |
tr-TR |
È anche possibile ottenere un elenco di locale
strutture usando la funzione SupportedLocale.values
statica .
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"]
LocalizationOptions
LocalizationOptions
è un wrapper di opzioni che imposta tutte le stringhe per i componenti della libreria dell'interfaccia utente tramite locale
. Per impostazione predefinita, tutte le etichette di testo usano stringhe in inglese (en
). È possibile usare LocalizationOptions
per impostare una struttura diversa locale
. Per impostazione predefinita, la libreria dell'interfaccia utente include un set di locale
strutture utilizzabili con i componenti dell'interfaccia utente e i compositi.
Per usare LocalizationOptions
, specificare una struttura Swift locale
(con o senza codice di area) e passarla a CallCompositeOptions
. Nell'esempio seguente viene localizzato il composto in francese per la 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)
Direzione layout
Alcune impostazioni cultura (ad esempio, arabo ed ebraico) potrebbero dover disporre di un layout da destra a sinistra. È possibile specificare layoutDirection
come parte di LocalizationOptions
. Il layout del composito verrà sottoposto a mirroring, ma il testo rimarrà nella direzione della stringa.
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)
Nell'esempio seguente viene illustrato il mirroring del layout da destra a sinistra. Se non si specifica layoutDirection
, l'impostazione predefinita è false
(layout da sinistra a destra).
layoutDirection = .leftToRight (predefinito) |
layoutDirection = .rightToLeft |
---|---|
Personalizzazione delle traduzioni
Sono disponibili due opzioni per personalizzare le traduzioni della lingua fornite. Per eseguire l'override di una determinata stringa, è possibile usare l'elenco di chiavi di localizzazione per la coppia chiave/valore. È possibile specificare locale
come una delle lingue supportate. Quando non viene specificata una chiave, viene eseguito il fallback a una stringa di traduzione supportata. Se si specifica una lingua non supportata, è necessario fornire traduzioni per tutte le chiavi per tale lingua (usando il file) e quindi eseguire il Localizable.strings
fallback alle stringhe in inglese quando non viene fornita una chiave.
Si supponga di voler usare le stringhe dalle impostazioni locali inglese (STATI UNITI), ma si vuole modificare l'etichetta del pulsante Partecipa alla chiamata a Avvia riunione nella visualizzazione configurazione. Abilitare la localizzazione nel progetto per l'istanza di cui si vuole eseguire l'override locale
. Creare un Localizable.strings
file (o un altro nome di file con l'estensione .strings
) con la coppia chiave/valore per le chiavi selezionate di cui si vuole eseguire l'override. Nell'esempio seguente viene eseguito l'override della chiave AzureCommunicationUI.SetupView.Button.JoinCall
.
Per specificare che si esegue l'override con Localizable.strings
, creare un LocalizationOptions
oggetto per specificare locale
e localizationFilename
. In alternativa, quando si usa l'inizializzatore locale
, esamina le chiavi in Localizable.strings
come locale.collatorIdentifier
linguaggio nel progetto.
let localizationOptions = LocalizationOptions(locale: Locale(identifier: "fr"),
localizableFilename: "Localizable")
let callCompositeOptions = CallCompositeOptions(localization: localizationOptions)
let callComposite = CallComposite(withOptions: callCompositeOptions)
Voiceover di accessibilità per la localizzazione
Per il corretto funzionamento del voiceover per una localizzazione, assicurarsi che la lingua venga aggiunta nelle localizzazioni dell'app. Il voiceover rileva quindi che l'app supporta la lingua specificata in LocalizationOptions
per locale
. Seleziona la voce vocale per la lingua usando la voce presente in Impostazioni> Accessibility>Speech nel dispositivo. È possibile verificare che il linguaggio venga aggiunto al progetto, come illustrato nell'esempio seguente.