次の方法で共有


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

ローカライズは、世界中で、異なる言語を話す人々が使用できる製品を作るための重要な鍵となります。 Azure Communication Services UI ライブラリは、右から左 (RTL) など、一部の言語と機能を追加設定なしでサポートします。 開発者は、UI ライブラリ向けの独自のローカライズ ファイルを提供することがでます。

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

前提条件

ローカライズを設定する

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

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

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

利用可能な言語

次の表に、すぐに使用できる CallCompositeSupportedLocale ID を一覧表示します。 複合をローカライズする場合は、CallComposite のオプションとして CallCompositeSupportedLocaleLocale オブジェクトを 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 を使用し、CallCompositeSupportedLocaleLocale オブジェクトを渡すことで異なる言語を設定することもできます。 すぐに使用できる UI ライブラリには、UI コンポーネントと複合で使用できる Locale オブジェクトのセットが含まれています。

静的関数 CallCompositeSupportedLocale.getSupportedLocales() を使用して Locale オブジェクトの一覧を取得することもできます。

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()

レイアウトの方向

特定のカルチャ (アラビア語やヘブライ語など) では、右から左へのレイアウトにローカライズする必要がある場合があります。 layoutDirectionCallCompositeLocalizationOptions の一部として指定できます。 複合のレイアウトはミラー化されますが、テキストは文字列の方向に残ります。

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 つのオプションがあります。 キーと値のペア用の特定の文字列をオーバーライドするには、ローカライズ キーの一覧を使用できます。 サポートされている言語のいずれかとしてロケールを指定できます。 キーが指定されない場合、サポートされている翻訳文字列にフォールバックします。 サポートされていない言語を指定した場合は、その言語のすべてのキーの翻訳を指定する必要があります (string.xml ファイルを使用)。キーが指定されていない場合は、英語の文字列に戻ります。

たとえば、英語 (米国) ロケールの文字列をコントロール バーで使用したいが、セットアップ ビューで [Join Call] ボタンのラベルを [Start Meeting] に変更したいとします。 オーバーライドする選択したキーについて、キーと値のペアを含む string.xml ファイル (またはその他のファイル名) を作成します。 キー azure_communication_ui_calling_setup_view_button_join_call をオーバーライドするコード例を次に示します。

Android ローカライズ セットアップ プロジェクトが示されたスクリーンショット。

Android サンプル カスタム ラベルが示されたスクリーンショット。

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

言語検出

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

利用可能な言語

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

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)

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

レイアウトの方向

特定のカルチャ (例: アラビア語やヘブライ語) では、右から左へのレイアウトにローカライズする必要がある場合があります。 layoutDirectionLocalizationOptions の一部として指定できます。 複合のレイアウトはミラー化されますが、テキストは文字列の方向に残ります。

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 を指定できます。 キーが指定されない場合、サポートされている翻訳文字列にフォールバックします。 サポートされていない言語を指定した場合は、その言語のすべてのキーの翻訳を指定する必要があります (Localizable.strings ファイルを使用)。キーが指定されていない場合は、英語の文字列に戻ります。

たとえば、英語 (米国) ロケールの文字列をコントロール バーで使用したいが、セットアップ ビューで [Join Call] ボタンのラベルを [Start Meeting] に変更したいとします。 オーバーライドする locale インスタンス向けのプロジェクトでローカライズを有効にします。 オーバーライドする選択したキーについて、キーと値のペアを含む Localizable.strings ファイル (または拡張機能 .strings を持つ別のファイル名) を作成します。 キー AzureCommunicationUI.SetupView.Button.JoinCall をオーバーライドするコード例を次に示します。

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

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

Localizable.strings でオーバーライドすることを指定するには、LocalizationOptions オブジェクトを作成して localelocalizationFilename を指定します。 あるいは、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 は、アプリが localeLocalizationOptions で指定された言語をサポートしていることを検出します。 デバイスの [設定]>[アクセシビリティ]>[音声] で検出された音声を使用して、言語の音声を選択します。 言語がプロジェクトに追加されているかどうかは、次の例のようにして確認できます。

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

次のステップ