[{"data":1,"prerenderedAt":1984},["ShallowReactive",2],{"navigation":3,"v3-navigation":411,"\u002Fintegrations\u002Fastro-islands":738,"\u002Fintegrations\u002Fastro-islands-surround":1979},[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":156,"body":740,"description":1970,"extension":1971,"lastUpdated":1972,"links":1973,"meta":1974,"navigation":1976,"path":157,"seo":1977,"stem":158,"__hash__":1978},"docs\u002Fintegrations\u002Fastro-islands.md",{"type":741,"value":742,"toc":1960},"minimark",[743,747,776,781,827,831,892,917,923,925,940,1143,1340,1343,1671,1684,1687,1746,1760,1764,1786,1788,1896,1935,1939,1956],[744,745,156],"h1",{"id":746},"astro-islands",[748,749,750,751,754,755,758,759,758,762,758,765,758,768,771,772,775],"p",{},"An island runs in the browser, where the server's i18n instance does not exist. ",[752,753,629],"code",{}," lets the page pick the keys an island needs, pass them as one prop, and read them in the island through a small framework adapter. You get ",[752,756,757],{},"t",", ",[752,760,761],{},"tc",[752,763,764],{},"tn",[752,766,767],{},"td",[752,769,770],{},"tdr"," and ",[752,773,774],{},"has"," in Vue, React, Preact and Svelte islands, with only the chosen strings in the HTML.",[777,778,780],"h2",{"id":779},"setup","Setup",[748,782,783,784,789,790,758,793,758,796,758,799,802,803,805,806,758,809,805,811,758,814,805,816,819,820,805,823,826],{},"Set up the ",[785,786,788],"a",{"href":787},".\u002Fastro-package#setup","Astro integration and middleware"," first, then add the framework integration you use (",[752,791,792],{},"@astrojs\u002Fvue",[752,794,795],{},"@astrojs\u002Freact",[752,797,798],{},"@astrojs\u002Fpreact",[752,800,801],{},"@astrojs\u002Fsvelte","). The island adapters need that framework as a peer: ",[752,804,274],{}," ",[752,807,808],{},"^3.3.0",[752,810,238],{},[752,812,813],{},"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",[752,815,234],{},[752,817,818],{},"^10.0.0 || ^11.0.0"," or ",[752,821,822],{},"svelte",[752,824,825],{},"^4.0.0 || ^5.0.0",".",[777,828,830],{"id":829},"pass-translations-to-an-island","Pass translations to an island",[832,833,837],"pre",{"className":834,"code":835,"language":210,"meta":836,"style":836},"language-astro shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","---\n\u002F\u002F src\u002Fpages\u002Findex.astro\nimport { getI18nProps } from '@i18n-micro\u002Fastro'\nimport Counter from '..\u002Fcomponents\u002FCounter.vue'\n\nconst i18n = getI18nProps(Astro, ['counter.title', 'counter.apples'])\n---\n\n\u003CCounter client:load i18n={i18n} \u002F>\n","",[752,838,839,846,852,858,864,871,877,882,887],{"__ignoreMap":836},[840,841,843],"span",{"class":842,"line":353},"line",[840,844,845],{},"---\n",[840,847,849],{"class":842,"line":848},2,[840,850,851],{},"\u002F\u002F src\u002Fpages\u002Findex.astro\n",[840,853,855],{"class":842,"line":854},3,[840,856,857],{},"import { getI18nProps } from '@i18n-micro\u002Fastro'\n",[840,859,861],{"class":842,"line":860},4,[840,862,863],{},"import Counter from '..\u002Fcomponents\u002FCounter.vue'\n",[840,865,867],{"class":842,"line":866},5,[840,868,870],{"emptyLinePlaceholder":869},true,"\n",[840,872,874],{"class":842,"line":873},6,[840,875,876],{},"const i18n = getI18nProps(Astro, ['counter.title', 'counter.apples'])\n",[840,878,880],{"class":842,"line":879},7,[840,881,845],{},[840,883,885],{"class":842,"line":884},8,[840,886,870],{"emptyLinePlaceholder":869},[840,888,889],{"class":842,"line":358},[840,890,891],{},"\u003CCounter client:load i18n={i18n} \u002F>\n",[748,893,894,897,898,901,902,905,906,909,910,913,914,916],{},[752,895,896],{},"getI18nProps(Astro, keys?)"," returns ",[752,899,900],{},"{ locale, fallbackLocale, currentRoute, translations }"," (type ",[752,903,904],{},"I18nClientProps","). Pass the keys the island uses: each is resolved on the server like ",[752,907,908],{},"t()"," (route, root and fallback dictionaries) and only found keys go into the HTML. Without ",[752,911,912],{},"keys",", everything ",[752,915,908],{}," can answer on this page is sent, in every island, so 2000 root keys are about 100 KB per island; in dev a warning says so above 20 KB.",[748,918,919,920,922],{},"Islands translate from that object only. ",[752,921,757],{}," returns the key for anything not passed, and linked messages are not resolved.",[777,924,139],{"id":274},[748,926,927,928,931,932,935,936,939],{},"Call ",[752,929,930],{},"provideI18n(() => props.i18n)"," in the island's root component and ",[752,933,934],{},"useAstroI18n()"," in its children. Vue's ",[752,937,938],{},"inject"," does not see a value provided by the same component, so the hook must run in a child, not in the root:",[832,941,944],{"className":942,"code":943,"language":274,"meta":836,"style":836},"language-vue shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003C!-- src\u002Fcomponents\u002FCounter.vue -->\n\u003Cscript setup lang=\"ts\">\nimport { provideI18n } from '@i18n-micro\u002Fastro\u002Fclient\u002Fvue'\nimport type { I18nClientProps } from '@i18n-micro\u002Fastro'\nimport CounterBody from '.\u002FCounterBody.vue'\n\nconst props = defineProps\u003C{ i18n: I18nClientProps }>()\nprovideI18n(() => props.i18n)\n\u003C\u002Fscript>\n\n\u003Ctemplate>\u003CCounterBody \u002F>\u003C\u002Ftemplate>\n",[752,945,946,952,984,1012,1034,1051,1055,1087,1109,1118,1122],{"__ignoreMap":836},[840,947,948],{"class":842,"line":353},[840,949,951],{"class":950},"sHwdD","\u003C!-- src\u002Fcomponents\u002FCounter.vue -->\n",[840,953,954,958,962,966,969,972,975,979,981],{"class":842,"line":848},[840,955,957],{"class":956},"sMK4o","\u003C",[840,959,961],{"class":960},"swJcz","script",[840,963,965],{"class":964},"spNyl"," setup",[840,967,968],{"class":964}," lang",[840,970,971],{"class":956},"=",[840,973,974],{"class":956},"\"",[840,976,978],{"class":977},"sfazB","ts",[840,980,974],{"class":956},[840,982,983],{"class":956},">\n",[840,985,986,990,993,997,1000,1003,1006,1009],{"class":842,"line":854},[840,987,989],{"class":988},"s7zQu","import",[840,991,992],{"class":956}," {",[840,994,996],{"class":995},"sTEyZ"," provideI18n",[840,998,999],{"class":956}," }",[840,1001,1002],{"class":988}," from",[840,1004,1005],{"class":956}," '",[840,1007,1008],{"class":977},"@i18n-micro\u002Fastro\u002Fclient\u002Fvue",[840,1010,1011],{"class":956},"'\n",[840,1013,1014,1016,1019,1021,1024,1026,1028,1030,1032],{"class":842,"line":860},[840,1015,989],{"class":988},[840,1017,1018],{"class":988}," type",[840,1020,992],{"class":956},[840,1022,1023],{"class":995}," I18nClientProps",[840,1025,999],{"class":956},[840,1027,1002],{"class":988},[840,1029,1005],{"class":956},[840,1031,629],{"class":977},[840,1033,1011],{"class":956},[840,1035,1036,1038,1041,1044,1046,1049],{"class":842,"line":866},[840,1037,989],{"class":988},[840,1039,1040],{"class":995}," CounterBody ",[840,1042,1043],{"class":988},"from",[840,1045,1005],{"class":956},[840,1047,1048],{"class":977},".\u002FCounterBody.vue",[840,1050,1011],{"class":956},[840,1052,1053],{"class":842,"line":873},[840,1054,870],{"emptyLinePlaceholder":869},[840,1056,1057,1060,1063,1065,1069,1072,1075,1078,1081,1084],{"class":842,"line":879},[840,1058,1059],{"class":964},"const",[840,1061,1062],{"class":995}," props ",[840,1064,971],{"class":956},[840,1066,1068],{"class":1067},"s2Zo4"," defineProps",[840,1070,1071],{"class":956},"\u003C{",[840,1073,1074],{"class":960}," i18n",[840,1076,1077],{"class":956},":",[840,1079,1023],{"class":1080},"sBMFI",[840,1082,1083],{"class":956}," }>",[840,1085,1086],{"class":995},"()\n",[840,1088,1089,1092,1095,1098,1101,1104,1106],{"class":842,"line":884},[840,1090,1091],{"class":1067},"provideI18n",[840,1093,1094],{"class":995},"(",[840,1096,1097],{"class":956},"()",[840,1099,1100],{"class":964}," =>",[840,1102,1103],{"class":995}," props",[840,1105,826],{"class":956},[840,1107,1108],{"class":995},"i18n)\n",[840,1110,1111,1114,1116],{"class":842,"line":358},[840,1112,1113],{"class":956},"\u003C\u002F",[840,1115,961],{"class":960},[840,1117,983],{"class":956},[840,1119,1120],{"class":842,"line":6},[840,1121,870],{"emptyLinePlaceholder":869},[840,1123,1125,1127,1130,1133,1136,1139,1141],{"class":842,"line":1124},11,[840,1126,957],{"class":956},[840,1128,1129],{"class":960},"template",[840,1131,1132],{"class":956},">\u003C",[840,1134,1135],{"class":960},"CounterBody",[840,1137,1138],{"class":956}," \u002F>\u003C\u002F",[840,1140,1129],{"class":960},[840,1142,983],{"class":956},[832,1144,1146],{"className":942,"code":1145,"language":274,"meta":836,"style":836},"\u003C!-- src\u002Fcomponents\u002FCounterBody.vue -->\n\u003Cscript setup lang=\"ts\">\nimport { ref } from 'vue'\nimport { useAstroI18n } from '@i18n-micro\u002Fastro\u002Fclient\u002Fvue'\n\nconst { t, tc } = useAstroI18n()\nconst count = ref(0)\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Ch3>{{ t('counter.title') }}\u003C\u002Fh3>\n  \u003Cbutton @click=\"count++\">{{ tc('counter.apples', count) }}\u003C\u002Fbutton>\n\u003C\u002Ftemplate>\n",[752,1147,1148,1153,1173,1192,1211,1215,1240,1260,1268,1272,1280,1300,1331],{"__ignoreMap":836},[840,1149,1150],{"class":842,"line":353},[840,1151,1152],{"class":950},"\u003C!-- src\u002Fcomponents\u002FCounterBody.vue -->\n",[840,1154,1155,1157,1159,1161,1163,1165,1167,1169,1171],{"class":842,"line":848},[840,1156,957],{"class":956},[840,1158,961],{"class":960},[840,1160,965],{"class":964},[840,1162,968],{"class":964},[840,1164,971],{"class":956},[840,1166,974],{"class":956},[840,1168,978],{"class":977},[840,1170,974],{"class":956},[840,1172,983],{"class":956},[840,1174,1175,1177,1179,1182,1184,1186,1188,1190],{"class":842,"line":854},[840,1176,989],{"class":988},[840,1178,992],{"class":956},[840,1180,1181],{"class":995}," ref",[840,1183,999],{"class":956},[840,1185,1002],{"class":988},[840,1187,1005],{"class":956},[840,1189,274],{"class":977},[840,1191,1011],{"class":956},[840,1193,1194,1196,1198,1201,1203,1205,1207,1209],{"class":842,"line":860},[840,1195,989],{"class":988},[840,1197,992],{"class":956},[840,1199,1200],{"class":995}," useAstroI18n",[840,1202,999],{"class":956},[840,1204,1002],{"class":988},[840,1206,1005],{"class":956},[840,1208,1008],{"class":977},[840,1210,1011],{"class":956},[840,1212,1213],{"class":842,"line":866},[840,1214,870],{"emptyLinePlaceholder":869},[840,1216,1217,1219,1221,1224,1227,1230,1233,1236,1238],{"class":842,"line":873},[840,1218,1059],{"class":964},[840,1220,992],{"class":956},[840,1222,1223],{"class":995}," t",[840,1225,1226],{"class":956},",",[840,1228,1229],{"class":995}," tc ",[840,1231,1232],{"class":956},"}",[840,1234,1235],{"class":956}," =",[840,1237,1200],{"class":1067},[840,1239,1086],{"class":995},[840,1241,1242,1244,1247,1249,1251,1253,1257],{"class":842,"line":879},[840,1243,1059],{"class":964},[840,1245,1246],{"class":995}," count ",[840,1248,971],{"class":956},[840,1250,1181],{"class":1067},[840,1252,1094],{"class":995},[840,1254,1256],{"class":1255},"sbssI","0",[840,1258,1259],{"class":995},")\n",[840,1261,1262,1264,1266],{"class":842,"line":884},[840,1263,1113],{"class":956},[840,1265,961],{"class":960},[840,1267,983],{"class":956},[840,1269,1270],{"class":842,"line":358},[840,1271,870],{"emptyLinePlaceholder":869},[840,1273,1274,1276,1278],{"class":842,"line":6},[840,1275,957],{"class":956},[840,1277,1129],{"class":960},[840,1279,983],{"class":956},[840,1281,1282,1285,1288,1291,1294,1296,1298],{"class":842,"line":1124},[840,1283,1284],{"class":956},"  \u003C",[840,1286,1287],{"class":960},"h3",[840,1289,1290],{"class":956},">",[840,1292,1293],{"class":995},"{{ t('counter.title') }}",[840,1295,1113],{"class":956},[840,1297,1287],{"class":960},[840,1299,983],{"class":956},[840,1301,1303,1305,1308,1311,1313,1315,1318,1320,1322,1325,1327,1329],{"class":842,"line":1302},12,[840,1304,1284],{"class":956},[840,1306,1307],{"class":960},"button",[840,1309,1310],{"class":964}," @click",[840,1312,971],{"class":956},[840,1314,974],{"class":956},[840,1316,1317],{"class":977},"count++",[840,1319,974],{"class":956},[840,1321,1290],{"class":956},[840,1323,1324],{"class":995},"{{ tc('counter.apples', count) }}",[840,1326,1113],{"class":956},[840,1328,1307],{"class":960},[840,1330,983],{"class":956},[840,1332,1334,1336,1338],{"class":842,"line":1333},13,[840,1335,1113],{"class":956},[840,1337,1129],{"class":960},[840,1339,983],{"class":956},[777,1341,144],{"id":1342},"react-and-preact",[832,1344,1348],{"className":1345,"code":1346,"language":1347,"meta":836,"style":836},"language-tsx shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F src\u002Fcomponents\u002FCounter.tsx\nimport { useState } from 'react'\nimport { I18nProvider, useAstroI18n } from '@i18n-micro\u002Fastro\u002Fclient\u002Freact'\nimport type { I18nClientProps } from '@i18n-micro\u002Fastro'\n\nfunction Body() {\n  const { t, tc } = useAstroI18n()\n  const [count, setCount] = useState(0)\n  return \u003Cbutton onClick={() => setCount(count + 1)}>{t('counter.title')}: {tc('counter.apples', count)}\u003C\u002Fbutton>\n}\n\nexport default function Counter({ i18n }: { i18n: I18nClientProps }) {\n  return (\n    \u003CI18nProvider value={i18n}>\n      \u003CBody \u002F>\n    \u003C\u002FI18nProvider>\n  )\n}\n","tsx",[752,1349,1350,1355,1374,1398,1418,1422,1435,1457,1485,1565,1570,1574,1610,1617,1638,1650,1660,1666],{"__ignoreMap":836},[840,1351,1352],{"class":842,"line":353},[840,1353,1354],{"class":950},"\u002F\u002F src\u002Fcomponents\u002FCounter.tsx\n",[840,1356,1357,1359,1361,1364,1366,1368,1370,1372],{"class":842,"line":848},[840,1358,989],{"class":988},[840,1360,992],{"class":956},[840,1362,1363],{"class":995}," useState",[840,1365,999],{"class":956},[840,1367,1002],{"class":988},[840,1369,1005],{"class":956},[840,1371,238],{"class":977},[840,1373,1011],{"class":956},[840,1375,1376,1378,1380,1383,1385,1387,1389,1391,1393,1396],{"class":842,"line":854},[840,1377,989],{"class":988},[840,1379,992],{"class":956},[840,1381,1382],{"class":995}," I18nProvider",[840,1384,1226],{"class":956},[840,1386,1200],{"class":995},[840,1388,999],{"class":956},[840,1390,1002],{"class":988},[840,1392,1005],{"class":956},[840,1394,1395],{"class":977},"@i18n-micro\u002Fastro\u002Fclient\u002Freact",[840,1397,1011],{"class":956},[840,1399,1400,1402,1404,1406,1408,1410,1412,1414,1416],{"class":842,"line":860},[840,1401,989],{"class":988},[840,1403,1018],{"class":988},[840,1405,992],{"class":956},[840,1407,1023],{"class":995},[840,1409,999],{"class":956},[840,1411,1002],{"class":988},[840,1413,1005],{"class":956},[840,1415,629],{"class":977},[840,1417,1011],{"class":956},[840,1419,1420],{"class":842,"line":866},[840,1421,870],{"emptyLinePlaceholder":869},[840,1423,1424,1427,1430,1432],{"class":842,"line":873},[840,1425,1426],{"class":964},"function",[840,1428,1429],{"class":1067}," Body",[840,1431,1097],{"class":956},[840,1433,1434],{"class":956}," {\n",[840,1436,1437,1440,1442,1444,1446,1449,1451,1453,1455],{"class":842,"line":879},[840,1438,1439],{"class":964},"  const",[840,1441,992],{"class":956},[840,1443,1223],{"class":995},[840,1445,1226],{"class":956},[840,1447,1448],{"class":995}," tc",[840,1450,999],{"class":956},[840,1452,1235],{"class":956},[840,1454,1200],{"class":1067},[840,1456,1086],{"class":960},[840,1458,1459,1461,1464,1467,1469,1472,1475,1477,1479,1481,1483],{"class":842,"line":884},[840,1460,1439],{"class":964},[840,1462,1463],{"class":956}," [",[840,1465,1466],{"class":995},"count",[840,1468,1226],{"class":956},[840,1470,1471],{"class":995}," setCount",[840,1473,1474],{"class":956},"]",[840,1476,1235],{"class":956},[840,1478,1363],{"class":1067},[840,1480,1094],{"class":960},[840,1482,1256],{"class":1255},[840,1484,1259],{"class":960},[840,1486,1487,1490,1493,1495,1498,1501,1503,1505,1508,1511,1514,1517,1520,1522,1524,1527,1530,1532,1534,1536,1539,1542,1544,1546,1548,1551,1553,1555,1558,1561,1563],{"class":842,"line":358},[840,1488,1489],{"class":988},"  return",[840,1491,1492],{"class":956}," \u003C",[840,1494,1307],{"class":960},[840,1496,1497],{"class":964}," onClick",[840,1499,1500],{"class":956},"={()",[840,1502,1100],{"class":964},[840,1504,1471],{"class":1067},[840,1506,1507],{"class":995},"(count ",[840,1509,1510],{"class":956},"+",[840,1512,1513],{"class":1255}," 1",[840,1515,1516],{"class":995},")",[840,1518,1519],{"class":956},"}>{",[840,1521,757],{"class":1067},[840,1523,1094],{"class":995},[840,1525,1526],{"class":956},"'",[840,1528,1529],{"class":977},"counter.title",[840,1531,1526],{"class":956},[840,1533,1516],{"class":995},[840,1535,1232],{"class":956},[840,1537,1538],{"class":995},": ",[840,1540,1541],{"class":956},"{",[840,1543,761],{"class":1067},[840,1545,1094],{"class":995},[840,1547,1526],{"class":956},[840,1549,1550],{"class":977},"counter.apples",[840,1552,1526],{"class":956},[840,1554,1226],{"class":956},[840,1556,1557],{"class":995}," count)",[840,1559,1560],{"class":956},"}\u003C\u002F",[840,1562,1307],{"class":960},[840,1564,983],{"class":956},[840,1566,1567],{"class":842,"line":6},[840,1568,1569],{"class":956},"}\n",[840,1571,1572],{"class":842,"line":1124},[840,1573,870],{"emptyLinePlaceholder":869},[840,1575,1576,1579,1582,1585,1588,1591,1594,1597,1599,1601,1603,1605,1608],{"class":842,"line":1302},[840,1577,1578],{"class":988},"export",[840,1580,1581],{"class":988}," default",[840,1583,1584],{"class":964}," function",[840,1586,1587],{"class":1067}," Counter",[840,1589,1590],{"class":956},"({",[840,1592,1074],{"class":1593},"sHdIc",[840,1595,1596],{"class":956}," }:",[840,1598,992],{"class":956},[840,1600,1074],{"class":960},[840,1602,1077],{"class":956},[840,1604,1023],{"class":1080},[840,1606,1607],{"class":956}," })",[840,1609,1434],{"class":956},[840,1611,1612,1614],{"class":842,"line":1333},[840,1613,1489],{"class":988},[840,1615,1616],{"class":960}," (\n",[840,1618,1620,1623,1626,1629,1632,1635],{"class":842,"line":1619},14,[840,1621,1622],{"class":956},"    \u003C",[840,1624,1625],{"class":1080},"I18nProvider",[840,1627,1628],{"class":964}," value",[840,1630,1631],{"class":956},"={",[840,1633,1634],{"class":995},"i18n",[840,1636,1637],{"class":956},"}>\n",[840,1639,1641,1644,1647],{"class":842,"line":1640},15,[840,1642,1643],{"class":956},"      \u003C",[840,1645,1646],{"class":1080},"Body",[840,1648,1649],{"class":956}," \u002F>\n",[840,1651,1653,1656,1658],{"class":842,"line":1652},16,[840,1654,1655],{"class":956},"    \u003C\u002F",[840,1657,1625],{"class":1080},[840,1659,983],{"class":956},[840,1661,1663],{"class":842,"line":1662},17,[840,1664,1665],{"class":960},"  )\n",[840,1667,1669],{"class":842,"line":1668},18,[840,1670,1569],{"class":956},[748,1672,1673,1674,771,1676,1679,1680,1683],{},"For Preact import ",[752,1675,1625],{},[752,1677,1678],{},"useAstroI18n"," from ",[752,1681,1682],{},"@i18n-micro\u002Fastro\u002Fclient\u002Fpreact","; the API is the same.",[777,1685,1686],{"id":822},"Svelte",[832,1688,1691],{"className":1689,"code":1690,"language":822,"meta":836,"style":836},"language-svelte shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003C!-- src\u002Fcomponents\u002FCounter.svelte -->\n\u003Cscript lang=\"ts\">\n  import { createI18nStore, useAstroI18n } from '@i18n-micro\u002Fastro\u002Fclient\u002Fsvelte'\n  import type { I18nClientProps } from '@i18n-micro\u002Fastro'\n\n  export let i18n: I18nClientProps\n  const { t, tc } = useAstroI18n(createI18nStore(i18n))\n  let count = 0\n\u003C\u002Fscript>\n\n\u003Cbutton on:click={() => count++}>{t('counter.title')}: {tc('counter.apples', count)}\u003C\u002Fbutton>\n",[752,1692,1693,1698,1703,1708,1713,1717,1722,1727,1732,1737,1741],{"__ignoreMap":836},[840,1694,1695],{"class":842,"line":353},[840,1696,1697],{},"\u003C!-- src\u002Fcomponents\u002FCounter.svelte -->\n",[840,1699,1700],{"class":842,"line":848},[840,1701,1702],{},"\u003Cscript lang=\"ts\">\n",[840,1704,1705],{"class":842,"line":854},[840,1706,1707],{},"  import { createI18nStore, useAstroI18n } from '@i18n-micro\u002Fastro\u002Fclient\u002Fsvelte'\n",[840,1709,1710],{"class":842,"line":860},[840,1711,1712],{},"  import type { I18nClientProps } from '@i18n-micro\u002Fastro'\n",[840,1714,1715],{"class":842,"line":866},[840,1716,870],{"emptyLinePlaceholder":869},[840,1718,1719],{"class":842,"line":873},[840,1720,1721],{},"  export let i18n: I18nClientProps\n",[840,1723,1724],{"class":842,"line":879},[840,1725,1726],{},"  const { t, tc } = useAstroI18n(createI18nStore(i18n))\n",[840,1728,1729],{"class":842,"line":884},[840,1730,1731],{},"  let count = 0\n",[840,1733,1734],{"class":842,"line":358},[840,1735,1736],{},"\u003C\u002Fscript>\n",[840,1738,1739],{"class":842,"line":6},[840,1740,870],{"emptyLinePlaceholder":869},[840,1742,1743],{"class":842,"line":1124},[840,1744,1745],{},"\u003Cbutton on:click={() => count++}>{t('counter.title')}: {tc('counter.apples', count)}\u003C\u002Fbutton>\n",[748,1747,1748,1751,1752,1755,1756,1759],{},[752,1749,1750],{},"useAstroI18n(store)"," also returns the ",[752,1753,1754],{},"store"," for ",[752,1757,1758],{},"$store"," reads in the template.",[777,1761,1763],{"id":1762},"persisted-islands","Persisted islands",[748,1765,1766,1767,1770,1771,758,1774,1777,1778,1781,1782,1785],{},"An island with ",[752,1768,1769],{},"transition:persist"," gets new props after a navigation. React, Preact and Vue (given a getter) follow them. In Svelte, keep the store and pass them on: ",[752,1772,1773],{},"const store = createI18nStore(i18n)",[752,1775,1776],{},"const { t } = useAstroI18n(store)",", then ",[752,1779,1780],{},"$: store.set(i18n)"," (with runes, ",[752,1783,1784],{},"$effect(() => store.set(i18n))",").",[777,1787,181],{"id":183},[1789,1790,1791,1804],"table",{},[1792,1793,1794],"thead",{},[1795,1796,1797,1801],"tr",{},[1798,1799,1800],"th",{},"Entry",[1798,1802,1803],{},"Exports",[1805,1806,1807,1821,1834,1851,1865,1879],"tbody",{},[1795,1808,1809,1813],{},[767,1810,1811],{},[752,1812,629],{},[767,1814,1815,1818,1819],{},[752,1816,1817],{},"getI18nProps",", type ",[752,1820,904],{},[1795,1822,1823,1827],{},[767,1824,1825],{},[752,1826,1008],{},[767,1828,1829,758,1832],{},[752,1830,1831],{},"provideI18n(props | () => props)",[752,1833,934],{},[1795,1835,1836,1840],{},[767,1837,1838],{},[752,1839,1395],{},[767,1841,1842,1844,1845,1848,1849],{},[752,1843,1625],{}," (",[752,1846,1847],{},"value"," prop), ",[752,1850,934],{},[1795,1852,1853,1857],{},[767,1854,1855],{},[752,1856,1682],{},[767,1858,1859,1844,1861,1848,1863],{},[752,1860,1625],{},[752,1862,1847],{},[752,1864,934],{},[1795,1866,1867,1872],{},[767,1868,1869],{},[752,1870,1871],{},"@i18n-micro\u002Fastro\u002Fclient\u002Fsvelte",[767,1873,1874,758,1877],{},[752,1875,1876],{},"createI18nStore(props)",[752,1878,1750],{},[1795,1880,1881,1886],{},[767,1882,1883],{},[752,1884,1885],{},"@i18n-micro\u002Fastro\u002Fclient",[767,1887,1888,1889,758,1892,1895],{},"the pure ",[752,1890,1891],{},"translate",[752,1893,1894],{},"hasTranslation",", with no framework",[748,1897,1898,1899,897,1901,758,1903,758,1905,758,1907,758,1909,758,1911,758,1913,758,1915,758,1918,1921,1922,1925,1926,1928,1929,1931,1932,1934],{},"Every ",[752,1900,1678],{},[752,1902,757],{},[752,1904,978],{},[752,1906,761],{},[752,1908,764],{},[752,1910,767],{},[752,1912,770],{},[752,1914,774],{},[752,1916,1917],{},"setLocale",[752,1919,1920],{},"setRoute"," and the ",[752,1923,1924],{},"locale",". An island has one merged dictionary, so its ",[752,1927,774],{}," is true for a key ",[752,1930,757],{}," can answer, also from the fallback locale; on the server ",[752,1933,774],{}," looks at the active locale only.",[777,1936,1938],{"id":1937},"related","Related",[1940,1941,1942,1950],"card-group",{},[1943,1944,1947],"card",{"icon":1945,"title":152,"to":1946},"i-lucide-book-open",".\u002Fastro-package",[748,1948,1949],{},"Middleware, routes, SEO",[1943,1951,1953],{"icon":1945,"title":131,"to":1952},".\u002F",[748,1954,1955],{},"Translation and plural rules",[1957,1958,1959],"style",{},"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 .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 .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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 .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}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}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}",{"title":836,"searchDepth":848,"depth":848,"links":1961},[1962,1963,1964,1965,1966,1967,1968,1969],{"id":779,"depth":848,"text":780},{"id":829,"depth":848,"text":830},{"id":274,"depth":848,"text":139},{"id":1342,"depth":848,"text":144},{"id":822,"depth":848,"text":1686},{"id":1762,"depth":848,"text":1763},{"id":183,"depth":848,"text":181},{"id":1937,"depth":848,"text":1938},"Translations inside Vue, React, Preact and Svelte islands with @i18n-micro\u002Fastro.","md","2026-11-04T00:40:16+04:00",null,{"outline":1975},"deep",{"order":39,"group":142},{"title":156,"description":1970},"iLTsSUmIYtljniw4lMVfsrsf3xKedG9J5Xr0ajyiqJo",[1980,1982],{"title":152,"path":153,"description":1981},"Server-side translations, locale-prefixed routes, home-page detection and SEO tags for Astro with @i18n-micro\u002Fastro.",{"title":160,"path":161,"description":1983},"Runtime translations, $t in markdown, locale sync and SEO tags for VitePress sites with @i18n-micro\u002Fvitepress.",1794131139223]