Melokalkan model LookML

Dengan pelokalan model, Anda dapat menyesuaikan cara label dan deskripsi model ditampilkan sesuai dengan lokalitas pengguna.

Pelokalan tidak harus didasarkan pada lokasi geografis atau bahasa. Anda dapat menggunakan lokalitas untuk merepresentasikan faktor pembeda lainnya, seperti pengguna internal versus eksternal, atau manajer versus kontributor perorangan, dan menyesuaikan label serta deskripsi Anda.

Halaman ini menjelaskan langkah-langkah untuk melokalkan project Anda:

  1. Tentukan elemen mana yang akan dilokalkan dengan menambahkan label, label grup, dan deskripsi ke model Anda.
  2. Berikan definisi pelokalan untuk project Anda dengan membuat file string lokal.
  3. Aktifkan pelokalan untuk project Anda dengan menambahkan setelan pelokalan ke file manifes project.
  4. Tentukan tampilan untuk pengguna yang berbeda dengan menetapkan pengguna ke lokalitas.

Pelokalan model sering terjadi bersamaan dengan admin yang menentukan setelan pelokalan format angka dan bahasa antarmuka pengguna.

Melokalkan label dan deskripsi dalam model Anda

Anda dapat melokalkan label, label grup, dan deskripsi dalam model, termasuk berikut ini:

Anda juga dapat membuat dasbor LookML yang dilokalkan dalam project Anda. Parameter dasbor LookML berikut dapat dilokalkan:

Untuk melihat semua kolom di project yang dapat dilokalkan, Anda dapat menyetel tingkat pelokalan project ke strict. Dengan setelan ini, IDE Looker akan menampilkan error validasi LookML untuk elemen LookML apa pun yang dapat dilokalkan tetapi tidak memiliki label, dan untuk string apa pun dalam model LookML yang dapat dilokalkan tetapi tidak ditentukan dalam file string lokal.

Dalam LookML contoh berikut, label disediakan untuk tampilan flights dan kolom id, country, dan number_of_engines. Deskripsi juga diberikan untuk kolom 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 ;;
  }
}

Dalam contoh yang ada di halaman ini, kita akan melokalkan nilai ini dalam file string menggunakan tingkat pelokalan permissive. Perhatikan bahwa dimensi location tidak memiliki label, jadi kita dapat mendemonstrasikan cara menampilkan dimensi tanpa pelokalan.

Membuat file string lokalitas

File string lokal menggunakan pasangan nilai kunci untuk menentukan cara label dan deskripsi dalam model Anda ditampilkan untuk setiap lokalitas. Di sisi kiri setiap key-value pair adalah kunci pelokalan, yang merupakan string label atau deskripsi dari model Anda. Sisi kanan pasangan nilai kunci adalah tempat Anda menentukan cara string tersebut ditampilkan di UI Looker.

Untuk setiap lokalitas yang ingin Anda gunakan untuk project, Anda perlu membuat file string khusus. Buat hanya satu file string untuk setiap lokalitas. Anda harus memiliki file string yang diberi nama agar cocok dengan lokalitas default. Misalnya, jika Anda telah menentukan default_locale: en dalam file manifes project, Anda harus memiliki file dalam model yang disebut en.strings.json. Setiap string harus ditentukan dalam file string lokalitas default atau tidak akan dilokalkan.

Contoh file en.strings.json ini akan digunakan untuk semua pengguna yang memiliki nilai Locale en. Dalam LookML contoh berikut, en juga ditentukan sebagai lokalitas default, sehingga semua string harus ditentukan dalam file ini agar dapat dilokalkan.

{
  "flight_info": "Flights",
  "id": "Identifier",
  "country_of_departure": "Country of Departure",
  "number_engines": "Number of Engines"
}

Tabel berikut menunjukkan apa yang akan dilihat pengguna dengan setelan lokalnya en di tabel data Eksplorasi Looker:

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

Perhatikan hal berikut:

  • Dalam LookML contoh tampilan flights yang ditampilkan sebelumnya di halaman ini, tidak ada label yang diberikan untuk dimensi location, sehingga Looker menggunakan huruf kapital pada nama dimensi dan menampilkannya sebagai "Location".
  • Pelokalan untuk label "negara" tidak ditentukan dalam file en.strings.json, sehingga Looker menampilkan label sebagaimana yang ditentukan dalam file tampilan, tanpa menggunakan huruf kapital: "country".

Sebagai contoh lain, kita dapat membuat file es_ES.strings.json yang digunakan untuk semua pengguna dengan nilai Locale es_ES:

{
  "flight_info": "Vuelos",
  "id": "Identificador",
  "country": "País",
  "country_of_departure": "País de Partida",
  "number_engines": "Número de Motores"
}

