Options

路由

路由和策略选项。

baseUrl

  • type: stringfunction
  • default: ''

用于 hreflang 标签的备用基本 URL,作为其他 URL 的前缀。默认情况下,将使用 VueRouter 的基本 URL,只有在该基本 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 (required) - 语言的唯一标识符
  • language (在使用 SEO 功能时必需)- 用于 SEO 功能和在使用 detectBrowserLanguage 功能时匹配浏览器语言的语言范围。应该使用 IETF 的 BCP47 定义的 语言标签语法,例如:
    • 'en'(英语的 language 子标签)
    • 'fr-CA'(用于加拿大法语的 language+region 子标签)
    • 'zh-Hans'(用简体书写的中文的 language+script 子标签)
  • file - 文件的名称。当从文件加载语言消息时,将相对于 langDir 路径解析。
  • files - 定义多个语言消息的文件的名称。当从文件加载语言消息时,将相对于 langDir 路径解析。
  • dir - dir 属性指定元素和内容的方向,值可以是 'rtl''ltr''auto'
  • domain(在使用 differentDomains 时必需) - 您希望用于该语言的域名(包括端口,如果使用的话)。此属性也可以通过 runtimeConfig 设置。
  • domainDefault(在使用 differentDomains 时必需,同时一个或多个域有多个语言) - 对于应该作为特定域的默认语言的每个语言,将 domainDefault 设置为 true
  • domains(在使用 multiDomainLocales 时必需,同时一个或多个域具有相同的多种语言) - 一个 domain 的数组。
  • defaultForDomains(在使用 multiDomainLocales 时可选) - 一个 domain 的数组,对于该数组中的语言在使用 domains 时应该是默认语言。
  • ... - 对象上设置的任何自定义属性将在运行时公开。例如,可以用于定义语言名称,以便在页面上的语言选择器中使用。

您可以通过 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: stringpageconfig) | undefined
  • default: page

是否从页面文件中提取 自定义路径

pages

  • type: object
  • default: {}

如果 customRoutes 选项在 config 中被禁用,模块将在 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,您可以将动态路由参数设置为每种语言的 definePageMeta 中的 nuxtI18n 字段:

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>

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