看官方文档说nvue要单独引用,原因是nvue使用的是weex渲染,拿不到vue的this,挂载的一切vue实例都失效了
uniapp官方国际化文档:https://uniapp.dcloud.net.cn/tutorial/i18n.html
官方代码:
<script>
import {
initVueI18n
} from '@dcloudio/uni-i18n'
// const messages = {} 此处内容省略,和 vue 全局引入的写法一致
const { t } = initVueI18n(messages)
export default {
data() {
return {
}
}
}
</script>
发现官方的压根用不了.....,然后我就直接简单粗暴的把语言文件引入,用计算属性判断了
<template>
<view>
<text>{{i18n.rentBattery}}</text> //nvue页面文字只能通过text标签上的class才能更改文字样式
, </view>
</template>
<script>
import langEn from '@/lang/en'
import langZhCN from '@/lang/zh-CN'
export default {
data() {
return {
},
computed: {
i18n(){
let lang = uni.getStorageSync('CURRENT_LANG') || uni.getLocale() //获取当前语言
return lang == 'zh-Hans' ? langZhCN.index : langEn.index //根据语言返回语言包
}
},
}
}
</script>
亲测能用...
网友评论