หากคุณเพิ่มฟีเจอร์ลงใน Blockly Core ซึ่งต้องใช้สตริงใหม่ที่ผู้ใช้มองเห็นได้ คุณต้องเพิ่มสตริงเหล่านั้นลงใน Blockly.Msg
เพื่อให้ Translatewiki แปลได้ (ดูข้อมูลเกี่ยวกับการเพิ่มโทเค็นการแปล
สำหรับแอปพลิเคชันของคุณเองได้ที่การแปล)
- เพิ่มสตริงใหม่พร้อมชื่อและคำอธิบายที่เหมาะสมลงในไฟล์
msg/messages.js
- เรียกใช้
npm run messages
เพื่อเพิ่มคำแปลลงในไฟล์msg/json/qqq.json
และmsg/json/en.js
โดยอัตโนมัติ นอกจากนี้ ขั้นตอนนี้อาจเปลี่ยนmsg/json/constants.js
หรือmsg/json/synonyms.js
ในบางกรณีด้วย - ตรวจสอบไฟล์ที่สร้างขึ้นโดยอัตโนมัติว่าถูกต้องหรือไม่ โปรดทราบว่าสคริปต์อาจนำส่วน
@metadata
ออกที่จุดเริ่มต้นของqqq.json
หากเกิดกรณีนี้ขึ้น คุณควรย้อนกลับการเปลี่ยนแปลงดังกล่าวอย่างระมัดระวังเพื่อให้ระบบเพิ่มสตริงใหม่ แต่ไม่นำ@metadata
ออก - ในโค้ดฟีเจอร์ ให้อ้างอิงสตริงใหม่ด้วย
Blockly.Msg['MY_NEW_MESSAGE']
- คอมมิตการเปลี่ยนแปลงทั้งหมดในไฟล์
msg
พร้อมกับโค้ดฟีเจอร์
เช่น หากคุณเพิ่มโค้ดนี้ลงใน msg/messages.js
/** @type {string} */
/// This is a hint to translators about the context for the message.
Blockly.Msg.MY_NEW_MESSAGE = 'This is a string that users will see!';
จากนั้นเรียกใช้ npm run messages
คุณจะเห็นการเปลี่ยนแปลงต่อไปนี้ใน
msg/en.json
// ...
"MY_NEW_MESSAGE": "This is a message that users will see!",
// ...
และใน msg/qqq.json
// ...
"MY_NEW_MESSAGE": "This is a hint to translators about the context for the message.",
// ...
จากนั้นคุณจะอ้างอิงสตริงนี้ในโค้ดได้ด้วย Blockly.Msg['MY_NEW_MESSAGE']
คำแนะนำการแปล
ความคิดเห็นที่มีเครื่องหมายทับ 3 อันใน msg/messages.js
จะแสดงต่อผู้ใช้ TranslateWiki เป็น
ข้อมูลเสริมเมื่อแปล ให้บริบทเกี่ยวกับตำแหน่งที่จะแสดงข้อความต่อผู้ใช้ หากข้อความมีพารามิเตอร์ (เช่น %1
)
อธิบายความหมายของพารามิเตอร์
ตัวอย่างคำแนะนำในการแปลที่ดีซึ่งอธิบายพารามิเตอร์และ ระบุลิงก์ไปยังข้อมูลเพิ่มเติมมีดังนี้
/** @type {string} */
/// block text - Repeatedly counts a variable (%1)
/// starting with a (usually lower) number in a range (%2),
/// ending with a (usually higher) number in a range (%3), and counting the
/// iterations by a number of steps (%4). As in
/// [https://github.com/google/blockly/wiki/Loops#count-with
/// https://github.com/google/blockly/wiki/Loops#count-with].
Blockly.Msg.CONTROLS_FOR_TITLE = 'count with %1 from %2 to %3 by %4';
ประเภทบริบท
คำแนะนำหลายรายการใช้คำนำหน้าเพื่ออธิบายบริบทของข้อความ คำนำหน้าที่ใช้กันทั่วไป มีดังนี้
- บล็อกข้อความ
- ข้อความบนปุ่ม
- เมนูตามบริบท
- เมนูแบบเลื่อนลง
- คณิตศาสตร์
- การแจ้งเตือนแบบป๊อปอัป
- เคล็ดลับเครื่องมือ
หากข้อความของคุณปรากฏในบริบทใดบริบทหนึ่งเหล่านี้ ให้ใช้คำนำหน้าที่เหมาะสม
คำพ้องความหมาย
บางครั้งอาจต้องเปลี่ยนคีย์ข้อความ แต่ไม่ต้องเปลี่ยนคำแปล ในกรณีนี้ คุณสามารถตั้งค่าข้อความเก่าเป็นคำพ้องความหมายของข้อความใหม่ได้ ดังนี้
/** @type {string} */
Blockly.Msg.CONTROLS_FOR_INPUT_DO = Blockly.Msg.CONTROLS_REPEAT_INPUT_DO;
ข้อความเสริม
สตริงข้อความบางรายการไม่น่าจะต้องมีการแปล ยกเว้นในบางกรณี เช่น คำนามเฉพาะหรือสัญลักษณ์ ใน Blockly มักจะมีการทำเครื่องหมาย URL ของความช่วยเหลือเป็น "ไม่บังคับ"
เราจะส่งภาษาไปยังที่เก็บ Blockly ก็ต่อเมื่อแปลเสร็จสมบูรณ์แล้วอย่างน้อย 25% ดังนั้น การทำเครื่องหมายข้อความที่ไม่น่าจะต้องแปลเป็น ไม่บังคับจะช่วยให้ภาษาเหล่านั้นเป็นไปตามเกณฑ์โดยไม่ต้อง แปลข้อความที่ไม่บังคับให้เสร็จสมบูรณ์
/** @type {string} */
/// {{Optional}} math - The symbol for the binary operation addition.
Blockly.Msg.MATH_ADDITION_SYMBOL = '+';
รายการที่ไม่มีการแปล
สีที่ใช้สำหรับหมวดหมู่บล็อกเริ่มต้นจะมีการทำเครื่องหมาย {{notranslate}}
สีเหล่านี้ไม่ได้มีไว้สำหรับ
การแปลภาษา แต่มีอยู่ในระบบการแปลภาษาเพื่อให้ผู้พัฒนาเปลี่ยนสีของบล็อกในหมวดหมู่เริ่มต้นได้อย่างง่ายดาย
หากต้องการเพิ่มหมวดหมู่การบล็อกใหม่ ให้ใช้คำสั่ง {{notranslate}}
หากคุณเพิ่มข้อความประเภทอื่นที่คิดว่าไม่ควรแปล
ให้พิจารณาว่าระบบการแปลเป็นภาษาท้องถิ่นเป็นที่ที่เหมาะสมสำหรับสตริงหรือไม่
/** @type {string} */
/// {{Notranslate}} Hue value for all logic blocks.
Blockly.Msg.LOGIC_HUE = '210';