Tabel berikut menunjukkan apa yang akan dilihat pengguna dengan lokalitas yang ditetapkan ke es_ES di 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

Perhatikan hal berikut:

  • Seperti pada contoh sebelumnya, di tampilan asli dengan label dan deskripsi yang ditambahkan, tidak ada label yang diberikan untuk dimensi lokasi, sehingga Looker menggunakan huruf kapital dan menampilkan nama dimensi sebagai "Location".
  • Pelokalan tidak ditentukan untuk label "country" dalam file en.strings.json, yang merupakan file string lokalitas default. Artinya, meskipun "country" ditentukan dalam file es_ES.strings.json, Looker tidak melokalkan string ini dan menampilkan label sebagaimana yang ditentukan dalam file tampilan: "country".

Menambahkan setelan pelokalan ke file manifes project Anda

Untuk mengaktifkan pelokalan project, tambahkan parameter localization_settings ke file manifes project Anda.

Di file manifes, tambahkan setelan pelokalan Anda. Berikut contohnya:

localization_settings: {
  default_locale: en
  localization_level: permissive
}

default_locale

Parameter default_locale menentukan nama file string lokal default dalam project Anda.

File string lokalitas default menentukan string mana dari model Anda yang dilokalkan. Meskipun string label atau deskripsi ditentukan dalam file string lokalitas lain, jika tidak ditentukan dalam file string lokalitas default, UI Looker akan menampilkan string yang tidak dilokalkan.

Jangan salah mengartikan lokalitas default untuk project Anda dengan lokalitas default untuk pengguna Looker. Admin Looker Anda dapat menetapkan lokalitas default untuk instance Anda. Jika tidak ada default yang ditetapkan, Looker akan menggunakan en sebagai default. Jika admin Anda tidak secara khusus memasukkan nilai Locale untuk pengguna atau grup pengguna tempat pengguna berada, Looker akan menetapkan pengguna ke lokalitas instance default. Selain itu, jika admin belum menetapkan lokalitas instance default, Looker akan menetapkan pengguna ke lokalitas en.

Oleh karena itu, kecuali jika Anda yakin bahwa admin Looker akan menyetel nilai Locale untuk semua pengguna Looker, Anda harus menyetel parameter default_locale project ke lokalitas default untuk instance Anda (atau ke en jika tidak ada default yang telah ditetapkan), dan menentukan pelokalan untuk semua label dan deskripsi dalam file .strings.json untuk lokalitas tersebut.

localization_level

Tingkat pelokalan project Anda menentukan apakah elemen yang tidak dilokalkan diizinkan dalam model Anda:

  • Tetapkan tingkat pelokalan ke strict untuk mewajibkan label yang dilokalkan untuk semua model, Eksplorasi, tampilan, dan kolom dalam project Anda. Looker IDE menampilkan error validasi LookML untuk elemen yang tidak memiliki label serta untuk label dan deskripsi yang tidak ditentukan dalam file string lokal default.
  • Tetapkan tingkat pelokalan ke permissive untuk mengizinkan elemen tanpa label, dan untuk mengizinkan label dan deskripsi yang tidak ditentukan dalam file string pelokalan default.

Meskipun Anda menginginkan tingkat pelokalan strict, sebaiknya tetapkan tingkat pelokalan project Anda ke permissive saat Anda mengembangkan project untuk mencegah error validasi. Setelah selesai melokalkan semua label dan deskripsi, Anda dapat menyetel tingkat pelokalan ke strict untuk melihat error.

Menetapkan pengguna ke lokalitas

Setelah menyiapkan file string lokal, Anda dapat menetapkan pengguna ke lokalitas yang sesuai dengan salah satu file string lokal. Hal ini dapat dilakukan di tingkat instance, grup pengguna, atau pengguna individu, menggunakan kolom Locale atau atribut pengguna locale.

Misalnya, jika Anda ingin pengguna melihat label dan deskripsi yang ditentukan dalam file es_ES.strings.json, admin Looker Anda harus menyetel setelan Lokalitas pengguna ke es_ES.

Lokalitas kustom yang Anda buat dengan file string dapat dimasukkan di kolom Locale dengan mengklik kolom dan mengetik nama file string, bukan memilih lokalitas bawaan dari menu drop-down. Untuk mengetahui informasi selengkapnya, lihat halaman dokumentasi Pengguna.

Menetapkan lokalitas untuk pengguna sematan yang login

Anda dapat menyertakan nilai lokal pengguna dalam URL sematan bertanda tangan seperti atribut pengguna lainnya. Format persis yang diperlukan untuk sematan bertanda tangan bergantung pada bahasa pemrograman yang digunakan untuk membuat skrip URL sematan bertanda tangan, tetapi nama atribut pengguna adalah locale. Lihat halaman dokumentasi Penyematan bertanda tangan untuk mengetahui informasi selengkapnya tentang URL penyematan bertanda tangan dan alat untuk membuat URL penyematan bertanda tangan.

