複数言語の Power BI レポートでロケール値を使用する
Power BI サービスに読み込まれるすべてのレポートは、ロケールと呼ばれる言語と地理的な領域を識別するユーザー コンテキストを使用して初期化されます。 ほとんどの場合は、ロケールによって国/地域が識別されます。 Power BI サービスは、カルチャ名を使用してユーザーの言語とロケールの組み合わせを追跡します。
カルチャ名は通常、小文字の言語識別子と、ハイフンで区切られた大文字のロケール識別子です。 カルチャ名 en-US
は、英語を話す米国のユーザーを識別します。 カルチャ名 es-ES
は、スペイン語を話すスペインのユーザーを識別します。 カルチャ名 fr-FR
は、フランス語を話すフランスのユーザーを識別します。 カルチャ名 de-DE
は、ドイツ語を話すドイツのユーザーを識別します。
USERCULTURE | Language | Locale |
---|---|---|
ja-JP | 英語 | United States |
es-ES | スペイン語 | スペイン |
fr-FR | フランス語 | フランス |
de-DE | ドイツ語 | ドイツ |
Note
場合によっては、カルチャ名に他の情報も含まれます。 たとえば、セルビアのセルビア語には sr-Cyrl-RS
と sr-Latn-RS
という 2 つの異なるカルチャ名があります。 スクリプトと呼ばれる中央の部分 (Cyrl と Latn) は、キリル文字とラテン文字のどちらを使用するかを示します。 詳細については、RFC 4646 を参照してください。
カルチャ名の値の一覧については、「ISO 639 言語コード」および「オンライン閲覧プラットフォーム」を参照してください。
メタデータ変換用にプロジェクトを整理する
メタデータ変換を使用して新しい Power BI セマンティック モデルを作成するプロジェクトの開始時に、サポートする予定のカルチャ名を一覧表示します。 次に、各カルチャ名のメタデータ変換を追加してセマンティック モデルを拡張します。
次の図は、既定の言語設定が en-US
のセマンティック モデルを示しています。 このセマンティック モデルは、他の 3 つのカルチャ名 es-ES
、fr-FR
、de-DE
のメタデータ変換によって拡張されています。
すべてのメタデータ変換は、特定のカルチャ名に関連付けられます。 カルチャ名は、Power BI セマンティック モデルのコンテキスト内でメタデータ変換を追加および取得するために使用される参照キーとして機能します。
セマンティック モデルの既定言語にはメタデータ変換を指定する必要はありません。 Power BI では、セマンティック モデル オブジェクト名をそのカルチャ名に対して直接使用できます。 セマンティック モデル オブジェクト名が既定の言語のメタデータ変換の仮想セットとして機能するというのがもう 1 つの考え方です。
既定の言語のメタデータ変換を明示的に追加できます。 この方法は慎重に使用してください。 Power BI Desktop は、レポート デザイナーへのメタデータ変換の読み込みをサポートしていません。 Power BI Desktop は、メタデータ変換は読み込まず、セマンティック モデル オブジェクト名のみを読み込みます。 既定の言語のメタデータ変換を明示的に追加した場合、Power BI レポートは、Power BI Desktop と Power BI サービスで見た目が異なります。
Power BI でレポートを読み込む
ユーザーが HTTP GET 要求を使用して Power BI レポートに移動すると、ブラウザーは、値が有効なカルチャ名に設定された Accept-Language
という名前の HTTP ヘッダーを送信します。 次のスクリーンショットは、Accept-Language
ヘッダー値 en-US
を送信する GET 要求を示しています。
Power BI サービスは、レポートを読み込むとき、Accept-Language
ヘッダーで渡されたカルチャ名を読み取り、それを使用してレポート読み込みコンテキストの言語とロケールを初期化します。 ユーザーは、デバイスで地域設定を構成することで、Accept-Language
ヘッダー値に渡されるカルチャ名を制御できます。
Power BI サービスで Power BI レポートを開くときに レポート URL の末尾に language
パラメーターを追加し、その値を有効なカルチャ名に設定することで、Accept-Language
ヘッダー値をオーバーライドできます。 たとえば、language
パラメーター値を fr-CA
に設定することで、フランス語を話すカナダのユーザーのレポートの読み込みをテストできます。
Note
レポート URL への language
パラメーターの追加は、Power BI サービスでメタデータ変換をテストする便利な方法です。 この手法では、ローカル コンピューターやブラウザーで設定を再構成する必要はありません。
1 つの言語で複数のロケールをサポートする
1 つの音声言語で複数のロケールをサポートすることが必要な場合があります。 フランス語を話すユーザーが、フランス、ベルギー、カナダなど、さまざまな国に住んでいるシナリオを考えてみましょう。 その場合は、既定の言語 en-US
と、es-ES
、fr-FR
、de-DE
を含む 3 つのカルチャ名のメタデータ変換を使用してセマンティック モデルを発行します。
フランス語を話すカナダのユーザーが Accept-Language ヘッダー値 fr-CA
のレポートを開いた場合、どうなるでしょうか。 Power BI サービスはフランス語 (fr-FR
) の変換を読み込むでしょうか、あるいは英語のセマンティック モデル オブジェクト名に戻るでしょうか。
メジャーは現在、Power BI のテーブルや列とは異なる動作をします。 メジャーを使用する場合、Power BI サービスは最も近い一致を見つけようとします。 カルチャ名が fr-CA
の場合、メジャーの名前は fr-FR
のメタデータ変換を使用して読み込まれます。
テーブルと列を使用する場合、Power BI サービスでは、要求内のカルチャ名とサポートされているメタデータ変換が完全に一致する必要があります。 完全に一致するものがない場合、Power BI サービスは、セマンティック モデル オブジェクト名の読み込みに戻ります。 このシナリオのテーブルと列の名前は、英語のセマンティック モデル オブジェクト名を使用して読み込まれます。
Note
テーブルと列の名前に既定の言語を使用することは、Power BI の既知の問題です。
サポートするすべてのカルチャ名のメタデータ変換を追加することをお勧めします。 この例では、 カルチャ名 fr-FR
、fr-BE
、fr-CA
をサポートするために 3 セットのフランス語のメタデータ変換を追加します。 このアプローチでは、フランスのユーザー向けのフランス語のメタデータ変換がカナダのユーザー向けのフランス語のメタデータ変換とは異なるシナリオを処理します。
メジャーと USERCULTURE を使用して変換を実装する
複数言語レポートの作成に役立つ Power BI のもう 1 つの機能は、データ分析式 (DAX) USERCULTURE
関数です。 メジャー内で呼び出されると、USERCULTURE
関数は現在のレポート読み込みコンテキストのカルチャ名を返します。 この方法により、変換を動的に実装するメジャーに DAX ロジックを記述できます。
メジャーで USERCULTURE
を呼び出すことで変換を動的に実装できますが、計算テーブルや計算列で同じ結果を得ることはできません。 計算テーブルと計算列の DAX 式は、セマンティック モデルの読み込み時に評価されます。 計算テーブルまたは計算列の DAX 式で USERCULTURE
関数を呼び出すと、セマンティック モデルの既定の言語のカルチャ名が返されます。 メジャーで USERCULTURE
を呼び出すと、現在のユーザーのカルチャ名が返されます。
レポートの例では、レポート バナーの右上隅に USERCULTURE
の戻り値が表示されます。 通常、実際のアプリケーションでは、このようなレポート要素は表示されません。
このコードは、動的変換を実装するメジャーの DAX 式を記述する簡単な例です。 USERCULTURE
を呼び出す SWITCH
ステートメントを使用して、動的変換を実装するための基本的なパターンを形成できます。
Product Sales Report Label = SWITCH( USERCULTURE() ),
"es-ES", "Informe De Ventas De Productos",
"fr-FR", "Rapport Sur Les Ventes De Produits",
"fr-BE", "Rapport Sur Les Ventes De Produits",
"fr-CA", "Rapport Sur Les Ventes De Produits",
"de-DE", "Produktverkaufsbericht",
"Product Sales Report"
)
詳細については、「Power BI Desktop における DAX の基本事項」を参照してください。
現在のユーザー ロケールを使用して日付と数値の書式設定を行う
動的に変換するには、ユーザーのカルチャ名に基づく条件付きロジックを使用して、メジャーに DAX 式を記述します。 Power BI ビジュアルがロケール固有の書式設定をバックグラウンドで自動的に処理するため、ほとんどの場合、ユーザーのロケールに基づく条件付き DAX ロジックを記述する必要はありません。
単純なシナリオで、ニューヨーク (en-US
) とロンドン (en-GB
) の両方に居住するレポート コンシューマーの対象ユーザー向けのレポートを作成します。 すべてのユーザーが英語 (en
) を話しますが、一部のユーザーは日付と数値の書式が異なる別々の地域 (US
と GB
) に居住しています。 たとえば、ニューヨークのユーザーは日付を mm/dd/yyyy
形式で表示し、ロンドンのユーザーは日付を dd/mm/yyyy
形式で表示したいと考えています。
地域の書式設定をサポートする書式指定文字列を使用して列とメジャーを構成すれば、すべてが期待どおりに動作します。 日付を書式設定する場合は、地域の書式設定をサポートしている短い日付や長い日付などの書式指定文字列を使用することをお勧めします。
次の例は、短い日付で書式設定された日付値が別々のロケールで読み込まれたときにどのように表示されるかを示しています。
Locale | フォーマット |
---|---|
ja-JP | 12/31/2022 |
en-GB | 31/12/2022 |
pt-PT | 31-12-2022 |
de-DE | 31.12.2022 |
ja-JP | 2022/12/31 |