Lokalizace knihovny uživatelského rozhraní v aplikaci

Lokalizace je klíčem k vytváření produktů, které je možné používat po celém světě, a lidmi, kteří mluví různými jazyky. Knihovna uživatelského rozhraní Azure Communication Services poskytuje připravenou podporu pro některé jazyky a možnosti, jako je rtL (zprava doleva). Vývojáři mohou poskytnout své vlastní lokalizační soubory pro knihovnu uživatelského rozhraní.

V tomto článku se dozvíte, jak správně nastavit lokalizaci pomocí knihovny uživatelského rozhraní ve vaší aplikaci.

Požadavky

Nastavení lokalizace

Podrobnou dokumentaci a rychlé starty týkající se knihovny webového uživatelského rozhraní najdete v článku o obsahu knihovny webového uživatelského rozhraní.

Další informace najdete v tématu Lokalizace v knihovně webového uživatelského rozhraní.

Další informace najdete v opensourcové knihovně uživatelského rozhraní Androidu a vzorovém kódu aplikace.

Dostupné jazyky

Následující tabulka uvádí CallCompositeSupportedLocale ID pro předefinované překlady. Chcete-li lokalizovat složený objekt, předejte Locale objekt z CallCompositeSupportedLocale do CallCompositeLocalizationOptions možnosti do CallComposite.

Jazyk CallCompositeSupportedLocale
Arabština (Saúdská Arábie) CallCompositeSupportedLocale.AR_SA
němčina (Německo) CallCompositeSupportedLocale.DE_DE
English (US) CallCompositeSupportedLocale.EN_US
Angličtina (Velká Británie) CallCompositeSupportedLocale.EN_UK
španělština (Španělsko). CallCompositeSupportedLocale.ES_ES
Španělština CallCompositeSupportedLocale.ES
Finština (Finsko) CallCompositeSupportedLocale.FI_FI
francouzština (Francie) CallCompositeSupportedLocale.FR_FR
Francouzština CallCompositeSupportedLocale.FR
Hebrejština (Izrael) CallCompositeSupportedLocale.IW_IL
italština (Itálie) CallCompositeSupportedLocale.IT_IT
Italština CallCompositeSupportedLocale.IT
Japonština (Japonsko) CallCompositeSupportedLocale.JA_JP
Japonština CallCompositeSupportedLocale.JA
Korejština (Korea) CallCompositeSupportedLocale.KO_KR
Korejština CallCompositeSupportedLocale.KO
Holandština (Nizozemsko) CallCompositeSupportedLocale.NL_NL
Nizozemština CallCompositeSupportedLocale.NL
Norština (Bokmål) CallCompositeSupportedLocale.NB_NO
Polština (Polsko) CallCompositeSupportedLocale.PL_PL
Polština CallCompositeSupportedLocale.PL
Portugalština (Brazílie) CallCompositeSupportedLocale.PT_BR
Portugalština CallCompositeSupportedLocale.PT
Ruština (Rusko) CallCompositeSupportedLocale.RU_RU
Ruština CallCompositeSupportedLocale.RU
Švédština (Švédsko) CallCompositeSupportedLocale.SV_SE
Turečtina (Turecko) CallCompositeSupportedLocale.TR_TR
Turečtina CallCompositeSupportedLocale.TR
Čínština (zjednodušená) CallCompositeSupportedLocale.ZH_CN
Čínština (tradiční) CallCompositeSupportedLocale.ZH_TW
Čínština CallCompositeSupportedLocale.ZH

Zprostředkovatel lokalizace

CallCompositeLocalizationOptionsje obálka možností, která nastaví všechny řetězce pro součásti knihovny uživatelského rozhraní Androidu pomocí .CallCompositeSupportedLocale Ve výchozím nastavení používají všechny textové popisky anglické řetězce. Můžete použít CallCompositeLocalizationOptions k nastavení jiného jazyka předáním objektu Locale z CallCompositeSupportedLocale. Knihovna uživatelského rozhraní obsahuje sadu Locale objektů, které lze použít s komponentami uživatelského rozhraní a složenými komponentami.

