Plain language (pt-BR)

The Brazilian-Portuguese localization of the plain-language rule: a "burocratês → linguagem simples" term registry plus a lint that flags bureaucratic/legalese phrasing in pt-BR UI copy and suggests the plain equivalent. Extends the language-neutral plain-language.kmd with a concrete pt-BR substitution corpus. Modeled after the gov.br "linguagem simples" / Comunicação Pública guidance.

Status: v0.1.0 — Draft. Promoted from the gov.br (DS Gov) parity scan (metadocsstack #098). Locale specialization of specs/content/plain-language.kmd. Source: gov.br linguagem simples / Manual de Comunicação da Secom.

R1 — Relationship to the base rule

specs/content/plain-language.kmd is the language-neutral contract (short sentences, active voice, no jargon, address the reader directly). This spec adds the pt-BR substitution corpus and lint; it tightens, never loosens, the base. When pt-BR copy is being written/reviewed, both apply.

R2 — Term registry (burocratês → simples)

A versioned registry maps bureaucratic terms to their plain equivalents. Non-exhaustive seed (the registry is the source of truth, the rendered list is illustrative):

Burocratês Linguagem simples
efetuar / proceder a fazer
em virtude de / tendo em vista que porque
anteriormente mencionado / supracitado que já falamos / acima
comparecer ir / vir
protocolar enviar / registrar
indeferido recusado / negado
deferido aprovado
aguardar manifestação esperar a resposta
dirimir dúvidas tirar dúvidas
impreterivelmente sem falta / no prazo
dispor de ter
à guisa de como

The registry lives as data (a .kmd/JSON term file) so the lint and authors share one source; entries carry an optional note on when the formal term is genuinely required (legal contexts).

R3 — Lint behavior

  • The lint scans pt-BR string resources and flags any registry term,

    proposing the plain equivalent (a suggestion, not an auto-rewrite — context can justify the formal term).

  • It also flags structural smells the base rule names: sentences over ~25

    words, passive-voice agent-less constructions, nominalizations ("realização de", "efetivação de").

  • Findings are advisory in CI (warn), never a hard build break, since

    legal/regulatory copy may legitimately need formal terms (R4).

R4 — When formal stays

Legally binding text (contracts, e-sign consent, regulatory notices) may require the formal term verbatim. Such strings are tagged to exempt them from the lint; the tag is explicit (no silent suppression), so the choice is auditable.

R5 — Scope of application

Applies to pt-BR product UI strings, help, notifications, and public gov-facing copy. Per policies/language.kmd, Koder product UI is en-US by default; this spec governs the pt-BR translations/locales where they exist, not the source en-US.

Não-escopo

  • The language-neutral rules themselves (specs/content/plain-language.kmd).
  • en-US copy (the base rule covers it).
  • Machine translation quality (separate concern).
  • Tonevoice (`specscontent/voice-and-tone.kmd`).