Freigeben über


Lokalisieren der Benutzeroberflächenbibliothek in einer Anwendung

Lokalisierung ist ein Schlüssel zum Entwickeln von Produkten, die auf der ganzen Welt und von Personen verwendet werden können, die verschiedene Sprachen sprechen. Die Azure Communication Services-Benutzeroberflächenbibliothek enthält sofort einsatzbereite Unterstützung für einige Sprachen und Funktionen, z. B. von rechts nach links (RTL). Entwickler können ihre eigenen Lokalisierungsdateien für die Benutzeroberflächenbibliothek angeben.

In diesem Artikel erfahren Sie, wie Sie die Lokalisierung mithilfe der Benutzeroberflächenbibliothek in Ihrer Anwendung ordnungsgemäß einrichten.

Voraussetzungen

Einrichten der Lokalisierung

Eine ausführliche Dokumentation und Kurzanleitungen zur Webbenutzeroberflächenbibliothek finden Sie im Storybook zur Webbenutzeroberflächenbibliothek.

Weitere Informationen finden Sie unter Lokalisierung in der Webbenutzeroberflächenbibliothek.

Weitere Informationen finden Sie in der Open Source Android UI Library und im Beispielanwendungscode.

Verfügbare Sprachen

In der folgenden Tabelle sind CallCompositeSupportedLocale-IDs für sofort einsatzbereite Übersetzungen aufgeführt. Wenn Sie die zusammengesetzte Komponente lokalisieren möchten, übergeben Sie ein Locale-Objekt von CallCompositeSupportedLocale in CallCompositeLocalizationOptions als Optionen in CallComposite.

Sprache CallCompositeSupportedLocale
Arabisch (Saudi-Arabien) CallCompositeSupportedLocale.AR_SA
Deutsch (Deutschland) CallCompositeSupportedLocale.DE_DE
Englisch (USA) CallCompositeSupportedLocale.EN_US
English (UK) CallCompositeSupportedLocale.EN_UK
Spanisch (Spanien) CallCompositeSupportedLocale.ES_ES
Spanisch CallCompositeSupportedLocale.ES
Finnisch (Finnland) CallCompositeSupportedLocale.FI_FI
Französisch (Frankreich) CallCompositeSupportedLocale.FR_FR
Französisch CallCompositeSupportedLocale.FR
Hebräisch (Israel) CallCompositeSupportedLocale.IW_IL
Italienisch (Italien) CallCompositeSupportedLocale.IT_IT
Italienisch CallCompositeSupportedLocale.IT
Japanisch (Japan) CallCompositeSupportedLocale.JA_JP
Japanisch CallCompositeSupportedLocale.JA
Koreanisch (Korea) CallCompositeSupportedLocale.KO_KR
Koreanisch CallCompositeSupportedLocale.KO
Niederländisch (Niederlande) CallCompositeSupportedLocale.NL_NL
Niederländisch CallCompositeSupportedLocale.NL
Norwegisch (Bokmål) CallCompositeSupportedLocale.NB_NO
Polnisch (Polen) CallCompositeSupportedLocale.PL_PL
Polnisch CallCompositeSupportedLocale.PL
Portugiesisch (Brasilien) CallCompositeSupportedLocale.PT_BR
Portugiesisch CallCompositeSupportedLocale.PT
Russisch (Russische Föderation) CallCompositeSupportedLocale.RU_RU
Russisch CallCompositeSupportedLocale.RU
Schwedisch (Schweden) CallCompositeSupportedLocale.SV_SE
Türkisch (Türkei) CallCompositeSupportedLocale.TR_TR
Türkisch CallCompositeSupportedLocale.TR
Chinesisch (vereinfacht) CallCompositeSupportedLocale.ZH_CN
Chinesisch (traditionell) CallCompositeSupportedLocale.ZH_TW
Chinesisch CallCompositeSupportedLocale.ZH

Lokalisierungsanbieter

CallCompositeLocalizationOptions ist ein Optionswrapper, der alle Zeichenfolgen für Komponenten der Android-Benutzeroberflächenbibliothek mithilfe von CallCompositeSupportedLocale festlegt. Standardmäßig werden für alle Beschriftungen englische Zeichenfolgen verwendet. Sie können CallCompositeLocalizationOptions verwenden, um eine andere Sprache festzulegen, indem Sie ein Locale-Objekt aus CallCompositeSupportedLocale übergeben. Die Benutzeroberflächenbibliothek enthält bereits eine Reihe von Locale-Objekten, die mit den Benutzeroberflächenkomponenten und den zusammengesetzten Komponenten verwendet werden können.

