הודעות ברירת המחדל ב-Blockly (למשל הטקסט בתפריט ההקשר) תורגמו להרבה שפות שונות. הלוקאל en
נטען כברירת מחדל, אבל אפשר לכלול גם את הלוקאלים הזמינים האחרים.
הגדרת השפה באמצעות npm
כשמייבאים את Blockly באמצעות import * as Blockly from 'blockly';
, מקבלים את המודולים שמוגדרים כברירת מחדל: Blockly Core, בלוקים מובנים ב-blockly, מחולל JavaScript וקובצי lang באנגלית.
כדי להשתמש בלוקאלים אחרים, צריך להגדיר את הייבוא בצורה זהירה יותר:
ייבוא מודולים שמוגדרים כברירת מחדל ב-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';
הרשימה המלאה של הלוקאלים הנתמכים ב-Blockly זמינה בכתובת https://github.com/google/blockly/tree/master/msg/js
הגדרת לוקאל
אחרי שמייבאים את קבוצת ההודעות הרצויה, צריך להגדיר את האזור ב-Blockly. הפונקציה הזו כלולה כרגע רק בגרסת ה-NPM של Blockly.
Blockly.setLocale(Fr);
צריך להפעיל את הפונקציה הזו לפני הטעינה של סביבת העבודה.
הגדרת השפה ללא npm
צריך לכלול את src של הסקריפט המתאים מהספרייה msg של Blockly, והתרגומים ייכללו באופן אוטומטי.
<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']
שצריכה להכיל את המחרוזת של האזור הגאוגרפי שהגדרתם.
נושאים קשורים
- שפות מימין לשמאל: ראו הדגמה של RTL
- לוקליזציה של בלוקים