eros icon indicating copy to clipboard operation
eros copied to clipboard

有没有好的多语言解决方案?

Open lgs821 opened this issue 5 years ago • 9 comments

Your questions.

vue-i18n 集成错误,也有可能是我的姿势不对?

lgs821 avatar Apr 01 '19 06:04 lgs821

我也有這個問題,請問解決了嗎?

pidogc avatar Apr 02 '19 00:04 pidogc

index.js中全局配置i18n image 手写

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>

akFace avatar Apr 04 '19 07:04 akFace

@kang558 你好,想請教一下你,是如何做到更改語言設置後,馬上更改locale的,我試了event通知,storage都無法做到立刻更改,需要刷新一下才會改變

pidogc avatar May 27 '19 09:05 pidogc

@kang558 利用路由的refresh可以更改,但是感覺非常奇怪,有什麼更好的方法嗎?有空能否分享一下

pidogc avatar May 27 '19 12:05 pidogc

@kang558 利用路由的refresh可以更改,但是感覺非常奇怪,有什麼更好的方法嗎?有空能否分享一下

目前只能利用路由的refresh,可以加入延迟动画(提升用户体验,不会让用户感觉一闪而过),比如loading,延迟结束再refresh

akFace avatar May 28 '19 07:05 akFace

@kang558 現在發現一個新問題,refresh的確可以立刻更改當前的語言,但是其他頁面的卻沒有變化,特別是首頁

pidogc avatar May 28 '19 08:05 pidogc

@pidogc 你要返回首页刷新而不是在语言选择页面刷新

akFace avatar May 28 '19 08:05 akFace

@kang558 這樣子只能改一下流程了,希望eros可以考慮一下集成i8n,不然確實比較麻煩

pidogc avatar May 28 '19 08:05 pidogc

@kang558 @pidogc 语言设置完后可以通过this.$router.setHomePage("你首页地址.js")更新。如果设置了默认的tabBar,要更新tabBar的语言的话需要修改eros的tabbarmodule.java的setinfo()添加如下代码 image 然后this.$router.setHomePage("tabBar"),亲测可用。 image

lgs821 avatar Jun 18 '19 03:06 lgs821