Lokalisera användargränssnittsbiblioteket i ett program
Lokalisering är en nyckel för att göra produkter som kan användas över hela världen och av personer som talar olika språk. Användargränssnittsbiblioteket för Azure Communication Services tillhandahåller inbyggt stöd för vissa språk och funktioner, till exempel höger till vänster (RTL). Utvecklare kan tillhandahålla egna lokaliseringsfiler för användargränssnittsbiblioteket.
I den här artikeln får du lära dig hur du konfigurerar lokalisering på rätt sätt med hjälp av användargränssnittsbiblioteket i ditt program.
Förutsättningar
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
- En distribuerad Communication Services-resurs. Skapa en Communication Services-resurs.
- En användaråtkomsttoken för att aktivera anropsklienten. Hämta en användaråtkomsttoken.
- Valfritt: Slutförande av snabbstarten för att komma igång med sammansatta gränssnittsbibliotek.
Konfigurera lokalisering
Detaljerad dokumentation och snabbstarter om webbgränssnittsbiblioteket finns i Storybook för webbgränssnittsbibliotek.
Mer information finns i Lokalisering i webbgränssnittsbiblioteket.
Mer information finns i Android UI-biblioteket med öppen källkod och exempelprogramkoden.
Tillgängliga språk
I följande tabell visas CallCompositeSupportedLocale
ID:t för färdiga översättningar. Om du vill lokalisera kompositen skickar du ett Locale
objekt från CallCompositeSupportedLocale
till CallCompositeLocalizationOptions
som alternativ till CallComposite
.
Språk | CallCompositeSupportedLocale |
---|---|
Arabiska (Saudiarabien) | CallCompositeSupportedLocale.AR_SA |
Tyska (Tyskland) | CallCompositeSupportedLocale.DE_DE |
English (US) | CallCompositeSupportedLocale.EN_US |
English (Storbritannien) | CallCompositeSupportedLocale.EN_UK |
Spanska (Spanien) | CallCompositeSupportedLocale.ES_ES |
Spanska | CallCompositeSupportedLocale.ES |
Finska (Finland) | CallCompositeSupportedLocale.FI_FI |
Franska (Frankrike) | CallCompositeSupportedLocale.FR_FR |
Franska | CallCompositeSupportedLocale.FR |
Hebreiska (Israel) | CallCompositeSupportedLocale.IW_IL |
Italienska (Italien) | CallCompositeSupportedLocale.IT_IT |
Italienska | CallCompositeSupportedLocale.IT |
Japanska (Japan) | CallCompositeSupportedLocale.JA_JP |
Japanska | CallCompositeSupportedLocale.JA |
Koreanska (Korea) | CallCompositeSupportedLocale.KO_KR |
Koreanska | CallCompositeSupportedLocale.KO |
Nederländska (Nederländerna) | CallCompositeSupportedLocale.NL_NL |
Nederländska | CallCompositeSupportedLocale.NL |
Norska (bokmål) | CallCompositeSupportedLocale.NB_NO |
Polska (Polen) | CallCompositeSupportedLocale.PL_PL |
Polska | CallCompositeSupportedLocale.PL |
Portugisiska (Brasilien) | CallCompositeSupportedLocale.PT_BR |
Portugisiska | CallCompositeSupportedLocale.PT |
Ryska (Ryssland) | CallCompositeSupportedLocale.RU_RU |
Ryska | CallCompositeSupportedLocale.RU |
Svenska (Sverige) | CallCompositeSupportedLocale.SV_SE |
Turkiska (Turkiet) | CallCompositeSupportedLocale.TR_TR |
Turkiska | CallCompositeSupportedLocale.TR |
Kinesiska (förenklad) | CallCompositeSupportedLocale.ZH_CN |
Kinesiska (traditionell) | CallCompositeSupportedLocale.ZH_TW |
Kinesiska | CallCompositeSupportedLocale.ZH |
Lokaliseringsprovider
CallCompositeLocalizationOptions
är en alternativomslutning som anger alla strängar för Android UI-bibliotekskomponenter med hjälp CallCompositeSupportedLocale
av . Som standard använder alla textetiketter engelska strängar. Du kan använda CallCompositeLocalizationOptions
för att ange ett annat språk genom att skicka ett Locale
objekt från CallCompositeSupportedLocale
. Användargränssnittsbiblioteket innehåller en uppsättning Locale
objekt som kan användas med gränssnittskomponenterna och kompositobjekten.
Du kan också hämta en lista över Locale
objekt med hjälp av den statiska funktionen CallCompositeSupportedLocale.getSupportedLocales()
.
Om du vill använda CallCompositeLocalizationOptions
anger CallCompositeSupportedLocale
och skickar du det till CallCompositeBuilder
. I följande exempel lokaliseras kompositen till franska.
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()
Layoutriktning
Vissa kulturer (till exempel arabiska och hebreiska) kan behöva lokalisering för att ha en layout från höger till vänster. Du kan ange layoutDirection
som en del av CallCompositeLocalizationOptions
. Layouten för den sammansatta kommer att speglas, men texten förblir i strängens riktning.
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 |
---|---|
Anpassa översättningar
Det finns två alternativ för att anpassa de språköversättningar som vi tillhandahåller. Du kan använda listan med lokaliseringsnycklar för att åsidosätta en viss sträng för nyckel/värde-paret. Du kan ange nationella inställningar som ett av de språk som stöds. När en nyckel inte tillhandahålls återgår den till en översättningssträng som stöds. Om du anger ett språk som inte stöds bör du ange översättningar för alla nycklar för det språket (med hjälp string.xml
av filen) och sedan återgå till engelska strängar när en nyckel inte har angetts.
Anta att du vill att kontrollfältet ska använda strängar från nationella inställningar för engelska (USA), men du vill ändra etiketten för knappen Anslut samtal till Starta möte i installationsvyn. Skapa en string.xml
fil (eller ett annat filnamn) med nyckel/värde-paret för valda nycklar som du vill åsidosätta. I följande exempel åsidosätts nyckeln azure_communication_ui_calling_setup_view_button_join_call
.
Mer information finns i iOS-användargränssnittsbiblioteket med öppen källkod och exempelprogramkoden.
Språkidentifiering
Om ditt program stöder lokalisering visas användargränssnittsbiblioteket baserat på användarens system föredragna språk om det är en del av de tillgängliga språken som anges i nästa avsnitt. Annars är språket standard för de fördefinierade engelska (en
) strängarna.
Tillgängliga språk
I följande tabell visas färdiga översättningar för locale
. Om du vill lokalisera kompositen skickar locale
du till LocalizationOptions
som alternativ i CallComposite
.
Språk | SupportedLocale | Identifierare |
---|---|---|
Kinesiska, förenklad | zh |
zh |
Kinesiska, förenklad | zhHans |
zh-Hans |
Kinesiska, förenklad (Kina fastland) | zhHansCN |
zh-Hans-CN |
Kinesiska, traditionell | zhHant |
zh-Hant |
Kinesiska, traditionell (Taiwan) | zhHantTW |
zh-Hant-TW |
Nederländska | nl |
nl |
Nederländska (Nederländerna) | nlNL |
nl-NL |
Engelska | en |
en |
Engelska (Storbritannien) | enGB |
en-GB |
Engelska (USA) | enUS |
en-US |
Franska | fr |
fr |
Franska (Frankrike) | frFR |
fr-FR |
Tyska | de |
de |
Tyska (Tyskland) | deDE |
de-DE |
Italienska | it |
it |
Italienska (Italien) | itIT |
it-IT |
Japanska | ja |
ja |
Japanska (Japan) | jaJP |
ja-JP |
Koreanska | ko |
ko |
Koreanska (Sydkorea) | koKR |
ko-KR |
Portugisiska | pt |
pt |
Portugisiska (Brasilien) | ptBR |
pt-BR |
Ryska | ru |
ru |
Ryska (Ryssland) | ruRU |
ru-RU |
Spanska | es |
es |
Spanska (Spanien) | esES |
es-ES |
Turkiska | tr |
tr |
Turkiska (Türkiye) | trTR |
tr-TR |
Du kan också hämta en lista över locale
strukturer med hjälp av den statiska funktionen SupportedLocale.values
.
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"]
LokaliseringAlternativ
LocalizationOptions
är en alternativomslutning som anger alla strängar för komponenter i användargränssnittsbiblioteket med hjälp locale
av . Som standard använder alla textetiketter engelska (en
) strängar. Du kan använda LocalizationOptions
för att ange en annan locale
struktur. Användargränssnittsbiblioteket innehåller en uppsättning locale
strukturer som kan användas med gränssnittskomponenterna och kompositerna.
Om du vill använda LocalizationOptions
anger du en Swift-struktur locale
(med eller utan regionkod) och skickar den till CallCompositeOptions
. I följande exempel lokaliseras kompositen till franska för Frankrike (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)
Layoutriktning
Vissa kulturer (till exempel arabiska och hebreiska) kan behöva lokalisering för att ha layout från höger till vänster. Du kan ange layoutDirection
som en del av LocalizationOptions
. Layouten för den sammansatta kommer att speglas, men texten förblir i strängens riktning.
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)
I följande exempel visas layoutspegling från höger till vänster. Om du inte anger layoutDirection
anger den som standard false
(vänster-till-höger-layout).
layoutDirection = .leftToRight (standard) |
layoutDirection = .rightToLeft |
---|---|
Anpassa översättningar
Det finns två alternativ för att anpassa de språköversättningar som vi tillhandahåller. Om du vill åsidosätta en viss sträng kan du använda listan med lokaliseringsnycklar för nyckel/värde-paret. Du kan ange locale
som ett av de språk som stöds. När en nyckel inte tillhandahålls återgår den till en översättningssträng som stöds. Om du anger ett språk som inte stöds bör du ange översättningar för alla nycklar för det språket (med hjälp Localizable.strings
av filen) och sedan återgå till engelska strängar när en nyckel inte har angetts.
Anta att du vill att kontrollfältet ska använda strängar från nationella inställningar för engelska (USA), men du vill ändra etiketten för knappen Anslut samtal till Starta möte i installationsvyn. Aktivera lokalisering i projektet för den locale
instans som du vill åsidosätta. Skapa en Localizable.strings
fil (eller ett annat filnamn med tillägget .strings
) med nyckel/värde-paret för valda nycklar som du vill åsidosätta. I följande exempel åsidosätts nyckeln AzureCommunicationUI.SetupView.Button.JoinCall
.
Om du vill ange att du åsidosätter med Localizable.strings
skapar du ett LocalizationOptions
objekt för att ange locale
och localizationFilename
. Eller när du använder locale
initieraren tittar den på nycklar i Localizable.strings
som locale.collatorIdentifier
språk i projektet.
let localizationOptions = LocalizationOptions(locale: Locale(identifier: "fr"),
localizableFilename: "Localizable")
let callCompositeOptions = CallCompositeOptions(localization: localizationOptions)
let callComposite = CallComposite(withOptions: callCompositeOptions)
Hjälpmedelsröst för lokalisering
För att voiceover ska fungera korrekt för en lokalisering kontrollerar du att språket läggs till i appens lokaliseringar. Voiceover identifierar sedan att appen stöder det språk som anges i LocalizationOptions
för locale
. Den väljer talrösten för språket med hjälp av rösten som finns i Inställningar> Accessibility>Speech på enheten. Du kan kontrollera att språket har lagts till i projektet, som du ser i följande exempel.