Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vue.js nuxt-i18n的延迟加载区域设置_Vue.js_Internationalization_Nuxt.js_Nuxt I18n - Fatal编程技术网

Vue.js nuxt-i18n的延迟加载区域设置

Vue.js nuxt-i18n的延迟加载区域设置,vue.js,internationalization,nuxt.js,nuxt-i18n,Vue.js,Internationalization,Nuxt.js,Nuxt I18n,在nuxt-i18n中,必须使用应用程序支持的语言环境指定语言环境属性,如下所示: locales: [ { code: 'en', file: 'en-US.js' }, { code: 'es', file: 'es-ES.js' }, { code: 'fr', file: 'fr-FR.js' } ], 这是否可以从api端点获取,然后填充数组 我在本期中也看

在nuxt-i18n中,必须使用应用程序支持的语言环境指定语言环境属性,如下所示:

  locales: [
    {
      code: 'en',
      file: 'en-US.js'
    },
    {
      code: 'es',
      file: 'es-ES.js'
    },
    {
      code: 'fr',
      file: 'fr-FR.js'
    }
  ],
这是否可以从api端点获取,然后填充数组


我在本期中也看到过类似的情况,但我不知道如何运行该代码,甚至不知道它是否可行。

解决方案很简单。Nuxt允许您将异步函数导出为选项,以便我可以获取数据,然后将其分配给i18n对象

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/'
      },
      ...
  }
}