多语言系统
基础库提供了全局多语言系统 lang,并支持按“模块名”划分命名空间,避免不同模块之间翻译 key 冲突。
该系统是“轻量方案”,不依赖 i18next,特点:
- 支持按模块(命名空间)隔离 key:同一个 key 在不同模块互不冲突
- 支持插值:
{{name}} - 支持回退语言:模块回退 > 全局回退 > key
- 推荐通过 “
config/langs/<lang>.js+ CLI 自动加载”接入(兼容小程序)
配置
在用户配置中配置 option.duxapp.lang:
export default {
option: {
duxapp: {
lang: {
default: 'zh',
fallback: 'zh',
autoDetect: true,
langs: ['zh', 'zhHant', 'en']
}
}
}
}
语言码会被规范化处理,例如:zh_CN / zh-cn -> zh,zh-HK -> zhHant。
配置参数说明:
default(string):默认语言(会被归一化)fallback(string):全局回退语言(会被归一化),未配置时等于defaultautoDetect(boolean):首次启动且本地未保存语言(lang=null)时,是否按设备语言自动选择(仅当归一化后的语言在langs内才会生效)langs(string[]):允许语言列表(用于 UI 选择器,也用于 CLI 自动加载语言包)