الترجمات

تمت ترجمة الرسائل التلقائية في قائمة "حظر" (مثل النص في قائمة السياقات) إلى العديد من اللغات المختلفة. يتم تحميل اللغة en تلقائيًا، ولكن يمكن أيضًا تضمين اللغات الأخرى المتاحة.

تهيئة اللغة باستخدام npm

عند استيراد Blockly مع import * as Blockly from 'blockly';، ستظهر لك الوحدات التلقائية وهي: Blockly Core وBlockly Built-inBlock وأداة إنشاء JavaScript وملفات اللغة الإنجليزية.

لاستخدام لغات أخرى، ستحتاج إلى تحديد عمليات الاستيراد بدقة أكبر:

استيراد الوحدات التلقائية لحظر المحتوى

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

استيراد لغات Bluely

على سبيل المثال، لاستيراد مجموعة الرسائل باللغة الفرنسية:

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

للحصول على قائمة كاملة باللغات المحظورة، يُرجى الاطّلاع على: https://github.com/google/blockly/tree/master/msg/js

إعداد اللغة

بعد استيراد مجموعة الرسائل المطلوبة، يجب تعيين اللغة في Blockly. لا تتوفّر هذه الدالة حاليًا إلا في إصدار npm من Blockly.

Blockly.setLocale(Fr);

ويجب استدعاء هذا الأمر قبل تحميل مساحة العمل.

تهيئة اللغة بدون npm

أدرِج النص البرمجي src المناسب من دليل Openly msg، وسيتم تضمين الترجمات تلقائيًا.

<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'] التي يجب أن تحتوي على السلسلة الخاصة باللغة التي تم ضبطها.