vue.js Nuxt 3- Intlify i18 n-“必须在`setup`函数的顶部调用”

4xy9mtcn  于 2023-04-12  发布在  Vue.js
关注(0)|答案(1)|浏览(402)

当试图改变语言的点击功能,我得到的错误
“未捕获的语法错误:必须在setup函数的顶部调用(在message-compiler.mjs:54:19)"。
当同样的语言变化发生在函数之外时,一切都正常。
nuxt.config.js

modules: [
  '@pinia/nuxt',
  "@intlify/nuxt3"
],
intlify: {
  localeDir: 'locales', // this the path for languages json files
  legacy: false,
  vueI18n: {
    locale: 'en',
    globalInjection: true,
  }
}

languageSwitch.vue

<script setup>
import { useI18n } from 'vue-i18n';

const changeLanguage = (lang) => {
  useI18n().locale.value = lang
}
</script>
qojgxg4l

qojgxg4l1#

创建一个Nuxt3插件并添加以下内容:

export default defineNuxtPlugin((nuxtApp) => {

  const i18n = nuxtApp.$i18n;

  const modules  = {
    i18n: i18n
  };

  return {
    provide: {
      i18n: modules,
    },
  };
});

然后,您可以访问您的i18n示例,例如:

const { $api } = useNuxtApp();
$i18n.i18n.locale.value

相关问题