ข้อความเริ่มต้นใน Blockly (เช่น ข้อความในเมนูบริบท) ได้รับการแปลเป็นภาษาต่างๆ มากมาย ระบบจะโหลดภาษา en
โดยค่าเริ่มต้น
แต่คุณจะรวมภาษาอื่นๆ ที่ใช้ได้ไว้ด้วย
การกำหนดค่าภาษาด้วย npm
เมื่อนําเข้า Blockly ด้วย import * as Blockly from 'blockly';
คุณจะได้รับข้อบังคับเริ่มต้น ได้แก่ Blockly Core, บล็อกในตัวของ Blockly, เครื่องมือสร้าง JavaScript และไฟล์ภาษาอังกฤษ
หากต้องการใช้ภาษาอื่นๆ คุณจะต้องกำหนดการนำเข้าอย่างระมัดระวังมากขึ้น โดยทำดังนี้
นำเข้าโมดูลเริ่มต้นของ Blockly
import * as Blockly from 'blockly/core';
import 'blockly/blocks';
import 'blockly/javascript'; // Or the generator of your choice
นำเข้าภาษา Blockly
ตัวอย่างเช่น หากต้องการนำเข้าชุดข้อความภาษาฝรั่งเศส ให้ทำดังนี้
import * as Fr from 'blockly/msg/fr';
ดูรายการภาษาที่รองรับทั้งหมดของ Blockly ได้ที่ https://github.com/google/blockly/tree/master/msg/js
กำหนดค่าภาษา
หลังจากนําเข้าชุดข้อความที่ต้องการแล้ว คุณจะต้องตั้งค่าภาษาใน Blockly ปัจจุบันฟังก์ชันนี้รวมอยู่ในรุ่น npm ของ Blockly เท่านั้น
Blockly.setLocale(Fr);
คุณต้องเรียกใช้เมธอดนี้ก่อนที่จะโหลดพื้นที่ทํางาน
การกำหนดค่าภาษาที่ไม่มี npm
ใส่ src ของสคริปต์ที่เหมาะสมจากไดเรกทอรีข้อความ Blockly และคำแปลจะรวมโดยอัตโนมัติ
<script src="../../blockly_compressed.js"></script>
<script src="../../blocks_compressed.js"></script>
<script src="../../msg/js/ar.js"></script>
คำแปลที่กำหนดเอง
Blockly มีคำแปลสำหรับสตริงเริ่มต้นทั้งหมด แต่หากคุณมีบล็อกที่กำหนดเองซึ่งมีข้อความ คุณอาจต้องใส่คำแปลของคุณเองสำหรับสตริงเหล่านั้น ตัวอย่างเช่น โครงสร้างของ blockly/msg/es
จะคล้ายกับตัวอย่างต่อไปนี้
Blockly.Msg["COLOUR_RGB_RED"] = "rojo";
คุณสามารถเพิ่มข้อความที่กําหนดเองเพิ่มเติมเป็นพร็อพเพอร์ตี้ใหม่ในBlockly.Msg
ออบเจ็กต์ได้โดยเรียกใช้ setLocale
ด้วยออบเจ็กต์ที่มีคำแปลที่กำหนดเอง คุณอาจต้องใส่คำนำหน้าที่กำหนดเองไว้ข้างหน้าคำแปลเพื่อหลีกเลี่ยงการทับซ้อนกับคำแปลเริ่มต้นที่อาจเพิ่มในอนาคต
// In custom_es.js
export const CustomEs = {
HELLO: "Hola",
}
// In your setup code
import * as Es from blockly/msg/Es;
import { CustomEs } from ../custom_es;
Blockly.setLocale(Es);
Blockly.setLocale(CustomEs);
setLocale
จะใส่คีย์แต่ละรายการจากออบเจ็กต์อินพุตลงใน Blockly.Msg
คุณสามารถเรียกใช้หลายครั้งโดยใช้คีย์ที่แตกต่างกันได้ แต่การเรียกใช้ครั้งที่ 2 ด้วยคีย์ที่ซ้ำกันจะเป็นการเขียนทับคีย์แรก
หากต้องการอ้างอิงสตริงที่แปลแล้วในบล็อก ให้ใช้ Blockly.Msg['HELLO']
ซึ่งควรมีสตริงสำหรับภาษาที่คุณกำหนดค่าไว้
หัวข้อที่เกี่ยวข้อง
- ภาษาที่อ่านจากขวาไปซ้าย: โปรดดูการสาธิต RTL
- การแปลบล็อก