Как использовать переводы из магазина или функции vuex для пользовательских путей с nuxt-i18n

Я работаю над интернализацией своего сайта, и модуль 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 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',
        },
      ],
    }],
  ],

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

Я хотел бы быть в состоянии сделать это.

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

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

0 ответов

Другие вопросы по тегам