本地化
翻译文本
所有的翻译文本均在 locale 文件夹下,以 <lang>.json
形式命名,<lang>
应该为某个具体的语言编号,如 en、zh-cn 等,具体编辑器中支持的语言见编辑器对应的翻译文档。
数据格式
对于具体的 JSON 文件,应当满足如下格式:
{
"message.id.1": "this is message 1",
"message.id.2": "this is message 2"
}
在上述格式中,JSON 文件必须有一个仅有键值对构成的对象,其中键必须是满足 [a-zA-Z0-9-.]
的合法字符串,即为翻译 ID,值必须是字符串类型,即为对应的翻译内容。
冲突处理
多个扩展可能会对同一个翻译 ID 提供翻译,此时后加载的扩展应当覆盖先前载入的翻译。特别地,规定编辑器主体的翻译必须是最先加载的。
例如扩展 A 翻译文件 en.json
如下:
{
"message.say": "Hello!",
"message.world": "World!"
}
扩展 B 翻译文件 en.json
如下:
{
"message.say": "How are you?",
"message.hi": "Hi!"
}
假如先加载扩展 A,后加载扩展 B,那么最终加载到编辑器中的翻译相当于如下内容,可以看到 message.say
的内容被覆盖了:
{
"message.say": "How are you?",
"message.world": "World!",
"message.hi": "Hi!"
}