nuxt-i18n-micro 2.20.1 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/README.md +24 -21
  2. package/dist/client/200.html +1 -11
  3. package/dist/client/404.html +1 -11
  4. package/dist/client/_nuxt/{CHvgnIbY.js → BGh93ua4.js} +10 -10
  5. package/dist/client/_nuxt/BHdvmNAL.js +1 -0
  6. package/dist/client/_nuxt/DCzpQabR.js +1 -0
  7. package/dist/client/_nuxt/DDGd_lid.js +1 -0
  8. package/dist/client/_nuxt/builds/latest.json +1 -1
  9. package/dist/client/_nuxt/builds/meta/7cd4f087-6927-4e90-9f5d-48186ff338af.json +1 -0
  10. package/dist/client/_nuxt/entry.Kj_DYE7z.css +1 -0
  11. package/dist/client/_nuxt/error-404.Gqn9dG-k.css +1 -0
  12. package/dist/client/_nuxt/error-500.B7WZZ6sx.css +1 -0
  13. package/dist/client/index.html +1 -11
  14. package/dist/module.d.mts +1 -15
  15. package/dist/module.json +1 -1
  16. package/dist/module.mjs +309 -828
  17. package/dist/runtime/components/i18n-link.vue +4 -7
  18. package/dist/runtime/components/i18n-t.vue.d.ts +1 -1
  19. package/dist/runtime/composables/useI18n.js +6 -1
  20. package/dist/runtime/composables/useI18nLocale.d.ts +29 -0
  21. package/dist/runtime/composables/useI18nLocale.js +64 -0
  22. package/dist/runtime/composables/useLocaleHead.js +7 -4
  23. package/dist/runtime/plugins/01.plugin.d.ts +74 -41
  24. package/dist/runtime/plugins/01.plugin.js +267 -156
  25. package/dist/runtime/plugins/02.meta.js +5 -9
  26. package/dist/runtime/plugins/05.hooks.js +3 -3
  27. package/dist/runtime/plugins/06.client-redirect.client.js +50 -0
  28. package/dist/runtime/server/{routes/get.d.ts → middleware/i18n.global.d.ts} +1 -1
  29. package/dist/runtime/server/middleware/i18n.global.js +198 -0
  30. package/dist/runtime/server/plugins/watcher.dev.d.ts +1 -1
  31. package/dist/runtime/server/plugins/watcher.dev.js +42 -15
  32. package/dist/runtime/server/routes/i18n.d.ts +6 -0
  33. package/dist/runtime/server/routes/i18n.js +17 -0
  34. package/dist/runtime/{utils → server/utils}/locale-detector.d.ts +1 -1
  35. package/dist/runtime/{utils → server/utils}/locale-detector.js +6 -5
  36. package/dist/runtime/{locale-server-middleware.js → server/utils/locale-server-middleware.js} +4 -6
  37. package/dist/runtime/server/utils/server-loader.d.ts +13 -0
  38. package/dist/runtime/server/utils/server-loader.js +72 -0
  39. package/dist/runtime/server/utils/translation-server-middleware.js +36 -0
  40. package/dist/runtime/utils/cookie.d.ts +24 -0
  41. package/dist/runtime/utils/cookie.js +22 -0
  42. package/dist/runtime/utils/route-utils.d.ts +4 -2
  43. package/dist/runtime/utils/route-utils.js +14 -5
  44. package/dist/runtime/utils/storage.d.ts +39 -0
  45. package/dist/runtime/utils/storage.js +67 -0
  46. package/internals.d.mts +96 -0
  47. package/package.json +28 -8
  48. package/dist/client/_nuxt/B8NwAMTo.js +0 -1
  49. package/dist/client/_nuxt/Cj7OMqrf.js +0 -1
  50. package/dist/client/_nuxt/builds/meta/f35d3c6f-eaf5-439f-b994-53c856a7f605.json +0 -1
  51. package/dist/client/_nuxt/entry.v6jsTdX3.css +0 -1
  52. package/dist/client/_nuxt/error-404.FEiwkL-z.css +0 -1
  53. package/dist/client/_nuxt/error-500.MfoKbn8r.css +0 -1
  54. package/dist/client/_nuxt/zX7mpbIS.js +0 -1
  55. package/dist/runtime/components/locale-redirect.vue +0 -123
  56. package/dist/runtime/components/locale-redirect.vue.d.ts +0 -2
  57. package/dist/runtime/plugins/04.auto-detect.js +0 -87
  58. package/dist/runtime/plugins/06.redirect.d.ts +0 -2
  59. package/dist/runtime/plugins/06.redirect.js +0 -93
  60. package/dist/runtime/server/routes/get.js +0 -99
  61. package/dist/runtime/translation-server-middleware.js +0 -52
  62. package/dist/runtime/utils/path-utils.d.ts +0 -7
  63. package/dist/runtime/utils/path-utils.js +0 -40
  64. /package/dist/runtime/plugins/{04.auto-detect.d.ts → 06.client-redirect.client.d.ts} +0 -0
  65. /package/dist/runtime/{locale-server-middleware.d.ts → server/utils/locale-server-middleware.d.ts} +0 -0
  66. /package/dist/runtime/{translation-server-middleware.d.ts → server/utils/translation-server-middleware.d.ts} +0 -0
