[{"data":1,"prerenderedAt":933},["ShallowReactive",2],{"navigation_docs":3,"-reference-mcp":357,"-reference-mcp-surround":930},[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":262,"body":359,"description":915,"extension":923,"links":924,"meta":925,"navigation":926,"path":263,"seo":927,"stem":264,"__hash__":929},"docs\u002F9.reference\u002F2.mcp\u002Findex.md",{"type":360,"value":361,"toc":914},"minimark",[362,366,375,386,391,610,614,623,638,860,864,870,874],[363,364,262],"h1",{"id":365},"mcp-tools",[367,368,369,370,374],"p",{},"Every tool ",[371,372,373],"code",{},"@the-i18n-kit\u002Fmcp"," advertises is listed below and documented on its own page, with the parameters and descriptions an MCP host receives.",[367,376,377,378,381,382,385],{},"These pages are generated by starting ",[371,379,380],{},"the-i18n-mcp"," over stdio and reading its ",[371,383,384],{},"tools\u002Flist"," response, so they describe what your host is handed rather than what the server declares internally. A tool that stops being advertised stops being documented.",[387,388,390],"h2",{"id":389},"tools","Tools",[392,393,394,407],"table",{},[395,396,397],"thead",{},[398,399,400,404],"tr",{},[401,402,403],"th",{},"Tool",[401,405,406],{},"What it does",[408,409,410,423,434,445,456,467,478,489,500,511,522,533,544,555,566,577,588,599],"tbody",{},[398,411,412,420],{},[413,414,415],"td",{},[416,417,418],"a",{"href":269},[371,419,268],{},[413,421,422],{},"Discover i18n Setup",[398,424,425,431],{},[413,426,427],{},[416,428,429],{"href":301},[371,430,300],{},[413,432,433],{},"List Namespaces",[398,435,436,442],{},[413,437,438],{},[416,439,440],{"href":277},[371,441,276],{},[413,443,444],{},"Find Empty Translations",[398,446,447,453],{},[413,448,449],{},[416,450,451],{"href":297},[371,452,296],{},[413,454,455],{},"Get Translations",[398,457,458,464],{},[413,459,460],{},[416,461,462],{"href":337},[371,463,336],{},[413,465,466],{},"Write Translations",[398,468,469,475],{},[413,470,471],{},[416,472,473],{"href":289},[371,474,288],{},[413,476,477],{},"Get Missing Translations",[398,479,480,486],{},[413,481,482],{},[416,483,484],{"href":293},[371,485,292],{},[413,487,488],{},"Get Translation Status",[398,490,491,497],{},[413,492,493],{},[416,494,495],{"href":325},[371,496,324],{},[413,498,499],{},"Search Translations",[398,501,502,508],{},[413,503,504],{},[416,505,506],{"href":313},[371,507,312],{},[413,509,510],{},"Remove Translations",[398,512,513,519],{},[413,514,515],{},[416,516,517],{"href":305},[371,518,304],{},[413,520,521],{},"Move Translation Key Between Layers",[398,523,524,530],{},[413,525,526],{},[416,527,528],{"href":317},[371,529,316],{},[413,531,532],{},"Rename Translation Key",[398,534,535,541],{},[413,536,537],{},[416,538,539],{"href":333},[371,540,332],{},[413,542,543],{},"Translate Missing",[398,545,546,552],{},[413,547,548],{},[416,549,550],{"href":329},[371,551,328],{},[413,553,554],{},"Translate Key",[398,556,557,563],{},[413,558,559],{},[416,560,561],{"href":281},[371,562,280],{},[413,564,565],{},"Find Orphan Translation Keys",[398,567,568,574],{},[413,569,570],{},[416,571,572],{"href":285},[371,573,284],{},[413,575,576],{},"Find Used-But-Undefined Translation Keys",[398,578,579,585],{},[413,580,581],{},[416,582,583],{"href":273},[371,584,272],{},[413,586,587],{},"Find Duplicate Translation Keys Across Layers",[398,589,590,596],{},[413,591,592],{},[416,593,594],{"href":309},[371,595,308],{},[413,597,598],{},"Remove Orphan Keys",[398,600,601,607],{},[413,602,603],{},[416,604,605],{"href":321},[371,606,320],{},[413,608,609],{},"Scaffold Locale",[387,611,613],{"id":612},"paired-cli-commands","Paired CLI Commands",[367,615,616,618,619,622],{},[371,617,373],{}," depends on ",[371,620,621],{},"@the-i18n-kit\u002Fcli"," and calls the same functions the commands call, so a tool and the command it pairs with read the same project and return the same result. Where you run an operation from is a matter of who is driving.",[367,624,625,626,629,630,633,634,637],{},"Parameters and flags are named for their surface — a tool takes ",[371,627,628],{},"targetLocales",", the command takes ",[371,631,632],{},"--targets"," — so the ",[416,635,636],{"href":185},"command pages"," document the flags rather than these pages restating them.",[392,639,640,649],{},[395,641,642],{},[398,643,644,646],{},[401,645,403],{},[401,647,648],{},"Command",[408,650,651,666,681,696,711,726,741,756,771,786,801,816,831,845],{},[398,652,653,659],{},[413,654,655],{},[416,656,657],{"href":297},[371,658,296],{},[413,660,661],{},[416,662,663],{"href":203},[371,664,665],{},"the-i18n-cli get",[398,667,668,674],{},[413,669,670],{},[416,671,672],{"href":337},[371,673,336],{},[413,675,676],{},[416,677,678],{"href":259},[371,679,680],{},"the-i18n-cli write",[398,682,683,689],{},[413,684,685],{},[416,686,687],{"href":289},[371,688,288],{},[413,690,691],{},[416,692,693],{"href":211},[371,694,695],{},"the-i18n-cli missing",[398,697,698,704],{},[413,699,700],{},[416,701,702],{"href":293},[371,703,292],{},[413,705,706],{},[416,707,708],{"href":243},[371,709,710],{},"the-i18n-cli status",[398,712,713,719],{},[413,714,715],{},[416,716,717],{"href":325},[371,718,324],{},[413,720,721],{},[416,722,723],{"href":239},[371,724,725],{},"the-i18n-cli search",[398,727,728,734],{},[413,729,730],{},[416,731,732],{"href":313},[371,733,312],{},[413,735,736],{},[416,737,738],{"href":219},[371,739,740],{},"the-i18n-cli remove",[398,742,743,749],{},[413,744,745],{},[416,746,747],{"href":317},[371,748,316],{},[413,750,751],{},[416,752,753],{"href":227},[371,754,755],{},"the-i18n-cli rename",[398,757,758,764],{},[413,759,760],{},[416,761,762],{"href":333},[371,763,332],{},[413,765,766],{},[416,767,768],{"href":247},[371,769,770],{},"the-i18n-cli translate",[398,772,773,779],{},[413,774,775],{},[416,776,777],{"href":329},[371,778,328],{},[413,780,781],{},[416,782,783],{"href":251},[371,784,785],{},"the-i18n-cli translate-key",[398,787,788,794],{},[413,789,790],{},[416,791,792],{"href":281},[371,793,280],{},[413,795,796],{},[416,797,798],{"href":223},[371,799,800],{},"the-i18n-cli remove-orphans",[398,802,803,809],{},[413,804,805],{},[416,806,807],{"href":285},[371,808,284],{},[413,810,811],{},[416,812,813],{"href":195},[371,814,815],{},"the-i18n-cli check",[398,817,818,824],{},[413,819,820],{},[416,821,822],{"href":273},[371,823,272],{},[413,825,826],{},[416,827,828],{"href":199},[371,829,830],{},"the-i18n-cli find-duplicates",[398,832,833,839],{},[413,834,835],{},[416,836,837],{"href":309},[371,838,308],{},[413,840,841],{},[416,842,843],{"href":223},[371,844,800],{},[398,846,847,853],{},[413,848,849],{},[416,850,851],{"href":321},[371,852,320],{},[413,854,855],{},[416,856,857],{"href":231},[371,858,859],{},"the-i18n-cli scaffold",[387,861,863],{"id":862},"parameters-every-tool-accepts","Parameters Every Tool Accepts",[367,865,866,869],{},[371,867,868],{},"projectDir"," appears on every tool. Each tool page documents it with the description that tool advertises, since a host validates a call against that tool's schema alone.",[387,871,873],{"id":872},"diverting-a-large-result","Diverting a Large Result",[367,875,876,880,881,880,885,880,889,880,893,880,897,880,901,880,905,909,910,913],{},[416,877,878],{"href":277},[371,879,276],{},", ",[416,882,883],{"href":289},[371,884,288],{},[416,886,887],{"href":293},[371,888,292],{},[416,890,891],{"href":325},[371,892,324],{},[416,894,895],{"href":281},[371,896,280],{},[416,898,899],{"href":285},[371,900,284],{},[416,902,903],{"href":273},[371,904,272],{},[416,906,907],{"href":309},[371,908,308],{}," accept ",[371,911,912],{},"outputFile",". Given an absolute path, the tool writes its full JSON result there and returns a compact summary instead, so a result covering thousands of keys never enters the conversation.",{"title":915,"searchDepth":916,"depth":916,"links":917},"",3,[918,920,921,922],{"id":389,"depth":919,"text":390},2,{"id":612,"depth":919,"text":613},{"id":862,"depth":919,"text":863},{"id":872,"depth":919,"text":873},"md",null,{},true,{"description":928,"title":262},"Every tool @the-i18n-kit\u002Fmcp advertises to an MCP host, generated from the server's own tool listing.","rp69YlZOunxYUv5TNWXzk5RVK4j3QhxofQIn6JZRXI4",[931,932],{"title":258,"path":259,"stem":260,"description":915,"children":-1},{"title":268,"path":269,"stem":270,"description":915,"children":-1},1787604655806]