現在のユーザーの言語タグを返します。

説明

Language 関数は、現在のユーザーの言語、スクリプト、地域を言語タグとして返します。

言語情報を使用すると、ロケールに応じてアプリをカスタマイズできます。 たとえば、イタリアとフランスでの使用を予定しているアプリを作成している場合、Language を使用することで、これらの異なる場所のユーザーにイタリア語とフランス語の文字列が自動的に表示されるようにできます。

言語タグ

"言語タグ" の形式は、次の 3 つのいずれかになります。

戻り値 説明
"lg‑RE" lg は "language" (言語) の 2 文字の省略形であり、RE は "region" (地域) の 2 文字の省略形です。 この形式の戻り値が最も一般的です。 たとえば、英国では "en-GB" が返されます。
"lg" lg は "language" (言語) の 2 文字の省略形です。 PowerApps では、言語の情報はあっても特定の地域の情報がない場合にこの形式が使用されます。
"lg‑scrp‑RE" lg は "language" (言語) の 2 文字の省略形です。scrp は "script" (スクリプト) の 4 文字の省略形であり、RE は "region" (地域) の 2 文字の省略形です。

PowerApps では IETF BCP-47 言語タグ形式が使用されます。

サポートされている言語タグの一覧を確認するには、数式バーまたは詳細ビューに「Value( "1", )」と入力し、2 番目の引数に対して提案されたロケールの一覧をスクロールします。

Text 関数と Value 関数でも言語タグが使用されます。 これらの関数を使用すれば、世界中のユーザーに対応する形でテキスト文字列の言語を切り替えられます。 言語タグをこれらの関数に渡しても地域が変わらない場合は、タグの言語部分のみを使用することもできます。

構文

Language()

ユーザーのロケール

ホスト オペレーティング システムやブラウザーで、場所に既定のロケールが使用されていると仮定しています。

数式 場所 戻り値
Language() リスボン、ポルトガル "pt-PT"
Language() リオデジャネイロ、ブラジル "pt-BR"
Language() アトランタ、USA "en-US"
Language() マンチェスター、英国 "en-GB"
Language() パリ、フランス "fr-FR"
Language() ロゾー、ドミニカ "en"
Language() ベオグラード、セルビア "sr-cyrl-RS" または "sr-latn-RS" (ユーザーのシステム設定による)

ローカライズ テーブル

ローカライズを簡単な方法で実行するには、作成者によって定義された TextID をユーザーの言語に翻訳されたテキストにマッピングした、Excel のスプレッドシートを作成します。 このテーブルにはコレクションや他のデータ ソースを使用することもできますが、アプリ外で翻訳者が編集と管理を行いやすいので Excel を使用することをお勧めします。

  1. Excel で次のテーブルを作成します。

    言語の列が blank のエントリは、特定のテキスト文字列が所定の言語で見つからなかった場合に、既定値として使用されます。 このエントリは、特定の TextID に関するエントリの一番後ろに配置する必要があります。

    ローカライズが目的のため、注目する必要があるのはロケールの言語だけで、地域は必要ありません。 もし地域を考慮することが重要であれば、言語タグの完全な値を上記のテーブルに入力することもできました。

  2. [挿入] リボンの [テーブル] コマンドを使用して、これを適切な Excel テーブルに変更します。 既定ではこのテーブルの名前は Table1 になりますが、[テーブル ツール] リボンの [デザイン] タブの左端にある [テーブル名:] ボックスで、好きな名前に変更できます。

  3. Excel ファイルをローカル ファイル システムに保存します。

  4. PowerApps の右側のウィンドウで [データ ソース] タブをクリックまたはタップし、[データソースの追加] をクリックまたはタップします。

  5. [静的データをアプリに追加します] をクリックまたはタップし、保存した Excel ファイルをクリックまたはタップして、[開く] をクリックまたはタップします。

  6. 作成したテーブルを選択して、[接続] をクリックまたはタップします。

アプリでこれまでテキスト "Hello" を使用していた場所に、次の数式を設定します。

  • LookUp( Table1, TextID = "Hello" && (LanguageTag = Left( Language(), 2 ) || IsBlank( LanguageTag ))).LocalizedText

この数式では、ユーザーの言語に適した LocalizedText の値が検索されます。適切な値が見つからない場合は、既定の blank バージョンに戻されます。

その他の言語に翻訳された文字列は、お使いの言語での文字列よりもはるかに長くなる可能性があることに注意してください。 多くの場合、ユーザー インターフェイスでこれらの文字列を表示するラベルやその他の要素を、大きくして適応させる必要があります。

翻訳サービス

Microsoft Translator サービスなどの翻訳サービスを使用して、オンデマンドでテキストを翻訳することができます。

  1. PowerApps の右側のウィンドウで [データ ソース] タブをクリックまたはタップし、[データソースの追加] をクリックまたはタップします。

  2. [Microsoft Translator] をクリックまたはタップします。

アプリでこれまでテキスト "Hello" を使用していた場所に、次の数式を設定します。

  • MicrosoftTranslator.Translate( "Hello", Language() )

Microsoft Translator サービスでは、Language 関数が返すのと同じ言語タグが使用されます。

あらかじめ翻訳されたテキスト文字列のテーブルを利用した先ほどの例と比較すると、この方法にはいくつかの欠点があります。

  • ネットワーク経由のサービスの呼び出しが必要なため、翻訳の完了に時間がかかります。 その結果、翻訳されたテキストがアプリに表示されるまでタイムラグがあります。
  • 翻訳は機械的に行われるため、期待どおりでなかったり、アプリ内の状況に適していなかったりする可能性があります。