多くの場合、モデルのローカライズは、数値形式のローカライズ、ユーザー インターフェース言語の選択と併せて行われます。これらのトピックの詳細については、数値の書式設定のローカライズとサポートされているユーザー インターフェース言語のドキュメントをご覧ください。
モデルのローカライズでは、ユーザーの言語 / 地域に応じてモデルのラベルと説明の表示方法をカスタマイズできます。
ローカライズは、地理的位置や言語に基づいていなくてもかまいません。ロケールを使用して、内部ユーザーと外部ユーザー、マネージャーと個々のユーザーなどの他の識別要素を表したり、それに従ってラベルと説明をカスタマイズしたりできます。
現在、モデルのローカライズはプロジェクトのインポートに対応していません。
このページでは、プロジェクトをローカライズする手順について説明します。
- モデルにラベル、グループラベル、説明を追加して、ローカライズする要素を決定します。
- ロケール文字列ファイルを作成して、プロジェクトのローカライズ定義を指定します。
- プロジェクトのマニフェスト ファイルにローカライズ設定を追加して、プロジェクトのローカライズを有効にします。
- 言語 / 地域にユーザーを割り当てることで、広告の表示をユーザーごとに決定します。
Looker のユーザー インターフェースのローカライズや数値形式のローカライズについて詳しくは、サポートされるユーザー インターフェース言語と数値形式のローカライズに関するドキュメント ページをご覧ください。
モデルファイルでローカライズされた要素を使用する
モデル内のラベル、グループラベル、および説明をローカライズできます。それには、以下が含まれます。
label
: field、model、Explore、または view のレベル- Looker 拡張フレームワークのアプリケーションには
label
group_label
(Explore、フィールドのレベル)group_item_label
(フィールドのレベル)description
(Explore、フィールドのレベル)
dimension_group
ではローカライズはサポートされていません。代わりに、group_label
と group_item_label
を使用して、ローカライズ可能な独自のディメンション セットを作成します。
プロジェクトにローカライズされた LookML ダッシュボードを作成することもできます。以下のLookMLダッシュボードパラメーターをローカライズできます。
title
description
text
(note
パラメータのサブパラメータで、type: text
の要素だけでなく、すべてのダッシュボード要素の種類に適用できます)comparison_label
single_value_title
プロジェクト内のローカライズ可能なすべてのフィールドを表示するには、プロジェクトのローカライズ レベルを strict
に設定します。この設定により、Looker IDE は、ローカライズは可能だがラベルがない LookML 要素と、ローカライズはできるがロケール文字列ファイルで定義されない LookML モデル内の文字列について、LookML 検証エラーを返します。
ラベルと説明を含むビューファイルの例を次に示します。
view: flights {
label: "flight_info"
sql_table_name: flightstats.accidents ;;
dimension: id {
label: "id"
primary_key: yes
type: number
sql: ${TABLE}.id ;;
}
dimension: air_carrier {
label: "airline"
type: string
sql: ${TABLE}.air_carrier ;;
}
dimension: country {
label: "country"
description: "country_of_departure"
type: string
map_layer_name: countries
sql: ${TABLE}.country ;;
}
dimension: number_of_engines {
label: "number_of_engines"
type: string
sql: ${TABLE}.number_of_engines ;;
}
dimension: location {
type: string
sql: ${TABLE}.location ;;
}
permissive
のローカライズ レベルを使用して、これらの値を文字列ファイルにローカライズします。location
ディメンションにはラベルがないため、ローカライズなしのディメンションの表示例がわかります。
ロケールストリングファイルの作成
ロケール文字列ファイルでは、Key-Value ペアを使用してモデルのラベルと説明をロケールごとに定義します。各 Key-Value ペアの左側には、モデルのラベルまたは説明文字列であるローカライズ キーが表示されます。キーと値のペアの右側では、そのストリングをLooker UIでどのように表示するかを定義します。
プロジェクトで使用するロケールごとに、専用の文字列ファイルを作成します。文字列は、プロジェクトごとにロケールごとに 1 つだけ作成する必要があります。デフォルトの言語 / 地域に一致する名前の文字列ファイルが必要です。たとえば、プロジェクトのマニフェスト ファイルで default_locale: en
を指定した場合、モデルに en.strings.json
というファイルが必要です。各文字列は、デフォルトの言語 / 地域文字列ファイルで定義する必要があります。定義しないと、ローカライズされません。
モデルのローカライズは、地理的位置や言語に基づく必要はありません。ただし、モデルのローカライズを使用していて、Looker にネイティブにダッシュボードとビジュアリゼーションのユーザー インターフェースも使用する場合は、文字列ファイルのタイトルを Looker のサポートされている言語 / 地域と一致させる必要があります。
以下は、Locale の値が en
のすべてのユーザーに対して使用されるサンプル en.strings.json
ファイルです。この例では、en
もデフォルトの言語 / 地域として指定されているため、ローカライズするには、このファイルですべての文字列を定義する必要があります。
{
"flight_info": "Flights",
"id": "Identifier",
"airline": "Air Carrier",
"country_of_departure": "Country of Departure",
"number_engines": "Number of Engines"
}
Looker で en
ユーザーが次のように表示されます。
次の点にご注意ください。
- 上記のビューファイルでは、
location
ディメンションにラベルがまったく付けられなかったため、Looker ではディメンションの名前を大文字で表記した「&location」と表示されます。 en.strings.json
ファイルで「country」ラベルのローカライズを定義していないため、Looker ではビューファイルで定義されているとおりにラベルが大文字にせず「&country」と表示されています。
別の例として、Locale の値が es_ES
のすべてのユーザーを対象にする es_ES.strings.json
ファイルを作成できます。
{
"flight_info": "Vuelos",
"id": "Identificador",
"airline": "Aerolínea",
"country": "País",
"country_of_departure": "País de Partida",
"number_engines": "Número de Motores"
}
Looker で es_ES
ユーザーが次のように表示されます。
次の点にご注意ください。
- 前の例と同様に、上のビューファイルでは
location
ディメンションにラベルがまったく指定されていないため、Looker はディメンションの名前を大文字で表記して「"Location"」と表示します。 en.strings.json
ファイルで、デフォルトのロケール文字列ファイルである「country」ラベルのローカライズは定義しませんでした。そのため、es_ES.strings.json
ファイルで「国」を定義しても、Looker はこの文字列をローカライズせず、ビューファイルで定義されているとおりにラベル「国」を表示します。
プロジェクトのマニフェスト ファイルにローカライズ設定を追加する
プロジェクトのローカライズを有効にするには、プロジェクトのマニフェスト ファイルに localization_settings
パラメータを追加します。
プロジェクトにまだマニフェスト ファイルがない場合、Looker IDE でファイル ブラウザの上部にある + アイコンから作成できます。
マニフェスト ファイルで、ローカライズ設定を追加します。次に例を示します。
localization_settings: {
default_locale: en
localization_level: permissive
}
default_locale
default_locale
パラメータは、プロジェクト内のデフォルトのロケール文字列ファイルの名前を指定します。
デフォルトのロケール文字列ファイルは、モデルからローカライズする文字列を決定します。ラベルまたは説明文字列が別のロケール文字列ファイルで定義されていても、default ロケール文字列ファイルで定義されていない場合、Looker UI にはローカライズされていない文字列が表示されます。ロケール文字列ファイルの設定について詳しくは、上記のセクションをご覧ください。
プロジェクトのデフォルト ロケールが、Looker ユーザーのデフォルトのロケールと混同されないように注意してください。Looker 管理者はインスタンスのデフォルトの言語 / 地域を設定できます。デフォルトが設定されていない場合、Looker はデフォルトで en
に設定されます。ユーザーがユーザーまたはユーザーが属するユーザー グループのロケールの値を特に入力しなかった場合、Looker はユーザーをデフォルトのインスタンス ロケールに割り当てます。また、管理者がデフォルトのインスタンス ロケールを設定していない場合、Looker ではユーザーが en
ロケールに割り当てられます。
そのため、Looker 管理者がすべての Looker ユーザーの Locale 値を確実に設定しない限り、インスタンスの default_locale
パラメータをプロジェクトのデフォルトの言語 / 地域に設定し、その言語 / 地域に対応する .strings.json
ですべてのラベルと説明をローカライズする必要があります。
localization_level
プロジェクトのローカライズレベルでは、ローカライズされていない要素をモデルで許可するかどうかを指定します。
- ローカライズ レベルを
strict
に設定して、プロジェクト内のすべてのモデル、Explore、ビュー、フィールドで、ローカライズされたラベルをリクエストします。Looker IDE は、ラベルがないこれらの要素、およびデフォルトのロケール文字列ファイルで定義されていないラベルと説明に対して、LookML 検証エラーを返します。 - ローカライズ レベルを
permissive
に設定して、ラベルのない要素を許可し、デフォルトのローカライズ文字列ファイルで定義されていないラベルと説明を許可します。
strict
のローカライズ レベルをご希望の場合であっても、プロジェクトの作成時に検証レベルのエラーを防ぐため、プロジェクトのローカライズ レベルを permissive
に設定しておくと便利です。すべてのラベルと説明のローカライズを終えたら、ローカライズ レベルを strict
に設定して、エラーを確認します。
ユーザーをロケールに割り当てる
ロケール文字列ファイルを設定したら、いずれかのロケール文字列ファイルに対応するロケールにユーザーを割り当てることができます。これは、インスタンス、ユーザー グループ、または個々のユーザーのレベルで、ロケール フィールドまたは locale
ユーザー属性を使用して行うことができます。
たとえば、es_ES.strings.json
ファイルに定義されているラベルと説明をユーザーが参照できるようにするには、ユーザーの Locale を es_ES
に設定します。
[Locale] 欄でプルダウン メニューから組み込み言語 / 地域を選択するのではなく、このフィールドをクリックして文字列ファイル名を入力すると、作成したカスタム ロケールを入力できます。詳細については、ユーザーのドキュメント ページをご覧ください。
個別またはユーザー グループ レベルでユーザーのロケールを設定していない場合、Looker はユーザーをインスタンスの言語 / 地域に割り当てます。ただし、インスタンスのロケールに対して
.strings
ファイルが設定されていない場合、それらのユーザーのモデルのローカライズは機能しません。そのため、インスタンスのデフォルト ロケールごとに.strings
ファイルを設定する必要があります。詳しくは、default_locale
またはロケール文字列ファイルの作成のセクションをご覧ください。
SSO埋め込みユーザーのロケールの設定
SSO 埋め込み URL には、その他のユーザー属性と同様にユーザーのロケール値を含めることができます。SSO 埋め込みに必要な正確な形式は、SSO 埋め込み URL スクリプトの作成に使用したプログラミング言語によって異なりますが、ユーザー属性の名前は locale
です。SSO 埋め込み URL と SSO 埋め込み URL の作成用ツールについて詳しくは、シングル サインオン(SSO)埋め込みのドキュメントをご覧ください。
Liquid変数でのロケールの使用
前述したように、モデルのローカライズを使用すると、さまざまなロケールに合わせてモデルのラベルと説明の表示をカスタマイズできます。Liquid 変数にローカライズ キーを含めることもできます。これにより、データ値もローカライズできます。
たとえば、en.strings.json
というデフォルトのロケール文字列ファイルで、次のエントリを含むローカライズ キー domestic
と international
を作成できます。
{
"domestic": "Domestic",
"international": "International"
}
また、es_ES.strings.json
ファイルで、次のローカライズ キーのスペイン語バージョンを提供できます。
{
"domestic": "Nacional",
"international": "Internacional"
}
そこで、Liquid 変数の domestic
と international
のローカライズ キーを使用して、ディメンションの出力をローカライズできます。
dimension: from_US {
label: "from_us"
type: string
sql: CASE
WHEN ${TABLE}.country = 'United States' THEN '{{ _localization['domestic'] }}'
ELSE '{{ _localization['international'] }}'
END;;
}
en
ロケールのユーザーには、次のように表示されます。
es_ES
ロケールのユーザーには、次のように表示されます。
ダッシュボード フィルタとダッシュボード要素フィルタで Liquid を使用して、フィルタ内のデフォルト値をローカライズすることもできます。例えば、LookMLダッシュボードに前述のExploreからのタイルがあり、次のように定義されている対象タイルに関するフィルタがあるとします。
filters:
flights.from_US: "{{ _localization['domestic'] }}"
en
ロケールのユーザーがダッシュボードのそのタイルから探索した場合に次のように表示されます。
es_ES
言語 / 地域のユーザーがこのタイルをダッシュボード上で探索すると、次のように表示されます。
ローカライズルールが拡張オブジェクトとリファインオブジェクトに適用される方法を理解する
ローカライズ ルールは、ビュー、Explore、LookML ダッシュボードを拡張する場合や、ビューや Explore を絞り込む場合に適用されます。
オブジェクトを拡張または改良した後に新しいラベルや説明を追加した場合は、ロケール文字列ファイルでローカライズ定義を指定してください。
たとえば、flights
ビューがあるとします。
view: flights {
label: "flight_info"
sql_table_name: flightstats.accidents ;;
...
}
次に、flights
ビューを拡張する新しいビューを作成します。
include: "/views/flights.view"
view: flights_enhanced {
extends: [flights]
label: "enhanced_flight_info"
}
ロケール文字列ファイルでは、両方のビューラベル文字列("flight_info"
と "enhanced_flight_info"
)を定義する必要があります。プロジェクトのローカライズ レベルが strict
に設定されている場合、新しいラベルや説明が定義されるまでアップデートは commit できません。