תרגומים

הודעות ברירת המחדל ב-Blockly (כמו הטקסט בתפריט ההקשר) תורגמו לשפות רבות ושונות. הלוקאל en נטען כברירת מחדל, אבל אפשר לכלול גם את הלוקאלים הזמינים האחרים.

הגדרת לוקאל באמצעות npm

כשמייבאים את blockly עם import * as Blockly from 'blockly';, מקבלים את המודולים שמוגדרים כברירת מחדל: חסימת הליבה, בלוקים מובנים שלBlockly, מחולל ה-JavaScript וקובצי השפה האנגלית.

אם רוצים להשתמש בלוקאלים אחרים, צריך להגדיר את הייבוא בזהירות רבה יותר:

ייבוא מודולים שמוגדרים כברירת מחדל שלBlockly

import * as Blockly from 'blockly/core';
import 'blockly/blocks';
import 'blockly/javascript'; // Or the generator of your choice

ייבוא שפות של blockly

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

import * as Fr from 'blockly/msg/fr';

בכתובת https://github.com/google/blockly/tree/master/msg/js יש רשימה מלאה של הלוקאלים הנתמכים ב-Blockly.

הגדרת לוקאל

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

Blockly.setLocale(Fr);

צריך להפעיל אותו לפני טעינת סביבת העבודה.

הגדרת לוקאל ללא npm

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

<script src="../../blockly_compressed.js"></script>
<script src="../../blocks_compressed.js"></script>
<script src="../../msg/js/ar.js"></script>

תרגומים מותאמים אישית

לחסום תרגומים של כל המחרוזות שמוגדרות כברירת מחדל, אבל אם יש לכם בלוקים בהתאמה אישית עם טקסט, תוכלו לכלול תרגומים משלכם במחרוזות האלה. לדוגמה, המבנה של blockly/msg/es אמור להיראות כך:

Blockly.Msg["COLOUR_RGB_RED"] = "rojo";

ניתן להוסיף עוד הודעות מותאמות אישית כמאפיינים חדשים באובייקט Blockly.Msg על ידי קריאה ל-setLocale עם אובייקט עם התרגומים המותאמים אישית. מומלץ להוסיף תחילית מותאמת אישית לתרגומים שלכם, כדי למנוע התנגשויות עם תרגומי ברירת מחדל שיתווספו בעתיד.

// In custom_es.js
export const CustomEs = {
  HELLO: "Hola",
}

// In your setup code
import * as Es from blockly/msg/Es;
import { CustomEs } from ../custom_es;
Blockly.setLocale(Es);
Blockly.setLocale(CustomEs);

הפונקציה setLocale מוסיפה כל מקש מאובייקט הקלט אל Blockly.Msg. אתם יכולים לקרוא לאפליקציה מספר פעמים באמצעות מפתחות נפרדים, אבל קריאה חוזרת בפעם השנייה באמצעות מפתח כפול תחליף את המפתח הראשון.

כדי להפנות למחרוזת המתורגמת בבלוק, צריך להשתמש בפונקציה Blockly.Msg['HELLO'] שאמורה להכיל את המחרוזת של הלוקאל שהגדרתם.