Sie können auch eine Liste der Locale-Objekte mithilfe der statischen Funktion CallCompositeSupportedLocale.getSupportedLocales() abrufen.

Screenshot der Android-Lokalisierung

Wenn Sie CallCompositeLocalizationOptions verwenden möchten, geben Sie CallCompositeSupportedLocale an, und übergeben Sie es an CallCompositeBuilder. Im folgenden Beispiel wird die zusammengesetzte Komponente in Französisch lokalisiert.

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

Layoutausrichtung

Bestimmte Kulturen (z. B. Arabisch und Hebräisch) benötigen möglicherweise eine Lokalisierung mit Layout von rechts nach links. Sie können layoutDirection als Teil von CallCompositeLocalizationOptions angeben. Das Layout der zusammengesetzten Komponente wird gespiegelt, der Text verbleibt jedoch in der Richtung der Zeichenfolgen.

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
Screenshot des Android-Layouts von rechts nach links Screenshot des Android-Layouts von links nach rechts

Anpassen von Übersetzungen

Es gibt zwei Optionen, mit denen Sie die von uns bereitgestellten Sprachübersetzungen anpassen können. Sie können die Liste der Lokalisierungsschlüssel verwenden, um eine bestimmte Zeichenfolge für das Schlüssel-Wert-Paar zu überschreiben. Sie können das Gebietsschema als eine der unterstützten Sprachen angeben. Wenn kein Schlüssel angegeben wird, wird auf eine unterstützte Übersetzungszeichenfolge zurückgegriffen. Wenn Sie eine nicht unterstützte Sprache angegeben haben, sollten Sie (mithilfe der Datei string.xml) Übersetzungen für alle Schlüssel dieser Sprache bereitstellen und bei fehlenden Schlüsseln auf die englischen Zeichenfolgen zurückgreifen.

Angenommen, Sie möchten für die Steuerleiste Zeichenfolgen aus dem Gebietsschema „Englisch (Vereinigte Staaten)“ verwenden, aber die Bezeichnung der Schaltfläche Join Call in der Setupansicht in Start Meeting ändern. Erstellen Sie eine Datei string.xml (oder einen anderen Dateinamen) mit dem Schlüssel-Wert-Paar für ausgewählte Schlüssel, die Sie überschreiben möchten. Im folgenden Beispiel wird der Schlüssel azure_communication_ui_calling_setup_view_button_join_call überschrieben.

Screenshot: Setup des Android-Lokalisierungsprojekts

Screenshot der benutzerdefinierten Android-Beispielbezeichnung

Weitere Informationen finden Sie in der Open-Source-iOS-UI-Bibliothek und im Beispielanwendungscode.

Sprachenerkennung

Wenn Ihre Anwendung die Lokalisierung unterstützt, wird die Benutzeroberflächenbibliothek basierend auf der vom System bevorzugten Sprache des Benutzers angezeigt, wenn sie Teil der im nächsten Abschnitt aufgeführten verfügbaren Sprachen ist. Andernfalls werden standardmäßig die vordefinierten englischsprachigen Zeichenfolgen (en) verwendet.

Verfügbare Sprachen

In der folgenden Tabelle sind sofort einsatzbereite Übersetzungen für locale aufgeführt. Wenn Sie die zusammengesetzte Komponente lokalisieren möchten, übergeben Sie locale in LocalizationOptions als Optionen in CallComposite.

Sprache SupportedLocale Bezeichner
Chinesisch (vereinfacht) zh zh
Chinesisch (vereinfacht) zhHans zh-Hans
Chinesisch (Vereinfacht, China) zhHansCN zh-Hans-CN
Chinesisch (traditionell) zhHant zh-Hant
Chinesisch traditionell (Taiwan) zhHantTW zh-Hant-TW
Niederländisch nl nl
Niederländisch (Niederlande) nlNL nl-NL
Deutsch en en
Walisisch (Großbritannien) enGB en-GB
Englisch (USA) enUS en-US
Französisch fr fr
Französisch (Frankreich) frFR fr-FR
Deutsch de de
Deutsch (Deutschland) deDE de-DE
Italienisch it it
Italienisch (Italien) itIT it-IT
Japanisch ja ja
Japanisch (Japan) jaJP ja-JP
Koreanisch ko ko
Koreanisch (Südkorea) koKR ko-KR
Portugiesisch (Portugal) pt pt
Portugiesisch (Brasilien) ptBR pt-BR
Russisch ru ru
Russisch (Russische Föderation) ruRU ru-RU
Spanisch es es
Spanisch (Spanien) esES es-ES
Türkisch tr tr
Türkisch (Türkiye) trTR tr-TR

