Skip to content
大纲

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_searchMemberLevel_name)在 common/message_<locale>.properties 中;/i18n/message 接口按 terminal + language 合并返回。

二、key 命名规范

  • 通用词复用 common_*common_search common_add common_delete common_edit common_reset common_ok common_cancel common_status common_action common_confirmDeletion common_success
  • 业务字段<Entity>_<field> 驼峰:如 MemberLevel_nameDistributionGoods_directCommissionRatePointLottery_prizeType
  • 枚举/字典<Entity>_<field><value>Dict_<type>_<value>:如 PointLottery_status0Dict_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>

五、管理端页面「逐页改造」套路

将硬编码中文页面改为多语言时,需覆盖全部可见文案:

  1. data() 顶部加 const message = JSON.parse(sessionStorage.getItem('messages')) || {} 并返回 message
  2. 模板中表头、按钮、placeholder、弹窗标题改为 :label="message['key']" / :placeholder="message['key']" 或文本插值形式;
  3. 校验 rulesmessage 用局部 message['key'](在 data() 内用闭包常量,避免 this 未就绪);
  4. $confirm / msgSuccess / $message 文案改 this.message['key']
  5. 状态/枚举用 message['Entity_status' + row.status]
  6. 新增 key 追加到 common/message_zh_CN.properties + message_zh_TW.properties(本期管理端仅补简体+繁体)。

版权许可