I18n国际化修改
BizSpring 的业务多语言由后端 properties 提供、前端按 key 取用。管理端、商城端(Vue3 / Uni-App)统一从后端 properties 加载文案 JSON,页面用 message['key'] / messages['key'] 渲染。
一、多语言文件位置
Java 源码 bizspring-business/bizspring-upms/src/main/resources/language/ 下按终端模块分目录存放:
| 目录 | 用途 |
|---|---|
common/ | 业务通用 + 各实体字段(管理端 / 商城端页面文案主要来源) |
admin/ | 管理端菜单、路由、导航等 |
merchant/ | 商家端 |
shop/ | 商城端专有 |
每个目录下按语言拆分文件,命名 message_<locale>.properties,例如:message_zh_CN.properties(简体)、message_zh_TW.properties(繁体)、message_en_US.properties 等。
管理端页面文案 key(如
common_search、MemberLevel_name)在common/message_<locale>.properties中;/i18n/message接口按terminal + language合并返回。
二、key 命名规范
- 通用词复用
common_*:common_searchcommon_addcommon_deletecommon_editcommon_resetcommon_okcommon_cancelcommon_statuscommon_actioncommon_confirmDeletioncommon_success… - 业务字段用
<Entity>_<field>驼峰:如MemberLevel_name、DistributionGoods_directCommissionRate、PointLottery_prizeType。 - 枚举/字典用
<Entity>_<field><value>或Dict_<type>_<value>:如PointLottery_status0、Dict_member_level_type_1。
三、properties 值必须 \uXXXX 转义
.properties 为 ISO-8859-1,非 ASCII 字符必须写成 \uXXXX(Unicode 转义)。不要直接写中文字符。
properties
common_search=搜索
MemberLevel_name=名称
DistributionGoods=分销商品新增 key 时可用小脚本把 {key: 中文} 批量转义并去重追加到 message_zh_CN.properties / message_zh_TW.properties(繁体由简体转换并按术语校对)。
四、页面取用
管理端(Vue3 + Element Plus)
data() 中一次性读入,模板用 message['key']:
javascript
data() {
const message = JSON.parse(sessionStorage.getItem('messages')) || {}
return { message, /* ... */ }
}html
<el-button type="primary" @click="handleQuery">{{ message['common_search'] }}</el-button>
<el-form-item :label="message['MemberLevel_name']" prop="name">商城端(Uni-App)
html
:label="messages['User_email']+':'"
<text>{{messages['common_readAndAgree']}}</text>五、管理端页面「逐页改造」套路
将硬编码中文页面改为多语言时,需覆盖全部可见文案:
data()顶部加const message = JSON.parse(sessionStorage.getItem('messages')) || {}并返回message;- 模板中表头、按钮、placeholder、弹窗标题改为
:label="message['key']"/:placeholder="message['key']"或文本插值形式; - 校验 rules 的
message用局部message['key'](在data()内用闭包常量,避免this未就绪); $confirm/msgSuccess/$message文案改this.message['key'];- 状态/枚举用
message['Entity_status' + row.status]; - 新增 key 追加到
common/message_zh_CN.properties+message_zh_TW.properties(本期管理端仅补简体+繁体)。
BizSpring