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.
- package/README.md +24 -21
- package/dist/client/200.html +1 -11
- package/dist/client/404.html +1 -11
- package/dist/client/_nuxt/{CHvgnIbY.js → BGh93ua4.js} +10 -10
- package/dist/client/_nuxt/BHdvmNAL.js +1 -0
- package/dist/client/_nuxt/DCzpQabR.js +1 -0
- package/dist/client/_nuxt/DDGd_lid.js +1 -0
- package/dist/client/_nuxt/builds/latest.json +1 -1
- package/dist/client/_nuxt/builds/meta/7cd4f087-6927-4e90-9f5d-48186ff338af.json +1 -0
- package/dist/client/_nuxt/entry.Kj_DYE7z.css +1 -0
- package/dist/client/_nuxt/error-404.Gqn9dG-k.css +1 -0
- package/dist/client/_nuxt/error-500.B7WZZ6sx.css +1 -0
- package/dist/client/index.html +1 -11
- package/dist/module.d.mts +1 -15
- package/dist/module.json +1 -1
- package/dist/module.mjs +309 -828
- package/dist/runtime/components/i18n-link.vue +4 -7
- package/dist/runtime/components/i18n-t.vue.d.ts +1 -1
- package/dist/runtime/composables/useI18n.js +6 -1
- package/dist/runtime/composables/useI18nLocale.d.ts +29 -0
- package/dist/runtime/composables/useI18nLocale.js +64 -0
- package/dist/runtime/composables/useLocaleHead.js +7 -4
- package/dist/runtime/plugins/01.plugin.d.ts +74 -41
- package/dist/runtime/plugins/01.plugin.js +267 -156
- package/dist/runtime/plugins/02.meta.js +5 -9
- package/dist/runtime/plugins/05.hooks.js +3 -3
- package/dist/runtime/plugins/06.client-redirect.client.js +50 -0
- package/dist/runtime/server/{routes/get.d.ts → middleware/i18n.global.d.ts} +1 -1
- package/dist/runtime/server/middleware/i18n.global.js +198 -0
- package/dist/runtime/server/plugins/watcher.dev.d.ts +1 -1
- package/dist/runtime/server/plugins/watcher.dev.js +42 -15
- package/dist/runtime/server/routes/i18n.d.ts +6 -0
- package/dist/runtime/server/routes/i18n.js +17 -0
- package/dist/runtime/{utils → server/utils}/locale-detector.d.ts +1 -1
- package/dist/runtime/{utils → server/utils}/locale-detector.js +6 -5
- package/dist/runtime/{locale-server-middleware.js → server/utils/locale-server-middleware.js} +4 -6
- package/dist/runtime/server/utils/server-loader.d.ts +13 -0
- package/dist/runtime/server/utils/server-loader.js +72 -0
- package/dist/runtime/server/utils/translation-server-middleware.js +36 -0
- package/dist/runtime/utils/cookie.d.ts +24 -0
- package/dist/runtime/utils/cookie.js +22 -0
- package/dist/runtime/utils/route-utils.d.ts +4 -2
- package/dist/runtime/utils/route-utils.js +14 -5
- package/dist/runtime/utils/storage.d.ts +39 -0
- package/dist/runtime/utils/storage.js +67 -0
- package/internals.d.mts +96 -0
- package/package.json +28 -8
- package/dist/client/_nuxt/B8NwAMTo.js +0 -1
- package/dist/client/_nuxt/Cj7OMqrf.js +0 -1
- package/dist/client/_nuxt/builds/meta/f35d3c6f-eaf5-439f-b994-53c856a7f605.json +0 -1
- package/dist/client/_nuxt/entry.v6jsTdX3.css +0 -1
- package/dist/client/_nuxt/error-404.FEiwkL-z.css +0 -1
- package/dist/client/_nuxt/error-500.MfoKbn8r.css +0 -1
- package/dist/client/_nuxt/zX7mpbIS.js +0 -1
- package/dist/runtime/components/locale-redirect.vue +0 -123
- package/dist/runtime/components/locale-redirect.vue.d.ts +0 -2
- package/dist/runtime/plugins/04.auto-detect.js +0 -87
- package/dist/runtime/plugins/06.redirect.d.ts +0 -2
- package/dist/runtime/plugins/06.redirect.js +0 -93
- package/dist/runtime/server/routes/get.js +0 -99
- package/dist/runtime/translation-server-middleware.js +0 -52
- package/dist/runtime/utils/path-utils.d.ts +0 -7
- package/dist/runtime/utils/path-utils.js +0 -40
- /package/dist/runtime/plugins/{04.auto-detect.d.ts → 06.client-redirect.client.d.ts} +0 -0
- /package/dist/runtime/{locale-server-middleware.d.ts → server/utils/locale-server-middleware.d.ts} +0 -0
- /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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
[
|
|
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
|
|
package/dist/client/200.html
CHANGED
|
@@ -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>
|
package/dist/client/404.html
CHANGED
|
@@ -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>
|