bctop
bctop
  • 发布:2020-01-16 12:30
  • 更新:2024-05-15 08:31
  • 阅读:3934

nvue国际化的一个方案(借助i18n)

分类:nvue

关于uni-app的国际化 ,我是看的这位前辈的分享

国际化多语言

我看评论里 有关nvue使用国家化插件(i18n)存在各项问题;并且搜了下社区有一位前辈已经给了一个方案

nvue国际化

在这里 贴一下自己研究的一个投机取巧的方案,希望能帮到各位:

  • 就是依赖官方提供的globalData,做一个过渡就可以了;
export default {  
        globalData: {  
            http: '',  
            _i18n: '',  
            $t: ''  
        },  
        onLaunch: function() {  
            let context = this;  
            this.globalData.http = this.$http  //这是我适用nvue的网络请求  
            this.globalData._i18n = this.$i18n  //这是原型链上的$i18n  
            this.globalData.$t = function(str) {  
                let $i18n = getApp().globalData.$i18n//这里去拿global的i18n  
                return context.$t(str)  
            }  
               }  

           }

这是在nvue页使用

         computed: {  
            i18n(){  
                return getApp().globalData.$t('cn')//当然页面中就是按Vue页面里那样使用了  
            }  
        }  

就这样,我在ios模拟器上测试正常,其他应该也是可以的;

2 关注 分享
延津小马 morning95

要回复文章请先登录注册

Joshua_King

Joshua_King

我看csdn有个人直接这样写,js和标签都正常用,APP.vue globalData: {
$t: ''
},
onLaunch(){
this.globalData.$t = val => {
return this.$t(val);
};
},




nvue: <view>{{ myT('conn.phone') }}</view>

let app = getApp().globalData;

methods:{
myT(text) {
return app.$t(text);
},
}


直接调用 myT 即可
2024-05-15 08:31
PhpAdg

PhpAdg

这样是可以获取值并显示了,可是怎么做切换呢?如何可以修改_i18n.locale的值呢?
2020-11-30 18:20