Summary
Two mechanical quality gaps drive a large share of maintainer churn: broken markdown links after translation, and English-style Title Case on Portuguese headings.
Problem
Markdown links
| PR |
Issue |
| reactjs/pt-br.react.dev#1241 |
Link text left [...] wrapper; like [\errorInfo.componentStack`...](/path)` became broken inline code + bare path |
No guard compares link structure between source and translation.
Heading sentence case (pt-br convention)
Maintainers expect sentence case: capitalize the first word and proper nouns only (React, JSX, product names).
This batch (reactjs/pt-br.react.dev#1183 – reactjs/pt-br.react.dev#1189) is mostly heading-only fixes; fixing at generation time avoids repeated human edits across blog/release posts.
Proposed direction
-
Markdown link guard
- For each
[text](url) in source, ensure translated output preserves link syntax (balanced brackets, same URL, text may be translated inside brackets).
- Retry hint with structural fix pattern from #1241.
-
pt-br heading style guard (or analyzer)
- For lines matching heading patterns (
# … ###), flag Title Case Portuguese function words (heuristic: capitalize words after the first except allowlist: React, DOM, JSX, Flight, etc.).
- Prefer rules in
pt-br.locale.ts plus validation; avoid hardcoding every blog title.
-
Prompt
- Explicit sentence-case rule for pt-br headings in locale
rules.specific.
Acceptance criteria
Out of scope (for this issue)
References
src/app/services/translator/validation/guards/
src/app/locales/pt-br.locale.ts
- pt-br PRs:
Summary
Two mechanical quality gaps drive a large share of maintainer churn: broken markdown links after translation, and English-style Title Case on Portuguese headings.
Problem
Markdown links
[...]wrapper;like [\errorInfo.componentStack`...](/path)` became broken inline code + bare pathNo guard compares link structure between source and translation.
Heading sentence case (pt-br convention)
Maintainers expect sentence case: capitalize the first word and proper nouns only (
React,JSX, product names).### Frameworks e Bundlers Afetados→ sentence case## Novos Recursos no React Canary## Compatibilidade com Versões Anteriores##headings (plus separate fence issue)## Use o React Compiler Hoje## Novos Recursos do React#### O Novo Transform JSX...(“novo” should be lowercase)This batch (reactjs/pt-br.react.dev#1183 – reactjs/pt-br.react.dev#1189) is mostly heading-only fixes; fixing at generation time avoids repeated human edits across blog/release posts.
Proposed direction
Markdown link guard
[text](url)in source, ensure translated output preserves link syntax (balanced brackets, same URL, text may be translated inside brackets).pt-br heading style guard (or analyzer)
#…###), flag Title Case Portuguese function words (heuristic: capitalize words after the first except allowlist: React, DOM, JSX, Flight, etc.).pt-br.locale.tsplus validation; avoid hardcoding every blog title.Prompt
rules.specific.Acceptance criteria
Out of scope (for this issue)
react-19-upgrade-guide.mdpara Português (Brasil) reactjs/pt-br.react.dev#1182 “várias desvantagens”, Tradução dereact-19-2.mdpara Português (Brasil) reactjs/pt-br.react.dev#1189 “da renderização”). Rely on human review or future LLM pass; do not block on full grammar NLP here.References
src/app/services/translator/validation/guards/src/app/locales/pt-br.locale.tscaptureOwnerStack.mdpara Português (Brasil) reactjs/pt-br.react.dev#1241critical-security-vulnerability-in-react-server-components.mdpara Português (Brasil) reactjs/pt-br.react.dev#1192react-19-upgrade-guide.mdpara Português (Brasil) reactjs/pt-br.react.dev#1182react-labs-what-we-have-been-working-on-february-2024.mdpara Português (Brasil) reactjs/pt-br.react.dev#1183react-compiler-beta-release.mdpara Português (Brasil) reactjs/pt-br.react.dev#1184sunsetting-create-react-app.mdpara Português (Brasil) reactjs/pt-br.react.dev#1186react-compiler-1.mdpara Português (Brasil) reactjs/pt-br.react.dev#1188react-19-2.mdpara Português (Brasil) reactjs/pt-br.react.dev#1189