ترجمه ها

پیام‌های پیش‌فرض در Blockly (مانند متن در منوی زمینه) به بسیاری از زبان‌های مختلف ترجمه شده‌اند. محلی en به طور پیش فرض بارگیری می شود، اما سایر مناطق موجود نیز می توانند گنجانده شوند.

پیکربندی محلی با npm

وقتی Blockly را با import * as Blockly from 'blockly'; ماژول‌های پیش‌فرض را دریافت خواهید کرد: Blockly core، بلوک‌های داخلی Blockly، ژنراتور جاوا اسکریپت و فایل‌های زبان انگلیسی.

برای استفاده از سایر زبان‌ها، باید واردات خود را با دقت بیشتری تعریف کنید:

ماژول های پیش فرض 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 مناسب را از فهرست پیام‌های Blockly وارد کنید، و ترجمه‌ها به‌طور خودکار گنجانده می‌شوند.

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

ترجمه های سفارشی

Blockly شامل ترجمه برای تمام رشته‌های پیش‌فرض خود می‌شود، اما اگر بلوک‌های سفارشی با متن دارید، ممکن است بخواهید ترجمه‌های خود را برای آن رشته‌ها اضافه کنید. به عنوان مثال، ساختار blockly/msg/es شبیه به زیر است:

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

با فراخوانی setLocale با یک شی با ترجمه های سفارشی خود، می توانید پیام های سفارشی اضافی را به عنوان ویژگی های جدید در شی Blockly.Msg اضافه کنید. ممکن است بخواهید ترجمه های خود را با یک پیشوند سفارشی پیشوند کنید تا از برخورد با هر ترجمه پیش فرضی که ممکن است در آینده اضافه شود جلوگیری کنید.

// 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'] استفاده کنید که باید شامل رشته محلی باشد که پیکربندی کرده‌اید.