nuxt-i18n-micro
nuxt-i18n-micro

I18n Micro 是一个快速、简单、轻量级的国际化 (i18n) 模块。

npm versionnpm downloadsLicenseDonate

logo

Nuxt I18n Micro

Nuxt I18n Micro 是一个快速、简单、轻量级的 Nuxt 国际化 (i18n) 模块。尽管其体积小巧,但它在设计时考虑到了大型项目,与 nuxt-i18n 等传统 i18n 解决方案相比,提供了显著的性能改进。该模块从头开始构建,旨在实现高效率,专注于最大限度地缩短构建时间、减少服务器负载和缩小捆绑包大小。

为什么选择 Nuxt I18n Micro?

Nuxt I18n Micro 模块的创建是为了解决原始 nuxt-i18n 模块中存在的关键性能问题,特别是在高流量环境和包含大型翻译文件的项目中。nuxt-i18n 的主要问题包括:

  • 高内存消耗:在构建和运行时消耗大量内存,导致性能瓶颈。
  • 性能缓慢:尤其是在处理大型翻译文件时,会导致构建时间和服务器响应明显变慢。
  • 捆绑包过大:生成大型捆绑包,对应用程序性能产生负面影响。
  • 内存泄漏和错误:在高负载下存在内存泄漏和不可预测的行为。

性能比较

为了展示 Nuxt I18n Micro 的效率,我们在相同条件下进行了测试。两个模块都在相同的硬件上使用 10MB 的翻译文件进行了测试。

构建时间和资源消耗

  • i18n-micro:8.57 秒,最大内存:1080.31 MB,最大 CPU:209.50%
  • i18n v10:100.20 秒,最大内存:8827.23 MB,最大 CPU:321.40%
  • 时间差:-91.63 秒
  • 内存差:-7746.92 MB
  • CPU 使用率差异: -111.90%

i18n v10 与 i18n-micro 之间的比较

  • 最大内存使用差异:-107.61 MB
  • 最小内存使用差异:-1.33 MB
  • 平均内存使用差异:-14.33 MB
  • 最大 CPU 使用率差异: -14.70%
  • 最小 CPU 使用率差异: 0.00%
  • 平均 CPU 使用率差异: 3.76%
  • 压力测试时间差异:0.00 秒
  • 平均响应时间差异:1239.80 毫秒
  • 最小响应时间差异:112.00 毫秒
  • 最大响应时间差异:-53.00 毫秒
  • 每秒请求数差异: 3.00
  • 错误率差异: 0.00%

这些结果清楚地表明 Nuxt I18n Micro 在所有关键领域都显著优于原始模块。

主要特点

  • 🌐 小巧而强大:尽管体积小巧,Nuxt I18n Micro 专为大型项目设计,专注于性能和效率。
  • 优化的构建和运行时:减少构建时间、内存使用和服务器负载,使其成为高流量应用程序的理想选择。
  • 🛠 极简设计:该模块仅围绕 5 个组件(1 个模块和 4 个插件)构建,易于理解、扩展和维护。
  • 📏 高效路由:无论有多少语言环境,都只生成 2 个路由,这得益于基于动态正则表达式的路由,与其他为每个语言环境生成单独路由的 i18n 模块不同。
  • 🗂 精简的翻译加载:仅支持 JSON 文件,翻译分为用于常见文本(例如菜单)的全局文件和页面特定文件,后者如果在 dev 模式下不存在则会自动生成。

快速设置

在您的 Nuxt 应用程序中安装该模块:

npm install nuxt-i18n-micro

然后,将其添加到您的 nuxt.config.ts

export default defineNuxtConfig({
  modules: [
    'nuxt-i18n-micro',
  ],
  i18n: {
    locales: [
      { code: 'en', iso: 'en-US', dir: 'ltr' },
      { code: 'fr', iso: 'fr-FR', dir: 'ltr' },
      { code: 'ar', iso: 'ar-SA', dir: 'rtl' },
    ],
    defaultLocale: 'en',
    translationDir: 'locales',
    meta: true,
  },
})

就是这样!您现在就可以在 Nuxt 应用程序中使用 Nuxt I18n Micro 了。

文档

插件方法

性能

性能测试结果

组件

SEO

迁移

贡献