选项

路由

路由和策略选项。

baseUrl

  • type: stringfunction
  • default: ''

备用基本 URL,用作 hreflang 标签中备用 URL 的前缀。默认情况下,将使用 VueRouter 的基本 URL,只有在不可用时才会使用备用 URL。

也可以是一个函数(将传递 Nuxt 上下文作为参数),返回一个字符串。用于根据请求头动态生成基本 URL。

该属性还可以使用 runtimeConfig 设置。

在使用 SEO 功能时,设置此选项特别重要,此时生成的 SEO 标签必须使用完全合格的 URL。

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: stringnull
  • 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 (pageconfig) | 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: stringobjectnull
  • default: null

设置为您希望重定向用户到的访问根 URL (/) 的路径。接受字符串或具有 statusCodepath 属性的对象。例如:

{
  "statusCode": 301,
  "path": "about-us"
}

dynamicRouteParams

  • type: boolean
  • default: false

是否本地化动态路由参数。

如果为 true,您可以为每种语言将动态路由参数设置为 definePageMetanuxtI18n 字段:

nuxt.config.ts
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>

有关更多信息,请参阅 动态路由参数