[{"data":1,"prerenderedAt":1555},["ShallowReactive",2],{"navigation_docs":3,"-nuxt-module-what-it-publishes":357,"-nuxt-module-what-it-publishes-surround":1552},[4,22,40,53,78,107,132,153,167,176,347],{"title":5,"path":6,"stem":7,"children":8,"page":21},"Introduction","\u002Fintroduction","1.introduction",[9,13,17],{"title":10,"path":11,"stem":12},"Why the-i18n-kit","\u002Fintroduction\u002Fwhy","1.introduction\u002F1.why",{"title":14,"path":15,"stem":16},"Architecture","\u002Fintroduction\u002Farchitecture","1.introduction\u002F2.architecture",{"title":18,"path":19,"stem":20},"Built for Agents","\u002Fintroduction\u002Fbuilt-for-agents","1.introduction\u002F3.built-for-agents",false,{"title":23,"icon":24,"path":25,"stem":26,"children":27,"page":21},"ESLint Plugin","i-lucide-shield-check","\u002Feslint-plugin","10.eslint-plugin",[28,32,36],{"title":29,"path":30,"stem":31},"Install and Presets","\u002Feslint-plugin\u002Finstall","10.eslint-plugin\u002F1.install",{"title":33,"path":34,"stem":35},"The Rules","\u002Feslint-plugin\u002Frules","10.eslint-plugin\u002F2.rules",{"title":37,"path":38,"stem":39},"Layer-Aware Missing Keys","\u002Feslint-plugin\u002Flayer-aware","10.eslint-plugin\u002F3.layer-aware",{"title":41,"path":42,"stem":43,"children":44,"page":21},"Getting Started","\u002Fgetting-started","2.getting-started",[45,49],{"title":46,"path":47,"stem":48},"Set Up the MCP Server","\u002Fgetting-started\u002Fagent-setup","2.getting-started\u002F1.agent-setup",{"title":50,"path":51,"stem":52},"From an Unconfigured Repository to a Gated CI Job","\u002Fgetting-started\u002Fcold-start","2.getting-started\u002F2.cold-start",{"title":54,"path":55,"stem":56,"children":57,"page":21},"Monorepos","\u002Fmonorepos","3.monorepos",[58,62,66,70,74],{"title":59,"path":60,"stem":61},"Layers","\u002Fmonorepos\u002Flayers","3.monorepos\u002F1.layers",{"title":63,"path":64,"stem":65},"The Consumer Graph","\u002Fmonorepos\u002Fconsumer-graph","3.monorepos\u002F2.consumer-graph",{"title":67,"path":68,"stem":69},"The Shared Library Scenario","\u002Fmonorepos\u002Fshared-libraries","3.monorepos\u002F3.shared-libraries",{"title":71,"path":72,"stem":73},"Duplicates and Divergence","\u002Fmonorepos\u002Fduplicates-and-divergence","3.monorepos\u002F4.duplicates-and-divergence",{"title":75,"path":76,"stem":77},"Misplaced Usages","\u002Fmonorepos\u002Fmisplaced-usages","3.monorepos\u002F5.misplaced-usages",{"title":79,"path":80,"stem":81,"children":82,"page":21},"Frameworks","\u002Fframeworks","4.frameworks",[83,87,91,95,99,103],{"title":84,"path":85,"stem":86},"Detection","\u002Fframeworks\u002Fdetection","4.frameworks\u002F1.detection",{"title":88,"path":89,"stem":90},"Nuxt","\u002Fframeworks\u002Fnuxt","4.frameworks\u002F2.nuxt",{"title":92,"path":93,"stem":94},"Laravel","\u002Fframeworks\u002Flaravel","4.frameworks\u002F3.laravel",{"title":96,"path":97,"stem":98},"Vue","\u002Fframeworks\u002Fvue","4.frameworks\u002F4.vue",{"title":100,"path":101,"stem":102},"React \u002F Next.js","\u002Fframeworks\u002Freact-next","4.frameworks\u002F5.react-next",{"title":104,"path":105,"stem":106},"Generic","\u002Fframeworks\u002Fgeneric","4.frameworks\u002F6.generic",{"title":108,"path":109,"stem":110,"children":111,"page":21},"Configuration","\u002Fconfiguration","5.configuration",[112,116,120,124,128],{"title":113,"path":114,"stem":115},"Where Configuration Lives","\u002Fconfiguration\u002Fwhere-config-lives","5.configuration\u002F1.where-config-lives",{"title":117,"path":118,"stem":119},"Precedence and Conflicts","\u002Fconfiguration\u002Fprecedence","5.configuration\u002F2.precedence",{"title":121,"path":122,"stem":123},"Declared vs. Derived Configuration","\u002Fconfiguration\u002Fdeclared-vs-derived","5.configuration\u002F3.declared-vs-derived",{"title":125,"path":126,"stem":127},"Configuration Fields","\u002Fconfiguration\u002Freference","5.configuration\u002F4.reference",{"title":129,"path":130,"stem":131},"Referring to Locales","\u002Fconfiguration\u002Flocale-refs","5.configuration\u002F5.locale-refs",{"title":133,"path":134,"stem":135,"children":136,"page":21},"Nuxt Module","\u002Fnuxt-module","6.nuxt-module",[137,141,145,149],{"title":138,"path":139,"stem":140},"Install and Setup","\u002Fnuxt-module\u002Finstall","6.nuxt-module\u002F1.install",{"title":142,"path":143,"stem":144},"What It Publishes","\u002Fnuxt-module\u002Fwhat-it-publishes","6.nuxt-module\u002F2.what-it-publishes",{"title":146,"path":147,"stem":148},"What It Validates","\u002Fnuxt-module\u002Fvalidation","6.nuxt-module\u002F3.validation",{"title":150,"path":151,"stem":152},"Options and Limits","\u002Fnuxt-module\u002Foptions-and-limits","6.nuxt-module\u002F4.options-and-limits",{"title":154,"icon":155,"path":156,"stem":157,"children":158,"page":21},"CI\u002FCD","i-lucide-git-pull-request","\u002Fci-cd","7.ci-cd",[159,163],{"title":160,"path":161,"stem":162},"GitHub Actions","\u002Fci-cd\u002Fgithub-actions","7.ci-cd\u002F1.github-actions",{"title":164,"path":165,"stem":166},"GitLab CI","\u002Fci-cd\u002Fgitlab-ci","7.ci-cd\u002F2.gitlab-ci",{"title":168,"path":169,"stem":170,"children":171,"page":21},"Concepts","\u002Fconcepts","8.concepts",[172],{"title":173,"path":174,"stem":175},"Translation Modes","\u002Fconcepts\u002Ftranslation-modes","8.concepts\u002F1.translation-modes",{"title":177,"path":178,"stem":179,"children":180},"Reference","\u002Freference","9.reference",[181,183,261,339,343],{"title":177,"path":178,"stem":182},"9.reference\u002Findex",{"title":184,"path":185,"stem":186,"children":187},"CLI Commands","\u002Freference\u002Fcli","9.reference\u002F1.cli\u002Findex",[188,189,193,197,201,205,209,213,217,221,225,229,233,237,241,245,249,253,257],{"title":184,"path":185,"stem":186},{"title":190,"path":191,"stem":192},"add","\u002Freference\u002Fcli\u002Fadd","9.reference\u002F1.cli\u002Fadd",{"title":194,"path":195,"stem":196},"check","\u002Freference\u002Fcli\u002Fcheck","9.reference\u002F1.cli\u002Fcheck",{"title":198,"path":199,"stem":200},"find-duplicates","\u002Freference\u002Fcli\u002Ffind-duplicates","9.reference\u002F1.cli\u002Ffind-duplicates",{"title":202,"path":203,"stem":204},"get","\u002Freference\u002Fcli\u002Fget","9.reference\u002F1.cli\u002Fget",{"title":206,"path":207,"stem":208},"init","\u002Freference\u002Fcli\u002Finit","9.reference\u002F1.cli\u002Finit",{"title":210,"path":211,"stem":212},"missing","\u002Freference\u002Fcli\u002Fmissing","9.reference\u002F1.cli\u002Fmissing",{"title":214,"path":215,"stem":216},"move","\u002Freference\u002Fcli\u002Fmove","9.reference\u002F1.cli\u002Fmove",{"title":218,"path":219,"stem":220},"remove","\u002Freference\u002Fcli\u002Fremove","9.reference\u002F1.cli\u002Fremove",{"title":222,"path":223,"stem":224},"remove-orphans","\u002Freference\u002Fcli\u002Fremove-orphans","9.reference\u002F1.cli\u002Fremove-orphans",{"title":226,"path":227,"stem":228},"rename","\u002Freference\u002Fcli\u002Frename","9.reference\u002F1.cli\u002Frename",{"title":230,"path":231,"stem":232},"scaffold","\u002Freference\u002Fcli\u002Fscaffold","9.reference\u002F1.cli\u002Fscaffold",{"title":234,"path":235,"stem":236},"scan","\u002Freference\u002Fcli\u002Fscan","9.reference\u002F1.cli\u002Fscan",{"title":238,"path":239,"stem":240},"search","\u002Freference\u002Fcli\u002Fsearch","9.reference\u002F1.cli\u002Fsearch",{"title":242,"path":243,"stem":244},"status","\u002Freference\u002Fcli\u002Fstatus","9.reference\u002F1.cli\u002Fstatus",{"title":246,"path":247,"stem":248},"translate","\u002Freference\u002Fcli\u002Ftranslate","9.reference\u002F1.cli\u002Ftranslate",{"title":250,"path":251,"stem":252},"translate-key","\u002Freference\u002Fcli\u002Ftranslate-key","9.reference\u002F1.cli\u002Ftranslate-key",{"title":254,"path":255,"stem":256},"update","\u002Freference\u002Fcli\u002Fupdate","9.reference\u002F1.cli\u002Fupdate",{"title":258,"path":259,"stem":260},"write","\u002Freference\u002Fcli\u002Fwrite","9.reference\u002F1.cli\u002Fwrite",{"title":262,"path":263,"stem":264,"children":265},"MCP Tools","\u002Freference\u002Fmcp","9.reference\u002F2.mcp\u002Findex",[266,267,271,275,279,283,287,291,295,299,303,307,311,315,319,323,327,331,335],{"title":262,"path":263,"stem":264},{"title":268,"path":269,"stem":270},"discover","\u002Freference\u002Fmcp\u002Fdiscover","9.reference\u002F2.mcp\u002Fdiscover",{"title":272,"path":273,"stem":274},"find_duplicate_keys","\u002Freference\u002Fmcp\u002Ffind_duplicate_keys","9.reference\u002F2.mcp\u002Ffind_duplicate_keys",{"title":276,"path":277,"stem":278},"find_empty_translations","\u002Freference\u002Fmcp\u002Ffind_empty_translations","9.reference\u002F2.mcp\u002Ffind_empty_translations",{"title":280,"path":281,"stem":282},"find_orphan_keys","\u002Freference\u002Fmcp\u002Ffind_orphan_keys","9.reference\u002F2.mcp\u002Ffind_orphan_keys",{"title":284,"path":285,"stem":286},"find_undefined_keys","\u002Freference\u002Fmcp\u002Ffind_undefined_keys","9.reference\u002F2.mcp\u002Ffind_undefined_keys",{"title":288,"path":289,"stem":290},"get_missing_translations","\u002Freference\u002Fmcp\u002Fget_missing_translations","9.reference\u002F2.mcp\u002Fget_missing_translations",{"title":292,"path":293,"stem":294},"get_translation_status","\u002Freference\u002Fmcp\u002Fget_translation_status","9.reference\u002F2.mcp\u002Fget_translation_status",{"title":296,"path":297,"stem":298},"get_translations","\u002Freference\u002Fmcp\u002Fget_translations","9.reference\u002F2.mcp\u002Fget_translations",{"title":300,"path":301,"stem":302},"list_namespaces","\u002Freference\u002Fmcp\u002Flist_namespaces","9.reference\u002F2.mcp\u002Flist_namespaces",{"title":304,"path":305,"stem":306},"move_translation_key","\u002Freference\u002Fmcp\u002Fmove_translation_key","9.reference\u002F2.mcp\u002Fmove_translation_key",{"title":308,"path":309,"stem":310},"remove_orphan_keys","\u002Freference\u002Fmcp\u002Fremove_orphan_keys","9.reference\u002F2.mcp\u002Fremove_orphan_keys",{"title":312,"path":313,"stem":314},"remove_translations","\u002Freference\u002Fmcp\u002Fremove_translations","9.reference\u002F2.mcp\u002Fremove_translations",{"title":316,"path":317,"stem":318},"rename_translation_key","\u002Freference\u002Fmcp\u002Frename_translation_key","9.reference\u002F2.mcp\u002Frename_translation_key",{"title":320,"path":321,"stem":322},"scaffold_locale","\u002Freference\u002Fmcp\u002Fscaffold_locale","9.reference\u002F2.mcp\u002Fscaffold_locale",{"title":324,"path":325,"stem":326},"search_translations","\u002Freference\u002Fmcp\u002Fsearch_translations","9.reference\u002F2.mcp\u002Fsearch_translations",{"title":328,"path":329,"stem":330},"translate_key","\u002Freference\u002Fmcp\u002Ftranslate_key","9.reference\u002F2.mcp\u002Ftranslate_key",{"title":332,"path":333,"stem":334},"translate_missing","\u002Freference\u002Fmcp\u002Ftranslate_missing","9.reference\u002F2.mcp\u002Ftranslate_missing",{"title":336,"path":337,"stem":338},"write_translations","\u002Freference\u002Fmcp\u002Fwrite_translations","9.reference\u002F2.mcp\u002Fwrite_translations",{"title":340,"path":341,"stem":342},"GitHub Action","\u002Freference\u002Faction","9.reference\u002F3.action",{"title":344,"path":345,"stem":346},"Programmatic API","\u002Freference\u002Fprogrammatic-api","9.reference\u002F4.programmatic-api",{"title":348,"icon":349,"path":350,"stem":351,"children":352,"page":21},"Extra Topics","i-lucide-microscope","\u002Fextra-topics","91.extra-topics",[353],{"title":354,"path":355,"stem":356},"How Detection Scores Adapters","\u002Fextra-topics\u002Fdetection-scoring","91.extra-topics\u002F1.detection-scoring",{"id":358,"title":142,"body":359,"description":406,"extension":1546,"links":1547,"meta":1548,"navigation":447,"path":143,"seo":1549,"stem":144,"__hash__":1551},"docs\u002F6.nuxt-module\u002F2.what-it-publishes.md",{"type":360,"value":361,"toc":1540},"minimark",[362,375,380,399,645,656,659,742,753,757,1160,1284,1287,1337,1359,1363,1399,1403,1406,1514,1525,1536],[363,364,365,366,370,371,374],"p",{},"During a Nuxt build, ",[367,368,369],"code",{},"@the-i18n-kit\u002Fnuxt"," writes the layer graph and the locale\ntable Nuxt resolved to ",[367,372,373],{},".nuxt\u002Fi18n-kit.json",", and the CLI reads them from there.",[376,377,379],"h2",{"id":378},"the-configuration-it-replaces","The Configuration It Replaces",[363,381,382,383,386,387,390,391,394,395,398],{},"Without the module, the CLI resolves your layer graph and locale table by\nloading your app through Nuxt, which needs ",[367,384,385],{},"@nuxt\u002Fkit"," installed and a\n",[367,388,389],{},"nuxt.config.ts"," that evaluates with the environment the CLI happens to have.\nWhere that is impractical — a CI job with no build secrets, a container with\nonly the repository mounted — the way out has been to declare ",[367,392,393],{},"localeDirs"," and\n",[367,396,397],{},"defaultLocale"," yourself:",[400,401,407],"pre",{"className":402,"code":403,"filename":404,"language":405,"meta":406,"style":406},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { defineI18nKitConfig } from '@the-i18n-kit\u002Fcli\u002Fconfig'\n\nexport default defineI18nKitConfig({\n  defaultLocale: 'en',\n  localeDirs: [\n    { path: 'apps\u002Fadmin\u002Fi18n\u002Flocales', layer: 'admin' },\n    { path: 'layers\u002Fdashboard\u002Fi18n\u002Flocales', layer: 'dashboard' },\n    { path: 'layers\u002Fbooking\u002Fi18n\u002Flocales', layer: 'booking' },\n    { path: 'packages\u002Fui\u002Fi18n\u002Flocales', layer: 'ui' },\n  ],\n})\n","i18n-kit.config.ts","ts","",[367,408,409,442,449,467,488,499,535,566,597,628,636],{"__ignoreMap":406},[410,411,414,418,422,426,429,432,435,439],"span",{"class":412,"line":413},"line",1,[410,415,417],{"class":416},"s7zQu","import",[410,419,421],{"class":420},"sMK4o"," {",[410,423,425],{"class":424},"sTEyZ"," defineI18nKitConfig",[410,427,428],{"class":420}," }",[410,430,431],{"class":416}," from",[410,433,434],{"class":420}," '",[410,436,438],{"class":437},"sfazB","@the-i18n-kit\u002Fcli\u002Fconfig",[410,440,441],{"class":420},"'\n",[410,443,445],{"class":412,"line":444},2,[410,446,448],{"emptyLinePlaceholder":447},true,"\n",[410,450,452,455,458,461,464],{"class":412,"line":451},3,[410,453,454],{"class":416},"export",[410,456,457],{"class":416}," default",[410,459,425],{"class":460},"s2Zo4",[410,462,463],{"class":424},"(",[410,465,466],{"class":420},"{\n",[410,468,470,474,477,479,482,485],{"class":412,"line":469},4,[410,471,473],{"class":472},"swJcz","  defaultLocale",[410,475,476],{"class":420},":",[410,478,434],{"class":420},[410,480,481],{"class":437},"en",[410,483,484],{"class":420},"'",[410,486,487],{"class":420},",\n",[410,489,491,494,496],{"class":412,"line":490},5,[410,492,493],{"class":472},"  localeDirs",[410,495,476],{"class":420},[410,497,498],{"class":424}," [\n",[410,500,502,505,508,510,512,515,517,520,523,525,527,530,532],{"class":412,"line":501},6,[410,503,504],{"class":420},"    {",[410,506,507],{"class":472}," path",[410,509,476],{"class":420},[410,511,434],{"class":420},[410,513,514],{"class":437},"apps\u002Fadmin\u002Fi18n\u002Flocales",[410,516,484],{"class":420},[410,518,519],{"class":420},",",[410,521,522],{"class":472}," layer",[410,524,476],{"class":420},[410,526,434],{"class":420},[410,528,529],{"class":437},"admin",[410,531,484],{"class":420},[410,533,534],{"class":420}," },\n",[410,536,538,540,542,544,546,549,551,553,555,557,559,562,564],{"class":412,"line":537},7,[410,539,504],{"class":420},[410,541,507],{"class":472},[410,543,476],{"class":420},[410,545,434],{"class":420},[410,547,548],{"class":437},"layers\u002Fdashboard\u002Fi18n\u002Flocales",[410,550,484],{"class":420},[410,552,519],{"class":420},[410,554,522],{"class":472},[410,556,476],{"class":420},[410,558,434],{"class":420},[410,560,561],{"class":437},"dashboard",[410,563,484],{"class":420},[410,565,534],{"class":420},[410,567,569,571,573,575,577,580,582,584,586,588,590,593,595],{"class":412,"line":568},8,[410,570,504],{"class":420},[410,572,507],{"class":472},[410,574,476],{"class":420},[410,576,434],{"class":420},[410,578,579],{"class":437},"layers\u002Fbooking\u002Fi18n\u002Flocales",[410,581,484],{"class":420},[410,583,519],{"class":420},[410,585,522],{"class":472},[410,587,476],{"class":420},[410,589,434],{"class":420},[410,591,592],{"class":437},"booking",[410,594,484],{"class":420},[410,596,534],{"class":420},[410,598,600,602,604,606,608,611,613,615,617,619,621,624,626],{"class":412,"line":599},9,[410,601,504],{"class":420},[410,603,507],{"class":472},[410,605,476],{"class":420},[410,607,434],{"class":420},[410,609,610],{"class":437},"packages\u002Fui\u002Fi18n\u002Flocales",[410,612,484],{"class":420},[410,614,519],{"class":420},[410,616,522],{"class":472},[410,618,476],{"class":420},[410,620,434],{"class":420},[410,622,623],{"class":437},"ui",[410,625,484],{"class":420},[410,627,534],{"class":420},[410,629,631,634],{"class":412,"line":630},10,[410,632,633],{"class":424},"  ]",[410,635,487],{"class":420},[410,637,639,642],{"class":412,"line":638},11,[410,640,641],{"class":420},"}",[410,643,644],{"class":424},")\n",[363,646,647,648,652,653,655],{},"That is a second description of your layer graph, maintained by hand, and\ndeclaring both keys moves the project onto the ",[649,650,651],"a",{"href":105},"generic\nadapter",", so Nuxt's own resolution stops being consulted at\nall. A layer added to\n",[367,654,389],{}," and not to this list is then invisible: its keys are scanned\nagainst no source, which surfaces as orphan keys rather than as an error.",[363,657,658],{},"With the module, the same project declares neither key:",[400,660,662],{"className":402,"code":661,"filename":404,"language":405,"meta":406,"style":406},"import { defineI18nKitConfig } from '@the-i18n-kit\u002Fcli\u002Fconfig'\n\nexport default defineI18nKitConfig({\n  context: 'A B2B booking platform.',\n  protectedLocales: ['de-formal'],\n})\n",[367,663,664,682,686,698,714,736],{"__ignoreMap":406},[410,665,666,668,670,672,674,676,678,680],{"class":412,"line":413},[410,667,417],{"class":416},[410,669,421],{"class":420},[410,671,425],{"class":424},[410,673,428],{"class":420},[410,675,431],{"class":416},[410,677,434],{"class":420},[410,679,438],{"class":437},[410,681,441],{"class":420},[410,683,684],{"class":412,"line":444},[410,685,448],{"emptyLinePlaceholder":447},[410,687,688,690,692,694,696],{"class":412,"line":451},[410,689,454],{"class":416},[410,691,457],{"class":416},[410,693,425],{"class":460},[410,695,463],{"class":424},[410,697,466],{"class":420},[410,699,700,703,705,707,710,712],{"class":412,"line":469},[410,701,702],{"class":472},"  context",[410,704,476],{"class":420},[410,706,434],{"class":420},[410,708,709],{"class":437},"A B2B booking platform.",[410,711,484],{"class":420},[410,713,487],{"class":420},[410,715,716,719,721,724,726,729,731,734],{"class":412,"line":490},[410,717,718],{"class":472},"  protectedLocales",[410,720,476],{"class":420},[410,722,723],{"class":424}," [",[410,725,484],{"class":420},[410,727,728],{"class":437},"de-formal",[410,730,484],{"class":420},[410,732,733],{"class":424},"]",[410,735,487],{"class":420},[410,737,738,740],{"class":412,"line":501},[410,739,641],{"class":420},[410,741,644],{"class":424},[363,743,744,745,748,749,752],{},"What is left is policy — the things the tool cannot see for itself. The layer\ngraph and the locale table come from the build, which is where they were\nresolved. See ",[649,746,747],{"href":122},"Declared vs. Derived\nConfiguration"," for the general form of this\nsplit, and the ",[649,750,751],{"href":126},"configuration field\nreference"," for the fields themselves.",[376,754,756],{"id":755},"what-is-in-the-file","What Is in the File",[400,758,762],{"className":759,"code":760,"filename":373,"language":761,"meta":406,"style":406},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"version\": 1,\n  \"generator\": \"@the-i18n-kit\u002Fnuxt@0.1.4\",\n  \"appDir\": \"\u002Frepo\u002Fapps\u002Fadmin\",\n  \"defaultLocale\": \"en\",\n  \"fallbackLocale\": \"en\",\n  \"localeFileFormat\": \"json\",\n  \"locales\": [\n    { \"code\": \"en\", \"language\": \"en-US\", \"file\": \"en.json\", \"name\": \"English\" },\n    { \"code\": \"de-formal\", \"language\": \"de-DE\", \"file\": \"de-formal.json\" }\n  ],\n  \"layers\": [\n    { \"rootDir\": \"\u002Frepo\u002Fapps\u002Fadmin\", \"localeDir\": \"\u002Frepo\u002Fapps\u002Fadmin\u002Fi18n\u002Flocales\" },\n    { \"rootDir\": \"\u002Frepo\u002Flayers\u002Fdashboard\" },\n    { \"rootDir\": \"\u002Frepo\u002Fpackages\u002Fui\", \"localeDir\": \"\u002Frepo\u002Fpackages\u002Fui\u002Fi18n\u002Flocales\" }\n  ]\n}\n","json",[367,763,764,768,788,809,829,847,866,885,898,973,1028,1033,1047,1087,1109,1148,1154],{"__ignoreMap":406},[410,765,766],{"class":412,"line":413},[410,767,466],{"class":420},[410,769,770,773,777,780,782,786],{"class":412,"line":444},[410,771,772],{"class":420},"  \"",[410,774,776],{"class":775},"spNyl","version",[410,778,779],{"class":420},"\"",[410,781,476],{"class":420},[410,783,785],{"class":784},"sbssI"," 1",[410,787,487],{"class":420},[410,789,790,792,795,797,799,802,805,807],{"class":412,"line":451},[410,791,772],{"class":420},[410,793,794],{"class":775},"generator",[410,796,779],{"class":420},[410,798,476],{"class":420},[410,800,801],{"class":420}," \"",[410,803,804],{"class":437},"@the-i18n-kit\u002Fnuxt@0.1.4",[410,806,779],{"class":420},[410,808,487],{"class":420},[410,810,811,813,816,818,820,822,825,827],{"class":412,"line":469},[410,812,772],{"class":420},[410,814,815],{"class":775},"appDir",[410,817,779],{"class":420},[410,819,476],{"class":420},[410,821,801],{"class":420},[410,823,824],{"class":437},"\u002Frepo\u002Fapps\u002Fadmin",[410,826,779],{"class":420},[410,828,487],{"class":420},[410,830,831,833,835,837,839,841,843,845],{"class":412,"line":490},[410,832,772],{"class":420},[410,834,397],{"class":775},[410,836,779],{"class":420},[410,838,476],{"class":420},[410,840,801],{"class":420},[410,842,481],{"class":437},[410,844,779],{"class":420},[410,846,487],{"class":420},[410,848,849,851,854,856,858,860,862,864],{"class":412,"line":501},[410,850,772],{"class":420},[410,852,853],{"class":775},"fallbackLocale",[410,855,779],{"class":420},[410,857,476],{"class":420},[410,859,801],{"class":420},[410,861,481],{"class":437},[410,863,779],{"class":420},[410,865,487],{"class":420},[410,867,868,870,873,875,877,879,881,883],{"class":412,"line":537},[410,869,772],{"class":420},[410,871,872],{"class":775},"localeFileFormat",[410,874,779],{"class":420},[410,876,476],{"class":420},[410,878,801],{"class":420},[410,880,761],{"class":437},[410,882,779],{"class":420},[410,884,487],{"class":420},[410,886,887,889,892,894,896],{"class":412,"line":568},[410,888,772],{"class":420},[410,890,891],{"class":775},"locales",[410,893,779],{"class":420},[410,895,476],{"class":420},[410,897,498],{"class":420},[410,899,900,902,904,907,909,911,913,915,917,919,921,924,926,928,930,933,935,937,939,942,944,946,948,951,953,955,957,960,962,964,966,969,971],{"class":412,"line":599},[410,901,504],{"class":420},[410,903,801],{"class":420},[410,905,367],{"class":906},"sBMFI",[410,908,779],{"class":420},[410,910,476],{"class":420},[410,912,801],{"class":420},[410,914,481],{"class":437},[410,916,779],{"class":420},[410,918,519],{"class":420},[410,920,801],{"class":420},[410,922,923],{"class":906},"language",[410,925,779],{"class":420},[410,927,476],{"class":420},[410,929,801],{"class":420},[410,931,932],{"class":437},"en-US",[410,934,779],{"class":420},[410,936,519],{"class":420},[410,938,801],{"class":420},[410,940,941],{"class":906},"file",[410,943,779],{"class":420},[410,945,476],{"class":420},[410,947,801],{"class":420},[410,949,950],{"class":437},"en.json",[410,952,779],{"class":420},[410,954,519],{"class":420},[410,956,801],{"class":420},[410,958,959],{"class":906},"name",[410,961,779],{"class":420},[410,963,476],{"class":420},[410,965,801],{"class":420},[410,967,968],{"class":437},"English",[410,970,779],{"class":420},[410,972,534],{"class":420},[410,974,975,977,979,981,983,985,987,989,991,993,995,997,999,1001,1003,1006,1008,1010,1012,1014,1016,1018,1020,1023,1025],{"class":412,"line":630},[410,976,504],{"class":420},[410,978,801],{"class":420},[410,980,367],{"class":906},[410,982,779],{"class":420},[410,984,476],{"class":420},[410,986,801],{"class":420},[410,988,728],{"class":437},[410,990,779],{"class":420},[410,992,519],{"class":420},[410,994,801],{"class":420},[410,996,923],{"class":906},[410,998,779],{"class":420},[410,1000,476],{"class":420},[410,1002,801],{"class":420},[410,1004,1005],{"class":437},"de-DE",[410,1007,779],{"class":420},[410,1009,519],{"class":420},[410,1011,801],{"class":420},[410,1013,941],{"class":906},[410,1015,779],{"class":420},[410,1017,476],{"class":420},[410,1019,801],{"class":420},[410,1021,1022],{"class":437},"de-formal.json",[410,1024,779],{"class":420},[410,1026,1027],{"class":420}," }\n",[410,1029,1030],{"class":412,"line":638},[410,1031,1032],{"class":420},"  ],\n",[410,1034,1036,1038,1041,1043,1045],{"class":412,"line":1035},12,[410,1037,772],{"class":420},[410,1039,1040],{"class":775},"layers",[410,1042,779],{"class":420},[410,1044,476],{"class":420},[410,1046,498],{"class":420},[410,1048,1050,1052,1054,1057,1059,1061,1063,1065,1067,1069,1071,1074,1076,1078,1080,1083,1085],{"class":412,"line":1049},13,[410,1051,504],{"class":420},[410,1053,801],{"class":420},[410,1055,1056],{"class":906},"rootDir",[410,1058,779],{"class":420},[410,1060,476],{"class":420},[410,1062,801],{"class":420},[410,1064,824],{"class":437},[410,1066,779],{"class":420},[410,1068,519],{"class":420},[410,1070,801],{"class":420},[410,1072,1073],{"class":906},"localeDir",[410,1075,779],{"class":420},[410,1077,476],{"class":420},[410,1079,801],{"class":420},[410,1081,1082],{"class":437},"\u002Frepo\u002Fapps\u002Fadmin\u002Fi18n\u002Flocales",[410,1084,779],{"class":420},[410,1086,534],{"class":420},[410,1088,1090,1092,1094,1096,1098,1100,1102,1105,1107],{"class":412,"line":1089},14,[410,1091,504],{"class":420},[410,1093,801],{"class":420},[410,1095,1056],{"class":906},[410,1097,779],{"class":420},[410,1099,476],{"class":420},[410,1101,801],{"class":420},[410,1103,1104],{"class":437},"\u002Frepo\u002Flayers\u002Fdashboard",[410,1106,779],{"class":420},[410,1108,534],{"class":420},[410,1110,1112,1114,1116,1118,1120,1122,1124,1127,1129,1131,1133,1135,1137,1139,1141,1144,1146],{"class":412,"line":1111},15,[410,1113,504],{"class":420},[410,1115,801],{"class":420},[410,1117,1056],{"class":906},[410,1119,779],{"class":420},[410,1121,476],{"class":420},[410,1123,801],{"class":420},[410,1125,1126],{"class":437},"\u002Frepo\u002Fpackages\u002Fui",[410,1128,779],{"class":420},[410,1130,519],{"class":420},[410,1132,801],{"class":420},[410,1134,1073],{"class":906},[410,1136,779],{"class":420},[410,1138,476],{"class":420},[410,1140,801],{"class":420},[410,1142,1143],{"class":437},"\u002Frepo\u002Fpackages\u002Fui\u002Fi18n\u002Flocales",[410,1145,779],{"class":420},[410,1147,1027],{"class":420},[410,1149,1151],{"class":412,"line":1150},16,[410,1152,1153],{"class":420},"  ]\n",[410,1155,1157],{"class":412,"line":1156},17,[410,1158,1159],{"class":420},"}\n",[1161,1162,1163,1176],"table",{},[1164,1165,1166],"thead",{},[1167,1168,1169,1173],"tr",{},[1170,1171,1172],"th",{},"Field",[1170,1174,1175],{},"What it carries",[1177,1178,1179,1193,1202,1211,1226,1239,1250,1270],"tbody",{},[1167,1180,1181,1186],{},[1182,1183,1184],"td",{},[367,1185,776],{},[1182,1187,1188,1189,1192],{},"Schema version. The CLI accepts ",[367,1190,1191],{},"1"," and ignores anything else.",[1167,1194,1195,1199],{},[1182,1196,1197],{},[367,1198,794],{},[1182,1200,1201],{},"The package and version that wrote the file, echoed in the CLI's log line.",[1167,1203,1204,1208],{},[1182,1205,1206],{},[367,1207,815],{},[1182,1209,1210],{},"The app's root directory.",[1167,1212,1213,1217],{},[1182,1214,1215],{},[367,1216,397],{},[1182,1218,1219,1222,1223,1225],{},[367,1220,1221],{},"i18n.defaultLocale",", or ",[367,1224,481],{}," when the block sets none.",[1167,1227,1228,1232],{},[1182,1229,1230],{},[367,1231,853],{},[1182,1233,1234,1235,1238],{},"Exactly as Nuxt resolved it — a string, an array, a per-locale map, or ",[367,1236,1237],{},"null",". The CLI normalizes it, so one implementation serves both this path and the fallback path.",[1167,1240,1241,1245],{},[1182,1242,1243],{},[367,1244,872],{},[1182,1246,1247,1249],{},[367,1248,761],{},". The only format the module publishes.",[1167,1251,1252,1256],{},[1182,1253,1254],{},[367,1255,891],{},[1182,1257,1258,1259,1261,1262,1261,1264,1266,1267,1269],{},"One entry per locale, each with ",[367,1260,367],{},", ",[367,1263,923],{},[367,1265,941],{}," and an optional ",[367,1268,959],{},".",[1167,1271,1272,1276],{},[1182,1273,1274],{},[367,1275,1040],{},[1182,1277,1278,1279,1281,1282,1269],{},"Every layer Nuxt resolved, in Nuxt's order, each with its ",[367,1280,1056],{}," and — when it has one — its ",[367,1283,1073],{},[363,1285,1286],{},"Three details are worth stating outright:",[1288,1289,1290,1319,1325],"ul",{},[1291,1292,1293,1297,1298,1261,1300,1302,1303,1305,1306,1309,1310,1312,1313,1315,1316,1318],"li",{},[1294,1295,1296],"strong",{},"Locales carry all three reference forms."," ",[367,1299,367],{},[367,1301,923],{}," and ",[367,1304,941],{}," are\npublished per entry, so a locale reference resolves without knowing\n",[367,1307,1308],{},"@nuxtjs\u002Fi18n","'s field names. Entries missing a ",[367,1311,367],{}," or a ",[367,1314,941],{}," are\ndropped, and duplicates by ",[367,1317,367],{}," are removed.",[1291,1320,1321,1324],{},[1294,1322,1323],{},"Layer order is precedence, not alphabetical."," The app's own layer comes\nfirst, then what it extends, in the order Nuxt resolved.",[1291,1326,1327,1297,1330,1332,1333,1336],{},[1294,1328,1329],{},"Layers without translations stay in the list.",[367,1331,1073],{}," is reported only\nwhen the resolved directory exists and contains at least one ",[367,1334,1335],{},".json"," file; a\nlayer that carries source code but no translations keeps its entry without\none, so it is still scanned for key usage.",[363,1338,1339,1341,1342,1345,1346,1349,1350,1302,1352,1354,1355,1358],{},[367,1340,1073],{}," is resolved per layer as\n",[367,1343,1344],{},"\u003CrootDir>\u002F\u003CrestructureDir>\u002F\u003ClangDir>",", honoring a layer's own ",[367,1347,1348],{},"i18n"," block\nwhere it sets one, and defaulting to ",[367,1351,1348],{},[367,1353,891],{}," — the same resolution\nthe ",[649,1356,1357],{"href":89},"Nuxt adapter"," performs from outside.",[376,1360,1362],{"id":1361},"what-the-artifact-does-not-contain","What the Artifact Does Not Contain",[1288,1364,1365,1374],{},[1291,1366,1367,1370,1371,1373],{},[1294,1368,1369],{},"Layer names."," The CLI derives them from each ",[367,1372,1056],{}," relative to the\ndirectory it was pointed at, so a layer's name depends on where you run the\nCLI from, not on which app published the artifact.",[1291,1375,1376,1379,1380,1383,1384,1387,1388,1391,1392,1394,1395,1398],{},[1294,1377,1378],{},"Kit policy."," No glossary, no ",[367,1381,1382],{},"context",", no ",[367,1385,1386],{},"protectedLocales",", no\n",[367,1389,1390],{},"orphanScan",". Those live in ",[367,1393,404],{}," or ",[367,1396,1397],{},".i18n-mcp.json"," and are\nread directly from disk, so they apply before anything has been built.",[376,1400,1402],{"id":1401},"what-changes-for-the-cli","What Changes for the CLI",[363,1404,1405],{},"The module changes where the facts come from, not what the kit does with them.",[1161,1407,1408,1420],{},[1164,1409,1410],{},[1167,1411,1412,1414,1417],{},[1170,1413],{},[1170,1415,1416],{},"Without the module",[1170,1418,1419],{},"With the module, artifact present",[1177,1421,1422,1441,1454,1468,1479,1490,1500],{},[1167,1423,1424,1427,1436],{},[1182,1425,1426],{},"Layer graph and locale table",[1182,1428,1429,1430,1433,1434],{},"Resolved by calling ",[367,1431,1432],{},"loadNuxt"," from the project's own ",[367,1435,385],{},[1182,1437,1438,1439],{},"Read from ",[367,1440,373],{},[1167,1442,1443,1448,1451],{},[1182,1444,1445,1447],{},[367,1446,385],{}," installed",[1182,1449,1450],{},"Required",[1182,1452,1453],{},"Not needed for that app",[1167,1455,1456,1462,1465],{},[1182,1457,1458,1459,1461],{},"A ",[367,1460,389],{}," that needs environment variables",[1182,1463,1464],{},"Has to evaluate",[1182,1466,1467],{},"Not evaluated",[1167,1469,1470,1473,1476],{},[1182,1471,1472],{},"Adapter chosen",[1182,1474,1475],{},"Nuxt, by detection",[1182,1477,1478],{},"Nuxt, by the same detection — the artifact is read inside that adapter",[1167,1480,1481,1484,1487],{},[1182,1482,1483],{},"Layer names",[1182,1485,1486],{},"Derived by the CLI",[1182,1488,1489],{},"Derived by the CLI, identically",[1167,1491,1492,1495,1498],{},[1182,1493,1494],{},"Kit policy",[1182,1496,1497],{},"Read from your config file",[1182,1499,1497],{},[1167,1501,1502,1508,1511],{},[1182,1503,1504,1505,1507],{},"Locale list narrowed by ",[367,1506,891],{}," in your config",[1182,1509,1510],{},"Yes",[1182,1512,1513],{},"Rejected at build time; narrow with the Nuxt config instead",[363,1515,1516,1517,1520,1521,1524],{},"Installing the module does not move a project between adapters: the ",[649,1518,1519],{"href":85},"Nuxt\nadapter"," is chosen by looking for a ",[367,1522,1523],{},"nuxt.config",", not by\nlooking for the artifact.",[363,1526,1527,1528,1530,1531,1535],{},"Every reason the artifact is not used — absent, unparseable, an unknown shape,\nolder than a ",[367,1529,1523],{}," it describes, or describing no locale directory at\nall — falls back to loading the app, with a warning where there is something to\nsay. ",[649,1532,1534],{"href":1533},"\u002Fnuxt-module\u002Foptions-and-limits#limits","Limits"," lists each case.",[1537,1538,1539],"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 .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 .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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 .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}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}",{"title":406,"searchDepth":451,"depth":451,"links":1541},[1542,1543,1544,1545],{"id":378,"depth":444,"text":379},{"id":755,"depth":444,"text":756},{"id":1361,"depth":444,"text":1362},{"id":1401,"depth":444,"text":1402},"md",null,{},{"description":1550,"title":142},"The contents of .nuxt\u002Fi18n-kit.json, the hand-written configuration it replaces, and how it changes what the CLI does on a Nuxt project.","SARbP5K8gSdJyG4sG7iRcccUnijcUaghPl85NflNp90",[1553,1554],{"title":138,"path":139,"stem":140,"description":406,"children":-1},{"title":146,"path":147,"stem":148,"description":406,"children":-1},1787604651835]