Melokalkan grup dimensi

Anda dapat menggunakan pelokalan model dengan parameter dimension_group. Dengan fitur ini, developer LookML dapat memberikan terjemahan kustom untuk hal berikut:

Melokalkan grup dimensi sangat berguna untuk memberikan nama kustom yang akurat untuk kolom yang dibuat oleh grup dimensi kalender kustom (misalnya, mengganti nama kolom default menjadi "Periode Penjualan").

Untuk menerjemahkan atau mengganti nama nilai jangka waktu dan interval yang dihasilkan oleh grup dimensi, tambahkan string jangka waktu, interval, atau jangka waktu kustom sebagai kunci dalam file string lokal Anda (seperti en.strings.json dan es_ES.strings.json) dan berikan nilai tampilan yang diterjemahkan.

Berikut adalah LookML untuk contoh grup dimensi:

  dimension_group: created {
    type: time
    timeframes: [time, date, week, month, year]
    sql: ${TABLE}.created_at ;;
  }

Berikut adalah contoh file string lokal en.strings.json yang menyediakan terjemahan pasangan nilai kunci untuk year:

{
  "year": "translated year",
}

Di pemilih kolom Jelajah, grup dimensi ditampilkan seperti ini:

Created Date
  Date
  Month
  Time
  translated year
  Week

Melokalkan grup dimensi kalender kustom

Untuk grup dimensi type: custom_calendar, Anda harus menambahkan jangka waktu kustom (seperti custom_date dan custom_year) sebagai kunci dalam file string lokalitas dan memberikan nilai tampilan yang diterjemahkan.

Berikut adalah LookML untuk contoh grup dimensi kalender kustom:

  dimension_group: cust_created_localized {
    type: custom_calendar
    custom_timeframes: [custom_date, custom_week, custom_period, custom_year]
    sql: ${TABLE}.created_at ;;
    based_on_calendar: retail_custom_calendar_v2
  }

Berikut adalah contoh file string lokalitas en.strings.json yang menyediakan terjemahan pasangan nilai kunci untuk period dan custom_week:

{
  "period": "translated period",
  "custom_week": "translated custom week"
}

Di pemilih Jelajahi, grup dimensi kalender kustom ditampilkan seperti ini:

Cust Created Localized
  Fiscal Date
  Fiscal Period
  Fiscal Year
  translated custom week

Perhatikan hal-hal berikut tentang cara Looker menampilkan grup dimensi kalender kustom di pemilih Jelajah:

  • Karena file string lokalitas en.strings.json menentukan terjemahan untuk custom_week, jangka waktu custom_week grup dimensi menggunakan nilai terjemahan (translated custom week) dan bukan nilai default (Fiscal Week).
  • File string lokal en.strings.json menyediakan terjemahan untuk period, tetapi tidak untuk custom_period, sehingga jangka waktu custom_period dari grup dimensi kustom tidak diterjemahkan dan ditampilkan menggunakan label default (Periode Fiskal). Agar Looker dapat menerjemahkan jangka waktu custom_period, file string harus memiliki terjemahan pasangan nilai kunci khusus untuk custom_period.
  • Rentang waktu grup dimensi kustom lainnya tidak diterjemahkan. Sebagai gantinya, awalan Fiscal ditambahkan, seperti yang dijelaskan dalam Label untuk grup dimensi kalender kustom.

Menggunakan lokalitas dalam variabel Liquid

Seperti yang dijelaskan sebelumnya, pelokalan model memungkinkan Anda menyesuaikan tampilan label dan deskripsi model untuk berbagai lokalitas. Namun, Anda juga dapat menyertakan kunci pelokalan dalam variabel Liquid, yang memungkinkan Anda melokalkan nilai data juga.

Misalnya, dalam file string lokalitas default bernama en.strings.json, kita dapat membuat kunci pelokalan domestic dan international dengan entri berikut:

{
  "domestic": "Domestic",
  "international": "International"
}

Kemudian, di file es_ES.strings.json, kita dapat menyediakan versi Spanyol dari kunci pelokalan ini:

{
  "domestic": "Nacional",
  "international": "Internacional"
}

Dari sana, kita dapat menggunakan kunci pelokalan domestic dan international dalam variabel Liquid untuk melokalkan output dimensi:

dimension: from_US {
    label: "from_us"
    type: string
    sql: CASE
         WHEN ${TABLE}.country = 'United States' THEN '{{ _localization['domestic'] }}'
         ELSE '{{ _localization['international'] }}'
         END;;
  }

Pengguna dengan lokalitas en akan melihat hasil berikut:

