Bản dịch

Các thông báo mặc định trong Blockly (chẳng hạn như văn bản trong trình đơn theo bối cảnh) đã được dịch sang nhiều ngôn ngữ. Ngôn ngữ en được tải theo mặc định, nhưng bạn cũng có thể thêm các ngôn ngữ có sẵn khác.

Định cấu hình ngôn ngữ bằng npm

Khi nhập Blockly bằng import * as Blockly from 'blockly';, bạn sẽ nhận được các mô-đun mặc định: lõi Blockly, các khối tích hợp Blockly, trình tạo JavaScript và tệp ngôn ngữ tiếng Anh.

Để sử dụng các ngôn ngữ khác, bạn nên xác định các lệnh nhập một cách cẩn thận hơn:

Nhập các mô-đun mặc định của Blockly

import * as Blockly from 'blockly/core';
import 'blockly/blocks';
import 'blockly/javascript'; // Or the generator of your choice

Nhập ngôn ngữ của Blockly

Ví dụ: để nhập bộ thông báo tiếng Pháp:

import * as Fr from 'blockly/msg/fr';

Để biết danh sách đầy đủ các ngôn ngữ Blockly được hỗ trợ, hãy xem: https://github.com/google/blockly/tree/master/msg/js

Định cấu hình ngôn ngữ

Sau khi nhập bộ thông báo mong muốn, bạn nên đặt ngôn ngữ trong Blockly. Hàm này hiện chỉ có trong bản phát hành npm của Blockly.

Blockly.setLocale(Fr);

Bạn cần gọi phương thức này trước khi tải không gian làm việc.

Định cấu hình ngôn ngữ không có npm

Thêm src tập lệnh thích hợp từ thư mục msg Blockly và bản dịch sẽ tự động được thêm vào.

<script src="../../blockly_compressed.js"></script>
<script src="../../blocks_compressed.js"></script>
<script src="../../msg/js/ar.js"></script>

Bản dịch tuỳ chỉnh

Blockly bao gồm bản dịch cho tất cả chuỗi mặc định, nhưng nếu có các khối tuỳ chỉnh có văn bản, bạn nên thêm bản dịch của riêng mình cho các chuỗi đó. Ví dụ: cấu trúc của blockly/msg/es tương tự như sau:

Blockly.Msg["COLOUR_RGB_RED"] = "rojo";

Bạn có thể thêm các thông báo tuỳ chỉnh khác dưới dạng thuộc tính mới trên đối tượng Blockly.Msg bằng cách gọi setLocale với một đối tượng có bản dịch tuỳ chỉnh. Bạn nên thêm tiền tố tuỳ chỉnh vào bản dịch để tránh xung đột với bất kỳ bản dịch mặc định nào có thể được thêm vào trong tương lai.

// 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 đặt từng khoá từ đối tượng đầu vào vào Blockly.Msg. Bạn có thể gọi hàm này nhiều lần bằng các khoá riêng biệt, nhưng việc gọi hàm này lần thứ hai bằng khoá trùng lặp sẽ ghi đè khoá đầu tiên.

Để tham chiếu chuỗi đã dịch trong khối, hãy sử dụng Blockly.Msg['HELLO']. Khối này sẽ chứa chuỗi cho ngôn ngữ mà bạn đã định cấu hình.