语言回退不适用于西班牙用户,而是将[object Object]显示为转换后的值
场景:
en.json
"USER" : "User"
es.json
"USER" : {
"COMPANY" : "Miembro"
"VENDOR" : "Vendedor"
}
fr.json:
"USER" : {
"DEFAULT": "Consommateur"
"COMPANY" : "Membre"
"VENDOR" : "Vendeur"
}
用法:
{{ 'USER' | envlabel }}
环境标签:通过检查用户类型进行翻译的管道
说明:
实施:
现在解决:为了使其正常工作,我们通过使用use(defaultLang)更改语言并获取翻译后的字符串,然后在返回翻译后的文本之后再次使用(userLang)。
答案 0 :(得分:0)
setDefaulrLang()仅对appComponent中app中的所有用户使用,或者如果您从浏览器中获得用户位置,则可以对其进行更改。我认为最好的方法是学习.json文件的工作方式,所有文件应具有相同的行,因此在en.json中不能像"user": "User"
和es文件user: {...}
中那样存在行,因为第一个是变量名:字符串数据,第二个是变量名+映射数据!!!
应如何编写示例:
en.json
"USER" : {
"user": "user"
}
es.json
"USER" : {
"user": "Alejandro"
"COMPANY" : "Miembro"
"VENDOR" : "Vendedor"
}
fr.json:
"USER" : {
"user": "Pedro"
"DEFAULT": "Consommateur"
"COMPANY" : "Membre"
"VENDOR" : "Vendeur"
}
{{ 'USER.user' | translate }}
要更改用户浏览器功能上的语言调用按钮事件,将使用corect语言。
$('.dropdown-menu>li>button').on('click', function () {
switch (this.id) {
case "en":
Cookies.set('user_lang', 'en', { expires: 60 });
break;
case "no":
Cookies.set('user_lang', 'no', { expires: 60 });
break;
case "pl":
Cookies.set('user_lang', 'pl', { expires: 60 });
break;
default:
}
});
function langTriger(code) {
$(code).trigger('click'); // trigger button to call back-end event
};
function trigerUserLang() {
switch (Cookies.get('user_lang')) {
case "en":
langTriger('#en');
break;
case "no":
langTriger('#no');
break;
case "pl":
langTriger('#pl');
break;
default:
};
}