Sie können auch eine Liste der locale-Strukturen mithilfe der statischen Funktion SupportedLocale.values abrufen.

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 ist ein Optionswrapper, der alle Zeichenfolgen für Komponenten der Benutzeroberflächenbibliothek mithilfe von locale festlegt. Standardmäßig werden für alle Beschriftungen englische (en) Zeichenfolgen verwendet. Sie können LocalizationOptions verwenden, um eine andere locale-Struktur festzulegen. Die Benutzeroberflächenbibliothek enthält bereits eine Reihe von locale-Strukturen, die mit den Benutzeroberflächenkomponenten und den zusammengesetzten Komponenten verwendet werden können.

Wenn Sie LocalizationOptionsverwenden möchten, geben Sie eine Swift locale-Struktur (mit oder ohne Regionscode) an, und übergeben Sie sie an CallCompositeOptions. Im folgenden Beispiel wird die zusammengesetzte Komponente in Französisch für Frankreich (fr-FR) lokalisiert.

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

Screenshot der iOS-Lokalisierung

Layoutausrichtung

Bestimmte Kulturen (z. B. Arabisch und Hebräisch) benötigen möglicherweise eine Lokalisierung mit Layout von rechts nach links. Sie können layoutDirection als Teil von LocalizationOptions angeben. Das Layout der zusammengesetzten Komponente wird gespiegelt, der Text verbleibt jedoch in der Richtung der Zeichenfolgen.

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)

Das folgende Beispiel zeigt die Spiegelung des Layouts von rechts nach links. Wenn Sie layoutDirection nicht angeben, wird standardmäßig false (Links-nach-rechts-Layout) festgelegt.

layoutDirection = .leftToRight (Standard) layoutDirection = .rightToLeft
Screenshot einer iOS-Layoutausrichtung von links nach rechts Screenshot einer iOS-Layoutausrichtung von rechts nach links

Anpassen von Übersetzungen

Es gibt zwei Optionen, mit denen Sie die von uns bereitgestellten Sprachübersetzungen anpassen können. Sie können die Liste der Lokalisierungsschlüssel verwenden, um eine bestimmte Zeichenfolge für das Schlüssel-Wert-Paar zu überschreiben. Sie können locale als eine der unterstützten Sprachen angeben. Wenn kein Schlüssel angegeben wird, wird auf eine unterstützte Übersetzungszeichenfolge zurückgegriffen. Wenn Sie eine nicht unterstützte Sprache angegeben haben, sollten Sie (mithilfe der Datei Localizable.strings) Übersetzungen für alle Schlüssel dieser Sprache bereitstellen und bei fehlenden Schlüsseln auf die englischen Zeichenfolgen zurückgreifen.

Angenommen, Sie möchten für die Steuerleiste Zeichenfolgen aus dem Gebietsschema „Englisch (Vereinigte Staaten)“ verwenden, aber die Bezeichnung der Schaltfläche Join Call in der Setupansicht in Start Meeting ändern. Aktivieren Sie die Lokalisierung im Projekt für die locale-Instanz, die Sie überschreiben möchten. Erstellen Sie eine Datei Localizable.strings (oder einen anderen Dateinamen mit der Erweiterung .strings) mit dem Schlüssel-Wert-Paar für ausgewählte Schlüssel, die Sie überschreiben möchten. Im folgenden Beispiel wird der Schlüssel AzureCommunicationUI.SetupView.Button.JoinCall überschrieben.

Screenshot: Setup eines iOS-Projekts

Screenshot einer benutzerdefinierten iOS-Zeichenfolge

Um festzulegen, dass mit Localizable.strings überschrieben werden soll, erstellen Sie ein LocalizationOptions-Objekt, um locale und localizationFilename anzugeben. Falls Sie den locale-Initialisierer verwenden, sucht dieser nach Schlüssel in Localizable.strings für locale.collatorIdentifier als Sprache in Ihrem Projekt.

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

Barrierefreiheit bei VoiceOver für Lokalisierung

Damit VoiceOver ordnungsgemäß für eine Lokalisierung funktioniert, stellen Sie sicher, dass die Sprache in den Lokalisierungen Ihrer App hinzugefügt wird. VoiceOver erkennt dann, dass die App die in LocalizationOptions für localeangegebene Sprache unterstützt. Sie wählt die Sprachstimme für die Sprache anhand der Stimme aus, die sich unter Einstellungen>Barrierefreiheit>Spracherkennung auf dem Gerät befindet. Sie können überprüfen wie im folgenden Beispiel gezeigt, ob die Sprache zu Ihrem Projekt hinzugefügt wurde.

Screenshot der Xcode-Projektlokalisierungen unter iOS

Nächste Schritte