[{"data":1,"prerenderedAt":1930},["ShallowReactive",2],{"navigation":3,"v3-navigation":411,"\u002Fintegrations\u002Fdevtools-ui-package":738,"\u002Fintegrations\u002Fdevtools-ui-package-surround":1927},[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":177,"body":740,"description":1918,"extension":1919,"lastUpdated":1920,"links":1921,"meta":1922,"navigation":1924,"path":178,"seo":1925,"stem":179,"__hash__":1926},"docs\u002Fintegrations\u002Fdevtools-ui-package.md",{"type":741,"value":742,"toc":1911},"minimark",[743,746,758,767,772,835,838,842,982,1087,1098,1165,1184,1187,1289,1292,1296,1303,1742,1770,1784,1786,1879,1885,1889,1907],[744,745,177],"h1",{"id":222},[747,748,749,752,753,757],"p",{},[750,751,637],"code",{}," is the translation editor from the Nuxt DevTools tab, packaged as a web component with a Vite plugin. Add it to a Vue, React, Preact, Solid or Astro project to browse and edit the JSON files in your translation folder from the browser during development. Nuxt apps already have it in ",[754,755,756],"a",{"href":105},"Nuxt DevTools",".",[747,759,760],{},[761,762],"img",{"alt":763,"height":764,"src":765,"width":766},"The DevTools UI: a file tree and an editor with the default-locale text next to each key",852,"\u002Fdevtools\u002F02-translations-editor-dark.webp",1392,[768,769,771],"h2",{"id":770},"install","Install",[773,774,775,802,819],"code-group",{},[776,777,783],"pre",{"className":778,"code":779,"filename":780,"language":781,"meta":782,"style":782},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pnpm add -D @i18n-micro\u002Fdevtools-ui\n","pnpm","bash","",[750,784,785],{"__ignoreMap":782},[786,787,789,792,796,799],"span",{"class":788,"line":353},"line",[786,790,780],{"class":791},"sBMFI",[786,793,795],{"class":794},"sfazB"," add",[786,797,798],{"class":794}," -D",[786,800,801],{"class":794}," @i18n-micro\u002Fdevtools-ui\n",[776,803,806],{"className":778,"code":804,"filename":805,"language":781,"meta":782,"style":782},"npm install -D @i18n-micro\u002Fdevtools-ui\n","npm",[750,807,808],{"__ignoreMap":782},[786,809,810,812,815,817],{"class":788,"line":353},[786,811,805],{"class":791},[786,813,814],{"class":794}," install",[786,816,798],{"class":794},[786,818,801],{"class":794},[776,820,823],{"className":778,"code":821,"filename":822,"language":781,"meta":782,"style":782},"yarn add -D @i18n-micro\u002Fdevtools-ui\n","yarn",[750,824,825],{"__ignoreMap":782},[786,826,827,829,831,833],{"class":788,"line":353},[786,828,822],{"class":791},[786,830,795],{"class":794},[786,832,798],{"class":794},[786,834,801],{"class":794},[747,836,837],{},"No peer dependencies.",[768,839,841],{"id":840},"setup","Setup",[776,843,847],{"className":844,"code":845,"language":846,"meta":782,"style":782},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F vite.config.ts\nimport { defineConfig } from 'vite'\nimport { i18nDevToolsPlugin } from '@i18n-micro\u002Fdevtools-ui\u002Fvite'\n\nexport default defineConfig({\n  plugins: [i18nDevToolsPlugin({ translationDir: 'src\u002Flocales' })],\n})\n","ts",[750,848,849,855,885,906,913,931,973],{"__ignoreMap":782},[786,850,851],{"class":788,"line":353},[786,852,854],{"class":853},"sHwdD","\u002F\u002F vite.config.ts\n",[786,856,858,862,866,870,873,876,879,882],{"class":788,"line":857},2,[786,859,861],{"class":860},"s7zQu","import",[786,863,865],{"class":864},"sMK4o"," {",[786,867,869],{"class":868},"sTEyZ"," defineConfig",[786,871,872],{"class":864}," }",[786,874,875],{"class":860}," from",[786,877,878],{"class":864}," '",[786,880,881],{"class":794},"vite",[786,883,884],{"class":864},"'\n",[786,886,888,890,892,895,897,899,901,904],{"class":788,"line":887},3,[786,889,861],{"class":860},[786,891,865],{"class":864},[786,893,894],{"class":868}," i18nDevToolsPlugin",[786,896,872],{"class":864},[786,898,875],{"class":860},[786,900,878],{"class":864},[786,902,903],{"class":794},"@i18n-micro\u002Fdevtools-ui\u002Fvite",[786,905,884],{"class":864},[786,907,909],{"class":788,"line":908},4,[786,910,912],{"emptyLinePlaceholder":911},true,"\n",[786,914,916,919,922,925,928],{"class":788,"line":915},5,[786,917,918],{"class":860},"export",[786,920,921],{"class":860}," default",[786,923,869],{"class":924},"s2Zo4",[786,926,927],{"class":868},"(",[786,929,930],{"class":864},"{\n",[786,932,934,938,941,944,947,949,952,955,957,959,962,965,967,970],{"class":788,"line":933},6,[786,935,937],{"class":936},"swJcz","  plugins",[786,939,940],{"class":864},":",[786,942,943],{"class":868}," [",[786,945,946],{"class":924},"i18nDevToolsPlugin",[786,948,927],{"class":868},[786,950,951],{"class":864},"{",[786,953,954],{"class":936}," translationDir",[786,956,940],{"class":864},[786,958,878],{"class":864},[786,960,961],{"class":794},"src\u002Flocales",[786,963,964],{"class":864},"'",[786,966,872],{"class":864},[786,968,969],{"class":868},")]",[786,971,972],{"class":864},",\n",[786,974,976,979],{"class":788,"line":975},7,[786,977,978],{"class":864},"}",[786,980,981],{"class":868},")\n",[983,984,985,1001],"table",{},[986,987,988],"thead",{},[989,990,991,995,998],"tr",{},[992,993,994],"th",{},"Option",[992,996,997],{},"Default",[992,999,1000],{},"Notes",[1002,1003,1004,1020,1035,1054,1072],"tbody",{},[989,1005,1006,1012,1017],{},[1007,1008,1009],"td",{},[750,1010,1011],{},"translationDir",[1007,1013,1014],{},[750,1015,1016],{},"'src\u002Flocales'",[1007,1018,1019],{},"Folder with the JSON files, relative to the Vite root.",[989,1021,1022,1027,1032],{},[1007,1023,1024],{},[750,1025,1026],{},"base",[1007,1028,1029],{},[750,1030,1031],{},"'\u002F__i18n_api'",[1007,1033,1034],{},"Base path of the API endpoints.",[989,1036,1037,1042,1047],{},[1007,1038,1039],{},[750,1040,1041],{},"injectButton",[1007,1043,1044],{},[750,1045,1046],{},"true",[1007,1048,1049,1050,1053],{},"Add a floating button to pages served through Vite's ",[750,1051,1052],{},"index.html"," transform. Astro has no such pages: see below.",[989,1055,1056,1061,1066],{},[1007,1057,1058],{},[750,1059,1060],{},"defaultLocale",[1007,1062,1063,1064],{},"first locale file in ",[750,1065,1011],{},[1007,1067,1068,1069,757],{},"Reported by ",[750,1070,1071],{},"\u002Fconfig",[989,1073,1074,1079,1083],{},[1007,1075,1076],{},[750,1077,1078],{},"fallbackLocale",[1007,1080,1081],{},[750,1082,1060],{},[1007,1084,1068,1085,757],{},[750,1086,1071],{},[747,1088,1089,1090,1093,1094,1097],{},"The plugin runs on the dev server only (",[750,1091,1092],{},"apply: 'serve'","); a production build contains nothing from it. The button opens ",[750,1095,1096],{},"\u002F__i18n_devtools.html",", which reads and saves files through the plugin's endpoints:",[983,1099,1100,1110],{},[986,1101,1102],{},[989,1103,1104,1107],{},[992,1105,1106],{},"Endpoint",[992,1108,1109],{},"Does",[1002,1111,1112,1125,1146],{},[989,1113,1114,1119],{},[1007,1115,1116],{},[750,1117,1118],{},"GET \u003Cbase>\u002Ftranslations",[1007,1120,1121,1122,1124],{},"every dictionary under ",[750,1123,1011],{},", by relative path",[989,1126,1127,1132],{},[1007,1128,1129],{},[750,1130,1131],{},"POST \u003Cbase>\u002Fsave",[1007,1133,1134,1135,1138,1139,1142,1143,1145],{},"body ",[750,1136,1137],{},"{ file, content }","; overwrites an existing ",[750,1140,1141],{},".json"," inside ",[750,1144,1011],{},", 403 for anything else. It never creates a file",[989,1147,1148,1153],{},[1007,1149,1150],{},[750,1151,1152],{},"GET \u003Cbase>\u002Fconfig",[1007,1154,1155,1158,1159,1162,1163],{},[750,1156,1157],{},"{ defaultLocale, fallbackLocale, locales, translationDir }","; ",[750,1160,1161],{},"locales"," come from the root files in ",[750,1164,1011],{},[747,1166,1167,1168,1171,1172,1175,1176,1179,1180,1183],{},"The endpoints answer the devtools page only: a request from another origin or host is a ",[750,1169,1170],{},"403",", and ",[750,1173,1174],{},"\u002Fsave"," takes ",[750,1177,1178],{},"application\u002Fjson"," only (",[750,1181,1182],{},"415","). The page hears about file changes over Vite's HMR socket.",[747,1185,1186],{},"In Astro, add the integration instead of the plugin. It adds an app to the dev toolbar:",[776,1188,1190],{"className":844,"code":1189,"language":846,"meta":782,"style":782},"\u002F\u002F astro.config.mjs\nimport { defineConfig } from 'astro\u002Fconfig'\nimport { i18nDevToolsIntegration } from '@i18n-micro\u002Fdevtools-ui\u002Fvite'\n\nexport default defineConfig({\n  integrations: [i18nDevToolsIntegration({ translationDir: 'src\u002Flocales' })],\n})\n",[750,1191,1192,1197,1216,1235,1239,1251,1283],{"__ignoreMap":782},[786,1193,1194],{"class":788,"line":353},[786,1195,1196],{"class":853},"\u002F\u002F astro.config.mjs\n",[786,1198,1199,1201,1203,1205,1207,1209,1211,1214],{"class":788,"line":857},[786,1200,861],{"class":860},[786,1202,865],{"class":864},[786,1204,869],{"class":868},[786,1206,872],{"class":864},[786,1208,875],{"class":860},[786,1210,878],{"class":864},[786,1212,1213],{"class":794},"astro\u002Fconfig",[786,1215,884],{"class":864},[786,1217,1218,1220,1222,1225,1227,1229,1231,1233],{"class":788,"line":887},[786,1219,861],{"class":860},[786,1221,865],{"class":864},[786,1223,1224],{"class":868}," i18nDevToolsIntegration",[786,1226,872],{"class":864},[786,1228,875],{"class":860},[786,1230,878],{"class":864},[786,1232,903],{"class":794},[786,1234,884],{"class":864},[786,1236,1237],{"class":788,"line":908},[786,1238,912],{"emptyLinePlaceholder":911},[786,1240,1241,1243,1245,1247,1249],{"class":788,"line":915},[786,1242,918],{"class":860},[786,1244,921],{"class":860},[786,1246,869],{"class":924},[786,1248,927],{"class":868},[786,1250,930],{"class":864},[786,1252,1253,1256,1258,1260,1263,1265,1267,1269,1271,1273,1275,1277,1279,1281],{"class":788,"line":933},[786,1254,1255],{"class":936},"  integrations",[786,1257,940],{"class":864},[786,1259,943],{"class":868},[786,1261,1262],{"class":924},"i18nDevToolsIntegration",[786,1264,927],{"class":868},[786,1266,951],{"class":864},[786,1268,954],{"class":936},[786,1270,940],{"class":864},[786,1272,878],{"class":864},[786,1274,961],{"class":794},[786,1276,964],{"class":864},[786,1278,872],{"class":864},[786,1280,969],{"class":868},[786,1282,972],{"class":864},[786,1284,1285,1287],{"class":788,"line":975},[786,1286,978],{"class":864},[786,1288,981],{"class":868},[747,1290,1291],{},"Saving only writes the file. An app that imports the JSON through Vite gets it through HMR; for edits applied to the running instance directly, use a bridge.",[768,1293,1295],{"id":1294},"bridge-to-a-live-instance","Bridge to a live instance",[747,1297,1298,1299,1302],{},"To embed the editor in your own page and have edits applied to the running instance at once, create a bridge from an adapter and pass it to the ",[750,1300,1301],{},"\u003Ci18n-devtools-ui>"," element:",[776,1304,1306],{"className":844,"code":1305,"language":846,"meta":782,"style":782},"import { createBridge, register } from '@i18n-micro\u002Fdevtools-ui'\nimport { i18n, locales } from '.\u002Fi18n' \u002F\u002F a runtime, React, Preact or Solid instance\n\nregister() \u002F\u002F defines \u003Ci18n-devtools-ui> once\n\nconst bridge = createBridge({\n  adapter: {\n    getRouteCache: () => Object.fromEntries(i18n.storage.translations),\n    addTranslations: (locale, content, merge) => i18n.addTranslations(locale, content, merge),\n    addRouteTranslations: (locale, route, content, merge) => i18n.addRouteTranslations(locale, route, content, merge),\n    subscribe: (cb) => i18n.subscribe(cb),\n    getCurrentLocale: () => i18n.locale,\n  },\n  locales,\n  defaultLocale: 'en',\n  translationDir: 'src\u002Flocales',\n})\n\nconst el = document.createElement('i18n-devtools-ui') as HTMLElement & { bridge: typeof bridge }\nel.bridge = bridge\ndocument.body.append(el)\n",[750,1307,1308,1333,1361,1365,1376,1380,1398,1408,1445,1495,1546,1575,1595,1601,1609,1626,1642,1649,1654,1708,1723],{"__ignoreMap":782},[786,1309,1310,1312,1314,1317,1320,1323,1325,1327,1329,1331],{"class":788,"line":353},[786,1311,861],{"class":860},[786,1313,865],{"class":864},[786,1315,1316],{"class":868}," createBridge",[786,1318,1319],{"class":864},",",[786,1321,1322],{"class":868}," register",[786,1324,872],{"class":864},[786,1326,875],{"class":860},[786,1328,878],{"class":864},[786,1330,637],{"class":794},[786,1332,884],{"class":864},[786,1334,1335,1337,1339,1342,1344,1347,1349,1351,1353,1356,1358],{"class":788,"line":857},[786,1336,861],{"class":860},[786,1338,865],{"class":864},[786,1340,1341],{"class":868}," i18n",[786,1343,1319],{"class":864},[786,1345,1346],{"class":868}," locales",[786,1348,872],{"class":864},[786,1350,875],{"class":860},[786,1352,878],{"class":864},[786,1354,1355],{"class":794},".\u002Fi18n",[786,1357,964],{"class":864},[786,1359,1360],{"class":853}," \u002F\u002F a runtime, React, Preact or Solid instance\n",[786,1362,1363],{"class":788,"line":887},[786,1364,912],{"emptyLinePlaceholder":911},[786,1366,1367,1370,1373],{"class":788,"line":908},[786,1368,1369],{"class":924},"register",[786,1371,1372],{"class":868},"() ",[786,1374,1375],{"class":853},"\u002F\u002F defines \u003Ci18n-devtools-ui> once\n",[786,1377,1378],{"class":788,"line":915},[786,1379,912],{"emptyLinePlaceholder":911},[786,1381,1382,1386,1389,1392,1394,1396],{"class":788,"line":933},[786,1383,1385],{"class":1384},"spNyl","const",[786,1387,1388],{"class":868}," bridge ",[786,1390,1391],{"class":864},"=",[786,1393,1316],{"class":924},[786,1395,927],{"class":868},[786,1397,930],{"class":864},[786,1399,1400,1403,1405],{"class":788,"line":975},[786,1401,1402],{"class":936},"  adapter",[786,1404,940],{"class":864},[786,1406,1407],{"class":864}," {\n",[786,1409,1411,1414,1416,1419,1422,1425,1427,1430,1433,1435,1438,1440,1443],{"class":788,"line":1410},8,[786,1412,1413],{"class":924},"    getRouteCache",[786,1415,940],{"class":864},[786,1417,1418],{"class":864}," ()",[786,1420,1421],{"class":1384}," =>",[786,1423,1424],{"class":868}," Object",[786,1426,757],{"class":864},[786,1428,1429],{"class":924},"fromEntries",[786,1431,1432],{"class":868},"(i18n",[786,1434,757],{"class":864},[786,1436,1437],{"class":868},"storage",[786,1439,757],{"class":864},[786,1441,1442],{"class":868},"translations)",[786,1444,972],{"class":864},[786,1446,1447,1450,1452,1455,1459,1461,1464,1466,1469,1472,1474,1476,1478,1481,1484,1486,1488,1490,1493],{"class":788,"line":358},[786,1448,1449],{"class":924},"    addTranslations",[786,1451,940],{"class":864},[786,1453,1454],{"class":864}," (",[786,1456,1458],{"class":1457},"sHdIc","locale",[786,1460,1319],{"class":864},[786,1462,1463],{"class":1457}," content",[786,1465,1319],{"class":864},[786,1467,1468],{"class":1457}," merge",[786,1470,1471],{"class":864},")",[786,1473,1421],{"class":1384},[786,1475,1341],{"class":868},[786,1477,757],{"class":864},[786,1479,1480],{"class":924},"addTranslations",[786,1482,1483],{"class":868},"(locale",[786,1485,1319],{"class":864},[786,1487,1463],{"class":868},[786,1489,1319],{"class":864},[786,1491,1492],{"class":868}," merge)",[786,1494,972],{"class":864},[786,1496,1497,1500,1502,1504,1506,1508,1511,1513,1515,1517,1519,1521,1523,1525,1527,1530,1532,1534,1536,1538,1540,1542,1544],{"class":788,"line":6},[786,1498,1499],{"class":924},"    addRouteTranslations",[786,1501,940],{"class":864},[786,1503,1454],{"class":864},[786,1505,1458],{"class":1457},[786,1507,1319],{"class":864},[786,1509,1510],{"class":1457}," route",[786,1512,1319],{"class":864},[786,1514,1463],{"class":1457},[786,1516,1319],{"class":864},[786,1518,1468],{"class":1457},[786,1520,1471],{"class":864},[786,1522,1421],{"class":1384},[786,1524,1341],{"class":868},[786,1526,757],{"class":864},[786,1528,1529],{"class":924},"addRouteTranslations",[786,1531,1483],{"class":868},[786,1533,1319],{"class":864},[786,1535,1510],{"class":868},[786,1537,1319],{"class":864},[786,1539,1463],{"class":868},[786,1541,1319],{"class":864},[786,1543,1492],{"class":868},[786,1545,972],{"class":864},[786,1547,1549,1552,1554,1556,1559,1561,1563,1565,1567,1570,1573],{"class":788,"line":1548},11,[786,1550,1551],{"class":924},"    subscribe",[786,1553,940],{"class":864},[786,1555,1454],{"class":864},[786,1557,1558],{"class":1457},"cb",[786,1560,1471],{"class":864},[786,1562,1421],{"class":1384},[786,1564,1341],{"class":868},[786,1566,757],{"class":864},[786,1568,1569],{"class":924},"subscribe",[786,1571,1572],{"class":868},"(cb)",[786,1574,972],{"class":864},[786,1576,1578,1581,1583,1585,1587,1589,1591,1593],{"class":788,"line":1577},12,[786,1579,1580],{"class":924},"    getCurrentLocale",[786,1582,940],{"class":864},[786,1584,1418],{"class":864},[786,1586,1421],{"class":1384},[786,1588,1341],{"class":868},[786,1590,757],{"class":864},[786,1592,1458],{"class":868},[786,1594,972],{"class":864},[786,1596,1598],{"class":788,"line":1597},13,[786,1599,1600],{"class":864},"  },\n",[786,1602,1604,1607],{"class":788,"line":1603},14,[786,1605,1606],{"class":868},"  locales",[786,1608,972],{"class":864},[786,1610,1612,1615,1617,1619,1622,1624],{"class":788,"line":1611},15,[786,1613,1614],{"class":936},"  defaultLocale",[786,1616,940],{"class":864},[786,1618,878],{"class":864},[786,1620,1621],{"class":794},"en",[786,1623,964],{"class":864},[786,1625,972],{"class":864},[786,1627,1629,1632,1634,1636,1638,1640],{"class":788,"line":1628},16,[786,1630,1631],{"class":936},"  translationDir",[786,1633,940],{"class":864},[786,1635,878],{"class":864},[786,1637,961],{"class":794},[786,1639,964],{"class":864},[786,1641,972],{"class":864},[786,1643,1645,1647],{"class":788,"line":1644},17,[786,1646,978],{"class":864},[786,1648,981],{"class":868},[786,1650,1652],{"class":788,"line":1651},18,[786,1653,912],{"emptyLinePlaceholder":911},[786,1655,1657,1659,1662,1664,1667,1669,1672,1674,1676,1679,1681,1684,1687,1690,1693,1695,1698,1700,1703,1705],{"class":788,"line":1656},19,[786,1658,1385],{"class":1384},[786,1660,1661],{"class":868}," el ",[786,1663,1391],{"class":864},[786,1665,1666],{"class":868}," document",[786,1668,757],{"class":864},[786,1670,1671],{"class":924},"createElement",[786,1673,927],{"class":868},[786,1675,964],{"class":864},[786,1677,1678],{"class":794},"i18n-devtools-ui",[786,1680,964],{"class":864},[786,1682,1683],{"class":868},") ",[786,1685,1686],{"class":860},"as",[786,1688,1689],{"class":791}," HTMLElement",[786,1691,1692],{"class":864}," &",[786,1694,865],{"class":864},[786,1696,1697],{"class":936}," bridge",[786,1699,940],{"class":864},[786,1701,1702],{"class":864}," typeof",[786,1704,1388],{"class":868},[786,1706,1707],{"class":864},"}\n",[786,1709,1710,1713,1715,1718,1720],{"class":788,"line":18},[786,1711,1712],{"class":868},"el",[786,1714,757],{"class":864},[786,1716,1717],{"class":868},"bridge ",[786,1719,1391],{"class":864},[786,1721,1722],{"class":868}," bridge\n",[786,1724,1726,1729,1731,1734,1736,1739],{"class":788,"line":1725},21,[786,1727,1728],{"class":868},"document",[786,1730,757],{"class":864},[786,1732,1733],{"class":868},"body",[786,1735,757],{"class":864},[786,1737,1738],{"class":924},"append",[786,1740,1741],{"class":868},"(el)\n",[747,1743,1744,1747,1748,1454,1751,1754,1755,1758,1759,1762,1763,1766,1767,757],{},[750,1745,1746],{},"getRouteCache"," must return the dictionaries keyed ",[750,1749,1750],{},"locale:route",[750,1752,1753],{},"en:index",", ",[750,1756,1757],{},"en:blog-post","), which is what ",[750,1760,1761],{},"i18n.storage.translations"," holds. For a Vue instance use ",[750,1764,1765],{},"i18n.global.getRouteCache()"," and ",[750,1768,1769],{},"i18n.global.subscribeToChanges(cb)",[747,1771,1772,1775,1776,1779,1780,1783],{},[750,1773,1774],{},"saveTranslation"," updates the instance first, then POSTs to ",[750,1777,1778],{},"\u003Cbase>\u002Fsave",". When there is no endpoint (a static preview build) or the dev server cannot be reached, the edit is kept in ",[750,1781,1782],{},"localStorage","; any other save error restores the previous dictionary and throws.",[768,1785,181],{"id":183},[983,1787,1788,1798],{},[986,1789,1790],{},[989,1791,1792,1795],{},[992,1793,1794],{},"Export",[992,1796,1797],{},"Entry",[1002,1799,1800,1814,1828,1850,1865],{},[989,1801,1802,1810],{},[1007,1803,1804,1754,1807],{},[750,1805,1806],{},"i18nDevToolsPlugin(options)",[750,1808,1809],{},"i18nDevToolsIntegration(options)",[1007,1811,1812],{},[750,1813,903],{},[989,1815,1816,1824],{},[1007,1817,1818,1754,1821],{},[750,1819,1820],{},"register()",[750,1822,1823],{},"I18nDevToolsElement",[1007,1825,1826],{},[750,1827,637],{},[989,1829,1830,1842],{},[1007,1831,1832,1835,1836,1754,1839],{},[750,1833,1834],{},"createBridge(options)",", types ",[750,1837,1838],{},"BridgeAdapter",[750,1840,1841],{},"CreateBridgeOptions",[1007,1843,1844,1846,1847,1471],{},[750,1845,637],{}," (also ",[750,1848,1849],{},"\u002Fbridge\u002Fcreate",[989,1851,1852,1858],{},[1007,1853,1854,1855],{},"type ",[750,1856,1857],{},"I18nDevToolsBridge",[1007,1859,1860,1846,1862,1471],{},[750,1861,637],{},[750,1863,1864],{},"\u002Fbridge",[989,1866,1867,1875],{},[1007,1868,1869,1754,1872],{},[750,1870,1871],{},"createRpcClient",[750,1873,1874],{},"setupRpcHost",[1007,1876,1877],{},[750,1878,637],{},[747,1880,1881,1882,757],{},"Full signatures: ",[754,1883,1884],{"href":223},"package reference",[768,1886,1888],{"id":1887},"related","Related",[1890,1891,1892,1899],"card-group",{},[1893,1894,1896],"card",{"icon":1895,"title":756,"to":105},"i-lucide-book-open",[747,1897,1898],{},"The same editor inside Nuxt",[1893,1900,1902],{"icon":1895,"title":131,"to":1901},".\u002F",[747,1903,1904,1905],{},"The instance and its ",[750,1906,1437],{},[1908,1909,1910],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}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":782,"searchDepth":857,"depth":857,"links":1912},[1913,1914,1915,1916,1917],{"id":770,"depth":857,"text":771},{"id":840,"depth":857,"text":841},{"id":1294,"depth":857,"text":1295},{"id":183,"depth":857,"text":181},{"id":1887,"depth":857,"text":1888},"A translation editor for Vite dev servers, and a bridge that connects it to any @i18n-micro instance.","md","2026-11-04T00:40:16+04:00",null,{"outline":1923},"deep",{"order":65,"group":108},{"title":177,"description":1918},"ieS7HgJL65Ky5-B3GqLuddfsqYVJDrezvjh8NOXY7YY",[1928,1921],{"title":173,"path":174,"description":1929},"Generate TypeScript autocomplete for translation keys from your JSON files, in Nuxt or any Vite project.",1794131154987]