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

تتيح حظر تعريفات الحظر التي يمكن ترجمتها إلى لغة المستخدم. من خلال استخدام جداول السلاسل، سلاسل الرسائل في تعريف مجموعة 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

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