请参见 设置 部分以了解在哪里设置模块选项。
baseUrl
string
或 function
''
在 hreflang
标签中作为备用 URL 前缀使用的基础 URL。默认情况下,将使用 VueRouter 的基础 URL,仅在该 URL 不可用时,才会使用备用 URL。
也可以是一个函数(将以 Nuxt 上下文作为参数传递),返回一个字符串。适合根据请求头动态生成基础 URL。
locales
array
[]
支持的区域列表。可以是代码数组 (['en', 'fr', 'es']
) 或用于更复杂配置的对象数组:
;[
{ code: 'en', iso: 'en-US', file: 'en.js', dir: 'ltr' },
{ code: 'ar', iso: 'ar-EG', file: 'ar.js', dir: 'rtl' },
{ code: 'fr', iso: 'fr-FR', file: 'fr.js' }
]
使用对象形式时,属性可以是:
code
(required) - 区域的唯一标识符iso
(使用 SEO 功能时必需) - 用于 SEO 功能和匹配浏览器区域设置的语言范围,使用 detectBrowserLanguage
功能时。应使用 IETF 的 BCP47 定义的 语言标签语法,例如:
'en'
(英语的 language
子标签)'fr-CA'
(在加拿大使用的法语的 language+region
子标签)'zh-Hans'
(使用简体书写的中文的 language+script
子标签)file
- 文件名。在从文件加载区域消息时,将相对于 langDir
路径解析dir
(自 v6.19.0
起) - dir 属性指定元素和内容的方向,值可以是 'rtl'
、'ltr'
或 'auto'
。domain
(使用 differentDomains
时必需) - 您希望为该区域使用的域名(如有使用,包括端口)...
- 在对象上设置的任何自定义属性将在运行时暴露。这可以用于定义语言名称,以便在页面的语言选择器中使用。您可以通过 localeProperties
属性访问当前区域的所有属性。当使用代码数组时,仅包含 code
属性。
$nuxtI18nHead
方法。export default {
head() {
return this.$nuxtI18nHead()
}
}
defaultDirection
string
ltr
应用程序的默认方向。仅在未指定 dir
时使用。
defaultLocale
string
或 null
null
应用程序的默认区域。应与已定义 locales
中的一个代码匹配。
使用 prefix_except_default
策略时,此处指定的区域 URL 不会带有前缀。建议将其设置为某个区域,无论选择的策略如何,因为它将作为导航到不存在的路由时的备用区域使用。
sortRoutes
boolean
true
是否通过使用 @nuxt/utils
包中的 sortRoutes
函数来对路由进行排序。
尽管 Nuxt 自己会对路由进行排序,但它是在 @nuxtjs/i18n 添加其生成的路由之前进行的,因此模块必须重新排序。这是必要的,因为否则某些路由可能会由于被更通用的路由遮蔽而变得无法访问。如果您以编程方式添加自定义路由,排序可能会以意想不到的方式更改您的自定义路由的顺序,在这种情况下,您可能希望禁用排序并自行处理。在这种情况下,您必须自行确保正确的顺序,以便例如,一个更通用的路由 /en/*
不会遮蔽一个更具体的路由 /en/foo/*
(后者应首先注册以正常工作)。
strategy
string
'prefix_except_default'
路由生成策略。可以设置为以下之一:
'no_prefix'
:路由不会有区域前缀'prefix_except_default'
:为每个区域添加区域前缀,除了默认区域'prefix'
:为每个区域添加区域前缀'prefix_and_default'
:为每个区域和默认区域添加区域前缀lazy
boolean
或 LazyOptions
false
另请参见 懒加载翻译。
翻译是否应懒加载。如果启用,则必须配置 langDir
选项,并且 locales 必须是一个对象数组,每个对象包含一个 file
键。
懒加载区域消息意味着在页面加载时,仅将当前使用的区域(以及备用区域,如果与当前区域不同)的消息加载。
值也可以设置为一个对象,而不是 true
值,以覆盖与懒加载相关的配置选项。支持以下可选属性:
skipNuxtState
boolean
true
是否应将当前区域的翻译消息注入到 Nuxt 状态中并在客户端重新使用。阅读更多。
langDir
string
或 null
null
包含要加载的翻译文件的目录。可以与懒加载一起使用或单独使用(即 lazy
选项)。使用带有尾部斜杠的 Webpack 路径,如 ~/locales/
。
detectBrowserLanguage
object
{
alwaysRedirect: false,
fallbackLocale: '',
redirectOn: 'root',
useCookie: true,
cookieAge: 365,
cookieCrossOrigin: false,
cookieDomain: null,
cookieKey: 'i18n_redirected',
cookieSecure: false,
}
启用浏览器语言检测,以便在访问您的网站时首次自动将访客重定向到他们首选的区域。
另请参见 浏览器语言检测 获取指南。
redirectOn
设置为 root
。支持的属性:
alwaysRedirect
(默认: false
) - 设置为始终重定向到存储在 cookie 中的值,而不仅仅是在首次访问时。fallbackLocale
(默认: null
) - 如果没有区域与浏览器的区域匹配,则使用此区域作为后备。redirectOn
(默认: root
) - 支持的选项:
all
- 在所有路径上检测浏览器区域。root
(推荐以改善 SEO) - 仅在站点的根路径(/
)上检测浏览器区域。仅在使用除 'no_prefix'
外的策略时有效。no prefix
- root
的一种更宽容的变体,在根路径(/
)和没有区域前缀的路径(如 /foo
)上检测浏览器区域。仅在使用除 'no_prefix'
外的策略时有效。useCookie
(默认: true
) - 如果启用,则会使用浏览器的首选区域设置一个 cookie(如果未设置),以防止后续重定向。设置为 false
可以在每次重定向时重定向。cookieAge
(默认: 365
) - 设置 cookie 的最大生命周期(以天为单位)。cookieKey
(默认: 'i18n_redirected'
) - Cookie 名称。cookieDomain
(默认: null
) - 设置以覆盖 cookie 的默认域名。默认为站点的 host。cookieCrossOrigin
(默认: false
) - 当 true
时,在 cookie 上设置标志 SameSite=None; Secure
以允许跨域使用 cookie(当应用嵌入在 iframe 中时需要)。cookieSecure
(默认: false
) - 为 cookie 设置 Secure
标志。设置为 false 以禁用。
rootRedirect
string
或 object
或 null
null
设置重定向用户访问根 URL (/
) 的路径。接受字符串或带有 statusCode
和 path
属性的对象。例如:
{
statusCode: 301,
path: 'about-us'
}
differentDomains
boolean
false
当为每个区域使用不同的域名时,将此设置为 true
。如果启用,则不会在路由中添加前缀,您必须将 locales 配置为包含 domain
键的对象数组。有关更多信息,请参见 不同域名。
parsePages
boolean
true
是否使用 babel 解析器从页面文件中提取 自定义路径。
pages
object
{}
如果禁用 parsePages
选项,则模块将在 pages
选项中查找自定义路由。有关用法,请参见 路由。
vuex
object
或 false
{ moduleName: 'i18n', syncRouteParams: true }
注册用于同步应用程序 i18n 状态的存储模块。设置为 false
以禁用。
属性:
moduleName
(默认: 'i18n'
) - 模块的命名空间。syncRouteParams
(默认: true
) - 启用 setRouteParams
变更,以便使用动态路由的自定义路由名称。在 动态路由参数 中获取更多信息。vueI18n
object
或 string
{}
用于此模块内部的 vue-i18n
库的配置。有关完整文档,请访问 http://kazupon.github.io/vue-i18n/api/#constructor-options
export default context => {
return {
modifiers: {
snakeCase: str => str.split(' ').join('-')
}
}
}
vueI18nLoader
boolean
false
如果为真,则 vue-i18n-loader 将被添加到 Nuxt 的 Webpack 配置中,允许使用自定义 i18n
块为每个页面定义区域消息。
onBeforeLanguageSwitch
function
(oldLocale, newLocale, isInitialSetup, context) => {}
在更改应用程序区域之前调用的监听器。可以覆盖即将设置的区域。
请参见 回调
onLanguageSwitched
function
(oldLocale, newLocale) => {}
在应用程序区域更改后调用的监听器。
请参见 回调
skipSettingLocaleOnNavigate
boolean
false
如果为 true
,在导航到新区域时不会设置区域。如果您希望在页面过渡结束后再使用 finalizePendingLocaleChange
自行设置区域,这非常有用。有关更多信息,请参见 等待页面过渡。
defaultLocaleRouteNameSuffix
string
'default'
为默认区域生成的路由名称添加的内部后缀,如果策略是 prefix_and_default
。您不需要更改此内容。
routesNameSeparator
string
'___'
为每个区域生成的路由名称使用的内部分隔符。您不需要更改此内容。