Delen via


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

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

Schermopname van de lokalisatie van Android.

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
Schermopname van de indeling van rechts naar links van Android. Schermopname van de indeling van links naar rechts van Android.

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_calloverschreven.

Schermopname van het installatieproject voor Android-lokalisatie.

Schermopname van het aangepaste Android-voorbeeldlabel.

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)

Schermopname van iOS-lokalisatie.

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
Schermopname van een iOS-indelingsrichting van links naar rechts. Schermopname van een iOS-indelingsrichting van rechts naar links.

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.JoinCalloverschreven.

Schermopname van een iOS-installatieproject.

Schermopname van een aangepaste iOS-tekenreeks.

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.

Schermopname van projectlokalisaties voor iOS Xcode.

Volgende stappen