package/README.md CHANGED
@@ -22,33 +22,36 @@ The `Nuxt I18n Micro` module was created to address critical performance issues
22
22
 
23
23
  ### Performance Comparison
24
24
 
25
- To showcase the efficiency of `Nuxt I18n Micro`, we conducted tests under identical conditions. Both modules were tested with a 10MB translation file on the same hardware.
25
+ To showcase the efficiency of `Nuxt I18n Micro`, we conducted tests under identical conditions. Both modules were tested with a 10MB translation file on the same hardware. We also include a **plain-nuxt** baseline (no i18n module) to measure the real overhead.
26
26
 
27
27
  #### Build Time and Resource Consumption
28
28
 
29
- - **i18n-micro**: 8.57 seconds, Max Memory: 1080.31 MB, Max CPU: 209.50%
30
- - **i18n v10**: 100.20 seconds, Max Memory: 8827.23 MB, Max CPU: 321.40%
31
- - **Time Difference**: -91.63 seconds
32
- - **Memory Difference**: -7746.92 MB
33
- - **CPU Usage Difference**: -111.90%
29
+ > **Note:** The `plain-nuxt` baseline is a minimal implementation created solely for benchmarking purposes. It loads data directly from JSON files without any i18n logic. Real-world applications will have more complexity and higher resource usage.
34
30
 
31
+ | Project | Build Time | Max Memory | Max CPU |
32
+ |---------|------------|------------|---------|
33
+ | **plain-nuxt** (baseline) | 4.48s | 609.55 MB | 242.60% |
34
+ | **i18n-micro** | 7.88s | 1164.02 MB | 336.00% |
35
+ | **i18n v10** | 77.81s | 9494.69 MB | 449.00% |
35
36
 
36
- #### Comparison between i18n v10 and i18n-micro
37
+ - **i18n-micro vs baseline**: +3.40s build, +554.47 MB memory
38
+ - **i18n v10 vs baseline**: +73.33s build, +8885.14 MB memory
37
39
 
38
- - **Max Memory Used Difference**: -107.61 MB
39
- - **Min Memory Used Difference**: -1.33 MB
40
- - **Avg Memory Used Difference**: -14.33 MB
41
- - **Max CPU Usage Difference**: -14.70%
42
- - **Min CPU Usage Difference**: 0.00%
43
- - **Avg CPU Usage Difference**: 3.76%
44
- - **Stress Test Time Difference**: 0.00 seconds
45
- - **Average Response Time Difference**: 1239.80 ms
46
- - **Min Response Time Difference**: 112.00 ms
47
- - **Max Response Time Difference**: -53.00 ms
48
- - **Requests Per Second Difference**: 3.00
49
- - **Error Rate Difference**: 0.00%
40
+ #### Stress Test Results (Requests per Second)
50
41
 
51
- These results clearly demonstrate that `Nuxt I18n Micro` significantly outperforms the original module in every critical area.
42
+ | Project | Avg Response | RPS | Max Memory |
43
+ |---------|--------------|-----|------------|
44
+ | **plain-nuxt** | 106.50 ms | 318.00 | 229.02 MB |
45
+ | **i18n-micro** | 516.70 ms | 225.00 | 366.69 MB |
46
+ | **i18n v10** | 1130.20 ms | 51.00 | 1050.38 MB |
47
+
48
+ #### Comparison: i18n v10 vs i18n-micro
49
+
50
+ - **Max Memory Used**: -683.69 MB (i18n-micro uses less)
51
+ - **Average Response Time**: -613.50 ms (i18n-micro is faster)
52
+ - **Requests Per Second**: +174.00 (i18n-micro handles more)
53
+
54
+ These results clearly demonstrate that `Nuxt I18n Micro` significantly outperforms the original module in every critical area while staying close to the plain Nuxt baseline.
52
55
 
