[{"data":1,"prerenderedAt":666},["ShallowReactive",2],{"navigation":3,"content-translator-navigation":457,"content-translator-version":486,"mdc--4zkox4-key":562,"\u002Fdocs\u002Fcontent-translator\u002Fpanel\u002Ftranslation-coverage":594,"\u002Fdocs\u002Fcontent-translator\u002Fpanel\u002Ftranslation-coverage-surround":661},[4,102,194,232,249,313,324,436],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":38},"Copilot","i-ri-sparkling-line","\u002Fdocs\u002Fcopilot","1.docs\u002F1.copilot",[10,21,39,60,85],{"title":11,"path":12,"stem":13,"children":14},"Getting Started","\u002Fdocs\u002Fcopilot\u002Fgetting-started","1.docs\u002F1.copilot\u002F1.getting-started\u002F1.index",[15,17],{"title":16,"path":12,"stem":13},"Introduction",{"title":18,"path":19,"stem":20},"Installation","\u002Fdocs\u002Fcopilot\u002Fgetting-started\u002Finstallation","1.docs\u002F1.copilot\u002F1.getting-started\u002F2.installation",{"title":22,"path":23,"stem":24,"children":25,"page":38},"Configuration","\u002Fdocs\u002Fcopilot\u002Fconfiguration","1.docs\u002F1.copilot\u002F2.configuration",[26,30,34],{"title":27,"path":28,"stem":29},"Global Configuration","\u002Fdocs\u002Fcopilot\u002Fconfiguration\u002Fglobal","1.docs\u002F1.copilot\u002F2.configuration\u002F1.global",{"title":31,"path":32,"stem":33},"View Button & Field Configuration","\u002Fdocs\u002Fcopilot\u002Fconfiguration\u002Flocal","1.docs\u002F1.copilot\u002F2.configuration\u002F2.local",{"title":35,"path":36,"stem":37},"System Prompt","\u002Fdocs\u002Fcopilot\u002Fconfiguration\u002Fsystem-prompt","1.docs\u002F1.copilot\u002F2.configuration\u002F3.system-prompt",false,{"title":40,"path":41,"stem":42,"children":43,"page":38},"Usage","\u002Fdocs\u002Fcopilot\u002Fusage","1.docs\u002F1.copilot\u002F3.usage",[44,48,52,56],{"title":45,"path":46,"stem":47},"Panel View Button","\u002Fdocs\u002Fcopilot\u002Fusage\u002Fview-button","1.docs\u002F1.copilot\u002F3.usage\u002F1.view-button",{"title":49,"path":50,"stem":51},"Toolbar Buttons","\u002Fdocs\u002Fcopilot\u002Fusage\u002Ftoolbar-buttons","1.docs\u002F1.copilot\u002F3.usage\u002F2.toolbar-buttons",{"title":53,"path":54,"stem":55},"Inline Suggestions","\u002Fdocs\u002Fcopilot\u002Fusage\u002Finline-suggestions","1.docs\u002F1.copilot\u002F3.usage\u002F3.inline-suggestions",{"title":57,"path":58,"stem":59},"Copilot Section","\u002Fdocs\u002Fcopilot\u002Fusage\u002Fsection","1.docs\u002F1.copilot\u002F3.usage\u002F4.section",{"title":61,"path":62,"stem":63,"children":64,"page":38},"Prompt Dialog","\u002Fdocs\u002Fcopilot\u002Fprompt-dialog","1.docs\u002F1.copilot\u002F4.prompt-dialog",[65,69,73,77,81],{"title":66,"path":67,"stem":68},"Field Placeholders","\u002Fdocs\u002Fcopilot\u002Fprompt-dialog\u002Fplaceholders","1.docs\u002F1.copilot\u002F4.prompt-dialog\u002F1.placeholders",{"title":70,"path":71,"stem":72},"Prompt Templates","\u002Fdocs\u002Fcopilot\u002Fprompt-dialog\u002Ftemplates","1.docs\u002F1.copilot\u002F4.prompt-dialog\u002F2.templates",{"title":74,"path":75,"stem":76},"File Attachments","\u002Fdocs\u002Fcopilot\u002Fprompt-dialog\u002Ffiles","1.docs\u002F1.copilot\u002F4.prompt-dialog\u002F3.files",{"title":78,"path":79,"stem":80},"Page References","\u002Fdocs\u002Fcopilot\u002Fprompt-dialog\u002Fpage-references","1.docs\u002F1.copilot\u002F4.prompt-dialog\u002F4.page-references",{"title":82,"path":83,"stem":84},"Skills","\u002Fdocs\u002Fcopilot\u002Fprompt-dialog\u002Fskills","1.docs\u002F1.copilot\u002F4.prompt-dialog\u002F5.skills",{"title":86,"path":87,"stem":88,"children":89,"page":38},"Advanced","\u002Fdocs\u002Fcopilot\u002Fadvanced","1.docs\u002F1.copilot\u002F5.advanced",[90,94,98],{"title":91,"path":92,"stem":93},"Blocks & Layouts","\u002Fdocs\u002Fcopilot\u002Fadvanced\u002Fblocks-and-layouts","1.docs\u002F1.copilot\u002F5.advanced\u002F1.blocks-and-layouts",{"title":95,"path":96,"stem":97},"Quick Reference","\u002Fdocs\u002Fcopilot\u002Fadvanced\u002Freference","1.docs\u002F1.copilot\u002F5.advanced\u002F2.reference",{"title":99,"path":100,"stem":101},"Troubleshooting","\u002Fdocs\u002Fcopilot\u002Fadvanced\u002Ftroubleshooting","1.docs\u002F1.copilot\u002F5.advanced\u002F3.troubleshooting",{"title":103,"icon":104,"path":105,"stem":106,"children":107,"page":38},"Content Translator","i-ri-translate","\u002Fdocs\u002Fcontent-translator","1.docs\u002F2.content-translator",[108,120,131,148,157,173],{"title":11,"path":109,"stem":110,"children":111},"\u002Fdocs\u002Fcontent-translator\u002Fgetting-started","1.docs\u002F2.content-translator\u002F1.getting-started\u002F1.index",[112,113,116],{"title":16,"path":109,"stem":110},{"title":18,"path":114,"stem":115},"\u002Fdocs\u002Fcontent-translator\u002Fgetting-started\u002Finstallation","1.docs\u002F2.content-translator\u002F1.getting-started\u002F2.installation",{"title":117,"path":118,"stem":119},"Migration","\u002Fdocs\u002Fcontent-translator\u002Fgetting-started\u002Fmigration","1.docs\u002F2.content-translator\u002F1.getting-started\u002F3.migration",{"title":22,"path":121,"stem":122,"children":123,"page":38},"\u002Fdocs\u002Fcontent-translator\u002Fconfiguration","1.docs\u002F2.content-translator\u002F2.configuration",[124,127],{"title":27,"path":125,"stem":126},"\u002Fdocs\u002Fcontent-translator\u002Fconfiguration\u002Fglobal","1.docs\u002F2.content-translator\u002F2.configuration\u002F1.global",{"title":128,"path":129,"stem":130},"View Button & Section Configuration","\u002Fdocs\u002Fcontent-translator\u002Fconfiguration\u002Flocal","1.docs\u002F2.content-translator\u002F2.configuration\u002F2.local",{"title":132,"path":133,"stem":134,"children":135,"page":38},"Translation Providers","\u002Fdocs\u002Fcontent-translator\u002Fproviders","1.docs\u002F2.content-translator\u002F3.providers",[136,140,144],{"title":137,"path":138,"stem":139},"DeepL","\u002Fdocs\u002Fcontent-translator\u002Fproviders\u002Fdeepl","1.docs\u002F2.content-translator\u002F3.providers\u002F1.deepl",{"title":141,"path":142,"stem":143},"AI Translation","\u002Fdocs\u002Fcontent-translator\u002Fproviders\u002Fai-translation","1.docs\u002F2.content-translator\u002F3.providers\u002F2.ai-translation",{"title":145,"path":146,"stem":147},"Custom Translator Fn","\u002Fdocs\u002Fcontent-translator\u002Fproviders\u002Fcustom-translator","1.docs\u002F2.content-translator\u002F3.providers\u002F3.custom-translator",{"title":149,"path":150,"stem":151,"children":152,"page":38},"Panel","\u002Fdocs\u002Fcontent-translator\u002Fpanel","1.docs\u002F2.content-translator\u002F4.panel",[153],{"title":154,"path":155,"stem":156},"Translation Coverage","\u002Fdocs\u002Fcontent-translator\u002Fpanel\u002Ftranslation-coverage","1.docs\u002F2.content-translator\u002F4.panel\u002F1.translation-coverage",{"title":86,"path":158,"stem":159,"children":160,"page":38},"\u002Fdocs\u002Fcontent-translator\u002Fadvanced","1.docs\u002F2.content-translator\u002F5.advanced",[161,165,169],{"title":162,"path":163,"stem":164},"KirbyTags","\u002Fdocs\u002Fcontent-translator\u002Fadvanced\u002Fkirbytags","1.docs\u002F2.content-translator\u002F5.advanced\u002F1.kirbytags",{"title":166,"path":167,"stem":168},"Hooks","\u002Fdocs\u002Fcontent-translator\u002Fadvanced\u002Fhooks","1.docs\u002F2.content-translator\u002F5.advanced\u002F2.hooks",{"title":170,"path":171,"stem":172},"PHP API","\u002Fdocs\u002Fcontent-translator\u002Fadvanced\u002Fphp-api","1.docs\u002F2.content-translator\u002F5.advanced\u002F3.php-api",{"title":174,"path":175,"stem":176,"children":177,"page":38},"CLI & Automation","\u002Fdocs\u002Fcontent-translator\u002Fcli-automation","1.docs\u002F2.content-translator\u002F6.cli-automation",[178,182,186,190],{"title":179,"path":180,"stem":181},"Single Page","\u002Fdocs\u002Fcontent-translator\u002Fcli-automation\u002Fsingle-page","1.docs\u002F2.content-translator\u002F6.cli-automation\u002F1.single-page",{"title":183,"path":184,"stem":185},"Batch Pages","\u002Fdocs\u002Fcontent-translator\u002Fcli-automation\u002Fbatch-pages","1.docs\u002F2.content-translator\u002F6.cli-automation\u002F2.batch-pages",{"title":187,"path":188,"stem":189},"File Metadata","\u002Fdocs\u002Fcontent-translator\u002Fcli-automation\u002Ffile-metadata","1.docs\u002F2.content-translator\u002F6.cli-automation\u002F3.file-metadata",{"title":191,"path":192,"stem":193},"Janitor Integration","\u002Fdocs\u002Fcontent-translator\u002Fcli-automation\u002Fjanitor","1.docs\u002F2.content-translator\u002F6.cli-automation\u002F4.janitor",{"title":195,"icon":196,"path":197,"stem":198,"children":199,"page":38},"SEO Audit","i-ri-seo-line","\u002Fdocs\u002Fseo-audit","1.docs\u002F3.seo-audit",[200,208,219],{"title":11,"path":201,"stem":202,"children":203},"\u002Fdocs\u002Fseo-audit\u002Fgetting-started","1.docs\u002F3.seo-audit\u002F1.getting-started\u002F1.index",[204,205],{"title":16,"path":201,"stem":202},{"title":18,"path":206,"stem":207},"\u002Fdocs\u002Fseo-audit\u002Fgetting-started\u002Finstallation","1.docs\u002F3.seo-audit\u002F1.getting-started\u002F2.installation",{"title":22,"path":209,"stem":210,"children":211,"page":38},"\u002Fdocs\u002Fseo-audit\u002Fconfiguration","1.docs\u002F3.seo-audit\u002F2.configuration",[212,215],{"title":27,"path":213,"stem":214},"\u002Fdocs\u002Fseo-audit\u002Fconfiguration\u002Fglobal","1.docs\u002F3.seo-audit\u002F2.configuration\u002F1.global",{"title":216,"path":217,"stem":218},"View Button & Section","\u002Fdocs\u002Fseo-audit\u002Fconfiguration\u002Flocal","1.docs\u002F3.seo-audit\u002F2.configuration\u002F2.local",{"title":220,"path":221,"stem":222,"children":223,"page":38},"Guide","\u002Fdocs\u002Fseo-audit\u002Fguide","1.docs\u002F3.seo-audit\u002F3.guide",[224,228],{"title":225,"path":226,"stem":227},"Assessments for SEO and Readability","\u002Fdocs\u002Fseo-audit\u002Fguide\u002Fassessments","1.docs\u002F3.seo-audit\u002F3.guide\u002F1.assessments",{"title":229,"path":230,"stem":231},"Audit URL","\u002Fdocs\u002Fseo-audit\u002Fguide\u002Faudit-url","1.docs\u002F3.seo-audit\u002F3.guide\u002F2.audit-url",{"title":233,"path":234,"stem":235,"children":236,"icon":248},"Live Preview","\u002Fdocs\u002Flive-preview","1.docs\u002F4.live-preview\u002F1.index",[237,238,241,245],{"title":11,"path":234,"stem":235},{"title":22,"path":239,"stem":240},"\u002Fdocs\u002Flive-preview\u002Fconfiguration","1.docs\u002F4.live-preview\u002F2.configuration",{"title":242,"path":243,"stem":244},"Preview Mode","\u002Fdocs\u002Flive-preview\u002Fpreview-mode","1.docs\u002F4.live-preview\u002F3.preview-mode",{"title":99,"path":246,"stem":247},"\u002Fdocs\u002Flive-preview\u002Ftroubleshooting","1.docs\u002F4.live-preview\u002F4.troubleshooting","i-ri-picture-in-picture-line",{"title":250,"icon":251,"path":252,"stem":253,"children":254,"page":38},"Headless","i-ri-code-block","\u002Fdocs\u002Fheadless","1.docs\u002F5.headless",[255,263,279,299,307],{"title":11,"path":256,"stem":257,"children":258},"\u002Fdocs\u002Fheadless\u002Fgetting-started","1.docs\u002F5.headless\u002F1.getting-started\u002F1.index",[259,260],{"title":16,"path":256,"stem":257},{"title":18,"path":261,"stem":262},"\u002Fdocs\u002Fheadless\u002Fgetting-started\u002Finstallation","1.docs\u002F5.headless\u002F1.getting-started\u002F2.installation",{"title":22,"path":264,"stem":265,"children":266,"page":38},"\u002Fdocs\u002Fheadless\u002Fconfiguration","1.docs\u002F5.headless\u002F2.configuration",[267,271,275],{"title":268,"path":269,"stem":270},"Authentication","\u002Fdocs\u002Fheadless\u002Fconfiguration\u002Fauthentication","1.docs\u002F5.headless\u002F2.configuration\u002F1.authentication",{"title":272,"path":273,"stem":274},"CORS","\u002Fdocs\u002Fheadless\u002Fconfiguration\u002Fcors","1.docs\u002F5.headless\u002F2.configuration\u002F2.cors",{"title":276,"path":277,"stem":278},"Panel Configuration","\u002Fdocs\u002Fheadless\u002Fconfiguration\u002Fpanel","1.docs\u002F5.headless\u002F2.configuration\u002F3.panel",{"title":40,"path":280,"stem":281,"children":282,"page":38},"\u002Fdocs\u002Fheadless\u002Fusage","1.docs\u002F5.headless\u002F3.usage",[283,287,291,295],{"title":284,"path":285,"stem":286},"KQL (Kirby Query Language)","\u002Fdocs\u002Fheadless\u002Fusage\u002Fkql","1.docs\u002F5.headless\u002F3.usage\u002F1.kql",{"title":288,"path":289,"stem":290},"JSON Templates","\u002Fdocs\u002Fheadless\u002Fusage\u002Fjson-templates","1.docs\u002F5.headless\u002F3.usage\u002F2.json-templates",{"title":292,"path":293,"stem":294},"Field Methods","\u002Fdocs\u002Fheadless\u002Fusage\u002Ffield-methods","1.docs\u002F5.headless\u002F3.usage\u002F3.field-methods",{"title":296,"path":297,"stem":298},"Page Methods","\u002Fdocs\u002Fheadless\u002Fusage\u002Fpage-methods","1.docs\u002F5.headless\u002F3.usage\u002F4.page-methods",{"title":86,"path":300,"stem":301,"children":302,"page":38},"\u002Fdocs\u002Fheadless\u002Fadvanced","1.docs\u002F5.headless\u002F4.advanced",[303],{"title":304,"path":305,"stem":306},"API Builder","\u002Fdocs\u002Fheadless\u002Fadvanced\u002Fapi-builder","1.docs\u002F5.headless\u002F4.advanced\u002F1.api-builder",{"title":117,"path":308,"stem":309,"children":310},"\u002Fdocs\u002Fheadless\u002Fmigration","1.docs\u002F5.headless\u002F5.migration\u002F1.index",[311],{"title":312,"path":308,"stem":309},"Version Migration",{"title":314,"icon":315,"path":316,"stem":317,"children":318},"Minimap","i-ri-timeline-view","\u002Fdocs\u002Fminimap","1.docs\u002F6.minimap\u002F1.index",[319,320],{"title":11,"path":316,"stem":317},{"title":321,"path":322,"stem":323},"Fields Support","\u002Fdocs\u002Fminimap\u002Ffields-support","1.docs\u002F6.minimap\u002F1.fields-support",{"title":325,"icon":326,"path":327,"stem":328,"children":329,"page":38},"Documentation","i-ri-book-open-line","\u002Fdocs","1.docs",[330,359,389,403,409,432],{"title":5,"icon":6,"path":7,"stem":8,"children":331,"page":38},[332,336,341,347,354],{"title":11,"path":12,"stem":13,"children":333},[334,335],{"title":16,"path":12,"stem":13},{"title":18,"path":19,"stem":20},{"title":22,"path":23,"stem":24,"children":337,"page":38},[338,339,340],{"title":27,"path":28,"stem":29},{"title":31,"path":32,"stem":33},{"title":35,"path":36,"stem":37},{"title":40,"path":41,"stem":42,"children":342,"page":38},[343,344,345,346],{"title":45,"path":46,"stem":47},{"title":49,"path":50,"stem":51},{"title":53,"path":54,"stem":55},{"title":57,"path":58,"stem":59},{"title":61,"path":62,"stem":63,"children":348,"page":38},[349,350,351,352,353],{"title":66,"path":67,"stem":68},{"title":70,"path":71,"stem":72},{"title":74,"path":75,"stem":76},{"title":78,"path":79,"stem":80},{"title":82,"path":83,"stem":84},{"title":86,"path":87,"stem":88,"children":355,"page":38},[356,357,358],{"title":91,"path":92,"stem":93},{"title":95,"path":96,"stem":97},{"title":99,"path":100,"stem":101},{"title":103,"icon":104,"path":105,"stem":106,"children":360,"page":38},[361,366,370,375,378,383],{"title":11,"path":109,"stem":110,"children":362},[363,364,365],{"title":16,"path":109,"stem":110},{"title":18,"path":114,"stem":115},{"title":117,"path":118,"stem":119},{"title":22,"path":121,"stem":122,"children":367,"page":38},[368,369],{"title":27,"path":125,"stem":126},{"title":128,"path":129,"stem":130},{"title":132,"path":133,"stem":134,"children":371,"page":38},[372,373,374],{"title":137,"path":138,"stem":139},{"title":141,"path":142,"stem":143},{"title":145,"path":146,"stem":147},{"title":149,"path":150,"stem":151,"children":376,"page":38},[377],{"title":154,"path":155,"stem":156},{"title":86,"path":158,"stem":159,"children":379,"page":38},[380,381,382],{"title":162,"path":163,"stem":164},{"title":166,"path":167,"stem":168},{"title":170,"path":171,"stem":172},{"title":174,"path":175,"stem":176,"children":384,"page":38},[385,386,387,388],{"title":179,"path":180,"stem":181},{"title":183,"path":184,"stem":185},{"title":187,"path":188,"stem":189},{"title":191,"path":192,"stem":193},{"title":195,"icon":196,"path":197,"stem":198,"children":390,"page":38},[391,395,399],{"title":11,"path":201,"stem":202,"children":392},[393,394],{"title":16,"path":201,"stem":202},{"title":18,"path":206,"stem":207},{"title":22,"path":209,"stem":210,"children":396,"page":38},[397,398],{"title":27,"path":213,"stem":214},{"title":216,"path":217,"stem":218},{"title":220,"path":221,"stem":222,"children":400,"page":38},[401,402],{"title":225,"path":226,"stem":227},{"title":229,"path":230,"stem":231},{"title":233,"path":234,"stem":235,"children":404,"icon":248},[405,406,407,408],{"title":11,"path":234,"stem":235},{"title":22,"path":239,"stem":240},{"title":242,"path":243,"stem":244},{"title":99,"path":246,"stem":247},{"title":250,"icon":251,"path":252,"stem":253,"children":410,"page":38},[411,415,420,426,429],{"title":11,"path":256,"stem":257,"children":412},[413,414],{"title":16,"path":256,"stem":257},{"title":18,"path":261,"stem":262},{"title":22,"path":264,"stem":265,"children":416,"page":38},[417,418,419],{"title":268,"path":269,"stem":270},{"title":272,"path":273,"stem":274},{"title":276,"path":277,"stem":278},{"title":40,"path":280,"stem":281,"children":421,"page":38},[422,423,424,425],{"title":284,"path":285,"stem":286},{"title":288,"path":289,"stem":290},{"title":292,"path":293,"stem":294},{"title":296,"path":297,"stem":298},{"title":86,"path":300,"stem":301,"children":427,"page":38},[428],{"title":304,"path":305,"stem":306},{"title":117,"path":308,"stem":309,"children":430},[431],{"title":312,"path":308,"stem":309},{"title":314,"icon":315,"path":316,"stem":317,"children":433},[434,435],{"title":11,"path":316,"stem":317},{"title":321,"path":322,"stem":323},{"title":437,"path":438,"stem":439,"children":440,"page":38},"Blog","\u002Fblog","blog",[441,445,449,453],{"title":442,"path":443,"stem":444},"Kirby Copilot v2.5 – Beyond Single Fields","\u002Fblog\u002Fcopilot-v25","blog\u002Fcopilot-v25",{"title":446,"path":447,"stem":448},"Kirby Copilot v3 – Your Quiet Co-Writer","\u002Fblog\u002Fcopilot-v3","blog\u002Fcopilot-v3",{"title":450,"path":451,"stem":452},"Going Open Source with Commercial Plugins","\u002Fblog\u002Fgoing-open-source","blog\u002Fgoing-open-source",{"title":454,"path":455,"stem":456},"Moving to Paddle","\u002Fblog\u002Fpaddle-migration","blog\u002Fpaddle-migration",[458,463,467,472,475,480],{"title":11,"path":109,"stem":110,"children":459},[460,461,462],{"title":16,"path":109,"stem":110},{"title":18,"path":114,"stem":115},{"title":117,"path":118,"stem":119},{"title":22,"path":121,"stem":122,"children":464,"page":38},[465,466],{"title":27,"path":125,"stem":126},{"title":128,"path":129,"stem":130},{"title":132,"path":133,"stem":134,"children":468,"page":38},[469,470,471],{"title":137,"path":138,"stem":139},{"title":141,"path":142,"stem":143},{"title":145,"path":146,"stem":147},{"title":149,"path":150,"stem":151,"children":473,"page":38},[474],{"title":154,"path":155,"stem":156},{"title":86,"path":158,"stem":159,"children":476,"page":38},[477,478,479],{"title":162,"path":163,"stem":164},{"title":166,"path":167,"stem":168},{"title":170,"path":171,"stem":172},{"title":174,"path":175,"stem":176,"children":481,"page":38},[482,483,484,485],{"title":179,"path":180,"stem":181},{"title":183,"path":184,"stem":185},{"title":187,"path":188,"stem":189},{"title":191,"path":192,"stem":193},{"id":487,"title":488,"body":489,"date":554,"description":551,"extension":555,"meta":556,"navigation":557,"path":558,"seo":559,"stem":560,"__hash__":561},"versions\u002F3.content-translator\u002Fchangelog\u002Fv3.10.0.md","v3.10.0",{"type":490,"value":491,"toc":550},"minimark",[492,500,506,531,536],[493,494,495],"p",{},[496,497],"img",{"alt":498,"src":499},"Translation Coverage view in the Languages panel showing per-language completion rings (German 100%, Español 7%, Français 28%) and a Pages to Translate tree with branch counters and language-code tags for missing translations","\u002Fimg\u002Fkirby-content-translator-translation-coverage.png",[493,501,502],{},[503,504,505],"strong",{},"🚀 Features",[507,508,509,521],"ul",{},[510,511,512,515,516,520],"li",{},[503,513,514],{},"Translation Coverage view",": A new Panel dashboard on ",[517,518,519],"code",{},"\u002Fpanel\u002Flanguages"," showing per-language completion percentages and a pruned tree of pages still missing translations – click straight through to fix them. Kirby 5 only.",[510,522,523,526,527,530],{},[503,524,525],{},"Content inheritance for imports",": When importing content from the default language, the secondary language's content file is now deleted instead of copied. Kirby's built-in content inheritance keeps the secondary language automatically in sync with the primary language – no more stale content after updating the default language. Importing from non-default languages (via ",[517,528,529],{},"importFrom",") retains the existing copy behavior, as does Kirby 4.",[493,532,533],{},[503,534,535],{},"🐛 Fixes",[507,537,538,544],{},[510,539,540,543],{},[503,541,542],{},"KirbyTag handling",": KirbyTags are now extracted structurally before translation. Only their translatable parts (such as link text) are sent to the provider, while attributes, file references, and tag syntax are preserved verbatim.",[510,545,546,549],{},[503,547,548],{},"File and site translation",": Translating a file or the site model no longer attempts title and slug patches that don't apply to those models. Title and slug updates are now scoped to pages, where they belong.",{"title":551,"searchDepth":552,"depth":552,"links":553},"",2,[],"2026-04-30","md",{},true,"\u002Fcontent-translator\u002Fchangelog\u002Fv3.10.0",{"title":488,"description":551},"3.content-translator\u002Fchangelog\u002Fv3.10.0","9Ztn3_z6ziVRQD_fwEAVZnCyhh9zRzXvTThwtcGXLFI",{"data":563,"body":564},{},{"type":565,"children":566},"root",[567],{"type":568,"tag":493,"props":569,"children":570},"element",{},[571,574,583,585,592],{"type":572,"value":573},"text","We love Kirby – our plugins wouldn't exist without it. Help us improve: share feedback in ",{"type":568,"tag":575,"props":576,"children":580},"a",{"href":577,"rel":578},"https:\u002F\u002Fgithub.com\u002Fkirby-tools\u002Fcommunity\u002Fdiscussions",[579],"nofollow",[581],{"type":572,"value":582},"Discussions",{"type":572,"value":584}," or report bugs via ",{"type":568,"tag":575,"props":586,"children":589},{"href":587,"rel":588},"https:\u002F\u002Fgithub.com\u002Fkirby-tools\u002Fcommunity\u002Fissues",[579],[590],{"type":572,"value":591},"Issues",{"type":572,"value":593},".",{"id":595,"title":154,"body":596,"description":657,"extension":555,"meta":658,"navigation":557,"path":155,"seo":659,"stem":156,"__hash__":660},"docs\u002F1.docs\u002F2.content-translator\u002F4.panel\u002F1.translation-coverage.md",{"type":490,"value":597,"toc":653},[598,604,609,614,623,629,632,636,639,645,650],[493,599,600,601,603],{},"The Languages view in the Kirby Panel gains a coverage dashboard and a pruned list of pages that still need translation work (Kirby 5 only). Open ",[517,602,519],{}," to see at a glance how complete each language is – and click straight through to the pages that are missing content.",[493,605,606],{},[496,607],{"alt":608,"src":499},"Translation Coverage view in the Languages panel showing per-language completion rings and a Pages to Translate tree with branch counters and language-code tags for missing translations",[610,611,613],"h2",{"id":612},"what-you-see","What You See",[493,615,616,618,619,622],{},[503,617,154],{},": one ring per non-default language, showing the percentage of translatable fields that have content. The label below each ring reports how many pages are still incomplete (e.g. ",[517,620,621],{},"4 pages incomplete","). A language at 100% is highlighted as positive.",[493,624,625,628],{},[503,626,627],{},"Pages to Translate",": a tree of pages that have at least one missing language. Branches collapse to keep the list compact: only incomplete pages and their ancestors are shown. Each entry links straight to its Panel view so you can fix it in one click.",[493,630,631],{},"If everything is translated, the tree is replaced with an empty state.",[610,633,635],{"id":634},"how-coverage-is-calculated","How Coverage Is Calculated",[493,637,638],{},"Coverage uses the same translatable-field rules as the rest of the plugin. A field counts toward the totals when two conditions are met: your blueprint marks it translatable (or it's translatable by default for its field type), and the default language has content for that field. It counts as translated if its value in the secondary language is not empty.",[640,641,642],"note",{},[493,643,644],{},"Default-language content is read without fallback when calculating coverage. A secondary-language content file that doesn't exist counts as zero translated fields, not as a copy of the default language.",[640,646,647],{},[493,648,649],{},"A page where every translatable field is empty in the default language is omitted from the dashboard – there's nothing to translate against.",[493,651,652],{},"The default language itself is excluded from the rings – it's the source, not a target.",{"title":551,"searchDepth":552,"depth":552,"links":654},[655,656],{"id":612,"depth":552,"text":613},{"id":634,"depth":552,"text":635},"Spot incomplete translations at a glance. The Languages view in the Panel gains a coverage dashboard and a list of pages that still need work.",{},{"title":154,"description":657},"ITZWuKIzRqM_PcxOxjtAyKd2LG1WKMRFDsPSIvV8Fs8",[662,664],{"title":145,"path":146,"stem":147,"description":663,"children":-1},"Integrate any translation API or custom logic with a PHP function.",{"title":162,"path":163,"stem":164,"description":665,"children":-1},"Configure selective translation of KirbyTag attributes.",1777564406746]