入门

Vue I18n 配置

配置 Vue I18n 的运行时选项

Vue I18n 配置

虽然某些选项在 Nuxt I18n 和 Vue I18n 之间是共享的,但还有一些选项是特定于 Vue I18n 的,例如:

  • fallbackWarn: 控制回退警告。
  • missingWarn: 控制缺失本地化警告。
  • formatter: 提供自定义消息格式化函数。
  • numberFormats: 配置自定义数字格式。
  • datetimeFormats: 配置自定义日期时间格式。
  • ... 更多!

这些只是 Vue I18n 中可用运行时选项的一些示例,请查看 Vue I18n 的文档 以探索可用选项的完整范围。

Vue I18n 特定选项不能在 nuxt.config 中配置,并且与 Nuxt I18n 使用或提供的功能没有重叠。

添加 Vue I18n 配置文件

要配置选项,可以在 <rootDir>/i18n 目录中创建一个 i18n.config.ts 文件,该文件应具有一个默认导出,返回 Vue I18n 选项的函数。

Nuxt I18n 提供了一个宏函数 defineI18nConfig 来改善类型,但一个普通的函数也足够:

i18n/i18n.config.ts
export default defineI18nConfig(() => {
  return {
    // vue-i18n 选项
  }
})

配置文件从 <rootDir>/i18n 解析,并自动查找并加载以默认文件名 i18n.config 的配置文件。可以使用 vueI18n 选项进行配置。

何时使用

当需要配置涉及不能序列化为构建时处理的运行时函数或数据的 Vue I18n 选项时,请使用 i18n.config.ts。通常在以下情况下需要这样做:

  • 需要根据用户输入或外部 API 动态加载或操控本地化数据。
  • 使用自定义格式化函数或其他不可序列化的选项。
  • 需要使用 Nuxt I18n 的构建时配置不支持的 Vue I18n 选项。

Nuxt 配置的好处

虽然可以配置相同的(或功能上相同的)选项在 nuxt.config.ts 中(例如 messages - 代替 locales, defaultLocale 等),但建议尽量将 Nuxt I18n 支持的配置保留在 nuxt.config 内的 i18n 关键字上。

Nuxt I18n 会在构建步骤中使用这些选项,并通过与其他库(如 @intlify/unplugin-vue-i18n)集成来配置和优化功能。

Vue I18n 配置文件将在每个请求的运行时加载,这可能会增加服务器响应时间,特别是在高流量应用程序中。这是因为服务器需要为每个传入请求解析和处理配置,并将其与 Nuxt I18n 设置的配置合并,而不是在构建时一次性完成。