nuxt-i18n-micro 1.40.0 → 1.50.1
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/dist/client/200.html +9 -9
- package/dist/client/404.html +9 -9
- package/dist/client/_nuxt/{BFMOhgGT.js → B85fdbn4.js} +1 -1
- package/dist/client/_nuxt/{D9PvWz4w.js → BhDLGWZB.js} +98 -98
- package/dist/client/_nuxt/{CKJhJvrR.js → BzXxbhIZ.js} +1 -1
- package/dist/client/_nuxt/{BOuSa-5P.js → D7qRjn1h.js} +1 -1
- package/dist/client/_nuxt/builds/latest.json +1 -1
- package/dist/client/_nuxt/builds/meta/725c64c2-d7ca-4007-b935-af6d75057c09.json +1 -0
- package/dist/client/_nuxt/error-404.BRvVeJss.css +1 -0
- package/dist/client/_nuxt/error-500.DWqKq_Wn.css +1 -0
- package/dist/client/index.html +9 -9
- package/dist/module.d.mts +2 -0
- package/dist/module.d.ts +2 -0
- package/dist/module.json +1 -1
- package/dist/module.mjs +39 -20
- package/dist/runtime/components/i18n-switcher.vue +4 -3
- package/dist/runtime/composables/useLocaleHead.js +3 -2
- package/dist/runtime/helpers.d.ts +6 -0
- package/dist/runtime/helpers.js +5 -0
- package/dist/runtime/plugins/01.plugin.js +43 -28
- package/dist/runtime/plugins/03.define.js +4 -3
- package/dist/runtime/plugins/04.auto-detect.js +22 -2
- package/package.json +14 -14
- package/dist/client/_nuxt/builds/meta/4316af1d-27df-4ab9-b027-2c99cf42eaf5.json +0 -1
- package/dist/client/_nuxt/error-404.D0eU26kO.css +0 -1
- package/dist/client/_nuxt/error-500.CAvb8X3f.css +0 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isPrefixStrategy, isNoPrefixStrategy } from "../helpers.js";
|
|
1
2
|
import { defineNuxtPlugin, useCookie, useRequestHeaders, navigateTo } from "#app";
|
|
2
3
|
import { useRoute, useRouter } from "#imports";
|
|
3
4
|
const parseAcceptLanguage = (acceptLanguage) => acceptLanguage.split(",").map((entry) => entry.split(";")[0].trim());
|
|
@@ -16,13 +17,32 @@ export default defineNuxtPlugin(async (nuxtApp) => {
|
|
|
16
17
|
const router = useRouter();
|
|
17
18
|
const route = useRoute();
|
|
18
19
|
async function switchLocale(newLocale) {
|
|
20
|
+
if (isNoPrefixStrategy(i18nConfig.strategy)) {
|
|
21
|
+
if (newLocale !== defaultLocale) {
|
|
22
|
+
const newParams2 = { ...route.params };
|
|
23
|
+
delete newParams2.locale;
|
|
24
|
+
const resolvedRoute2 = router.resolve(router.currentRoute.value);
|
|
25
|
+
const routeName2 = resolvedRoute2.name.replace(`localized-`, "");
|
|
26
|
+
const newRoute2 = router.resolve({
|
|
27
|
+
name: routeName2,
|
|
28
|
+
params: newParams2
|
|
29
|
+
});
|
|
30
|
+
const userLocaleCookie2 = useCookie("no-prefix-locale");
|
|
31
|
+
userLocaleCookie2.value = newLocale;
|
|
32
|
+
await navigateTo(newRoute2, {
|
|
33
|
+
redirectCode: 302,
|
|
34
|
+
external: true
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
19
39
|
const currentPath = router.currentRoute;
|
|
20
40
|
const resolvedRoute = router.resolve(currentPath.value);
|
|
21
41
|
const routeName = resolvedRoute.name.replace(`localized-`, "");
|
|
22
|
-
const newRouteName = i18nConfig.
|
|
42
|
+
const newRouteName = isPrefixStrategy(i18nConfig.strategy) || newLocale !== defaultLocale ? `localized-${routeName}` : routeName;
|
|
23
43
|
const newParams = { ...route.params };
|
|
24
44
|
delete newParams.locale;
|
|
25
|
-
if (i18nConfig.
|
|
45
|
+
if (isPrefixStrategy(i18nConfig.strategy) || newLocale !== defaultLocale) {
|
|
26
46
|
newParams.locale = newLocale;
|
|
27
47
|
}
|
|
28
48
|
const newRoute = router.resolve({
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nuxt-i18n-micro",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.50.1",
|
|
4
4
|
"description": "Nuxt I18n Micro is a lightweight, high-performance internationalization module for Nuxt, designed to handle multi-language support with minimal overhead, fast build times, and efficient runtime performance.",
|
|
5
5
|
"repository": "s00d/nuxt-i18n-micro",
|
|
6
6
|
"license": "MIT",
|
|
@@ -40,8 +40,8 @@
|
|
|
40
40
|
"internals.d.ts"
|
|
41
41
|
],
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@nuxt/devtools-kit": "^1.6.
|
|
44
|
-
"@nuxt/kit": "
|
|
43
|
+
"@nuxt/devtools-kit": "^1.6.4",
|
|
44
|
+
"@nuxt/kit": "3.13.2",
|
|
45
45
|
"chokidar": "^3.6.0",
|
|
46
46
|
"sirv": "^2.0.4",
|
|
47
47
|
"ufo": "^1.5.4",
|
|
@@ -50,27 +50,27 @@
|
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
52
|
"@types/jest": "^29.5.14",
|
|
53
|
-
"@nuxt/devtools": "^1.6.
|
|
54
|
-
"@nuxt/devtools-ui-kit": "^1.6.
|
|
55
|
-
"@nuxt/eslint-config": "0.
|
|
53
|
+
"@nuxt/devtools": "^1.6.4",
|
|
54
|
+
"@nuxt/devtools-ui-kit": "^1.6.4",
|
|
55
|
+
"@nuxt/eslint-config": "0.7.3",
|
|
56
56
|
"@nuxt/module-builder": "^0.8.4",
|
|
57
|
-
"@nuxt/schema": "
|
|
58
|
-
"@nuxt/test-utils": "^3.
|
|
59
|
-
"@playwright/test": "^1.49.
|
|
60
|
-
"@types/node": "^20.
|
|
57
|
+
"@nuxt/schema": "3.13.2",
|
|
58
|
+
"@nuxt/test-utils": "^3.15.1",
|
|
59
|
+
"@playwright/test": "^1.49.1",
|
|
60
|
+
"@types/node": "^20.17.10",
|
|
61
61
|
"changelogen": "^0.5.7",
|
|
62
62
|
"eslint": "^8.57.1",
|
|
63
|
-
"nuxt": "
|
|
63
|
+
"nuxt": "3.13.2",
|
|
64
64
|
"typescript": "5.6.3",
|
|
65
65
|
"vitepress": "^1.5.0",
|
|
66
|
-
"vitest": "^2.1.
|
|
66
|
+
"vitest": "^2.1.8",
|
|
67
67
|
"jest": "^29.7.0",
|
|
68
68
|
"ts-jest": "^29.2.5",
|
|
69
69
|
"vue-tsc": "2.1.10"
|
|
70
70
|
},
|
|
71
71
|
"optionalDependencies": {
|
|
72
|
-
"@rollup/rollup-linux-x64-gnu": "^4.
|
|
73
|
-
"@rollup/rollup-win32-x64-msvc": "^4.
|
|
72
|
+
"@rollup/rollup-linux-x64-gnu": "^4.28.1",
|
|
73
|
+
"@rollup/rollup-win32-x64-msvc": "^4.28.1"
|
|
74
74
|
},
|
|
75
75
|
"workspaces": [
|
|
76
76
|
"client",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"id":"4316af1d-27df-4ab9-b027-2c99cf42eaf5","timestamp":1734506134944,"matcher":{"static":{},"wildcard":{},"dynamic":{}},"prerendered":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.spotlight[data-v-9043cb39]{background:linear-gradient(45deg,#00dc82,#36e4da 50%,#0047e1);bottom:-30vh;filter:blur(20vh);height:40vh}.gradient-border[data-v-9043cb39]{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:.5rem;position:relative}@media (prefers-color-scheme:light){.gradient-border[data-v-9043cb39]{background-color:#ffffff4d}.gradient-border[data-v-9043cb39]:before{background:linear-gradient(90deg,#e2e2e2,#e2e2e2 25%,#00dc82,#36e4da 75%,#0047e1)}}@media (prefers-color-scheme:dark){.gradient-border[data-v-9043cb39]{background-color:#1414144d}.gradient-border[data-v-9043cb39]:before{background:linear-gradient(90deg,#303030,#303030 25%,#00dc82,#36e4da 75%,#0047e1)}}.gradient-border[data-v-9043cb39]:before{background-size:400% auto;border-radius:.5rem;bottom:0;content:"";left:0;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.5;padding:2px;position:absolute;right:0;top:0;transition:background-position .3s ease-in-out,opacity .2s ease-in-out;width:100%}.gradient-border[data-v-9043cb39]:hover:before{background-position:-50% 0;opacity:1}.fixed[data-v-9043cb39]{position:fixed}.left-0[data-v-9043cb39]{left:0}.right-0[data-v-9043cb39]{right:0}.z-10[data-v-9043cb39]{z-index:10}.z-20[data-v-9043cb39]{z-index:20}.grid[data-v-9043cb39]{display:grid}.mb-16[data-v-9043cb39]{margin-bottom:4rem}.mb-8[data-v-9043cb39]{margin-bottom:2rem}.max-w-520px[data-v-9043cb39]{max-width:520px}.min-h-screen[data-v-9043cb39]{min-height:100vh}.w-full[data-v-9043cb39]{width:100%}.flex[data-v-9043cb39]{display:flex}.cursor-pointer[data-v-9043cb39]{cursor:pointer}.place-content-center[data-v-9043cb39]{place-content:center}.items-center[data-v-9043cb39]{align-items:center}.justify-center[data-v-9043cb39]{justify-content:center}.overflow-hidden[data-v-9043cb39]{overflow:hidden}.bg-white[data-v-9043cb39]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-4[data-v-9043cb39]{padding-left:1rem;padding-right:1rem}.px-8[data-v-9043cb39]{padding-left:2rem;padding-right:2rem}.py-2[data-v-9043cb39]{padding-bottom:.5rem;padding-top:.5rem}.text-center[data-v-9043cb39]{text-align:center}.text-8xl[data-v-9043cb39]{font-size:6rem;line-height:1}.text-xl[data-v-9043cb39]{font-size:1.25rem;line-height:1.75rem}.text-black[data-v-9043cb39]{--un-text-opacity:1;color:rgb(0 0 0/var(--un-text-opacity))}.font-light[data-v-9043cb39]{font-weight:300}.font-medium[data-v-9043cb39]{font-weight:500}.leading-tight[data-v-9043cb39]{line-height:1.25}.font-sans[data-v-9043cb39]{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.antialiased[data-v-9043cb39]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){.dark\:bg-black[data-v-9043cb39]{--un-bg-opacity:1;background-color:rgb(0 0 0/var(--un-bg-opacity))}.dark\:text-white[data-v-9043cb39]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media (min-width:640px){.sm\:px-0[data-v-9043cb39]{padding-left:0;padding-right:0}.sm\:px-6[data-v-9043cb39]{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-3[data-v-9043cb39]{padding-bottom:.75rem;padding-top:.75rem}.sm\:text-4xl[data-v-9043cb39]{font-size:2.25rem;line-height:2.5rem}.sm\:text-xl[data-v-9043cb39]{font-size:1.25rem;line-height:1.75rem}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.spotlight[data-v-87b8bee0]{background:linear-gradient(45deg,#00dc82,#36e4da 50%,#0047e1);filter:blur(20vh)}.fixed[data-v-87b8bee0]{position:fixed}.-bottom-1\/2[data-v-87b8bee0]{bottom:-50%}.left-0[data-v-87b8bee0]{left:0}.right-0[data-v-87b8bee0]{right:0}.grid[data-v-87b8bee0]{display:grid}.mb-16[data-v-87b8bee0]{margin-bottom:4rem}.mb-8[data-v-87b8bee0]{margin-bottom:2rem}.h-1\/2[data-v-87b8bee0]{height:50%}.max-w-520px[data-v-87b8bee0]{max-width:520px}.min-h-screen[data-v-87b8bee0]{min-height:100vh}.place-content-center[data-v-87b8bee0]{place-content:center}.overflow-hidden[data-v-87b8bee0]{overflow:hidden}.bg-white[data-v-87b8bee0]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-8[data-v-87b8bee0]{padding-left:2rem;padding-right:2rem}.text-center[data-v-87b8bee0]{text-align:center}.text-8xl[data-v-87b8bee0]{font-size:6rem;line-height:1}.text-xl[data-v-87b8bee0]{font-size:1.25rem;line-height:1.75rem}.text-black[data-v-87b8bee0]{--un-text-opacity:1;color:rgb(0 0 0/var(--un-text-opacity))}.font-light[data-v-87b8bee0]{font-weight:300}.font-medium[data-v-87b8bee0]{font-weight:500}.leading-tight[data-v-87b8bee0]{line-height:1.25}.font-sans[data-v-87b8bee0]{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.antialiased[data-v-87b8bee0]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){.dark\:bg-black[data-v-87b8bee0]{--un-bg-opacity:1;background-color:rgb(0 0 0/var(--un-bg-opacity))}.dark\:text-white[data-v-87b8bee0]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media (min-width:640px){.sm\:px-0[data-v-87b8bee0]{padding-left:0;padding-right:0}.sm\:text-4xl[data-v-87b8bee0]{font-size:2.25rem;line-height:2.5rem}}
|