feat(i18n): translate landing.json chapter to Brazilian Portuguese
Fill the `pt` mirror fields on the landing route-map chapter so the bilingual contract stops being silently English-only. 30 fields: hero eyebrow, title, lede, thread label and text, footer, and the six route cards (label, title, copy, cta each). English strings are byte-identical to origin/main. The page at / still renders English-only because src/pages/index.astro hard-codes `lang = 'en'`; wiring the bilingual swap into the landing page is task 12's scope. Translation choices follow the conventions already established by src/content/commonSkills/*.json and src/content/full-guide-pt.json: 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). The `Hands-on` card title is rendered as `Prática` to match `full-guide-pt.json`'s `07 prática` nav entry; the URL `/hands-on/starter/` stays unchanged. Verified by .agents/scripts/audit-translations.mjs: the chapter contribution to the offenders list drops from 30 to 0. The remaining identical fields (92) live in summary.json, agents.json, models.json, and skills.json, which will land in subsequent commits.
This commit is contained in:
@@ -1,83 +1,89 @@
|
||||
{
|
||||
"id": "landing",
|
||||
"eyebrow": { "en": "The short route", "pt": "The short route" },
|
||||
"title": { "en": "Ship the<br><em>system.</em>", "pt": "Ship the<br><em>system.</em>" },
|
||||
"eyebrow": {
|
||||
"en": "The short route",
|
||||
"pt": "A rota curta"
|
||||
},
|
||||
"title": {
|
||||
"en": "Ship the<br><em>system.</em>",
|
||||
"pt": "Entregue o<br><em>sistema.</em>"
|
||||
},
|
||||
"lede": {
|
||||
"en": "Start with the map. Then open the one chapter that matches the decision in front of you: model, agent, worktree, skill, rule, or proof.",
|
||||
"pt": "Start with the map. Then open the one chapter that matches the decision in front of you: model, agent, worktree, skill, rule, or proof."
|
||||
"pt": "Comece pelo mapa. Depois abra o capítulo que combina com a decisão à sua frente: modelo, agente, worktree, skill, regra ou prova."
|
||||
},
|
||||
"threadLabel": {
|
||||
"en": "THE THREAD",
|
||||
"pt": "THE THREAD"
|
||||
"pt": "O FIO"
|
||||
},
|
||||
"threadText": {
|
||||
"en": "Frame uncertainty → isolate execution → preserve judgment → verify the change.",
|
||||
"pt": "Frame uncertainty → isolate execution → preserve judgment → verify the change."
|
||||
"pt": "Enquadre a incerteza → isole a execução → preserve o julgamento → verifique a mudança."
|
||||
},
|
||||
"footer": {
|
||||
"en": "The route map is now the default entry. The full guide remains available whenever you want the whole narrative.",
|
||||
"pt": "The route map is now the default entry. The full guide remains available whenever you want the whole narrative."
|
||||
"pt": "O mapa de rotas é agora a entrada padrão. O guia completo segue disponível sempre que você quiser a narrativa inteira."
|
||||
},
|
||||
"cards": [
|
||||
{
|
||||
"label": { "en": "01", "pt": "01" },
|
||||
"title": { "en": "Models", "pt": "Models" },
|
||||
"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" },
|
||||
"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" },
|
||||
"copy": {
|
||||
"en": "Capture repeatable decisions in small packages.",
|
||||
"pt": "Capture repeatable decisions in small packages."
|
||||
"pt": "Capture decisões repetíveis em pacotes pequenos."
|
||||
},
|
||||
"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" },
|
||||
"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": "Hands-on", "pt": "Hands-on" },
|
||||
"title": { "en": "Hands-on", "pt": "Prática" },
|
||||
"copy": {
|
||||
"en": "Compare a strong prompt with skill-enabled work.",
|
||||
"pt": "Compare a strong prompt with skill-enabled work."
|
||||
"pt": "Compare um prompt forte com trabalho assistido por 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" },
|
||||
"title": { "en": "Review desk", "pt": "Mesa de revisão" },
|
||||
"copy": {
|
||||
"en": "Browse original packages, references, scripts, and improvements.",
|
||||
"pt": "Browse original packages, references, scripts, and improvements."
|
||||
"pt": "Explore pacotes originais, referências, scripts e melhorias."
|
||||
},
|
||||
"href": "skills-review/",
|
||||
"cta": { "en": "Open desk →", "pt": "Open desk →" }
|
||||
"cta": { "en": "Open desk →", "pt": "Abrir mesa →" }
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user