vue.js - vue-i18n 与 vue- Electron : TypeError: Cannot read property '_t' of undefined

标签 vue.js electron vue-i18n

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

例如。 mainwindow就像工具栏或主菜单。其他菜单(窗口)由主菜单打开,通过这种技术组合,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

在模板中(由 electro-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 必须在路由器之前!

关于vue.js - vue-i18n 与 vue- Electron : TypeError: Cannot read property '_t' of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57911651/

相关文章:

typescript - 为 vue 包创建 typescript 定义文件 (vue-datetime)

javascript - 从观察者回调调用时的 Vue 组件 Prop `undefined`

vue.js - 如何在 vue 中通过 vue-i18n 使用每种语言的多个文件?

vue.js - vue-i18n:错误的日期格式,例如挪威

javascript - 使用 vue-i18n 插件时出现错误 - "Cannot find module ./en.json"

vue.js - Nativescript Vue 开发人员工具不起作用

unit-testing - 如何使用 jest 在 nuxt.js 中测试 head()

javascript - Electron 和 macOS : how to customize the 'About <app>' display panel that pops up when user clicks the 'About <app>' menuItem?

javascript - Electron 产卵先天性异常

javascript - 无法单击 Nightmare.js 中的按钮,但可以在控制台中使用