แปลบล็อก

Blockly รองรับคำจำกัดความของการบล็อกที่แปลเป็นภาษาของผู้ใช้ได้ สตริงข้อความในนิยามบล็อก JSON ผ่านการใช้ตารางสตริง สามารถปรับอินพุต ช่อง และป้ายกำกับ เพื่อให้สอดคล้องกับคำศัพท์ของภาษานั้นๆ การเรียงลำดับคำ และทิศทาง

"list_repeat block" เป็นภาษาอังกฤษ items_repeat block ในภาษาสเปน items_repeat block ภาษาเกาหลี บล็อก "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 เมื่อ สร้างอินสแตนซ์การบล็อกแล้ว โดย Blockly จะพยายามแทนที่สตริงด้วยค่า

ตัวอย่างเช่น %{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';

ตัวทำเครื่องหมายการประมาณค่า 2 ตัว %1 และ %2 ทำเครื่องหมายตำแหน่งของอินพุต 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 넣어, 리스트 생성";

เมื่อแปลเป็นภาษาที่อ่านจากขวาไปซ้าย ระบบจะเขียนสตริงข้อความเป็นภาษา ลำดับภาพ และไม่ควรมีคำสั่งกำหนดทิศทางแบบ Unicode ดังนี้

// 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 โปรดดู โน้ตเกี่ยวกับ การแปล เพื่อดูรายละเอียดเกี่ยวกับวิธีที่คุณจะช่วยได้