eros
eros copied to clipboard
有没有好的多语言解决方案?
Your questions.
vue-i18n 集成错误,也有可能是我的姿势不对?
我也有這個問題,請問解決了嗎?
index.js中全局配置i18n
手写
i18n.js
--------------
const yaml = require('./common.json');
export default function $t(str, locale='en') {
if (!yaml[locale]) return str
const y = yaml[locale];
if (!y[str]) return str
return y[str]
}
------------------------
common.json
{
"en": {
"显示弱关联": "show weak-ties",
"币种": "Coin",
"人物": "Person",
"机构": "organization"
},
"ind": {
"显示弱关联": "show weak-ties",
"币种": "Coin",
"人物": "Person",
"机构": "organization"
}
}
使用:
<div>{{$t('人物')}}</div>
@kang558 你好,想請教一下你,是如何做到更改語言設置後,馬上更改locale的,我試了event通知,storage都無法做到立刻更改,需要刷新一下才會改變
@kang558 利用路由的refresh可以更改,但是感覺非常奇怪,有什麼更好的方法嗎?有空能否分享一下
@kang558 利用路由的refresh可以更改,但是感覺非常奇怪,有什麼更好的方法嗎?有空能否分享一下
目前只能利用路由的refresh,可以加入延迟动画(提升用户体验,不会让用户感觉一闪而过),比如loading,延迟结束再refresh
@kang558 現在發現一個新問題,refresh的確可以立刻更改當前的語言,但是其他頁面的卻沒有變化,特別是首頁
@pidogc 你要返回首页刷新而不是在语言选择页面刷新
@kang558 這樣子只能改一下流程了,希望eros可以考慮一下集成i8n,不然確實比較麻煩
@kang558 @pidogc 语言设置完后可以通过this.$router.setHomePage("你首页地址.js")更新。如果设置了默认的tabBar,要更新tabBar的语言的话需要修改eros的tabbarmodule.java的setinfo()添加如下代码
然后this.$router.setHomePage("tabBar"),亲测可用。