Seznam objektů můžete získat Locale také pomocí statické funkce CallCompositeSupportedLocale.getSupportedLocales().

Snímek obrazovky znázorňující lokalizaci Androidu

Chcete-li použít CallCompositeLocalizationOptions, zadejte CallCompositeSupportedLocale a předejte ho .CallCompositeBuilder Následující příklad lokalizuje složené do francouzštiny.

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

Směr rozložení

Některé jazykové verze (například arabština a hebrejština) můžou potřebovat lokalizaci, aby měla rozložení se zápisem zprava doleva. Můžete zadat layoutDirection jako součást .CallCompositeLocalizationOptions Rozložení složeného souboru bude zrcadlené, ale text zůstane ve směru řetězce.

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
Snímek obrazovky s rozložením androidu zprava doleva Snímek obrazovky s rozložením Androidu zleva doprava

Přizpůsobení překladů

Překlady jazyka, které poskytujeme, můžete přizpůsobit dvěma možnostmi. Seznam lokalizačních klíčů můžete použít k přepsání konkrétního řetězce páru klíč/hodnota. Národní prostředí můžete zadat jako jeden z podporovaných jazyků. Pokud klíč není zadaný, vrátí se k podporovanému řetězci překladu. Pokud zadáte nepodporovaný jazyk, měli byste zadat překlady pro všechny klíče daného jazyka (pomocí string.xml souboru) a potom se vrátit k anglickým řetězcům, pokud není zadaný klíč.

Řekněme, že chcete, aby ovládací panel používal řetězce z národního prostředí angličtiny (USA), ale chcete změnit popisek tlačítka Připojit se k hovoru na Zahájit schůzku v zobrazení nastavení. Vytvořte string.xml soubor (nebo jiný název souboru) s dvojicí klíč/hodnota pro vybrané klíče, které chcete přepsat. Následující příklad přepíše klíč azure_communication_ui_calling_setup_view_button_join_call.

Snímek obrazovky znázorňující projekt nastavení lokalizace Androidu

Snímek obrazovky znázorňující ukázkový vlastní popisek pro Android

Další informace najdete v opensourcové knihovně uživatelského rozhraní iOS a ukázkovém kódu aplikace.

Rozpoznávání jazyka

Pokud vaše aplikace podporuje lokalizaci, zobrazí se knihovna uživatelského rozhraní na základě preferovaného jazyka uživatele, pokud je součástí dostupných jazyků uvedených v další části. V opačném případě se výchozí jazyk nastaví na předdefinované řetězce angličtiny (en).

Dostupné jazyky

V následující tabulce jsou uvedeny předběžné překlady pro locale. Pokud chcete složený soubor lokalizovat, předejte locale LocalizationOptions ho jako možnosti do CallComposite.

Jazyk SupportedLocale Identifikátor
Zjednodušená čínština zh zh
Zjednodušená čínština zhHans zh-Hans
Čínština, zjednodušená (pevninská Čína) zhHansCN zh-Hans-CN
Tradiční čínština zhHant zh-Hant
Čínština, tradiční (Tchaj-wan) zhHantTW zh-Hant-TW
Nizozemština nl nl
Holandština (Nizozemsko) nlNL nl-NL
Angličtina en en
Angličtina (Spojené království) enGB en-GB
Angličtina (Spojené státy) enUS en-US
Francouzština fr fr
francouzština (Francie) frFR fr-FR
Němčina de de
němčina (Německo) deDE de-DE
Italština it it
italština (Itálie) itIT it-IT
Japonština ja ja
Japonština (Japonsko) jaJP ja-JP
Korejština ko ko
Korejština (Jižní Korea) koKR ko-KR
Portugalština pt pt
Portugalština (Brazílie) ptBR pt-BR
Ruština ru ru
Ruština (Rusko) ruRU ru-RU
Španělština es es
španělština (Španělsko). esES es-ES
Turečtina tr tr
Turečtina (Turecko) trTR tr-TR

Seznam struktur můžete získat locale také pomocí statické funkce 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"]

