//这里是点击按钮进行切换中英文
<text @click="changeTxt" class="language">{{language}}</text>
//这里是具体数据展示 用拼音表示通过translation.js匹配对应的中文或英文
<view class="title">
<text class="tit">{{fy("biaoti")}}</text>
</view>
export default {
//通过计算属性进行来控制中英文显示(计算属性依赖vuex languageTxt的变化)
computed: {
language() {
return this.$store.state.languageTxt;
},
// this.objs与this.objs2是后面main.js引入的js数组
fy() {
return function(a) {
return this.$store.state.languageTxt == "中" ? this.objs[a] : this.objs2[a]
}
}
},
methods: {
//国际化切换
changeTxt() {
this.$store.state.languageTxt = this.language == "EN" ? "中" : "EN"
console.log(this.$store.state.languageTxt)
this.$store.commit('setLanguage', this.$store.state.languageTxt)
uni.setStorage({
key: 'languageTxt',
data: this.language,
});
},
}
}
store.js
const store = new Vuex.Store({
state:{
languageTxt:uni.getStorageSync('languageTxt')||"中"
},
mutations:{
setLanguage(state,languageTxt){
state.languageTxt=languageTxt
}
},
});
translation.js 通过拼音转换对应得中文或英文
export var objs={
biaoti:"实验室管理系统",
}
export var objs2={
biaoti:"laboratory management system",
}
main.js引入 translation.js
import { objs,objs2 } from "./utils/translation.js"
Vue.prototype.objs=objs
Vue.prototype.objs2=objs2