Dela via


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

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 CallCompositeSupportedLocaleav . 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().

Skärmbild som visar Android-lokalisering.

Om du vill använda CallCompositeLocalizationOptionsanger 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
Skärmbild av android-layout från höger till vänster. Skärmbild av layouten från vänster till höger i Android.

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.

Skärmbild som visar konfigurationsprojektet för Android-lokalisering.

Skärmbild som visar den anpassade Android-exempeletiketten.

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 localeav . 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 LocalizationOptionsanger 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)

Skärmbild som visar iOS-lokalisering.

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 layoutDirectionanger den som standard false (vänster-till-höger-layout).

layoutDirection = .leftToRight (standard) layoutDirection = .rightToLeft
Skärmbild som visar en iOS-layoutriktning från vänster till höger. Skärmbild som visar en iOS-layoutriktning från höger till vänster.

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.

Skärmbild som visar ett iOS-konfigurationsprojekt.

Skärmbild som visar en anpassad iOS-sträng.

Om du vill ange att du åsidosätter med Localizable.stringsskapar 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.

Skärmbild som visar iOS Xcode-projektlokaliseringar.

Nästa steg