Freigeben über


Lokalisieren der UI-Bibliothek in einer Anwendung

Die Lokalisierung ist ein Schlüssel zur Herstellung von Produkten, die auf der ganzen Welt und von Personen verwendet werden können, die unterschiedliche Sprachen sprechen. Die Azure Communication Services UI Library bietet sofort einsatzbereite Unterstützung für einige Sprachen und Funktionen, z. B. von rechts nach links (RTL). Entwickler können eigene Lokalisierungsdateien für die UI-Bibliothek bereitstellen.

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

Voraussetzungen

Einrichten der Lokalisierung

Ausführliche Dokumentationen und Schnellstarts zur Web-UI-Bibliothek finden Sie im Web UI Library Storybook.

Weitere Informationen finden Sie unter Lokalisierung in der Web-UI-Bibliothek.

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

Verfügbare Sprachen

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

Language CallCompositeSupportedLocale
Arabisch (Saudi-Arabien) CallCompositeSupportedLocale.AR_SA
Deutsch (Deutschland) CallCompositeSupportedLocale.DE_DE
Englisch (USA) CallCompositeSupportedLocale.EN_US
Englisch (UK) CallCompositeSupportedLocale.EN_UK
Spanisch (Spanien) CallCompositeSupportedLocale.ES_ES
Spanish CallCompositeSupportedLocale.ES
Finnisch (Finnland) CallCompositeSupportedLocale.FI_FI
Französisch (Frankreich) CallCompositeSupportedLocale.FR_FR
French CallCompositeSupportedLocale.FR
Hebräisch (Israel) CallCompositeSupportedLocale.IW_IL
Italienisch (Italien) CallCompositeSupportedLocale.IT_IT
Italian CallCompositeSupportedLocale.IT
Japanisch (Japan) CallCompositeSupportedLocale.JA_JP
Japanese CallCompositeSupportedLocale.JA
Koreanisch (Korea) CallCompositeSupportedLocale.KO_KR
Korean CallCompositeSupportedLocale.KO
Niederländisch (Niederlande) CallCompositeSupportedLocale.NL_NL
Holländisch CallCompositeSupportedLocale.NL
Norwegisch (Bokmål) CallCompositeSupportedLocale.NB_NO
Polnisch (Polen) CallCompositeSupportedLocale.PL_PL
Polnisch CallCompositeSupportedLocale.PL
Portugiesisch (Brasilien) CallCompositeSupportedLocale.PT_BR
Portuguese CallCompositeSupportedLocale.PT
Russisch (Russische Föderation) CallCompositeSupportedLocale.RU_RU
Russian 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
Chinese CallCompositeSupportedLocale.ZH

Lokalisierungsanbieter

CallCompositeLocalizationOptions ist ein Optionswrapper, der alle Zeichenfolgen für Android UI Library-Komponenten mithilfe von CallCompositeSupportedLocale setzt. Standardmäßig verwenden alle Textbeschriftungen englische Zeichenfolgen. Sie können zum Festlegen einer anderen Sprache verwenden CallCompositeLocalizationOptions , indem Sie ein Locale Objekt aus CallCompositeSupportedLocaleübergeben. Standardmäßig enthält die Ui-Bibliothek eine Reihe von Locale Objekten, die mit den UI-Komponenten und Verbundelementen verwendet werden können.

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

Screenshot, der die Android-Lokalisierung zeigt.

Um CallCompositeLocalizationOptions zu verwenden, geben Sie CallCompositeSupportedLocale an und übergeben Sie es an CallCompositeBuilder. Im folgenden Beispiel wird die Komponente ins Französische 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()

Layoutrichtung

Bestimmte Kulturen (z. B. Arabisch und Hebräisch) benötigen möglicherweise eine Lokalisierung, um ein Layout von rechts nach links zu haben. 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 zum Anpassen der von uns bereitgestellten Sprachübersetzungen. Sie können die Liste der Lokalisierungsschlüssel verwenden, um eine bestimmte Zeichenfolge für das Schlüssel-Wert-Paar außer Kraft zu setzen. Sie können das Gebietsschema als eine der unterstützten Sprachen angeben. Wenn kein Schlüssel angegeben wird, wird er auf eine unterstützte Übersetzungszeichenfolge zurückfallen. Wenn Sie eine nicht unterstützte Sprache angeben, sollten Sie Übersetzungen für alle Schlüssel für diese Sprache (mithilfe der string.xml Datei) bereitstellen und dann auf englische Zeichenfolgen zurückgreifen, wenn kein Schlüssel angegeben wird.

Angenommen, Sie möchten, dass die Steuerelementleiste Zeichenfolgen aus dem Gebietsschema Englisch (USA) verwendet, aber Sie möchten die Bezeichnung der Schaltfläche " Anruf teilnehmen " in der Setupansicht in " Besprechung starten " ändern. Erstellen Sie eine string.xml Datei (oder einen anderen Dateinamen) mit dem Schlüssel-Wert-Paar für ausgewählte Schlüssel, die Sie außer Kraft setzen möchten. Im folgenden Beispiel wird der Schlüssel azure_communication_ui_calling_setup_view_button_join_callüberschrieben.

