התאמת מודל LookML לשוק המקומי (לוקליזציה)

בעזרת לוקליזציה של מודלים, אתם יכולים להתאים אישית את האופן שבו התוויות והתיאורים של המודל מוצגים בהתאם ללוקאל של המשתמש.

התאמה לשוק המקומי לא חייבת להתבסס על מיקום גיאוגרפי או על שפה. אפשר להשתמש בלוקאלים כדי לייצג גורמים מבחינים אחרים, כמו משתמשים פנימיים לעומת משתמשים חיצוניים, או מנהלים לעומת תורמים פרטיים, ולהתאים אישית את התוויות והתיאורים בהתאם.

בדף הזה מתוארים השלבים להתאמה לשוק המקומי של הפרויקט:

  1. כדי לקבוע אילו אלמנטים יעברו לוקליזציה, מוסיפים תוויות, תוויות קבוצה ותיאורים למודל.
  2. כדי לספק את הגדרות הלוקליזציה לפרויקט, יוצרים קובצי מחרוזות של לוקאלים.
  3. כדי להפעיל לוקליזציה לפרויקט, מוסיפים הגדרות לוקליזציה לקובץ המניפסט של הפרויקט.
  4. כדי לקבוע את התצוגה למשתמשים שונים, מקצים משתמשים לאזורים.

לוקליזציה של מודלים מתרחשת לעיתים קרובות בשילוב עם אדמין שמציין הגדרות של לוקליזציה של פורמט מספרים ושל שפת ממשק המשתמש.

לוקליזציה של תוויות ותיאורים במודל

אפשר להתאים לשפה המקומית את התוויות, את תוויות הקבוצות ואת התיאורים במודל, כולל:

אפשר גם ליצור לוחות בקרה של LookML שעברו לוקליזציה בפרויקט. אפשר לבצע התאמה לשוק המקומי של הפרמטרים הבאים במרכז שליטה של LookML:

כדי לראות את כל השדות בפרויקט שאפשר להתאים לשפה מסוימת, אפשר להגדיר את רמת הלוקליזציה של הפרויקט לערך 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

שימו לב לנקודות הבאות:

  • בדוגמה של LookML לתצוגה המקדימה של flights שמוצגת קודם בדף הזה, לא צוינה תווית למאפיין 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 כדי לדרוש תוויות מותאמות ללוקאל לכל המודלים, התצוגות והשדות בפרויקט. סביבת הפיתוח המשולבת של Looker מחזירה שגיאת אימות של LookML לכל אחד מהרכיבים האלה שלא מוגדרות להם תוויות, וגם לכל התוויות והתיאורים שלא מוגדרים בקובץ ברירת המחדל של מחרוזות לוקאל.
  • מגדירים את רמת הלוקליזציה ל-permissive כדי לאפשר שימוש ברכיבים ללא תוויות, וכדי לאפשר שימוש בתוויות ובתיאורים שלא מוגדרים בקובץ ברירת המחדל של מחרוזות הלוקליזציה.

גם אם אתם רוצים את רמת הלוקליזציה strict, יכול להיות שכדאי להגדיר את רמת הלוקליזציה של הפרויקט ל-permissive כשמפתחים את הפרויקט, כדי למנוע שגיאות אימות. אחרי שמסיימים להתאים לשפה המקומית את כל התוויות והתיאורים, אפשר להגדיר את רמת הלוקליזציה לstrict כדי לראות אם יש שגיאות.

הקצאת משתמשים לאזור

אחרי שמגדירים את קובצי מחרוזות הלוקאל, אפשר להקצות למשתמשים לוקאל שתואם לאחד מקובצי מחרוזות הלוקאל. אפשר לעשות את זה ברמת המופע, קבוצת המשתמשים או המשתמש היחיד, באמצעות השדה Locale או מאפיין המשתמש locale.

לדוגמה, אם רוצים שהמשתמש יראה את התוויות והתיאורים שמוגדרים בקובץ es_ES.strings.json, האדמין ב-Looker צריך להגדיר את ההגדרה Locale של המשתמש ל-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"
}

מכאן, אנחנו יכולים להשתמש במפתחות הלוקליזציה 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, לא נוכל לבצע עדכונים עד שנגדיר את התוויות או התיאורים החדשים.