PowerApps の Language 関数Language function in PowerApps

現在のユーザーの言語タグを返します。Returns the language tag of the current user.

説明Description

Language 関数は、現在のユーザーの言語、スクリプト、地域を言語タグとして返します。The Language function returns the language, script, and region of the current user as a language tag.

言語情報を使用すると、ロケールに応じてアプリをカスタマイズできます。Use the language information to tailor your app across locales. たとえば、イタリアとフランスでの使用を予定しているアプリを作成している場合、Language を使用することで、これらの異なる場所のユーザーにイタリア語とフランス語の文字列が自動的に表示されるようにできます。For example, if you are creating an app that will be used in Italy and France, you can use Language to automatically display Italian and French strings to your users in those different locations.

言語タグLanguage tags

"言語タグ" の形式は、次の 3 つのいずれかになります。A language tag can be in one of three formats:

戻り値Return value 説明Description
"lg‑RE""lg‑RE" lg は "language" (言語) の 2 文字の省略形であり、RE は "region" (地域) の 2 文字の省略形です。lg is the two character abbreviation for the language and RE is the two character abbreviation for the region. この形式の戻り値が最も一般的です。This is the most common return type. たとえば、英国では "en-GB" が返されます。For example, "en-GB" is returned for Great Britain.
"lg""lg" lg は "language" (言語) の 2 文字の省略形です。lg is the two character abbreviation for the language. PowerApps では、言語の情報はあっても特定の地域の情報がない場合にこの形式が使用されます。This is the format used when PowerApps has information about the language, but does not have information for the specific region.
"lg‑scrp‑RE""lg‑scrp‑RE" lg は "language" (言語) の 2 文字の省略形です。scrp は "script" (スクリプト) の 4 文字の省略形であり、RE は "region" (地域) の 2 文字の省略形です。lg is the two character abbreviation for the language, scrp is the four character abbreviation for the script, and RE is the two character abbreviation for the region.

PowerApps では IETF BCP-47 言語タグ形式が使用されます。PowerApps uses the IETF BCP-47 language tag format.

サポートされている言語タグの一覧を確認するには、数式バーまたは詳細ビューに「Value( "1", )」と入力し、2 番目の引数に対して提案されたロケールの一覧をスクロールします。To see the list of supported language tags, type Value( "1", ) in the formula bar or advanced view and scroll through the list of locales suggested for the second argument.

Text 関数と Value 関数でも言語タグが使用されます。The Text and Value functions also use language tags. これらの関数を使用すれば、世界中のユーザーに対応する形でテキスト文字列の言語を切り替えられます。Use these functions for translating to and from text strings in a globally aware manner. 言語タグをこれらの関数に渡しても地域が変わらない場合は、タグの言語部分のみを使用することもできます。When passing a language tag to these functions and the region would not make a difference, you can use just the language portion of the tag.

構文Syntax

Language()Language()

Examples

ユーザーのロケールUser's locale

ホスト オペレーティング システムやブラウザーで、場所に既定のロケールが使用されていると仮定しています。It is assumed that the host operating system and/or browser are using the default locale for the location.

数式Formula 場所Location 戻り値Return Value
Language()Language() リスボン、ポルトガルLisbon, Portugal "pt-PT""pt-PT"
Language()Language() リオデジャネイロ、ブラジルRio de Janeiro, Brazil "pt-BR""pt-BR"
Language()Language() アトランタ、USAAtlanta, USA "en-US""en-US"
Language()Language() マンチェスター、英国Manchester, Great Britain "en-GB""en-GB"
Language()Language() パリ、フランスParis, France "fr-FR""fr-FR"
Language()Language() ロゾー、ドミニカRoseau, Dominica "en""en"
Language()Language() ベオグラード、セルビアBelgrade, Serbia "sr-cyrl-RS" または "sr-latn-RS" (ユーザーのシステム設定による)"sr-cyrl-RS" or "sr-latn-RS", depending on the user's system settings

ローカライズ テーブルLocalization table

