I18n Uni-App 中使用
商城端(Uni-App)与管理端共用同一套后端 properties 文案;启动时拉取并缓存,页面用 messages['key'] 渲染。
一、properties 配置文件示例
bizspring-upms/src/main/resources/language/common/message_zh_CN.properties(值 \uXXXX 转义):
properties
common_notNull=不能为空
common_readAndAgree=已阅读并同意
User_email=邮箱
User_password=密码二、多语言加载
启动时按 terminal=shop + language 拉取,写入本地缓存并挂到全局 app.globalData.messages:
javascript
bizRequest({
url: '/upms/i18n/message?terminal=shop&language=zh_CN',
method: 'GET',
}).then(res => {
if (res.statusCode == '200') {
let messages = res.data.data.i18n
if (messages) {
uni.setStorageSync('messages', JSON.stringify(messages))
getApp().globalData.messages = messages
}
}
})三、页面调用
页面 data() 直接引用全局 messages(或从缓存解析):
javascript
var app = getApp();
export default {
data() {
return { messages: app.globalData.messages }
}
}四、Uni-App 中使用
html
<uni-forms-item :label="messages['User_email']+':'" :name="['obj','email']">
<input v-model="formData.obj.email" :placeholder="messages['common_input']+' '+messages['User_email']" />
</uni-forms-item>
<text>{{messages['common_readAndAgree']}}</text>key 命名(
common_*/<Entity>_<field>)与新增流程见《I18n国际化修改》。
BizSpring