53
56
  ## Key Features
54
57
 
@@ -93,7 +96,7 @@ That's it! You're now ready to use Nuxt I18n Micro in your Nuxt app.
93
96
 
94
97
  [Plugin Methods](https://s00d.github.io/nuxt-i18n-micro/api/methods)
95
98
 
96
- [Performanc](https://s00d.github.io/nuxt-i18n-micro/guide/performance)
99
+ [Performance](https://s00d.github.io/nuxt-i18n-micro/guide/performance)
97
100
 
98
101
  [Performance Test Results](https://s00d.github.io/nuxt-i18n-micro/guide/performance-results)
99
102
 
@@ -1,11 +1 @@
1
- <!DOCTYPE html><html><head><meta charset="utf-8">
2
- <meta name="viewport" content="width=device-width, initial-scale=1">
3
- <link rel="stylesheet" href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/entry.v6jsTdX3.css" crossorigin>
4
- <link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/CHvgnIbY.js">
5
- <link rel="prefetch" as="style" crossorigin href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/error-404.FEiwkL-z.css">
6
- <link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/zX7mpbIS.js">
7
- <link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/Cj7OMqrf.js">
8
- <link rel="prefetch" as="style" crossorigin href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/error-500.MfoKbn8r.css">
9
- <link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/B8NwAMTo.js">
10
- <script type="module" src="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/CHvgnIbY.js" crossorigin></script></head><body><div id="__nuxt"></div><div id="teleports"></div><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1769248175210,false]</script>
11
- <script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__NUXT_DEVTOOLS_I18N_BASE__/",buildId:"f35d3c6f-eaf5-439f-b994-53c856a7f605",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/entry.Kj_DYE7z.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/BGh93ua4.js"><script type="module" src="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/BGh93ua4.js" crossorigin></script><link rel="prefetch" as="style" crossorigin href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/error-404.Gqn9dG-k.css"><link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/BHdvmNAL.js"><link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/DCzpQabR.js"><link rel="prefetch" as="style" crossorigin href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/error-500.B7WZZ6sx.css"><link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/DDGd_lid.js"></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__NUXT_DEVTOOLS_I18N_BASE__/",buildId:"7cd4f087-6927-4e90-9f5d-48186ff338af",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1770291662346,false]</script></body></html>
@@ -1,11 +1 @@
1
- <!DOCTYPE html><html><head><meta charset="utf-8">
2
- <meta name="viewport" content="width=device-width, initial-scale=1">
3
- <link rel="stylesheet" href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/entry.v6jsTdX3.css" crossorigin>
4
- <link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/CHvgnIbY.js">
5
- <link rel="prefetch" as="style" crossorigin href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/error-404.FEiwkL-z.css">
6
- <link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/zX7mpbIS.js">
7
- <link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/Cj7OMqrf.js">
8
- <link rel="prefetch" as="style" crossorigin href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/error-500.MfoKbn8r.css">
9
- <link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/B8NwAMTo.js">
10
- <script type="module" src="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/CHvgnIbY.js" crossorigin></script></head><body><div id="__nuxt"></div><div id="teleports"></div><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1769248175211,false]</script>
11
- <script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__NUXT_DEVTOOLS_I18N_BASE__/",buildId:"f35d3c6f-eaf5-439f-b994-53c856a7f605",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/entry.Kj_DYE7z.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/BGh93ua4.js"><script type="module" src="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/BGh93ua4.js" crossorigin></script><link rel="prefetch" as="style" crossorigin href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/error-404.Gqn9dG-k.css"><link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/BHdvmNAL.js"><link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/DCzpQabR.js"><link rel="prefetch" as="style" crossorigin href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/error-500.B7WZZ6sx.css"><link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/DDGd_lid.js"></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__NUXT_DEVTOOLS_I18N_BASE__/",buildId:"7cd4f087-6927-4e90-9f5d-48186ff338af",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1770291662347,false]</script></body></html>