[{"data":1,"prerenderedAt":1916},["ShallowReactive",2],{"navigation":3,"v3-navigation":411,"\u002Fguide\u002Fserver-side-translations":738,"\u002Fguide\u002Fserver-side-translations-surround":1911},[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":46,"body":740,"description":1902,"extension":1903,"lastUpdated":1904,"links":1905,"meta":1906,"navigation":1908,"path":47,"seo":1909,"stem":48,"__hash__":1910},"docs\u002Fguide\u002Fserver-side-translations.md",{"type":741,"value":742,"toc":1894},"minimark",[743,747,760,765,910,936,958,981,1150,1171,1217,1221,1329,1335,1446,1450,1456,1510,1518,1522,1525,1644,1650,1654,1674,1770,1861,1872,1876,1890],[744,745,46],"h1",{"id":746},"server-routes-and-api",[748,749,750,751,755,756,759],"p",{},"Server handlers in ",[752,753,754],"code",{},"server\u002Fapi\u002F"," and ",[752,757,758],{},"server\u002Froutes\u002F"," can translate strings and read the request's locale with two auto-imported helpers. Use them for API responses, emails, feeds or anything rendered outside a Vue page. They read the same translation files as your pages and detect the locale from the request.",[761,762,764],"h2",{"id":763},"translate-in-a-handler","Translate in a handler",[766,767,772],"pre",{"className":768,"code":769,"language":770,"meta":771,"style":771},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F server\u002Fapi\u002Fgreeting.get.ts\nexport default defineEventHandler(async (event) => {\n  const t = await useTranslationServerMiddleware(event)\n  return { message: t('greeting', { name: 'Ada' }) }\n})\n","ts","",[752,773,774,782,821,847,902],{"__ignoreMap":771},[775,776,778],"span",{"class":777,"line":353},"line",[775,779,781],{"class":780},"sHwdD","\u002F\u002F server\u002Fapi\u002Fgreeting.get.ts\n",[775,783,785,789,792,796,800,804,808,812,815,818],{"class":777,"line":784},2,[775,786,788],{"class":787},"s7zQu","export",[775,790,791],{"class":787}," default",[775,793,795],{"class":794},"s2Zo4"," defineEventHandler",[775,797,799],{"class":798},"sTEyZ","(",[775,801,803],{"class":802},"spNyl","async",[775,805,807],{"class":806},"sMK4o"," (",[775,809,811],{"class":810},"sHdIc","event",[775,813,814],{"class":806},")",[775,816,817],{"class":802}," =>",[775,819,820],{"class":806}," {\n",[775,822,824,827,830,833,836,839,842,844],{"class":777,"line":823},3,[775,825,826],{"class":802},"  const",[775,828,829],{"class":798}," t",[775,831,832],{"class":806}," =",[775,834,835],{"class":787}," await",[775,837,838],{"class":794}," useTranslationServerMiddleware",[775,840,799],{"class":841},"swJcz",[775,843,811],{"class":798},[775,845,846],{"class":841},")\n",[775,848,850,853,856,859,862,864,866,869,873,875,878,880,883,885,888,891,893,896,899],{"class":777,"line":849},4,[775,851,852],{"class":787},"  return",[775,854,855],{"class":806}," {",[775,857,858],{"class":841}," message",[775,860,861],{"class":806},":",[775,863,829],{"class":794},[775,865,799],{"class":841},[775,867,868],{"class":806},"'",[775,870,872],{"class":871},"sfazB","greeting",[775,874,868],{"class":806},[775,876,877],{"class":806},",",[775,879,855],{"class":806},[775,881,882],{"class":841}," name",[775,884,861],{"class":806},[775,886,887],{"class":806}," '",[775,889,890],{"class":871},"Ada",[775,892,868],{"class":806},[775,894,895],{"class":806}," }",[775,897,898],{"class":841},") ",[775,900,901],{"class":806},"}\n",[775,903,905,908],{"class":777,"line":904},5,[775,906,907],{"class":806},"}",[775,909,846],{"class":798},[766,911,915],{"className":912,"code":913,"language":914,"meta":771,"style":771},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","curl 'http:\u002F\u002Flocalhost:3000\u002Fapi\u002Fgreeting?locale=de'\n# {\"message\":\"Hallo, Ada!\"}\n","bash",[752,916,917,931],{"__ignoreMap":771},[775,918,919,923,925,928],{"class":777,"line":353},[775,920,922],{"class":921},"sBMFI","curl",[775,924,887],{"class":806},[775,926,927],{"class":871},"http:\u002F\u002Flocalhost:3000\u002Fapi\u002Fgreeting?locale=de",[775,929,930],{"class":806},"'\n",[775,932,933],{"class":777,"line":784},[775,934,935],{"class":780},"# {\"message\":\"Hallo, Ada!\"}\n",[748,937,938,941,942,945,946,949,950,953,954,957],{},[752,939,940],{},"useTranslationServerMiddleware(event, defaultLocale?, locale?)"," is async and returns ",[752,943,944],{},"t(key, params?, defaultValue?)",". ",[752,947,948],{},"t"," returns the string, interpolates ",[752,951,952],{},"{name}"," params, and returns a non-empty ",[752,955,956],{},"defaultValue",", otherwise the key, when the key is missing.",[748,959,960,962,963,966,967,966,970,966,973,976,977,980],{},[752,961,948],{}," also carries the page's plural, format and lookup helpers, with the same rules (the build's ",[752,964,965],{},"plural",", ",[752,968,969],{},"numberFormats",[752,971,972],{},"datetimeFormats",[752,974,975],{},"timeZone",", each locale's ",[752,978,979],{},"iso","):",[766,982,984],{"className":768,"code":983,"language":770,"meta":771,"style":771},"const t = await useTranslationServerMiddleware(event)\nt.tc('apples', 5) \u002F\u002F '5 apples', as $tc\nt.tn(1234.5, 'currency') \u002F\u002F a named number format, as $tn\nt.td(new Date(), 'short') \u002F\u002F a named date format, as $td\nt.tdr(Date.now() - 86_400_000) \u002F\u002F '1 day ago', as $tdr\nt.has('apples') \u002F\u002F true when the locale defines the key, as $has\n",[752,985,986,1004,1034,1062,1096,1127],{"__ignoreMap":771},[775,987,988,991,994,997,999,1001],{"class":777,"line":353},[775,989,990],{"class":802},"const",[775,992,993],{"class":798}," t ",[775,995,996],{"class":806},"=",[775,998,835],{"class":787},[775,1000,838],{"class":794},[775,1002,1003],{"class":798},"(event)\n",[775,1005,1006,1008,1011,1014,1016,1018,1021,1023,1025,1029,1031],{"class":777,"line":784},[775,1007,948],{"class":798},[775,1009,1010],{"class":806},".",[775,1012,1013],{"class":794},"tc",[775,1015,799],{"class":798},[775,1017,868],{"class":806},[775,1019,1020],{"class":871},"apples",[775,1022,868],{"class":806},[775,1024,877],{"class":806},[775,1026,1028],{"class":1027},"sbssI"," 5",[775,1030,898],{"class":798},[775,1032,1033],{"class":780},"\u002F\u002F '5 apples', as $tc\n",[775,1035,1036,1038,1040,1043,1045,1048,1050,1052,1055,1057,1059],{"class":777,"line":823},[775,1037,948],{"class":798},[775,1039,1010],{"class":806},[775,1041,1042],{"class":794},"tn",[775,1044,799],{"class":798},[775,1046,1047],{"class":1027},"1234.5",[775,1049,877],{"class":806},[775,1051,887],{"class":806},[775,1053,1054],{"class":871},"currency",[775,1056,868],{"class":806},[775,1058,898],{"class":798},[775,1060,1061],{"class":780},"\u002F\u002F a named number format, as $tn\n",[775,1063,1064,1066,1068,1071,1073,1076,1079,1082,1084,1086,1089,1091,1093],{"class":777,"line":849},[775,1065,948],{"class":798},[775,1067,1010],{"class":806},[775,1069,1070],{"class":794},"td",[775,1072,799],{"class":798},[775,1074,1075],{"class":806},"new",[775,1077,1078],{"class":794}," Date",[775,1080,1081],{"class":798},"()",[775,1083,877],{"class":806},[775,1085,887],{"class":806},[775,1087,1088],{"class":871},"short",[775,1090,868],{"class":806},[775,1092,898],{"class":798},[775,1094,1095],{"class":780},"\u002F\u002F a named date format, as $td\n",[775,1097,1098,1100,1102,1105,1108,1110,1113,1116,1119,1122,1124],{"class":777,"line":904},[775,1099,948],{"class":798},[775,1101,1010],{"class":806},[775,1103,1104],{"class":794},"tdr",[775,1106,1107],{"class":798},"(Date",[775,1109,1010],{"class":806},[775,1111,1112],{"class":794},"now",[775,1114,1115],{"class":798},"() ",[775,1117,1118],{"class":806},"-",[775,1120,1121],{"class":1027}," 86_400_000",[775,1123,898],{"class":798},[775,1125,1126],{"class":780},"\u002F\u002F '1 day ago', as $tdr\n",[775,1128,1130,1132,1134,1137,1139,1141,1143,1145,1147],{"class":777,"line":1129},6,[775,1131,948],{"class":798},[775,1133,1010],{"class":806},[775,1135,1136],{"class":794},"has",[775,1138,799],{"class":798},[775,1140,868],{"class":806},[775,1142,1020],{"class":871},[775,1144,868],{"class":806},[775,1146,898],{"class":798},[775,1148,1149],{"class":780},"\u002F\u002F true when the locale defines the key, as $has\n",[748,1151,1152,1154,1155,1158,1159,1162,1163,1166,1167,1170],{},[752,1153,948],{}," sees the ",[752,1156,1157],{},"index"," chunk only: the root files (",[752,1160,1161],{},"locales\u002F\u003Clocale>.json",") plus ",[752,1164,1165],{},"locales\u002Fpages\u002Findex\u002F"," when it exists (root files only with ",[752,1168,1169],{},"disablePageLocales","). Keys of other pages are not loaded. For those, load the chunk yourself:",[766,1172,1174],{"className":768,"code":1173,"language":770,"meta":771,"style":771},"const { data } = await loadTranslationsFromServer('de', 'about') \u002F\u002F Translations object of the about page\n",[752,1175,1176],{"__ignoreMap":771},[775,1177,1178,1180,1182,1185,1187,1189,1191,1194,1196,1198,1201,1203,1205,1207,1210,1212,1214],{"class":777,"line":353},[775,1179,990],{"class":802},[775,1181,855],{"class":806},[775,1183,1184],{"class":798}," data ",[775,1186,907],{"class":806},[775,1188,832],{"class":806},[775,1190,835],{"class":787},[775,1192,1193],{"class":794}," loadTranslationsFromServer",[775,1195,799],{"class":798},[775,1197,868],{"class":806},[775,1199,1200],{"class":871},"de",[775,1202,868],{"class":806},[775,1204,877],{"class":806},[775,1206,887],{"class":806},[775,1208,1209],{"class":871},"about",[775,1211,868],{"class":806},[775,1213,898],{"class":798},[775,1215,1216],{"class":780},"\u002F\u002F Translations object of the about page\n",[761,1218,1220],{"id":1219},"read-the-request-locale","Read the request locale",[766,1222,1224],{"className":768,"code":1223,"language":770,"meta":771,"style":771},"\u002F\u002F server\u002Fapi\u002Flocale.get.ts\nexport default defineEventHandler((event) => {\n  const { current, isDefault, locale } = useLocaleServerMiddleware(event)\n  return { current, isDefault, dir: locale?.dir ?? 'ltr' }\n})\n",[752,1225,1226,1231,1251,1283,1323],{"__ignoreMap":771},[775,1227,1228],{"class":777,"line":353},[775,1229,1230],{"class":780},"\u002F\u002F server\u002Fapi\u002Flocale.get.ts\n",[775,1232,1233,1235,1237,1239,1241,1243,1245,1247,1249],{"class":777,"line":784},[775,1234,788],{"class":787},[775,1236,791],{"class":787},[775,1238,795],{"class":794},[775,1240,799],{"class":798},[775,1242,799],{"class":806},[775,1244,811],{"class":810},[775,1246,814],{"class":806},[775,1248,817],{"class":802},[775,1250,820],{"class":806},[775,1252,1253,1255,1257,1260,1262,1265,1267,1270,1272,1274,1277,1279,1281],{"class":777,"line":823},[775,1254,826],{"class":802},[775,1256,855],{"class":806},[775,1258,1259],{"class":798}," current",[775,1261,877],{"class":806},[775,1263,1264],{"class":798}," isDefault",[775,1266,877],{"class":806},[775,1268,1269],{"class":798}," locale",[775,1271,895],{"class":806},[775,1273,832],{"class":806},[775,1275,1276],{"class":794}," useLocaleServerMiddleware",[775,1278,799],{"class":841},[775,1280,811],{"class":798},[775,1282,846],{"class":841},[775,1284,1285,1287,1289,1291,1293,1295,1297,1300,1302,1304,1307,1310,1313,1315,1318,1320],{"class":777,"line":849},[775,1286,852],{"class":787},[775,1288,855],{"class":806},[775,1290,1259],{"class":798},[775,1292,877],{"class":806},[775,1294,1264],{"class":798},[775,1296,877],{"class":806},[775,1298,1299],{"class":841}," dir",[775,1301,861],{"class":806},[775,1303,1269],{"class":798},[775,1305,1306],{"class":806},"?.",[775,1308,1309],{"class":798},"dir",[775,1311,1312],{"class":806}," ??",[775,1314,887],{"class":806},[775,1316,1317],{"class":871},"ltr",[775,1319,868],{"class":806},[775,1321,1322],{"class":806}," }\n",[775,1324,1325,1327],{"class":777,"line":904},[775,1326,907],{"class":806},[775,1328,846],{"class":798},[748,1330,1331,1334],{},[752,1332,1333],{},"useLocaleServerMiddleware(event, defaultLocale?, locale?)"," is synchronous and returns:",[766,1336,1338],{"className":768,"code":1337,"language":770,"meta":771,"style":771},"interface LocaleInfo {\n  current: string \u002F\u002F detected locale code\n  default: string \u002F\u002F defaultLocale, runtime overrides included (fixed at build under prefix_except_default \u002F prefix_and_default)\n  fallback: string \u002F\u002F fallbackLocale, else the default\n  available: string[] \u002F\u002F enabled locale codes\n  locale: Locale | null \u002F\u002F the config entry of `current`\n  isDefault: boolean\n  isFallback: boolean\n}\n",[752,1339,1340,1350,1363,1375,1387,1402,1421,1432,1442],{"__ignoreMap":771},[775,1341,1342,1345,1348],{"class":777,"line":353},[775,1343,1344],{"class":802},"interface",[775,1346,1347],{"class":921}," LocaleInfo",[775,1349,820],{"class":806},[775,1351,1352,1355,1357,1360],{"class":777,"line":784},[775,1353,1354],{"class":841},"  current",[775,1356,861],{"class":806},[775,1358,1359],{"class":921}," string",[775,1361,1362],{"class":780}," \u002F\u002F detected locale code\n",[775,1364,1365,1368,1370,1372],{"class":777,"line":823},[775,1366,1367],{"class":841},"  default",[775,1369,861],{"class":806},[775,1371,1359],{"class":921},[775,1373,1374],{"class":780}," \u002F\u002F defaultLocale, runtime overrides included (fixed at build under prefix_except_default \u002F prefix_and_default)\n",[775,1376,1377,1380,1382,1384],{"class":777,"line":849},[775,1378,1379],{"class":841},"  fallback",[775,1381,861],{"class":806},[775,1383,1359],{"class":921},[775,1385,1386],{"class":780}," \u002F\u002F fallbackLocale, else the default\n",[775,1388,1389,1392,1394,1396,1399],{"class":777,"line":904},[775,1390,1391],{"class":841},"  available",[775,1393,861],{"class":806},[775,1395,1359],{"class":921},[775,1397,1398],{"class":798},"[] ",[775,1400,1401],{"class":780},"\u002F\u002F enabled locale codes\n",[775,1403,1404,1407,1409,1412,1415,1418],{"class":777,"line":1129},[775,1405,1406],{"class":841},"  locale",[775,1408,861],{"class":806},[775,1410,1411],{"class":921}," Locale",[775,1413,1414],{"class":806}," |",[775,1416,1417],{"class":921}," null",[775,1419,1420],{"class":780}," \u002F\u002F the config entry of `current`\n",[775,1422,1424,1427,1429],{"class":777,"line":1423},7,[775,1425,1426],{"class":841},"  isDefault",[775,1428,861],{"class":806},[775,1430,1431],{"class":921}," boolean\n",[775,1433,1435,1438,1440],{"class":777,"line":1434},8,[775,1436,1437],{"class":841},"  isFallback",[775,1439,861],{"class":806},[775,1441,1431],{"class":921},[775,1443,1444],{"class":777,"line":358},[775,1445,901],{"class":806},[761,1447,1449],{"id":1448},"how-the-locale-is-chosen","How the locale is chosen",[748,1451,1452,1453,1455],{},"Both helpers use the same order on every server route, ",[752,1454,182],{}," or not:",[1457,1458,1459,1466,1477,1495,1505],"ol",{},[1460,1461,1462,1465],"li",{},[752,1463,1464],{},"?locale="," query (first value when repeated);",[1460,1467,1468,1469,1472,1473,1476],{},"a ",[752,1470,1471],{},"[locale]"," route param, or a locale prefix in the path (",[752,1474,1475],{},"\u002Fde\u002F...",");",[1460,1478,1479,1480,1487,1488,1491,1492,1476],{},"the locale cookie, when ",[1481,1482,1484],"a",{"href":1483},"\u002Fapi\u002Fmodule-options#localecookie",[752,1485,1486],{},"localeCookie"," is set (",[752,1489,1490],{},"hash-locale"," under ",[752,1493,1494],{},"hashMode",[1460,1496,1497,1500,1501,1504],{},[752,1498,1499],{},"Accept-Language",", when ",[752,1502,1503],{},"autoDetectLanguage"," is on (q-values respected);",[1460,1506,1507,1010],{},[752,1508,1509],{},"defaultLocale",[748,1511,1512,1513,1515,1516,1010],{},"Invalid and disabled codes are skipped at every step. This is the API order; a page render ignores ",[752,1514,1464],{}," under the prefix strategies. Both orders are compared on ",[1481,1517,57],{"href":58},[761,1519,1521],{"id":1520},"force-a-locale","Force a locale",[748,1523,1524],{},"Pass the third argument to skip detection, for example in a job that sends mail in the user's language:",[766,1526,1528],{"className":768,"code":1527,"language":770,"meta":771,"style":771},"export default defineEventHandler(async (event) => {\n  const user = await getUser(event) \u002F\u002F your code\n  const t = await useTranslationServerMiddleware(event, undefined, user.locale)\n  return sendMail(user.email, t('mail.welcome.subject'))\n})\n",[752,1529,1530,1552,1575,1605,1638],{"__ignoreMap":771},[775,1531,1532,1534,1536,1538,1540,1542,1544,1546,1548,1550],{"class":777,"line":353},[775,1533,788],{"class":787},[775,1535,791],{"class":787},[775,1537,795],{"class":794},[775,1539,799],{"class":798},[775,1541,803],{"class":802},[775,1543,807],{"class":806},[775,1545,811],{"class":810},[775,1547,814],{"class":806},[775,1549,817],{"class":802},[775,1551,820],{"class":806},[775,1553,1554,1556,1559,1561,1563,1566,1568,1570,1572],{"class":777,"line":784},[775,1555,826],{"class":802},[775,1557,1558],{"class":798}," user",[775,1560,832],{"class":806},[775,1562,835],{"class":787},[775,1564,1565],{"class":794}," getUser",[775,1567,799],{"class":841},[775,1569,811],{"class":798},[775,1571,898],{"class":841},[775,1573,1574],{"class":780},"\u002F\u002F your code\n",[775,1576,1577,1579,1581,1583,1585,1587,1589,1591,1593,1596,1598,1600,1603],{"class":777,"line":823},[775,1578,826],{"class":802},[775,1580,829],{"class":798},[775,1582,832],{"class":806},[775,1584,835],{"class":787},[775,1586,838],{"class":794},[775,1588,799],{"class":841},[775,1590,811],{"class":798},[775,1592,877],{"class":806},[775,1594,1595],{"class":806}," undefined,",[775,1597,1558],{"class":798},[775,1599,1010],{"class":806},[775,1601,1602],{"class":798},"locale",[775,1604,846],{"class":841},[775,1606,1607,1609,1612,1614,1617,1619,1622,1624,1626,1628,1630,1633,1635],{"class":777,"line":849},[775,1608,852],{"class":787},[775,1610,1611],{"class":794}," sendMail",[775,1613,799],{"class":841},[775,1615,1616],{"class":798},"user",[775,1618,1010],{"class":806},[775,1620,1621],{"class":798},"email",[775,1623,877],{"class":806},[775,1625,829],{"class":794},[775,1627,799],{"class":841},[775,1629,868],{"class":806},[775,1631,1632],{"class":871},"mail.welcome.subject",[775,1634,868],{"class":806},[775,1636,1637],{"class":841},"))\n",[775,1639,1640,1642],{"class":777,"line":904},[775,1641,907],{"class":806},[775,1643,846],{"class":798},[748,1645,1646,1647,1649],{},"The second argument replaces ",[752,1648,1509],{}," for this call's detection, so it has no effect when a locale is forced. Dictionaries are cached per request and per locale, and across requests in the server's translation cache, so calling a helper several times is cheap.",[761,1651,1653],{"id":1652},"server-components","Server components",[748,1655,1656,1657,966,1660,1663,1664,1667,1668,1670,1671,1673],{},"A server component (",[752,1658,1659],{},".server.vue",[752,1661,1662],{},"\u003CNuxtIsland>",") renders from its own URL, ",[752,1665,1666],{},"\u002F__nuxt_island\u002F...",", so it does not see the page's URL, and Nuxt passes it only its props. Pass the locale as a ",[752,1669,1602],{}," prop. It then renders in that locale, and a switch fetches it again, since the props are part of the island's URL and cache key. The name is reserved: any enabled locale code in a prop called ",[752,1672,1602],{}," sets the render's locale, so give a prop that means something else, such as a number format, another name:",[766,1675,1678],{"className":1676,"code":1677,"language":274,"meta":771,"style":771},"language-vue shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003C!-- components\u002FGreeting.server.vue -->\n\u003Ctemplate>\u003Cp>{{ $t('greeting') }}\u003C\u002Fp>\u003C\u002Ftemplate>\n\u003Cscript setup lang=\"ts\">\ndefineProps\u003C{ locale?: string }>()\n\u003C\u002Fscript>\n",[752,1679,1680,1685,1717,1741,1762],{"__ignoreMap":771},[775,1681,1682],{"class":777,"line":353},[775,1683,1684],{"class":780},"\u003C!-- components\u002FGreeting.server.vue -->\n",[775,1686,1687,1690,1693,1696,1698,1701,1704,1707,1709,1712,1714],{"class":777,"line":784},[775,1688,1689],{"class":806},"\u003C",[775,1691,1692],{"class":841},"template",[775,1694,1695],{"class":806},">\u003C",[775,1697,748],{"class":841},[775,1699,1700],{"class":806},">",[775,1702,1703],{"class":798},"{{ $t('greeting') }}",[775,1705,1706],{"class":806},"\u003C\u002F",[775,1708,748],{"class":841},[775,1710,1711],{"class":806},">\u003C\u002F",[775,1713,1692],{"class":841},[775,1715,1716],{"class":806},">\n",[775,1718,1719,1721,1724,1727,1730,1732,1735,1737,1739],{"class":777,"line":823},[775,1720,1689],{"class":806},[775,1722,1723],{"class":841},"script",[775,1725,1726],{"class":802}," setup",[775,1728,1729],{"class":802}," lang",[775,1731,996],{"class":806},[775,1733,1734],{"class":806},"\"",[775,1736,770],{"class":871},[775,1738,1734],{"class":806},[775,1740,1716],{"class":806},[775,1742,1743,1746,1749,1751,1754,1756,1759],{"class":777,"line":849},[775,1744,1745],{"class":794},"defineProps",[775,1747,1748],{"class":806},"\u003C{",[775,1750,1269],{"class":841},[775,1752,1753],{"class":806},"?:",[775,1755,1359],{"class":921},[775,1757,1758],{"class":806}," }>",[775,1760,1761],{"class":798},"()\n",[775,1763,1764,1766,1768],{"class":777,"line":904},[775,1765,1706],{"class":806},[775,1767,1723],{"class":841},[775,1769,1716],{"class":806},[766,1771,1773],{"className":1676,"code":1772,"language":274,"meta":771,"style":771},"\u003Ctemplate>\n  \u003CGreeting :locale=\"$getLocale()\" \u002F>\n  \u003CNuxtIsland name=\"Greeting\" :props=\"{ locale: $getLocale() }\" \u002F>\n\u003C\u002Ftemplate>\n",[752,1774,1775,1783,1810,1853],{"__ignoreMap":771},[775,1776,1777,1779,1781],{"class":777,"line":353},[775,1778,1689],{"class":806},[775,1780,1692],{"class":841},[775,1782,1716],{"class":806},[775,1784,1785,1788,1791,1794,1796,1798,1800,1803,1805,1807],{"class":777,"line":784},[775,1786,1787],{"class":806},"  \u003C",[775,1789,1790],{"class":841},"Greeting",[775,1792,1793],{"class":806}," :",[775,1795,1602],{"class":802},[775,1797,996],{"class":806},[775,1799,1734],{"class":806},[775,1801,1802],{"class":794},"$getLocale",[775,1804,1081],{"class":806},[775,1806,1734],{"class":806},[775,1808,1809],{"class":806}," \u002F>\n",[775,1811,1812,1814,1817,1819,1821,1823,1825,1827,1829,1832,1834,1836,1839,1841,1844,1846,1849,1851],{"class":777,"line":823},[775,1813,1787],{"class":806},[775,1815,1816],{"class":841},"NuxtIsland",[775,1818,882],{"class":802},[775,1820,996],{"class":806},[775,1822,1734],{"class":806},[775,1824,1790],{"class":871},[775,1826,1734],{"class":806},[775,1828,1793],{"class":806},[775,1830,1831],{"class":802},"props",[775,1833,996],{"class":806},[775,1835,1734],{"class":806},[775,1837,1838],{"class":806},"{ ",[775,1840,1602],{"class":841},[775,1842,1843],{"class":806},": ",[775,1845,1802],{"class":794},[775,1847,1848],{"class":806},"() }",[775,1850,1734],{"class":806},[775,1852,1809],{"class":806},[775,1854,1855,1857,1859],{"class":777,"line":849},[775,1856,1706],{"class":806},[775,1858,1692],{"class":841},[775,1860,1716],{"class":806},[748,1862,1863,1864,1154,1867,1869,1870,1010],{},"Without the prop it renders in the locale of the cookie, else the default locale, whatever the URL says, and it does not follow a switch. Its ",[752,1865,1866],{},"$t",[752,1868,1157],{}," chunk: the root files plus ",[752,1871,1165],{},[761,1873,1875],{"id":1874},"related","Related",[1877,1878,1879,1883,1885],"card-group",{},[1880,1881],"card",{"icon":1882,"title":57,"to":58},"i-lucide-book-open",[1880,1884],{"icon":1882,"title":30,"to":31},[1880,1886,1887],{"icon":1882,"title":88,"to":89},[748,1888,1889],{},"Where the server reads translations from",[1891,1892,1893],"style",{},"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 .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 .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}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 .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}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}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}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 .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":771,"searchDepth":784,"depth":784,"links":1895},[1896,1897,1898,1899,1900,1901],{"id":763,"depth":784,"text":764},{"id":1219,"depth":784,"text":1220},{"id":1448,"depth":784,"text":1449},{"id":1520,"depth":784,"text":1521},{"id":1652,"depth":784,"text":1653},{"id":1874,"depth":784,"text":1875},"Translate strings and read the request locale inside Nitro server routes and API handlers.","md","2026-11-04T17:00:20+05:00",null,{"outline":1907},[784,823],{"order":49,"group":34},{"title":46,"description":1902},"kk90xVwGIKjNFm1shH3f0l9rw2MepW4JL5L4VdimxyQ",[1912,1914],{"title":41,"path":42,"description":1913},"Change the default locale, fallback locale, disabled locales or the public origins per instance of one build, with environment variables or runtimeConfig.",{"title":51,"path":52,"description":1915},"The four URL strategies, the localized routes they generate, and how to link to a page in any locale.",1794131152893]