モデルのローカライズにより、ユーザーのロケールに従ってモデルのラベルと説明を表示する方法をカスタマイズできます。
地理的な場所または言語に基づいてローカライズを行う必要はありません。ロケールを使用して、内部ユーザーと外部ユーザー、マネージャーと個々のユーザーなどの他の識別要素を表したり、それに従ってラベルと説明をカスタマイズしたりできます。
このページでは、プロジェクトをローカライズする手順について説明します。
- モデルにラベル、グループラベル、説明を追加して、ローカライズする要素を決定します。
- ロケール文字列ファイルを作成して、プロジェクトのローカライズ定義を提供します。
- プロジェクトのマニフェスト ファイルにローカライズ設定を追加して、プロジェクトのローカライズを有効にします。
- ロケールにユーザーを割り当てることで、ユーザーごとに表示内容を決定します。
多くの場合、モデルのローカライズは、数値形式のローカライズとユーザー インターフェースの言語の設定を指定する管理者と連携して行われます。
モデル内のラベルと説明のローカライズ
モデル内のラベル、グループラベル、および説明をローカライズできます。それには、以下が含まれます。
- フィールド、モデル、Explore、ビュー の
label
- Looker 拡張フレームワークにおけるアプリケーションの
label
- Explore の
group_label
、フィールドのgroup_label
- フィールドの
group_item_label
- Explore の
description
、フィールドのdescription
プロジェクトで、ローカライズされた LookML ダッシュボードを作成することもできます。以下のLookMLダッシュボードパラメーターをローカライズできます。
title
description
text
(note
パラメータのサブパラメータであり、type: text
の要素を除く、すべてのダッシュボードの要素タイプに適用できます)comparison_label
single_value_title
ローカライズ可能なプロジェクト内のすべてのフィールドを表示するには、プロジェクトのローカライズレベルを strict
に設定します。この設定により、Looker IDE は、ローカライズできるがラベルがない LookML 要素、およびローカライズできるがロケール文字列ファイルで定義されていない LookML モデル内の文字列に対して、LookML 検証エラーを返します。
LookML の次の例では、flights
ビュー、id
、country
、number_of_engines
の各フィールドにラベルが付けられています。country
フィールドには説明もあります。
view: flights {
label: "flight_info"
sql_table_name: flightstats.accidents ;;
dimension: id {
label: "id"
primary_key: yes
type: number
sql: ${TABLE}.id ;;
}
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 ペアの左側には、ローカライズ キーがあります。これは、モデルのラベルまたは説明文字列です。キーと値のペアの右側では、そのストリングをLooker UIでどのように表示するかを定義します。
プロジェクトに使用するロケールごとに、専用の文字列ファイルを作成する必要があります。各ロケールの文字列ファイルは 1 つだけ作成します。文字列ファイルの名前は、デフォルトのロケールと一致させる必要があります。たとえば、プロジェクトのマニフェスト ファイルで default_locale: en
を指定した場合は、モデルのファイルは en.strings.json
とする必要があります。各文字列は、デフォルト ロケールの文字列ファイルで定義する必要があります。そうしないと、ローカライズされません。
この en.strings.json
ファイルの例は、ロケールの値が en
であるすべてのユーザーに使用されます。次の LookML の例では、en
もデフォルトのロケールとして指定されるため、ローカライズするには、このファイルですべての文字列を定義する必要があります。
{
"flight_info": "Flights",
"id": "Identifier",
"country_of_departure": "Country of Departure",
"number_engines": "Number of Engines"
}
次の表では、ロケールが en
に設定されたユーザーが、Looker Explore のデータテーブルで確認できる内容を示します。
Flights Identifier | Flights country | Flights Location | Flights Number of Engines |
---|---|---|---|
493 | Congo | Kisangani, Congo | 3 |
2167 | Saudi Arabia | Riyadh, Saudi Arabia | 3 |
2657 | Austria | Vienna, Austria | 2 |
17992 | United States | Kansas City, MO | 2 |
18893 | United States | Anchorage, AK | 4 |
次の点にご注意ください。
- 前述の
flights
ビューのサンプル LookML では、location
ディメンションにラベルがまったく指定されていないため、Looker ではディメンションの名前が大文字で始まる「Location」と表示されます。 en.strings.json
ファイルで「country」ラベルのローカライズを定義していないため、Looker では、ビューファイルで定義されているように、そのラベルが小文字で始まる「country」と表示されます。
もう 1 つの例として、ロケール の値が es_ES
であるすべてのユーザーに使用される es_ES.strings.json
ファイルを作成できます。
{
"flight_info": "Vuelos",
"id": "Identificador",
"country": "País",
"country_of_departure": "País de Partida",
"number_engines": "Número de Motores"
}
次の表では、ロケールが es_ES
に設定されたユーザーが Looker で確認できる内容を示します。
Vuelos Identificador | Vuelos country | Vuelos Location | Vuelos Número de Motores |
---|---|---|---|
493 | Congo | Kisangani, Congo | 3 |
2167 | Saudi Arabia | Riyadh, Saudi Arabia | 3 |
2657 | Austria | Vienna, Austria | 2 |
17992 | United States | Kansas City, MO | 2 |
18893 | United States | Anchorage, AK | 4 |
次の点にご注意ください。
- 前の例と同様に、元のビューではラベルと説明が追加されていますが、
location
ディメンションではラベルがまったく指定されていないため、Looker ではディメンションの名前が大文字で始まる「Location」と表示されます。 en.strings.json
ファイルでは、デフォルトのロケール文字列ファイルである「country」ラベルのローカライズを定義していません。そのため、es_ES.strings.json
ファイルで「country」を定義しても、Looker はこの文字列をローカライズせず、ビューファイルで定義されているようにラベルを「country」と表示します。
プロジェクトのマニフェストファイルにローカライズ設定を追加する
プロジェクトのローカライズを有効にするには、プロジェクトのマニフェスト ファイルに localization_settings
パラメータを追加します。
マニフェストファイルに、ローカライズ設定を追加します。 次に例を示します。
localization_settings: {
default_locale: en
localization_level: permissive
}
default_locale
default_locale
パラメータは、プロジェクト内のデフォルトのロケール文字列ファイルの名前を指定します。
デフォルトのロケールストリングファイルにより、モデル内のローカライズされるストリングが決定されます。 ラベルや説明文字列が別のロケール文字列ファイルで定義されていても、デフォルトのロケール文字列ファイルで定義されていない場合、Looker UI ではローカライズされていない文字列が表示されます。
プロジェクトのデフォルトのロケールと、Looker ユーザーのデフォルトのロケールを混同しないでください。Looker 管理者は、インスタンスにデフォルトのロケールを設定できます。デフォルトが設定されていない場合、Looker のデフォルトは en
です。管理者が、ユーザーまたはユーザーが属するユーザー グループの ロケール の値を明示的に入力していない場合、ユーザーを Looker のデフォルトのインスタンス ロケールに割り当てます。また、管理者がデフォルトのインスタンス ロケールを設定していない場合、ユーザーを en
ロケールに割り当てます。
そのため、Looker 管理者がすべての Looker ユーザーに対してロケールの値を設定している場合を除き、プロジェクトの default_locale
パラメータをインスタンス(またはen
(デフォルトが設定されていない場合)など)、そのロケールの .strings.json
ファイル内ですべてのラベルと説明のローカライズを定義します。
localization_level
プロジェクトのローカライズレベルでは、ローカライズされていない要素をモデルで許可するかどうかを指定します。
- プロジェクト内のすべてのモデル、Explore、ビュー、およびフィールドでローカライズされたラベルが必要な場合は、ローカライズレベルを
strict
に設定します。これらの要素のいずれかにラベルがない場合、およびラベルと説明のいずれかがデフォルトのロケールストリングファイルで定義されていない場合は、Looker IDE で LookML 検証エラーが返されます。 - ラベルのない要素を許可する場合、およびデフォルトのローカライズストリングファイルに定義されていないラベルと説明を許可する場合は、ローカライズレベルを
permissive
に設定します。
ローカライズレベルを strict
にしたい場合でも、プロジェクトのローカライズレベルを permissive
に設定して、プロジェクトの開発時に検証エラーが発生しないようにすると便利かもしれません。すべてのラベルと説明のローカライズが完了したら、ローカライズ レベルを strict
に設定してエラーを表示できます。
ユーザーをロケールに割り当てる
ロケールストリングファイルを設定したら、ロケールストリングファイルのいずれかに対応するロケールにユーザーを割り当てることができます。 これは、インスタンス、ユーザー グループ、または個々のユーザーレベルで、ロケール フィールドまたは locale
ユーザー属性を使用して行います。
たとえば、es_ES.strings.json
ファイルに定義されているラベルと説明をユーザーが確認できるようにするには、Looker 管理者がユーザーのロケール設定を es_ES
に設定する必要があります。
文字列ファイルで作成したカスタム ロケールを [ロケール] フィールドに入力するには、プルダウン メニューから組み込みロケールを選択するのではなく、項目をクリックして文字列ファイル名を入力します。詳細については、ユーザー のページをご覧ください。
署名付き埋め込みユーザーに対するロケールの設定
他のユーザー属性と同様、ユーザーのロケール値は、署名付き埋め込み URL に含めることができます。署名付き埋め込みに必要な厳密な形式は、署名付き埋め込み URL スクリプトの作成に使用されるプログラミング言語によって異なりますが、ユーザー属性の名前は locale
です。署名付き埋め込み URL と署名付き埋め込み URL を作成するツールの詳細については、署名付き埋め込みのドキュメントをご覧ください。
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
ロケールのユーザーでは、次の結果を確認できます。
Flights Identifier | Flights country | Flights From the US? |
---|---|---|
289 | United States | Domestic |
400 | Canada | International |
493 | Congo | International |
936 | United States | Domestic |
es_ES
ロケールのユーザーでは、次の結果を確認できます。
Vuelos Identificador | Vuelos País | Vuelos ¿De Los Estados Unidos? |
---|---|---|
289 | United States | Nacional |
400 | Canada | Internacional |
493 | Congo | Internacional |
936 | United States | Nacional |
ロケールが es_ES
のユーザーは、「Domestic」と「International」のデータが、それぞれ「Nacional」と「Internacional」にローカライズされることを確認できます。
また、LookML ダッシュボードのフィルタと LookML ダッシュボードの要素フィルタで Liquid を使用して、フィルタ内でデフォルト値をローカライズすることもできます。たとえば、LookML ダッシュボードに、このローカライズされたモデルのデータを使用するタイルがあり、そのタイルに次のように LookML で定義されたフィルタがあるとします。
filters:
flights.from_US: "{{ _localization['domestic'] }}"
en
ロケールのユーザーがダッシュボードのそのタイルからデータ探索すると、Explore は Flights From the US? フィールドの値 Domestic でフィルタされ、Explore のデータテーブルに次の結果が含まれるようになります。
Flights Identifier | Flights country | Flights From the US? |
---|---|---|
289 | United States | Domestic |
936 | United States | Domestic |
es_ES
ロケールのユーザーがダッシュボードのそのタイルからデータ探索すると、Explore は Vuelos ¿De Los Estados Unidos? フィールドの値 Nacional でフィルタされ、Explore のデータテーブルに次の結果が含まれるようになります。
Vuelos Identificador | Vuelos País | Vuelos ¿De Los Estados Unidos? |
---|---|---|
289 | United States | Nacional |
936 | United States | Nacional |
ローカライズルールが拡張オブジェクトとリファインオブジェクトに適用される方法を理解する
ビュー、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 できません。