次の方法で共有


アプリケーションで UI ライブラリをローカライズする

ローカライズは、さまざまな言語を話すユーザーが世界中で使用できる製品を作るための鍵です。 Azure Communication Services UI ライブラリでは、右から左 (RTL) などの一部の言語と機能をすぐに使用できます。 開発者は、UI ライブラリ用に独自のローカライズ ファイルを提供できます。

この記事では、アプリケーションで UI ライブラリを使用してローカライズを正しく設定する方法について説明します。

[前提条件]

ローカライズを設定する

Web UI ライブラリに関する詳細なドキュメントとクイック スタートについては、 Web UI ライブラリのストーリーブックを参照してください。

詳細については、Web UI ライブラリの ローカライズ に関するページを参照してください。

詳細については、 オープンソースの Android UI ライブラリサンプル アプリケーション コードを参照してください。

使用できる言語

次の表に、即使用可能な翻訳用のCallCompositeSupportedLocale ID を一覧表示します。 複合をローカライズする場合は、Locale から CallCompositeSupportedLocaleCallCompositeLocalizationOptions オブジェクトを渡し、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()オブジェクトの一覧を取得することもできます。

Android のローカライズを示すスクリーンショット。

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
Android の右から左のレイアウトのスクリーンショット。 Android の左から右のレイアウトのスクリーンショット。

翻訳のカスタマイズ

提供する言語翻訳をカスタマイズするには、2 つのオプションがあります。 ローカライズ キーの一覧を使用して、キーと値のペアの特定の文字列をオーバーライドできます。 ロケールは、サポートされている言語の 1 つとして指定できます。 キーが指定されていない場合、サポートされている翻訳文字列にフォールバックします。 サポートされていない言語を指定する場合は、( string.xml ファイルを使用して) その言語のすべてのキーの翻訳を提供し、キーが指定されていない場合は英語の文字列にフォールバックする必要があります。

たとえば、コントロール バーで英語 (米国) ロケールの文字列を使用するが、[ 通話に参加 ] ボタンのラベルを [セットアップ] ビューで [会議の開始 ] に変更するとします。 選択したキーをオーバーライドするために、キーと値のペアを含むstring.xmlファイル(または別のファイル名)を作成します。 次の例では、キー azure_communication_ui_calling_setup_view_button_join_callをオーバーライドします。

Android ローカライズ セットアップ プロジェクトを示すスクリーンショット。

Android のカスタム ラベルの例を示すスクリーンショット。

詳細については、 オープンソースの iOS UI ライブラリサンプル アプリケーション コードを参照してください。

言語検出

アプリケーションでローカライズがサポートされている場合、UI ライブラリは、次のセクションに示す使用可能な言語の一部である場合、ユーザーのシステム優先言語に基づいて表示されます。 それ以外の場合、言語は既定で定義済みの英語 (en) 文字列になります。

使用できる言語

次の表に、すぐに使用できる locale の翻訳を一覧表示します。 複合をローカライズする場合は、 locale をオプションとして LocalizationOptionsCallCompositeに渡します。

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)

iOS のローカライズを示すスクリーンショット。

レイアウトの方向

特定のカルチャ (アラビア語やヘブライ語など) では、右から左へのレイアウトを使用するためにローカライズが必要になる場合があります。 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
左から右への iOS レイアウトの方向を示すスクリーンショット。 右から左への iOS レイアウトの方向を示すスクリーンショット。

翻訳のカスタマイズ

提供する言語翻訳をカスタマイズするには、2 つのオプションがあります。 特定の文字列をオーバーライドするには、キーと値 のペアのローカライズ キーの一覧 を使用できます。 localeは、サポートされている言語の 1 つとして指定できます。 キーが指定されていない場合、サポートされている翻訳文字列にフォールバックします。 サポートされていない言語を指定する場合は、( Localizable.strings ファイルを使用して) その言語のすべてのキーの翻訳を提供し、キーが指定されていない場合は英語の文字列にフォールバックする必要があります。

たとえば、コントロール バーで英語 (米国) ロケールの文字列を使用するが、[ 通話に参加 ] ボタンのラベルを [セットアップ] ビューで [会議の開始 ] に変更するとします。 オーバーライドする locale インスタンスのプロジェクトでローカライズを有効にします。 オーバーライドする選択したキーのキーと値のペアを使用して、 Localizable.strings ファイル (または拡張子が .stringsの別のファイル名) を作成します。 次の例では、キー AzureCommunicationUI.SetupView.Button.JoinCallをオーバーライドします。

iOS セットアップ プロジェクトを示すスクリーンショット。

iOS カスタム文字列を示すスクリーンショット。

Localizable.stringsでオーバーライドすることを指定するには、LocalizationOptionslocaleを指定する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 は、アプリがLocalizationOptionslocaleで指定された言語をサポートしていることを検出します。 デバイスの 設定>アクセス可能性>Speech にある音声を使用して、言語の音声を選択します。 次の例に示すように、言語がプロジェクトに追加されていることを確認できます。

iOS Xcode プロジェクトのローカライズを示すスクリーンショット。

次のステップ