微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

来自 api 调用的 VueI18n 动态标签

如何解决来自 api 调用的 VueI18n 动态标签

我想从 api 中检索标签,它们有 2 种语言,并在用户单击更改语言时切换它们。现在认加载一种语言,但它不是响应式的。如何让它对用户更改语言做出反应?我正在考虑以某种方式在其他一切之前调用函数并将标签存储在 localStorage

代码:(lang.js 文件

import Vue from 'vue'
import VueI18n from 'vue-i18n'
import { HTTP } from './../config/http-request.js'

Vue.use(VueI18n)

const locale = 'da'
var langName;

const i18n = new VueI18n({
  locale,// language identifier
  messages: {}
})
 
function getLang(lang){
    console.log(lang) 
    if(lang == "da"){
        langName = "Danish"
    }else{
        langName = "English"
    }
    HTTP.get("1.0/language/label?language_name="+ langName + "&compact=True")
    .then((response) => {
        var msg = response.data.compact
        i18n.setLocaleMessage(lang,msg)
        i18n.locale = lang
        return lang
    })
    .catch(function(error) {
        console.log(error)
    })
}


 // This method is called when the manual switch languages,to be loaded when the page is initialized with a default language
// Vue.prototype.$loadLanguageAsync = loadLanguageAsync

getLang(locale)


export default i18n

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。