تتيح حظر تعريفات الحظر التي يمكن ترجمتها إلى لغة المستخدم. من خلال استخدام جداول السلاسل، سلاسل الرسائل في تعريف مجموعة JSON تستطيع تكييف المدخلات والحقول والتصنيفات لتعكس مفردات اللغة، وترتيب الكلمات والاتجاه.
تشترك جميع هذه الحالات في تعريف حظر 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
. عندما
يتم إنشاء مثيل للكتلة، وهي تحاول استبدال السلسلة بالقيمة.
على سبيل المثال، يتم استبدال %{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
. يمكنك الاطّلاع على
إنشاء وحدات أساسية مخصّصة
للحصول على مزيد من التفاصيل حول تحديد حظر الإدخالات والحقول.
يتم تحويل النص بين علامات الاستيفاء إلى نص بدون اسم حقول التصنيفات. يؤدي هذا إلى إنشاء كلمة ترتيب الكتلة وكتابتها:
// 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번 넣어, 리스트 생성";
عند الترجمة إلى لغات اتجاهها من اليمين إلى اليسار، تتم كتابة سلسلة الرسالة الترتيب المرئي، ويجب ألا يتضمن أوامر اتجاه يونيكود:
// 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
لجميع اللغات، بما في ذلك لغة جديدة
en.js
وتأتي ملفات JSON التي ليست باللغة الإنجليزية من شركاء على TranslateWiki: يمكنك الاطّلاع على ملاحظات على الترجمة لمعرفة التفاصيل حول كيفية تقديم المساعدة