[{"data":1,"prerenderedAt":2214},["ShallowReactive",2],{"docs-nav":3,"\u002Fdocs\u002Fdevelopment\u002Fi18n":316},[4,9,15,19,24,28,33,37,41,45,49,53,57,60,63,67,70,74,77,81,85,89,93,97,101,105,109,113,117,121,125,129,133,137,141,145,149,153,156,159,162,165,168,171,175,178,181,184,186,189,192,195,198,201,204,207,210,213,216,219,222,225,228,231,234,237,240,244,247,250,253,257,261,264,267,270,273,276,279,282,285,287,290,293,296,299,302,305,308,311,313],{"path":5,"title":6,"section":7,"order":7,"sidebar":8},"\u002Fbrand","Brand",null,false,{"path":10,"title":11,"section":12,"order":13,"sidebar":14},"\u002Fdocs\u002Fapi\u002Fcomposables","Composables","API",2,true,{"path":16,"title":17,"section":12,"order":18,"sidebar":14},"\u002Fdocs\u002Fapi\u002Futilities","Utilities",1,{"path":20,"title":21,"section":22,"order":23,"sidebar":14},"\u002Fdocs\u002Fcli","CLI","Getting Started",9,{"path":25,"title":26,"section":22,"order":27,"sidebar":14},"\u002Fdocs\u002Fcompatibility","Compatibility",4,{"path":29,"title":30,"section":31,"order":32,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Fbody","Body","Components",3,{"path":34,"title":35,"section":31,"order":36,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Fbutton","Button",13,{"path":38,"title":39,"section":31,"order":40,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Fcodeblock","CodeBlock",18,{"path":42,"title":43,"section":31,"order":44,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Fcodeinline","CodeInline",19,{"path":46,"title":47,"section":31,"order":48,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Fcolumn","Column",8,{"path":50,"title":51,"section":31,"order":52,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Fcontainer","Container",5,{"path":54,"title":55,"section":31,"order":56,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Ffont","Font",11,{"path":58,"title":59,"section":31,"order":13,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Fhead","Head",{"path":61,"title":62,"section":31,"order":23,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Fheading","Heading",{"path":64,"title":65,"section":31,"order":66,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Fhr","Hr",16,{"path":68,"title":69,"section":31,"order":18,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Fhtml","Html",{"path":71,"title":72,"section":31,"order":73,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Fimg","Img",14,{"path":75,"title":76,"section":31,"order":27,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Flayout","Layout",{"path":78,"title":79,"section":31,"order":80,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Flink","Link",12,{"path":82,"title":83,"section":31,"order":84,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Fmarkdown","Markdown",20,{"path":86,"title":87,"section":31,"order":88,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Fnotoutlook","NotOutlook",22,{"path":90,"title":91,"section":31,"order":92,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Fnowidows","NoWidows",26,{"path":94,"title":95,"section":31,"order":96,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Foutlook","Outlook",21,{"path":98,"title":99,"section":31,"order":100,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Foutlookbg","OutlookBg",23,{"path":102,"title":103,"section":31,"order":104,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Foverview","Overview",0,{"path":106,"title":107,"section":31,"order":108,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Fplaintext","Plaintext",31,{"path":110,"title":111,"section":31,"order":112,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Fpreheader","Preheader",17,{"path":114,"title":115,"section":31,"order":116,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Fqrcode","QrCode",30,{"path":118,"title":119,"section":31,"order":120,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Fraw","Raw",28,{"path":122,"title":123,"section":31,"order":124,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Frow","Row",7,{"path":126,"title":127,"section":31,"order":128,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Fsection","Section",6,{"path":130,"title":131,"section":31,"order":132,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Fspacer","Spacer",15,{"path":134,"title":135,"section":31,"order":136,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Ftailwind","Tailwind",29,{"path":138,"title":139,"section":31,"order":140,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Ftext","Text",10,{"path":142,"title":143,"section":31,"order":144,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Fvml","Vml",24,{"path":146,"title":147,"section":31,"order":148,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Fwithurl","WithUrl",27,{"path":150,"title":151,"section":152,"order":128,"sidebar":14},"\u002Fdocs\u002Fdeploy\u002Faws-ses","AWS SES","Deploy",{"path":154,"title":155,"section":152,"order":124,"sidebar":14},"\u002Fdocs\u002Fdeploy\u002Fcloudflare","Cloudflare",{"path":157,"title":158,"section":152,"order":32,"sidebar":14},"\u002Fdocs\u002Fdeploy\u002Fmailgun","Mailgun",{"path":160,"title":161,"section":152,"order":18,"sidebar":14},"\u002Fdocs\u002Fdeploy\u002Fnodemailer","Nodemailer",{"path":163,"title":164,"section":152,"order":27,"sidebar":14},"\u002Fdocs\u002Fdeploy\u002Fpostmark","Postmark",{"path":166,"title":167,"section":152,"order":52,"sidebar":14},"\u002Fdocs\u002Fdeploy\u002Fresend","Resend",{"path":169,"title":170,"section":152,"order":13,"sidebar":14},"\u002Fdocs\u002Fdeploy\u002Fsendgrid","SendGrid",{"path":172,"title":173,"section":174,"order":32,"sidebar":14},"\u002Fdocs\u002Fdevelopment\u002Fconfiguration","Configuration","Development",{"path":176,"title":177,"section":174,"order":52,"sidebar":14},"\u002Fdocs\u002Fdevelopment\u002Fevents","Events",{"path":179,"title":180,"section":174,"order":128,"sidebar":14},"\u002Fdocs\u002Fdevelopment\u002Fi18n","i18n",{"path":182,"title":183,"section":174,"order":13,"sidebar":14},"\u002Fdocs\u002Fdevelopment\u002Flocal","Dev Server",{"path":185,"title":107,"section":174,"order":27,"sidebar":14},"\u002Fdocs\u002Fdevelopment\u002Fplaintext",{"path":187,"title":188,"section":174,"order":18,"sidebar":14},"\u002Fdocs\u002Fdevelopment\u002Ftemplates","Templates",{"path":190,"title":191,"section":22,"order":32,"sidebar":14},"\u002Fdocs\u002Feditor-setup","Editor Setup",{"path":193,"title":194,"section":22,"order":48,"sidebar":14},"\u002Fdocs\u002Fglossary","Glossary",{"path":196,"title":197,"section":22,"order":128,"sidebar":8},"\u002Fdocs\u002Finstallation\u002Fframeworks","Framework Guides",{"path":199,"title":200,"section":197,"order":52,"sidebar":14},"\u002Fdocs\u002Finstallation\u002Fframeworks\u002Fadonisjs","AdonisJS",{"path":202,"title":203,"section":197,"order":32,"sidebar":14},"\u002Fdocs\u002Finstallation\u002Fframeworks\u002Fastro","Astro",{"path":205,"title":206,"section":197,"order":18,"sidebar":14},"\u002Fdocs\u002Finstallation\u002Fframeworks\u002Flaravel","Laravel",{"path":208,"title":209,"section":197,"order":48,"sidebar":14},"\u002Fdocs\u002Finstallation\u002Fframeworks\u002Fnextjs","Next.js",{"path":211,"title":212,"section":197,"order":13,"sidebar":14},"\u002Fdocs\u002Finstallation\u002Fframeworks\u002Fnuxt","Nuxt",{"path":214,"title":215,"section":197,"order":124,"sidebar":14},"\u002Fdocs\u002Finstallation\u002Fframeworks\u002Fqwik","Qwik",{"path":217,"title":218,"section":197,"order":128,"sidebar":14},"\u002Fdocs\u002Finstallation\u002Fframeworks\u002Fsolid","Solid",{"path":220,"title":221,"section":197,"order":27,"sidebar":14},"\u002Fdocs\u002Finstallation\u002Fframeworks\u002Fsveltekit","SvelteKit",{"path":223,"title":224,"section":197,"order":23,"sidebar":14},"\u002Fdocs\u002Finstallation\u002Fframeworks\u002Ftanstack","TanStack Start",{"path":226,"title":227,"section":22,"order":13,"sidebar":14},"\u002Fdocs\u002Finstallation","Installation",{"path":229,"title":230,"section":22,"order":32,"sidebar":8},"\u002Fdocs\u002Finstallation\u002Fmanual","Manual Installation",{"path":232,"title":233,"section":22,"order":27,"sidebar":8},"\u002Fdocs\u002Finstallation\u002Fmonorepo","Monorepo Installation",{"path":235,"title":236,"section":22,"order":52,"sidebar":8},"\u002Fdocs\u002Finstallation\u002Fvite","Vite Plugin",{"path":238,"title":239,"section":22,"order":18,"sidebar":14},"\u002Fdocs\u002Fintroduction","What is Maizzle?",{"path":241,"title":242,"section":243,"order":13,"sidebar":14},"\u002Fdocs\u002Fmigrate\u002Fmjml","MJML","Migrate to Maizzle",{"path":245,"title":246,"section":243,"order":18,"sidebar":14},"\u002Fdocs\u002Fmigrate\u002Freact-email","React Email",{"path":248,"title":249,"section":22,"order":124,"sidebar":14},"\u002Fdocs\u002Fresources","Resources",{"path":251,"title":252,"section":22,"order":128,"sidebar":14},"\u002Fdocs\u002Fskill","Agent Skill",{"path":254,"title":255,"section":256,"order":18,"sidebar":14},"\u002Fdocs\u002Ftailwindcss","Tailwind CSS","Core Concepts",{"path":258,"title":259,"section":260,"order":13,"sidebar":14},"\u002Fdocs\u002Ftransformers\u002Fadd-attributes","Add Attributes","Transformers",{"path":262,"title":263,"section":260,"order":48,"sidebar":14},"\u002Fdocs\u002Ftransformers\u002Fattribute-to-style","Attribute to Style",{"path":265,"title":266,"section":260,"order":36,"sidebar":14},"\u002Fdocs\u002Ftransformers\u002Fbase-url","Base URL",{"path":268,"title":269,"section":260,"order":66,"sidebar":14},"\u002Fdocs\u002Ftransformers\u002Fentities","Entities",{"path":271,"title":272,"section":260,"order":80,"sidebar":14},"\u002Fdocs\u002Ftransformers\u002Ffilters","Filters",{"path":274,"title":275,"section":260,"order":112,"sidebar":14},"\u002Fdocs\u002Ftransformers\u002Fformat","Format",{"path":277,"title":278,"section":260,"order":32,"sidebar":14},"\u002Fdocs\u002Ftransformers\u002Finline-css","Inline CSS",{"path":280,"title":281,"section":260,"order":56,"sidebar":14},"\u002Fdocs\u002Ftransformers\u002Finline-link","Inline Link",{"path":283,"title":284,"section":260,"order":40,"sidebar":14},"\u002Fdocs\u002Ftransformers\u002Fminify","Minify",{"path":286,"title":103,"section":260,"order":18,"sidebar":14},"\u002Fdocs\u002Ftransformers\u002Foverview",{"path":288,"title":289,"section":260,"order":27,"sidebar":14},"\u002Fdocs\u002Ftransformers\u002Fpurge-css","Purge CSS",{"path":291,"title":292,"section":260,"order":140,"sidebar":14},"\u002Fdocs\u002Ftransformers\u002Fremove-attributes","Remove Attributes",{"path":294,"title":295,"section":260,"order":132,"sidebar":14},"\u002Fdocs\u002Ftransformers\u002Freplace-strings","Replace Strings",{"path":297,"title":298,"section":260,"order":52,"sidebar":14},"\u002Fdocs\u002Ftransformers\u002Fsafe-selectors","Safe Selectors",{"path":300,"title":301,"section":260,"order":128,"sidebar":14},"\u002Fdocs\u002Ftransformers\u002Fshorthand-css","Shorthand CSS",{"path":303,"title":304,"section":260,"order":124,"sidebar":14},"\u002Fdocs\u002Ftransformers\u002Fsix-hex","Six-digit HEX",{"path":306,"title":307,"section":260,"order":73,"sidebar":14},"\u002Fdocs\u002Ftransformers\u002Furl-parameters","URL Parameters",{"path":309,"title":310,"section":22,"order":52,"sidebar":14},"\u002Fdocs\u002Fupgrade-guide","Upgrade Guide",{"path":312,"title":236,"section":256,"order":13,"sidebar":14},"\u002Fdocs\u002Fvite-plugin",{"path":314,"title":315,"section":7,"order":7,"sidebar":8},"\u002Fprivacy","Privacy Policy",{"id":317,"title":180,"body":318,"description":2208,"extension":2209,"meta":2210,"navigation":14,"order":128,"path":179,"section":174,"seo":2211,"sidebar":14,"stem":2212,"toc":14,"__hash__":2213},"docs\u002Fdocs\u002Fdevelopment\u002Fi18n.md",{"type":319,"value":320,"toc":2191},"minimark",[321,326,339,344,353,384,387,393,409,413,418,425,433,556,559,565,803,825,829,833,844,938,950,954,964,1114,1117,1127,1137,1290,1307,1311,1314,1317,1323,1545,1555,1633,1637,1656,1816,1827,1831,1838,1845,2097,2103,2110,2187],[322,323,325],"h1",{"id":324},"internationalization","Internationalization",[327,328,329,330,338],"p",{},"Maizzle supports internationalization through ",[331,332,337],"a",{"href":333,"rel":334,"target":336},"https:\u002F\u002Fvue-i18n.intlify.dev\u002F",[335],"nofollow","_blank","vue-i18n",". This lets you create email templates in multiple languages using translation keys that resolve to localized strings at build time.",[340,341,343],"h2",{"id":342},"starter-project","Starter project",[327,345,346,347,352],{},"The quickest way to get started is with ",[331,348,351],{"href":349,"rel":350,"target":336},"https:\u002F\u002Fgithub.com\u002Fmaizzle\u002Fstarter-i18n",[335],"maizzle\u002Fstarter-i18n",", which has a working example of the setup described in this guide.",[354,355,360],"pre",{"className":356,"code":357,"language":358,"meta":359,"style":359},"language-bash shiki shiki-themes laserwave","npx maizzle new maizzle\u002Fstarter-i18n --install\n","bash","",[361,362,363],"code",{"__ignoreMap":359},[364,365,367,371,375,378,381],"span",{"class":366,"line":18},"line",[364,368,370],{"class":369},"sZNF3","npx",[364,372,374],{"class":373},"sXiT_"," maizzle",[364,376,377],{"class":373}," new",[364,379,380],{"class":373}," maizzle\u002Fstarter-i18n",[364,382,383],{"class":373}," --install\n",[340,385,227],{"id":386},"installation",[327,388,389,390,392],{},"To add internalization to an existing project, start by installing ",[361,391,337],{},":",[354,394,396],{"className":356,"code":395,"language":358,"meta":359,"style":359},"npm install vue-i18n\n",[361,397,398],{"__ignoreMap":359},[364,399,400,403,406],{"class":366,"line":18},[364,401,402],{"class":369},"npm",[364,404,405],{"class":373}," install",[364,407,408],{"class":373}," vue-i18n\n",[340,410,412],{"id":411},"setup","Setup",[414,415,417],"h3",{"id":416},"locale-files","Locale files",[327,419,420,421,424],{},"Create a ",[361,422,423],{},"locales"," directory in your project root with a JSON file for each language:",[354,426,431],{"className":427,"code":429,"language":430},[428],"language-text","locales\u002F\n├── en.json\n└── fr.json\n","text",[361,432,429],{"__ignoreMap":359},[434,435,436,503],"code-tabs",{},[437,438,440],"code-tab",{"label":439},"en.json",[354,441,446],{"className":442,"code":443,"filename":444,"language":445,"meta":359,"style":359},"language-json shiki shiki-themes laserwave","{\n  \"greeting\": \"Hello, World!\",\n  \"farewell\": \"Goodbye!\"\n}\n","locales\u002Fen.json","json",[361,447,448,454,479,498],{"__ignoreMap":359},[364,449,450],{"class":366,"line":18},[364,451,453],{"class":452},"sGGKt","{\n",[364,455,456,459,463,466,468,471,474,476],{"class":366,"line":13},[364,457,458],{"class":452},"  \"",[364,460,462],{"class":461},"s0ZPN","greeting",[364,464,465],{"class":452},"\"",[364,467,392],{"class":452},[364,469,470],{"class":452}," \"",[364,472,473],{"class":373},"Hello, World!",[364,475,465],{"class":452},[364,477,478],{"class":452},",\n",[364,480,481,483,486,488,490,492,495],{"class":366,"line":32},[364,482,458],{"class":452},[364,484,485],{"class":461},"farewell",[364,487,465],{"class":452},[364,489,392],{"class":452},[364,491,470],{"class":452},[364,493,494],{"class":373},"Goodbye!",[364,496,497],{"class":452},"\"\n",[364,499,500],{"class":366,"line":27},[364,501,502],{"class":452},"}\n",[437,504,506],{"label":505},"fr.json",[354,507,510],{"className":442,"code":508,"filename":509,"language":445,"meta":359,"style":359},"{\n  \"greeting\": \"Bonjour, le monde !\",\n  \"farewell\": \"Au revoir !\"\n}\n","locales\u002Fro.json",[361,511,512,516,535,552],{"__ignoreMap":359},[364,513,514],{"class":366,"line":18},[364,515,453],{"class":452},[364,517,518,520,522,524,526,528,531,533],{"class":366,"line":13},[364,519,458],{"class":452},[364,521,462],{"class":461},[364,523,465],{"class":452},[364,525,392],{"class":452},[364,527,470],{"class":452},[364,529,530],{"class":373},"Bonjour, le monde !",[364,532,465],{"class":452},[364,534,478],{"class":452},[364,536,537,539,541,543,545,547,550],{"class":366,"line":32},[364,538,458],{"class":452},[364,540,485],{"class":461},[364,542,465],{"class":452},[364,544,392],{"class":452},[364,546,470],{"class":452},[364,548,549],{"class":373},"Au revoir !",[364,551,497],{"class":452},[364,553,554],{"class":366,"line":27},[364,555,502],{"class":452},[414,557,173],{"id":558},"configuration",[327,560,561,562,564],{},"Import your locale files and register ",[361,563,337],{}," as a Vue plugin:",[354,566,572],{"className":567,"code":568,"filename":569,"highlights":570,"language":571,"meta":359,"style":359},"language-ts shiki shiki-themes laserwave","import { defineConfig } from '@maizzle\u002Fframework'\nimport { createI18n } from 'vue-i18n'\nimport en from '.\u002Flocales\u002Fen.json'\nimport fr from '.\u002Flocales\u002Ffr.json'\n\nexport default defineConfig({\n  vue: {\n    plugins: () => [\n      createI18n({\n        legacy: false,\n        locale: 'en',\n        fallbackLocale: 'en',\n        messages: { en, fr },\n      }),\n    ],\n  },\n})\n","maizzle.config.ts",[13,32,27,124,48,23,140,56,80,36,73,132,66],"ts",[361,573,574,601,622,639,656,661,674,686,704,712,726,744,760,780,786,792,798],{"__ignoreMap":359},[364,575,576,579,582,586,589,592,595,598],{"class":366,"line":18},[364,577,578],{"class":461},"import",[364,580,581],{"class":452}," {",[364,583,585],{"class":584},"sU-n2"," defineConfig",[364,587,588],{"class":452}," }",[364,590,591],{"class":461}," from",[364,593,594],{"class":452}," '",[364,596,597],{"class":373},"@maizzle\u002Fframework",[364,599,600],{"class":452},"'\n",[364,602,605,607,609,612,614,616,618,620],{"class":603,"line":13},[366,604],"highlight",[364,606,578],{"class":461},[364,608,581],{"class":452},[364,610,611],{"class":584}," createI18n",[364,613,588],{"class":452},[364,615,591],{"class":461},[364,617,594],{"class":452},[364,619,337],{"class":373},[364,621,600],{"class":452},[364,623,625,627,630,632,634,637],{"class":624,"line":32},[366,604],[364,626,578],{"class":461},[364,628,629],{"class":584}," en",[364,631,591],{"class":461},[364,633,594],{"class":452},[364,635,636],{"class":373},".\u002Flocales\u002Fen.json",[364,638,600],{"class":452},[364,640,642,644,647,649,651,654],{"class":641,"line":27},[366,604],[364,643,578],{"class":461},[364,645,646],{"class":584}," fr",[364,648,591],{"class":461},[364,650,594],{"class":452},[364,652,653],{"class":373},".\u002Flocales\u002Ffr.json",[364,655,600],{"class":452},[364,657,658],{"class":366,"line":52},[364,659,660],{"emptyLinePlaceholder":14},"\n",[364,662,663,666,669,671],{"class":366,"line":128},[364,664,665],{"class":461},"export",[364,667,668],{"class":461}," default",[364,670,585],{"class":369},[364,672,673],{"class":452},"({\n",[364,675,677,681,683],{"class":676,"line":124},[366,604],[364,678,680],{"class":679},"sLaUg","  vue",[364,682,392],{"class":452},[364,684,685],{"class":452}," {\n",[364,687,689,692,694,697,701],{"class":688,"line":48},[366,604],[364,690,691],{"class":369},"    plugins",[364,693,392],{"class":452},[364,695,696],{"class":452}," ()",[364,698,700],{"class":699},"sb4Pa"," =>",[364,702,703],{"class":452}," [\n",[364,705,707,710],{"class":706,"line":23},[366,604],[364,708,709],{"class":369},"      createI18n",[364,711,673],{"class":452},[364,713,715,718,720,724],{"class":714,"line":140},[366,604],[364,716,717],{"class":679},"        legacy",[364,719,392],{"class":452},[364,721,723],{"class":722},"skd8d"," false",[364,725,478],{"class":452},[364,727,729,732,734,736,739,742],{"class":728,"line":56},[366,604],[364,730,731],{"class":679},"        locale",[364,733,392],{"class":452},[364,735,594],{"class":452},[364,737,738],{"class":373},"en",[364,740,741],{"class":452},"'",[364,743,478],{"class":452},[364,745,747,750,752,754,756,758],{"class":746,"line":80},[366,604],[364,748,749],{"class":679},"        fallbackLocale",[364,751,392],{"class":452},[364,753,594],{"class":452},[364,755,738],{"class":373},[364,757,741],{"class":452},[364,759,478],{"class":452},[364,761,763,766,768,770,772,775,777],{"class":762,"line":36},[366,604],[364,764,765],{"class":679},"        messages",[364,767,392],{"class":452},[364,769,581],{"class":452},[364,771,629],{"class":584},[364,773,774],{"class":452},",",[364,776,646],{"class":584},[364,778,779],{"class":452}," },\n",[364,781,783],{"class":782,"line":73},[366,604],[364,784,785],{"class":452},"      }),\n",[364,787,789],{"class":788,"line":132},[366,604],[364,790,791],{"class":452},"    ],\n",[364,793,795],{"class":794,"line":66},[366,604],[364,796,797],{"class":452},"  },\n",[364,799,800],{"class":366,"line":112},[364,801,802],{"class":452},"})\n",[804,805,807],"callout",{"icon":806},"i-lucide-info",[327,808,809,810,813,814,817,818,820,821,824],{},"Pass ",[361,811,812],{},"plugins"," as a factory (",[361,815,816],{},"() => [...]",") instead of a plain array. ",[361,819,337],{}," is stateful and setting ",[361,822,823],{},"locale.value"," in one template mutates the shared instance and leaks into the next render. The factory form gives each template a fresh i18n instance.",[340,826,828],{"id":827},"usage","Usage",[414,830,832],{"id":831},"global-locale","Global locale",[327,834,835,836,839,840,843],{},"With the config above, all templates render using the default locale (",[361,837,838],{},"'en'"," in this example). Use ",[361,841,842],{},"$t()"," to output translated strings:",[354,845,849],{"className":846,"code":847,"language":848,"meta":359,"style":359},"language-vue shiki shiki-themes laserwave","\u003Ctemplate>\n  \u003CLayout>\n    \u003CHeading level=\"1\">{{ $t('greeting') }}\u003C\u002FHeading>\n    \u003CText>{{ $t('farewell') }}\u003C\u002FText>\n  \u003C\u002FLayout>\n\u003C\u002Ftemplate>\n","vue",[361,850,851,862,871,904,921,930],{"__ignoreMap":359},[364,852,853,856,859],{"class":366,"line":18},[364,854,855],{"class":452},"\u003C",[364,857,858],{"class":699},"template",[364,860,861],{"class":452},">\n",[364,863,864,867,869],{"class":366,"line":13},[364,865,866],{"class":452},"  \u003C",[364,868,76],{"class":699},[364,870,861],{"class":452},[364,872,873,876,878,881,884,886,889,891,894,897,900,902],{"class":366,"line":32},[364,874,875],{"class":452},"    \u003C",[364,877,62],{"class":699},[364,879,880],{"class":369}," level",[364,882,883],{"class":452},"=",[364,885,465],{"class":452},[364,887,888],{"class":373},"1",[364,890,465],{"class":452},[364,892,893],{"class":452},">",[364,895,896],{"class":679},"{{ $t('greeting') }}",[364,898,899],{"class":452},"\u003C\u002F",[364,901,62],{"class":699},[364,903,861],{"class":452},[364,905,906,908,910,912,915,917,919],{"class":366,"line":27},[364,907,875],{"class":452},[364,909,139],{"class":699},[364,911,893],{"class":452},[364,913,914],{"class":679},"{{ $t('farewell') }}",[364,916,899],{"class":452},[364,918,139],{"class":699},[364,920,861],{"class":452},[364,922,923,926,928],{"class":366,"line":52},[364,924,925],{"class":452},"  \u003C\u002F",[364,927,76],{"class":699},[364,929,861],{"class":452},[364,931,932,934,936],{"class":366,"line":128},[364,933,899],{"class":452},[364,935,858],{"class":699},[364,937,861],{"class":452},[327,939,940,941,943,944,946,947,949],{},"This outputs ",[361,942,473],{}," and ",[361,945,494],{}," because the default locale is set to ",[361,948,838],{},".",[414,951,953],{"id":952},"per-template-locale","Per-template locale",[327,955,956,957,960,961,392],{},"To render a specific template in a different language, use ",[361,958,959],{},"useI18n()"," in ",[361,962,963],{},"\u003Cscript setup>",[354,965,967],{"className":846,"code":966,"language":848,"meta":359,"style":359},"\u003Cscript setup>\nimport { useI18n } from 'vue-i18n'\n\nconst { locale } = useI18n()\nlocale.value = 'fr'\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003CLayout>\n    \u003CHeading level=\"1\">{{ $t('greeting') }}\u003C\u002FHeading>\n  \u003C\u002FLayout>\n\u003C\u002Ftemplate>\n",[361,968,969,981,1000,1004,1025,1044,1052,1056,1064,1072,1098,1106],{"__ignoreMap":359},[364,970,971,973,976,979],{"class":366,"line":18},[364,972,855],{"class":452},[364,974,975],{"class":699},"script",[364,977,978],{"class":369}," setup",[364,980,861],{"class":452},[364,982,983,985,987,990,992,994,996,998],{"class":366,"line":13},[364,984,578],{"class":461},[364,986,581],{"class":452},[364,988,989],{"class":584}," useI18n",[364,991,588],{"class":452},[364,993,591],{"class":461},[364,995,594],{"class":452},[364,997,337],{"class":373},[364,999,600],{"class":452},[364,1001,1002],{"class":366,"line":32},[364,1003,660],{"emptyLinePlaceholder":14},[364,1005,1006,1010,1012,1015,1017,1020,1022],{"class":366,"line":27},[364,1007,1009],{"class":1008},"sIihq","const",[364,1011,581],{"class":452},[364,1013,1014],{"class":722}," locale",[364,1016,588],{"class":452},[364,1018,1019],{"class":699}," =",[364,1021,989],{"class":369},[364,1023,1024],{"class":452},"()\n",[364,1026,1027,1030,1032,1035,1037,1039,1042],{"class":366,"line":52},[364,1028,1029],{"class":584},"locale",[364,1031,949],{"class":452},[364,1033,1034],{"class":461},"value",[364,1036,1019],{"class":699},[364,1038,594],{"class":452},[364,1040,1041],{"class":373},"fr",[364,1043,600],{"class":452},[364,1045,1046,1048,1050],{"class":366,"line":128},[364,1047,899],{"class":452},[364,1049,975],{"class":699},[364,1051,861],{"class":452},[364,1053,1054],{"class":366,"line":124},[364,1055,660],{"emptyLinePlaceholder":14},[364,1057,1058,1060,1062],{"class":366,"line":48},[364,1059,855],{"class":452},[364,1061,858],{"class":699},[364,1063,861],{"class":452},[364,1065,1066,1068,1070],{"class":366,"line":23},[364,1067,866],{"class":452},[364,1069,76],{"class":699},[364,1071,861],{"class":452},[364,1073,1074,1076,1078,1080,1082,1084,1086,1088,1090,1092,1094,1096],{"class":366,"line":140},[364,1075,875],{"class":452},[364,1077,62],{"class":699},[364,1079,880],{"class":369},[364,1081,883],{"class":452},[364,1083,465],{"class":452},[364,1085,888],{"class":373},[364,1087,465],{"class":452},[364,1089,893],{"class":452},[364,1091,896],{"class":679},[364,1093,899],{"class":452},[364,1095,62],{"class":699},[364,1097,861],{"class":452},[364,1099,1100,1102,1104],{"class":366,"line":56},[364,1101,925],{"class":452},[364,1103,76],{"class":699},[364,1105,861],{"class":452},[364,1107,1108,1110,1112],{"class":366,"line":80},[364,1109,899],{"class":452},[364,1111,858],{"class":699},[364,1113,861],{"class":452},[327,1115,1116],{},"This outputs \"Bonjour, le monde !\" regardless of the default locale in the config.",[414,1118,1120,1121,1124,1125],{"id":1119},"using-t-instead-of-t","Using ",[361,1122,1123],{},"t()"," instead of ",[361,1126,842],{},[327,1128,1129,1130,1132,1133,1136],{},"When using ",[361,1131,959],{},", you can destructure the ",[361,1134,1135],{},"t"," function if you prefer:",[354,1138,1140],{"className":846,"code":1139,"language":848,"meta":359,"style":359},"\u003Cscript setup>\nimport { useI18n } from 'vue-i18n'\n\nconst { t } = useI18n()\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003CLayout>\n    \u002F\u002F [!code word:t('greeting')]\n    \u003CHeading level=\"1\">{{ t('greeting') }}\u003C\u002FHeading>\n    \u002F\u002F [!code word:t('farewell')]\n    \u003CText>{{ t('farewell') }}\u003C\u002FText>\n  \u003C\u002FLayout>\n\u003C\u002Ftemplate>\n",[361,1141,1142,1152,1170,1174,1191,1199,1203,1211,1219,1253,1274,1282],{"__ignoreMap":359},[364,1143,1144,1146,1148,1150],{"class":366,"line":18},[364,1145,855],{"class":452},[364,1147,975],{"class":699},[364,1149,978],{"class":369},[364,1151,861],{"class":452},[364,1153,1154,1156,1158,1160,1162,1164,1166,1168],{"class":366,"line":13},[364,1155,578],{"class":461},[364,1157,581],{"class":452},[364,1159,989],{"class":584},[364,1161,588],{"class":452},[364,1163,591],{"class":461},[364,1165,594],{"class":452},[364,1167,337],{"class":373},[364,1169,600],{"class":452},[364,1171,1172],{"class":366,"line":32},[364,1173,660],{"emptyLinePlaceholder":14},[364,1175,1176,1178,1180,1183,1185,1187,1189],{"class":366,"line":27},[364,1177,1009],{"class":1008},[364,1179,581],{"class":452},[364,1181,1182],{"class":722}," t",[364,1184,588],{"class":452},[364,1186,1019],{"class":699},[364,1188,989],{"class":369},[364,1190,1024],{"class":452},[364,1192,1193,1195,1197],{"class":366,"line":52},[364,1194,899],{"class":452},[364,1196,975],{"class":699},[364,1198,861],{"class":452},[364,1200,1201],{"class":366,"line":128},[364,1202,660],{"emptyLinePlaceholder":14},[364,1204,1205,1207,1209],{"class":366,"line":124},[364,1206,855],{"class":452},[364,1208,858],{"class":699},[364,1210,861],{"class":452},[364,1212,1213,1215,1217],{"class":366,"line":48},[364,1214,866],{"class":452},[364,1216,76],{"class":699},[364,1218,861],{"class":452},[364,1220,1221,1223,1225,1227,1229,1231,1233,1235,1237,1240,1244,1247,1249,1251],{"class":366,"line":140},[364,1222,875],{"class":452},[364,1224,62],{"class":699},[364,1226,880],{"class":369},[364,1228,883],{"class":452},[364,1230,465],{"class":452},[364,1232,888],{"class":373},[364,1234,465],{"class":452},[364,1236,893],{"class":452},[364,1238,1239],{"class":679},"{{ ",[364,1241,1243],{"class":1242},"highlighted-word sLaUg","t('greeting')",[364,1245,1246],{"class":679}," }}",[364,1248,899],{"class":452},[364,1250,62],{"class":699},[364,1252,861],{"class":452},[364,1254,1255,1257,1259,1261,1263,1266,1268,1270,1272],{"class":366,"line":80},[364,1256,875],{"class":452},[364,1258,139],{"class":699},[364,1260,893],{"class":452},[364,1262,1239],{"class":679},[364,1264,1265],{"class":1242},"t('farewell')",[364,1267,1246],{"class":679},[364,1269,899],{"class":452},[364,1271,139],{"class":699},[364,1273,861],{"class":452},[364,1275,1276,1278,1280],{"class":366,"line":36},[364,1277,925],{"class":452},[364,1279,76],{"class":699},[364,1281,861],{"class":452},[364,1283,1284,1286,1288],{"class":366,"line":73},[364,1285,899],{"class":452},[364,1287,858],{"class":699},[364,1289,861],{"class":452},[327,1291,1292,1293,943,1295,1297,1298,1300,1301,1303,1304,1306],{},"Both ",[361,1294,842],{},[361,1296,1123],{}," work the same way, only difference is that ",[361,1299,842],{}," is globally available while ",[361,1302,1123],{}," requires the ",[361,1305,959],{}," import.",[414,1308,1310],{"id":1309},"building-the-same-template-in-multiple-languages","Building the same template in multiple languages",[327,1312,1313],{},"A common pattern for email localization is to build the same template once per language.",[327,1315,1316],{},"To get started, create a wrapper template for each locale:",[354,1318,1321],{"className":1319,"code":1320,"language":430},[428],"emails\u002F\n├── welcome\u002F\n│   ├── en.vue\n│   └── fr.vue\n",[361,1322,1320],{"__ignoreMap":359},[434,1324,1325,1436],{},[437,1326,1328],{"label":1327},"en.vue",[354,1329,1332],{"className":846,"code":1330,"filename":1331,"language":848,"meta":359,"style":359},"\u003Cscript setup>\nimport { useI18n } from 'vue-i18n'\n\nconst { locale } = useI18n()\nlocale.value = 'en'\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003CWelcome \u002F>\n\u003C\u002Ftemplate>\n","emails\u002Fwelcome\u002Fen.vue",[361,1333,1334,1344,1362,1366,1382,1398,1406,1410,1418,1428],{"__ignoreMap":359},[364,1335,1336,1338,1340,1342],{"class":366,"line":18},[364,1337,855],{"class":452},[364,1339,975],{"class":699},[364,1341,978],{"class":369},[364,1343,861],{"class":452},[364,1345,1346,1348,1350,1352,1354,1356,1358,1360],{"class":366,"line":13},[364,1347,578],{"class":461},[364,1349,581],{"class":452},[364,1351,989],{"class":584},[364,1353,588],{"class":452},[364,1355,591],{"class":461},[364,1357,594],{"class":452},[364,1359,337],{"class":373},[364,1361,600],{"class":452},[364,1363,1364],{"class":366,"line":32},[364,1365,660],{"emptyLinePlaceholder":14},[364,1367,1368,1370,1372,1374,1376,1378,1380],{"class":366,"line":27},[364,1369,1009],{"class":1008},[364,1371,581],{"class":452},[364,1373,1014],{"class":722},[364,1375,588],{"class":452},[364,1377,1019],{"class":699},[364,1379,989],{"class":369},[364,1381,1024],{"class":452},[364,1383,1384,1386,1388,1390,1392,1394,1396],{"class":366,"line":52},[364,1385,1029],{"class":584},[364,1387,949],{"class":452},[364,1389,1034],{"class":461},[364,1391,1019],{"class":699},[364,1393,594],{"class":452},[364,1395,738],{"class":373},[364,1397,600],{"class":452},[364,1399,1400,1402,1404],{"class":366,"line":128},[364,1401,899],{"class":452},[364,1403,975],{"class":699},[364,1405,861],{"class":452},[364,1407,1408],{"class":366,"line":124},[364,1409,660],{"emptyLinePlaceholder":14},[364,1411,1412,1414,1416],{"class":366,"line":48},[364,1413,855],{"class":452},[364,1415,858],{"class":699},[364,1417,861],{"class":452},[364,1419,1420,1422,1425],{"class":366,"line":23},[364,1421,866],{"class":452},[364,1423,1424],{"class":699},"Welcome",[364,1426,1427],{"class":452}," \u002F>\n",[364,1429,1430,1432,1434],{"class":366,"line":140},[364,1431,899],{"class":452},[364,1433,858],{"class":699},[364,1435,861],{"class":452},[437,1437,1439],{"label":1438},"fr.vue",[354,1440,1443],{"className":846,"code":1441,"filename":1442,"language":848,"meta":359,"style":359},"\u003Cscript setup>\nimport { useI18n } from 'vue-i18n'\n\nconst { locale } = useI18n()\nlocale.value = 'fr'\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003CWelcome \u002F>\n\u003C\u002Ftemplate>\n","emails\u002Fwelcome\u002Fro.vue",[361,1444,1445,1455,1473,1477,1493,1509,1517,1521,1529,1537],{"__ignoreMap":359},[364,1446,1447,1449,1451,1453],{"class":366,"line":18},[364,1448,855],{"class":452},[364,1450,975],{"class":699},[364,1452,978],{"class":369},[364,1454,861],{"class":452},[364,1456,1457,1459,1461,1463,1465,1467,1469,1471],{"class":366,"line":13},[364,1458,578],{"class":461},[364,1460,581],{"class":452},[364,1462,989],{"class":584},[364,1464,588],{"class":452},[364,1466,591],{"class":461},[364,1468,594],{"class":452},[364,1470,337],{"class":373},[364,1472,600],{"class":452},[364,1474,1475],{"class":366,"line":32},[364,1476,660],{"emptyLinePlaceholder":14},[364,1478,1479,1481,1483,1485,1487,1489,1491],{"class":366,"line":27},[364,1480,1009],{"class":1008},[364,1482,581],{"class":452},[364,1484,1014],{"class":722},[364,1486,588],{"class":452},[364,1488,1019],{"class":699},[364,1490,989],{"class":369},[364,1492,1024],{"class":452},[364,1494,1495,1497,1499,1501,1503,1505,1507],{"class":366,"line":52},[364,1496,1029],{"class":584},[364,1498,949],{"class":452},[364,1500,1034],{"class":461},[364,1502,1019],{"class":699},[364,1504,594],{"class":452},[364,1506,1041],{"class":373},[364,1508,600],{"class":452},[364,1510,1511,1513,1515],{"class":366,"line":128},[364,1512,899],{"class":452},[364,1514,975],{"class":699},[364,1516,861],{"class":452},[364,1518,1519],{"class":366,"line":124},[364,1520,660],{"emptyLinePlaceholder":14},[364,1522,1523,1525,1527],{"class":366,"line":48},[364,1524,855],{"class":452},[364,1526,858],{"class":699},[364,1528,861],{"class":452},[364,1530,1531,1533,1535],{"class":366,"line":23},[364,1532,866],{"class":452},[364,1534,1424],{"class":699},[364,1536,1427],{"class":452},[364,1538,1539,1541,1543],{"class":366,"line":140},[364,1540,899],{"class":452},[364,1542,858],{"class":699},[364,1544,861],{"class":452},[327,1546,1547,1548,1551,1552,1554],{},"Then, create a shared ",[361,1549,1550],{},"components\u002FWelcome.vue"," component that uses ",[361,1553,842],{}," for all translatable strings. Each wrapper sets the locale and renders the same component, producing one HTML file per language in your output.",[354,1556,1557],{"className":846,"code":847,"filename":1550,"language":848,"meta":359,"style":359},[361,1558,1559,1567,1575,1601,1617,1625],{"__ignoreMap":359},[364,1560,1561,1563,1565],{"class":366,"line":18},[364,1562,855],{"class":452},[364,1564,858],{"class":699},[364,1566,861],{"class":452},[364,1568,1569,1571,1573],{"class":366,"line":13},[364,1570,866],{"class":452},[364,1572,76],{"class":699},[364,1574,861],{"class":452},[364,1576,1577,1579,1581,1583,1585,1587,1589,1591,1593,1595,1597,1599],{"class":366,"line":32},[364,1578,875],{"class":452},[364,1580,62],{"class":699},[364,1582,880],{"class":369},[364,1584,883],{"class":452},[364,1586,465],{"class":452},[364,1588,888],{"class":373},[364,1590,465],{"class":452},[364,1592,893],{"class":452},[364,1594,896],{"class":679},[364,1596,899],{"class":452},[364,1598,62],{"class":699},[364,1600,861],{"class":452},[364,1602,1603,1605,1607,1609,1611,1613,1615],{"class":366,"line":27},[364,1604,875],{"class":452},[364,1606,139],{"class":699},[364,1608,893],{"class":452},[364,1610,914],{"class":679},[364,1612,899],{"class":452},[364,1614,139],{"class":699},[364,1616,861],{"class":452},[364,1618,1619,1621,1623],{"class":366,"line":52},[364,1620,925],{"class":452},[364,1622,76],{"class":699},[364,1624,861],{"class":452},[364,1626,1627,1629,1631],{"class":366,"line":128},[364,1628,899],{"class":452},[364,1630,858],{"class":699},[364,1632,861],{"class":452},[340,1634,1636],{"id":1635},"adding-a-new-language","Adding a new language",[1638,1639,1640,1646],"ol",{},[1641,1642,1643,1644],"li",{},"Create a new locale file, e.g. ",[361,1645,509],{},[1641,1647,1648,1649,1651,1652,1655],{},"Import it in ",[361,1650,569],{}," and add it to the ",[361,1653,1654],{},"messages"," object:",[354,1657,1660],{"className":1658,"code":1659,"filename":569,"language":571,"meta":359,"style":359},"language-ts shiki shiki-themes laserwave has-diff","import en from '.\u002Flocales\u002Fen.json'\nimport fr from '.\u002Flocales\u002Ffr.json'\nimport ro from '.\u002Flocales\u002Fro.json' \u002F\u002F [!code ++]\n\n\u002F\u002F ...\nplugins: () => [\n  createI18n({\n    legacy: false,\n    locale: 'en',\n    fallbackLocale: 'en',\n    messages: { en, fr, ro }, \u002F\u002F [!code word:ro]\n  }),\n],\n",[361,1661,1662,1676,1690,1709,1713,1719,1731,1738,1749,1764,1779,1806,1811],{"__ignoreMap":359},[364,1663,1664,1666,1668,1670,1672,1674],{"class":366,"line":18},[364,1665,578],{"class":461},[364,1667,629],{"class":584},[364,1669,591],{"class":461},[364,1671,594],{"class":452},[364,1673,636],{"class":373},[364,1675,600],{"class":452},[364,1677,1678,1680,1682,1684,1686,1688],{"class":366,"line":13},[364,1679,578],{"class":461},[364,1681,646],{"class":584},[364,1683,591],{"class":461},[364,1685,594],{"class":452},[364,1687,653],{"class":373},[364,1689,600],{"class":452},[364,1691,1695,1697,1700,1702,1704,1707],{"class":1692,"line":32},[366,1693,1694],"diff","add",[364,1696,578],{"class":461},[364,1698,1699],{"class":584}," ro",[364,1701,591],{"class":461},[364,1703,594],{"class":452},[364,1705,1706],{"class":373},".\u002Flocales\u002Fro.json",[364,1708,741],{"class":452},[364,1710,1711],{"class":366,"line":27},[364,1712,660],{"emptyLinePlaceholder":14},[364,1714,1715],{"class":366,"line":52},[364,1716,1718],{"class":1717},"sVsQ9","\u002F\u002F ...\n",[364,1720,1721,1723,1725,1727,1729],{"class":366,"line":128},[364,1722,812],{"class":679},[364,1724,392],{"class":452},[364,1726,696],{"class":452},[364,1728,700],{"class":699},[364,1730,703],{"class":452},[364,1732,1733,1736],{"class":366,"line":124},[364,1734,1735],{"class":369},"  createI18n",[364,1737,673],{"class":452},[364,1739,1740,1743,1745,1747],{"class":366,"line":48},[364,1741,1742],{"class":679},"    legacy",[364,1744,392],{"class":452},[364,1746,723],{"class":722},[364,1748,478],{"class":452},[364,1750,1751,1754,1756,1758,1760,1762],{"class":366,"line":23},[364,1752,1753],{"class":679},"    locale",[364,1755,392],{"class":452},[364,1757,594],{"class":452},[364,1759,738],{"class":373},[364,1761,741],{"class":452},[364,1763,478],{"class":452},[364,1765,1766,1769,1771,1773,1775,1777],{"class":366,"line":140},[364,1767,1768],{"class":679},"    fallbackLocale",[364,1770,392],{"class":452},[364,1772,594],{"class":452},[364,1774,738],{"class":373},[364,1776,741],{"class":452},[364,1778,478],{"class":452},[364,1780,1781,1784,1786,1788,1790,1792,1794,1796,1799,1803],{"class":366,"line":56},[364,1782,1783],{"class":679},"    messages",[364,1785,392],{"class":452},[364,1787,581],{"class":452},[364,1789,629],{"class":584},[364,1791,774],{"class":452},[364,1793,646],{"class":584},[364,1795,774],{"class":452},[364,1797,1798],{"class":584}," ",[364,1800,1802],{"class":1801},"highlighted-word sU-n2","ro",[364,1804,1805],{"class":452}," },",[364,1807,1808],{"class":366,"line":80},[364,1809,1810],{"class":452},"  }),\n",[364,1812,1813],{"class":366,"line":36},[364,1814,1815],{"class":452},"],\n",[327,1817,1818,1819,1822,1823,1826],{},"The ",[361,1820,1821],{},"fallbackLocale"," option ensures that if a key is missing in ",[361,1824,1825],{},"ro.json",", it falls back to the English translation instead of showing the raw key.",[340,1828,1830],{"id":1829},"preview-locale-changes-in-dev","Preview locale changes in dev",[327,1832,1833,1834,1837],{},"Static imports like ",[361,1835,1836],{},"import en from '.\u002Flocales\u002Fen.json'"," are cached by Node.js, so editing a locale file during development won't update the preview.",[327,1839,1840,1841,1844],{},"To enable HMR when making updates to translations, use ",[361,1842,1843],{},"readFileSync"," instead so the files are read fresh each time the config is re-evaluated:",[354,1846,1848],{"className":567,"code":1847,"filename":569,"language":571,"meta":359,"style":359},"import { defineConfig } from '@maizzle\u002Fframework'\nimport { createI18n } from 'vue-i18n'\nimport { readFileSync } from 'node:fs'\n\nconst en = JSON.parse(readFileSync('.\u002Flocales\u002Fen.json', 'utf-8'))\nconst fr = JSON.parse(readFileSync('.\u002Flocales\u002Ffr.json', 'utf-8'))\n\nexport default defineConfig({\n  vue: {\n    plugins: () => [\n      createI18n({\n        legacy: false,\n        locale: 'en',\n        fallbackLocale: 'en',\n        messages: { en, fr },\n      }),\n    ],\n  },\n})\n",[361,1849,1850,1868,1886,1906,1910,1951,1987,1991,2001,2009,2021,2027,2037,2051,2065,2081,2085,2089,2093],{"__ignoreMap":359},[364,1851,1852,1854,1856,1858,1860,1862,1864,1866],{"class":366,"line":18},[364,1853,578],{"class":461},[364,1855,581],{"class":452},[364,1857,585],{"class":584},[364,1859,588],{"class":452},[364,1861,591],{"class":461},[364,1863,594],{"class":452},[364,1865,597],{"class":373},[364,1867,600],{"class":452},[364,1869,1870,1872,1874,1876,1878,1880,1882,1884],{"class":366,"line":13},[364,1871,578],{"class":461},[364,1873,581],{"class":452},[364,1875,611],{"class":584},[364,1877,588],{"class":452},[364,1879,591],{"class":461},[364,1881,594],{"class":452},[364,1883,337],{"class":373},[364,1885,600],{"class":452},[364,1887,1888,1890,1892,1895,1897,1899,1901,1904],{"class":366,"line":32},[364,1889,578],{"class":461},[364,1891,581],{"class":452},[364,1893,1894],{"class":584}," readFileSync",[364,1896,588],{"class":452},[364,1898,591],{"class":461},[364,1900,594],{"class":452},[364,1902,1903],{"class":373},"node:fs",[364,1905,600],{"class":452},[364,1907,1908],{"class":366,"line":27},[364,1909,660],{"emptyLinePlaceholder":14},[364,1911,1912,1914,1916,1918,1921,1923,1926,1929,1931,1933,1935,1937,1939,1941,1943,1946,1948],{"class":366,"line":52},[364,1913,1009],{"class":1008},[364,1915,629],{"class":584},[364,1917,1019],{"class":699},[364,1919,1920],{"class":584}," JSON",[364,1922,949],{"class":699},[364,1924,1925],{"class":369},"parse",[364,1927,1928],{"class":452},"(",[364,1930,1843],{"class":369},[364,1932,1928],{"class":452},[364,1934,741],{"class":452},[364,1936,636],{"class":373},[364,1938,741],{"class":452},[364,1940,774],{"class":452},[364,1942,594],{"class":452},[364,1944,1945],{"class":373},"utf-8",[364,1947,741],{"class":452},[364,1949,1950],{"class":452},"))\n",[364,1952,1953,1955,1957,1959,1961,1963,1965,1967,1969,1971,1973,1975,1977,1979,1981,1983,1985],{"class":366,"line":128},[364,1954,1009],{"class":1008},[364,1956,646],{"class":584},[364,1958,1019],{"class":699},[364,1960,1920],{"class":584},[364,1962,949],{"class":699},[364,1964,1925],{"class":369},[364,1966,1928],{"class":452},[364,1968,1843],{"class":369},[364,1970,1928],{"class":452},[364,1972,741],{"class":452},[364,1974,653],{"class":373},[364,1976,741],{"class":452},[364,1978,774],{"class":452},[364,1980,594],{"class":452},[364,1982,1945],{"class":373},[364,1984,741],{"class":452},[364,1986,1950],{"class":452},[364,1988,1989],{"class":366,"line":124},[364,1990,660],{"emptyLinePlaceholder":14},[364,1992,1993,1995,1997,1999],{"class":366,"line":48},[364,1994,665],{"class":461},[364,1996,668],{"class":461},[364,1998,585],{"class":369},[364,2000,673],{"class":452},[364,2002,2003,2005,2007],{"class":366,"line":23},[364,2004,680],{"class":679},[364,2006,392],{"class":452},[364,2008,685],{"class":452},[364,2010,2011,2013,2015,2017,2019],{"class":366,"line":140},[364,2012,691],{"class":369},[364,2014,392],{"class":452},[364,2016,696],{"class":452},[364,2018,700],{"class":699},[364,2020,703],{"class":452},[364,2022,2023,2025],{"class":366,"line":56},[364,2024,709],{"class":369},[364,2026,673],{"class":452},[364,2028,2029,2031,2033,2035],{"class":366,"line":80},[364,2030,717],{"class":679},[364,2032,392],{"class":452},[364,2034,723],{"class":722},[364,2036,478],{"class":452},[364,2038,2039,2041,2043,2045,2047,2049],{"class":366,"line":36},[364,2040,731],{"class":679},[364,2042,392],{"class":452},[364,2044,594],{"class":452},[364,2046,738],{"class":373},[364,2048,741],{"class":452},[364,2050,478],{"class":452},[364,2052,2053,2055,2057,2059,2061,2063],{"class":366,"line":73},[364,2054,749],{"class":679},[364,2056,392],{"class":452},[364,2058,594],{"class":452},[364,2060,738],{"class":373},[364,2062,741],{"class":452},[364,2064,478],{"class":452},[364,2066,2067,2069,2071,2073,2075,2077,2079],{"class":366,"line":132},[364,2068,765],{"class":679},[364,2070,392],{"class":452},[364,2072,581],{"class":452},[364,2074,629],{"class":584},[364,2076,774],{"class":452},[364,2078,646],{"class":584},[364,2080,779],{"class":452},[364,2082,2083],{"class":366,"line":66},[364,2084,785],{"class":452},[364,2086,2087],{"class":366,"line":112},[364,2088,791],{"class":452},[364,2090,2091],{"class":366,"line":40},[364,2092,797],{"class":452},[364,2094,2095],{"class":366,"line":44},[364,2096,802],{"class":452},[327,2098,2099,2100,2102],{},"Maizzle will automatically watch the ",[361,2101,423],{}," directory in your project root for changes and re-render templates when a locale file is updated.",[327,2104,2105,2106,2109],{},"If you store locale files somewhere else, add the path to the ",[361,2107,2108],{},"watch"," array in the config:",[354,2111,2114],{"className":567,"code":2112,"filename":569,"highlights":2113,"language":571,"meta":359,"style":359},"import { defineConfig } from '@maizzle\u002Fframework'\n\nexport default defineConfig({\n  server: {\n    watch: ['.\u002Fmessages\u002F**\u002F*.json'],\n  },\n})\n",[27,52,128],[361,2115,2116,2134,2138,2148,2158,2178,2183],{"__ignoreMap":359},[364,2117,2118,2120,2122,2124,2126,2128,2130,2132],{"class":366,"line":18},[364,2119,578],{"class":461},[364,2121,581],{"class":452},[364,2123,585],{"class":584},[364,2125,588],{"class":452},[364,2127,591],{"class":461},[364,2129,594],{"class":452},[364,2131,597],{"class":373},[364,2133,600],{"class":452},[364,2135,2136],{"class":366,"line":13},[364,2137,660],{"emptyLinePlaceholder":14},[364,2139,2140,2142,2144,2146],{"class":366,"line":32},[364,2141,665],{"class":461},[364,2143,668],{"class":461},[364,2145,585],{"class":369},[364,2147,673],{"class":452},[364,2149,2151,2154,2156],{"class":2150,"line":27},[366,604],[364,2152,2153],{"class":679},"  server",[364,2155,392],{"class":452},[364,2157,685],{"class":452},[364,2159,2161,2164,2166,2169,2171,2174,2176],{"class":2160,"line":52},[366,604],[364,2162,2163],{"class":679},"    watch",[364,2165,392],{"class":452},[364,2167,2168],{"class":452}," [",[364,2170,741],{"class":452},[364,2172,2173],{"class":373},".\u002Fmessages\u002F**\u002F*.json",[364,2175,741],{"class":452},[364,2177,1815],{"class":452},[364,2179,2181],{"class":2180,"line":128},[366,604],[364,2182,797],{"class":452},[364,2184,2185],{"class":366,"line":124},[364,2186,802],{"class":452},[2188,2189,2190],"style",{},"html pre.shiki code .sZNF3, html code.shiki .sZNF3{--shiki-default:#EB64B9}html pre.shiki code .sXiT_, html code.shiki .sXiT_{--shiki-default:#B4DCE7}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 pre.shiki code .sGGKt, html code.shiki .sGGKt{--shiki-default:#7B6995}html pre.shiki code .s0ZPN, html code.shiki .s0ZPN{--shiki-default:#40B4C4}html pre.shiki code .sU-n2, html code.shiki .sU-n2{--shiki-default:#FFF}html pre.shiki code .sLaUg, html code.shiki .sLaUg{--shiki-default:#FFFFFF}html pre.shiki code .sb4Pa, html code.shiki .sb4Pa{--shiki-default:#74DFC4}html pre.shiki code .skd8d, html code.shiki .skd8d{--shiki-default:#FFE261}html pre.shiki code .sIihq, html code.shiki .sIihq{--shiki-default:#A96BC0}html pre.shiki code .sVsQ9, html code.shiki .sVsQ9{--shiki-default:#91889B}",{"title":359,"searchDepth":13,"depth":13,"links":2192},[2193,2194,2195,2199,2206,2207],{"id":342,"depth":13,"text":343},{"id":386,"depth":13,"text":227},{"id":411,"depth":13,"text":412,"children":2196},[2197,2198],{"id":416,"depth":32,"text":417},{"id":558,"depth":32,"text":173},{"id":827,"depth":13,"text":828,"children":2200},[2201,2202,2203,2205],{"id":831,"depth":32,"text":832},{"id":952,"depth":32,"text":953},{"id":1119,"depth":32,"text":2204},"Using t() instead of $t()",{"id":1309,"depth":32,"text":1310},{"id":1635,"depth":13,"text":1636},{"id":1829,"depth":13,"text":1830},"Create email templates in multiple languages using vue-i18n for internationalization.","md",{},{"title":180,"description":2208},"docs\u002Fdevelopment\u002Fi18n","GcIH3HEIY-IzceMK3F-Cl0DZbAdpaP0vprSR5PyxT40",1781015461123]