Vue i18n 熱加載

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章