De UI-bibliotheek in een toepassing lokaliseren
Lokalisatie is een sleutel tot het maken van producten die overal ter wereld kunnen worden gebruikt en door mensen die verschillende talen spreken. De Ui-bibliotheek van Azure Communication Services biedt out-of-the-box-ondersteuning voor sommige talen en mogelijkheden, zoals van rechts naar links (RTL). Ontwikkelaars kunnen hun eigen lokalisatiebestanden voor de UI-bibliotheek bieden.
In dit artikel leert u hoe u lokalisatie correct instelt met behulp van de UI-bibliotheek in uw toepassing.
Vereisten
- Een Azure-account met een actief abonnement. Gratis een account maken
- Een geïmplementeerde Communication Services-resource. Een Communication Services-resource maken.
- Een gebruikerstoegangstoken om de aanroepclient in te schakelen. Een toegangstoken voor gebruikers ophalen.
- Optioneel: Voltooiing van de quickstart om aan de slag te gaan met ui-bibliotheekcompensies.
Lokalisatie instellen
Zie het artikelboek over de webgebruikersinterfacebibliotheek voor gedetailleerde documentatie en quickstarts over de webgebruikersinterfacebibliotheek.
Zie Lokalisatie in de webgebruikersinterfacebibliotheek voor meer informatie.
Zie de opensource-uibibliotheek voor Android en de voorbeeldtoepassingscode voor meer informatie.
Beschikbare talen
De volgende tabel bevat CallCompositeSupportedLocale
id's voor out-of-the-box vertalingen. Als u het samengestelde wilt lokaliseren, geeft u een Locale
object als CallCompositeLocalizationOptions
CallCompositeSupportedLocale
opties door in CallComposite
.
Taal | CallCompositeSupportedLocale |
---|---|
Arabisch (Saoedi-Arabië) | CallCompositeSupportedLocale.AR_SA |
Duits (Duitsland) | CallCompositeSupportedLocale.DE_DE |
English (US) | CallCompositeSupportedLocale.EN_US |
Engels (VK) | CallCompositeSupportedLocale.EN_UK |
Spaans (Spanje) | CallCompositeSupportedLocale.ES_ES |
Spaans | CallCompositeSupportedLocale.ES |
Fins (Finland) | CallCompositeSupportedLocale.FI_FI |
Frans (Frankrijk) | CallCompositeSupportedLocale.FR_FR |
Frans | CallCompositeSupportedLocale.FR |
Hebreeuws (Israël) | CallCompositeSupportedLocale.IW_IL |
Italiaans (Italië) | CallCompositeSupportedLocale.IT_IT |
Italiaans | CallCompositeSupportedLocale.IT |
Japans (Japan) | CallCompositeSupportedLocale.JA_JP |
Japans | CallCompositeSupportedLocale.JA |
Koreaans (Korea) | CallCompositeSupportedLocale.KO_KR |
Koreaans | CallCompositeSupportedLocale.KO |
Nederlands (Nederland) | CallCompositeSupportedLocale.NL_NL |
Nederlands | CallCompositeSupportedLocale.NL |
Noors (Bokmål) | CallCompositeSupportedLocale.NB_NO |
Pools (Polen) | CallCompositeSupportedLocale.PL_PL |
Pools | CallCompositeSupportedLocale.PL |
Portugees (Brazilië) | CallCompositeSupportedLocale.PT_BR |
Portugees | CallCompositeSupportedLocale.PT |
Russisch (Rusland) | CallCompositeSupportedLocale.RU_RU |
Russisch | CallCompositeSupportedLocale.RU |
Zweeds (Zweden) | CallCompositeSupportedLocale.SV_SE |
Turks (Turkije) | CallCompositeSupportedLocale.TR_TR |
Turks | CallCompositeSupportedLocale.TR |
Chinees (Vereenvoudigd) | CallCompositeSupportedLocale.ZH_CN |
Chinees (Traditioneel) | CallCompositeSupportedLocale.ZH_TW |
Chinees | CallCompositeSupportedLocale.ZH |
Lokalisatieprovider
CallCompositeLocalizationOptions
is een opties-wrapper waarmee alle tekenreeksen voor onderdelen van de Android UI-bibliotheek worden ingesteld met behulp van CallCompositeSupportedLocale
. Standaard gebruiken alle tekstlabels Engelse tekenreeksen. U kunt CallCompositeLocalizationOptions
een andere taal instellen door een Locale
object van CallCompositeSupportedLocale
. De UI-bibliotheek bevat standaard een set Locale
objecten die kunnen worden gebruikt met de ui-onderdelen en samengestelde onderdelen.
U kunt ook een lijst met objecten ophalen met behulp van Locale
de statische functie CallCompositeSupportedLocale.getSupportedLocales()
.
Als u wilt gebruiken CallCompositeLocalizationOptions
, geeft u CallCompositeSupportedLocale
deze op en geeft u deze door aan CallCompositeBuilder
. In het volgende voorbeeld wordt het samengestelde naar het Frans gelokaliseerd.
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()
Indelingsrichting
Bepaalde culturen (bijvoorbeeld Arabisch en Hebreeuws) hebben mogelijk lokalisatie nodig om een indeling van rechts naar links te hebben. U kunt opgeven layoutDirection
als onderdeel van CallCompositeLocalizationOptions
. De indeling van het samengestelde wordt gespiegeld, maar de tekst blijft in de richting van de tekenreeks.
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 |
---|---|
Vertalingen aanpassen
Er zijn twee opties voor het aanpassen van de taalvertalingen die we bieden. U kunt de lijst met lokalisatiesleutels gebruiken om een bepaalde tekenreeks voor het sleutel-/waardepaar te overschrijven. U kunt de landinstelling opgeven als een van de ondersteunde talen. Wanneer er geen sleutel wordt opgegeven, wordt deze teruggezet op een ondersteunde vertaalreeks. Als u een niet-ondersteunde taal opgeeft, moet u vertalingen opgeven voor alle sleutels voor die taal (met behulp van het string.xml
bestand) en vervolgens terugvallen op Engelse tekenreeksen wanneer er geen sleutel wordt opgegeven.
Stel dat u de besturingsbalk tekenreeksen wilt laten gebruiken uit de landinstelling Engels (VS), maar u wilt het label van de knop Deelnemen aan gesprek wijzigen in de installatieweergave om de vergadering te starten. Maak een string.xml
bestand (of een andere bestandsnaam) met het sleutel-/waardepaar voor geselecteerde sleutels die u wilt overschrijven. In het volgende voorbeeld wordt de sleutel azure_communication_ui_calling_setup_view_button_join_call
overschreven.
Zie de opensource iOS UI-bibliotheek en de voorbeeldtoepassingscode voor meer informatie.
Taaldetectie
Als uw toepassing lokalisatie ondersteunt, wordt de UI-bibliotheek weergegeven op basis van de taal van het systeem van de gebruiker als deze deel uitmaakt van de beschikbare talen die in de volgende sectie worden vermeld. Anders wordt de taal standaard ingesteld op de vooraf gedefinieerde Engelse (en
) tekenreeksen.
Beschikbare talen
De volgende tabel bevat out-of-the-box vertalingen voor locale
. Als u het samengestelde wilt lokaliseren, geeft locale
u de opties door in LocalizationOptions
CallComposite
.
Taal | SupportedLocale | Identificatie |
---|---|---|
Vereenvoudigd Chinees | zh |
zh |
Vereenvoudigd Chinees | zhHans |
zh-Hans |
Chinees, Vereenvoudigd (Vasteland van China) | zhHansCN |
zh-Hans-CN |
Traditioneel Chinees | zhHant |
zh-Hant |
Chinees, traditioneel (Taiwan) | zhHantTW |
zh-Hant-TW |
Nederlands | nl |
nl |
Nederlands (Nederland) | nlNL |
nl-NL |
Engels | en |
en |
Engels (Verenigd Koninkrijk) | enGB |
en-GB |
Engels (Verenigde Staten) | enUS |
en-US |
Frans | fr |
fr |
Frans (Frankrijk) | frFR |
fr-FR |
Duits | de |
de |
Duits (Duitsland) | deDE |
de-DE |
Italiaans | it |
it |
Italiaans (Italië) | itIT |
it-IT |
Japans | ja |
ja |
Japans (Japan) | jaJP |
ja-JP |
Koreaans | ko |
ko |
Koreaans (Zuid-Korea) | koKR |
ko-KR |
Portugees | pt |
pt |
Portugees (Brazilië) | ptBR |
pt-BR |
Russisch | ru |
ru |
Russisch (Rusland) | ruRU |
ru-RU |
Spaans | es |
es |
Spaans (Spanje) | esES |
es-ES |
Turks | tr |
tr |
Turks (Turkije) | trTR |
tr-TR |
U kunt ook een lijst met structuren ophalen met behulp van locale
de statische functie 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"]
LocalizationOptions
LocalizationOptions
is een opties-wrapper waarmee alle tekenreeksen voor ui-bibliotheekonderdelen worden ingesteld met behulp van locale
. Standaard gebruiken alle tekstlabels Engelse (en
) tekenreeksen. U kunt een LocalizationOptions
andere locale
structuur instellen. De UI-bibliotheek bevat standaard een set locale
structuren die kunnen worden gebruikt met de ui-onderdelen en samengestelde onderdelen.
Als u wilt gebruiken LocalizationOptions
, geeft u een Swift-structuur locale
(met of zonder regiocode) op en geeft u deze door aan CallCompositeOptions
. In het volgende voorbeeld wordt het samengestelde in het Frans voor Frankrijk (fr-FR
) gelokaliseerd.
// 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)
Indelingsrichting
Bepaalde culturen (bijvoorbeeld Arabisch en Hebreeuws) hebben mogelijk lokalisatie nodig om een indeling van rechts naar links te hebben. U kunt opgeven layoutDirection
als onderdeel van LocalizationOptions
. De indeling van het samengestelde wordt gespiegeld, maar de tekst blijft in de richting van de tekenreeks.
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)
In het volgende voorbeeld ziet u spiegeling van indeling van rechts naar links. Als u dit niet opgeeft layoutDirection
, wordt false
deze standaard ingesteld op (indeling van links naar rechts).
layoutDirection = .leftToRight (standaard) |
layoutDirection = .rightToLeft |
---|---|
Vertalingen aanpassen
Er zijn twee opties voor het aanpassen van de taalvertalingen die we bieden. Als u een bepaalde tekenreeks wilt overschrijven, kunt u de lijst met lokalisatiesleutels voor het sleutel-/waardepaar gebruiken. U kunt opgeven locale
als een van de ondersteunde talen. Wanneer er geen sleutel wordt opgegeven, valt deze terug op een ondersteunde vertaalreeks. Als u een niet-ondersteunde taal opgeeft, moet u vertalingen opgeven voor alle sleutels voor die taal (met behulp van het Localizable.strings
bestand) en vervolgens terugvallen op Engelse tekenreeksen wanneer er geen sleutel wordt opgegeven.
Stel dat u de besturingsbalk tekenreeksen wilt laten gebruiken uit de landinstelling Engels (VS), maar u wilt het label van de knop Deelnemen aan gesprek wijzigen in de installatieweergave om de vergadering te starten. Schakel lokalisatie in het project in voor het locale
exemplaar dat u wilt overschrijven. Maak een Localizable.strings
bestand (of een andere bestandsnaam met de extensie .strings
) met het sleutel-/waardepaar voor geselecteerde sleutels die u wilt overschrijven. In het volgende voorbeeld wordt de sleutel AzureCommunicationUI.SetupView.Button.JoinCall
overschreven.
Als u wilt opgeven dat u hiermee overschrijft Localizable.strings
, maakt u een LocalizationOptions
object dat u wilt opgeven locale
en localizationFilename
. Of wanneer u de locale
initialisatiefunctie gebruikt, kijkt deze naar sleutels Localizable.strings
voor locale.collatorIdentifier
als de taal in uw project.
let localizationOptions = LocalizationOptions(locale: Locale(identifier: "fr"),
localizableFilename: "Localizable")
let callCompositeOptions = CallCompositeOptions(localization: localizationOptions)
let callComposite = CallComposite(withOptions: callCompositeOptions)
Voice-over voor toegankelijkheid voor lokalisatie
Zorg ervoor dat voice-over goed werkt voor een lokalisatie of de taal is toegevoegd aan de lokalisaties van uw app. De voiceover detecteert vervolgens dat de app de taal ondersteunt die is opgegeven voor LocalizationOptions
locale
. Hiermee selecteert u de spraakstem voor de taal met behulp van de stem in Instellingen> Toegankelijkheidsspraak> op het apparaat. U kunt controleren of de taal is toegevoegd aan uw project, zoals wordt weergegeven in het volgende voorbeeld.