javascript - 如何异步获取语言环境(nuxt.js + i18n + axios)

标签 javascript vue.js vuejs2 axios nuxt.js

我想异步获取位置。不幸的是,我的代码导致“超出最大调用堆栈大小”错误。我怎样才能正确地做到这一点?

到目前为止,我已尝试通过在消息对象内调用 axios 命令来实现此目的。

~/plugins/i18n.js

import Vue from "vue";
import VueI18n from "vue-i18n";
import axios from 'axios';

Vue.use(VueI18n);

export default async ({ app, store }) => {
    app.i18n = new VueI18n({
    locale: 'fr',
    fallbackLocale: 'en',
    messages: {
        en: await axios.get('https://some-api/en/locale'),
        fr: await axios.get('https://some-api/fr/locale')
    }
});

}

我想在页面呈现之前异步获取我的区域设置。

最佳答案

您可以在创建 Vue 实例时在 beforeCreate Hook 中执行此操作:

const i18n = new VueI18n();
new Vue({
  el: rootElement,
  i18n,
  beforeCreate() {
    const vm = this;
    axios.get(url)
      .then((response) => {
        vm.$i18n.setLocaleMessage('en', response.data);
    });
  }
});

关于javascript - 如何异步获取语言环境(nuxt.js + i18n + axios),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57947613/

相关文章:

Javascript RegEx 为用户返回不同的结果

javascript - Jest 测试 Vue-Multiselect

javascript - 防伪 token Axios Asp .Net Core

javascript - 如何在具有不同命名空间的情况下访问具有相似名称的 vue/vuex mapActions 方法?

javascript - 外部脚本加载后运行Vue组件的方法

javascript - VueJS : Getting Unique ID and Value of an array of input at the same time

javascript - Vuetify 组合框不返回 id 而不是值

javascript - Firestore云功能给出日志问题

Javascript 拖放 : ondragleave working solution?

javascript - 如何在 JavaScript 中编写 RGB 颜色值?