1. 程式人生 > >vue與vue-i18n結合實現後臺資料的多語言切換

vue與vue-i18n結合實現後臺資料的多語言切換

 在XXX.js檔案中定義函式: 

getUser(context,info){

    context.$http.get(SERVER_URL+'/users',info).then(function(data){

      let err =data.body.error;
      if(err===0){
        let dataObj = data.body.userLists;   //獲取後臺返回的資料

        this.users = dataObj.items.map(function (e,i) {   //遍歷獲取的資料,用this.$t()將每項資料與翻譯資源對應

          e.gender=context.$t(e.gender);                       //context 是this,  gender 與 diabetes_type 為每個items裡的key;gender裡的value有三種:'GDRNF'、‘GDRF’、‘GDRM’
          e.diabetes_type = context.$t(e.diabetes_type);
          return e;
        });

       this.listLoading = false;

       // console.log(dataObj);
      }
   })
  },

  然後可以在vue 元件中呼叫函式  :XXX.getUser(this,info);  將後臺獲取的資料做相應操作後放入users陣列;

  以上方法是通過map函式遍歷獲取到的資料,用this.$t()將items的value與翻譯資源中的value對應,從而實現後臺資料的多語言切換;

 en.json翻譯資源中的部分資料:

 {
    "GDRNF":"Not Fill",
     "GDRF":"Female",
     "GDRM":"Male",
  }