Flights Identifier Flights country Flights From the US?
289 United States Domestic
400 Canada International
493 Congo International
936 United States Domestic

Pengguna dengan lokalitas es_ES akan melihat hasil berikut:

Vuelos Identificador Vuelos País Vuelos ¿De Los Estados Unidos?
289 United States Nacional
400 Canada Internacional
493 Congo Internacional
936 United States Nacional

Pengguna dengan lokalitas es_ES melihat data "Domestik" dan "Internasional" yang dilokalkan menjadi "Nacional" dan "Internacional".

Anda juga dapat menggunakan Liquid di filter dasbor LookML dan filter elemen dasbor LookML untuk melokalkan nilai default dalam filter. Misalnya, jika dasbor LookML memiliki kartu yang menggunakan data dari model yang dilokalkan ini, dan ada filter pada kartu tersebut yang ditentukan di LookML sebagai berikut:

filters:
  flights.from_US: "{{ _localization['domestic'] }}"

Saat pengguna dengan lokalitas en menjelajahi dari kartu tersebut di dasbor, Eksplorasi akan difilter berdasarkan nilai Domestic untuk kolom Flights From the US?, dan tabel data di Eksplorasi akan menyertakan hasil berikut:

Flights Identifier Flights country Flights From the US?
289 United States Domestic
936 United States Domestic

Saat pengguna dengan lokalitas es_ES menjelajahi dari kartu tersebut di dasbor, Eksplorasi akan difilter berdasarkan nilai Nacional untuk kolom Vuelos ¿De Los Estados Unidos?, dan tabel data di Eksplorasi akan menyertakan hasil berikut:

Vuelos Identificador Vuelos País Vuelos ¿De Los Estados Unidos?
289 United States Nacional
936 United States Nacional

Memahami cara penerapan aturan pelokalan ke objek yang diperluas dan disempurnakan

Perhatikan bahwa aturan pelokalan berlaku saat Anda memperluas tabel virtual, Eksplorasi, atau dasbor LookML, dan saat Anda memperbaiki tabel virtual atau Eksplorasi.

Jika Anda telah memperluas atau mempertajam objek, lalu menambahkan label atau deskripsi baru, Anda harus memberikan definisi pelokalan dalam file string lokal.

Misalnya, jika kita memiliki tampilan flights:


view: flights {
  label: "flight_info"
  sql_table_name: flightstats.accidents ;;
  ...
}

Kemudian, kita membuat tampilan baru yang memperluas tampilan flights:

include: "/views/flights.view"

view: flights_enhanced {
  extends: [flights]
  label: "enhanced_flight_info"
}

Dalam file string lokalitas, kita perlu menentukan kedua string label tampilan ("flight_info" dan "enhanced_flight_info"). Jika tingkat pelokalan project ditetapkan ke strict, kita tidak akan dapat melakukan commit pada pembaruan apa pun hingga kita menentukan label atau deskripsi baru.

Pelokalan model dan impor project

Anda dapat menggunakan pelokalan model dalam project yang mengimpor project lain. Perilaku defaultnya adalah Looker hanya menggunakan definisi lokal dari project yang diimpor, jika project yang diimpor memiliki definisi lokal. Namun, jika Anda ingin menggabungkan definisi bahasa dari project yang diimpor dengan definisi bahasa project yang mengimpor, Anda dapat menambahkan pernyataan import_locale_defs: yes ke parameter localization_settings dalam file manifes (manifest.lkml) project yang mengimpor:

project_name: "my_project"

localization_settings: {
  default_locale: en
  localization_level: permissive
  import_locale_defs: yes
}

Jika import_locale_defs disetel ke yes, Looker akan menggabungkan satu file string yang sesuai dengan setiap lokalitas dari setiap project.

Aturan prioritas untuk kunci duplikat

Jika kunci yang sama ditentukan dalam file string yang berbeda di seluruh project yang diimpor dan juga di project yang mengimpor, Looker akan menerapkan aturan prioritas berikut saat menggabungkan definisi lokalitas:

  • Mengimpor kunci project lebih diutamakan: Kunci yang ditentukan dalam file lokal project yang diimpor selalu menggantikan kunci duplikat dari file lokal project yang diimpor.
  • Urutan impor menentukan prioritas: Jika kunci duplikat hanya ada dalam file lokal project yang diimpor, Looker akan menyelesaikan konflik berdasarkan urutan project diimpor dalam file manifes project yang mengimpor. Definisi key/value dalam project yang diimpor nanti dalam file manifes akan lebih diprioritaskan daripada definisi yang diimpor sebelumnya.
  • Setelan project yang diimpor digunakan: Setelan pelokalan project yang diimpor (seperti default_locale dan localization_level) digunakan di semua file gabungan, menggantikan setelan pelokalan apa pun yang ditentukan dalam file manifes project yang diimpor.