[{"data":1,"prerenderedAt":3270},["ShallowReactive",2],{"navigation":3,"v3-navigation":411,"\u002Fintegrations":738,"\u002Fintegrations-surround":3267},[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":131,"body":740,"description":3258,"extension":3259,"lastUpdated":3260,"links":3261,"meta":3262,"navigation":3264,"path":132,"seo":3265,"stem":137,"__hash__":3266},"docs\u002Fintegrations\u002Findex.md",{"type":741,"value":742,"toc":3242},"minimark",[743,747,756,761,931,934,949,956,960,966,1246,1268,1281,1527,1532,1633,1650,1664,1940,1944,1960,2084,2101,2104,2545,2547,2550,2556,2750,2761,2766,2776,2870,2884,2889,2952,2984,2989,3015,3106,3112,3135,3170,3183,3186,3195,3199,3214,3218,3239],[744,745,131],"h1",{"id":746},"frameworks",[748,749,750,751,755],"p",{},"The ",[752,753,754],"code",{},"@i18n-micro\u002F*"," packages bring the translation core of Nuxt I18n Micro to Vue, React, Preact, Solid, Astro, VitePress and plain JavaScript. Use them when your app is not a Nuxt app, or when a script or server outside Nuxt needs the same translation files. Every package shares one instance model, one router adapter contract and the same four components, described once on this page.",[757,758,760],"h2",{"id":759},"packages","Packages",[762,763,764,780],"table",{},[765,766,767],"thead",{},[768,769,770,774,777],"tr",{},[771,772,773],"th",{},"Stack",[771,775,776],{},"Package",[771,778,779],{},"Router entry",[781,782,783,801,817,832,848,864,876,890,903,917],"tbody",{},[768,784,785,792,796],{},[786,787,788],"td",{},[789,790,791],"a",{"href":140},"Vue 3 SPA",[786,793,794],{},[752,795,693],{},[786,797,798],{},[752,799,800],{},"@i18n-micro\u002Fvue\u002Frouter",[768,802,803,808,812],{},[786,804,805],{},[789,806,807],{"href":145},"React",[786,809,810],{},[752,811,657],{},[786,813,814],{},[752,815,816],{},"@i18n-micro\u002Freact\u002Frouter",[768,818,819,825,829],{},[786,820,821],{},[789,822,824],{"href":823},"\u002Fintegrations\u002Freact-package#preact","Preact",[786,826,827],{},[752,828,653],{},[786,830,831],{},"—",[768,833,834,839,843],{},[786,835,836],{},[789,837,838],{"href":149},"SolidJS",[786,840,841],{},[752,842,669],{},[786,844,845],{},[752,846,847],{},"@i18n-micro\u002Fsolid\u002Frouter",[768,849,850,858,862],{},[786,851,852,854,855],{},[789,853,152],{"href":153},": SSR and ",[789,856,857],{"href":157},"islands",[786,859,860],{},[752,861,629],{},[786,863,831],{},[768,865,866,870,874],{},[786,867,868],{},[789,869,160],{"href":161},[786,871,872],{},[752,873,689],{},[786,875,831],{},[768,877,878,884,888],{},[786,879,880,883],{},[789,881,882],{"href":165},"Browser or edge",", no framework",[786,885,886],{},[752,887,665],{},[786,889,831],{},[768,891,892,897,901],{},[786,893,894,896],{},[789,895,169],{"href":170}," server, CLI",[786,898,899],{},[752,900,645],{},[786,902,831],{},[768,904,905,911,915],{},[786,906,907,910],{},[789,908,909],{"href":174},"Typed keys",", Vite or Nuxt",[786,912,913],{},[752,914,681],{},[786,916,831],{},[768,918,919,925,929],{},[786,920,921,924],{},[789,922,923],{"href":178},"Translation editor"," in dev",[786,926,927],{},[752,928,637],{},[786,930,831],{},[748,932,933],{},"The router entry is a separate import, so an app without a router never bundles one.",[748,935,936,938,939,941,942,944,945,948],{},[752,937,633],{},", ",[752,940,677],{}," and ",[752,943,685],{}," are installed with these packages; you rarely import them directly. Signatures of every export are on the generated ",[789,946,947],{"href":206},"package reference",".",[748,950,951,952,955],{},"Each package has a playground under ",[752,953,954],{},"packages\u002F\u003Cname>\u002Fplayground"," in the repository.",[757,957,959],{"id":958},"the-instance","The instance",[748,961,962,965],{},[752,963,964],{},"createI18n(options)"," returns one instance that holds the dictionaries, the current locale and the current route. The options are the same in every package:",[762,967,968,984],{},[765,969,970],{},[768,971,972,975,978,981],{},[771,973,974],{},"Option",[771,976,977],{},"Type",[771,979,980],{},"Default",[771,982,983],{},"Notes",[781,985,986,1004,1024,1048,1067,1087,1111,1128,1148,1167,1191,1214],{},[768,987,988,993,998,1001],{},[786,989,990],{},[752,991,992],{},"locale",[786,994,995],{},[752,996,997],{},"string",[786,999,1000],{},"required",[786,1002,1003],{},"Active locale.",[768,1005,1006,1011,1015,1019],{},[786,1007,1008],{},[752,1009,1010],{},"fallbackLocale",[786,1012,1013],{},[752,1014,997],{},[786,1016,1017],{},[752,1018,992],{},[786,1020,1021,1022,948],{},"Looked up when a key is missing in ",[752,1023,992],{},[768,1025,1026,1031,1036,1041],{},[786,1027,1028],{},[752,1029,1030],{},"messages",[786,1032,1033],{},[752,1034,1035],{},"Record\u003Clocale, Translations>",[786,1037,1038],{},[752,1039,1040],{},"{}",[786,1042,1043,1044,1047],{},"Root dictionaries (",[752,1045,1046],{},"'index'"," route).",[768,1049,1050,1055,1060,1064],{},[786,1051,1052],{},[752,1053,1054],{},"routeMessages",[786,1056,1057],{},[752,1058,1059],{},"Record\u003Croute, Record\u003Clocale, Translations>>",[786,1061,1062],{},[752,1063,1040],{},[786,1065,1066],{},"Route dictionaries. Runtime, React, Preact, Node and VitePress only.",[768,1068,1069,1074,1079,1084],{},[786,1070,1071],{},[752,1072,1073],{},"plural",[786,1075,1076],{},[752,1077,1078],{},"PluralFunc",[786,1080,1081],{},[752,1082,1083],{},"defaultPlural",[786,1085,1086],{},"Custom plural rule.",[768,1088,1089,1094,1099,1104],{},[786,1090,1091],{},[752,1092,1093],{},"missingWarn",[786,1095,1096],{},[752,1097,1098],{},"boolean",[786,1100,1101],{},[752,1102,1103],{},"true",[786,1105,1106,1107,1110],{},"Dev-only ",[752,1108,1109],{},"console.warn"," in the browser for a missing key.",[768,1112,1113,1118,1123,1125],{},[786,1114,1115],{},[752,1116,1117],{},"missingHandler",[786,1119,1120],{},[752,1121,1122],{},"(locale, key, routeName) => void",[786,1124,831],{},[786,1126,1127],{},"Called instead of the warning.",[768,1129,1130,1135,1140,1142],{},[786,1131,1132],{},[752,1133,1134],{},"numberFormats",[786,1136,1137],{},[752,1138,1139],{},"Record\u003Clocale, Record\u003Cname, Intl.NumberFormatOptions>>",[786,1141,831],{},[786,1143,1144,1145,948],{},"Named formats: ",[752,1146,1147],{},"tn(9.5, 'currency')",[768,1149,1150,1155,1160,1162],{},[786,1151,1152],{},[752,1153,1154],{},"datetimeFormats",[786,1156,1157],{},[752,1158,1159],{},"Record\u003Clocale, Record\u003Cname, Intl.DateTimeFormatOptions>>",[786,1161,831],{},[786,1163,1144,1164,948],{},[752,1165,1166],{},"td(date, 'short')",[768,1168,1169,1174,1178,1181],{},[786,1170,1171],{},[752,1172,1173],{},"timeZone",[786,1175,1176],{},[752,1177,997],{},[786,1179,1180],{},"runtime's zone",[786,1182,1183,1184,1186,1187,1190],{},"IANA zone for ",[752,1185,786],{}," dates; it does not affect ",[752,1188,1189],{},"tdr",". Set it so server and browser render one date.",[768,1192,1193,1198,1203,1208],{},[786,1194,1195],{},[752,1196,1197],{},"now",[786,1199,1200],{},[752,1201,1202],{},"() => number",[786,1204,1205],{},[752,1206,1207],{},"Date.now",[786,1209,1210,1211,1213],{},"The clock of ",[752,1212,1189],{},". Hand hydration the server's time so both render one text.",[768,1215,1216,1221,1226,1228],{},[786,1217,1218],{},[752,1219,1220],{},"localeIso",[786,1222,1223],{},[752,1224,1225],{},"Record\u003Ccode, string>",[786,1227,831],{},[786,1229,1230,1231,1234,1235,1238,1239,1242,1243,948],{},"BCP 47 tag used for plural rules (",[752,1232,1233],{},"ua"," → ",[752,1236,1237],{},"uk-UA","). React, Preact and Solid take it from ",[752,1240,1241],{},"iso"," in the provider's ",[752,1244,1245],{},"locales",[748,1247,1248,1249,1252,1253,1256,1257,1260,1261,938,1264,1267],{},"The dictionaries live in ",[752,1250,1251],{},"i18n.storage.translations",", a ",[752,1254,1255],{},"Map"," keyed ",[752,1258,1259],{},"locale:route"," (",[752,1262,1263],{},"en:index",[752,1265,1266],{},"en:about",").",[748,1269,1270,1271,1273,1274,1276,1277,1280],{},"A key is looked up in the current route's dictionary, then in the root dictionary, first for ",[752,1272,992],{},", then for ",[752,1275,1010],{},". A missing key returns the key itself (or the ",[752,1278,1279],{},"defaultValue"," you pass).",[1282,1283,1288],"pre",{"className":1284,"code":1285,"language":1286,"meta":1287,"style":1287},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","i18n.addTranslations('en', { nav: { home: 'Home' } }) \u002F\u002F root, deep-merged\ni18n.addRouteTranslations('en', 'about', { title: 'About us' }) \u002F\u002F route chunk\ni18n.addTranslations('en', { nav: { home: 'Start' } }, false) \u002F\u002F replace instead of merge\ni18n.setRoute('about')\ni18n.t('title') \u002F\u002F 'About us'\ni18n.t('nav.home') \u002F\u002F 'Start' (root key, still visible on the route)\n","ts","",[752,1289,1290,1357,1407,1459,1480,1504],{"__ignoreMap":1287},[1291,1292,1294,1298,1301,1305,1308,1311,1315,1317,1320,1323,1327,1330,1332,1335,1337,1340,1343,1345,1348,1350,1353],"span",{"class":1293,"line":353},"line",[1291,1295,1297],{"class":1296},"sTEyZ","i18n",[1291,1299,948],{"class":1300},"sMK4o",[1291,1302,1304],{"class":1303},"s2Zo4","addTranslations",[1291,1306,1307],{"class":1296},"(",[1291,1309,1310],{"class":1300},"'",[1291,1312,1314],{"class":1313},"sfazB","en",[1291,1316,1310],{"class":1300},[1291,1318,1319],{"class":1300},",",[1291,1321,1322],{"class":1300}," {",[1291,1324,1326],{"class":1325},"swJcz"," nav",[1291,1328,1329],{"class":1300},":",[1291,1331,1322],{"class":1300},[1291,1333,1334],{"class":1325}," home",[1291,1336,1329],{"class":1300},[1291,1338,1339],{"class":1300}," '",[1291,1341,1342],{"class":1313},"Home",[1291,1344,1310],{"class":1300},[1291,1346,1347],{"class":1300}," }",[1291,1349,1347],{"class":1300},[1291,1351,1352],{"class":1296},") ",[1291,1354,1356],{"class":1355},"sHwdD","\u002F\u002F root, deep-merged\n",[1291,1358,1360,1362,1364,1367,1369,1371,1373,1375,1377,1379,1382,1384,1386,1388,1391,1393,1395,1398,1400,1402,1404],{"class":1293,"line":1359},2,[1291,1361,1297],{"class":1296},[1291,1363,948],{"class":1300},[1291,1365,1366],{"class":1303},"addRouteTranslations",[1291,1368,1307],{"class":1296},[1291,1370,1310],{"class":1300},[1291,1372,1314],{"class":1313},[1291,1374,1310],{"class":1300},[1291,1376,1319],{"class":1300},[1291,1378,1339],{"class":1300},[1291,1380,1381],{"class":1313},"about",[1291,1383,1310],{"class":1300},[1291,1385,1319],{"class":1300},[1291,1387,1322],{"class":1300},[1291,1389,1390],{"class":1325}," title",[1291,1392,1329],{"class":1300},[1291,1394,1339],{"class":1300},[1291,1396,1397],{"class":1313},"About us",[1291,1399,1310],{"class":1300},[1291,1401,1347],{"class":1300},[1291,1403,1352],{"class":1296},[1291,1405,1406],{"class":1355},"\u002F\u002F route chunk\n",[1291,1408,1410,1412,1414,1416,1418,1420,1422,1424,1426,1428,1430,1432,1434,1436,1438,1440,1443,1445,1447,1450,1454,1456],{"class":1293,"line":1409},3,[1291,1411,1297],{"class":1296},[1291,1413,948],{"class":1300},[1291,1415,1304],{"class":1303},[1291,1417,1307],{"class":1296},[1291,1419,1310],{"class":1300},[1291,1421,1314],{"class":1313},[1291,1423,1310],{"class":1300},[1291,1425,1319],{"class":1300},[1291,1427,1322],{"class":1300},[1291,1429,1326],{"class":1325},[1291,1431,1329],{"class":1300},[1291,1433,1322],{"class":1300},[1291,1435,1334],{"class":1325},[1291,1437,1329],{"class":1300},[1291,1439,1339],{"class":1300},[1291,1441,1442],{"class":1313},"Start",[1291,1444,1310],{"class":1300},[1291,1446,1347],{"class":1300},[1291,1448,1449],{"class":1300}," },",[1291,1451,1453],{"class":1452},"sfNiH"," false",[1291,1455,1352],{"class":1296},[1291,1457,1458],{"class":1355},"\u002F\u002F replace instead of merge\n",[1291,1460,1462,1464,1466,1469,1471,1473,1475,1477],{"class":1293,"line":1461},4,[1291,1463,1297],{"class":1296},[1291,1465,948],{"class":1300},[1291,1467,1468],{"class":1303},"setRoute",[1291,1470,1307],{"class":1296},[1291,1472,1310],{"class":1300},[1291,1474,1381],{"class":1313},[1291,1476,1310],{"class":1300},[1291,1478,1479],{"class":1296},")\n",[1291,1481,1483,1485,1487,1490,1492,1494,1497,1499,1501],{"class":1293,"line":1482},5,[1291,1484,1297],{"class":1296},[1291,1486,948],{"class":1300},[1291,1488,1489],{"class":1303},"t",[1291,1491,1307],{"class":1296},[1291,1493,1310],{"class":1300},[1291,1495,1496],{"class":1313},"title",[1291,1498,1310],{"class":1300},[1291,1500,1352],{"class":1296},[1291,1502,1503],{"class":1355},"\u002F\u002F 'About us'\n",[1291,1505,1507,1509,1511,1513,1515,1517,1520,1522,1524],{"class":1293,"line":1506},6,[1291,1508,1297],{"class":1296},[1291,1510,948],{"class":1300},[1291,1512,1489],{"class":1303},[1291,1514,1307],{"class":1296},[1291,1516,1310],{"class":1300},[1291,1518,1519],{"class":1313},"nav.home",[1291,1521,1310],{"class":1300},[1291,1523,1352],{"class":1296},[1291,1525,1526],{"class":1355},"\u002F\u002F 'Start' (root key, still visible on the route)\n",[1528,1529,1531],"h3",{"id":1530},"translate-and-format","Translate and format",[762,1533,1534,1544],{},[765,1535,1536],{},[768,1537,1538,1541],{},[771,1539,1540],{},"Method",[771,1542,1543],{},"Returns",[781,1545,1546,1560,1573,1583,1596,1608,1621],{},[768,1547,1548,1553],{},[786,1549,1550],{},[752,1551,1552],{},"t(key, params?, defaultValue?, routeName?)",[786,1554,1555,1556,1559],{},"The value (string, number, object) with ",[752,1557,1558],{},"{param}"," interpolated.",[768,1561,1562,1567],{},[786,1563,1564],{},[752,1565,1566],{},"ts(...)",[786,1568,1569,1570,1572],{},"Same as ",[752,1571,1489],{},", as a string.",[768,1574,1575,1580],{},[786,1576,1577],{},[752,1578,1579],{},"tc(key, count | params, defaultValue?)",[786,1581,1582],{},"Plural form.",[768,1584,1585,1590],{},[786,1586,1587],{},[752,1588,1589],{},"tn(value, options | name)",[786,1591,1592,1595],{},[752,1593,1594],{},"Intl.NumberFormat"," in the active locale.",[768,1597,1598,1603],{},[786,1599,1600],{},[752,1601,1602],{},"td(value, options | name)",[786,1604,1605,948],{},[752,1606,1607],{},"Intl.DateTimeFormat",[768,1609,1610,1615],{},[786,1611,1612],{},[752,1613,1614],{},"tdr(value, options?)",[786,1616,1617,1618,1267],{},"Relative time (",[752,1619,1620],{},"3 days ago",[768,1622,1623,1628],{},[786,1624,1625],{},[752,1626,1627],{},"has(key, routeName?)",[786,1629,1630,1632],{},[752,1631,1103],{}," when the active locale has the key (route or root dictionary; the fallback is not checked).",[748,1634,1635,1637,1638,1641,1642,1645,1646,1649],{},[752,1636,1083],{}," splits the value on ",[752,1639,1640],{},"|"," and picks the form at index ",[752,1643,1644],{},"count",", clamped to the last one; a negative, fractional or ",[752,1647,1648],{},"NaN"," count picks the last form.",[748,1651,1652,1653,1655,1656,1659,1660,1663],{},"A custom ",[752,1654,1073],{}," receives ",[752,1657,1658],{},"(key, count, params, locale, getter)",". Read the value through ",[752,1661,1662],{},"getter(key)","; do not split the key:",[1282,1665,1667],{"className":1284,"code":1666,"language":1286,"meta":1287,"style":1287},"import type { PluralFunc } from '@i18n-micro\u002Fvue'\n\nconst plural: PluralFunc = (key, count, params, _locale, getter) => {\n  const value = getter(key)\n  if (typeof value !== 'string') return null\n  const forms = value.split('|').map((form) => form.trim())\n  return (count === 1 ? forms[0] : forms[1] ?? forms[0])!.replace('{count}', String(count))\n}\n",[752,1668,1669,1695,1701,1753,1771,1800,1853,1934],{"__ignoreMap":1287},[1291,1670,1671,1675,1678,1680,1683,1685,1688,1690,1692],{"class":1293,"line":353},[1291,1672,1674],{"class":1673},"s7zQu","import",[1291,1676,1677],{"class":1673}," type",[1291,1679,1322],{"class":1300},[1291,1681,1682],{"class":1296}," PluralFunc",[1291,1684,1347],{"class":1300},[1291,1686,1687],{"class":1673}," from",[1291,1689,1339],{"class":1300},[1291,1691,693],{"class":1313},[1291,1693,1694],{"class":1300},"'\n",[1291,1696,1697],{"class":1293,"line":1359},[1291,1698,1700],{"emptyLinePlaceholder":1699},true,"\n",[1291,1702,1703,1707,1710,1712,1715,1718,1720,1724,1726,1729,1731,1734,1736,1739,1741,1744,1747,1750],{"class":1293,"line":1409},[1291,1704,1706],{"class":1705},"spNyl","const",[1291,1708,1709],{"class":1296}," plural",[1291,1711,1329],{"class":1300},[1291,1713,1682],{"class":1714},"sBMFI",[1291,1716,1717],{"class":1300}," =",[1291,1719,1260],{"class":1300},[1291,1721,1723],{"class":1722},"sHdIc","key",[1291,1725,1319],{"class":1300},[1291,1727,1728],{"class":1722}," count",[1291,1730,1319],{"class":1300},[1291,1732,1733],{"class":1722}," params",[1291,1735,1319],{"class":1300},[1291,1737,1738],{"class":1722}," _locale",[1291,1740,1319],{"class":1300},[1291,1742,1743],{"class":1722}," getter",[1291,1745,1746],{"class":1300},")",[1291,1748,1749],{"class":1705}," =>",[1291,1751,1752],{"class":1300}," {\n",[1291,1754,1755,1758,1761,1763,1765,1767,1769],{"class":1293,"line":1461},[1291,1756,1757],{"class":1705},"  const",[1291,1759,1760],{"class":1296}," value",[1291,1762,1717],{"class":1300},[1291,1764,1743],{"class":1303},[1291,1766,1307],{"class":1325},[1291,1768,1723],{"class":1296},[1291,1770,1479],{"class":1325},[1291,1772,1773,1776,1778,1781,1783,1786,1788,1790,1792,1794,1797],{"class":1293,"line":1482},[1291,1774,1775],{"class":1673},"  if",[1291,1777,1260],{"class":1325},[1291,1779,1780],{"class":1300},"typeof",[1291,1782,1760],{"class":1296},[1291,1784,1785],{"class":1300}," !==",[1291,1787,1339],{"class":1300},[1291,1789,997],{"class":1313},[1291,1791,1310],{"class":1300},[1291,1793,1352],{"class":1325},[1291,1795,1796],{"class":1673},"return",[1291,1798,1799],{"class":1300}," null\n",[1291,1801,1802,1804,1807,1809,1811,1813,1816,1818,1820,1822,1824,1826,1828,1831,1833,1835,1838,1840,1842,1845,1847,1850],{"class":1293,"line":1506},[1291,1803,1757],{"class":1705},[1291,1805,1806],{"class":1296}," forms",[1291,1808,1717],{"class":1300},[1291,1810,1760],{"class":1296},[1291,1812,948],{"class":1300},[1291,1814,1815],{"class":1303},"split",[1291,1817,1307],{"class":1325},[1291,1819,1310],{"class":1300},[1291,1821,1640],{"class":1313},[1291,1823,1310],{"class":1300},[1291,1825,1746],{"class":1325},[1291,1827,948],{"class":1300},[1291,1829,1830],{"class":1303},"map",[1291,1832,1307],{"class":1325},[1291,1834,1307],{"class":1300},[1291,1836,1837],{"class":1722},"form",[1291,1839,1746],{"class":1300},[1291,1841,1749],{"class":1705},[1291,1843,1844],{"class":1296}," form",[1291,1846,948],{"class":1300},[1291,1848,1849],{"class":1303},"trim",[1291,1851,1852],{"class":1325},"())\n",[1291,1854,1856,1859,1861,1863,1866,1870,1873,1875,1878,1881,1884,1886,1888,1890,1893,1895,1898,1900,1902,1904,1907,1910,1913,1915,1917,1920,1922,1924,1927,1929,1931],{"class":1293,"line":1855},7,[1291,1857,1858],{"class":1673},"  return",[1291,1860,1260],{"class":1325},[1291,1862,1644],{"class":1296},[1291,1864,1865],{"class":1300}," ===",[1291,1867,1869],{"class":1868},"sbssI"," 1",[1291,1871,1872],{"class":1300}," ?",[1291,1874,1806],{"class":1296},[1291,1876,1877],{"class":1325},"[",[1291,1879,1880],{"class":1868},"0",[1291,1882,1883],{"class":1325},"] ",[1291,1885,1329],{"class":1300},[1291,1887,1806],{"class":1296},[1291,1889,1877],{"class":1325},[1291,1891,1892],{"class":1868},"1",[1291,1894,1883],{"class":1325},[1291,1896,1897],{"class":1300},"??",[1291,1899,1806],{"class":1296},[1291,1901,1877],{"class":1325},[1291,1903,1880],{"class":1868},[1291,1905,1906],{"class":1325},"])",[1291,1908,1909],{"class":1300},"!.",[1291,1911,1912],{"class":1303},"replace",[1291,1914,1307],{"class":1325},[1291,1916,1310],{"class":1300},[1291,1918,1919],{"class":1313},"{count}",[1291,1921,1310],{"class":1300},[1291,1923,1319],{"class":1300},[1291,1925,1926],{"class":1303}," String",[1291,1928,1307],{"class":1325},[1291,1930,1644],{"class":1296},[1291,1932,1933],{"class":1325},"))\n",[1291,1935,1937],{"class":1293,"line":1936},8,[1291,1938,1939],{"class":1300},"}\n",[757,1941,1943],{"id":1942},"router-adapter","Router adapter",[748,1945,1946,1947,1950,1951,1260,1954,938,1957,1267],{},"The SPA packages do not depend on a router. A router adapter (",[752,1948,1949],{},"I18nRoutingStrategy",") tells them how to read the current path, navigate and build a localized path. The built-in adapters prefix every locale except ",[752,1952,1953],{},"defaultLocale",[752,1955,1956],{},"\u002Fabout",[752,1958,1959],{},"\u002Fde\u002Fabout",[762,1961,1962,1975],{},[765,1963,1964],{},[768,1965,1966,1969,1972],{},[771,1967,1968],{},"Member",[771,1970,1971],{},"Required",[771,1973,1974],{},"Used by",[781,1976,1977,1994,2017,2028,2049,2069],{},[768,1978,1979,1984,1987],{},[786,1980,1981],{},[752,1982,1983],{},"getCurrentPath(): string",[786,1985,1986],{},"yes",[786,1988,1989,1990,1993],{},"active link check (by page, query and hash do not count), ",[752,1991,1992],{},"switchLocale"," (keeps them)",[768,1995,1996,2001,2003],{},[786,1997,1998],{},[752,1999,2000],{},"push({ path }): void",[786,2002,1986],{},[786,2004,2005,938,2007,2010,2011,938,2014],{},[752,2006,1992],{},[752,2008,2009],{},"\u003CI18nLink>"," without ",[752,2012,2013],{},"linkComponent",[752,2015,2016],{},"\u003CI18nSwitcher>",[768,2018,2019,2024,2026],{},[786,2020,2021],{},[752,2022,2023],{},"replace({ path }): void",[786,2025,1986],{},[786,2027,831],{},[768,2029,2030,2035,2038],{},[786,2031,2032],{},[752,2033,2034],{},"resolvePath(to, locale)",[786,2036,2037],{},"no",[786,2039,2040,938,2043,938,2046,2048],{},[752,2041,2042],{},"localePath",[752,2044,2045],{},"localeRoute",[752,2047,2009],{},"; without it paths are returned as is",[768,2050,2051,2055,2057],{},[786,2052,2053],{},[752,2054,2013],{},[786,2056,2037],{},[786,2058,2059,2061,2062,2065,2066],{},[752,2060,2009],{}," renders it (e.g. ",[752,2063,2064],{},"RouterLink",") instead of ",[752,2067,2068],{},"\u003Ca>",[768,2070,2071,2076,2078],{},[786,2072,2073],{},[752,2074,2075],{},"getRoute()",[786,2077,2037],{},[786,2079,2080,2083],{},[752,2081,2082],{},"{ fullPath, query }"," for SEO helpers",[748,2085,2086,941,2089,2091,2092,2094,2095,2097,2098,1267],{},[752,2087,2088],{},"push",[752,2090,1912],{}," are required in Vue, React, Preact and Solid. Astro has its own, server-side adapter with optional ",[752,2093,2088],{},"\u002F",[752,2096,1912],{}," (see ",[789,2099,152],{"href":2100},"\u002Fintegrations\u002Fastro-package#router-adapter",[748,2102,2103],{},"A minimal adapter for any history-based router:",[1282,2105,2107],{"className":1284,"code":2106,"language":1286,"meta":1287,"style":1287},"import type { I18nRoutingStrategy } from '@i18n-micro\u002Freact'\n\nconst locales = ['en', 'de']\nconst stripLocale = (path: string) => path.replace(\u002F^\\\u002F(en|de)(?=\\\u002F|$)\u002F, '') || '\u002F'\n\nexport const historyAdapter: I18nRoutingStrategy = {\n  getCurrentPath: () => window.location.pathname + window.location.search + window.location.hash,\n  push: ({ path }) => window.history.pushState({}, '', path),\n  replace: ({ path }) => window.history.replaceState({}, '', path),\n  resolvePath: (to, locale) => {\n    const path = stripLocale(typeof to === 'string' ? to : to.path || '\u002F')\n    return locale === 'en' ? path : `\u002F${locale}${path === '\u002F' ? '' : path}`\n  },\n}\n",[752,2108,2109,2130,2134,2165,2242,2246,2265,2320,2363,2401,2424,2476,2534,2540],{"__ignoreMap":1287},[1291,2110,2111,2113,2115,2117,2120,2122,2124,2126,2128],{"class":1293,"line":353},[1291,2112,1674],{"class":1673},[1291,2114,1677],{"class":1673},[1291,2116,1322],{"class":1300},[1291,2118,2119],{"class":1296}," I18nRoutingStrategy",[1291,2121,1347],{"class":1300},[1291,2123,1687],{"class":1673},[1291,2125,1339],{"class":1300},[1291,2127,657],{"class":1313},[1291,2129,1694],{"class":1300},[1291,2131,2132],{"class":1293,"line":1359},[1291,2133,1700],{"emptyLinePlaceholder":1699},[1291,2135,2136,2138,2141,2144,2147,2149,2151,2153,2155,2157,2160,2162],{"class":1293,"line":1409},[1291,2137,1706],{"class":1705},[1291,2139,2140],{"class":1296}," locales ",[1291,2142,2143],{"class":1300},"=",[1291,2145,2146],{"class":1296}," [",[1291,2148,1310],{"class":1300},[1291,2150,1314],{"class":1313},[1291,2152,1310],{"class":1300},[1291,2154,1319],{"class":1300},[1291,2156,1339],{"class":1300},[1291,2158,2159],{"class":1313},"de",[1291,2161,1310],{"class":1300},[1291,2163,2164],{"class":1296},"]\n",[1291,2166,2167,2169,2172,2174,2176,2179,2181,2184,2186,2188,2191,2193,2195,2197,2199,2202,2205,2207,2209,2211,2213,2216,2218,2220,2223,2226,2228,2231,2233,2236,2238,2240],{"class":1293,"line":1461},[1291,2168,1706],{"class":1705},[1291,2170,2171],{"class":1296}," stripLocale ",[1291,2173,2143],{"class":1300},[1291,2175,1260],{"class":1300},[1291,2177,2178],{"class":1722},"path",[1291,2180,1329],{"class":1300},[1291,2182,2183],{"class":1714}," string",[1291,2185,1746],{"class":1300},[1291,2187,1749],{"class":1705},[1291,2189,2190],{"class":1296}," path",[1291,2192,948],{"class":1300},[1291,2194,1912],{"class":1303},[1291,2196,1307],{"class":1296},[1291,2198,2094],{"class":1300},[1291,2200,2201],{"class":1673},"^",[1291,2203,2204],{"class":1296},"\\\u002F",[1291,2206,1307],{"class":1300},[1291,2208,1314],{"class":1313},[1291,2210,1640],{"class":1300},[1291,2212,2159],{"class":1313},[1291,2214,2215],{"class":1300},")(?=",[1291,2217,2204],{"class":1296},[1291,2219,1640],{"class":1300},[1291,2221,2222],{"class":1673},"$",[1291,2224,2225],{"class":1300},")\u002F",[1291,2227,1319],{"class":1300},[1291,2229,2230],{"class":1300}," ''",[1291,2232,1352],{"class":1296},[1291,2234,2235],{"class":1300},"||",[1291,2237,1339],{"class":1300},[1291,2239,2094],{"class":1313},[1291,2241,1694],{"class":1300},[1291,2243,2244],{"class":1293,"line":1482},[1291,2245,1700],{"emptyLinePlaceholder":1699},[1291,2247,2248,2251,2254,2257,2259,2261,2263],{"class":1293,"line":1506},[1291,2249,2250],{"class":1673},"export",[1291,2252,2253],{"class":1705}," const",[1291,2255,2256],{"class":1296}," historyAdapter",[1291,2258,1329],{"class":1300},[1291,2260,2119],{"class":1714},[1291,2262,1717],{"class":1300},[1291,2264,1752],{"class":1300},[1291,2266,2267,2270,2272,2275,2277,2280,2282,2285,2287,2290,2293,2295,2297,2299,2301,2304,2306,2308,2310,2312,2314,2317],{"class":1293,"line":1855},[1291,2268,2269],{"class":1303},"  getCurrentPath",[1291,2271,1329],{"class":1300},[1291,2273,2274],{"class":1300}," ()",[1291,2276,1749],{"class":1705},[1291,2278,2279],{"class":1296}," window",[1291,2281,948],{"class":1300},[1291,2283,2284],{"class":1296},"location",[1291,2286,948],{"class":1300},[1291,2288,2289],{"class":1296},"pathname ",[1291,2291,2292],{"class":1300},"+",[1291,2294,2279],{"class":1296},[1291,2296,948],{"class":1300},[1291,2298,2284],{"class":1296},[1291,2300,948],{"class":1300},[1291,2302,2303],{"class":1296},"search ",[1291,2305,2292],{"class":1300},[1291,2307,2279],{"class":1296},[1291,2309,948],{"class":1300},[1291,2311,2284],{"class":1296},[1291,2313,948],{"class":1300},[1291,2315,2316],{"class":1296},"hash",[1291,2318,2319],{"class":1300},",\n",[1291,2321,2322,2325,2327,2330,2332,2335,2337,2339,2341,2344,2346,2349,2351,2354,2356,2358,2361],{"class":1293,"line":1936},[1291,2323,2324],{"class":1303},"  push",[1291,2326,1329],{"class":1300},[1291,2328,2329],{"class":1300}," ({",[1291,2331,2190],{"class":1722},[1291,2333,2334],{"class":1300}," })",[1291,2336,1749],{"class":1705},[1291,2338,2279],{"class":1296},[1291,2340,948],{"class":1300},[1291,2342,2343],{"class":1296},"history",[1291,2345,948],{"class":1300},[1291,2347,2348],{"class":1303},"pushState",[1291,2350,1307],{"class":1296},[1291,2352,2353],{"class":1300},"{},",[1291,2355,2230],{"class":1300},[1291,2357,1319],{"class":1300},[1291,2359,2360],{"class":1296}," path)",[1291,2362,2319],{"class":1300},[1291,2364,2365,2368,2370,2372,2374,2376,2378,2380,2382,2384,2386,2389,2391,2393,2395,2397,2399],{"class":1293,"line":358},[1291,2366,2367],{"class":1303},"  replace",[1291,2369,1329],{"class":1300},[1291,2371,2329],{"class":1300},[1291,2373,2190],{"class":1722},[1291,2375,2334],{"class":1300},[1291,2377,1749],{"class":1705},[1291,2379,2279],{"class":1296},[1291,2381,948],{"class":1300},[1291,2383,2343],{"class":1296},[1291,2385,948],{"class":1300},[1291,2387,2388],{"class":1303},"replaceState",[1291,2390,1307],{"class":1296},[1291,2392,2353],{"class":1300},[1291,2394,2230],{"class":1300},[1291,2396,1319],{"class":1300},[1291,2398,2360],{"class":1296},[1291,2400,2319],{"class":1300},[1291,2402,2403,2406,2408,2410,2413,2415,2418,2420,2422],{"class":1293,"line":6},[1291,2404,2405],{"class":1303},"  resolvePath",[1291,2407,1329],{"class":1300},[1291,2409,1260],{"class":1300},[1291,2411,2412],{"class":1722},"to",[1291,2414,1319],{"class":1300},[1291,2416,2417],{"class":1722}," locale",[1291,2419,1746],{"class":1300},[1291,2421,1749],{"class":1705},[1291,2423,1752],{"class":1300},[1291,2425,2427,2430,2432,2434,2437,2439,2441,2444,2446,2448,2450,2452,2454,2456,2459,2461,2463,2465,2468,2470,2472,2474],{"class":1293,"line":2426},11,[1291,2428,2429],{"class":1705},"    const",[1291,2431,2190],{"class":1296},[1291,2433,1717],{"class":1300},[1291,2435,2436],{"class":1303}," stripLocale",[1291,2438,1307],{"class":1325},[1291,2440,1780],{"class":1300},[1291,2442,2443],{"class":1296}," to",[1291,2445,1865],{"class":1300},[1291,2447,1339],{"class":1300},[1291,2449,997],{"class":1313},[1291,2451,1310],{"class":1300},[1291,2453,1872],{"class":1300},[1291,2455,2443],{"class":1296},[1291,2457,2458],{"class":1300}," :",[1291,2460,2443],{"class":1296},[1291,2462,948],{"class":1300},[1291,2464,2178],{"class":1296},[1291,2466,2467],{"class":1300}," ||",[1291,2469,1339],{"class":1300},[1291,2471,2094],{"class":1313},[1291,2473,1310],{"class":1300},[1291,2475,1479],{"class":1325},[1291,2477,2479,2482,2484,2486,2488,2490,2492,2494,2496,2498,2501,2503,2506,2508,2511,2514,2517,2519,2521,2523,2525,2527,2529,2531],{"class":1293,"line":2478},12,[1291,2480,2481],{"class":1673},"    return",[1291,2483,2417],{"class":1296},[1291,2485,1865],{"class":1300},[1291,2487,1339],{"class":1300},[1291,2489,1314],{"class":1313},[1291,2491,1310],{"class":1300},[1291,2493,1872],{"class":1300},[1291,2495,2190],{"class":1296},[1291,2497,2458],{"class":1300},[1291,2499,2500],{"class":1300}," `",[1291,2502,2094],{"class":1313},[1291,2504,2505],{"class":1300},"${",[1291,2507,992],{"class":1296},[1291,2509,2510],{"class":1300},"}${",[1291,2512,2513],{"class":1296},"path ",[1291,2515,2516],{"class":1300},"===",[1291,2518,1339],{"class":1300},[1291,2520,2094],{"class":1313},[1291,2522,1310],{"class":1300},[1291,2524,1872],{"class":1300},[1291,2526,2230],{"class":1300},[1291,2528,2458],{"class":1300},[1291,2530,2190],{"class":1296},[1291,2532,2533],{"class":1300},"}`\n",[1291,2535,2537],{"class":1293,"line":2536},13,[1291,2538,2539],{"class":1300},"  },\n",[1291,2541,2543],{"class":1293,"line":2542},14,[1291,2544,1939],{"class":1300},[757,2546,299],{"id":301},[748,2548,2549],{},"Vue, React, Preact and Solid ship the same four components. Their props match; React, Preact and Solid pass other props through to the root element.",[1528,2551,2553],{"id":2552},"i18nt",[752,2554,2555],{},"\u003CI18nT>",[762,2557,2558,2569],{},[765,2559,2560],{},[768,2561,2562,2565,2567],{},[771,2563,2564],{},"Prop",[771,2566,977],{},[771,2568,983],{},[781,2570,2571,2584,2599,2616,2637,2657,2676,2692,2706,2723,2736],{},[768,2572,2573,2578,2582],{},[786,2574,2575],{},[752,2576,2577],{},"keypath",[786,2579,2580],{},[752,2581,997],{},[786,2583,1000],{},[768,2585,2586,2591,2596],{},[786,2587,2588],{},[752,2589,2590],{},"params",[786,2592,2593],{},[752,2594,2595],{},"object",[786,2597,2598],{},"interpolation values",[768,2600,2601,2605,2610],{},[786,2602,2603],{},[752,2604,1073],{},[786,2606,2607],{},[752,2608,2609],{},"number | string",[786,2611,2612,2613],{},"renders ",[752,2614,2615],{},"tc(keypath, count)",[768,2617,2618,2623,2627],{},[786,2619,2620],{},[752,2621,2622],{},"number",[786,2624,2625],{},[752,2626,2609],{},[786,2628,2629,2630,2633,2634],{},"passes ",[752,2631,2632],{},"tn(number)"," as ",[752,2635,2636],{},"{number}",[768,2638,2639,2644,2649],{},[786,2640,2641],{},[752,2642,2643],{},"date",[786,2645,2646],{},[752,2647,2648],{},"Date | string | number",[786,2650,2629,2651,2633,2654],{},[752,2652,2653],{},"td(date)",[752,2655,2656],{},"{date}",[768,2658,2659,2664,2668],{},[786,2660,2661],{},[752,2662,2663],{},"relativeDate",[786,2665,2666],{},[752,2667,2648],{},[786,2669,2629,2670,2633,2673],{},[752,2671,2672],{},"tdr(relativeDate)",[752,2674,2675],{},"{relativeDate}",[768,2677,2678,2683,2687],{},[786,2679,2680],{},[752,2681,2682],{},"tag",[786,2684,2685],{},[752,2686,997],{},[786,2688,2689,2690],{},"wrapper element, default ",[752,2691,1291],{},[768,2693,2694,2699,2703],{},[786,2695,2696],{},[752,2697,2698],{},"html",[786,2700,2701],{},[752,2702,1098],{},[786,2704,2705],{},"render the translation as HTML; it must be trusted, params are escaped",[768,2707,2708,2712,2716],{},[786,2709,2710],{},[752,2711,1279],{},[786,2713,2714],{},[752,2715,997],{},[786,2717,2718,2719,2722],{},"stands in for a missing key, and is rendered bare when ",[752,2720,2721],{},"hideIfEmpty"," hides an empty value",[768,2724,2725,2729,2733],{},[786,2726,2727],{},[752,2728,2721],{},[786,2730,2731],{},[752,2732,1098],{},[786,2734,2735],{},"render nothing for an empty translation",[768,2737,2738,2743,2747],{},[786,2739,2740],{},[752,2741,2742],{},"customPluralRule",[786,2744,2745],{},[752,2746,1078],{},[786,2748,2749],{},"plural rule for this element",[748,2751,2752,2753,938,2755,938,2757,938,2759,948],{},"Only one formatting prop applies, checked in this order: ",[752,2754,2622],{},[752,2756,2643],{},[752,2758,2663],{},[752,2760,1073],{},[2762,2763,2765],"h4",{"id":2764},"rich-text","Rich text",[748,2767,2768,2769,2772,2773,2775],{},"A ",[752,2770,2771],{},"{placeholder}"," can hold an element. In Vue it is a named slot; in React, Preact and Solid the ",[752,2774,301],{}," prop gives elements, or functions returning one, by name. Either way it beats a param of the same name, works in every branch, and survives a locale that reorders the placeholders.",[1282,2777,2781],{"className":2778,"code":2779,"language":2780,"meta":1287,"style":1287},"language-tsx shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F { \"terms\": \"I accept the {link} of {company}\" }\n\u003CI18nT keypath=\"terms\" params={{ company: 'ACME' }} components={{ link: \u003Ca href=\"\u002Fterms\">terms\u003C\u002Fa> }} \u002F>\n","tsx",[752,2782,2783,2788],{"__ignoreMap":1287},[1291,2784,2785],{"class":1293,"line":353},[1291,2786,2787],{"class":1355},"\u002F\u002F { \"terms\": \"I accept the {link} of {company}\" }\n",[1291,2789,2790,2793,2796,2799,2801,2804,2807,2809,2811,2814,2817,2819,2821,2824,2826,2829,2831,2833,2836,2838,2841,2843,2846,2848,2850,2853,2855,2858,2860,2863,2865,2867],{"class":1293,"line":1359},[1291,2791,2792],{"class":1300},"\u003C",[1291,2794,2795],{"class":1714},"I18nT",[1291,2797,2798],{"class":1705}," keypath",[1291,2800,2143],{"class":1300},[1291,2802,2803],{"class":1300},"\"",[1291,2805,2806],{"class":1313},"terms",[1291,2808,2803],{"class":1300},[1291,2810,1733],{"class":1705},[1291,2812,2813],{"class":1300},"={{",[1291,2815,2816],{"class":1325}," company",[1291,2818,1329],{"class":1300},[1291,2820,1339],{"class":1300},[1291,2822,2823],{"class":1313},"ACME",[1291,2825,1310],{"class":1300},[1291,2827,2828],{"class":1300}," }} ",[1291,2830,301],{"class":1705},[1291,2832,2813],{"class":1300},[1291,2834,2835],{"class":1325}," link",[1291,2837,1329],{"class":1300},[1291,2839,2840],{"class":1300}," \u003C",[1291,2842,789],{"class":1325},[1291,2844,2845],{"class":1705}," href",[1291,2847,2143],{"class":1300},[1291,2849,2803],{"class":1300},[1291,2851,2852],{"class":1313},"\u002Fterms",[1291,2854,2803],{"class":1300},[1291,2856,2857],{"class":1300},">",[1291,2859,2806],{"class":1296},[1291,2861,2862],{"class":1300},"\u003C\u002F",[1291,2864,789],{"class":1325},[1291,2866,2857],{"class":1300},[1291,2868,2869],{"class":1300}," }} \u002F>\n",[748,2871,2872,2873,2876,2877,2880,2881,2883],{},"In Solid pass a function when a placeholder repeats: one node stands in one place. ",[752,2874,2875],{},"children"," replace the text, as a function they get ",[752,2878,2879],{},"{ translation }",", like Vue's default slot. ",[752,2882,2698],{}," ignores all of these.",[1528,2885,2887],{"id":2886},"i18nlink",[752,2888,2009],{},[762,2890,2891,2901],{},[765,2892,2893],{},[768,2894,2895,2897,2899],{},[771,2896,2564],{},[771,2898,977],{},[771,2900,983],{},[781,2902,2903,2920,2937],{},[768,2904,2905,2909,2914],{},[786,2906,2907],{},[752,2908,2412],{},[786,2910,2911],{},[752,2912,2913],{},"string | { path }",[786,2915,2916,2917],{},"localized through the adapter's ",[752,2918,2919],{},"resolvePath",[768,2921,2922,2927,2930],{},[786,2923,2924],{},[752,2925,2926],{},"activeStyle",[786,2928,2929],{},"style object",[786,2931,2932,2933,2936],{},"merged over ",[752,2934,2935],{},"style"," on the current page; React, Preact and Solid also apply it to a section above",[768,2938,2939,2943,2946],{},[786,2940,2941],{},[752,2942,2045],{},[786,2944,2945],{},"function",[786,2947,2948,2949,2951],{},"overrides ",[752,2950,2919],{}," for this link",[748,2953,2954,2955,938,2958,938,2961,2964,2965,2968,2969,2972,2973,2976,2977,2980,2981,2983],{},"External URLs (",[752,2956,2957],{},"https:\u002F\u002F",[752,2959,2960],{},"mailto:",[752,2962,2963],{},"tel:",") render as ",[752,2966,2967],{},"\u003Ca target=\"_blank\" rel=\"noopener noreferrer\">","; a ",[752,2970,2971],{},"target"," or ",[752,2974,2975],{},"rel"," of your own wins. ",[752,2978,2979],{},"onClick"," always runs. A modified click, another mouse button or a ",[752,2982,2971],{}," stays with the browser.",[1528,2985,2987],{"id":2986},"i18nswitcher",[752,2988,2016],{},[748,2990,2991,2992,2995,2996,938,2999,941,3002,3005,3006,3008,3009,3011,3012,3014],{},"A dropdown of enabled locales (",[752,2993,2994],{},"disabled: true"," locales are hidden) with inline default styles. Its items are links, with ",[752,2997,2998],{},"lang",[752,3000,3001],{},"hreflang",[752,3003,3004],{},"dir"," from the locale. By default, clicking one sets the locale and calls the adapter's ",[752,3007,2088],{}," with the localized current path; a ",[752,3010,1992],{}," prop replaces that action. With a ",[752,3013,2045],{}," and no router, the browser follows the link. Escape or a click outside closes it.",[762,3016,3017,3025],{},[765,3018,3019],{},[768,3020,3021,3023],{},[771,3022,2564],{},[771,3024,983],{},[781,3026,3027,3042,3052,3063,3075],{},[768,3028,3029,3039],{},[786,3030,3031,938,3033,938,3036],{},[752,3032,1245],{},[752,3034,3035],{},"currentLocale",[752,3037,3038],{},"getLocaleName",[786,3040,3041],{},"override the provided values",[768,3043,3044,3049],{},[786,3045,3046],{},[752,3047,3048],{},"switchLocale(code)",[786,3050,3051],{},"replaces the built-in switch",[768,3053,3054,3058],{},[786,3055,3056],{},[752,3057,2045],{},[786,3059,3060,3061],{},"replaces ",[752,3062,2919],{},[768,3064,3065,3070],{},[786,3066,3067],{},[752,3068,3069],{},"customLabels",[786,3071,3072],{},[752,3073,3074],{},"{ de: 'DE' }",[768,3076,3077,3103],{},[786,3078,3079,938,3082,938,3085,938,3088,938,3091,938,3094,938,3097,938,3100],{},[752,3080,3081],{},"customWrapperStyle",[752,3083,3084],{},"customButtonStyle",[752,3086,3087],{},"customDropdownStyle",[752,3089,3090],{},"customItemStyle",[752,3092,3093],{},"customLinkStyle",[752,3095,3096],{},"customActiveLinkStyle",[752,3098,3099],{},"customDisabledLinkStyle",[752,3101,3102],{},"customIconStyle",[786,3104,3105],{},"style overrides",[1528,3107,3109],{"id":3108},"i18ngroup",[752,3110,3111],{},"\u003CI18nGroup>",[748,3113,2768,3114,3117,3118,3120,3121,3125,3126,2972,3128,3131,3132,3134],{},[752,3115,3116],{},"\u003Cdiv class=\"i18n-group\">"," that hands a prefixed ",[752,3119,1489],{}," to its children. It does ",[3122,3123,3124],"strong",{},"not"," prefix ",[752,3127,2555],{},[752,3129,3130],{},"t()"," calls inside it; only the ",[752,3133,1489],{}," it passes down is prefixed.",[762,3136,3137,3145],{},[765,3138,3139],{},[768,3140,3141,3143],{},[771,3142,2564],{},[771,3144,983],{},[781,3146,3147,3160],{},[768,3148,3149,3154],{},[786,3150,3151],{},[752,3152,3153],{},"prefix",[786,3155,3156,3157],{},"required, e.g. ",[752,3158,3159],{},"'profile'",[768,3161,3162,3167],{},[786,3163,3164],{},[752,3165,3166],{},"groupClass",[786,3168,3169],{},"extra class on the wrapper",[748,3171,3172,3173,3175,3176,3179,3180,1267],{},"The prefixed ",[752,3174,1489],{}," comes through a scoped slot in Vue (",[752,3177,3178],{},"v-slot=\"{ t }\"",") and a render-prop child in React, Preact and Solid (",[752,3181,3182],{},"{({ t }) => …}",[757,3184,909],{"id":3185},"typed-keys",[748,3187,3188,3190,3191,3194],{},[752,3189,3130],{}," accepts any string. To get autocomplete for your keys, generate a declaration with the ",[789,3192,3193],{"href":174},"types generator",". Keys are suggested, not enforced, and params are not typed.",[757,3196,3198],{"id":3197},"compared-with-the-nuxt-module","Compared with the Nuxt module",[748,3200,3201,3202,938,3204,3207,3208,3210,3211,3213],{},"The packages have no file-based routing, no server middleware and no translation loader: you decide when to load JSON (",[752,3203,1674],{},[752,3205,3206],{},"fetch",", or ",[752,3209,645],{}," on the server) and which router adapter to use. Locale detection, SEO meta and route generation are Nuxt features; Astro has its own middleware for detection and ",[752,3212,295],{}," for SEO.",[757,3215,3217],{"id":3216},"related","Related",[3219,3220,3221,3229,3236],"card-group",{},[3222,3223,3226],"card",{"icon":3224,"title":3225,"to":206},"i-lucide-braces","Package reference",[748,3227,3228],{},"Every export and signature",[3222,3230,3233],{"icon":3231,"title":3232,"to":31},"i-lucide-book-open","Translations",[748,3234,3235],{},"The file layout these packages read",[3222,3237],{"icon":3231,"title":3238,"to":12},"Getting started with Nuxt",[2935,3240,3241],{},"html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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 .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}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 .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}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 .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":1287,"searchDepth":1359,"depth":1359,"links":3243},[3244,3245,3248,3249,3255,3256,3257],{"id":759,"depth":1359,"text":760},{"id":958,"depth":1359,"text":959,"children":3246},[3247],{"id":1530,"depth":1409,"text":1531},{"id":1942,"depth":1359,"text":1943},{"id":301,"depth":1359,"text":299,"children":3250},[3251,3252,3253,3254],{"id":2552,"depth":1409,"text":2555},{"id":2886,"depth":1409,"text":2009},{"id":2986,"depth":1409,"text":2016},{"id":3108,"depth":1409,"text":3111},{"id":3185,"depth":1359,"text":909},{"id":3197,"depth":1359,"text":3198},{"id":3216,"depth":1359,"text":3217},"Which @i18n-micro package to use outside Nuxt, and the instance, router adapter and component model they share.","md","2026-11-04T00:40:16+04:00",null,{"outline":3263},"deep",{"title":136,"order":6},{"title":131,"description":3258},"E7D1aohpxOGbNocnmh5VmNZNfjbKpZQYWOjRToC1Y50",[3261,3268],{"title":139,"path":140,"description":3269},"Translations, locale switching and vue-router integration for Vue 3 apps with @i18n-micro\u002Fvue.",1794131151682]