NUXT中使用 nuxtjs/i18n

本文详细介绍了如何在Nuxt.js项目中集成i18n功能,包括添加依赖、配置语言文件、插件实现及nuxt.config.js的修改,让你快速掌握国际化操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一步:向项目添加依赖项

yarn add @nuxtjs/i18n
//--或
npm install @nuxtjs/i18n

第二步:配置语言文件

1.新建 lang 文件夹(名字取自己喜欢的);
2.配置对应的语言文件

// en-US.js
export default {
 welcome: 'Welcome'
}
// zh-CN.js
export default {
 welcome: '欢迎'
}

第三步:plugins下新建i18n.js

import en from '../lang/en-US.js' //英语 - 美国
import fr from '../lang/fr-FR.js' //法语
import ja from '../lang/ja-JA.js' //日语
import es from '../lang/es-ES.js' //西班牙
import de from '../lang/de-DE.js' //德语
import zh from '../lang/zh-CN.js' //中文

export default {
    defaultLocale: 'en',
    // 根据项目情况,酌情配置
    locales: [
        {
            code: 'en',
            iso: 'en-US',
            name: 'English'
        },
        {
            code: 'fr',
            iso: 'fr-FR',
            name: 'Français'
        },
        {
            code: 'ja',
            iso: 'ja-JA',
            name: 'わぶん'
        },
        {
            code: 'es',
            iso: 'es-ES',
            name: 'Español'
        },
        {
            code: 'de',
            iso: 'de-DE',
            name: 'Deutsch'
        },
        {
            code: 'zh',
            iso: 'zh-CN',
            name: '中文'
        }
    ],
    vueI18n: {
        fallbackLocale: 'en',
        messages: { de, en, es, fr, ja, zh }
    }
}

第四步:修改 nuxt.config.js

  1. 在nuxt.config.js中 modules 模块下添加 ‘@nuxtjs/i18n’;
  2. 引入 import i18n from “./plugins/i18n”
 import i18n from "./plugins/i18n"
//第一种方式 - 
{
  modules: [
    [
      '@nuxtjs/i18n',
    ]
  ],
  i18n
}
//第二种方式
{
  modules: [
    [
      '@nuxtjs/i18n',
       i18n
    ]
  ],
}

使用/切换

{{ $t('welcome') }}
//------------
{{ $t('welcome.name1') }}
{{ $t('welcome.name2') }}
<nuxt-link :to="switchLocalePath('fr')">Français</nuxt-link>

最后

以上就是nuxtjs/i18n的简单使用,更复杂的使用和特性请参考官方文档

Over~

报错ℹ nuxt.config.js updated. Restarting Nuxt... nuxi 20:03:52 [ nuxi 20:03:52] ERROR Cannot restart nuxt: [@nuxtjs/i18n]: In project layer (/Users/zgw/Desktop/webpack/vue服务端渲染nuxt/routerPage/nuxt.config) - All locales must have the file or files property set when using langDir. Found none in: { "code": "en", "iso": "en-US", "name": "English" }. Found none in: { "code": "en", "iso": "en-US", "name": "English" }. at checkLayerOptions (/Users/zgw/Desktop/webpack/vue%E6%9C%8D%E5%8A%A1%E7%AB%AF%E6%B8%B2%E6%9F%93nuxt/routerPage/node_modules/@nuxtjs/i18n/dist/module.mjs:679:13) at prepareOptions (/Users/zgw/Desktop/webpack/vue%E6%9C%8D%E5%8A%A1%E7%AB%AF%E6%B8%B2%E6%9F%93nuxt/routerPage/node_modules/@nuxtjs/i18n/dist/module.mjs:1620:3) at setup (/Users/zgw/Desktop/webpack/vue%E6%9C%8D%E5%8A%A1%E7%AB%AF%E6%B8%B2%E6%9F%93nuxt/routerPage/node_modules/@nuxtjs/i18n/dist/module.mjs:2191:5) at async normalizedModule (/Users/zgw/Desktop/webpack/vue%E6%9C%8D%E5%8A%A1%E7%AB%AF%E6%B8%B2%E6%9F%93nuxt/routerPage/node_modules/@nuxt/kit/dist/index.mjs:2163:17) at async installModule (/Users/zgw/Desktop/webpack/vue%E6%9C%8D%E5%8A%A1%E7%AB%AF%E6%B8%B2%E6%9F%93nuxt/routerPage/node_modules/@nuxt/kit/dist/index.mjs:2488:276) at async initNuxt (/Users/zgw/Desktop/webpack/vue%E6%9C%8D%E5%8A%A1%E7%AB%AF%E6%B8%B2%E6%9F%93nuxt/routerPage/node_modules/nuxt/dist/shared/nuxt.B7-cu52A.mjs:5735:5) at async NuxtDevServer._load (/Users/zgw/Desktop/webpack/vue%E6%9C%8D%E5%8A%A1%E7%AB%AF%E6%B8%B2%E6%9F%93nuxt/routerPage/node_modules/@nuxt/cli/dist/chunks/dev2.mjs:165:5) at async NuxtDevServer.load (/Users/zgw/Desktop/webpack/vue%E6%9C%8D%E5%8A%A1%E7%AB%AF%E6%B8%B2%E6%9F%93nuxt/routerPage/node_modules/@nuxt/cli/dist/chunks/dev2.mjs:95:7) at async _applyPromised (/Users/zgw/Desktop/webpack/vue%E6%9C%8D%E5%8A%A1%E7%AB%AF%E6%B8%B2%E6%9F%93nuxt/routerPage/node_modules/perfect-debounce/dist/index.mjs:54:10)
03-12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值