前端js(vue)实现国际化

1.创建自己的语言包(Language.js),并引入界面。

2.语言种类定义json格式,如中文(zh),英文(en),韩语(ko)。

var zh={

button:{

lg:"XX",

}

page:{

index:{

lg:"",

}

}

}

3.为语言定义一个初始值。

var languague = zh;

4.定义一个函数获取语言。
var getLanguage = function() {
    var language = localStorage.getItem("language");
    if(language) {
        return JSON.parse(language);
    } else {
        return zh;
    };
    
};

5.定义一个函数设置语言种类。

var setLanguage = function(lan) {
    console.log('lang' + lan)
    if(lan == "zh") {
        localStorage.setItem("language", JSON.stringify(zh));
        localStorage.setItem("name", 'zh');
    } else if(lan == "en") {
        localStorage.setItem("language", JSON.stringify(en));
        localStorage.setItem("name", 'en');
    }if (lan=='ko') {
        localStorage.setItem("language", JSON.stringify(ko));
        localStorage.setItem("name", 'ko');
    }
};

6.将Language.js 引入切换语言界面,在切换语言的时候使用setLanguage ()设置语言和修改导航界面的语言。

修改导航界面语言代码:

//底部导航更改
                var home=plus.webview.getLaunchWebview();
                home.evalJS("editLanguage()");    
                var all = plus.webview.all();
                //获取所有界面的,将需要修改的界面id,与all[i].id 做判断
                for(var i=0;i<all.length;i++){
                    //all[i].evalJS("editLanguage()");
                     if (all[i].id=="team.html") {
                         //执行 'team.html' 的editLanguage()
                             all[i].evalJS("editLanguage()");
                     }     }

team界面上的editLanguage

var editLanguage = function() {
      XX = getLanguage();//再次设置语言
    }

7.切换语言的界面代码:

var app=new Vue({
        el:"#app",
        data:{                 
            language:localStorage.getItem("name"),            
            lang:getLanguage()
        },
        mounted: function() {
            var getItemName=localStorage.getItem("name");
            this.lang=getLanguage();             
        },
        watch:{
            language:function(newval,oldval){                 
                this.lang=getLanguage();                 
            }
        }

})

var set =function(){

 var home=plus.webview.getLaunchWebview();
                home.evalJS("editLanguage()");    
                var all = plus.webview.all();
                //获取所有界面的,将需要修改的界面id,与all[i].id 做判断
                for(var i=0;i<all.length;i++){
                    //all[i].evalJS("editLanguage()");
                     if (all[i].id=="team.html") {
                         //执行 'team.html' 的editLanguage()
                             all[i].evalJS("editLanguage()");
                     }     }

}

8.界面上使用v-text 绑定数据,数据很多时使用{{XX}}。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值