vue-i18n with vue-electron : TypeError: Cannot read property '_t' of undefined

vue-i18n with vue-electron : TypeError: Cannot read property '_t' of undefined

我使用 electron.js + vue.js 和插件 vue-electronelectron-window-manager 构建桌面应用程序。 现在我需要把 vue-i18n 和它的结构工作非默认方式...

例如。 mainwindow 类似于工具栏或主菜单。其他菜单 (windows) 由主菜单打开,使用这种技术组合 vue-i18n 无法正常工作。

这是一个回购: anderzilla/vue-electron!

我已经尝试过类似的解决方案 vue-i18n tutorial kazupon! 但错误信息是:

[Vue warn]: Error in render: "TypeError: Cannot read property '_t' of undefined"

found in

---> <MenuConfig> at src/renderer/components/MenuConfig.vue
       <Clarity> at src/renderer/App.vue
         <Root>

和我的i18n.js

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

Vue.use(VueI18n);

const messages = {
    'pt' : {
        alterarsenha: 'Alterar Senha',
        grupos: 'Grupos',
        pausas: 'Pausas',
        disponivel: 'Disponibilidade',
        sair: 'Sair',
    },
    'en' : {
        alterarsenha: 'Change Password',
        grupos: 'Groups',
        pausas: 'Pauses',
        disponivel: 'Disponibility',
        sair: 'Logout',
    },
    'es' : {}
};

const i18n = new VueI18n({    
    locale: 'pt', // set locale    
    fallbackLocale: 'en', // set fallback locale    
    messages, // set locale messages
});

在 main.js 代码中它就像 tuto 的 kazupon

在模板中(其他 window 由 electron-window-manager 创建)

<template>
  <main id="menu-config">
    <v-row>
      <div class="col-md-4" id="menu-config">
        <div class="menu-config">
          <ul @mouseleave="close">
            <li>
             <button @click="alterarSenha" class="titulo" >{{ $t('alterarsenha') }} - Alterar Senha</button>
            </li>

问题是“$t”...

我只需要这个用于 i18n 应用程序。

我修好了!问题在于声明组件的顺序。

new Vue({ 
components: { App }, 
i18n, 
router, 
store, 
template: "<App/>" 
}).$mount("#app"); 

i18n 必须在路由器之前!