vue.js - Vue-i18n 'Cannot read property ' _t' of undefined at Proxy.Vue.$t'

标签 vue.js vuejs2 vue-i18n

将 vue-i18n 整合到我的应用程序中时遇到问题。二手this page作为灵感。

  <b-navbar-nav class="ml-auto" >
    <b-nav-item-dropdown :text="display_name" right>
      <b-dropdown-item disabled>{{ $t('username') }}: {{ username }}</b-dropdown-item>
      <b-dropdown-item disabled>Organisation: {{ organisation }}</b-dropdown-item>
    </b-nav-item-dropdown>
  </b-navbar-nav>

给出错误:无法读取 Proxy.Vue.$t 处未定义的属性“_t” 跟踪 Chrome devtools 中的错误将我带到 vue-i18n.esm.js 的第 149 行(返回语句):

Vue.prototype.$t = function (key) {
  var values = [], len = arguments.length - 1;
  while ( len-- > 0 ) values[ len ] = arguments[ len + 1 ];

  var i18n = this.$i18n;
  return i18n._t.apply(i18n, [ key, i18n.locale, i18n._getMessages(), this ].concat( values ))
};

我正在使用 vue-cli-3 webpack 配置并从 npm 安装 vue-i18n 并将其用作插件。

i18n.js(在 src/plugins 目录中):

import Vue from 'vue/dist/vue.js';
import VueI18n from 'vue-i18n';

Vue.use(VueI18n);

const messages = {
  'en': {
    username: 'Username',
    ...
  },
  'se': {
    username: 'Användarnamn',
    ...
  }
};

export let i18n = new VueI18n({
  locale: 'en', // set locale
  fallbackLocale: 'se', // set fallback locale
  messages, // set locale messages
});

主要.js:

import Vue from 'vue/dist/vue.js'
import VueRouter from 'vue-router'
import BootstrapVue from 'bootstrap-vue'
import VueSpinners from 'vue-spinners'

import i18n from './plugins/i18n'
...
new Vue({
  router,
  i18n,
  data() {
    return store;
  },
  render: h => h(App)
}).$mount('#app')

来自 package.json 的依赖:

"dependencies": {
  "axios": "^0.18.0",
  "bootstrap-vue": "^2.0.0-rc.11",
  "npm": "^6.5.0",
  "ol": "^5.3.0",
  "proj4": "^2.5.0",
  "qs": "^6.6.0",
  "vue": "^2.5.17",
  "vue-i18n": "^8.8.1",
  "vue-router": "^3.0.2",
  "vue-spinners": "^1.0.2"
},

我需要做什么?

最佳答案

啊,简单的尴尬,我改了

从 './plugins/i18n' 导入 i18n

从 './plugins/i18n' 导入 {i18n}

现在一切正常。

关于vue.js - Vue-i18n 'Cannot read property ' _t' of undefined at Proxy.Vue.$t',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54666293/

相关文章:

vue.js - nuxt 为动态页面 nuxt.js 生成抛出错误

vue.js - 在 vue-i18n 翻译中转义管道

javascript - Vue组件在html中不可见

node.js - 无法从 apollo-client 导入 createBatchingNetworkInterface

html - 属性内的插值已被删除。使用 v-bind 或冒号简写代替

vue.js - 如何防止/停止指令中默认事件(点击)的传播(vue 2.x)

javascript - VueJS : Automatically Redirect on Page Load

unit-testing - 如何在 JEST 测试中模拟全局 Vue.js 变量

vue.js - vue add i18n 在使用 vuejs3 和 @vue/cli 4.5.4 时遇到错误,该错误是什么意思以及如何调试?

javascript - 使用 vue-i18n 翻译 Vue 组件属性的默认值