ローカライズを簡単な方法で実行するには、作成者によって定義された TextID をユーザーの言語に翻訳されたテキストにマッピングした、Excel のスプレッドシートを作成します。A simple approach to localization is to create an Excel spreadsheet mapping an author defined TextID to a translated text for the user's language. このテーブルにはコレクションや他のデータ ソースを使用することもできますが、アプリ外で翻訳者が編集と管理を行いやすいので Excel を使用することをお勧めします。Although you could use a collection or any other data source for this table, we chose Excel because it is easy to edit and manage outside of the app by translators.

  1. Excel で次のテーブルを作成します。Create the following table in Excel:

    言語の列が blank のエントリは、特定のテキスト文字列が所定の言語で見つからなかった場合に、既定値として使用されます。The entry with blank for the Language column will be used as the default if there is no specific text string found for a given language. このエントリは、特定の TextID に関するエントリの一番後ろに配置する必要があります。This entry must appear after all other entries for a given TextID.

    ローカライズが目的のため、注目する必要があるのはロケールの言語だけで、地域は必要ありません。For our purposes, we only need to look at the language of the locale and not the region. もし地域を考慮することが重要であれば、言語タグの完全な値を上記のテーブルに入力することもできました。If regional considerations were important, we could have included the full language tag value in the table above.

  2. [挿入] リボンの [テーブル] コマンドを使用して、これを適切な Excel テーブルに変更します。Use the Insert ribbon, Table command, to make this into a proper Excel table. 既定ではこのテーブルの名前は Table1 になりますが、[テーブル ツール] リボンの [デザイン] タブの左端にある [テーブル名:] ボックスで、好きな名前に変更できます。By default, it will be named Table1 but you can name it whatever you like with the Table Tools/Design ribbon and the Table Name: text box on the far left hand side.
  3. Excel ファイルをローカル ファイル システムに保存します。Save the Excel file to your local file system.
  4. PowerApps の右側のウィンドウで [データ ソース] タブをクリックまたはタップし、[データソースの追加] をクリックまたはタップします。In PowerApps, in the right-hand pane, click or tap the Data Sources tab, and then click or tap Add data source.
  5. [静的データをアプリに追加します] をクリックまたはタップし、保存した Excel ファイルをクリックまたはタップして、[開く] をクリックまたはタップします。Click or tap Add static data to your app, click or tap the Excel file that you saved, and then click or tap Open.
  6. 作成したテーブルを選択して、[接続] をクリックまたはタップします。Select the table that you created, and then click or tap Connect.

アプリでこれまでテキスト "Hello" を使用していた場所に、次の数式を設定します。In your app, wherever you would have used the text "Hello" before, use this formula instead:

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

この数式では、ユーザーの言語に適した LocalizedText の値が検索されます。適切な値が見つからない場合は、既定の blank バージョンに戻されます。This formula will lookup the appropriate LocalizedText value for the language of the user, and if that is not found, will fall back on the default blank version.

その他の言語に翻訳された文字列は、お使いの言語での文字列よりもはるかに長くなる可能性があることに注意してください。Be aware that translated strings in other languages could be significantly longer than they are in your language. 多くの場合、ユーザー インターフェイスでこれらの文字列を表示するラベルやその他の要素を、大きくして適応させる必要があります。In many cases, the labels and other elements that display the strings in your user interface will need to be wider to accommodate.

翻訳サービスTranslation service

Microsoft Translator サービスなどの翻訳サービスを使用して、オンデマンドでテキストを翻訳することができます。You can translate text on demand using a translation service, such as the Microsoft Translator service:

  1. PowerApps の右側のウィンドウで [データ ソース] タブをクリックまたはタップし、[データソースの追加] をクリックまたはタップします。In PowerApps, in the right-hand pane, click or tap the Data Sources tab, and then click or tap Add data source.
  2. [Microsoft Translator] をクリックまたはタップします。Click or tap Microsoft Translator.

アプリでこれまでテキスト "Hello" を使用していた場所に、次の数式を設定します。In your app, wherever you would have used the text "Hello" before, use this formula instead:

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

Microsoft Translator サービスでは、Language 関数が返すのと同じ言語タグが使用されます。The Microsoft Translator service uses the same language tags that the Language function returns.

あらかじめ翻訳されたテキスト文字列のテーブルを利用した先ほどの例と比較すると、この方法にはいくつかの欠点があります。This approach comes with some drawbacks when compared to the previous example which utilized a pre-translated table of text strings:

  • ネットワーク経由のサービスの呼び出しが必要なため、翻訳の完了に時間がかかります。The translation will take time to complete, requiring a call to a service across the network. その結果、翻訳されたテキストがアプリに表示されるまでタイムラグがあります。This will result in a lag to see the translated text in your app.
  • 翻訳は機械的に行われるため、期待どおりでなかったり、アプリ内の状況に適していなかったりする可能性があります。The translation will be mechanical and may not be what you anticipate or be the best choice for the situation within your app.