路由
baseUrl
- type:
string
或function
- default:
''
备用基本 URL,用作 hreflang
标签中备用 URL 的前缀。默认情况下,将使用 VueRouter 的基本 URL,只有在不可用时才会使用备用 URL。
也可以是一个函数(将传递 Nuxt 上下文作为参数),返回一个字符串。用于根据请求头动态生成基本 URL。
该属性还可以使用 runtimeConfig
设置。
locales
- type:
array
- default:
[]
您的应用程序支持的语言列表。可以是代码数组(['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
(必填) - 语言的唯一标识符language
(使用 SEO 功能时必填) - 用于 SEO 功能和在使用detectBrowserLanguage
功能时匹配浏览器语言的语言范围。应使用 IETF 的 BCP47 定义的 语言标签语法,例如:'en'
(英语的语言子标签)'fr-CA'
(在加拿大使用的法语的语言+地区子标签)'zh-Hans'
(使用简体字书写的中文的语言+书写系统子标签)
file
- 文件名。加载语言消息时将相对于langDir
路径解析。files
- 定义多个语言消息的文件名。加载语言消息时将相对于langDir
路径解析。dir
- dir 属性指定元素和内容的方向,值可以是'rtl'
、'ltr'
或'auto'
。domain
(使用differentDomains
时必填) - 您希望为该语言使用的域名(如果使用,则包括端口)。该属性也可以使用runtimeConfig
设置。domainDefault
(使用differentDomains
时必填,当一个或多个域具有多个语言时) - 将domainDefault
设置为true
以使每个应该作为特定域的默认语言的语言生效。domains
(使用multiDomainLocales
时必填,当一个或多个域具有相同语言时) - 一个domain
数组。defaultForDomains
(使用multiDomainLocales
时可选) - 一个domain
数组,对于这些域该语言应为默认语言。...
- 在对象上设置的任何自定义属性将在运行时公开。这可以用于定义语言名称,以便在页面的语言选择器中使用。
您可以通过 localeProperties
属性访问当前语言的所有属性。当使用代码数组时,将仅包含 code
属性。
defaultDirection
- type:
string
- default:
ltr
应用程序的默认方向。仅在未指定 dir
时使用。
defaultLocale
- type:
string
或null
- default:
null
应用程序的默认语言。应与定义的 locales
中的一个代码匹配。
使用 prefix_except_default
策略时,这里指定的语言的 URL 将没有前缀。建议将此设置为某种语言,无论选择的策略如何,因为它将在导航到不存在的路由时用作备用语言。
strategy
- type:
string
- default:
'prefix_except_default'
路由生成策略。可以设置为以下之一:
'no_prefix'
:路由将没有语言前缀'prefix_except_default'
:除了默认外,所有语言都添加语言前缀'prefix'
:所有语言都添加语言前缀'prefix_and_default'
:所有语言和默认语言都添加语言前缀
customRoutes
- type:
string
(page
或config
) |undefined
- default:
page
从页面文件提取 自定义路径 的选项
pages
- type:
object
- default:
{}
如果使用 config
禁用 customRoutes
选项,模块将在 pages
选项中查找自定义路由。有关用法,请参阅 路由。
skipSettingLocaleOnNavigate
- type:
boolean
- default:
false
如果为 true
,在导航到新语言时将不设置语言。如果您希望在页面过渡结束后再使用 finalizePendingLocaleChange
手动设置语言,这非常有用。有关更多信息,请参阅 等待页面过渡。
defaultLocaleRouteNameSuffix
- type:
string
- default:
'default'
为默认语言生成的路由名称添加的内部后缀,如果策略是 prefix_and_default
。您通常不需要更改此项。
routesNameSeparator
- type:
string
- default:
'___'
为每种语言生成的路由名称使用的内部分隔符。您通常不需要更改此项。
rootRedirect
- type:
string
或object
或null
- default:
null
设置为您希望重定向用户到的访问根 URL (/
) 的路径。接受字符串或具有 statusCode
和 path
属性的对象。例如:
{
"statusCode": 301,
"path": "about-us"
}
dynamicRouteParams
- type:
boolean
- default:
false
是否本地化动态路由参数。
如果为 true
,您可以为每种语言将动态路由参数设置为 definePageMeta
的 nuxtI18n
字段:
export default defineNuxtConfig({
modules: ['@nuxtjs/i18n'],
i18n: {
dynamicRouteParams: true
}
})
<script setup>
definePageMeta({
nuxtI18n: {
en: { id: 'my-post' },
fr: { id: 'mon-article' }
}
})
</script>
<template>
<!-- pages/post/[id].vue -->
</template>
有关更多信息,请参阅 动态路由参数