使用nuxtjs自带的@nuxtjs/i18n
官网: https://i18n.nuxtjs.org/getting-started/basic-usage
nuxtjs版本:
"devDependencies": {
"@css-render/vue3-ssr": "^0.15.12",
"@nuxtjs/i18n": "^8.0.0",
"@vicons/ionicons5": "^0.12.0",
"naive-ui": "^2.37.3",
"nuxt": "^3.9.1",
"nuxt-windicss": "^2.6.1",
"vfonts": "^0.0.3",
"vue": "^3.4.10",
"vue-router": "^4.2.5"
}
1.在项目根目录下创建lang文件夹
添加zh-cn.js
export default {
common: {
pleaseSelect: '请选择',
pleaseEnter: '请输入',
sure: '确定',
cancel: '取消'
}
}
添加en.js
export default {
common: {
pleaseSelect: 'Please Select',
pleaseEnter: 'Please Enter',
sure: 'Sure',
cancel: 'Cancel'
}
}
2.根目录添加i18.config.ts文件
import en from "./lang/en";
import zh from "./lang/zh-cn";
export default defineI18nConfig(() => ({
legacy: false,
locale: 'zh',
messages: {
en,
zh
}
}))
3.修改nuxt.config.ts
export default defineNuxtConfig({
// ...
modules: ['nuxt-windicss', '@nuxtjs/i18n', '@pinia/nuxt'],
i18n: {
vueI18n: './i18n.config.ts',
locales: ['zh', 'en'], // used in URL path prefix
defaultLocale: 'zh', // default locale of your project for Nuxt pages and routings
detectBrowserLanguage: {
useCookie: true
}
}
// ...
})
4.vue页面使用
<div>{{ $t('common.sure') }}</div>