[{"data":1,"prerenderedAt":1896},["ShallowReactive",2],{"navigation":3,"v3-navigation":411,"\u002Fintegrations\u002Fnodejs-package":738,"\u002Fintegrations\u002Fnodejs-package-surround":1891},[4,130,180,277,298,319,346],{"title":5,"order":6,"path":7,"stem":8,"children":9,"page":129},"Guide",10,"\u002Fguide","guide",[10,14,19,24,29,35,40,45,50,56,61,66,71,76,82,87,93,98,103,109,114,119,124],{"title":11,"path":12,"stem":13,"order":6,"group":11},"Getting started","\u002Fguide\u002Fgetting-started","guide\u002Fgetting-started",{"title":15,"path":16,"stem":17,"order":18,"group":11},"Migrating from @nuxtjs\u002Fi18n","\u002Fguide\u002Fmigration","guide\u002Fmigration",20,{"title":20,"path":21,"stem":22,"order":23,"group":11},"Upgrading","\u002Fguide\u002Fupgrade","guide\u002Fupgrade",30,{"title":25,"path":26,"stem":27,"order":28,"group":11},"FAQ","\u002Fguide\u002Ffaq","guide\u002Ffaq",40,{"title":30,"path":31,"stem":32,"order":33,"group":34},"Translation files","\u002Fguide\u002Ftranslations","guide\u002Ftranslations",50,"Core concepts",{"title":36,"path":37,"stem":38,"order":39,"group":34},"Page config","\u002Fguide\u002Fper-component-translations","guide\u002Fper-component-translations",60,{"title":41,"path":42,"stem":43,"order":44,"group":34},"Runtime overrides","\u002Fguide\u002Fruntime-overrides","guide\u002Fruntime-overrides",70,{"title":46,"path":47,"stem":48,"order":49,"group":34},"Server routes and API","\u002Fguide\u002Fserver-side-translations","guide\u002Fserver-side-translations",80,{"title":51,"path":52,"stem":53,"order":54,"group":55},"Routing strategies","\u002Fguide\u002Fstrategy","guide\u002Fstrategy",90,"Routing",{"title":57,"path":58,"stem":59,"order":60,"group":55},"Locale detection","\u002Fguide\u002Flocale-detection","guide\u002Flocale-detection",100,{"title":62,"path":63,"stem":64,"order":65,"group":55},"Localized paths","\u002Fguide\u002Fcustom-locale-routes","guide\u002Fcustom-locale-routes",110,{"title":67,"path":68,"stem":69,"order":70,"group":55},"Custom locale detection","\u002Fguide\u002Fcustom-auto-detect","guide\u002Fcustom-auto-detect",120,{"title":72,"path":73,"stem":74,"order":75,"group":55},"Excluding paths","\u002Fguide\u002Fexcluding-static-files","guide\u002Fexcluding-static-files",130,{"title":77,"path":78,"stem":79,"order":80,"group":81},"SEO","\u002Fguide\u002Fseo","guide\u002Fseo",140,"SEO and domains",{"title":83,"path":84,"stem":85,"order":86,"group":81},"Layers and domains","\u002Fguide\u002Flayers","guide\u002Flayers",150,{"title":88,"path":89,"stem":90,"order":91,"group":92},"Deployment","\u002Fguide\u002Fdeployment","guide\u002Fdeployment",160,"Production",{"title":94,"path":95,"stem":96,"order":97,"group":92},"Performance tuning","\u002Fguide\u002Fperformance","guide\u002Fperformance",170,{"title":99,"path":100,"stem":101,"order":102,"group":92},"Performance Test Results","\u002Fguide\u002Fperformance-results","guide\u002Fperformance-results",180,{"title":104,"path":105,"stem":106,"order":107,"group":108},"DevTools","\u002Fguide\u002Fdevtools","guide\u002Fdevtools",190,"Tooling",{"title":110,"path":111,"stem":112,"order":113,"group":108},"CLI","\u002Fguide\u002Fcli","guide\u002Fcli",200,{"title":115,"path":116,"stem":117,"order":118,"group":108},"Testing your app","\u002Fguide\u002Ftesting","guide\u002Ftesting",210,{"title":120,"path":121,"stem":122,"order":123,"group":108},"Storybook","\u002Fguide\u002Fstorybook","guide\u002Fstorybook",220,{"title":125,"path":126,"stem":127,"order":128,"group":108},"Crowdin","\u002Fguide\u002Fcrowdin","guide\u002Fcrowdin",230,false,{"title":131,"order":18,"path":132,"stem":133,"children":134},"Frameworks","\u002Fintegrations","integrations",[135,138,143,147,151,155,159,163,168,172,176],{"title":136,"path":132,"stem":137,"order":6},"Overview","integrations\u002Findex",{"title":139,"path":140,"stem":141,"order":18,"group":142},"Vue","\u002Fintegrations\u002Fvue-package","integrations\u002Fvue-package","UI frameworks",{"title":144,"path":145,"stem":146,"order":23,"group":142},"React and Preact","\u002Fintegrations\u002Freact-package","integrations\u002Freact-package",{"title":148,"path":149,"stem":150,"order":28,"group":142},"Solid","\u002Fintegrations\u002Fsolid-package","integrations\u002Fsolid-package",{"title":152,"path":153,"stem":154,"order":33,"group":142},"Astro","\u002Fintegrations\u002Fastro-package","integrations\u002Fastro-package",{"title":156,"path":157,"stem":158,"order":39,"group":142},"Astro islands","\u002Fintegrations\u002Fastro-islands","integrations\u002Fastro-islands",{"title":160,"path":161,"stem":162,"order":44,"group":142},"VitePress","\u002Fintegrations\u002Fvitepress-package","integrations\u002Fvitepress-package",{"title":164,"path":165,"stem":166,"order":49,"group":167},"Runtime","\u002Fintegrations\u002Fruntime-package","integrations\u002Fruntime-package","Runtimes",{"title":169,"path":170,"stem":171,"order":54,"group":167},"Node.js","\u002Fintegrations\u002Fnodejs-package","integrations\u002Fnodejs-package",{"title":173,"path":174,"stem":175,"order":60,"group":108},"Types generator","\u002Fintegrations\u002Ftypes-generator","integrations\u002Ftypes-generator",{"title":177,"path":178,"stem":179,"order":65,"group":108},"DevTools UI","\u002Fintegrations\u002Fdevtools-ui-package","integrations\u002Fdevtools-ui-package",{"title":181,"order":23,"path":182,"stem":183,"children":184},"API","\u002Fapi","api",[185,188,192,196,200,204],{"title":186,"path":182,"stem":187,"order":6},"API reference","api\u002Findex",{"title":189,"path":190,"stem":191,"order":18},"Module options","\u002Fapi\u002Fmodule-options","api\u002Fmodule-options",{"title":193,"path":194,"stem":195,"order":23},"CLI commands","\u002Fapi\u002Fcli","api\u002Fcli",{"title":197,"path":198,"stem":199,"order":28},"Helpers","\u002Fapi\u002Fmethods","api\u002Fmethods",{"title":201,"path":202,"stem":203,"order":33},"Hooks","\u002Fapi\u002Fevents","api\u002Fevents",{"title":205,"path":206,"stem":207,"children":208,"order":39},"Package APIs","\u002Fapi\u002Fpackages","api\u002Fpackages",[209,213,217,221,225,229,233,237,241,245,249,253,257,261,265,269,273],{"title":210,"path":211,"stem":212},"astro","\u002Fapi\u002Fpackages\u002Fastro","api\u002Fpackages\u002Fastro",{"title":214,"path":215,"stem":216},"cli","\u002Fapi\u002Fpackages\u002Fcli","api\u002Fpackages\u002Fcli",{"title":218,"path":219,"stem":220},"core","\u002Fapi\u002Fpackages\u002Fcore","api\u002Fpackages\u002Fcore",{"title":222,"path":223,"stem":224},"devtools-ui","\u002Fapi\u002Fpackages\u002Fdevtools-ui","api\u002Fpackages\u002Fdevtools-ui",{"title":226,"path":227,"stem":228},"node","\u002Fapi\u002Fpackages\u002Fnode","api\u002Fpackages\u002Fnode",{"title":230,"path":231,"stem":232},"path-strategy","\u002Fapi\u002Fpackages\u002Fpath-strategy","api\u002Fpackages\u002Fpath-strategy",{"title":234,"path":235,"stem":236},"preact","\u002Fapi\u002Fpackages\u002Fpreact","api\u002Fpackages\u002Fpreact",{"title":238,"path":239,"stem":240},"react","\u002Fapi\u002Fpackages\u002Freact","api\u002Fpackages\u002Freact",{"title":242,"path":243,"stem":244},"route-strategy","\u002Fapi\u002Fpackages\u002Froute-strategy","api\u002Fpackages\u002Froute-strategy",{"title":246,"path":247,"stem":248},"runtime","\u002Fapi\u002Fpackages\u002Fruntime","api\u002Fpackages\u002Fruntime",{"title":250,"path":251,"stem":252},"solid","\u002Fapi\u002Fpackages\u002Fsolid","api\u002Fpackages\u002Fsolid",{"title":254,"path":255,"stem":256},"test-utils","\u002Fapi\u002Fpackages\u002Ftest-utils","api\u002Fpackages\u002Ftest-utils",{"title":258,"path":259,"stem":260},"types","\u002Fapi\u002Fpackages\u002Ftypes","api\u002Fpackages\u002Ftypes",{"title":262,"path":263,"stem":264},"types-generator","\u002Fapi\u002Fpackages\u002Ftypes-generator","api\u002Fpackages\u002Ftypes-generator",{"title":266,"path":267,"stem":268},"utils","\u002Fapi\u002Fpackages\u002Futils","api\u002Fpackages\u002Futils",{"title":270,"path":271,"stem":272},"vitepress","\u002Fapi\u002Fpackages\u002Fvitepress","api\u002Fpackages\u002Fvitepress",{"title":274,"path":275,"stem":276},"vue","\u002Fapi\u002Fpackages\u002Fvue","api\u002Fpackages\u002Fvue",{"title":278,"order":28,"path":279,"stem":280,"children":281,"page":129},"Composables","\u002Fcomposables","composables",[282,286,290,294],{"title":283,"path":284,"stem":285,"order":6},"useI18n","\u002Fcomposables\u002FuseI18n","composables\u002FuseI18n",{"title":287,"path":288,"stem":289,"order":18},"useI18nLocale","\u002Fcomposables\u002FuseI18nLocale","composables\u002FuseI18nLocale",{"title":291,"path":292,"stem":293,"order":23},"useI18nHead","\u002Fcomposables\u002FuseI18nHead","composables\u002FuseI18nHead",{"title":295,"path":296,"stem":297,"order":28},"useLocaleHead","\u002Fcomposables\u002FuseLocaleHead","composables\u002FuseLocaleHead",{"title":299,"order":33,"path":300,"stem":301,"children":302,"page":129},"Components","\u002Fcomponents","components",[303,307,311,315],{"title":304,"path":305,"stem":306,"order":6},"\u003Ci18n-t>","\u002Fcomponents\u002Fi18n-t","components\u002Fi18n-t",{"title":308,"path":309,"stem":310,"order":18},"\u003Ci18n-link>","\u002Fcomponents\u002Fi18n-link","components\u002Fi18n-link",{"title":312,"path":313,"stem":314,"order":23},"\u003Ci18n-switcher>","\u002Fcomponents\u002Fi18n-switcher","components\u002Fi18n-switcher",{"title":316,"path":317,"stem":318,"order":28},"\u003Ci18n-group>","\u002Fcomponents\u002Fi18n-group","components\u002Fi18n-group",{"title":320,"order":39,"path":321,"stem":322,"children":323},"Contributing","\u002Fcontributing","contributing",[324,326,330,334,338,342],{"title":320,"path":321,"stem":325,"order":6},"contributing\u002Findex",{"title":327,"path":328,"stem":329,"order":18},"Architecture","\u002Fcontributing\u002Farchitecture","contributing\u002Farchitecture",{"title":331,"path":332,"stem":333,"order":23},"Testing the module","\u002Fcontributing\u002Ftesting","contributing\u002Ftesting",{"title":335,"path":336,"stem":337,"order":28},"Maintenance commands","\u002Fcontributing\u002Fmaintenance-commands","contributing\u002Fmaintenance-commands",{"title":339,"path":340,"stem":341,"order":33},"Release smoke checks","\u002Fcontributing\u002Frelease-smoke","contributing\u002Frelease-smoke",{"title":343,"path":344,"stem":345,"order":39},"Benchmark methodology","\u002Fcontributing\u002Fperformance-methodology","contributing\u002Fperformance-methodology",{"title":347,"path":348,"stem":349,"children":350,"order":44},"News","\u002Fnews","news\u002Findex",[351,354,359,363,367,371,375,379,383,387,391,395,399,403,407],{"title":352,"path":348,"stem":349,"order":353},"News & Releases",1,{"title":355,"path":356,"stem":357,"order":358},"v4.1.0","\u002Fnews\u002Fv4.1.0","news\u002Fv4.1.0",9,{"title":360,"path":361,"stem":362,"order":6},"v4.0.0","\u002Fnews\u002Fv4.0.0","news\u002Fv4.0.0",{"title":364,"path":365,"stem":366,"order":18},"v3.24.0","\u002Fnews\u002Fv3.24.0","news\u002Fv3.24.0",{"title":368,"path":369,"stem":370,"order":23},"v3.22.0","\u002Fnews\u002Fv3.22.0","news\u002Fv3.22.0",{"title":372,"path":373,"stem":374,"order":28},"v3.21.0","\u002Fnews\u002Fv3.21.0","news\u002Fv3.21.0",{"title":376,"path":377,"stem":378,"order":33},"v3.20.0","\u002Fnews\u002Fv3.20.0","news\u002Fv3.20.0",{"title":380,"path":381,"stem":382,"order":39},"v3.19.0","\u002Fnews\u002Fv3.19.0","news\u002Fv3.19.0",{"title":384,"path":385,"stem":386,"order":44},"v3.0.0","\u002Fnews\u002Fv3.0.0","news\u002Fv3.0.0",{"title":388,"path":389,"stem":390,"order":49},"v2.14.1","\u002Fnews\u002Fv2.14.1","news\u002Fv2.14.1",{"title":392,"path":393,"stem":394,"order":54},"v2.0.0","\u002Fnews\u002Fv2.0.0","news\u002Fv2.0.0",{"title":396,"path":397,"stem":398,"order":60},"v1.73.0","\u002Fnews\u002Fv1.73.0","news\u002Fv1.73.0",{"title":400,"path":401,"stem":402,"order":65},"v1.65.0","\u002Fnews\u002Fv1.65.0","news\u002Fv1.65.0",{"title":404,"path":405,"stem":406,"order":70},"v1.58.0","\u002Fnews\u002Fv1.58.0","news\u002Fv1.58.0",{"title":408,"path":409,"stem":410,"order":75},"v1.1.0","\u002Fnews\u002Fv1.1.0","news\u002Fv1.1.0",[412],{"title":413,"path":414,"stem":415,"children":416},"V3","\u002Fv3","v3",[417,420,557,603,696,717,734],{"title":136,"path":414,"stem":418,"order":419},"v3\u002Findex",0,{"title":5,"order":6,"path":421,"stem":422,"children":423,"page":129},"\u002Fv3\u002Fguide","v3\u002Fguide",[424,429,433,437,441,446,450,454,458,462,466,470,474,478,483,487,492,496,500,504,508,512,516,519,523,527,532,538,543,547,552],{"title":425,"path":426,"stem":427,"order":6,"group":428},"Getting Started","\u002Fv3\u002Fguide\u002Fgetting-started","v3\u002Fguide\u002Fgetting-started","Basics",{"title":430,"path":431,"stem":432,"order":18,"group":428},"Configuration","\u002Fv3\u002Fguide\u002Fconfiguration","v3\u002Fguide\u002Fconfiguration",{"title":434,"path":435,"stem":436,"order":23,"group":428},"Folder Structure","\u002Fv3\u002Fguide\u002Ffolder-structure","v3\u002Fguide\u002Ffolder-structure",{"title":438,"path":439,"stem":440,"order":28,"group":428},"Routing Strategy","\u002Fv3\u002Fguide\u002Fstrategy","v3\u002Fguide\u002Fstrategy",{"title":442,"path":443,"stem":444,"order":33,"group":445},"Translating Content","\u002Fv3\u002Fguide\u002Fusing","v3\u002Fguide\u002Fusing","Usage",{"title":447,"path":448,"stem":449,"order":39,"group":445},"Per Component Translations","\u002Fv3\u002Fguide\u002Fper-component-translations","v3\u002Fguide\u002Fper-component-translations",{"title":451,"path":452,"stem":453,"order":44,"group":445},"Custom Localized Routes","\u002Fv3\u002Fguide\u002Fcustom-locale-routes","v3\u002Fguide\u002Fcustom-locale-routes",{"title":455,"path":456,"stem":457,"order":49,"group":445},"Custom Auto Detect","\u002Fv3\u002Fguide\u002Fcustom-auto-detect","v3\u002Fguide\u002Fcustom-auto-detect",{"title":459,"path":460,"stem":461,"order":54,"group":445},"Runtime Overrides","\u002Fv3\u002Fguide\u002Fruntime-overrides","v3\u002Fguide\u002Fruntime-overrides",{"title":463,"path":464,"stem":465,"order":60,"group":445},"Layers","\u002Fv3\u002Fguide\u002Flayers","v3\u002Fguide\u002Flayers",{"title":77,"path":467,"stem":468,"order":65,"group":469},"\u002Fv3\u002Fguide\u002Fseo","v3\u002Fguide\u002Fseo","SEO & URLs",{"title":471,"path":472,"stem":473,"order":70,"group":469},"Multi Domain Locales","\u002Fv3\u002Fguide\u002Fmulti-domain-locales","v3\u002Fguide\u002Fmulti-domain-locales",{"title":475,"path":476,"stem":477,"order":75,"group":469},"Excluding Static Files","\u002Fv3\u002Fguide\u002Fexcluding-static-files","v3\u002Fguide\u002Fexcluding-static-files",{"title":479,"path":480,"stem":481,"order":80,"group":482},"Performance","\u002Fv3\u002Fguide\u002Fperformance","v3\u002Fguide\u002Fperformance","Performance & Deployment",{"title":484,"path":485,"stem":486,"order":86,"group":482},"Benchmark Results","\u002Fv3\u002Fguide\u002Fperformance-results","v3\u002Fguide\u002Fperformance-results",{"title":488,"path":489,"stem":490,"order":491,"group":482},"Performance methodology","\u002Fv3\u002Fguide\u002Fperformance-methodology","v3\u002Fguide\u002Fperformance-methodology",155,{"title":493,"path":494,"stem":495,"order":91,"group":482},"Server Side Translations","\u002Fv3\u002Fguide\u002Fserver-side-translations","v3\u002Fguide\u002Fserver-side-translations",{"title":497,"path":498,"stem":499,"order":97,"group":482},"Firebase Deployment","\u002Fv3\u002Fguide\u002Ffirebase","v3\u002Fguide\u002Ffirebase",{"title":501,"path":502,"stem":503,"order":102,"group":482},"Release Smoke Checks","\u002Fv3\u002Fguide\u002Frelease-smoke","v3\u002Fguide\u002Frelease-smoke",{"title":505,"path":506,"stem":507,"order":107,"group":482},"Preset local testing","\u002Fv3\u002Fguide\u002Fpreset-local-testing","v3\u002Fguide\u002Fpreset-local-testing",{"title":509,"path":510,"stem":511,"order":113,"group":482},"Maintenance Commands","\u002Fv3\u002Fguide\u002Fmaintenance-commands","v3\u002Fguide\u002Fmaintenance-commands",{"title":513,"path":514,"stem":515,"order":118,"group":108},"CLI Tool","\u002Fv3\u002Fguide\u002Fcli","v3\u002Fguide\u002Fcli",{"title":104,"path":517,"stem":518,"order":123,"group":108},"\u002Fv3\u002Fguide\u002Fdevtools","v3\u002Fguide\u002Fdevtools",{"title":520,"path":521,"stem":522,"order":128,"group":108},"Testing Your App","\u002Fv3\u002Fguide\u002Ftesting","v3\u002Fguide\u002Ftesting",{"title":120,"path":524,"stem":525,"order":526,"group":108},"\u002Fv3\u002Fguide\u002Fstorybook","v3\u002Fguide\u002Fstorybook",240,{"title":528,"path":529,"stem":530,"order":531,"group":108},"Crowdin Integration","\u002Fv3\u002Fguide\u002Fcrowdin","v3\u002Fguide\u002Fcrowdin",250,{"title":533,"path":534,"stem":535,"order":536,"group":537},"Migration from nuxt-i18n","\u002Fv3\u002Fguide\u002Fmigration","v3\u002Fguide\u002Fmigration",260,"Migration & Help",{"title":539,"path":540,"stem":541,"order":542,"group":537},"Upgrade to v3","\u002Fv3\u002Fguide\u002Fv3-upgrade","v3\u002Fguide\u002Fv3-upgrade",270,{"title":25,"path":544,"stem":545,"order":546,"group":537},"\u002Fv3\u002Fguide\u002Ffaq","v3\u002Fguide\u002Ffaq",280,{"title":548,"path":549,"stem":550,"order":551,"group":537},"Contribution","\u002Fv3\u002Fguide\u002Fcontribution","v3\u002Fguide\u002Fcontribution",290,{"title":553,"path":554,"stem":555,"order":556,"group":537},"Testing the Module","\u002Fv3\u002Fguide\u002Ftesting-strategies","v3\u002Fguide\u002Ftesting-strategies",300,{"title":558,"order":18,"path":559,"stem":560,"children":561},"Integrations","\u002Fv3\u002Fintegrations","v3\u002Fintegrations\u002Findex",[562,563,567,571,575,579,583,587,591,595,599],{"title":136,"path":559,"stem":560,"order":6},{"title":564,"path":565,"stem":566,"order":18},"Vue Package","\u002Fv3\u002Fintegrations\u002Fvue-package","v3\u002Fintegrations\u002Fvue-package",{"title":568,"path":569,"stem":570,"order":23},"React Package","\u002Fv3\u002Fintegrations\u002Freact-package","v3\u002Fintegrations\u002Freact-package",{"title":572,"path":573,"stem":574,"order":28},"Preact Package","\u002Fv3\u002Fintegrations\u002Fpreact-package","v3\u002Fintegrations\u002Fpreact-package",{"title":576,"path":577,"stem":578,"order":33},"Solid Package","\u002Fv3\u002Fintegrations\u002Fsolid-package","v3\u002Fintegrations\u002Fsolid-package",{"title":580,"path":581,"stem":582,"order":39},"Astro Package","\u002Fv3\u002Fintegrations\u002Fastro-package","v3\u002Fintegrations\u002Fastro-package",{"title":584,"path":585,"stem":586,"order":44},"VitePress Package","\u002Fv3\u002Fintegrations\u002Fvitepress-package","v3\u002Fintegrations\u002Fvitepress-package",{"title":588,"path":589,"stem":590,"order":49},"Runtime Package","\u002Fv3\u002Fintegrations\u002Fruntime-package","v3\u002Fintegrations\u002Fruntime-package",{"title":592,"path":593,"stem":594,"order":54},"Node.js Package","\u002Fv3\u002Fintegrations\u002Fnodejs-package","v3\u002Fintegrations\u002Fnodejs-package",{"title":596,"path":597,"stem":598,"order":60},"Types Generator","\u002Fv3\u002Fintegrations\u002Ftypes-generator","v3\u002Fintegrations\u002Ftypes-generator",{"title":600,"path":601,"stem":602,"order":65},"Devtools Package","\u002Fv3\u002Fintegrations\u002Fdevtools-ui-package","v3\u002Fintegrations\u002Fdevtools-ui-package",{"title":181,"order":23,"path":604,"stem":605,"children":606},"\u002Fv3\u002Fapi","v3\u002Fapi\u002Findex",[607,608,612,616,620,624],{"title":136,"path":604,"stem":605,"order":6},{"title":609,"path":610,"stem":611,"order":18},"Methods","\u002Fv3\u002Fapi\u002Fmethods","v3\u002Fapi\u002Fmethods",{"title":613,"path":614,"stem":615,"order":23},"Events","\u002Fv3\u002Fapi\u002Fevents","v3\u002Fapi\u002Fevents",{"title":617,"path":618,"stem":619,"order":28},"Translations and Cache","\u002Fv3\u002Fapi\u002Fi18n-cache-api","v3\u002Fapi\u002Fi18n-cache-api",{"title":621,"path":622,"stem":623,"order":33},"Module Options","\u002Fv3\u002Fapi\u002Fmodule-options","v3\u002Fapi\u002Fmodule-options",{"title":205,"path":625,"stem":626,"children":627,"order":39},"\u002Fv3\u002Fapi\u002Fpackages","v3\u002Fapi\u002Fpackages",[628,632,636,640,644,648,652,656,660,664,668,672,676,680,684,688,692],{"title":629,"path":630,"stem":631},"@i18n-micro\u002Fastro","\u002Fv3\u002Fapi\u002Fpackages\u002Fastro","v3\u002Fapi\u002Fpackages\u002Fastro",{"title":633,"path":634,"stem":635},"@i18n-micro\u002Fcore","\u002Fv3\u002Fapi\u002Fpackages\u002Fcore","v3\u002Fapi\u002Fpackages\u002Fcore",{"title":637,"path":638,"stem":639},"@i18n-micro\u002Fdevtools-ui","\u002Fv3\u002Fapi\u002Fpackages\u002Fdevtools-ui","v3\u002Fapi\u002Fpackages\u002Fdevtools-ui",{"title":641,"path":642,"stem":643},"@i18n-micro\u002Fhmr","\u002Fv3\u002Fapi\u002Fpackages\u002Fhmr","v3\u002Fapi\u002Fpackages\u002Fhmr",{"title":645,"path":646,"stem":647},"@i18n-micro\u002Fnode","\u002Fv3\u002Fapi\u002Fpackages\u002Fnode","v3\u002Fapi\u002Fpackages\u002Fnode",{"title":649,"path":650,"stem":651},"@i18n-micro\u002Fpath-strategy","\u002Fv3\u002Fapi\u002Fpackages\u002Fpath-strategy","v3\u002Fapi\u002Fpackages\u002Fpath-strategy",{"title":653,"path":654,"stem":655},"@i18n-micro\u002Fpreact","\u002Fv3\u002Fapi\u002Fpackages\u002Fpreact","v3\u002Fapi\u002Fpackages\u002Fpreact",{"title":657,"path":658,"stem":659},"@i18n-micro\u002Freact","\u002Fv3\u002Fapi\u002Fpackages\u002Freact","v3\u002Fapi\u002Fpackages\u002Freact",{"title":661,"path":662,"stem":663},"@i18n-micro\u002Froute-strategy","\u002Fv3\u002Fapi\u002Fpackages\u002Froute-strategy","v3\u002Fapi\u002Fpackages\u002Froute-strategy",{"title":665,"path":666,"stem":667},"@i18n-micro\u002Fruntime","\u002Fv3\u002Fapi\u002Fpackages\u002Fruntime","v3\u002Fapi\u002Fpackages\u002Fruntime",{"title":669,"path":670,"stem":671},"@i18n-micro\u002Fsolid","\u002Fv3\u002Fapi\u002Fpackages\u002Fsolid","v3\u002Fapi\u002Fpackages\u002Fsolid",{"title":673,"path":674,"stem":675},"@i18n-micro\u002Ftest-utils","\u002Fv3\u002Fapi\u002Fpackages\u002Ftest-utils","v3\u002Fapi\u002Fpackages\u002Ftest-utils",{"title":677,"path":678,"stem":679},"@i18n-micro\u002Ftypes","\u002Fv3\u002Fapi\u002Fpackages\u002Ftypes","v3\u002Fapi\u002Fpackages\u002Ftypes",{"title":681,"path":682,"stem":683},"@i18n-micro\u002Ftypes-generator","\u002Fv3\u002Fapi\u002Fpackages\u002Ftypes-generator","v3\u002Fapi\u002Fpackages\u002Ftypes-generator",{"title":685,"path":686,"stem":687},"@i18n-micro\u002Futils","\u002Fv3\u002Fapi\u002Fpackages\u002Futils","v3\u002Fapi\u002Fpackages\u002Futils",{"title":689,"path":690,"stem":691},"@i18n-micro\u002Fvitepress","\u002Fv3\u002Fapi\u002Fpackages\u002Fvitepress","v3\u002Fapi\u002Fpackages\u002Fvitepress",{"title":693,"path":694,"stem":695},"@i18n-micro\u002Fvue","\u002Fv3\u002Fapi\u002Fpackages\u002Fvue","v3\u002Fapi\u002Fpackages\u002Fvue",{"title":299,"order":28,"path":697,"stem":698,"children":699},"\u002Fv3\u002Fcomponents","v3\u002Fcomponents\u002Findex",[700,701,705,709,713],{"title":136,"path":697,"stem":698,"order":6},{"title":702,"path":703,"stem":704,"order":18},"i18n-t","\u002Fv3\u002Fcomponents\u002Fi18n-t","v3\u002Fcomponents\u002Fi18n-t",{"title":706,"path":707,"stem":708,"order":23},"i18n-switcher","\u002Fv3\u002Fcomponents\u002Fi18n-switcher","v3\u002Fcomponents\u002Fi18n-switcher",{"title":710,"path":711,"stem":712,"order":28},"i18n-link","\u002Fv3\u002Fcomponents\u002Fi18n-link","v3\u002Fcomponents\u002Fi18n-link",{"title":714,"path":715,"stem":716,"order":33},"i18n-group","\u002Fv3\u002Fcomponents\u002Fi18n-group","v3\u002Fcomponents\u002Fi18n-group",{"title":278,"path":718,"stem":719,"children":720,"order":33},"\u002Fv3\u002Fcomposables","v3\u002Fcomposables\u002Findex",[721,722,725,728,731],{"title":136,"path":718,"stem":719,"order":6},{"title":283,"path":723,"stem":724,"order":18},"\u002Fv3\u002Fcomposables\u002FuseI18n","v3\u002Fcomposables\u002FuseI18n",{"title":295,"path":726,"stem":727,"order":23},"\u002Fv3\u002Fcomposables\u002FuseLocaleHead","v3\u002Fcomposables\u002FuseLocaleHead",{"title":291,"path":729,"stem":730,"order":28},"\u002Fv3\u002Fcomposables\u002FuseI18nHead","v3\u002Fcomposables\u002FuseI18nHead",{"title":287,"path":732,"stem":733,"order":33},"\u002Fv3\u002Fcomposables\u002FuseI18nLocale","v3\u002Fcomposables\u002FuseI18nLocale",{"title":735,"path":736,"stem":737,"order":39},"Examples","\u002Fv3\u002Fexamples","v3\u002Fexamples",{"id":739,"title":169,"body":740,"description":1882,"extension":1883,"lastUpdated":1884,"links":1885,"meta":1886,"navigation":1888,"path":170,"seo":1889,"stem":171,"__hash__":1890},"docs\u002Fintegrations\u002Fnodejs-package.md",{"type":741,"value":742,"toc":1874},"minimark",[743,747,759,764,827,841,845,864,1079,1103,1112,1185,1189,1200,1417,1431,1441,1447,1451,1479,1710,1724,1730,1732,1833,1843,1847,1870],[744,745,169],"h1",{"id":746},"nodejs",[748,749,750,753,754,758],"p",{},[751,752,645],"code",{}," is the ",[755,756,246],"a",{"href":757},".\u002Fruntime-package"," instance plus a loader that reads a translation folder from disk. Use it in an Express or Fastify server, a CLI, an email or PDF generator, or any script that needs the same JSON files as your Nuxt app. You load the files once and translate per request without sharing mutable state between requests.",[760,761,763],"h2",{"id":762},"install","Install",[765,766,767,794,811],"code-group",{},[768,769,775],"pre",{"className":770,"code":771,"filename":772,"language":773,"meta":774,"style":774},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pnpm add @i18n-micro\u002Fnode @i18n-micro\u002Futils\n","pnpm","bash","",[751,776,777],{"__ignoreMap":774},[778,779,781,784,788,791],"span",{"class":780,"line":353},"line",[778,782,772],{"class":783},"sBMFI",[778,785,787],{"class":786},"sfazB"," add",[778,789,790],{"class":786}," @i18n-micro\u002Fnode",[778,792,793],{"class":786}," @i18n-micro\u002Futils\n",[768,795,798],{"className":770,"code":796,"filename":797,"language":773,"meta":774,"style":774},"npm install @i18n-micro\u002Fnode @i18n-micro\u002Futils\n","npm",[751,799,800],{"__ignoreMap":774},[778,801,802,804,807,809],{"class":780,"line":353},[778,803,797],{"class":783},[778,805,806],{"class":786}," install",[778,808,790],{"class":786},[778,810,793],{"class":786},[768,812,815],{"className":770,"code":813,"filename":814,"language":773,"meta":774,"style":774},"yarn add @i18n-micro\u002Fnode @i18n-micro\u002Futils\n","yarn",[751,816,817],{"__ignoreMap":774},[778,818,819,821,823,825],{"class":780,"line":353},[778,820,814],{"class":783},[778,822,787],{"class":786},[778,824,790],{"class":786},[778,826,793],{"class":786},[748,828,829,830,833,834,836,837,840],{},"No peer dependencies; Node.js ",[751,831,832],{},">=20",". ",[751,835,685],{}," is only needed for the ",[751,838,839],{},"Accept-Language"," helper below.",[760,842,844],{"id":843},"setup","Setup",[748,846,847,848,851,852,855,856,859,860,863],{},"The loader reads the ",[755,849,850],{"href":31},"Nuxt folder layout",": ",[751,853,854],{},"locales\u002Fen.json"," is a root dictionary, ",[751,857,858],{},"locales\u002Fpages\u002Fblog\u002Fpost\u002Fen.json"," belongs to the route ",[751,861,862],{},"blog-post",".",[768,865,869],{"className":866,"code":867,"language":868,"meta":774,"style":774},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { createI18n } from '@i18n-micro\u002Fnode'\n\nconst i18n = createI18n({ locale: 'en', fallbackLocale: 'en', translationDir: '.\u002Flocales' })\nawait i18n.loadTranslations()\n\ni18n.t('greeting', { name: 'Ada' }) \u002F\u002F 'Hello, Ada!'\ni18n.t('title', undefined, undefined, 'blog-post') \u002F\u002F from locales\u002Fpages\u002Fblog\u002Fpost\u002Fen.json\n","ts",[751,870,871,899,906,976,993,998,1043],{"__ignoreMap":774},[778,872,873,877,881,885,888,891,894,896],{"class":780,"line":353},[778,874,876],{"class":875},"s7zQu","import",[778,878,880],{"class":879},"sMK4o"," {",[778,882,884],{"class":883},"sTEyZ"," createI18n",[778,886,887],{"class":879}," }",[778,889,890],{"class":875}," from",[778,892,893],{"class":879}," '",[778,895,645],{"class":786},[778,897,898],{"class":879},"'\n",[778,900,902],{"class":780,"line":901},2,[778,903,905],{"emptyLinePlaceholder":904},true,"\n",[778,907,909,913,916,919,922,925,928,932,935,937,940,943,946,949,951,953,955,957,959,962,964,966,969,971,973],{"class":780,"line":908},3,[778,910,912],{"class":911},"spNyl","const",[778,914,915],{"class":883}," i18n ",[778,917,918],{"class":879},"=",[778,920,884],{"class":921},"s2Zo4",[778,923,924],{"class":883},"(",[778,926,927],{"class":879},"{",[778,929,931],{"class":930},"swJcz"," locale",[778,933,934],{"class":879},":",[778,936,893],{"class":879},[778,938,939],{"class":786},"en",[778,941,942],{"class":879},"'",[778,944,945],{"class":879},",",[778,947,948],{"class":930}," fallbackLocale",[778,950,934],{"class":879},[778,952,893],{"class":879},[778,954,939],{"class":786},[778,956,942],{"class":879},[778,958,945],{"class":879},[778,960,961],{"class":930}," translationDir",[778,963,934],{"class":879},[778,965,893],{"class":879},[778,967,968],{"class":786},".\u002Flocales",[778,970,942],{"class":879},[778,972,887],{"class":879},[778,974,975],{"class":883},")\n",[778,977,979,982,985,987,990],{"class":780,"line":978},4,[778,980,981],{"class":875},"await",[778,983,984],{"class":883}," i18n",[778,986,863],{"class":879},[778,988,989],{"class":921},"loadTranslations",[778,991,992],{"class":883},"()\n",[778,994,996],{"class":780,"line":995},5,[778,997,905],{"emptyLinePlaceholder":904},[778,999,1001,1004,1006,1009,1011,1013,1016,1018,1020,1022,1025,1027,1029,1032,1034,1036,1039],{"class":780,"line":1000},6,[778,1002,1003],{"class":883},"i18n",[778,1005,863],{"class":879},[778,1007,1008],{"class":921},"t",[778,1010,924],{"class":883},[778,1012,942],{"class":879},[778,1014,1015],{"class":786},"greeting",[778,1017,942],{"class":879},[778,1019,945],{"class":879},[778,1021,880],{"class":879},[778,1023,1024],{"class":930}," name",[778,1026,934],{"class":879},[778,1028,893],{"class":879},[778,1030,1031],{"class":786},"Ada",[778,1033,942],{"class":879},[778,1035,887],{"class":879},[778,1037,1038],{"class":883},") ",[778,1040,1042],{"class":1041},"sHwdD","\u002F\u002F 'Hello, Ada!'\n",[778,1044,1046,1048,1050,1052,1054,1056,1059,1061,1063,1066,1068,1070,1072,1074,1076],{"class":780,"line":1045},7,[778,1047,1003],{"class":883},[778,1049,863],{"class":879},[778,1051,1008],{"class":921},[778,1053,924],{"class":883},[778,1055,942],{"class":879},[778,1057,1058],{"class":786},"title",[778,1060,942],{"class":879},[778,1062,945],{"class":879},[778,1064,1065],{"class":879}," undefined,",[778,1067,1065],{"class":879},[778,1069,893],{"class":879},[778,1071,862],{"class":786},[778,1073,942],{"class":879},[778,1075,1038],{"class":883},[778,1077,1078],{"class":1041},"\u002F\u002F from locales\u002Fpages\u002Fblog\u002Fpost\u002Fen.json\n",[748,1080,1081,1082,1086,1087,1090,1091,1094,1095,1098,1099,1102],{},"Options are the runtime ones (see ",[755,1083,1085],{"href":1084},".\u002F#the-instance","the instance",") plus ",[751,1088,1089],{},"translationDir"," and ",[751,1092,1093],{},"disablePageLocales"," (treat ",[751,1096,1097],{},"pages\u002F**"," files as root dictionaries). ",[751,1100,1101],{},"i18n.reload()"," clears every dictionary and reads the folder again, for a file watcher in development.",[748,1104,1105,1108,1109,934],{},[751,1106,1107],{},"loadTranslations(dir, disablePageLocales?)"," is also exported on its own and returns ",[751,1110,1111],{},"{ root, routes }",[768,1113,1115],{"className":866,"code":1114,"language":868,"meta":774,"style":774},"import { loadTranslations } from '@i18n-micro\u002Fnode'\n\nconst { root, routes } = await loadTranslations('.\u002Flocales')\n\u002F\u002F root:   { en: {...}, de: {...} }\n\u002F\u002F routes: { 'blog-post': { en: {...}, de: {...} } }\n",[751,1116,1117,1136,1140,1175,1180],{"__ignoreMap":774},[778,1118,1119,1121,1123,1126,1128,1130,1132,1134],{"class":780,"line":353},[778,1120,876],{"class":875},[778,1122,880],{"class":879},[778,1124,1125],{"class":883}," loadTranslations",[778,1127,887],{"class":879},[778,1129,890],{"class":875},[778,1131,893],{"class":879},[778,1133,645],{"class":786},[778,1135,898],{"class":879},[778,1137,1138],{"class":780,"line":901},[778,1139,905],{"emptyLinePlaceholder":904},[778,1141,1142,1144,1146,1149,1151,1154,1157,1160,1163,1165,1167,1169,1171,1173],{"class":780,"line":908},[778,1143,912],{"class":911},[778,1145,880],{"class":879},[778,1147,1148],{"class":883}," root",[778,1150,945],{"class":879},[778,1152,1153],{"class":883}," routes ",[778,1155,1156],{"class":879},"}",[778,1158,1159],{"class":879}," =",[778,1161,1162],{"class":875}," await",[778,1164,1125],{"class":921},[778,1166,924],{"class":883},[778,1168,942],{"class":879},[778,1170,968],{"class":786},[778,1172,942],{"class":879},[778,1174,975],{"class":883},[778,1176,1177],{"class":780,"line":978},[778,1178,1179],{"class":1041},"\u002F\u002F root:   { en: {...}, de: {...} }\n",[778,1181,1182],{"class":780,"line":995},[778,1183,1184],{"class":1041},"\u002F\u002F routes: { 'blog-post': { en: {...}, de: {...} } }\n",[760,1186,1188],{"id":1187},"per-request","Per request",[748,1190,1191,1192,1195,1196,1199],{},"An instance holds one locale and one route. Switching ",[751,1193,1194],{},"i18n.locale"," on a shared instance inside a request handler races with concurrent requests. ",[751,1197,1198],{},"run"," gives a request its own:",[768,1201,1203],{"className":866,"code":1202,"language":868,"meta":774,"style":774},"const i18n = createI18n({ locale: 'en', fallbackLocale: 'en', translationDir: '.\u002Flocales' })\nawait i18n.loadTranslations()\n\n\u002F\u002F `() => next()`: `run` hands its callback the fork, and Express reads an argument of `next` as an error\napp.use((req, res, next) => i18n.run(pickLocale(req), () => next()))\n\napp.get('\u002F', (req, res) => {\n  res.send(i18n.t('greeting')) \u002F\u002F the request's locale, in everything it awaits\n})\n",[751,1204,1205,1257,1269,1273,1278,1338,1342,1378,1411],{"__ignoreMap":774},[778,1206,1207,1209,1211,1213,1215,1217,1219,1221,1223,1225,1227,1229,1231,1233,1235,1237,1239,1241,1243,1245,1247,1249,1251,1253,1255],{"class":780,"line":353},[778,1208,912],{"class":911},[778,1210,915],{"class":883},[778,1212,918],{"class":879},[778,1214,884],{"class":921},[778,1216,924],{"class":883},[778,1218,927],{"class":879},[778,1220,931],{"class":930},[778,1222,934],{"class":879},[778,1224,893],{"class":879},[778,1226,939],{"class":786},[778,1228,942],{"class":879},[778,1230,945],{"class":879},[778,1232,948],{"class":930},[778,1234,934],{"class":879},[778,1236,893],{"class":879},[778,1238,939],{"class":786},[778,1240,942],{"class":879},[778,1242,945],{"class":879},[778,1244,961],{"class":930},[778,1246,934],{"class":879},[778,1248,893],{"class":879},[778,1250,968],{"class":786},[778,1252,942],{"class":879},[778,1254,887],{"class":879},[778,1256,975],{"class":883},[778,1258,1259,1261,1263,1265,1267],{"class":780,"line":901},[778,1260,981],{"class":875},[778,1262,984],{"class":883},[778,1264,863],{"class":879},[778,1266,989],{"class":921},[778,1268,992],{"class":883},[778,1270,1271],{"class":780,"line":908},[778,1272,905],{"emptyLinePlaceholder":904},[778,1274,1275],{"class":780,"line":978},[778,1276,1277],{"class":1041},"\u002F\u002F `() => next()`: `run` hands its callback the fork, and Express reads an argument of `next` as an error\n",[778,1279,1280,1283,1285,1288,1290,1292,1296,1298,1301,1303,1306,1309,1312,1314,1316,1318,1320,1323,1326,1328,1331,1333,1335],{"class":780,"line":995},[778,1281,1282],{"class":883},"app",[778,1284,863],{"class":879},[778,1286,1287],{"class":921},"use",[778,1289,924],{"class":883},[778,1291,924],{"class":879},[778,1293,1295],{"class":1294},"sHdIc","req",[778,1297,945],{"class":879},[778,1299,1300],{"class":1294}," res",[778,1302,945],{"class":879},[778,1304,1305],{"class":1294}," next",[778,1307,1308],{"class":879},")",[778,1310,1311],{"class":911}," =>",[778,1313,984],{"class":883},[778,1315,863],{"class":879},[778,1317,1198],{"class":921},[778,1319,924],{"class":883},[778,1321,1322],{"class":921},"pickLocale",[778,1324,1325],{"class":883},"(req)",[778,1327,945],{"class":879},[778,1329,1330],{"class":879}," ()",[778,1332,1311],{"class":911},[778,1334,1305],{"class":921},[778,1336,1337],{"class":883},"()))\n",[778,1339,1340],{"class":780,"line":1000},[778,1341,905],{"emptyLinePlaceholder":904},[778,1343,1344,1346,1348,1351,1353,1355,1358,1360,1362,1365,1367,1369,1371,1373,1375],{"class":780,"line":1045},[778,1345,1282],{"class":883},[778,1347,863],{"class":879},[778,1349,1350],{"class":921},"get",[778,1352,924],{"class":883},[778,1354,942],{"class":879},[778,1356,1357],{"class":786},"\u002F",[778,1359,942],{"class":879},[778,1361,945],{"class":879},[778,1363,1364],{"class":879}," (",[778,1366,1295],{"class":1294},[778,1368,945],{"class":879},[778,1370,1300],{"class":1294},[778,1372,1308],{"class":879},[778,1374,1311],{"class":911},[778,1376,1377],{"class":879}," {\n",[778,1379,1381,1384,1386,1389,1391,1393,1395,1397,1399,1401,1403,1405,1408],{"class":780,"line":1380},8,[778,1382,1383],{"class":883},"  res",[778,1385,863],{"class":879},[778,1387,1388],{"class":921},"send",[778,1390,924],{"class":930},[778,1392,1003],{"class":883},[778,1394,863],{"class":879},[778,1396,1008],{"class":921},[778,1398,924],{"class":930},[778,1400,942],{"class":879},[778,1402,1015],{"class":786},[778,1404,942],{"class":879},[778,1406,1407],{"class":930},")) ",[778,1409,1410],{"class":1041},"\u002F\u002F the request's locale, in everything it awaits\n",[778,1412,1413,1415],{"class":780,"line":358},[778,1414,1156],{"class":879},[778,1416,975],{"class":883},[748,1418,1419,1420,1422,1423,1426,1427,1430],{},"Inside ",[751,1421,1198],{}," the shared instance reads and sets the request's locale and route (",[751,1424,1425],{},"AsyncLocalStorage","); the fork starts on the current route, and ",[751,1428,1429],{},"i18n.setRoute(...)"," inside the callback changes that request's route. The callback also gets the request's fork: dictionaries written to it stay in the request, dictionaries written to the shared instance reach everyone.",[748,1432,1433,1434,1436,1437,1440],{},"Without ",[751,1435,1425],{},", ",[751,1438,1439],{},"i18n.fork(locale)"," returns the same kind of instance to pass around.",[748,1442,1443,1446],{},[751,1444,1445],{},"reload()"," reads the directory again; the old dictionaries answer until the new ones are in.",[760,1448,1450],{"id":1449},"pick-the-locale","Pick the locale",[748,1452,1453,1456,1457,1460,1461,1464,1465,1468,1469,1471,1472,1474,1475,1478],{},[751,1454,1455],{},"detectLocaleFromAcceptLanguage(header, locales)"," honours ",[751,1458,1459],{},"q"," weights and matches ",[751,1462,1463],{},"de-DE"," to a ",[751,1466,1467],{},"de"," locale (and ",[751,1470,1467],{}," to ",[751,1473,1463],{},"). It returns ",[751,1476,1477],{},"null"," when nothing matches.",[768,1480,1482],{"className":866,"code":1481,"language":868,"meta":774,"style":774},"import express from 'express'\nimport { detectLocaleFromAcceptLanguage } from '@i18n-micro\u002Futils\u002Faccept-language'\n\nconst app = express()\n\napp.get('\u002Fhello', (req, res) => {\n  const locale = detectLocaleFromAcceptLanguage(req.headers['accept-language'], locales) ?? 'en'\n  const i18n = byLocale.get(locale)!\n  res.json({ message: i18n.t('greeting', { name: 'Ada' }) })\n})\n",[751,1483,1484,1501,1521,1525,1539,1543,1576,1625,1650,1704],{"__ignoreMap":774},[778,1485,1486,1488,1491,1494,1496,1499],{"class":780,"line":353},[778,1487,876],{"class":875},[778,1489,1490],{"class":883}," express ",[778,1492,1493],{"class":875},"from",[778,1495,893],{"class":879},[778,1497,1498],{"class":786},"express",[778,1500,898],{"class":879},[778,1502,1503,1505,1507,1510,1512,1514,1516,1519],{"class":780,"line":901},[778,1504,876],{"class":875},[778,1506,880],{"class":879},[778,1508,1509],{"class":883}," detectLocaleFromAcceptLanguage",[778,1511,887],{"class":879},[778,1513,890],{"class":875},[778,1515,893],{"class":879},[778,1517,1518],{"class":786},"@i18n-micro\u002Futils\u002Faccept-language",[778,1520,898],{"class":879},[778,1522,1523],{"class":780,"line":908},[778,1524,905],{"emptyLinePlaceholder":904},[778,1526,1527,1529,1532,1534,1537],{"class":780,"line":978},[778,1528,912],{"class":911},[778,1530,1531],{"class":883}," app ",[778,1533,918],{"class":879},[778,1535,1536],{"class":921}," express",[778,1538,992],{"class":883},[778,1540,1541],{"class":780,"line":995},[778,1542,905],{"emptyLinePlaceholder":904},[778,1544,1545,1547,1549,1551,1553,1555,1558,1560,1562,1564,1566,1568,1570,1572,1574],{"class":780,"line":1000},[778,1546,1282],{"class":883},[778,1548,863],{"class":879},[778,1550,1350],{"class":921},[778,1552,924],{"class":883},[778,1554,942],{"class":879},[778,1556,1557],{"class":786},"\u002Fhello",[778,1559,942],{"class":879},[778,1561,945],{"class":879},[778,1563,1364],{"class":879},[778,1565,1295],{"class":1294},[778,1567,945],{"class":879},[778,1569,1300],{"class":1294},[778,1571,1308],{"class":879},[778,1573,1311],{"class":911},[778,1575,1377],{"class":879},[778,1577,1578,1581,1583,1585,1587,1589,1591,1593,1596,1599,1601,1604,1606,1609,1611,1614,1616,1619,1621,1623],{"class":780,"line":1045},[778,1579,1580],{"class":911},"  const",[778,1582,931],{"class":883},[778,1584,1159],{"class":879},[778,1586,1509],{"class":921},[778,1588,924],{"class":930},[778,1590,1295],{"class":883},[778,1592,863],{"class":879},[778,1594,1595],{"class":883},"headers",[778,1597,1598],{"class":930},"[",[778,1600,942],{"class":879},[778,1602,1603],{"class":786},"accept-language",[778,1605,942],{"class":879},[778,1607,1608],{"class":930},"]",[778,1610,945],{"class":879},[778,1612,1613],{"class":883}," locales",[778,1615,1038],{"class":930},[778,1617,1618],{"class":879},"??",[778,1620,893],{"class":879},[778,1622,939],{"class":786},[778,1624,898],{"class":879},[778,1626,1627,1629,1631,1633,1636,1638,1640,1642,1645,1647],{"class":780,"line":1380},[778,1628,1580],{"class":911},[778,1630,984],{"class":883},[778,1632,1159],{"class":879},[778,1634,1635],{"class":883}," byLocale",[778,1637,863],{"class":879},[778,1639,1350],{"class":921},[778,1641,924],{"class":930},[778,1643,1644],{"class":883},"locale",[778,1646,1308],{"class":930},[778,1648,1649],{"class":879},"!\n",[778,1651,1652,1654,1656,1659,1661,1663,1666,1668,1670,1672,1674,1676,1678,1680,1682,1684,1686,1688,1690,1692,1694,1696,1698,1700,1702],{"class":780,"line":358},[778,1653,1383],{"class":883},[778,1655,863],{"class":879},[778,1657,1658],{"class":921},"json",[778,1660,924],{"class":930},[778,1662,927],{"class":879},[778,1664,1665],{"class":930}," message",[778,1667,934],{"class":879},[778,1669,984],{"class":883},[778,1671,863],{"class":879},[778,1673,1008],{"class":921},[778,1675,924],{"class":930},[778,1677,942],{"class":879},[778,1679,1015],{"class":786},[778,1681,942],{"class":879},[778,1683,945],{"class":879},[778,1685,880],{"class":879},[778,1687,1024],{"class":930},[778,1689,934],{"class":879},[778,1691,893],{"class":879},[778,1693,1031],{"class":786},[778,1695,942],{"class":879},[778,1697,887],{"class":879},[778,1699,1038],{"class":930},[778,1701,1156],{"class":879},[778,1703,975],{"class":930},[778,1705,1706,1708],{"class":780,"line":6},[778,1707,1156],{"class":879},[778,1709,975],{"class":883},[748,1711,1712,1713,1716,1717,1720,1721,1723],{},"For URL prefix, cookie and header together, ",[751,1714,1715],{},"resolveLocale({ defaultLocale, validLocales, url, cookie, acceptLanguage, autoDetectLanguage: true })"," from ",[751,1718,1719],{},"@i18n-micro\u002Futils\u002Fresolve-locale"," applies the module's precedence: URL, then cookie, then ",[751,1722,839],{},", then the default. Invalid values are skipped.",[748,1725,1726,1727,863],{},"Inside a Nuxt app you do not need this package on the server: use the module's ",[755,1728,1729],{"href":47},"server-side translations",[760,1731,181],{"id":183},[1733,1734,1735,1748],"table",{},[1736,1737,1738],"thead",{},[1739,1740,1741,1745],"tr",{},[1742,1743,1744],"th",{},"Export",[1742,1746,1747],{},"Notes",[1749,1750,1751,1772,1782,1795,1808],"tbody",{},[1739,1752,1753,1762],{},[1754,1755,1756,1436,1759],"td",{},[751,1757,1758],{},"createI18n(options)",[751,1760,1761],{},"I18n",[1754,1763,1764,1765,1436,1767,1436,1770],{},"runtime instance + ",[751,1766,1089],{},[751,1768,1769],{},"loadTranslations(dir?)",[751,1771,1445],{},[1739,1773,1774,1778],{},[1754,1775,1776],{},[751,1777,1107],{},[1754,1779,1780],{},[751,1781,1111],{},[1739,1783,1784,1789],{},[1754,1785,1786],{},[751,1787,1788],{},"loadRootTranslations(dir, disablePageLocales?)",[1754,1790,1791,1794],{},[751,1792,1793],{},"root"," only",[1739,1796,1797,1805],{},[1754,1798,1799,1436,1802],{},[751,1800,1801],{},"FormatService",[751,1803,1804],{},"interpolate",[1754,1806,1807],{},"from core",[1739,1809,1810,1831],{},[1754,1811,1812,1813,1436,1816,1436,1819,1436,1822,1436,1825,1436,1828],{},"Types: ",[751,1814,1815],{},"I18nOptions",[751,1817,1818],{},"LoadedTranslations",[751,1820,1821],{},"Translations",[751,1823,1824],{},"Locale",[751,1826,1827],{},"PluralFunc",[751,1829,1830],{},"Params",[1754,1832],{},[748,1834,1835,1836,1839,1840,863],{},"Instance methods are listed on ",[755,1837,164],{"href":1838},".\u002Fruntime-package#api",". Full signatures: ",[755,1841,1842],{"href":227},"package reference",[760,1844,1846],{"id":1845},"related","Related",[1848,1849,1850,1860,1865],"card-group",{},[1851,1852,1854],"card",{"icon":1853,"title":164,"to":757},"i-lucide-book-open",[748,1855,1856,1857],{},"The instance without ",[751,1858,1859],{},"fs",[1851,1861,1862],{"icon":1853,"title":1821,"to":31},[748,1863,1864],{},"Folder layout",[1851,1866,1867],{"icon":1853,"title":57,"to":58},[748,1868,1869],{},"The precedence in the Nuxt module",[1871,1872,1873],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}",{"title":774,"searchDepth":901,"depth":901,"links":1875},[1876,1877,1878,1879,1880,1881],{"id":762,"depth":901,"text":763},{"id":843,"depth":901,"text":844},{"id":1187,"depth":901,"text":1188},{"id":1449,"depth":901,"text":1450},{"id":183,"depth":901,"text":181},{"id":1845,"depth":901,"text":1846},"Load translation files from disk and translate in Node.js servers, scripts and CLIs with @i18n-micro\u002Fnode.","md","2026-11-04T00:40:16+04:00",null,{"outline":1887},"deep",{"order":54,"group":167},{"title":169,"description":1882},"169WKvzsJBAwM6B3sPBEToiRjgUw1kq441QU9tnOcns",[1892,1894],{"title":164,"path":165,"description":1893},"Framework-agnostic createI18n for browsers, workers and edge runtimes with @i18n-micro\u002Fruntime.",{"title":173,"path":174,"description":1895},"Generate TypeScript autocomplete for translation keys from your JSON files, in Nuxt or any Vite project.",1794131139448]