[{"data":1,"prerenderedAt":786},["ShallowReactive",2],{"navigation":3,"\u002Fcustomization\u002Flanguages":178,"\u002Fcustomization\u002Flanguages-surround":781},[4,23,78,95,123,143,158],{"title":5,"path":6,"stem":7,"children":8,"icon":22},"Getting Started","\u002Fgetting-started","1.getting-started\u002F1.index",[9,12,17],{"title":10,"path":6,"stem":7,"icon":11},"Introduction","i-lucide-house",{"title":13,"path":14,"stem":15,"icon":16},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation","i-lucide-download",{"title":18,"path":19,"stem":20,"icon":21},"Configuration","\u002Fgetting-started\u002Fconfiguration","1.getting-started\u002F3.configuration","i-lucide-settings",false,{"title":24,"icon":22,"path":25,"stem":26,"children":27,"page":22},"Sign-in","\u002Fsign-in","2.sign-in",[28,33,38,43,48,53,58,63,68,73],{"title":29,"path":30,"stem":31,"icon":32},"Sign-in pages","\u002Fsign-in\u002Fpages","2.sign-in\u002F1.pages","i-lucide-log-in",{"title":34,"path":35,"stem":36,"icon":37},"Several accounts","\u002Fsign-in\u002Fmulti-session","2.sign-in\u002F10.multi-session","i-lucide-users-round",{"title":39,"path":40,"stem":41,"icon":42},"Account page","\u002Fsign-in\u002Faccount","2.sign-in\u002F2.account","i-lucide-circle-user",{"title":44,"path":45,"stem":46,"icon":47},"Other methods","\u002Fsign-in\u002Fmethods","2.sign-in\u002F3.methods","i-lucide-key-square",{"title":49,"path":50,"stem":51,"icon":52},"Sign-in providers","\u002Fsign-in\u002Fproviders","2.sign-in\u002F4.providers","i-lucide-share-2",{"title":54,"path":55,"stem":56,"icon":57},"Two-factor","\u002Fsign-in\u002Ftwo-factor","2.sign-in\u002F5.two-factor","i-lucide-shield-check",{"title":59,"path":60,"stem":61,"icon":62},"Passkeys","\u002Fsign-in\u002Fpasskeys","2.sign-in\u002F6.passkeys","i-lucide-fingerprint",{"title":64,"path":65,"stem":66,"icon":67},"Phone numbers","\u002Fsign-in\u002Fphone-numbers","2.sign-in\u002F7.phone-numbers","i-lucide-smartphone",{"title":69,"path":70,"stem":71,"icon":72},"Signing in devices","\u002Fsign-in\u002Fdevices","2.sign-in\u002F8.devices","i-lucide-tv",{"title":74,"path":75,"stem":76,"icon":77},"Security","\u002Fsign-in\u002Fsecurity","2.sign-in\u002F9.security","i-lucide-lock-keyhole",{"title":79,"path":80,"stem":81,"children":82,"icon":22},"Organizations","\u002Forganizations","3.organizations\u002F1.index",[83,85,90],{"title":79,"path":80,"stem":81,"icon":84},"i-lucide-building-2",{"title":86,"path":87,"stem":88,"icon":89},"Roles","\u002Forganizations\u002Froles","3.organizations\u002F2.roles","i-lucide-shield",{"title":91,"path":92,"stem":93,"icon":94},"Single sign-on","\u002Forganizations\u002Fsso","3.organizations\u002F3.sso","i-lucide-key-round",{"title":96,"path":97,"stem":98,"children":99,"icon":22},"Admin dashboard","\u002Fadmin","4.admin\u002F1.index",[100,103,108,113,118],{"title":101,"path":97,"stem":98,"icon":102},"Overview","i-lucide-layout-dashboard",{"title":104,"path":105,"stem":106,"icon":107},"Managing users","\u002Fadmin\u002Fusers","4.admin\u002F2.users","i-lucide-user-cog",{"title":109,"path":110,"stem":111,"icon":112},"Staff roles","\u002Fadmin\u002Froles","4.admin\u002F3.roles","i-lucide-shield-user",{"title":114,"path":115,"stem":116,"icon":117},"Audit log","\u002Fadmin\u002Faudit-log","4.admin\u002F4.audit-log","i-lucide-history",{"title":119,"path":120,"stem":121,"icon":122},"Your own pages","\u002Fadmin\u002Fextending","4.admin\u002F5.extending","i-lucide-layout-panel-left",{"title":124,"icon":22,"path":125,"stem":126,"children":127,"page":22},"Integrations","\u002Fintegrations","5.integrations",[128,133,138],{"title":129,"path":130,"stem":131,"icon":132},"Stripe","\u002Fintegrations\u002Fstripe","5.integrations\u002F1.stripe","i-simple-icons-stripe",{"title":134,"path":135,"stem":136,"icon":137},"API keys","\u002Fintegrations\u002Fapi-keys","5.integrations\u002F2.api-keys","i-lucide-key",{"title":139,"path":140,"stem":141,"icon":142},"Tokens","\u002Fintegrations\u002Ftokens","5.integrations\u002F3.tokens","i-lucide-ticket",{"title":144,"icon":22,"path":145,"stem":146,"children":147,"page":22},"Customization","\u002Fcustomization","6.customization",[148,153],{"title":149,"path":150,"stem":151,"icon":152},"Emails","\u002Fcustomization\u002Femails","6.customization\u002F1.emails","i-lucide-mail",{"title":154,"path":155,"stem":156,"icon":157},"Languages","\u002Fcustomization\u002Flanguages","6.customization\u002F2.languages","i-lucide-languages",{"title":159,"icon":22,"path":160,"stem":161,"children":162,"page":22},"Reference","\u002Freference","7.reference",[163,168,173],{"title":164,"path":165,"stem":166,"icon":167},"How it works","\u002Freference\u002Fhow-it-works","7.reference\u002F1.how-it-works","i-lucide-cog",{"title":169,"path":170,"stem":171,"icon":172},"API reference","\u002Freference\u002Fapi","7.reference\u002F2.api","i-lucide-braces",{"title":174,"path":175,"stem":176,"icon":177},"Contributing","\u002Freference\u002Fcontributing","7.reference\u002F3.contributing","i-lucide-git-pull-request",{"id":179,"title":180,"body":181,"description":774,"extension":775,"links":776,"meta":777,"navigation":778,"path":155,"seo":779,"stem":156,"__hash__":780},"docs\u002F6.customization\u002F2.languages.md","Languages and words",{"type":182,"value":183,"toc":767},"minimark",[184,188,269,274,289,293,299,429,456,460,466,577,588,592,601,605,629,763],[185,186,187],"p",{},"The sign-in pages, the account page, the admin dashboard and the default emails come in English and Spanish:",[189,190,196],"pre",{"className":191,"code":192,"filename":193,"language":194,"meta":195,"style":195},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","export default defineNuxtConfig({\n  betterAuthUi: {\n    locale: 'es'\n  }\n})\n","nuxt.config.ts","ts","",[197,198,199,223,236,254,260],"code",{"__ignoreMap":195},[200,201,204,208,211,215,219],"span",{"class":202,"line":203},"line",1,[200,205,207],{"class":206},"s7zQu","export",[200,209,210],{"class":206}," default",[200,212,214],{"class":213},"s2Zo4"," defineNuxtConfig",[200,216,218],{"class":217},"sTEyZ","(",[200,220,222],{"class":221},"sMK4o","{\n",[200,224,226,230,233],{"class":202,"line":225},2,[200,227,229],{"class":228},"swJcz","  betterAuthUi",[200,231,232],{"class":221},":",[200,234,235],{"class":221}," {\n",[200,237,239,242,244,247,251],{"class":202,"line":238},3,[200,240,241],{"class":228},"    locale",[200,243,232],{"class":221},[200,245,246],{"class":221}," '",[200,248,250],{"class":249},"sfazB","es",[200,252,253],{"class":221},"'\n",[200,255,257],{"class":202,"line":256},4,[200,258,259],{"class":221},"  }\n",[200,261,263,266],{"class":202,"line":262},5,[200,264,265],{"class":221},"}",[200,267,268],{"class":217},")\n",[270,271,273],"h2",{"id":272},"with-nuxtjsi18n","With @nuxtjs\u002Fi18n",[185,275,276,277,284,285,288],{},"When your app uses ",[278,279,283],"a",{"href":280,"rel":281},"https:\u002F\u002Fi18n.nuxtjs.org",[282],"nofollow","@nuxtjs\u002Fi18n",", the pages follow its current language as visitors switch\nit, when it's one the module has. ",[197,286,287],{},"locale"," then only sets the default emails' language.",[270,290,292],{"id":291},"your-own-words","Your own words",[185,294,295,298],{},[197,296,297],{},"messages"," replaces any of the module's words, per language and key. For example, to call organizations \"teams\":",[189,300,302],{"className":191,"code":301,"filename":193,"language":194,"meta":195,"style":195},"export default defineNuxtConfig({\n  betterAuthUi: {\n    messages: {\n      en: {\n        'account.tabs.organizations': 'Teams',\n        'signIn.title': 'Log in',\n        'errors.USER_NOT_FOUND': 'No such user.'\n      }\n    }\n  }\n})\n",[197,303,304,316,324,333,342,365,386,405,411,417,422],{"__ignoreMap":195},[200,305,306,308,310,312,314],{"class":202,"line":203},[200,307,207],{"class":206},[200,309,210],{"class":206},[200,311,214],{"class":213},[200,313,218],{"class":217},[200,315,222],{"class":221},[200,317,318,320,322],{"class":202,"line":225},[200,319,229],{"class":228},[200,321,232],{"class":221},[200,323,235],{"class":221},[200,325,326,329,331],{"class":202,"line":238},[200,327,328],{"class":228},"    messages",[200,330,232],{"class":221},[200,332,235],{"class":221},[200,334,335,338,340],{"class":202,"line":256},[200,336,337],{"class":228},"      en",[200,339,232],{"class":221},[200,341,235],{"class":221},[200,343,344,347,350,353,355,357,360,362],{"class":202,"line":262},[200,345,346],{"class":221},"        '",[200,348,349],{"class":228},"account.tabs.organizations",[200,351,352],{"class":221},"'",[200,354,232],{"class":221},[200,356,246],{"class":221},[200,358,359],{"class":249},"Teams",[200,361,352],{"class":221},[200,363,364],{"class":221},",\n",[200,366,368,370,373,375,377,379,382,384],{"class":202,"line":367},6,[200,369,346],{"class":221},[200,371,372],{"class":228},"signIn.title",[200,374,352],{"class":221},[200,376,232],{"class":221},[200,378,246],{"class":221},[200,380,381],{"class":249},"Log in",[200,383,352],{"class":221},[200,385,364],{"class":221},[200,387,389,391,394,396,398,400,403],{"class":202,"line":388},7,[200,390,346],{"class":221},[200,392,393],{"class":228},"errors.USER_NOT_FOUND",[200,395,352],{"class":221},[200,397,232],{"class":221},[200,399,246],{"class":221},[200,401,402],{"class":249},"No such user.",[200,404,253],{"class":221},[200,406,408],{"class":202,"line":407},8,[200,409,410],{"class":221},"      }\n",[200,412,414],{"class":202,"line":413},9,[200,415,416],{"class":221},"    }\n",[200,418,420],{"class":202,"line":419},10,[200,421,259],{"class":221},[200,423,425,427],{"class":202,"line":424},11,[200,426,265],{"class":221},[200,428,268],{"class":217},[185,430,431,432,439,440,447,448,451,452,455],{},"The keys are the module's message keys, in its\n",[278,433,436],{"href":434,"rel":435},"https:\u002F\u002Fgithub.com\u002Ftreygrr\u002Fnuxt-better-auth-ui\u002Fblob\u002Fmain\u002Fsrc\u002Fruntime\u002Fapp\u002Fi18n\u002Fauth.en.ts",[282],[197,437,438],{},"auth.en.ts"," and\n",[278,441,444],{"href":442,"rel":443},"https:\u002F\u002Fgithub.com\u002Ftreygrr\u002Fnuxt-better-auth-ui\u002Fblob\u002Fmain\u002Fsrc\u002Fruntime\u002Fapp\u002Fi18n\u002Fadmin.en.ts",[282],[197,445,446],{},"admin.en.ts",". The\nadmin's start with ",[197,449,450],{},"admin.",", and errors are ",[197,453,454],{},"errors.\u003CCODE>",".",[270,457,459],{"id":458},"adding-a-language","Adding a language",[185,461,462,463,465],{},"Give the words for a language, and set it as the ",[197,464,287],{},". English fills in any keys you leave out:",[189,467,469],{"className":191,"code":468,"filename":193,"language":194,"meta":195,"style":195},"export default defineNuxtConfig({\n  betterAuthUi: {\n    messages: {\n      fr: {\n        'signIn.title': 'Connexion',\n        'signIn.submit': 'Se connecter'\n      }\n    },\n    locale: 'fr'\n  }\n})\n",[197,470,471,483,491,499,508,527,545,549,554,567,571],{"__ignoreMap":195},[200,472,473,475,477,479,481],{"class":202,"line":203},[200,474,207],{"class":206},[200,476,210],{"class":206},[200,478,214],{"class":213},[200,480,218],{"class":217},[200,482,222],{"class":221},[200,484,485,487,489],{"class":202,"line":225},[200,486,229],{"class":228},[200,488,232],{"class":221},[200,490,235],{"class":221},[200,492,493,495,497],{"class":202,"line":238},[200,494,328],{"class":228},[200,496,232],{"class":221},[200,498,235],{"class":221},[200,500,501,504,506],{"class":202,"line":256},[200,502,503],{"class":228},"      fr",[200,505,232],{"class":221},[200,507,235],{"class":221},[200,509,510,512,514,516,518,520,523,525],{"class":202,"line":262},[200,511,346],{"class":221},[200,513,372],{"class":228},[200,515,352],{"class":221},[200,517,232],{"class":221},[200,519,246],{"class":221},[200,521,522],{"class":249},"Connexion",[200,524,352],{"class":221},[200,526,364],{"class":221},[200,528,529,531,534,536,538,540,543],{"class":202,"line":367},[200,530,346],{"class":221},[200,532,533],{"class":228},"signIn.submit",[200,535,352],{"class":221},[200,537,232],{"class":221},[200,539,246],{"class":221},[200,541,542],{"class":249},"Se connecter",[200,544,253],{"class":221},[200,546,547],{"class":202,"line":388},[200,548,410],{"class":221},[200,550,551],{"class":202,"line":407},[200,552,553],{"class":221},"    },\n",[200,555,556,558,560,562,565],{"class":202,"line":413},[200,557,241],{"class":228},[200,559,232],{"class":221},[200,561,246],{"class":221},[200,563,564],{"class":249},"fr",[200,566,253],{"class":221},[200,568,569],{"class":202,"line":419},[200,570,259],{"class":221},[200,572,573,575],{"class":202,"line":424},[200,574,265],{"class":221},[200,576,268],{"class":217},[578,579,580],"note",{},[185,581,582,583,587],{},"For languages the module doesn't have, the default emails and texts stay in English. Write\n",[278,584,586],{"href":585},"\u002Fcustomization\u002Femails#your-own-templates","your own templates"," to send them in yours.",[270,589,591],{"id":590},"errors","Errors",[185,593,594,595,598,599,455],{},"Better Auth's errors (\"Invalid email or password\", \"Username is already taken\", …) are shown in the page's language,\nby their error code. Codes the module doesn't know show Better Auth's own message. The module's own routes give their\nerrors codes too (",[197,596,597],{},"USER_NOT_FOUND","), so admin messages are translated the same way, and you can reword any of them\nwith ",[197,600,454],{},[270,602,604],{"id":603},"everything-else","Everything else",[606,607,608,616],"ul",{},[609,610,611,615],"li",{},[612,613,614],"strong",{},"Numbers and dates",", like the home page's chart, follow the page's language.",[609,617,618,621,622,625,626,232],{},[612,619,620],{},"Nuxt UI's own labels",", like a password field's \"Show password\", follow ",[197,623,624],{},"\u003CUApp :locale>",", as usual for Nuxt UI.\nPass it the same language from ",[197,627,628],{},"@nuxt\u002Fui\u002Flocale",[189,630,635],{"className":631,"code":632,"filename":633,"language":634,"meta":195,"style":195},"language-vue shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Cscript setup lang=\"ts\">\nimport { es } from '@nuxt\u002Fui\u002Flocale'\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003CUApp :locale=\"es\">\n    \u003CNuxtPage \u002F>\n  \u003C\u002FUApp>\n\u003C\u002Ftemplate>\n","app.vue","vue",[197,636,637,665,688,697,703,712,735,746,755],{"__ignoreMap":195},[200,638,639,642,645,649,652,655,658,660,662],{"class":202,"line":203},[200,640,641],{"class":221},"\u003C",[200,643,644],{"class":228},"script",[200,646,648],{"class":647},"spNyl"," setup",[200,650,651],{"class":647}," lang",[200,653,654],{"class":221},"=",[200,656,657],{"class":221},"\"",[200,659,194],{"class":249},[200,661,657],{"class":221},[200,663,664],{"class":221},">\n",[200,666,667,670,673,676,679,682,684,686],{"class":202,"line":225},[200,668,669],{"class":206},"import",[200,671,672],{"class":221}," {",[200,674,675],{"class":217}," es",[200,677,678],{"class":221}," }",[200,680,681],{"class":206}," from",[200,683,246],{"class":221},[200,685,628],{"class":249},[200,687,253],{"class":221},[200,689,690,693,695],{"class":202,"line":238},[200,691,692],{"class":221},"\u003C\u002F",[200,694,644],{"class":228},[200,696,664],{"class":221},[200,698,699],{"class":202,"line":256},[200,700,702],{"emptyLinePlaceholder":701},true,"\n",[200,704,705,707,710],{"class":202,"line":262},[200,706,641],{"class":221},[200,708,709],{"class":228},"template",[200,711,664],{"class":221},[200,713,714,717,720,723,725,727,729,731,733],{"class":202,"line":367},[200,715,716],{"class":221},"  \u003C",[200,718,719],{"class":228},"UApp",[200,721,722],{"class":221}," :",[200,724,287],{"class":647},[200,726,654],{"class":221},[200,728,657],{"class":221},[200,730,250],{"class":217},[200,732,657],{"class":221},[200,734,664],{"class":221},[200,736,737,740,743],{"class":202,"line":388},[200,738,739],{"class":221},"    \u003C",[200,741,742],{"class":228},"NuxtPage",[200,744,745],{"class":221}," \u002F>\n",[200,747,748,751,753],{"class":202,"line":407},[200,749,750],{"class":221},"  \u003C\u002F",[200,752,719],{"class":228},[200,754,664],{"class":221},[200,756,757,759,761],{"class":202,"line":413},[200,758,692],{"class":221},[200,760,709],{"class":228},[200,762,664],{"class":221},[764,765,766],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .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 .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}",{"title":195,"searchDepth":203,"depth":225,"links":768},[769,770,771,772,773],{"id":272,"depth":225,"text":273},{"id":291,"depth":225,"text":292},{"id":458,"depth":225,"text":459},{"id":590,"depth":225,"text":591},{"id":603,"depth":225,"text":604},"English and Spanish built in, any word renamed, and your own languages.","md",null,{},{"title":154,"icon":157},{"title":180,"description":774},"moWxxqsBA7C27mcJBqmR34OgCZbPxlJxbnhdAkDnkjw",[782,784],{"title":149,"path":150,"stem":151,"description":783,"icon":152,"children":-1},"Send Better Auth's emails through your own provider, with your own templates.",{"title":164,"path":165,"stem":166,"description":785,"icon":167,"children":-1},"How the module fits into Better Auth and your Nuxt app.",1793019845164]