適用対象: キャンバス アプリ
Copilot Studio
デスクトップ フロー
Power Platform CLI
Dataverse 関数
Power Pages
現在のユーザーの言語タグを返します。
Description
Language関数は、現在のユーザーの言語、スクリプト、および領域を言語タグとして返します。
ロケール間のアプリを調整するため、言語情報を使用します。 たとえば、イタリアとフランスで使用されるアプリを作成する場合は、 Language を使用して、それらの異なる場所のユーザーにイタリア語とフランス語の文字列を自動的に表示できます。
Language タグ
言語タグは、3 つの形式のいずれかになります:
| 値を返す | Description |
|---|---|
| 「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 を選択しました。
Excel で次のテーブルを作成します:
Language列の空白のエントリは、特定の言語に対して特定のテキスト文字列が見つからない場合に既定値として使用されます。 このエントリは、特定の TextID のすべてのエントリの後に表示する必要があります。
この目的のため、地域ではなく、ロケールの言語のみ確認する必要があります。 地域的な考慮事項が重要な場合は、上記の表に完全な言語タグ値を含めることができました。
挿入リボンのテーブル コマンドを使用して、これを適切な Excel テーブルに変更します。 既定では Table1 という名前ですが、[ テーブル ツール]/[デザイン] リボンと左端の [ テーブル名: ] テキスト ボックスで好きな名前を付けることができます。
Excel ファイルをローカル ファイル システムに保存します。
Power Apps の右側のウィンドウで、[ データ ソース ] タブをクリックまたはタップし、[ データ ソースの追加] をクリックまたはタップします。
[ アプリに静的データを追加する] をクリックまたはタップし、保存した Excel ファイルをクリックまたはタップして、[ 開く] をクリックまたはタップします。
作成したテーブルを選択し、[ 接続] をクリックまたはタップします。
アプリでは、前に "Hello" というテキストを使用した場所を問わず、代わりに次の数式を使用します。
- LookUp( Table1, TextID = "Hello" & (LanguageTag = Left( Language(), 2 ) ||IsBlank( LanguageTag )))。LocalizedText
この数式は、ユーザーの言語の適切な LocalizedText 値を検索し、見つからない場合は、既定の 空白 バージョンにフォールバックします。
他の言語で翻訳された文字列は、自分の言語よりも長くなる可能性があります。 多くの場合、ユーザー インターフェイスに文字列を表示するラベルやその他の要素は、対応するために幅を広げる必要があります。
翻訳サービス
Microsoft Translator Serviceなどの翻訳サービスを使用して、オンデマンドでテキストを翻訳することができます:
- Power Apps の右側のウィンドウで、データ ソース タブをクリックまたはタップし、データ ソースを追加 をクリックまたはタップします。
- Microsoft Translator をクリックまたはタップします。
アプリで、これまでテキスト "Hello" を使用していた場所に、次の数式を使用します:
- MicrosoftTranslator.Translate( "Hello", Language() )
Microsoft Translator サービスは、 Language 関数が返すのと同じ言語タグを使用します。
この方法には、テキスト文字列の事前変換されたテーブルを使用した前の例と比較すると、いくつかの欠点があります。
- 翻訳の完了には時間がかかるので、ネットワーク経由でサービスを呼び出す必要があります。 その結果、アプリで翻訳されたテキストが表示されます。
- 翻訳は機械的なものであり、アプリ内の状況に対する予測や最適な選択ではない可能性があります。