🛫 国际化 API
随着我们的社区越来越大,语言成为了各个国家的用户和玩家之间交流的障碍。为了解决这个问题,我们提供了I18nAPI
并鼓励插件创作者使用国际化接口。
加载翻译数据
i18n.load(path, defaultLocaleName, defaultLangData)
- 参数:
- path:
String
翻译数据所在的文件1/目录2 - defaultLocaleName:
String
默认的语言名称,形如zh_CN
或en
(如果没有提供目标语言给i18n.tr
或i18n.get
的翻译,这个参数将被使用)
若传入空字符串,则默认跟随系统语言 - defaultLangData:
Object
该参数将用于补全或创建翻译文件,形如JavaScript 1 2 3 4 5 6 7 8 9
{ localeName: { "src": "translation" }, zh_CN: { "a.b.c.d.114514": "1919810", "src": "源" } }
- 抛出:
- 参数无效
获取文本的指定语言翻译
i18n.get(key[,localeName])
- 参数:
- key:
String
文本或ID - localeName:
String
(可选)
目标语言,默认为i18n.load
时传入的defaultLocaleName
- 返回值:
String
翻译内容(若经过多次回落仍未找到翻译,则返回key
) - 抛出:
- 参数无效
使用指定语言翻译文本并格式化
i18n.trl(localeName, key, ...)
- 参数:
- localeName:
String
目标语言 - key:
String
文本或ID - ...:
Any
格式化参数 - 返回值:
String
翻译并格式化后的文本 - 注意: 格式化应遵循语法
- 抛出:
- 参数无效
使用默认语言翻译文本并格式化
i18n.tr(key, ...)
- 参数:
- key:
String
文本或ID - ...:
Any
格式化参数 - 返回值:
String
翻译并格式化后的文本 - 注意: 格式化应遵循语法
- 抛出:
- 参数无效
完整样例
JavaScript | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
|
-
文件必须为JSON格式,且文件内容应类似:
↩JSON 1 2 3 4 5 6 7 8 9
{ "localeName": { "src": "translation" }, "zh_CN": { "a.b.c.d.114514": "1919810", "src": "源" } }
-
请在路径的末尾加上路径分隔符(
/
或\\
)。
目录内容应类似:其中的每个文件内容都应类似:Text Only 1 2 3
┌ LOCALE_name.json [Dir] ┼ en.json └ zh_CN.json
↩JSON 1 2 3 4 5 6 7 8 9 10 11 12 13
{ "a.c.b.d": "translation", "use": { "nested": { "src": "translation" }, "114514": { "1919810": "heng heng aaaaaaaaaaaaaaaaaaaaaaaaa", "a": "此处的ID为use.nested.114514.a", "b": "The ID of this will be use.nested.114514.b" } } }