3

我正在对我的网站进行内部化,到目前为止, nuxt-i18n模块对我的服务很好。但是,我还没有弄清楚如何从服务器获取和加载路径的翻译。

在常见翻译的情况下,我从服务器和初始化中获取所有内容,并使用消息填充存储。然后我简单地从商店中导出翻译,如下所示。

// en-US.js
import store from '../store';

export default store().state.dictionary.labels.en;

然后将其延迟加载,如文档中所述

这是我的配置

  // nuxt.config.js
  modules: [
    ['nuxt-i18n', {
      locales: [
        {
          name: 'Czech',
          code: 'cs',
          iso: 'cs-CS',
          file: 'cs-CS.js',
        },
        {
          name: 'English',
          code: 'en',
          iso: 'en-US',
          file: 'en-US.js',
        },
      ],
      strategy: 'prefix_except_default',
      langDir: 'lang/',
      lazy: true,
      defaultLocale: 'cs',
    }],
  ],

但是,在自定义路径翻译的情况下,这似乎没有实现。理想情况下,我想使用第一个提到的方法,它在 nuxt 配置中定义路径转换。

所以我问,我能以某种方式做一些类似的事情吗?

  modules: [
    ['nuxt-i18n', {
      ...
      pages: [
        {
          name: 'Czech',
          code: 'cs',
          iso: 'cs-CS',
          file: 'pages-cs.js',
        },
        {
          name: 'English',
          code: 'en',
          iso: 'en-US',
          file: 'pages-en.js',
        },
      ],
    }],
  ],

最后,我也会对组件方法感到满意。但是,因为nuxtI18n是属性而不是函数,所以我无权访问 Nuxt ( this),因此也无权访问应用商店。如果第一个选项不可行,有没有办法如何将nuxtI18n商店中的值传递给属性?

我希望能够做到这一点。

  // contact.vue
  nuxtI18n: {
    paths: {
      cs: this.$store.state.pages.contact.cs
      en: this.$store.state.pages.contact.en
    },
  },

非常感谢任何帮助。

4

0 回答 0