Screenshot des Android-Lokalisierungssetupprojekts.

Screenshot der benutzerdefinierten Android-Beispielbezeichnung

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

Spracherkennung

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 wird die Sprache standardmäßig auf die vordefinierten englischen (en) Zeichenfolgen festgelegt.

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.

Language SupportedLocale Kennung
Vereinfachtes Chinesisch zh zh
Vereinfachtes Chinesisch zhHans zh-Hans
Chinesisch, vereinfacht (Chinesisches Festland) zhHansCN zh-Hans-CN
Chinesisch-Traditionell zhHant zh-Hant
Chinesisch, traditionell (Taiwan) zhHantTW zh-Hant-TW
Holländisch nl nl
Niederländisch (Niederlande) nlNL nl-NL
English en en
Walisisch (Großbritannien) enGB en-GB
Englisch (Vereinigte Staaten) enUS en-US
French fr fr
Französisch (Frankreich) frFR fr-FR
German de de
Deutsch (Deutschland) deDE de-DE
Italian it it
Italienisch (Italien) itIT it-IT
Japanese ja ja
Japanisch (Japan) jaJP ja-JP
Korean ko ko
Koreanisch (Südkorea) koKR ko-KR
Portuguese pt pt
Portugiesisch (Brasilien) ptBR pt-BR
Russian ru ru
Russisch (Russische Föderation) ruRU ru-RU
Spanish es es
Spanisch (Spanien) esES es-ES
Türkisch tr tr
Türkisch (Türkiye) trTR tr-TR

Sie können auch eine Liste von Strukturen mithilfe der statischen Funktion localeSupportedLocale.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"]

Lokalisierungsoptionen

LocalizationOptions ist ein Optionswrapper, der alle Zeichenfolgen für Komponenten der Benutzeroberflächenbibliothek mithilfe von locale festlegt. Standardmäßig verwenden alle Textbeschriftungen englische (en) Zeichenfolgen. Sie können LocalizationOptions verwenden, um eine andere locale-Struktur festzulegen. Standardmäßig enthält die Ui-Bibliothek eine Reihe von locale Strukturen, die mit den UI-Komponenten und Verbundelementen verwendet werden können.

Geben Sie zur Verwendung LocalizationOptionseine Swift-Struktur locale (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 die iOS-Lokalisierung zeigt.

Layoutrichtung

Bestimmte Kulturen (z. B. Arabisch und Hebräisch) benötigen möglicherweise eine Lokalisierung, um das Layout von rechts nach links zu verwenden. 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 (Standardwert) layoutDirection = .rightToLeft
Screenshot, der eine iOS-Layoutrichtung von links nach rechts zeigt. Screenshot einer iOS-Layoutausrichtung von rechts nach links

Anpassen von Übersetzungen

Es gibt zwei Optionen zum Anpassen der von uns bereitgestellten Sprachübersetzungen. Um eine bestimmte Zeichenfolge außer Kraft zu setzen, können Sie die Liste der Lokalisierungsschlüssel für das Schlüssel-Wert-Paar verwenden. Sie können eine der unterstützten Sprachen angeben locale . Wenn kein Schlüssel angegeben wird, fällt er auf eine unterstützte Übersetzungszeichenfolge zurück. Wenn Sie eine nicht unterstützte Sprache angeben, sollten Sie Übersetzungen für alle Schlüssel für diese Sprache (mithilfe der Localizable.strings Datei) bereitstellen und dann auf englische Zeichenfolgen zurückgreifen, wenn kein Schlüssel angegeben wird.

Angenommen, Sie möchten, dass die Steuerelementleiste Zeichenfolgen aus dem Gebietsschema Englisch (USA) verwendet, aber Sie möchten die Bezeichnung der Schaltfläche " Anruf teilnehmen " in der Setupansicht in " Besprechung starten " ändern. Aktivieren Sie die Lokalisierung im Projekt für die locale Instanz, die Sie außer Kraft setzen möchten. Erstellen Sie eine Datei mit dem Namen Localizable.strings oder einen anderen Dateinamen mit der Erweiterung .strings, die das Schlüssel-Wert-Paar für ausgewählte Schlüssel enthält, die Sie überschreiben möchten. Im folgenden Beispiel wird der Schlüssel AzureCommunicationUI.SetupView.Button.JoinCallüberschrieben.

Screenshot eines iOS-Setupprojekts.

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-Voiceover zur Lokalisierung

Damit Voiceover ordnungsgemäß für eine Lokalisierung funktioniert, stellen Sie sicher, dass die Sprache in den Lokalisierungen Ihrer App hinzugefügt wird. Die Voiceover erkennt dann, dass die App die im 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, ob die Sprache zu Ihrem Projekt hinzugefügt wird, wie im folgenden Beispiel gezeigt.

Screenshot der Xcode-Projektlokalisierungen unter iOS

Nächste Schritte