アプリケーションの UI ライブラリをローカライズする
ローカライズは、世界中で、異なる言語を話す人々が使用できる製品を作るための重要な鍵となります。 Azure Communication Services UI ライブラリは、右から左 (RTL) など、一部の言語と機能を追加設定なしでサポートします。 開発者は、UI ライブラリ向けの独自のローカライズ ファイルを提供することがでます。
この記事では、アプリケーションの UI ライブラリを使用してローカライズを正しく設定する方法について説明します。
前提条件
- アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成できます。
- デプロイ済みの Communication Services リソース。 Communication Services リソースを作成します。
- 通話クライアントを有効にするためのユーザー アクセス トークン。 ユーザー アクセス トークンを取得します。
- 省略可能: UI ライブラリ の複合の概要に関するクイックスタートの完了。
ローカライズを設定する
Web UI ライブラリに関する詳細なドキュメントとクイックスタートについては、Web UI ライブラリのストーリーブックに関するページにアクセスしてください。
詳細については、Web UI ライブラリのローカライズに関する記事を参照してください。
詳細については、オープンソースの Android UI ライブラリ とサンプル アプリケーション コードを参照してください。
利用可能な言語
次の表に、すぐに使用できる CallCompositeSupportedLocale
ID を一覧表示します。 複合をローカライズする場合は、CallComposite
のオプションとして CallCompositeSupportedLocale
の Locale
オブジェクトを CallCompositeLocalizationOptions
に渡します。
Language | CallCompositeSupportedLocale |
---|---|
アラビア語 (サウジアラビア) | CallCompositeSupportedLocale.AR_SA |
ドイツ語 (ドイツ) | CallCompositeSupportedLocale.DE_DE |
英語 (米国) | CallCompositeSupportedLocale.EN_US |
英語 (英国) | CallCompositeSupportedLocale.EN_UK |
スペイン語 (スペイン) | CallCompositeSupportedLocale.ES_ES |
スペイン語 | CallCompositeSupportedLocale.ES |
フィンランド語 (フィンランド) | CallCompositeSupportedLocale.FI_FI |
フランス語 (フランス) | CallCompositeSupportedLocale.FR_FR |
フランス語 | CallCompositeSupportedLocale.FR |
ヘブライ語 (イスラエル) | CallCompositeSupportedLocale.IW_IL |
イタリア語 (イタリア) | CallCompositeSupportedLocale.IT_IT |
イタリア語 | CallCompositeSupportedLocale.IT |
日本語 (日本) | CallCompositeSupportedLocale.JA_JP |
日本語 | CallCompositeSupportedLocale.JA |
韓国語 (韓国) | CallCompositeSupportedLocale.KO_KR |
韓国語 | CallCompositeSupportedLocale.KO |
オランダ語 (オランダ) | CallCompositeSupportedLocale.NL_NL |
オランダ語 | CallCompositeSupportedLocale.NL |
ノルウェー語 - ブークモール | CallCompositeSupportedLocale.NB_NO |
ポーランド語 (ポーランド) | CallCompositeSupportedLocale.PL_PL |
ポーランド語 | CallCompositeSupportedLocale.PL |
ポルトガル語 (ブラジル) | CallCompositeSupportedLocale.PT_BR |
ポルトガル語 | CallCompositeSupportedLocale.PT |
ロシア語 (ロシア) | CallCompositeSupportedLocale.RU_RU |
ロシア語 | CallCompositeSupportedLocale.RU |
スウェーデン語 (スウェーデン) | CallCompositeSupportedLocale.SV_SE |
トルコ語 (トルコ) | CallCompositeSupportedLocale.TR_TR |
トルコ語 | CallCompositeSupportedLocale.TR |
簡体中国語 | CallCompositeSupportedLocale.ZH_CN |
繁体中国語 | CallCompositeSupportedLocale.ZH_TW |
中国語 | CallCompositeSupportedLocale.ZH |
ローカリゼーション プロバイダー
CallCompositeLocalizationOptions
は、CallCompositeSupportedLocale
を使用して Android UI ライブラリ コンポーネントのすべての文字列を設定するオプション ラッパーです。 既定では、すべてのテキスト ラベルで英語の文字列が使用されます。 CallCompositeLocalizationOptions
を使用し、CallCompositeSupportedLocale
の Locale
オブジェクトを渡すことで異なる言語を設定することもできます。 すぐに使用できる UI ライブラリには、UI コンポーネントと複合で使用できる Locale
オブジェクトのセットが含まれています。
静的関数 CallCompositeSupportedLocale.getSupportedLocales()
を使用して Locale
オブジェクトの一覧を取得することもできます。
CallCompositeLocalizationOptions
を使用するには、CallCompositeSupportedLocale
を指定して CallCompositeBuilder
に渡します。 次の例では、複合をフランス語にローカライズしています。
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()
レイアウトの方向
特定のカルチャ (アラビア語やヘブライ語など) では、右から左へのレイアウトにローカライズする必要がある場合があります。 layoutDirection
は CallCompositeLocalizationOptions
の一部として指定できます。 複合のレイアウトはミラー化されますが、テキストは文字列の方向に残ります。
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 |
---|---|
翻訳のカスタマイズ
提供する言語翻訳をカスタマイズするには、2 つのオプションがあります。 キーと値のペア用の特定の文字列をオーバーライドするには、ローカライズ キーの一覧を使用できます。 サポートされている言語のいずれかとしてロケールを指定できます。 キーが指定されない場合、サポートされている翻訳文字列にフォールバックします。 サポートされていない言語を指定した場合は、その言語のすべてのキーの翻訳を指定する必要があります (string.xml
ファイルを使用)。キーが指定されていない場合は、英語の文字列に戻ります。
たとえば、英語 (米国) ロケールの文字列をコントロール バーで使用したいが、セットアップ ビューで [Join Call] ボタンのラベルを [Start Meeting] に変更したいとします。 オーバーライドする選択したキーについて、キーと値のペアを含む string.xml
ファイル (またはその他のファイル名) を作成します。 キー azure_communication_ui_calling_setup_view_button_join_call
をオーバーライドするコード例を次に示します。
詳細については、オープンソースの iOS UI ライブラリ とサンプル アプリケーション コードを参照してください。
言語検出
アプリケーションがローカリゼーションをサポートしていて、かつユーザーのシステムの優先する言語が次のセクションに一覧表示されている利用可能な言語の一部である場合、その言語に基づいて UI ライブラリが表示されます。 それ以外の場合は、言語の既定値は事前定義済みの英語 (en
) 文字列になります。
利用可能な言語
次の表に、すぐに使用できる locale
の翻訳を一覧表示します。 複合をローカライズする場合は、CallComposite
のオプションとして locale
を LocalizationOptions
に渡します。
Language | SupportedLocale | Identifier |
---|---|---|
簡体字中国語 | zh |
zh |
簡体字中国語 | zhHans |
zh-Hans |
簡体中国語 (中国本土) | zhHansCN |
zh-Hans-CN |
繁体中国語 | zhHant |
zh-Hant |
繁体字中国語 (台湾) | zhHantTW |
zh-Hant-TW |
オランダ語 | nl |
nl |
オランダ語 (オランダ) | nlNL |
nl-NL |
English | en |
en |
英語 (イギリス) | enGB |
en-GB |
英語 (米国) | enUS |
en-US |
フランス語 | fr |
fr |
フランス語 (フランス) | frFR |
fr-FR |
ドイツ語 | de |
de |
ドイツ語 (ドイツ) | deDE |
de-DE |
イタリア語 | it |
it |
イタリア語 (イタリア) | itIT |
it-IT |
日本語 | ja |
ja |
日本語 (日本) | jaJP |
ja-JP |
韓国語 | ko |
ko |
韓国語 (韓国) | koKR |
ko-KR |
(ブラジル) | pt |
pt |
ポルトガル語 (ブラジル) | ptBR |
pt-BR |
ロシア語 | ru |
ru |
ロシア語 (ロシア) | ruRU |
ru-RU |
スペイン語 | es |
es |
スペイン語 (スペイン) | esES |
es-ES |
トルコ語 | tr |
tr |
トルコ語 (Türkiye) | trTR |
tr-TR |
静的関数 SupportedLocale.values
を使用して locale
構造体の一覧を取得することもできます。
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
は、locale
を使用して UI ライブラリ コンポーネントのすべての文字列を設定するオプション ラッパーです。 既定では、すべてのテキスト ラベルで英語 (en
) の文字列が使用されます。 LocalizationOptions
を使用して、別の locale
構造体を設定できます。 すぐに使用できる UI ライブラリには、UI コンポーネントと複合で使用できる locale
構造体のセットが含まれています。
LocalizationOptions
を使用するには、Swift locale
構造体を指定 (リージョン コードは任意) し、それを CallCompositeOptions
に渡します。 次の例では、複合をフランス語 (フランス: 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)
レイアウトの方向
特定のカルチャ (例: アラビア語やヘブライ語) では、右から左へのレイアウトにローカライズする必要がある場合があります。 layoutDirection
は LocalizationOptions
の一部として指定できます。 複合のレイアウトはミラー化されますが、テキストは文字列の方向に残ります。
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)
右から左へのレイアウト ミラーリングの例を次に示します。 layoutDirection
を指定しない場合、既定値は false
(左から右へのレイアウト) になります。
layoutDirection = .leftToRight (既定) |
layoutDirection = .rightToLeft |
---|---|
翻訳のカスタマイズ
提供する言語翻訳をカスタマイズするには、2 つのオプションがあります。 特定の文字列をオーバーライドするには、キーと値のペア用のローカライズ キーの一覧を使用できます。 サポートされている言語のいずれかとして locale
を指定できます。 キーが指定されない場合、サポートされている翻訳文字列にフォールバックします。 サポートされていない言語を指定した場合は、その言語のすべてのキーの翻訳を指定する必要があります (Localizable.strings
ファイルを使用)。キーが指定されていない場合は、英語の文字列に戻ります。
たとえば、英語 (米国) ロケールの文字列をコントロール バーで使用したいが、セットアップ ビューで [Join Call] ボタンのラベルを [Start Meeting] に変更したいとします。 オーバーライドする locale
インスタンス向けのプロジェクトでローカライズを有効にします。 オーバーライドする選択したキーについて、キーと値のペアを含む Localizable.strings
ファイル (または拡張機能 .strings
を持つ別のファイル名) を作成します。 キー AzureCommunicationUI.SetupView.Button.JoinCall
をオーバーライドするコード例を次に示します。
Localizable.strings
でオーバーライドすることを指定するには、LocalizationOptions
オブジェクトを作成して locale
と localizationFilename
を指定します。 あるいは、locale
初期化子を使用している場合、プロジェクトの言語として locale.collatorIdentifier
用の Localizable.strings
のキーを確認します。
let localizationOptions = LocalizationOptions(locale: Locale(identifier: "fr"),
localizableFilename: "Localizable")
let callCompositeOptions = CallCompositeOptions(localization: localizationOptions)
let callComposite = CallComposite(withOptions: callCompositeOptions)
アクセシビリティ VoiceOver のローカリゼーション
VoiceOver のローカリゼーションが正しく機能するためには、アプリのローカリゼーションに言語が追加されている必要があります。 VoiceOver は、アプリが locale
の LocalizationOptions
で指定された言語をサポートしていることを検出します。 デバイスの [設定]>[アクセシビリティ]>[音声] で検出された音声を使用して、言語の音声を選択します。 言語がプロジェクトに追加されているかどうかは、次の例のようにして確認できます。