uniapp实现多语言切换


1.下载

npm install vue-i18n

2.创建语言包

3.在main.js中引入

import VueI18n from "vue-i18n";
Vue.use(VueI18n);

const i18n = new VueI18n({
    locale: uni.getStorageSync('lang') == (undefined || "" || null) ?
        "zh" :
        uni.getStorageSync('lang'),
    messages: {
        zh: require("./static/lang/text-zh.json"),
        en: require("./static/lang/text-en.json")
    }
});
Vue.prototype._i18n = i18n

const app = new Vue({
    i18n,
    ...App
})
app.$mount()

4.语言切换

<button @click="switchZh">中文简体</button>
<button @click="switchEn">English</button>

switchZh() {
    //中文
    this._i18n.locale = 'zh';
    uni.setStorageSync('lang', 'zh');
},
switchEn() {
    //英文
    this._i18n.locale = 'en';
    uni.setStorageSync('lang', 'en');
}

4.在组件中使用

<view>{{ $t('home.home') }}</view>

5.修改底部导航栏和标题

onShow() {
    uni.setNavigationBarTitle({// 修改头部标题
        title: this.$i18n.messages[this.$i18n.locale].home.title
    });

    uni.setTabBarItem({// 修改底部导航
        index: 0,
        text: this.$i18n.messages[this.$i18n.locale].home.nav
    });
}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM