התאמת בלוקים לשוק המקומי

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

בלוק רשימות_חזרה באנגלית בלוק list_return בספרדית בלוק List_repeat בקוריאנית בלוק list_return בערבית מימין לשמאל

בכל המקרים האלה יש את אותה הגדרת בלוק JSON:

// Block for creating a list with one element repeated.
{
  "type": "lists_repeat",
  "message0": "%{BKY_LISTS_REPEAT_TITLE}",
  "args0": [
    {
      "type": "input_value",
      "name": "ITEM"
    },
    {
      "type": "input_value",
      "name": "NUM",
      "check": "Number"
    }
  ],
  "output": "Array",
  "colour": "%{BKY_LISTS_HUE}",
  "tooltip": "%{BKY_LISTS_REPEAT_TOOLTIP}",
  "helpUrl": "%{BKY_LISTS_REPEAT_HELPURL}"
}

שולחן מחרוזות

הדוגמה lists_repeat כוללת כמה מחרוזות "%{BKY_...}". כל אחד מ- זו הפניה למחרוזת בטבלת המחרוזת Blockly.Msg. כאשר הוא יוצר מופע של בלוק, ומנסה להחליף את המחרוזת בערך ב-Blockly.

לדוגמה, %{BKY_LISTS_REPEAT_TITLE} מוחלף בערך של Blockly.Msg['LISTS_REPEAT_TITLE'], אם קיים. אם הערך לא קיים, הסימון %{BKY_...} נשאר במקומו, ו-Blockly משמיע אזהרה תרגום החסר.

כפי שמוצג בדוגמה, הסימון פועל במספר מיקומים. ההודעות והסברים קצרים מאפשרים להחליף מחרוזות גלויות למשתמש. באופן דומה, תפריט נפתח יכולים להשתמש גם בסימון של טקסט הפריט. ניתן להתאים את כתובת ה-URL לעזרה להבטיח שהמשתמש יופנה לדף שמותאם לשוק המקומי. ולבסוף, הערך של colour יכול להשתמש בסימון כדי לרכז את לוח הבלוקים.

אם אתם משתמשים בהטמעה של JavaScript אינכם מצפים לשנות את בשפת המשתמש שבסביבת זמן הריצה, יכול להיות שיהיה לכם קל יותר להשתמש בהפניה ישירה. עבור לדוגמה, Blockly.Msg['LISTS_REPEAT_TITLE'] או Blockly.Msg.LISTS_REPEAT_TITLE'.

טבלאות המחרוזות נטענות באמצעות כל אחד מקובצי .js הספציפיים לשפה msg/js. טען את לדף האינטרנט שלך כדי לטעון את התרגום הנכון של הבלוק.

אינטרפולציה של הודעות JSON

המאפיין message0 (וגם message1, message2 וכו') קובעים את מקורות הקלט. ואת הטקסט של התווית שמוקפת. עבור LISTS_REPEAT_TITLE ב בלוק lists_repeat, הערך באנגלית הוא:

Blockly.Msg.LISTS_REPEAT_TITLE = 'create list with item %1 repeated %2 times';

שני סמני אינטרפולציה, %1 ו-%2, מסמנים את המיקומים של שני מקורות הקלט. פרטים נוספים מופיעים במערך args0. args1 מתאים לערך המחרוזת message1. לצפייה יצירת אבני בניין בהתאמה אישית לקבלת פרטים נוספים על ציון שדות וקלט של בלוקים.

הטקסט שבין סמני האינטרפולציה מומר לטקסט ללא שם label fields. הפעולה הזו יוצרת את המילה של הבלוק ואיך הוא נקרא:

// In Spanish
Blockly.Msg.LISTS_REPEAT_TITLE = "crear lista con el elemento %1 repetido %2 veces";
// In Korean
Blockly.Msg.LISTS_REPEAT_TITLE = "%1 %2 넣어, 리스트 생성";

כשמתרגמים לשפות הנכתבות מימין לשמאל, מחרוזת ההודעה נכתבת ב את הסדר החזותי, ולא יכולה לכלול פקודות כיוון ב-Unicode:

// In Arabic. Note how %2 is left of %1, since it read right to left.
Blockly.Msg.LISTS_REPEAT_TITLE = "إنشئ قائمة مع العنصر  %1 %2 مرات";

בנייה מחדש של טבלאות מחרוזות

בניית טבלת המחרוזת .js היא חלק מהסקריפט build:langfiles. הסקריפט לוקח את מפתחות המזהים ותרגומים לאנגלית msg/messages.js כדי ליצור en.json חדש. לאחר מכן, בשילוב עם כל תרגומים שנמצאו קובצי ה-JSON האחרים, הוא ייצור מחדש את הגרסה המעודכנת טבלאות JavaScript ב-JavaScript בכל השפות, כולל en.js.

קובצי ה-JSON שאינם באנגלית מגיעים משותפים ב- TranslateWiki. לצפייה הערות מופעלות תרגום לפרטים על האופן שבו תוכלו לעזור.