feat(i18n): translate summary.json chapter to Brazilian Portuguese

Fill the `pt` mirror fields on the /summary/ route-map chapter so the
bilingual contract stops being silently English-only. 28 fields:
hero eyebrow, title, lede, footer, and the six route cards (label,
title, copy, cta each).

The cards mirror landing.json's six destinations with the same titles
and copy, except card 5 (titled `Practice` here vs `Hands-on` on the
landing page, with a tighter copy) and card 6 (shorter copy: "files and
drafts" vs "packages, references, scripts, and improvements"). Both
deliberately translated as `Prática` and `Mesa de revisão` to match
the established conventions in landing.json and the full-guide
navigation (`07 prática`).

English strings are byte-identical to origin/main. The page at
/summary/ still renders English-only because src/pages/summary.astro
does not consult the chapters collection at all — it inlines its own
copy today; wiring it through the collection is task 13's scope.

Translation register follows the conventions established by
src/content/commonSkills/*.json and the just-landed landing.json
commit (1baa314): imperative voice, second-person `você`,
sentence-case prose, all-caps labels, and English kept for product
nouns (skill, worktree, brief, gate, pipeline, recall, prompt,
enforcement, runs).

Verified by .agents/scripts/audit-translations.mjs: the chapter
contribution to the offenders list drops from 28 to 0. Remaining
identical fields live in agents.json (24), models.json (24), and
skills.json (16), which will land in subsequent commits.
This commit is contained in:
Marcos Paulo
2026-09-06 18:22:33 -03:00
parent 1baa3145e8
commit fd031b0842
+88 -28
View File
@@ -1,75 +1,135 @@
{
"id": "summary",
"eyebrow": { "en": "Start here", "pt": "Start here" },
"title": { "en": "Ship the<br><em>system.</em>", "pt": "Ship the<br><em>system.</em>" },
"eyebrow": {
"en": "Start here",
"pt": "Comece aqui"
},
"title": {
"en": "Ship the<br><em>system.</em>",
"pt": "Entregue o<br><em>sistema.</em>"
},
"lede": {
"en": "This guide turns AI work into a shape: frame the problem, choose the model and agent, isolate changes, teach repeatable decisions, and verify the result.",
"pt": "This guide turns AI work into a shape: frame the problem, choose the model and agent, isolate changes, teach repeatable decisions, and verify the result."
"pt": "Este guia transforma trabalho com IA em uma forma: enquadre o problema, escolha o modelo e o agente, isole mudanças, ensine decisões repetíveis e verifique o resultado."
},
"footer": {
"en": "Each chapter stands alone; the order follows a real task becoming a reliable change.",
"pt": "Each chapter stands alone; the order follows a real task becoming a reliable change."
"pt": "Cada capítulo se sustenta sozinho; a ordem segue uma tarefa real se tornando uma mudança confiável."
},
"cards": [
{
"label": { "en": "01", "pt": "01" },
"title": { "en": "Models", "pt": "Models" },
"label": {
"en": "01",
"pt": "01"
},
"title": {
"en": "Models",
"pt": "Modelos"
},
"copy": {
"en": "Capability and effort are separate knobs.",
"pt": "Capability and effort are separate knobs."
"pt": "Capacidade e esforço são controles separados."
},
"href": "../models/",
"cta": { "en": "Open chapter →", "pt": "Open chapter →" }
"cta": {
"en": "Open chapter →",
"pt": "Abrir capítulo →"
}
},
{
"label": { "en": "02", "pt": "02" },
"title": { "en": "Agents & trees", "pt": "Agents & trees" },
"label": {
"en": "02",
"pt": "02"
},
"title": {
"en": "Agents & trees",
"pt": "Agentes e árvores"
},
"copy": {
"en": "Bound roles, handoffs, and worktrees.",
"pt": "Bound roles, handoffs, and worktrees."
"pt": "Limite papéis, handoffs e worktrees."
},
"href": "../agents/",
"cta": { "en": "Open chapter →", "pt": "Open chapter →" }
"cta": {
"en": "Open chapter →",
"pt": "Abrir capítulo →"
}
},
{
"label": { "en": "03", "pt": "03" },
"title": { "en": "Skills", "pt": "Skills" },
"label": {
"en": "03",
"pt": "03"
},
"title": {
"en": "Skills",
"pt": "Skills"
},
"copy": {
"en": "Capture repeatable decisions.",
"pt": "Capture repeatable decisions."
"pt": "Capture decisões repetíveis."
},
"href": "../skills/",
"cta": { "en": "Open chapter →", "pt": "Open chapter →" }
"cta": {
"en": "Open chapter →",
"pt": "Abrir capítulo →"
}
},
{
"label": { "en": "04", "pt": "04" },
"title": { "en": "Rules", "pt": "Rules" },
"label": {
"en": "04",
"pt": "04"
},
"title": {
"en": "Rules",
"pt": "Regras"
},
"copy": {
"en": "Connect guidance to enforcement.",
"pt": "Connect guidance to enforcement."
"pt": "Conecte orientação a enforcement."
},
"href": "../rules/",
"cta": { "en": "Open chapter →", "pt": "Open chapter →" }
"cta": {
"en": "Open chapter →",
"pt": "Abrir capítulo →"
}
},
{
"label": { "en": "05", "pt": "05" },
"title": { "en": "Practice", "pt": "Practice" },
"label": {
"en": "05",
"pt": "05"
},
"title": {
"en": "Practice",
"pt": "Prática"
},
"copy": {
"en": "Compare prompts and skill-enabled runs.",
"pt": "Compare prompts and skill-enabled runs."
"pt": "Compare prompts e execuções com skills."
},
"href": "../hands-on/starter/",
"cta": { "en": "Open lab →", "pt": "Open lab →" }
"cta": {
"en": "Open lab →",
"pt": "Abrir lab →"
}
},
{
"label": { "en": "06", "pt": "06" },
"title": { "en": "Review desk", "pt": "Review desk" },
"label": {
"en": "06",
"pt": "06"
},
"title": {
"en": "Review desk",
"pt": "Mesa de revisão"
},
"copy": {
"en": "Browse original files and improved drafts.",
"pt": "Browse original files and improved drafts."
"pt": "Explore arquivos originais e rascunhos melhorados."
},
"href": "../skills-review/",
"cta": { "en": "Open desk →", "pt": "Open desk →" }
"cta": {
"en": "Open desk →",
"pt": "Abrir mesa →"
}
}
]
}