Ленивые загрузочные локали для nuxt-i18n - PullRequest
0 голосов
/ 17 февраля 2020

В nuxt-i18n вы должны указать свойство locales для локалей, которые ваше приложение будет поддерживать следующим образом:

  locales: [
    {
      code: 'en',
      file: 'en-US.js'
    },
    {
      code: 'es',
      file: 'es-ES.js'
    },
    {
      code: 'fr',
      file: 'fr-FR.js'
    }
  ],

Может ли это быть получено из конечной точки API, а затем заполнить массив?

Я видел нечто подобное в этом выпуске https://github.com/nuxt-community/nuxt-i18n/issues/256#issuecomment -505344965 , но я понятия не имею, как запустить этот код, или даже это возможно.

1 Ответ

0 голосов
/ 17 февраля 2020

Решение было простым. Nuxt позволяет экспортировать функцию asyn c в качестве параметров, чтобы я мог получить данные и затем назначить их объекту i18n.

https://nuxtjs.org/guide/configuration/#asynchronous -конфигурация

export default async () => {
  const data = await getCountries()

  const locales = []

  for (const locale of data) {
    locales.push({
      code: locale,
      file: `${locale}.json`
    })
  }

  return {
      build: {
          ...
      },
      env: {
          ...
      },
      modules: [
          'nuxt-i18n',
          ...
      ],
      i18n: {
          locales,
          strategy: 'prefix',
          detectBrowserLanguage: false,
          lazy: true,
          defaultLocale: 'es',
          langDir: 'translations/'
      },
      ...
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...