Blockly รองรับคำจำกัดความของการบล็อกที่แปลเป็นภาษาของผู้ใช้ได้ สตริงข้อความในนิยามบล็อก 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
เมื่อ
สร้างอินสแตนซ์การบล็อกแล้ว โดย 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 โปรดดู โน้ตเกี่ยวกับ การแปล เพื่อดูรายละเอียดเกี่ยวกับวิธีที่คุณจะช่วยได้