ローカライズは、さまざまな言語を話すユーザーが世界中で使用できる製品を作るための鍵です。 Azure Communication Services UI ライブラリでは、右から左 (RTL) などの一部の言語と機能をすぐに使用できます。 開発者は、UI ライブラリ用に独自のローカライズ ファイルを提供できます。
この記事では、アプリケーションで UI ライブラリを使用してローカライズを正しく設定する方法について説明します。
[前提条件]
- アクティブなサブスクリプションを持つ Azure アカウント。 無料でアカウントを作成できます。
- デプロイ済みの Communication Services リソース。 Communication Services のリソースを作成する。
- 呼び出しクライアントを有効にするユーザー アクセス トークン。 ユーザー アクセス トークンを取得します。
- 省略可能: UIライブラリのコンポジットを始めるためのクイックスタートの完了。
ローカライズを設定する
Web UI ライブラリに関する詳細なドキュメントとクイック スタートについては、 Web UI ライブラリのストーリーブックを参照してください。
詳細については、Web UI ライブラリの ローカライズ に関するページを参照してください。
詳細については、 オープンソースの Android UI ライブラリ と サンプル アプリケーション コードを参照してください。
使用できる言語
次の表に、即使用可能な翻訳用のCallCompositeSupportedLocale ID を一覧表示します。 複合をローカライズする場合は、Locale から CallCompositeSupportedLocale に CallCompositeLocalizationOptions オブジェクトを渡し、CallComposite にオプションとして指定します。
| Language | コールコンポジット対応ロケール |
|---|---|
| アラビア語 (サウジアラビア) | 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 |
| Portuguese | 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を使用して、LocaleからCallCompositeSupportedLocale オブジェクトを渡すことで、別の言語を設定できます。 すぐに使用できる UI ライブラリには、UI コンポーネントと複合で使用できる一連の Locale オブジェクトが含まれています。
静的関数Localeを使用して、CallCompositeSupportedLocale.getSupportedLocales()オブジェクトの一覧を取得することもできます。
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 つのオプションがあります。
ローカライズ キーの一覧を使用して、キーと値のペアの特定の文字列をオーバーライドできます。 ロケールは、サポートされている言語の 1 つとして指定できます。 キーが指定されていない場合、サポートされている翻訳文字列にフォールバックします。 サポートされていない言語を指定する場合は、( string.xml ファイルを使用して) その言語のすべてのキーの翻訳を提供し、キーが指定されていない場合は英語の文字列にフォールバックする必要があります。
たとえば、コントロール バーで英語 (米国) ロケールの文字列を使用するが、[ 通話に参加 ] ボタンのラベルを [セットアップ] ビューで [会議の開始 ] に変更するとします。 選択したキーをオーバーライドするために、キーと値のペアを含むstring.xmlファイル(または別のファイル名)を作成します。 次の例では、キー azure_communication_ui_calling_setup_view_button_join_callをオーバーライドします。
詳細については、 オープンソースの iOS UI ライブラリ と サンプル アプリケーション コードを参照してください。
言語検出
アプリケーションでローカライズがサポートされている場合、UI ライブラリは、次のセクションに示す使用可能な言語の一部である場合、ユーザーのシステム優先言語に基づいて表示されます。 それ以外の場合、言語は既定で定義済みの英語 (en) 文字列になります。
使用できる言語
次の表に、すぐに使用できる locale の翻訳を一覧表示します。 複合をローカライズする場合は、 locale をオプションとして LocalizationOptions に CallCompositeに渡します。
| Language | 対応するロケール | 識別子 |
|---|---|---|
| 簡体字中国語 | zh |
zh |
| 簡体字中国語 | zhHans |
zh-Hans |
| 簡体中国語 (中国本土) | zhHansCN |
zh-Hans-CN |
| 繁体中国語 | zhHant |
zh-Hant |
| 台湾で使用される中国語(繁体字) | zhHantTW |
zh-Hant-TW |
| オランダ語 | nl |
nl |
| オランダ語 (オランダ) | nlNL |
nl-NL |
| 英語 | 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 |
| Portuguese | pt |
pt |
| ポルトガル語 (ブラジル) | ptBR |
pt-BR |
| ロシア語 | ru |
ru |
| ロシア語 (ロシア) | ruRU |
ru-RU |
| スペイン語 | es |
es |
| スペイン語 (スペイン) | esES |
es-ES |
| トルコ語 | tr |
tr |
| トルコ語 (Türkiye) | trTR |
tr-TR |
静的関数localeを使用して、SupportedLocale.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"]
ローカリゼーションオプションズ
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は、サポートされている言語の 1 つとして指定できます。 キーが指定されていない場合、サポートされている翻訳文字列にフォールバックします。 サポートされていない言語を指定する場合は、( Localizable.strings ファイルを使用して) その言語のすべてのキーの翻訳を提供し、キーが指定されていない場合は英語の文字列にフォールバックする必要があります。
たとえば、コントロール バーで英語 (米国) ロケールの文字列を使用するが、[ 通話に参加 ] ボタンのラベルを [セットアップ] ビューで [会議の開始 ] に変更するとします。 オーバーライドする locale インスタンスのプロジェクトでローカライズを有効にします。 オーバーライドする選択したキーのキーと値のペアを使用して、 Localizable.strings ファイル (または拡張子が .stringsの別のファイル名) を作成します。 次の例では、キー AzureCommunicationUI.SetupView.Button.JoinCallをオーバーライドします。
Localizable.stringsでオーバーライドすることを指定するには、LocalizationOptionsとlocaleを指定するlocalizationFilename オブジェクトを作成します。 あるいは、locale 初期化子を使用している場合、プロジェクトの言語として Localizable.strings 用の locale.collatorIdentifier のキーを確認します。
let localizationOptions = LocalizationOptions(locale: Locale(identifier: "fr"),
localizableFilename: "Localizable")
let callCompositeOptions = CallCompositeOptions(localization: localizationOptions)
let callComposite = CallComposite(withOptions: callCompositeOptions)
ローカライズ用のアクセシビリティボイスオーバー
音声オーバーがローカライズに対して適切に機能するためには、言語がアプリのローカライズに追加されていることを確認します。 その後、voiceover は、アプリがLocalizationOptionsのlocaleで指定された言語をサポートしていることを検出します。 デバイスの 設定>アクセス可能性>Speech にある音声を使用して、言語の音声を選択します。 次の例に示すように、言語がプロジェクトに追加されていることを確認できます。