בעזרת לוקליזציה של מודלים, אתם יכולים להתאים אישית את האופן שבו התוויות והתיאורים של המודל מוצגים בהתאם ללוקאל של המשתמש.
התאמה לשוק המקומי לא חייבת להתבסס על מיקום גיאוגרפי או על שפה. אפשר להשתמש בלוקאלים כדי לייצג גורמים מבחינים אחרים, כמו משתמשים פנימיים לעומת משתמשים חיצוניים, או מנהלים לעומת תורמים פרטיים, ולהתאים אישית את התוויות והתיאורים בהתאם.
בדף הזה מתוארים השלבים להתאמה לשוק המקומי של הפרויקט:
- כדי לקבוע אילו אלמנטים יעברו לוקליזציה, מוסיפים תוויות, תוויות קבוצה ותיאורים למודל.
- כדי לספק את הגדרות הלוקליזציה לפרויקט, יוצרים קובצי מחרוזות של לוקאלים.
- כדי להפעיל לוקליזציה לפרויקט, מוסיפים הגדרות לוקליזציה לקובץ המניפסט של הפרויקט.
- כדי לקבוע את התצוגה למשתמשים שונים, מקצים משתמשים לאזורים.
לוקליזציה של מודלים מתרחשת לעיתים קרובות בשילוב עם אדמין שמציין הגדרות של לוקליזציה של פורמט מספרים ושל שפת ממשק המשתמש.
לוקליזציה של תוויות ותיאורים במודל
אפשר להתאים לשפה המקומית תוויות, תוויות קבוצה ותיאורים במודל, כולל:
labelבשביל שדה, מודל, ניתוח נתונים או תצוגהlabelלאפליקציות בסביבת התוספים של Lookergroup_labelל-Explore וgroup_labelלשדה-
group_item_labelעבור שדה descriptionל-Explore וdescriptionלשדה- מסגרות זמן, מרווחי זמן ומסגרות זמן מותאמות אישית שנוצרו על ידי פרמטרים של
dimension_group(מידע נוסף זמין בקטע התאמה לשפה המקומית של קבוצות מאפיינים בדף הזה)
אפשר גם ליצור לוחות בקרה של LookML שעברו לוקליזציה בפרויקט. אפשר לבצע התאמה לשוק המקומי של הפרמטרים הבאים במרכז שליטה של LookML:
titledescription-
text(שהוא תת-פרמטר של הפרמטרnoteואפשר להחיל אותו על כל סוגי רכיבי לוח הבקרה, חוץ מרכיבים מסוגtype: text) comparison_labelsingle_value_title
כדי לראות את כל השדות בפרויקט שאפשר להתאים לשפה מסוימת, אפשר להגדיר את רמת הלוקליזציה של הפרויקט לערך strict. אם ההגדרה הזו מופעלת, סביבת הפיתוח המשולבת (IDE) של Looker מחזירה שגיאת אימות של 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 אין תווית, כך שנוכל להדגים כיצד מוצג ממד ללא לוקליזציה.
יצירת קבצי מחרוזות מקומיות
קבצים של מחרוזות לוקאל משתמשים בזוגות של מפתח-ערך כדי להגדיר איך התוויות והתיאורים במודל מוצגים לכל לוקאל. בצד שמאל של כל זוג מפתח-ערך נמצא ה-מפתח לוקליזציה, שהוא תווית או מחרוזת תיאור מהמודל שלך. בצד שמאל של צמד המפתח/ערך מגדירים איך רוצים שהמחרוזת תוצג בממשק המשתמש של Looker.
לכל לוקאל שבו רוצים להשתמש בפרויקט, צריך ליצור קובץ מחרוזות ייעודי. צור קובץ מחרוזות אחד בלבד עבור כל מקומי. צריך שיהיה לכם קובץ מחרוזות ששמו זהה ללוקאל ברירת המחדל. לדוגמה, אם ציינתם default_locale: en בקובץ המניפסט של הפרויקט, צריך שיהיה קובץ במודל בשם en.strings.json. כל מחרוזת צריכה להיות מוגדרת בקובץ המחרוזות של הלוקאל default, אחרת היא לא תעבור לוקליזציה.
הדוגמה הזו של קובץ en.strings.json תשמש את כל המשתמשים שהערך Locale שלהם הוא en. בדוגמה הבאה של LookML, en מוגדר גם כמקום ברירת המחדל, ולכן צריך להגדיר את כל המחרוזות בקובץ הזה כדי להתאים אותן לשוק המקומי.
{
"flight_info": "Flights",
"id": "Identifier",
"country_of_departure": "Country of Departure",
"number_engines": "Number of Engines"
}
בטבלה הבאה אפשר לראות מה משתמש שהלוקאל שלו מוגדר ל-en יראה בטבלת הנתונים של ניתוח ב-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 |
שימו לב לנקודות הבאות:
- בדוגמה
flightsLookML שמוצגת בהמשך הדף, לא צוינה תווית למאפייןlocation, ולכן Looker משתמש באותיות רישיות בשם המאפיין ומציג אותו כ-Location. - הלוקליזציה של התווית country לא הוגדרה בקובץ
en.strings.json, ולכן Looker מציג את התווית כפי שהיא מוגדרת בקובץ התצוגה, בלי אותיות רישיות: country.
דוגמה נוספת: אפשר ליצור קובץ es_ES.strings.json שמשמש את כל המשתמשים עם ערך Locale של es_ES:
{
"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 |
שימו לב לנקודות הבאות:
- כמו בדוגמה הקודמת, בתצוגה המקורית עם התוויות והתיאורים שנוספו, לא סופקה תווית למאפיין המיקום, ולכן Looker משתמש באותיות רישיות ומציג את שם המאפיין כ-"Location".
- לא הוגדר לוקליזציה לתווית 'country' בקובץ en.strings.json, שהוא קובץ ברירת המחדל של מחרוזות הלוקאל. המשמעות היא שלמרות שהמחרוזת country הוגדרה בקובץ es_ES.strings.json, Looker לא מבצע לוקליזציה של המחרוזת הזו ומציג את התווית כפי שהיא מוגדרת בקובץ התצוגה: country.
הוספת הגדרות לוקליזציה לקובץ המניפסט של הפרויקט
כדי להפעיל לוקליזציה לפרויקט, מוסיפים את הפרמטר localization_settings לקובץ המניפסט של הפרויקט.
מוסיפים את הגדרות הלוקליזציה לקובץ המניפסט. הנה דוגמה:
localization_settings: {
default_locale: en
localization_level: permissive
}
default_locale
הפרמטר default_locale מציין את השם של קובץ המחרוזות של הלוקאל שמוגדר כברירת מחדל בפרויקט.
קובץ המחרוזות של הלוקאל שמוגדר כברירת מחדל קובע אילו מחרוזות מהמודל שלכם יותאמו לשפה המקומית. גם אם מחרוזת של תווית או תיאור מוגדרת בקובץ מחרוזות של לוקאל אחר, אם היא לא מוגדרת בקובץ המחרוזות של לוקאל ברירת המחדל, ממשק המשתמש של Looker יציג את המחרוזת הלא מותאמת.
חשוב לא להתבלבל בין הלוקאל שמוגדר כברירת מחדל לפרויקט לבין הלוקאל שמוגדר כברירת מחדל למשתמשי Looker. האדמין שלכם ב-Looker יכול להגדיר לוקאל כברירת מחדל למופע שלכם. אם לא מוגדר ערך ברירת מחדל, ברירת המחדל של Looker היא en. אם האדמין לא יזין ערך Locale ספציפי למשתמש או לקבוצת משתמשים שהמשתמש שייך אליה, מערכת Looker תקצה למשתמש את הלוקאל שמוגדר כברירת מחדל במופע. בנוסף, אם האדמין לא הגדיר את הלוקאל של ברירת המחדל של המופע, מערכת Looker מקצה למשתמש את הלוקאל en.
לכן, אלא אם אתם בטוחים שאדמין Looker יגדיר את הערך של Locale לכל משתמשי Looker, כדאי להגדיר את הפרמטר default_locale של הפרויקט ללוקאל שמוגדר כברירת מחדל למופע (או ל-en אם לא הוגדרה ברירת מחדל), ולהגדיר את הלוקליזציה לכל התוויות והתיאורים בקובץ .strings.json של הלוקאל הזה.
localization_level
רמת הלוקליזציה של הפרויקט קובעת אם מותר להשתמש ברכיבים לא מותאמים במודל:
- מגדירים את רמת הלוקליזציה ל-
strictכדי לדרוש תוויות מותאמות ללוקאל לכל המודלים, התצוגות והשדות בפרויקט. ה-IDE של Looker מחזיר שגיאת אימות של LookML עבור כל אחד מהאלמנטים הללו שאין להם תוויות, וכן עבור כל תוויות ותיאורים שאינם מוגדרים בקובץ מחרוזות ה-locale המוגדר כברירת מחדל. - מגדירים את רמת הלוקליזציה ל-
permissiveכדי לאפשר שימוש ברכיבים ללא תוויות, וכדי לאפשר שימוש בתוויות ובתיאורים שלא מוגדרים בקובץ ברירת המחדל של מחרוזות הלוקליזציה.
גם אם אתם רוצים את רמת הלוקליזציה של strict, ייתכן שיהיה שימושי להגדיר את רמת הלוקליזציה של הפרויקט שלכם ל-permissive כשאתם מפתחים אותו כדי למנוע שגיאות אימות. אחרי שמסיימים להתאים לשפה המקומית את כל התוויות והתיאורים, אפשר להגדיר את רמת הלוקליזציה לstrict כדי לראות אם יש שגיאות.
הקצאת משתמשים לאזור
אחרי שמגדירים את קובצי מחרוזות הלוקאל, אפשר להקצות למשתמשים לוקאל שתואם לאחד מקובצי מחרוזות הלוקאל. ניתן לעשות זאת ברמת ה-instance, קבוצת משתמשים או משתמש בודד, באמצעות השדה Locale או מאפיין המשתמש locale.
לדוגמה, אם רוצים שהמשתמש יראה את התוויות והתיאורים שמוגדרים בקובץ es_ES.strings.json, האדמין ב-Looker צריך להגדיר את ההגדרה Locale של המשתמש ל-es_ES.
אפשר להזין לוקאלים מותאמים אישית שיוצרים באמצעות קובצי מחרוזות בשדה לוקאל. לשם כך, לוחצים על השדה ומקלידים את שם קובץ המחרוזת במקום לבחור לוקאל מובנה מהתפריט הנפתח. מידע נוסף זמין בדף התיעוד בנושא משתמשים.
הגדרת הלוקאל למשתמשים שמוטמעים עם חתימה
אפשר לכלול את ערך הלוקאל של משתמש בכתובת URL מוטמעת עם חתימה, בדיוק כמו כל מאפיין אחר של משתמש. הפורמט המדויק שנדרש להטמעות חתומות תלוי בשפת התכנות שבה משתמשים כדי ליצור את סקריפט כתובת ה-URL של ההטמעה החתומה, אבל שם מאפיין המשתמש הוא locale. מידע נוסף על כתובות URL חתומות להטמעה ועל כלים ליצירת כתובות URL חתומות להטמעה זמין בדף התיעוד בנושא הטמעה חתומה.
התאמה לשוק המקומי של קבוצות מאפיינים
אפשר להשתמש בלוקליזציה של המודל באמצעות הפרמטר dimension_group. התכונה הזו מאפשרת למפתחי LookML לספק תרגומים בהתאמה אישית לפריטים הבאים:
- מסגרות הזמן של קבוצות המאפיינים
type: time(כמוmonth,yearאו אפשרויות מסגרת זמן רגילות) - המרווחים של קבוצות המאפיינים
type: duration(כמוmonths,yearsאו אפשרויות מרווחים רגילות) - מסגרות זמן מותאמות אישית של קבוצות מאפיינים של
type: custom_calendar(כמוcustom_periodאוcustom_year). מידע נוסף זמין במאמר בנושא לוקליזציה של קבוצות מאפיינים של לוח שנה מותאם אישית.
לוקליזציה של קבוצות מאפיינים שימושית במיוחד כדי לספק שמות מותאמים אישית ומדויקים לשדות שנוצרים על ידי קבוצות מאפיינים של לוח שנה בהתאמה אישית (לדוגמה, שינוי השם של שדה שמוגדר כברירת מחדל ל'תקופת מכירות').
כדי לתרגם או לשנות את השם של ערכי מסגרת הזמן והמרווח שנוצרים על ידי קבוצת מאפיינים, מוסיפים את מחרוזת מסגרת הזמן, המרווח או מסגרת הזמן המותאמת אישית כמפתח בקובצי המחרוזות של הלוקאל (כמו en.strings.json ו-es_ES.strings.json) ומספקים את ערך התצוגה המתורגם.
הנה קוד LookML לדוגמה של קבוצת מאפיינים:
dimension_group: created {
type: time
timeframes: [time, date, week, month, year]
sql: ${TABLE}.created_at ;;
}
זו דוגמה לקובץ מחרוזות של לוקאל en.strings.json שמספק תרגום של צמד מפתח/ערך ל-year:
{
"year": "translated year",
}
בכלי לבחירת מאפיינים בשדה 'ניתוח', קבוצת המאפיינים מוצגת כך:
Created Date
Date
Month
Time
translated year
Week
התאמה לשפה המקומית של קבוצות מאפיינים מותאמים אישית של היומן
לגבי קבוצות מאפיינים של type: custom_calendar, צריך להוסיף את טווח התאריכים המותאם אישית (למשל custom_date ו-custom_year) כמפתח בקובצי מחרוזות הלוקאל, ולספק את ערך התצוגה המתורגם.
הנה קבוצת מאפיינים של לוח שנה מותאם אישית לדוגמה ב-LookML:
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
}
זו דוגמה לקובץ מחרוזות של לוקאל en.strings.json שמספק תרגומים של צמדי מפתח/ערך עבור period ו-custom_week:
{
"period": "translated period",
"custom_week": "translated custom week"
}
בבורר הניתוחים, קבוצת המאפיינים של היומן המותאם אישית מוצגת כך:
Cust Created Localized
Fiscal Date
Fiscal Period
Fiscal Year
translated custom week
חשוב לשים לב לנקודות הבאות לגבי האופן שבו קבוצת המאפיינים של היומן המותאם אישית מוצגת בבורר Explore ב-Looker:
- מכיוון שקובץ המחרוזות של הלוקאל
en.strings.jsonמציין תרגום ל-custom_week, טווח הזמןcustom_weekשל קבוצת המאפיינים משתמש בערך התרגום (translated custom week) במקום בערך ברירת המחדל (Fiscal Week). - קובץ המחרוזות של הלוקאל
en.strings.jsonמספק תרגום ל-periodאבל לא ל-custom_period, ולכן מסגרת הזמןcustom_periodשל קבוצת המאפיינים המותאמים אישית לא מתורגמת ומוצגת באמצעות התווית שמוגדרת כברירת מחדל (תקופה פיסקלית). כדי ש-Looker יתרגם אתcustom_period, בקובץ המחרוזות צריך להיות תרגום של זוג מפתח/ערך ספציפי ל-custom_period. - שאר מסגרות הזמן של קבוצת המאפיינים המותאמים אישית לא מתורגמות. במקום זאת, התוויות מתחילות ב-Fiscal, כמו שמתואר במאמר תוויות לקבוצות של מאפיינים מותאמים אישית של יומן.
שימוש באזור במשתני Liquid
כמו שצוין קודם, לוקליזציה של מודל מאפשרת להתאים אישית את התצוגה של התוויות והתיאורים של המודל ללוקאלים שונים. אבל אפשר גם לכלול מפתחות לוקליזציה במשתני Liquid, וכך לבצע לוקליזציה גם של ערכי הנתונים.
לדוגמה, בקובץ ברירת המחדל של מחרוזות לוקאל בשם en.strings.json, אפשר ליצור את מפתחות הלוקליזציה domestic ו-international עם הערכים הבאים:
{
"domestic": "Domestic",
"international": "International"
}
ואז בקובץ es_ES.strings.json, אנחנו יכולים לספק גרסאות בספרדית של מפתחות הלוקליזציה האלה:
{
"domestic": "Nacional",
"international": "Internacional"
}
מכאן, אנחנו יכולים להשתמש במפתחות הלוקליזציה domestic ו-international במשתני Liquid כדי לבצע לוקליזציה של הפלט של מאפיין:
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 רואים את הנתונים 'מקומי' ו'בינלאומי' בלוקליזציה 'Nacional' ו'Internacional', בהתאמה.
אפשר גם להשתמש ב-Liquid במסננים של לוחות בקרה ב-LookML ובמסננים של רכיבים בלוחות בקרה ב-LookML כדי להתאים את ערך ברירת המחדל במסנן לשפה המקומית. לדוגמה, אם בלוח בקרה ב-LookML יש משבצת שמשתמשת בנתונים מהמודל המותאם לשוק המקומי, ויש מסנן במשבצת הזו שמוגדר ב-LookML באופן הבא:
filters:
flights.from_US: "{{ _localization['domestic'] }}"
כשמשתמש עם הלוקאל en יבצע ניתוח מהמשבצת הזו בלוח הבקרה, הניתוח יסונן לפי הערך Domestic בשדה Flights From the US?, וטבלת הנתונים בניתוח תכלול את התוצאות הבאות:
| Flights Identifier | Flights country | Flights From the US? |
|---|---|---|
| 289 | United States | Domestic |
| 936 | United States | Domestic |
כשמשתמש עם הלוקאל es_ES מנתח נתונים מהמשבצת הזו בלוח הבקרה, הניתוח מסונן לפי הערך Nacional בשדה Vuelos ¿De Los Estados Unidos?, וטבלת הנתונים בניתוח כוללת את התוצאות הבאות:
| Vuelos Identificador | Vuelos País | Vuelos ¿De Los Estados Unidos? |
|---|---|---|
| 289 | United States | Nacional |
| 936 | United States | Nacional |
הסבר על האופן שבו כללי לוקליזציה חלים על אובייקטים מורחבים ומדויקים
חשוב לדעת שכללי לוקליזציה חלים כשמרחיבים תצוגות, ניתוחים או לוחות בקרה של LookML, וכשמשפרים תצוגות או ניתוחים.
אם הרחבתם או שיפרתם אובייקט ואז הוספתם תוויות או תיאורים חדשים, אתם צריכים לספק הגדרות לוקליזציה בקבצים של מחרוזות הלוקאל.
לדוגמה, אם יש לנו תצוגה של 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, לא נוכל לבצע עדכונים עד שנגדיר את התוויות או התיאורים החדשים.
לוקליזציה של מודלים וייבוא פרויקטים
אפשר להשתמש בלוקליזציה של מודלים בפרויקטים שמייבאים פרויקטים אחרים. התנהגות ברירת המחדל היא ש-Looker ישתמש בהגדרות הלוקאל רק מהפרויקט המיובא, אם יש בו הגדרות לוקאל. עם זאת, אם רוצים למזג את הגדרות הלוקאל מפרויקט מיובא עם הגדרות הלוקאל של הפרויקט המייבא, אפשר להוסיף את ההצהרה import_locale_defs: yes לפרמטר localization_settings במניפסט (קובץ manifest.lkml) של הפרויקט המייבא:
project_name: "my_project"
localization_settings: {
default_locale: en
localization_level: permissive
import_locale_defs: yes
}
כשהערך של import_locale_defs הוא yes, Looker משלב קובץ מחרוזות אחד שמתאים לכל לוקאל מכל פרויקט.
כללי קדימות למפתחות כפולים
אם אותו מפתח מוגדר בקובצי מחרוזות שונים בפרויקטים המיובאים וגם בפרויקט המייבא, Looker יחיל את כללי הקדימות הבאים כשהוא משלב את הגדרות הלוקאל:
- לייבוא מפתחות פרויקט יש עדיפות: מפתחות שמוגדרים בקובצי הלוקאל של הפרויקט שממנו מייבאים תמיד מבטלים מפתחות כפולים מקובצי הלוקאל של כל פרויקט מיובא.
- סדר הייבוא קובע את העדיפות: אם קיים מפתח כפול רק בקובצי לוקאל של פרויקטים מיובאים, Looker פותר את הקונפליקט על סמך הסדר שבו הפרויקטים מיובאים בקובץ המניפסט של הפרויקט המייבא. הגדרות של מפתח/ערך בפרויקטים שמייבאים מאוחר יותר בקובץ המניפסט מקבלות עדיפות על פני הגדרות שמייבאים מוקדם יותר.
- הגדרות הפרויקט המיובא נמצאות בשימוש: הגדרות הלוקליזציה של הפרויקט המייבא (כמו
default_localeו-localization_level) נמצאות בשימוש בכל הקבצים המשולבים, ומבטלות את כל הגדרות הלוקליזציה שמוגדרות בקובצי המניפסט של הפרויקטים המיובאים.