uniapp手动实现国际化【中英文】

//这里是点击按钮进行切换中英文
<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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值