feat(core): 将Blockly默认的多语言文件加入到 msg/blockly

This commit is contained in:
王立帮
2025-05-21 01:10:47 +08:00
parent 9e9b1bd192
commit b7af017627
4 changed files with 1155 additions and 40 deletions

View File

@@ -25,55 +25,36 @@ const {
En
} = Blockly.Lang;
Msg.PATH = {
"zh-hans": path.join(Env.msgPath, "mixly/zh-hans.json"),
"zh-hant": path.join(Env.msgPath, "./mixly/zh-hant.json"),
"en": path.join(Env.msgPath, "mixly/en.json")
}
Msg.LANG_TYPE = ['zh-hans', 'zh-hant', 'en'];
Msg.LANG = {
"zh-hans": MJson.get(Msg.PATH["zh-hans"]),
"zh-hant": MJson.get(Msg.PATH["zh-hant"]),
"en": MJson.get(Msg.PATH["en"])
}
'zh-hans': MJson.get(path.join(Env.msgPath, 'mixly/zh-hans.json')),
'zh-hant': MJson.get(path.join(Env.msgPath, 'mixly/zh-hant.json')),
'en': MJson.get(path.join(Env.msgPath, 'mixly/en.json'))
};
Msg.BLOCKLY_LANG = {
'zh-hans': ZhHans,
'zh-hant': ZhHant,
'en': En
};
Msg.BLOCKLY_LANG_DEFAULT = {
'zh-hans': MJson.get(path.join(Env.msgPath, 'blockly/default/zh-hans.json')),
'zh-hant': MJson.get(path.join(Env.msgPath, 'blockly/default/zh-hant.json')),
'en': MJson.get(path.join(Env.msgPath, 'blockly/default/en.json'))
};
Msg.nowLang = USER.language ?? 'zh-hans';
Msg.prevBlocklyMsg = Blockly.Msg;
Msg.prevBlocklyMsgKey = [
'DELETE_X_BLOCKS', 'REMOVE_COMMENT', 'DUPLICATE_COMMENT', 'WORKSPACE_COMMENT_DEFAULT_TEXT',
'ADD_COMMENT', 'UNDO', 'REDO', 'CLEAN_UP', 'COLLAPSE_ALL', 'EXPAND_ALL', 'DELETE_BLOCK',
'DELETE_ALL_BLOCKS', 'DUPLICATE_BLOCK', 'EXTERNAL_INPUTS', 'INLINE_INPUTS',
'EXPAND_BLOCK', 'COLLAPSE_BLOCK', 'DISABLE_BLOCK', 'ENABLE_BLOCK', 'HELP', 'CHANGE_VALUE_TITLE',
'RENAME_VARIABLE', 'DELETE_VARIABLE', 'WORKSPACE_ARIA_LABEL', 'UNNAMED_KEY',
'PROCEDURES_DEFNORETURN_PROCEDURE', 'PROCEDURES_DEFRETURN_PROCEDURE', 'NEW_VARIABLE_TITLE',
'VARIABLE_ALREADY_EXISTS', 'VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE', 'RENAME_VARIABLE_TITLE',
'VARIABLE_ALREADY_EXISTS_FOR_A_PARAMETER', 'NEW_VARIABLE', 'NEW_STRING_VARIABLE', 'NEW_NUMBER_VARIABLE',
'NEW_COLOUR_VARIABLE', 'CANNOT_DELETE_VARIABLE_PROCEDURE', 'DELETE_VARIABLE_CONFIRMATION'
];
Msg.blocklyDefault = Blockly.Msg;
Msg.getLang = (str) => {
return Msg.LANG[Msg.nowLang][str] ?? '';
}
Msg.changeTo = (lang) => {
Msg.Lang = Msg.LANG[lang ?? 'zh-hans'];
let newMsg;
switch (lang) {
case 'zh-hant':
newMsg = ZhHant;
break;
case 'en':
newMsg = En;
break;
default:
newMsg = ZhHans;
}
Blockly.Msg = newMsg;
for (let key of Msg.prevBlocklyMsgKey) {
Msg.prevBlocklyMsg[key] = Blockly.Msg[key];
}
lang = Msg.LANG_TYPE.includes(lang) ? lang : 'zh-hans';
Msg.nowLang = lang;
Msg.Lang = Msg.LANG[lang];
Blockly.Msg = Msg.BLOCKLY_LANG[lang];
Object.assign(Msg.blocklyDefault, Msg.BLOCKLY_LANG_DEFAULT[lang]);
}
Msg.renderToolbox = (addToolboxitemid = false) => {