Language 関数
適用対象: キャンバス アプリ デスクトップ フロー Power Pages 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 関数でも言語タグを使用します。 グローバルに対応する方法でテキスト文字列との間の変換を行うのに、これらの関数を使用します。 言語タグをこれらの関数に渡し、地域が変わらない場合は、タグの言語部分のみを使用することができます。
構文
言語()
例
ユーザーのロケール
ホスト オペレーティング システムやブラウザーが、場所の既定のロケールがを使用してていると仮定しています。
計算式 | 場所 | 戻り値 |
---|---|---|
言語() | リスボン、ポルトガル | 「pt-PT」 |
言語() | リオデジャネイロ、ブラジル | 「pt-BR」 |
言語() | アトランタ、米国 | 「en-US」 |
言語() | マンチェスター、英国 | 「en-GB」 |
言語() | パリ、フランス | 「fr-FR」 |
言語() | ロゾー、ドミニカ国 | "en" |
言語() | ベオグラード、セルビア | ユーザーのシステム設定による、「sr-cyrl-RS」または「sr-latn-RS」 |
ローカライズ テーブル
ローカライズの簡単な方法は、作成者が定義した TextID をユーザーの言語に翻訳されたテキストにマッピングした、Excel のスプレッドシートを作成することです。 このテーブルではコレクションまたは他のデータ ソースを使用することもできますが、翻訳者がアプリの範囲外で簡単に編集と管理ができるので Excel を選択しました。
Excel で次のテーブルを作成します:
言語の列が空白のエントリは、特定の言語で特定のテキスト文字列が見つからなかった場合に、既定値として使用されます。 このエントリは、特定の TextID のすべてのエントリの後に表示する必要があります。
この目的のため、地域ではなく、ロケールの言語のみ確認する必要があります。 地域に関する考慮事項が重要な場合は、上記のテーブルに完全な言語タグ値を含めることができました。
挿入リボンのテーブル コマンドを使用して、これを適切な Excel テーブルに変更します。 既定では、テーブル 1 という名前がつけられますが、テーブル ツール/デザイン リボンおよびテーブル名: 左側にあるテキスト ボックスを使用して好きな名前をつけることができます。
Excel ファイルをローカル ファイル システムに保存します。
Power Apps の右側のウィンドウで、データ ソース タブをクリックまたはタップし、データ ソースを追加 をクリックまたはタップします。
静的データをアプリに追加をクリックまたはタップし、保存した Excel ファイルをクリックまたはタップして、開くをクリックまたはタップします。
作成したテーブルを選択して、接続をクリックまたはタップします。
アプリで、これまでテキスト "Hello" を使用していた場所に、次の数式を使用します:
- LookUp( Table1、TextID = "Hello" && (LanguageTag = Left( Language()、2 ) || IsBlank( LanguageTag ))).LocalizedText
この数式では、ユーザーの言語に適した LocalizedText の値を検索します。見つからない場合は、既定の空白バージョンに戻されます。
その他の言語に翻訳された文字列は、ご使用の言語での文字列よりも大幅に長くなる可能性があることに注意してください。 多くの場合、ユーザー インターフェイスで文字列を表示するラベルとその他の要素を、対応するために幅を広げる必要があります。
Translation service
Microsoft Translatorサービスなどの翻訳サービスを使用して、オンデマンドでテキストを翻訳できます。
- Power Apps の右側のウィンドウで、データ ソース タブをクリックまたはタップし、データ ソースを追加 をクリックまたはタップします。
- または タップ Microsoft Translator をクリックしてください。
アプリで、これまでテキスト "Hello" を使用していた場所に、次の数式を使用します:
- MicrosoftTranslator.Translate( "こんにちは", 言語() )
Microsoft Translatorサービスは、 Language 関数が返すのと同じ言語タグを使用します。
事前翻訳されたテキスト文字列を使用した前の例と比較すると、この方法にはいくつかの欠点があります:
- ネットワーク経由のサービスの呼び出しが必要なため、翻訳の完了に時間がかかります。 これにより、アプリで翻訳したテキストを表示するのにタイムラグが発生します。
- 翻訳は機械的に行われるため、予想と異なる場合や、アプリ内の状況に最適ではない可能性があります。