feat(i18n): translate models.json chapter to Brazilian Portuguese
Fill the `pt` mirror fields on the /models/ chapter so the bilingual contract stops being silently English-only. 24 fields: hero eyebrow, title, lede, three effort-tier cards, and two sections (the routing rule panel and the sequence steps). The chapter reuses the same six surface primitives as landing.json and summary.json, with one new shape: the routing-rule panel (panelLabel + panelCode) on the first section, and a three-step sequence (steps[].label / steps[].copy) on the second. The English panel code mixes prose and prose-like tokens (→, ×, ·); the Portuguese preserves all of those. Translation register follows the conventions established by src/content/commonSkills/*.json, the full-guide PT snapshot, and the two prior commits on this branch (1baa314landing.json,fd031b0summary.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, runs, model-tier names). Numeric and tier labels (LOW / BAIXO, MEDIUM / MÉDIO, HIGH / ALTO) translate as established by the efforts collection. `Ambiguidade` for "ambiguity" follows phases/plan.json's established usage; `execução delimitada` for "bounded execution" mirrors routes/build.json. The English metaphor "spend judgment / compounds" is rendered as `Invista julgamento onde ele compensa`, which carries the same meaning in Portuguese; the literal calque `compostos` would be opaque. Verified by .agents/scripts/audit-translations.mjs: models.json contribution to the offenders list drops from 24 to 0. Remaining identical fields live in agents.json (24) and skills.json (16), which will land in subsequent commits.
This commit is contained in:
@@ -2,57 +2,57 @@
|
|||||||
"id": "models",
|
"id": "models",
|
||||||
"eyebrow": {
|
"eyebrow": {
|
||||||
"en": "Model routing",
|
"en": "Model routing",
|
||||||
"pt": "Model routing"
|
"pt": "Roteamento de modelos"
|
||||||
},
|
},
|
||||||
"title": {
|
"title": {
|
||||||
"en": "Choose the<br><em>engine.</em>",
|
"en": "Choose the<br><em>engine.</em>",
|
||||||
"pt": "Choose the<br><em>engine.</em>"
|
"pt": "Escolha o<br><em>motor.</em>"
|
||||||
},
|
},
|
||||||
"lede": {
|
"lede": {
|
||||||
"en": "A model has a capability ceiling. Effort controls how much room it gets to reason. Route by uncertainty and verification cost.",
|
"en": "A model has a capability ceiling. Effort controls how much room it gets to reason. Route by uncertainty and verification cost.",
|
||||||
"pt": "A model has a capability ceiling. Effort controls how much room it gets to reason. Route by uncertainty and verification cost."
|
"pt": "Um modelo tem um teto de capacidade. O esforço controla quanto espaço ele ganha para raciocinar. Roteie por incerteza e custo de verificação."
|
||||||
},
|
},
|
||||||
"cards": [
|
"cards": [
|
||||||
{
|
{
|
||||||
"label": {
|
"label": {
|
||||||
"en": "LOW",
|
"en": "LOW",
|
||||||
"pt": "LOW"
|
"pt": "BAIXO"
|
||||||
},
|
},
|
||||||
"title": {
|
"title": {
|
||||||
"en": "Bounded rhythm",
|
"en": "Bounded rhythm",
|
||||||
"pt": "Bounded rhythm"
|
"pt": "Ritmo delimitado"
|
||||||
},
|
},
|
||||||
"copy": {
|
"copy": {
|
||||||
"en": "Lookup, small edits, formatting, and transformations with clear checks.",
|
"en": "Lookup, small edits, formatting, and transformations with clear checks.",
|
||||||
"pt": "Lookup, small edits, formatting, and transformations with clear checks."
|
"pt": "Consultas, edições pequenas, formatação e transformações com checagens claras."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"label": {
|
"label": {
|
||||||
"en": "MEDIUM",
|
"en": "MEDIUM",
|
||||||
"pt": "MEDIUM"
|
"pt": "MÉDIO"
|
||||||
},
|
},
|
||||||
"title": {
|
"title": {
|
||||||
"en": "Default work",
|
"en": "Default work",
|
||||||
"pt": "Default work"
|
"pt": "Trabalho padrão"
|
||||||
},
|
},
|
||||||
"copy": {
|
"copy": {
|
||||||
"en": "Normal implementation where the contract is clear but context matters.",
|
"en": "Normal implementation where the contract is clear but context matters.",
|
||||||
"pt": "Normal implementation where the contract is clear but context matters."
|
"pt": "Implementação normal em que o contrato é claro, mas o contexto importa."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"label": {
|
"label": {
|
||||||
"en": "HIGH",
|
"en": "HIGH",
|
||||||
"pt": "HIGH"
|
"pt": "ALTO"
|
||||||
},
|
},
|
||||||
"title": {
|
"title": {
|
||||||
"en": "Ambiguity",
|
"en": "Ambiguity",
|
||||||
"pt": "Ambiguity"
|
"pt": "Ambiguidade"
|
||||||
},
|
},
|
||||||
"copy": {
|
"copy": {
|
||||||
"en": "Planning, architecture, security judgment, and hard failures.",
|
"en": "Planning, architecture, security judgment, and hard failures.",
|
||||||
"pt": "Planning, architecture, security judgment, and hard failures."
|
"pt": "Planejamento, arquitetura, julgamento de segurança e falhas difíceis."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@@ -60,59 +60,59 @@
|
|||||||
{
|
{
|
||||||
"eyebrow": {
|
"eyebrow": {
|
||||||
"en": "Two knobs",
|
"en": "Two knobs",
|
||||||
"pt": "Two knobs"
|
"pt": "Dois controles"
|
||||||
},
|
},
|
||||||
"title": {
|
"title": {
|
||||||
"en": "Capability<br>× effort",
|
"en": "Capability<br>× effort",
|
||||||
"pt": "Capability<br>× effort"
|
"pt": "Capacidade<br>× esforço"
|
||||||
},
|
},
|
||||||
"panelLabel": {
|
"panelLabel": {
|
||||||
"en": "ROUTING RULE",
|
"en": "ROUTING RULE",
|
||||||
"pt": "ROUTING RULE"
|
"pt": "REGRA DE ROTEAMENTO"
|
||||||
},
|
},
|
||||||
"panelCode": {
|
"panelCode": {
|
||||||
"en": "strong model + high effort → frame ambiguity\nlight model + low effort → bounded execution\nraise one knob at a time → compare evidence",
|
"en": "strong model + high effort → frame ambiguity\nlight model + low effort → bounded execution\nraise one knob at a time → compare evidence",
|
||||||
"pt": "strong model + high effort → frame ambiguity\nlight model + low effort → bounded execution\nraise one knob at a time → compare evidence"
|
"pt": "modelo forte + esforço alto → enquadrar ambiguidade\nmodelo leve + esforço baixo → execução delimitada\nsuba um controle por vez → compare evidências"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"eyebrow": {
|
"eyebrow": {
|
||||||
"en": "Sequence",
|
"en": "Sequence",
|
||||||
"pt": "Sequence"
|
"pt": "Sequência"
|
||||||
},
|
},
|
||||||
"title": {
|
"title": {
|
||||||
"en": "Spend judgment<br>where it <em>compounds.</em>",
|
"en": "Spend judgment<br>where it <em>compounds.</em>",
|
||||||
"pt": "Spend judgment<br>where it <em>compounds.</em>"
|
"pt": "Invista julgamento<br>onde ele <em>compensa.</em>"
|
||||||
},
|
},
|
||||||
"steps": [
|
"steps": [
|
||||||
{
|
{
|
||||||
"label": {
|
"label": {
|
||||||
"en": "Plan",
|
"en": "Plan",
|
||||||
"pt": "Plan"
|
"pt": "Planejar"
|
||||||
},
|
},
|
||||||
"copy": {
|
"copy": {
|
||||||
"en": "Strong model: scope, risks, acceptance, and worktree split.",
|
"en": "Strong model: scope, risks, acceptance, and worktree split.",
|
||||||
"pt": "Strong model: scope, risks, acceptance, and worktree split."
|
"pt": "Modelo forte: escopo, riscos, aceitação e divisão de worktrees."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"label": {
|
"label": {
|
||||||
"en": "Build",
|
"en": "Build",
|
||||||
"pt": "Build"
|
"pt": "Construir"
|
||||||
},
|
},
|
||||||
"copy": {
|
"copy": {
|
||||||
"en": "Focused worker: smallest context and lightest model that can pass.",
|
"en": "Focused worker: smallest context and lightest model that can pass.",
|
||||||
"pt": "Focused worker: smallest context and lightest model that can pass."
|
"pt": "Worker focado: o menor contexto e o modelo mais leve que passa."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"label": {
|
"label": {
|
||||||
"en": "Review",
|
"en": "Review",
|
||||||
"pt": "Review"
|
"pt": "Revisar"
|
||||||
},
|
},
|
||||||
"copy": {
|
"copy": {
|
||||||
"en": "Independent pass when missed issues cost more than the call.",
|
"en": "Independent pass when missed issues cost more than the call.",
|
||||||
"pt": "Independent pass when missed issues cost more than the call."
|
"pt": "Revisão independente quando erros perdidos custam mais que a chamada."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
Reference in New Issue
Block a user