使用i18n遇到点问题,切换语言或者页面初始化的时候多语言可以生效,但是当,$t里面传的是一个变量,在页面做完某个操作,导致 这个值变化以后,由于vue是双向绑定的,页面的显示会变化,但是翻译不会变,这就不太友好了。
项目里国际化的使用参见这里:页面 | Vue Antd Admin (gitee.io) (我们使用的是Antd)
静态的多语言是没问题的,如果想要动态,那么我们就需要单写一个方法做转换了,
原调用$t(变量名),修改为Convert(变量名),Convert方法如下:
Convert(val){ var i18n=require('./i18n'); return i18n.messages[当前多语言的key][val]; }
当前多语言的key在Antd项目中是个全局变量,自己去找一下命名即可。上面是伪代码。
这样每次变量的值修改以后,Convert都会对其进行转换,然后在页面呈现。Antd项目可以这么做,其他使用了vue i18n的也可以,毕竟原理都是相通的。