أقلمة عمليات الحظر

يتيح هذا الخيار تعريفات الحظر التي يمكن ترجمتها إلى لغة المستخدم. ومن خلال استخدام جداول السلاسل، يمكن لسلاسل الرسائل في تعريف مجموعة JSON تعديل المدخلات والحقول والتصنيفات لتعكس مفردات اللغة وترتيب الكلمات واتجاهها.

حظر "list_repeat" بالإنجليزية حظر list_repeat باللغة الإسبانية حظر list_repeat باللغة الكورية كتلة "list_repeat" بالعربية من اليمين إلى اليسار

تشترك كل الحالات التالية في تعريف مجموعة 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_...} في مكانها وتُصدر أداة بالكامل تحذيرًا بشأن الترجمة غير المتوفّرة.

وكما هو موضح في المثال، تعمل العلامة في عدة مواقع. تسمح الرسائل والتلميحات باستبدال السلاسل المرئية للمستخدم. وبالمثل، يمكن للحقول المنسدلة أيضًا استخدام الترميز لنص العنصر. يمكن ترجمة عنوان URL للمساعدة لضمان توجيه المستخدم إلى صفحة مترجَمة بشكل مشابه. وأخيرًا، يمكن أن تستخدم القيمة colour طريقة الترميز للمساعدة في تمركز لوحة ألوان الكتل.

إذا كنت تستخدم تنفيذ JavaScript ولا تتوقّع تغيير لغة المستخدم في وقت التشغيل، قد تجد أنه من الأسهل استخدام مرجع مباشر. على سبيل المثال، Blockly.Msg['LISTS_REPEAT_TITLE'] أو Blockly.Msg.LISTS_REPEAT_TITLE'.

يتم تحميل جداول السلاسل من خلال أي ملف من ملفات .js الخاصة باللغات في msg/js. حمِّل الملف المناسب في صفحة الويب لتحميل ترجمة الكتلة الصحيحة.

إضافة رسالة بتنسيق JSON

تحدد السمة message0message1 و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. راجِع الملاحظات حول الترجمة للحصول على تفاصيل عن كيفية تقديم المساعدة.