使用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的也可以,畢竟原理都是相通的。