选项
请查看设置部分以了解在哪里设置模块选项。
baseUrl
- 类型:
string
或function
- 默认:
''
用于 hreflang
标签中替代 URL 的后备基本 URL。默认情况下,将使用 VueRouter 的基本 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
(必填) - 区域的唯一标识符iso
(在使用 SEO 功能时必填) - 用于 SEO 功能的语言范围,用于匹配使用detectBrowserLanguage
功能时的浏览器区域。应使用 IETF 的 BCP47 定义的语言标签语法,例如:'en'
(英语的language
子标签)'fr-CA'
(加拿大法语的language+region
子标签)'zh-Hans'
(简体中文的language+script
子标签)
file
- 文件名。加载区域消息时,将相对于langDir
路径解析dir
(从v6.19.0
开始)该属性指定元素和内容的方向,可为'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
选项,并且区域必须是包含 file
键的对象数组。
懒加载区域消息意味着仅加载当前使用的区域(以及后备区域,如果不同于当前区域)的消息。
LazyOptions
该值也可以设置为对象,而不是值 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 的默认域。默认为网站的主机。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
。如果启用,则不会向您的路由添加前缀,您必须将区域配置为包含 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
如果为 true,则 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
- 默认:
'___'
为每个区域生成的路由名称使用的内部分隔符。您不应更改此内容。