Как использовать переводы из vuex store или function для пользовательских путей с nuxt-i18n - PullRequest
0 голосов
/ 31 января 2019

Я работаю над интернализацией своего веб-сайта, и модуль nuxt-i18n мне до сих пор хорошо служил.Однако я не понял, как получить и загрузить переводы для пути с сервера.

В случае распространенных переводов я получаю все с сервера и инициализации и заполняю хранилище сообщениями.Затем я просто экспортирую переводы из магазина следующим образом.

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

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

Затем он загружается, как описано в документации 1009 *

Это моя конфигурация

  // 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 config.

Поэтому я спрашиваю, могу ли я как-то сделать что-то в этом роде?

  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',
        },
      ],
    }],
  ],

В конце я бы тоже удовлетворился подходом component .Однако, поскольку nuxtI18n является свойством, а не функцией, у меня нет доступа к Nuxt (this) и, следовательно, к магазину приложения.Если первый вариант неосуществим, есть ли способ передать в свойство nuxtI18n значение из хранилища?

Я бы хотел это сделать.

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

Любая помощь очень ценится.

...