文档/设置与外观
多语言
编辑器的界面、积木和扩展都能换语言。设置 → 通用 → 语言,选完立刻生效,不用刷新。

第一次打开时按浏览器的语言挑一门;挑过一次之后就听你的,换浏览器语言也不会把它顶掉。
换语言会换掉什么#
| 这一块 | 谁在管 |
|---|---|
| 界面:菜单、面板、按钮、提示、对话框 | 编辑器自己的语言包 |
| 积木上的字 | 积木库(和 Scratch 同一份翻译) |
| 扩展的积木 | 扩展自己;官方扩展用 Scratch 的翻译 |
| 你作品里的名字(角色名、造型名、变量名) | 不换,那是你的数据 |
最后一条是有意的:换语言不该动作品里的任何一个字。新建的东西(新角色叫 Sprite1
还是「角色1」)按建的时候那门语言定下来,之后就跟着作品走。
缺翻译时会看到什么#
看到中文。这是设计成这样的:语言包里查不到的条目退回中文原文,所以最坏的情况是一句
中文夹在英文界面里,而不是一块空白或者 panel.sprites.upload 这样的内部名字。
有哪几门语言#
语言下拉里列的是当前有语言包的那几门,各自写自己的名字(English、日本語、 한국어),因为正在挑语言的人多半看不懂现在这门。
从右往左写的语言(阿拉伯语、希伯来语)会把整个界面镜像过来。
想加一门语言#
加一门语言 = 加一个 JSON 文件,不用改代码:
npm run i18n:extract出一份语料(src/i18n/messages.json,记着每条文案出现在哪儿)。npm run i18n:terms -- ja从 Scratch 官方的语言包里借走标准译名(角色 / 造型 / 舞台 这些词必须和 Scratch 一致,不然用 Scratch 的人认不出来)。npm run i18n:todo -- ja看还差多少,按区域分批翻。- 翻好放进
src/i18n/locales/ja.json,语言下拉里就出现了。
翻译时读 src/i18n/GLOSSARY.md:译名对照,和四条铁律(用 Scratch 的词、短、
句末不加句号、按钮用 Title Case)。
复数不用操心中文没有这回事 —— 英语两档、俄语三档、阿拉伯语六档,各语言写各自的:
"{n} 块积木": "{n, plural, one {# block} other {# blocks}}"