nuxt-i18n-micro 1.63.2 → 1.65.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/dist/client/200.html +8 -8
- package/dist/client/404.html +8 -8
- package/dist/client/_nuxt/{AXE8DZQI.js → CcDaBmcC.js} +1 -1
- package/dist/client/_nuxt/{Ddb0iCRU.js → ClTsZsex.js} +59 -59
- package/dist/client/_nuxt/{Deg2o1hP.js → DT0mZaxo.js} +1 -1
- package/dist/client/_nuxt/builds/latest.json +1 -1
- package/dist/client/_nuxt/builds/meta/ca0ba9b5-54af-4e8c-85d7-f8f741ea6b35.json +1 -0
- package/dist/client/_nuxt/error-404.DCBEmQSD.css +1 -0
- package/dist/client/_nuxt/error-500.D1x2GrnM.css +1 -0
- package/dist/client/_nuxt/{D9gx-VEt.js → rqhqIC0Q.js} +1 -1
- package/dist/client/index.html +8 -8
- package/dist/module.d.mts +3 -3
- package/dist/module.d.ts +3 -3
- package/dist/module.json +1 -1
- package/dist/module.mjs +48 -26
- package/dist/runtime/components/i18n-t.vue.d.ts +1 -1
- package/dist/runtime/components/locale-redirect.vue +20 -4
- package/dist/runtime/composables/useLocaleHead.js +2 -2
- package/dist/runtime/plugins/01.plugin.d.ts +7 -8
- package/dist/runtime/plugins/01.plugin.js +85 -325
- package/dist/runtime/plugins/03.define.d.ts +2 -2
- package/dist/runtime/plugins/03.define.js +29 -29
- package/dist/runtime/plugins/04.auto-detect.js +5 -3
- package/dist/runtime/translation-server-middleware.d.ts +1 -1
- package/dist/types.d.mts +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/utils.d.mts +3 -2
- package/dist/utils.d.ts +3 -2
- package/dist/utils.mjs +4 -1
- package/package.json +5 -4
- package/dist/client/_nuxt/builds/meta/4fb36a07-acc6-4000-9c26-f521b5d784b5.json +0 -1
- package/dist/client/_nuxt/error-404.vh32VtAd.css +0 -1
- package/dist/client/_nuxt/error-500.EgQ3RNLZ.css +0 -1
- package/dist/runtime/helpers.d.ts +0 -6
- package/dist/runtime/helpers.js +0 -5
- package/dist/shared/nuxt-i18n-micro.4b19b717.d.mts +0 -57
- package/dist/shared/nuxt-i18n-micro.4b19b717.d.ts +0 -57
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as a,o as i,c as u,a as e,t as r,b as c,w as l,d,e as p}from"./
|
|
1
|
+
import{_ as a,o as i,c as u,a as e,t as r,b as c,w as l,d,e as p}from"./ClTsZsex.js";import{u as f}from"./CcDaBmcC.js";const m={class:"antialiased bg-white dark:bg-black dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-black"},g={class:"max-w-520px text-center z-20"},h=["textContent"],b=["textContent"],x={class:"flex items-center justify-center w-full"},y={__name:"error-404",props:{appName:{type:String,default:"Nuxt"},version:{type:String,default:""},statusCode:{type:Number,default:404},statusMessage:{type:String,default:"Not Found"},description:{type:String,default:"Sorry, the page you are looking for could not be found."},backHome:{type:String,default:"Go back home"}},setup(t){const n=t;return f({title:`${n.statusCode} - ${n.statusMessage} | ${n.appName}`,script:[{children:`!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver((e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)})).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{children:'*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}h1,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }'}]}),(k,o)=>{const s=p;return i(),u("div",m,[o[0]||(o[0]=e("div",{class:"fixed left-0 right-0 spotlight z-10"},null,-1)),e("div",g,[e("h1",{class:"font-medium mb-8 sm:text-10xl text-8xl",textContent:r(t.statusCode)},null,8,h),e("p",{class:"font-light leading-tight mb-16 px-8 sm:px-0 sm:text-4xl text-xl",textContent:r(t.description)},null,8,b),e("div",x,[c(s,{to:"/",class:"cursor-pointer gradient-border px-4 py-2 sm:px-6 sm:py-3 sm:text-xl text-md"},{default:l(()=>[d(r(t.backHome),1)]),_:1})])])])}}},v=a(y,[["__scopeId","data-v-f1dedcb8"]]);export{v as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"id":"
|
|
1
|
+
{"id":"ca0ba9b5-54af-4e8c-85d7-f8f741ea6b35","timestamp":1737357057535}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"ca0ba9b5-54af-4e8c-85d7-f8f741ea6b35","timestamp":1737357057535,"matcher":{"static":{},"wildcard":{},"dynamic":{}},"prerendered":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.spotlight[data-v-f1dedcb8]{background:linear-gradient(45deg,#00dc82,#36e4da 50%,#0047e1);bottom:-30vh;filter:blur(20vh);height:40vh}.gradient-border[data-v-f1dedcb8]{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:.5rem;position:relative}@media (prefers-color-scheme:light){.gradient-border[data-v-f1dedcb8]{background-color:#ffffff4d}.gradient-border[data-v-f1dedcb8]:before{background:linear-gradient(90deg,#e2e2e2,#e2e2e2 25%,#00dc82,#36e4da 75%,#0047e1)}}@media (prefers-color-scheme:dark){.gradient-border[data-v-f1dedcb8]{background-color:#1414144d}.gradient-border[data-v-f1dedcb8]:before{background:linear-gradient(90deg,#303030,#303030 25%,#00dc82,#36e4da 75%,#0047e1)}}.gradient-border[data-v-f1dedcb8]: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-f1dedcb8]:hover:before{background-position:-50% 0;opacity:1}.fixed[data-v-f1dedcb8]{position:fixed}.left-0[data-v-f1dedcb8]{left:0}.right-0[data-v-f1dedcb8]{right:0}.z-10[data-v-f1dedcb8]{z-index:10}.z-20[data-v-f1dedcb8]{z-index:20}.grid[data-v-f1dedcb8]{display:grid}.mb-16[data-v-f1dedcb8]{margin-bottom:4rem}.mb-8[data-v-f1dedcb8]{margin-bottom:2rem}.max-w-520px[data-v-f1dedcb8]{max-width:520px}.min-h-screen[data-v-f1dedcb8]{min-height:100vh}.w-full[data-v-f1dedcb8]{width:100%}.flex[data-v-f1dedcb8]{display:flex}.cursor-pointer[data-v-f1dedcb8]{cursor:pointer}.place-content-center[data-v-f1dedcb8]{place-content:center}.items-center[data-v-f1dedcb8]{align-items:center}.justify-center[data-v-f1dedcb8]{justify-content:center}.overflow-hidden[data-v-f1dedcb8]{overflow:hidden}.bg-white[data-v-f1dedcb8]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-4[data-v-f1dedcb8]{padding-left:1rem;padding-right:1rem}.px-8[data-v-f1dedcb8]{padding-left:2rem;padding-right:2rem}.py-2[data-v-f1dedcb8]{padding-bottom:.5rem;padding-top:.5rem}.text-center[data-v-f1dedcb8]{text-align:center}.text-8xl[data-v-f1dedcb8]{font-size:6rem;line-height:1}.text-xl[data-v-f1dedcb8]{font-size:1.25rem;line-height:1.75rem}.text-black[data-v-f1dedcb8]{--un-text-opacity:1;color:rgb(0 0 0/var(--un-text-opacity))}.font-light[data-v-f1dedcb8]{font-weight:300}.font-medium[data-v-f1dedcb8]{font-weight:500}.leading-tight[data-v-f1dedcb8]{line-height:1.25}.font-sans[data-v-f1dedcb8]{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-f1dedcb8]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){.dark\:bg-black[data-v-f1dedcb8]{--un-bg-opacity:1;background-color:rgb(0 0 0/var(--un-bg-opacity))}.dark\:text-white[data-v-f1dedcb8]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media (min-width:640px){.sm\:px-0[data-v-f1dedcb8]{padding-left:0;padding-right:0}.sm\:px-6[data-v-f1dedcb8]{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-3[data-v-f1dedcb8]{padding-bottom:.75rem;padding-top:.75rem}.sm\:text-4xl[data-v-f1dedcb8]{font-size:2.25rem;line-height:2.5rem}.sm\:text-xl[data-v-f1dedcb8]{font-size:1.25rem;line-height:1.75rem}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.spotlight[data-v-0d3db116]{background:linear-gradient(45deg,#00dc82,#36e4da 50%,#0047e1);filter:blur(20vh)}.fixed[data-v-0d3db116]{position:fixed}.-bottom-1\/2[data-v-0d3db116]{bottom:-50%}.left-0[data-v-0d3db116]{left:0}.right-0[data-v-0d3db116]{right:0}.grid[data-v-0d3db116]{display:grid}.mb-16[data-v-0d3db116]{margin-bottom:4rem}.mb-8[data-v-0d3db116]{margin-bottom:2rem}.h-1\/2[data-v-0d3db116]{height:50%}.max-w-520px[data-v-0d3db116]{max-width:520px}.min-h-screen[data-v-0d3db116]{min-height:100vh}.place-content-center[data-v-0d3db116]{place-content:center}.overflow-hidden[data-v-0d3db116]{overflow:hidden}.bg-white[data-v-0d3db116]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-8[data-v-0d3db116]{padding-left:2rem;padding-right:2rem}.text-center[data-v-0d3db116]{text-align:center}.text-8xl[data-v-0d3db116]{font-size:6rem;line-height:1}.text-xl[data-v-0d3db116]{font-size:1.25rem;line-height:1.75rem}.text-black[data-v-0d3db116]{--un-text-opacity:1;color:rgb(0 0 0/var(--un-text-opacity))}.font-light[data-v-0d3db116]{font-weight:300}.font-medium[data-v-0d3db116]{font-weight:500}.leading-tight[data-v-0d3db116]{line-height:1.25}.font-sans[data-v-0d3db116]{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-0d3db116]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){.dark\:bg-black[data-v-0d3db116]{--un-bg-opacity:1;background-color:rgb(0 0 0/var(--un-bg-opacity))}.dark\:text-white[data-v-0d3db116]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media (min-width:640px){.sm\:px-0[data-v-0d3db116]{padding-left:0;padding-right:0}.sm\:text-4xl[data-v-0d3db116]{font-size:2.25rem;line-height:2.5rem}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as s,o as a,c as i,a as e,t as o}from"./
|
|
1
|
+
import{_ as s,o as a,c as i,a as e,t as o}from"./ClTsZsex.js";import{u}from"./CcDaBmcC.js";const l={class:"antialiased bg-white dark:bg-black dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-black"},c={class:"max-w-520px text-center"},d=["textContent"],p=["textContent"],f={__name:"error-500",props:{appName:{type:String,default:"Nuxt"},version:{type:String,default:""},statusCode:{type:Number,default:500},statusMessage:{type:String,default:"Server error"},description:{type:String,default:"This page is temporarily unavailable."}},setup(t){const r=t;return u({title:`${r.statusCode} - ${r.statusMessage} | ${r.appName}`,script:[{children:`!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver((e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)})).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{children:'*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1{font-size:inherit;font-weight:inherit}h1,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }'}]}),(g,n)=>(a(),i("div",l,[n[0]||(n[0]=e("div",{class:"-bottom-1/2 fixed h-1/2 left-0 right-0 spotlight"},null,-1)),e("div",c,[e("h1",{class:"font-medium mb-8 sm:text-10xl text-8xl",textContent:o(t.statusCode)},null,8,d),e("p",{class:"font-light leading-tight mb-16 px-8 sm:px-0 sm:text-4xl text-xl",textContent:o(t.description)},null,8,p)])]))}},b=s(f,[["__scopeId","data-v-0d3db116"]]);export{b as default};
|
package/dist/client/index.html
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
<!DOCTYPE html><html data-capo=""><head><meta charset="utf-8">
|
|
2
2
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
3
3
|
<link rel="stylesheet" href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/entry.B5pGkSSX.css" crossorigin>
|
|
4
|
-
<link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/
|
|
4
|
+
<link rel="modulepreload" as="script" crossorigin href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/ClTsZsex.js">
|
|
5
5
|
<link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/CG55hV0U.js">
|
|
6
|
-
<link rel="prefetch" as="style" crossorigin href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/error-404.
|
|
7
|
-
<link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/
|
|
8
|
-
<link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/
|
|
9
|
-
<link rel="prefetch" as="style" crossorigin href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/error-500.
|
|
10
|
-
<link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/
|
|
11
|
-
<script type="module" src="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/
|
|
12
|
-
<script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__NUXT_DEVTOOLS_I18N_BASE__/",buildId:"
|
|
6
|
+
<link rel="prefetch" as="style" crossorigin href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/error-404.DCBEmQSD.css">
|
|
7
|
+
<link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/DT0mZaxo.js">
|
|
8
|
+
<link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/CcDaBmcC.js">
|
|
9
|
+
<link rel="prefetch" as="style" crossorigin href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/error-500.D1x2GrnM.css">
|
|
10
|
+
<link rel="prefetch" as="script" crossorigin href="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/rqhqIC0Q.js">
|
|
11
|
+
<script type="module" src="/__NUXT_DEVTOOLS_I18N_BASE__/_nuxt/ClTsZsex.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},1737357063990,false]</script>
|
|
12
|
+
<script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__NUXT_DEVTOOLS_I18N_BASE__/",buildId:"ca0ba9b5-54af-4e8c-85d7-f8f741ea6b35",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script></body></html>
|
package/dist/module.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as _nuxt_schema from '@nuxt/schema';
|
|
2
2
|
import { HookResult } from '@nuxt/schema';
|
|
3
|
-
import {
|
|
4
|
-
export {
|
|
3
|
+
import { ModulePrivateOptionsExtend, ModuleOptionsExtend, ModuleOptions } from 'nuxt-i18n-micro-types';
|
|
4
|
+
export { Getter, GlobalLocaleRoutes, Locale, LocaleCode, ModuleOptions, PluralFunc, Strategies } from 'nuxt-i18n-micro-types';
|
|
5
5
|
export { PluginsInjections } from '../dist/runtime/plugins/01.plugin.js';
|
|
6
6
|
|
|
7
7
|
declare const _default: _nuxt_schema.NuxtModule<ModuleOptions, ModuleOptions, false>;
|
|
@@ -28,4 +28,4 @@ declare module '@nuxt/schema' {
|
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
export { type ModuleHooks,
|
|
31
|
+
export { type ModuleHooks, _default as default };
|
package/dist/module.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as _nuxt_schema from '@nuxt/schema';
|
|
2
2
|
import { HookResult } from '@nuxt/schema';
|
|
3
|
-
import {
|
|
4
|
-
export {
|
|
3
|
+
import { ModulePrivateOptionsExtend, ModuleOptionsExtend, ModuleOptions } from 'nuxt-i18n-micro-types';
|
|
4
|
+
export { Getter, GlobalLocaleRoutes, Locale, LocaleCode, ModuleOptions, PluralFunc, Strategies } from 'nuxt-i18n-micro-types';
|
|
5
5
|
export { PluginsInjections } from '../dist/runtime/plugins/01.plugin.js';
|
|
6
6
|
|
|
7
7
|
declare const _default: _nuxt_schema.NuxtModule<ModuleOptions, ModuleOptions, false>;
|
|
@@ -28,4 +28,4 @@ declare module '@nuxt/schema' {
|
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
export { type ModuleHooks,
|
|
31
|
+
export { type ModuleHooks, _default as default };
|
package/dist/module.json
CHANGED
package/dist/module.mjs
CHANGED
|
@@ -5,11 +5,11 @@ import { readFile } from 'node:fs/promises';
|
|
|
5
5
|
import { useNuxt, defineNuxtModule, useLogger, createResolver, addTemplate, addImportsDir, addPlugin, addServerHandler, addComponentsDir, addTypeTemplate, extendPages, addPrerenderRoutes } from '@nuxt/kit';
|
|
6
6
|
import { watch } from 'chokidar';
|
|
7
7
|
import { globby } from 'globby';
|
|
8
|
+
import { isPrefixAndDefaultStrategy, isPrefixStrategy, isNoPrefixStrategy, withPrefixStrategy } from 'nuxt-i18n-micro-core';
|
|
8
9
|
import { fileURLToPath } from 'node:url';
|
|
9
10
|
import { onDevToolsInitialized, extendServerRpc } from '@nuxt/devtools-kit';
|
|
10
11
|
import sirv from 'sirv';
|
|
11
|
-
import { extractLocaleRoutes, normalizePath, isLocaleDefault, isPageRedirectOnly, cloneArray, buildRouteName, removeLeadingSlash, shouldAddLocalePrefix, buildFullPath } from './utils.mjs';
|
|
12
|
-
import { isPrefixAndDefaultStrategy, isPrefixStrategy, isNoPrefixStrategy, withPrefixStrategy } from '../dist/runtime/helpers.js';
|
|
12
|
+
import { extractLocaleRoutes, normalizePath, isLocaleDefault, isPageRedirectOnly, cloneArray, buildRouteName, removeLeadingSlash, shouldAddLocalePrefix, buildFullPath, buildFullPathNoPrefix } from './utils.mjs';
|
|
13
13
|
|
|
14
14
|
const DEVTOOLS_UI_PORT = 3030;
|
|
15
15
|
const DEVTOOLS_UI_ROUTE = "/__nuxt-i18n-micro";
|
|
@@ -201,13 +201,23 @@ class PageManager {
|
|
|
201
201
|
if (!customPath)
|
|
202
202
|
return;
|
|
203
203
|
const isDefaultLocale = isLocaleDefault(locale, this.defaultLocale, isPrefixStrategy(this.strategy));
|
|
204
|
-
if (
|
|
205
|
-
page.
|
|
204
|
+
if (isNoPrefixStrategy(this.strategy)) {
|
|
205
|
+
const newRoute = this.createLocalizedRoute(page, [locale.code], page.children ?? [], true, customPath, customRegex);
|
|
206
|
+
if (newRoute)
|
|
207
|
+
additionalRoutes.push(newRoute);
|
|
206
208
|
} else {
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
209
|
+
if (isDefaultLocale) {
|
|
210
|
+
page.path = normalizePath(customPath);
|
|
211
|
+
} else {
|
|
212
|
+
const newRoute = this.createLocalizedRoute(page, [locale.code], page.children ?? [], true, customPath, customRegex);
|
|
213
|
+
if (newRoute)
|
|
214
|
+
additionalRoutes.push(newRoute);
|
|
215
|
+
}
|
|
216
|
+
if (isPrefixAndDefaultStrategy(this.strategy) && locale === this.defaultLocale) {
|
|
217
|
+
const newRoute = this.createLocalizedRoute(page, [locale.code], page.children ?? [], true, customPath, customRegex, true);
|
|
218
|
+
if (newRoute)
|
|
219
|
+
additionalRoutes.push(newRoute);
|
|
220
|
+
}
|
|
211
221
|
}
|
|
212
222
|
});
|
|
213
223
|
}
|
|
@@ -218,7 +228,9 @@ class PageManager {
|
|
|
218
228
|
const normalizedFullPath = normalizePath(page.path);
|
|
219
229
|
const localeCodesWithoutCustomPaths = this.filterLocaleCodesWithoutCustomPaths(normalizedFullPath);
|
|
220
230
|
if (localeCodesWithoutCustomPaths.length) {
|
|
221
|
-
|
|
231
|
+
const newRoute = this.createLocalizedRoute(page, localeCodesWithoutCustomPaths, originalChildren, false, "", customRegex);
|
|
232
|
+
if (newRoute)
|
|
233
|
+
additionalRoutes.push(newRoute);
|
|
222
234
|
}
|
|
223
235
|
this.addCustomLocalizedRoutes(page, normalizedFullPath, originalChildren, additionalRoutes);
|
|
224
236
|
this.adjustRouteForDefaultLocale(page, originalChildren);
|
|
@@ -262,10 +274,14 @@ class PageManager {
|
|
|
262
274
|
if (isDefaultLocale) {
|
|
263
275
|
page.children = this.createLocalizedChildren(originalChildren, "", [locale.code], false);
|
|
264
276
|
} else {
|
|
265
|
-
|
|
277
|
+
const newRoute = this.createLocalizedRoute(page, [locale.code], originalChildren, true, customPath, customRegex);
|
|
278
|
+
if (newRoute)
|
|
279
|
+
additionalRoutes.push(newRoute);
|
|
266
280
|
}
|
|
267
281
|
if (isPrefixAndDefaultStrategy(this.strategy) && locale === this.defaultLocale) {
|
|
268
|
-
|
|
282
|
+
const newRoute = this.createLocalizedRoute(page, [locale.code], originalChildren, true, customPath, customRegex, true);
|
|
283
|
+
if (newRoute)
|
|
284
|
+
additionalRoutes.push(newRoute);
|
|
269
285
|
}
|
|
270
286
|
});
|
|
271
287
|
}
|
|
@@ -281,6 +297,8 @@ class PageManager {
|
|
|
281
297
|
}
|
|
282
298
|
createLocalizedRoute(page, localeCodes, originalChildren, isCustom, customPath = "", customRegex, force = false) {
|
|
283
299
|
const routePath = this.buildRoutePath(localeCodes, page.path, encodeURI(customPath), isCustom, customRegex, force);
|
|
300
|
+
if (!routePath || routePath == page.path)
|
|
301
|
+
return null;
|
|
284
302
|
const routeName = buildRouteName(buildRouteNameFromRoute(page.name, page.path), localeCodes[0], isCustom);
|
|
285
303
|
return {
|
|
286
304
|
...page,
|
|
@@ -308,6 +326,9 @@ class PageManager {
|
|
|
308
326
|
return modifyName && !isLocaleDefault(locale, this.defaultLocale, isPrefixStrategy(this.strategy) || isPrefixAndDefaultStrategy(this.strategy)) ? `localized-${baseName}-${locale}` : baseName;
|
|
309
327
|
}
|
|
310
328
|
buildRoutePath(localeCodes, originalPath, customPath, isCustom, customRegex, force = false) {
|
|
329
|
+
if (isNoPrefixStrategy(this.strategy)) {
|
|
330
|
+
return buildFullPathNoPrefix(isCustom ? customPath : originalPath);
|
|
331
|
+
}
|
|
311
332
|
if (isCustom) {
|
|
312
333
|
return force || isPrefixStrategy(this.strategy) || !localeCodes.includes(this.defaultLocale.code) ? buildFullPath(localeCodes, customPath, customRegex) : normalizePath(customPath);
|
|
313
334
|
}
|
|
@@ -528,6 +549,7 @@ const module = defineNuxtModule({
|
|
|
528
549
|
addPlugin({
|
|
529
550
|
src: resolver.resolve("./runtime/plugins/03.define"),
|
|
530
551
|
name: "i18n-plugin-define",
|
|
552
|
+
mode: "all",
|
|
531
553
|
order: 3
|
|
532
554
|
});
|
|
533
555
|
}
|
|
@@ -565,22 +587,22 @@ const module = defineNuxtModule({
|
|
|
565
587
|
}
|
|
566
588
|
prerenderRoutes.push(`/${apiBaseUrl}/general/${locale.code}/data.json`);
|
|
567
589
|
});
|
|
590
|
+
if (!options.disableWatcher) {
|
|
591
|
+
localeManager.ensureTranslationFilesExist(pagesNames, options.translationDir, nuxt.options.rootDir);
|
|
592
|
+
}
|
|
593
|
+
pageManager.extendPages(pages, options.customRegexMatcher, isCloudflarePages);
|
|
594
|
+
if (isPrefixStrategy(options.strategy) && !isCloudflarePages) {
|
|
595
|
+
const fallbackRoute = {
|
|
596
|
+
path: "/:pathMatch(.*)*",
|
|
597
|
+
name: "custom-fallback-route",
|
|
598
|
+
file: resolver.resolve("./runtime/components/locale-redirect.vue"),
|
|
599
|
+
meta: {
|
|
600
|
+
globalLocaleRoutes: options.globalLocaleRoutes
|
|
601
|
+
}
|
|
602
|
+
};
|
|
603
|
+
pages.push(fallbackRoute);
|
|
604
|
+
}
|
|
568
605
|
if (!isNoPrefixStrategy(options.strategy)) {
|
|
569
|
-
if (!options.disableWatcher) {
|
|
570
|
-
localeManager.ensureTranslationFilesExist(pagesNames, options.translationDir, nuxt.options.rootDir);
|
|
571
|
-
}
|
|
572
|
-
pageManager.extendPages(pages, options.customRegexMatcher, isCloudflarePages);
|
|
573
|
-
if (isPrefixStrategy(options.strategy) && !isCloudflarePages) {
|
|
574
|
-
const fallbackRoute = {
|
|
575
|
-
path: "/:pathMatch(.*)*",
|
|
576
|
-
name: "custom-fallback-route",
|
|
577
|
-
file: resolver.resolve("./runtime/components/locale-redirect.vue"),
|
|
578
|
-
meta: {
|
|
579
|
-
globalLocaleRoutes: options.globalLocaleRoutes
|
|
580
|
-
}
|
|
581
|
-
};
|
|
582
|
-
pages.push(fallbackRoute);
|
|
583
|
-
}
|
|
584
606
|
nuxt.options.generate.routes = Array.isArray(nuxt.options.generate.routes) ? nuxt.options.generate.routes : [];
|
|
585
607
|
if (isCloudflarePages) {
|
|
586
608
|
const processPageWithChildren = (page, parentPath = "") => {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { VNode, PropType } from 'vue';
|
|
2
|
-
import type { PluralFunc } from '
|
|
2
|
+
import type { PluralFunc } from 'nuxt-i18n-micro-types';
|
|
3
3
|
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
4
4
|
keypath: {
|
|
5
5
|
type: PropType<string>;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
</template>
|
|
4
4
|
|
|
5
5
|
<script setup>
|
|
6
|
-
import { useRoute, useI18n, createError
|
|
6
|
+
import { useRoute, useI18n, createError } from '#imports'
|
|
7
7
|
|
|
8
8
|
const route = useRoute()
|
|
9
9
|
const { $getLocales, $defaultLocale } = useI18n()
|
|
@@ -32,22 +32,38 @@ const currentPageName = generateRouteName(pathSegments)
|
|
|
32
32
|
const currentLocalePageName = generateLocaleRouteName(pathSegments)
|
|
33
33
|
const globalLocaleRoutes = route.meta.globalLocaleRoutes ?? {}
|
|
34
34
|
|
|
35
|
+
const handleRedirect = (path) => {
|
|
36
|
+
if (import.meta.client) {
|
|
37
|
+
window.history.replaceState(null, '', path) // Заменяем текущую запись в истории
|
|
38
|
+
location.assign(path) // Перенаправляем на целевую страницу
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
navigateTo(path, { redirectCode: 301, external: true })
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
35
45
|
if (globalLocaleRoutes && globalLocaleRoutes[currentPageName]) {
|
|
36
46
|
const localizedRoutes = globalLocaleRoutes[currentPageName]
|
|
37
47
|
if (localizedRoutes && localizedRoutes[defaultLocale]) {
|
|
38
48
|
const localizedPath = localizedRoutes[defaultLocale]
|
|
39
|
-
|
|
49
|
+
if (route.fullPath !== localizedPath) {
|
|
50
|
+
handleRedirect(localizedPath)
|
|
51
|
+
}
|
|
40
52
|
}
|
|
41
53
|
}
|
|
42
54
|
else if (!locales.includes(firstSegment)) {
|
|
43
55
|
const newPath = `/${defaultLocale}${route.fullPath}`
|
|
44
|
-
|
|
56
|
+
if (route.fullPath !== newPath) {
|
|
57
|
+
handleRedirect(newPath)
|
|
58
|
+
}
|
|
45
59
|
}
|
|
46
60
|
else if (locales.includes(firstSegment) && globalLocaleRoutes && globalLocaleRoutes[currentLocalePageName]) {
|
|
47
61
|
const localizedRoutes = globalLocaleRoutes[currentLocalePageName]
|
|
48
62
|
if (localizedRoutes && localizedRoutes[firstSegment]) {
|
|
49
63
|
const localizedPath = `/${firstSegment}${localizedRoutes[firstSegment]}`
|
|
50
|
-
|
|
64
|
+
if (route.fullPath !== localizedPath) {
|
|
65
|
+
handleRedirect(localizedPath)
|
|
66
|
+
}
|
|
51
67
|
}
|
|
52
68
|
}
|
|
53
69
|
else {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { joinURL } from "ufo";
|
|
2
|
-
import { isPrefixExceptDefaultStrategy } from "
|
|
2
|
+
import { isPrefixExceptDefaultStrategy, isNoPrefixStrategy } from "nuxt-i18n-micro-core";
|
|
3
3
|
import { unref, useRoute, useRuntimeConfig, watch, onUnmounted, ref, useNuxtApp } from "#imports";
|
|
4
4
|
export const useLocaleHead = ({ addDirAttribute = true, identifierAttribute = "id", addSeoAttributes = true, baseUrl = "/" } = {}) => {
|
|
5
5
|
const metaObject = ref({
|
|
@@ -67,7 +67,7 @@ export const useLocaleHead = ({ addDirAttribute = true, identifierAttribute = "i
|
|
|
67
67
|
rel: "canonical",
|
|
68
68
|
href: ogUrl
|
|
69
69
|
};
|
|
70
|
-
const alternateLinks = alternateLocales.flatMap((loc) => {
|
|
70
|
+
const alternateLinks = isNoPrefixStrategy(strategy) ? [] : alternateLocales.flatMap((loc) => {
|
|
71
71
|
const href = defaultLocale === loc.code && isPrefixExceptDefaultStrategy(strategy) ? indexUrl : joinURL(unref(baseUrl), loc.code, fullPath);
|
|
72
72
|
const links = [{
|
|
73
73
|
[identifierAttribute]: `i18n-alternate-${loc.code}`,
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { RouteLocationAsPath, RouteLocationAsRelative, RouteLocationAsString, RouteLocationNormalizedLoaded, RouteLocationRaw, RouteLocationResolved, RouteLocationResolvedGeneric } from 'vue-router';
|
|
2
|
-
import type { Translation, Translations } from 'nuxt-i18n-micro-
|
|
3
|
-
import type { Locale, I18nRouteParams, Params } from '../../types.js';
|
|
2
|
+
import type { Locale, I18nRouteParams, Params, Translation, Translations } from 'nuxt-i18n-micro-types';
|
|
4
3
|
declare const _default: import("nuxt/app").Plugin<{
|
|
5
4
|
i18n: undefined;
|
|
6
5
|
__micro: boolean;
|
|
@@ -14,14 +13,14 @@ declare const _default: import("nuxt/app").Plugin<{
|
|
|
14
13
|
tc: (key: string, params: number | Params, defaultValue?: string) => string;
|
|
15
14
|
tn: (value: number, options?: Intl.NumberFormatOptions) => string;
|
|
16
15
|
td: (value: Date | number | string, options?: Intl.DateTimeFormatOptions) => string;
|
|
17
|
-
tdr(value: Date | number | string, options?: Intl.RelativeTimeFormatOptions)
|
|
16
|
+
tdr: (value: Date | number | string, options?: Intl.RelativeTimeFormatOptions) => string;
|
|
18
17
|
has: (key: string) => boolean;
|
|
19
18
|
mergeTranslations: (newTranslations: Translations) => void;
|
|
20
19
|
mergeGlobalTranslations: (newTranslations: Translations) => void;
|
|
21
20
|
switchLocaleRoute: (toLocale: string) => string | import("vue-router").RouteLocationAsRelativeGeneric | import("vue-router").RouteLocationAsPathGeneric;
|
|
22
21
|
switchLocalePath: (toLocale: string) => string;
|
|
23
|
-
switchLocale: (toLocale: string) => void
|
|
24
|
-
switchRoute: (route: RouteLocationNormalizedLoaded | RouteLocationResolvedGeneric | string, toLocale?: string) => void
|
|
22
|
+
switchLocale: (toLocale: string) => string | false | void | import("vue-router").RouteLocationAsRelativeGeneric | import("vue-router").RouteLocationAsPathGeneric | Promise<false | void | import("vue-router").NavigationFailure>;
|
|
23
|
+
switchRoute: (route: RouteLocationNormalizedLoaded | RouteLocationResolvedGeneric | string, toLocale?: string) => string | false | void | import("vue-router").RouteLocationAsRelativeGeneric | import("vue-router").RouteLocationAsPathGeneric | Promise<false | void | import("vue-router").NavigationFailure>;
|
|
25
24
|
localeRoute: (to: RouteLocationAsString | RouteLocationAsRelative | RouteLocationAsPath | string, locale?: string) => RouteLocationResolved;
|
|
26
25
|
localePath: (to: RouteLocationAsString | RouteLocationAsRelative | RouteLocationAsPath, locale?: string) => string;
|
|
27
26
|
setI18nRouteParams: (value: I18nRouteParams) => I18nRouteParams;
|
|
@@ -38,14 +37,14 @@ declare const _default: import("nuxt/app").Plugin<{
|
|
|
38
37
|
tc: (key: string, params: number | Params, defaultValue?: string) => string;
|
|
39
38
|
tn: (value: number, options?: Intl.NumberFormatOptions) => string;
|
|
40
39
|
td: (value: Date | number | string, options?: Intl.DateTimeFormatOptions) => string;
|
|
41
|
-
tdr(value: Date | number | string, options?: Intl.RelativeTimeFormatOptions)
|
|
40
|
+
tdr: (value: Date | number | string, options?: Intl.RelativeTimeFormatOptions) => string;
|
|
42
41
|
has: (key: string) => boolean;
|
|
43
42
|
mergeTranslations: (newTranslations: Translations) => void;
|
|
44
43
|
mergeGlobalTranslations: (newTranslations: Translations) => void;
|
|
45
44
|
switchLocaleRoute: (toLocale: string) => string | import("vue-router").RouteLocationAsRelativeGeneric | import("vue-router").RouteLocationAsPathGeneric;
|
|
46
45
|
switchLocalePath: (toLocale: string) => string;
|
|
47
|
-
switchLocale: (toLocale: string) => void
|
|
48
|
-
switchRoute: (route: RouteLocationNormalizedLoaded | RouteLocationResolvedGeneric | string, toLocale?: string) => void
|
|
46
|
+
switchLocale: (toLocale: string) => string | false | void | import("vue-router").RouteLocationAsRelativeGeneric | import("vue-router").RouteLocationAsPathGeneric | Promise<false | void | import("vue-router").NavigationFailure>;
|
|
47
|
+
switchRoute: (route: RouteLocationNormalizedLoaded | RouteLocationResolvedGeneric | string, toLocale?: string) => string | false | void | import("vue-router").RouteLocationAsRelativeGeneric | import("vue-router").RouteLocationAsPathGeneric | Promise<false | void | import("vue-router").NavigationFailure>;
|
|
49
48
|
localeRoute: (to: RouteLocationAsString | RouteLocationAsRelative | RouteLocationAsPath | string, locale?: string) => RouteLocationResolved;
|
|
50
49
|
localePath: (to: RouteLocationAsString | RouteLocationAsRelative | RouteLocationAsPath, locale?: string) => string;
|
|
51
50
|
setI18nRouteParams: (value: I18nRouteParams) => I18nRouteParams;
|