LokalizaceOptions

LocalizationOptionsje obálka možností, která nastaví všechny řetězce pro součásti knihovny uživatelského rozhraní pomocí .locale Ve výchozím nastavení všechny textové popisky používají anglické (en) řetězce. Můžete použít LocalizationOptions k nastavení jiné locale struktury. Knihovna uživatelského rozhraní obsahuje sadu locale struktur, které lze použít s komponentami uživatelského rozhraní a složenými složkami.

Chcete-li použít LocalizationOptions, zadejte strukturu Swiftu locale (s kódem oblasti nebo bez ní) a předejte ji CallCompositeOptions. Následující příklad lokalizuje složené do francouzštiny pro Francii (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)

Snímek obrazovky znázorňující lokalizaci iOSu

Směr rozložení

Některé jazykové verze (například arabština a hebrejština) můžou potřebovat lokalizaci, aby měla rozložení se zápisem zprava doleva. Můžete zadat layoutDirection jako součást .LocalizationOptions Rozložení složeného souboru bude zrcadlené, ale text zůstane ve směru řetězce.

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)

Následující příklad ukazuje zrcadlení rozložení zprava doleva. Pokud nezadáte layoutDirection, nastaví se výchozí false nastavení (rozložení zleva doprava).

layoutDirection = .leftToRight (výchozí) layoutDirection = .rightToLeft
Snímek obrazovky znázorňující směr rozložení iOS zleva doprava Snímek obrazovky znázorňující směr rozložení iOS zprava doleva

Přizpůsobení překladů

Překlady jazyka, které poskytujeme, můžete přizpůsobit dvěma možnostmi. Pokud chcete přepsat určitý řetězec, můžete použít seznam lokalizačních klíčů pro pár klíč/hodnota. Jako jeden z podporovaných jazyků můžete zadat locale . Pokud klíč není zadaný, vrátí se k podporovanému řetězci překladu. Pokud zadáte nepodporovaný jazyk, měli byste zadat překlady pro všechny klíče daného jazyka (pomocí Localizable.strings souboru) a potom se vrátit k anglickým řetězcům, pokud není zadaný klíč.

Řekněme, že chcete, aby ovládací panel používal řetězce z národního prostředí angličtiny (USA), ale chcete změnit popisek tlačítka Připojit se k hovoru na Zahájit schůzku v zobrazení nastavení. Povolte lokalizaci v projektu pro locale instanci, kterou chcete přepsat. Vytvořte Localizable.strings soubor (nebo jiný název souboru s příponou .strings) s dvojicí klíč/hodnota pro vybrané klíče, které chcete přepsat. Následující příklad přepíše klíč AzureCommunicationUI.SetupView.Button.JoinCall.

Snímek obrazovky znázorňující projekt nastavení pro iOS

Snímek obrazovky znázorňující vlastní řetězec pro iOS

Chcete-li určit, že přepisujete pomocí Localizable.strings, vytvořte LocalizationOptions objekt, který chcete zadat locale a localizationFilename. Nebo když používáte locale inicializátor, podívá se na klíče jako Localizable.strings locale.collatorIdentifier na jazyk v projektu.

let localizationOptions = LocalizationOptions(locale: Locale(identifier: "fr"),
                                              localizableFilename: "Localizable")
let callCompositeOptions = CallCompositeOptions(localization: localizationOptions)
let callComposite = CallComposite(withOptions: callCompositeOptions)

Voiceover přístupnosti pro lokalizaci

Aby voiceover fungoval správně pro lokalizaci, ujistěte se, že je jazyk přidaný do lokalizací vaší aplikace. Voiceover pak zjistí, že aplikace podporuje jazyk zadaný LocalizationOptions pro locale. Vybere hlas řeči pro jazyk pomocí hlasu nalezeného v Nastavení> Accessibility>Speech na zařízení. Můžete ověřit, jestli je jazyk přidaný do projektu, jak je znázorněno v následujícím příkladu.

Snímek obrazovky znázorňující lokalizaci projektů Xcode pro iOS

Další kroky