选项
vueI18n
- 类型:
string - 默认值:
''
用于此模块内部的 Vue I18n 选项的构建时配置。完整文档请参见 此处
createI18n() 的配置可以通过配置文件传递。默认情况下,如果未指定任何内容,模块将扫描 i18n.config{.js,.mjs,.ts}。
export default defineNuxtConfig({
modules: ['@nuxtjs/i18n'],
i18n: {
vueI18n: './nuxt-i18n.js' // 自定义路径示例
}
})
你需要 export default 一个普通对象或函数。
导出普通对象示例:
export default {
legacy: false,
locale: 'en',
messages: {
en: {
welcome: 'Welcome'
},
fr: {
welcome: 'Bienvenue'
}
}
}
导出函数示例:
import en from '../locales/en.json'
import fr from '../locales/fr.yaml'
// 你可以使用 `defineI18nConfig` 来获取传递给 vue-i18n 的选项的类型推断。
export default defineI18nConfig(() => {
return {
legacy: false,
locale: 'en',
messages: {
en,
fr
}
}
})
messages 选项应该由普通对象返回。它将通过 vue-i18n 消息编译器在 nuxt i18n 模块中预编译为 vue-i18n 运行时中的可执行消息。baseUrl
- 类型:
string | Function - 默认值:
''
用于 hreflang 标签中备用 URL 前缀的回退基本 URL。默认情况下,将使用 VueRouter 的基本 URL,并且只有当它不可用时,才使用回退 URL。
也可以是一个函数(将 Nuxt 上下文作为参数传递)并返回一个字符串。这对于根据请求头使基本 URL 动态化很有用。
此属性也可以使用 runtimeConfig 设置。
locales
- 类型:
string[] | LocaleObject[] - 默认值:
[]
您的应用程序支持的语言环境列表。可以是语言代码数组 (['en', 'fr', 'es']) 或用于更复杂配置的语言环境对象数组:
[
{ "code": "en", "language": "en-US", "file": "en.js", "dir": "ltr" },
{ "code": "ar", "language": "ar-EG", "file": "ar.js", "dir": "rtl" },
{ "code": "fr", "language": "fr-FR", "file": "fr.js" }
]
当使用对象形式时,属性可以是:
code
- 类型:
string - 语言环境的唯一标识符
language
- 类型:
undefined | string - 使用 SEO 功能时必需
- 用于 SEO 功能和在使用
detectBrowserLanguage功能时匹配浏览器语言环境的语言范围。应使用 IETF 的 BCP47 定义的 语言标签语法,例如:'en'(英语的language子标签)'fr-CA'(加拿大法语的language+region子标签)'zh-Hans'(使用简体脚本书写的中文的language+script子标签)
file
- 类型:
null | string | { path: string; cache: string; } - 文件的名称。从文件加载语言环境消息时,将相对于
langDir路径解析。
files
- 类型:
null | string[] | { path: string; cache: string; }[] - 定义了多个语言环境消息的文件名称。从文件加载语言环境消息时,将相对于
langDir路径解析。
dir
- 类型:
null | 'rtl' | 'ltr' | 'auto' dir属性指定元素和内容的方向,值可以是'rtl'、'ltr'或'auto'。
domain
- 类型:
null | string - 您希望用于该语言环境的域名(包括端口,如果使用)。此属性也可以使用
runtimeConfig设置。使用differentDomains时,此属性是必需的。
domains
- 类型:
null | string[] - 一个
domain数组。当使用multiDomainLocales且一个或多个域具有多个相同的语言环境时,此属性是必需的。
defaultForDomains
- 类型:
null | string[] - (使用
multiDomainLocales时可选) - 使用
domains时,此语言环境应作为默认语言环境的domain数组。
domainDefault
- 类型:
null | boolean - 对于每个应作为特定域的默认语言环境的语言环境,将
domainDefault设置为true。当使用differentDomains且一个或多个域具有多个语言环境时,此属性是必需的。
...
- 在对象上设置的任何自定义属性都将在运行时公开。例如,这可以用于定义语言名称,以便在页面上的语言选择器中使用。
您可以通过 localeProperties 属性访问当前语言环境的所有属性。当使用代码数组时,它将只包含 code 属性。
defaultDirection
- 类型:
string - 默认值:
ltr
应用程序的默认方向。仅当未指定 dir 时使用。
defaultLocale
- 类型:
string | null - 默认值:
null
应用程序的默认语言环境。应与定义的 locales 中的一个语言代码匹配。
当使用 prefix_except_default 策略时,此处指定的语言环境的 URL 将没有前缀。建议将其设置为某个语言环境,无论选择何种策略,因为它将在导航到不存在的路由时用作回退语言环境。
strategy
- 类型:
'no_prefix' | 'prefix_except_default' | 'prefix' | 'prefix_and_default' - 默认值:
'prefix_except_default'
路由生成策略。可以设置为以下之一:
'no_prefix':路由将没有语言环境前缀'prefix_except_default':除默认语言环境外,每个语言环境都添加语言环境前缀'prefix':每个语言环境都添加语言环境前缀'prefix_and_default':每个语言环境都添加语言环境前缀和默认语言环境
customRoutes
- 类型:
'meta' | 'page' | 'config' - 默认值:
'page'
自定义路径 是从页面文件提取还是在模块配置中配置:
'meta':自定义路径从页面组件中的definePageMeta()函数中提取。'page':自定义路径从页面组件中的defineI18nRoute()宏中提取。'config':自定义路径在模块配置的pages选项中配置。
pages
- 类型:
object - 默认值:
{}
如果 customRoutes 选项禁用 config,模块将在 pages 选项中查找自定义路由。有关用法,请参阅 路由。
skipSettingLocaleOnNavigate
- 类型:
boolean - 默认值:
false
如果为 true,则在导航到新的语言环境时不会设置语言环境。如果您希望在页面过渡结束前使用 finalizePendingLocaleChange 自行设置语言环境,这会很有用。有关更多信息,请参阅 等待页面过渡。
defaultLocaleRouteNameSuffix
- 类型:
string - 默认值:
'default'
如果策略为 prefix_and_default,则添加到默认语言环境的生成路由名称的内部后缀。您不需要更改此项。
routesNameSeparator
- 类型:
string - 默认值:
'___'
用于每个语言环境的生成路由名称的内部分隔符。您不需要更改此项。
rootRedirect
- 类型:
string | { statusCode: number; path: string; } | null - 默认值:
null
设置为您希望将访问根 URL ('/') 的用户重定向到的路径。接受字符串或具有 statusCode 和 path 属性的对象。例如:
{
"statusCode": 301,
"path": "about-us"
}
redirectStatusCode
- 类型:
number - 默认值:
302
指定将任何 URL(除根 URL ('/') 外)重定向到本地化路由时使用的 HTTP 状态码。
langDir
- 类型:
string - 默认值:
locales
包含要加载的翻译文件的目录的相对路径。
该路径是相对于项目根目录下的 restructureDir ('i18n' 默认) 解析的。
'/locales' 应更改为 'locales' 或 './locales')detectBrowserLanguage
- 类型:
object | boolean
启用浏览器语言检测,以便访问者首次访问您的网站时自动将其重定向到其首选语言环境。
另请参阅 浏览器语言检测 获取指南。
redirectOn 设置为 'root'。设置为 false 禁用。
支持的属性:
alwaysRedirect
- 类型:
boolean - 默认值:
false
设置为始终重定向到 cookie 中存储的值,而不仅仅是首次访问时。
fallbackLocale
- 类型:
string | null
如果所有语言环境都不匹配浏览器的语言环境,则使用此语言环境作为回退。
redirectOn
- 类型:
string - 默认值:
'root'
支持的选项:
'all'- 在所有路径上检测浏览器语言环境。'root'(推荐用于改进 SEO) - 仅在网站的根路径 ('/') 上检测浏览器语言环境。仅在使用'no_prefix'以外的策略时有效。'no prefix'-'root'的更宽松变体,它将在根路径 ('/') 上检测浏览器语言环境,以及没有语言环境前缀的路径(如'/foo')。仅在使用'no_prefix'以外的策略时有效。
useCookie
- 类型:
boolean - 默认值:
true
如果启用,一旦用户被重定向到浏览器首选语言环境,就会设置一个 cookie,以防止后续重定向。设置为 false 可每次重定向。
cookieKey
- 类型:
string - 默认值:
'i18n_redirected'
Cookie 名称。
cookieDomain
- 类型:
string | null - 默认值:
null
设置以覆盖 cookie 的默认域。默认为站点的 主机。
cookieCrossOrigin
- 类型:
boolean - 默认值:
false
当为 true 时,在 cookie 上设置 SameSite=None; Secure 标志,以允许跨域使用 cookie(当应用程序嵌入在 iframe 中时需要)。
cookieSecure
- 类型:
boolean - 默认值:
false
为 cookie 设置 Secure 标志。
differentDomains
- 类型:
boolean - 默认值:
false
当为每个语言环境使用不同的域名时,请将其设置为 true,启用此功能后,您必须将语言环境配置为对象数组,每个对象都包含一个 domain 键。有关更多信息,请参阅 不同域名。
multiDomainLocales
- 类型:
boolean - 默认值:
false
当使用带有不同语言环境的不同域名时,请将其设置为 true。如果启用,您必须将语言环境配置为对象数组,每个对象都包含一个 domains 和 defaultForDomains 键。有关更多信息,请参阅 多域名语言环境。
compilation
- 类型:
object - 默认值:
{ strictMessage: true, escapeHtml: false }
配置设置语言环境消息行为编译的标志。
支持的属性:
strictMessage
- 类型:
boolean - 默认值:
true
严格检查语言环境消息是否不包含 HTML 标签。如果包含 HTML 标签,则抛出错误。
escapeHtml 选项设置为 true。escapeHtml
- 类型:
boolean - 默认值:
false
确定如果语言环境消息中包含 HTML 标签是否转义它们。
false 禁用 strictMessage,我们建议启用此选项。bundle
- 类型:
object - 默认值:
{ compositionOnly: true, runtimeOnly: false, fullInstall: true, dropMessageCompiler: false }
配置 nuxt i18n 模块的打包优化。
支持的属性:
compositionOnly
- 类型:
boolean - 默认值:
true
是否使 vue-i18n API 仅支持组合式 API。默认情况下,旧版 API 会被 tree-shaken。有关更多详细信息,请参阅 此处
compositionOnly: false。请注意,设置此值将禁用 Vue I18n 组合式 API。请注意,旧版 API 也可以通过在 i18n.config 中将 Vue I18n 选项设置为 allowComposition: true 来混合使用,但这受到限制。有关详细信息,请参阅 此处。runtimeOnly
- 类型:
boolean - 默认值:
false
是否在构建中自动使用 Vue I18n 仅运行时。
fullInstall
- 类型:
boolean - 默认值:
true
是否安装完整的 API、组件等。默认情况下,所有这些都将安装。如果指定 false,则内置组件(<i18n-t>、<i18n-d> 和 <i18n-n>)和指令 (v-t) 将不会安装在 vue 中,并且将被 tree-shaken。有关更多详细信息,请参阅 此处
dropMessageCompiler
- 类型:
boolean - 默认值:
false
打包时是否对消息编译器进行 tree-shake。
onlyLocales
- 类型:
string | string[] - 默认值:
undefined
指定需要包含的语言环境代码,其余的将被删除。
如果您有多个使用不同语言的相似项目(例如 Nuxt Layers),这会很有用。
experimental
实验性配置属性是一个包含以下属性的对象:
localeDetector
- 类型:
string - 默认值:
'' - 指定在服务器端按请求调用的语言环境检测器。您需要指定定义语言环境检测器的文件路径。
defineI18nLocaleDetector() APIstrictSeo
- 类型:
boolean | SeoAttributesOptions - 默认值:
false - 启用严格 SEO 模式。
typedPages
- 类型:
boolean - 默认值:
true - 生成用于可组合项和配置的路由类型,当 Nuxt 的
experimental.typedRoutes启用时,此功能默认启用。
experimental.typedRoutes,如果未启用此功能,则无法工作。typedOptionsAndMessages
- 类型:
false | 'default' | 'all'false- 禁用类型生成'default'- 根据配置的defaultLocale生成类型'all'- 根据所有配置的语言环境生成类型
- 默认值:
false - 生成用于翻译函数和
vue-i18n配置的vue-i18n和消息类型。可以配置为使用defaultLocale(更好的性能)或所有语言环境进行类型生成。
alternateLinkCanonicalQueries
- 类型:
boolean - 默认值:
true - 从备用链接 meta 标签中删除非规范查询参数
hmr
- 类型:
boolean - 默认值:
true - 开发模式下语言环境消息文件和 vue-i18n 配置的热模块替换。
customBlocks
配置 SFC 的 i18n 自定义块。
支持的属性:
defaultSFCLang
- 类型:
'json' | 'json5' | 'yaml' | 'yml' - 默认值:
'json' - 为 SFC 上所有内联的 i18n 自定义块指定内容。有关更多详细信息,请参阅 unplugin-vue-i18n 文档
对于指定了 lang 属性的内联 i18n 自定义块,不应用 defaultSFCLang。
例如,使用 defaultSFCLang: "yaml" 或 defaultSFCLang: "yml",此自定义块:
<i18n lang="yaml">
en:
hello: Hello
es:
hello: Hola
</i18n>
将等同于此:
<i18n>
en:
hello: Hello
es:
hello: Hola
</i18n>
globalSFCScope
- 类型:
boolean - 默认值:
false - 是否将 SFC 上所有
i18n自定义块包含在全局作用域中。有关更多详细信息,请参阅 unplugin-vue-i18n 文档
globalSFCScope: true,所有 SFC 中的所有 i18n 自定义块都将在 global 作用域中。例如,使用 globalSFCScope: true,此自定义块:
<i18n lang="yaml" global>
en:
hello: Hello
es:
hello: Hola
</i18n>
将等同于此:
<i18n lang="yaml">
en:
hello: Hello
es:
hello: Hola
</i18n>
这与 defaultSFCLang 结合使用,使用 defaultSFCLang: "yaml",以下将等同于之前的示例:
<i18n>
en:
hello: Hello
es:
hello: Hola
</i18n>
types
- 类型:
'composition' | 'legacy' - 默认值:
'composition'
强制执行要使用的 API 风格的类型定义。
- 设置为
'composition',支持 Vue I18n 和@nuxtjs/i18n提供的组合式 API 类型, - 设置为
'legacy',支持选项式 API 类型。
nuxi prepare 以更新生成的类型。debug
- 类型:
boolean | 'verbose' - 默认值:
false
是否使用 @nuxtjs/i18n 调试模式。如果为 true 或 'verbose',日志将输出到控制台,将其设置为 'verbose' 还会记录加载的消息对象。
@nuxtjs/i18n 的任何问题。您不应在生产环境中启用此选项,因为它会对性能产生负面影响。parallelPlugin
- 类型:
boolean - 默认值:
false
将插件设置为 parallel。请参阅 nuxt 插件加载策略。
restructureDir
- 类型:
string - 默认值:
'i18n'
用于配置用于解析 i18n 文件的目录。
autoDeclare
- 类型:
boolean - 默认值:
true - 在
<script setup>中使用时,自动导入/初始化$t()、$rt()、$d()、$n()、$tm()和$te()函数。