Blockly 中的預設訊息 (例如內容選單中的文字) 已翻譯成多種語言。根據預設,系統會載入 en
語言代碼,但您也可以加入其他可用的語言代碼。
使用 npm 設定語言代碼
使用 import * as Blockly from 'blockly';
匯入 Blockly 時,會產生預設模組:Blockly Core、Blockly 內建區塊、JavaScript 產生器和英文 lang 檔案。
如要使用其他語言代碼,您必須更謹慎地定義匯入項目:
匯入 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 中設定語言代碼。此功能目前只包含 Blockly 的 npm 版本。
Blockly.setLocale(Fr);
您必須先呼叫這個方法,才能載入工作區。
設定不使用 npm 的語言代碼
從 Blockly 訊息目錄中加入適當的指令碼 src,就能自動加入翻譯。
<script src="../../blockly_compressed.js"></script>
<script src="../../blocks_compressed.js"></script>
<script src="../../msg/js/ar.js"></script>
自訂翻譯
封鎖所有預設字串的翻譯,但如果您有包含文字的自訂區塊,您可能會想加入這些字串的翻譯。例如,blockly/msg/es
的結構與下列內容類似:
Blockly.Msg["COLOUR_RGB_RED"] = "rojo";
您可以使用含有自訂翻譯的物件呼叫 setLocale
,藉此在 Blockly.Msg
物件上新增其他自訂訊息做為新屬性。建議您在翻譯前面加上自訂前置字串,以免日後可能新增的任何預設翻譯發生衝突。
// 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
。您可以使用不同的金鑰多次呼叫,但第二次使用重複的金鑰呼叫將覆寫第一個。
如要參照區塊中的翻譯字串,請使用 Blockly.Msg['HELLO']
,這個字串應包含已設定語言代碼的字串。