Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Lokalizacja jest kluczem do tworzenia produktów, które mogą być używane na całym świecie i przez ludzi, którzy mówią w różnych językach. Biblioteka interfejsu użytkownika Azure Communication Services zapewnia domyślną obsługę niektórych języków i funkcji, takich jak od prawej do lewej (RTL). Deweloperzy mogą udostępniać własne pliki lokalizacji dla biblioteki interfejsu użytkownika.
Z tego artykułu dowiesz się, jak poprawnie skonfigurować lokalizację przy użyciu biblioteki interfejsu użytkownika w aplikacji.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
- Wdrożony zasób usług łączności. Utwórz zasób usług komunikacyjnych.
- Token dostępu użytkownika umożliwiający uruchomienie klienta do wywołań. Uzyskiwanie tokenu dostępu użytkownika.
- Opcjonalnie: ukończenie przewodnika szybkiego startu dotyczącego pracy z bibliotekami kompozytów interfejsu użytkownika.
Konfigurowanie lokalizacji
Aby uzyskać szczegółową dokumentację i szybkie starty dotyczące biblioteki interfejsu użytkownika Web, zobacz Web UI Library Storybook.
Aby dowiedzieć się więcej, zobacz Lokalizacja w bibliotece interfejsu użytkownika sieci Web.
Aby uzyskać więcej informacji, zobacz bibliotekę interfejsu użytkownika systemu Android typu open source i przykładowy kod aplikacji.
Dostępne języki
W poniższej tabeli wymieniono CallCompositeSupportedLocale identyfikatory tłumaczeń standardowych. Jeśli chcesz zlokalizować kompozyt, przekaż obiekt Locale z CallCompositeSupportedLocale do CallCompositeLocalizationOptions jako opcje do CallComposite.
| Język | Obsługiwana Lokalizacja Call Composite |
|---|---|
| Arabski (Arabia Saudyjska) | CallCompositeSupportedLocale.AR_SA |
| Niemiecki (Niemcy) | CallCompositeSupportedLocale.DE_DE |
| Język angielski (USA) | CallCompositeSupportedLocale.EN_US |
| Angielski (Wielka Brytania) | CallCompositeSupportedLocale.EN_UK |
| Hiszpański (Hiszpania) | CallCompositeSupportedLocale.ES_ES |
| Hiszpański | CallCompositeSupportedLocale.ES |
| Fiński (Finlandia) | CallCompositeSupportedLocale.FI_FI |
| Francuski (Francja) | CallCompositeSupportedLocale.FR_FR |
| Francuski | CallCompositeSupportedLocale.FR |
| Hebrajski (Izrael) | CallCompositeSupportedLocale.IW_IL |
| Włoski (Włochy) | CallCompositeSupportedLocale.IT_IT |
| Włoski | CallCompositeSupportedLocale.IT |
| Japoński (Japonia) | CallCompositeSupportedLocale.JA_JP |
| Japoński | CallCompositeSupportedLocale.JA |
| Koreański (Korea) | CallCompositeSupportedLocale.KO_KR |
| Koreański | CallCompositeSupportedLocale.KO |
| Niderlandzki (Holandia) | CallCompositeSupportedLocale.NL_NL |
| Holenderski | CallCompositeSupportedLocale.NL |
| norweski (Bokmål) | CallCompositeSupportedLocale.NB_NO |
| Język polski (Polska) | CallCompositeSupportedLocale.PL_PL |
| Polski | CallCompositeSupportedLocale.PL |
| Portugalski (Brazylia) | CallCompositeSupportedLocale.PT_BR |
| Portugalski | CallCompositeSupportedLocale.PT |
| Rosyjski (Rosja) | CallCompositeSupportedLocale.RU_RU |
| Rosyjski | CallCompositeSupportedLocale.RU |
| Szwedzki (Szwecja) | CallCompositeSupportedLocale.SV_SE |
| Turecki (Turcja) | CallCompositeSupportedLocale.TR_TR |
| Turecki | CallCompositeSupportedLocale.TR |
| Chiński (uproszczony) | CallCompositeSupportedLocale.ZH_CN |
| Chiński (tradycyjny) | CallCompositeSupportedLocale.ZH_TW |
| Chiński | CallCompositeSupportedLocale.ZH |
Dostawca lokalizacji
CallCompositeLocalizationOptions to opakowanie opcji, które ustawia wszystkie napisy dla składników Biblioteki Interfejsu Użytkownika Android za pomocą CallCompositeSupportedLocale. Domyślnie wszystkie etykiety tekstowe używają ciągów w języku angielskim. Możesz użyć CallCompositeLocalizationOptions, aby ustawić inny język, przekazując Locale obiekt z CallCompositeSupportedLocale. Od razu biblioteka interfejsu użytkownika Locale zawiera zestaw obiektów, które mogą być używane z komponentami i kompozytami interfejsu użytkownika.
Listę obiektów można również uzyskać przy użyciu statycznej funkcji LocaleCallCompositeSupportedLocale.getSupportedLocales().
Aby użyć CallCompositeLocalizationOptions, określ CallCompositeSupportedLocale i przekaż go do CallCompositeBuilder. Poniższy przykład lokalizuje złożony do języka francuskiego.
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()
Kierunek układu
Niektóre kultury (na przykład arabskie i hebrajskie) mogą wymagać lokalizacji dla układu od prawej do lewej. Możesz określić layoutDirection jako część CallCompositeLocalizationOptions. Układ złożonego zostanie zdublowany, ale tekst pozostanie w kierunku ciągu.
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 |
|---|---|
|
|
Dostosowywanie tłumaczeń
Dostępne są dwie opcje dostosowywania tłumaczeń językowych, które udostępniamy. Możesz użyć listy kluczy lokalizacji, aby zastąpić określony ciąg znaków w parze klucz/wartość. Można określić locale jako jedno z obsługiwanych języków. Jeśli klucz nie zostanie podany, wróci do obsługiwanego ciągu tłumaczenia. Jeśli określisz nieobsługiwany język, należy podać tłumaczenia wszystkich kluczy dla tego języka (przy użyciu string.xml pliku), a następnie wrócić do ciągów w języku angielskim, gdy klucz nie zostanie podany.
Załóżmy, że chcesz, aby pasek sterowania używał ciągów w języku angielskim (USA), ale chcesz zmienić etykietę przycisku Dołącz do połączenia na Rozpocznij spotkanie w trybie konfiguracji.
string.xml Utwórz plik (lub inną nazwę pliku) z parą klucz/wartość dla wybranych kluczy, które chcesz zastąpić. Poniższy przykład zastępuje klucz azure_communication_ui_calling_setup_view_button_join_call.
Aby uzyskać więcej informacji, zobacz bibliotekę interfejsu użytkownika systemu iOS typu open source i przykładowy kod aplikacji.
Wykrywanie języka
Jeśli aplikacja obsługuje lokalizację, biblioteka interfejsu użytkownika jest wyświetlana na podstawie preferowanego przez system języka użytkownika, jeśli jest częścią dostępnych języków wymienionych w następnej sekcji. W przeciwnym razie język przełącza się na wcześniej zdefiniowane angielskie ciągi znaków (en).
Dostępne języki
W poniższej tabeli wymieniono gotowe tłumaczenia dla locale. Jeśli chcesz zlokalizować złożony element, przekaż locale do LocalizationOptions jako opcje do CallComposite.
| Język | SupportedLocale | Identyfikator |
|---|---|---|
| Chiński uproszczony | zh |
zh |
| Chiński uproszczony | zhHans |
zh-Hans |
| Chiński, uproszczony (Chiny kontynentalne) | zhHansCN |
zh-Hans-CN |
| Chiński tradycyjny | zhHant |
zh-Hant |
| Chiński, tradycyjny (Tajwan) | zhHantTW |
zh-Hant-TW |
| Holenderski | nl |
nl |
| Niderlandzki (Holandia) | nlNL |
nl-NL |
| angielski | en |
en |
| Angielski (Wielka Brytania) | enGB |
en-GB |
| Angielski (Stany Zjednoczone) | enUS |
en-US |
| Francuski | fr |
fr |
| Francuski (Francja) | frFR |
fr-FR |
| Niemiecki | de |
de |
| Niemiecki (Niemcy) | deDE |
de-DE |
| Włoski | it |
it |
| Włoski (Włochy) | itIT |
it-IT |
| Japoński | ja |
ja |
| Japoński (Japonia) | jaJP |
ja-JP |
| Koreański | ko |
ko |
| Koreański (Korea Południowa) | koKR |
ko-KR |
| Portugalski | pt |
pt |
| Portugalski (Brazylia) | ptBR |
pt-BR |
| Rosyjski | ru |
ru |
| Rosyjski (Rosja) | ruRU |
ru-RU |
| Hiszpański | es |
es |
| Hiszpański (Hiszpania) | esES |
es-ES |
| Turecki | tr |
tr |
| Turcja (Türkiye) | trTR |
tr-TR |
Listę struktur można również uzyskać przy użyciu statycznej funkcji localeSupportedLocale.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"]
Opcje lokalizacji
LocalizationOptions to opakowanie opcji, które ustawia wszystkie ciągi dla składników biblioteki interfejsu użytkownika przy użyciu locale. Domyślnie wszystkie etykiety tekstowe używają ciągów angielskich (en). Możesz użyć LocalizationOptions polecenia , aby ustawić inną locale strukturę. Biblioteka interfejsu użytkownika locale od razu po instalacji zawiera zestaw struktur, które mogą być używane ze składnikami interfejsu użytkownika i kompozytami.
Aby użyć LocalizationOptionsmetody , określ strukturę Swift locale (z kodem regionu lub bez niego) i przekaż ją do CallCompositeOptions. Poniższy przykład lokalizuje złożony język francuski dla Francji (fr-FR).
// 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)
Kierunek układu
Niektóre kultury (na przykład arabski i hebrajski) mogą wymagać lokalizacji, aby mieć układ od prawej do lewej. Możesz określić layoutDirection jako część LocalizationOptions. Układ złożonego zostanie zdublowany, ale tekst pozostanie w kierunku ciągu.
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)
W poniższym przykładzie pokazano odwzorowanie układu od prawej do lewej. Jeśli nie określisz layoutDirection, domyślnie jest to false (układ od lewej do prawej).
layoutDirection = .leftToRight (ustawienie domyślne) |
layoutDirection = .rightToLeft |
|---|---|
|
|
Dostosowywanie tłumaczeń
Dostępne są dwie opcje dostosowywania tłumaczeń językowych, które udostępniamy. Aby zastąpić określony ciąg, możesz użyć listy kluczy lokalizacji do zdefiniowania pary klucz/wartość. Można określić locale jako jeden z obsługiwanych języków. Gdy klucz nie zostanie podany, wróci do obsługiwanego ciągu tłumaczenia. Jeśli określisz nieobsługiwany język, należy podać tłumaczenia wszystkich kluczy dla tego języka (przy użyciu Localizable.strings pliku), a następnie wrócić do ciągów w języku angielskim, gdy klucz nie zostanie podany.
Załóżmy, że chcesz, aby pasek sterowania używał ciągów w języku angielskim (USA), ale chcesz zmienić etykietę przycisku Dołącz do połączenia na Rozpocznij spotkanie w trybie konfiguracji. Włącz lokalizację w projekcie dla locale wystąpienia, które chcesz zastąpić.
Localizable.strings Utwórz plik (lub inną nazwę pliku z rozszerzeniem .strings) z parą klucz/wartość dla wybranych kluczy, które chcesz zastąpić. Poniższy przykład zastępuje klucz AzureCommunicationUI.SetupView.Button.JoinCall.
Aby określić, że zastępujesz element Localizable.strings, utwórz obiekt LocalizationOptions, aby określić locale i localizationFilename. Lub gdy używasz inicjatora locale, analizuje klucze w Localizable.strings dla locale.collatorIdentifier jako języka w projekcie.
let localizationOptions = LocalizationOptions(locale: Locale(identifier: "fr"),
localizableFilename: "Localizable")
let callCompositeOptions = CallCompositeOptions(localization: localizationOptions)
let callComposite = CallComposite(withOptions: callCompositeOptions)
Funkcja voiceover ułatwień dostępu do lokalizacji
Aby funkcja voiceover działała prawidłowo w przypadku lokalizacji, upewnij się, że język został dodany do lokalizacji aplikacji. Funkcja lektora wykrywa następnie, że aplikacja obsługuje język określony w LocalizationOptions dla locale. Wybiera głos dla języka przy użyciu opcji znajdującej się w Ustawienia>Ułatwienia dostępu>Mowa na urządzeniu. Możesz sprawdzić, czy język został dodany do projektu, jak pokazano w poniższym przykładzie.