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
- Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.
- Eine bereitgestellte Communication Services-Ressource. Erstellen Sie eine Communication Services-Ressource.
- Ein Benutzerzugriffstoken zum Aktivieren des Anrufclients. Rufen Sie ein Benutzerzugriffstoken ab.
- Optional: Absolvieren Sie den Schnellstart Erste Schritte mit der Benutzeroberflächenbibliothek.
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.
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 |
---|---|
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.
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 LocalizationOptions
verwenden 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)
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 |
---|---|
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.
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 locale
angegebene 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.