Language 関数

適用先 : キャンバス アプリ デスクトップ フロー Power Platform CLI

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

Description

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

ロケール間のアプリを調整するため、言語情報を使用します。 たとえば、イタリアとフランスで使用されるアプリを作成している場合、これらの異なる場所のユーザーにイタリア語とフランス語の文字列を自動的に表示するため、言語を使用できます。

言語タグ

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

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

Power Apps は、IETF BCP-47 言語タグ 形式を使用します。

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

Text 関数および Value 関数でも言語タグを使用します。 グローバルに対応する方法でテキスト文字列との間の変換を行うのに、これらの関数を使用します。 言語タグをこれらの関数に渡し、地域が変わらない場合は、タグの言語部分のみを使用することができます。

構文

Language()

ユーザーのロケール

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

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

ローカライズ テーブル

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

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

    ローカライズ テーブル。

    言語の列が空白のエントリは、特定の言語で特定のテキスト文字列が見つからなかった場合に、既定値として使用されます。 このエントリは、特定の TextID のすべてのエントリの後に表示する必要があります。

    この目的のため、地域ではなく、ロケールの言語のみ確認する必要があります。 地域に関する考慮事項が重要な場合は、上記のテーブルに完全な言語タグ値を含めることができました。

  2. 挿入リボンのテーブル コマンドを使用して、これを適切な Excel テーブルに変更します。 既定では、テーブル 1 という名前がつけられますが、テーブル ツール/デザイン リボンおよびテーブル名: 左側にあるテキスト ボックスを使用して好きな名前をつけることができます。

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

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

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

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

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

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

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

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

Translation service

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

  1. Power Apps の右側のウィンドウで、データ ソース タブをクリックまたはタップし、データ ソースを追加 をクリックまたはタップします。
  2. Microsoft Translator をクリックまたはタップします。

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

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

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

事前翻訳されたテキスト文字列を使用した前の例と比較すると、この方法にはいくつかの欠点があります:

  • ネットワーク経由のサービスの呼び出しが必要なため、翻訳の完了に時間がかかります。 これにより、アプリで翻訳したテキストを表示するのにタイムラグが発生します。
  • 翻訳は機械的に行われるため、予想と異なる場合や、アプリ内の状況に最適ではない可能性があります。