- Shipped
- October 22, 2026 at 4:46 AM UTC
- Author
- Kamo
- Commit
- 77cf085
contentJson was sent to the translation engines as if it were a sentence. On 2026-10-22 one sentence of it came back from Russian with the sentence gone and the JSON broken, and from Tamil with the keys translated ("root" became "ரூட்"): all 8,550 stored translations were made that way, and none of the settings on either engine can repair it. It also made every request about 3.6 times longer than the prose it carried, which put the 31 longest articles over IndicTrans's 20,000-character limit (HTTP 413, permanent) and kept the sweep retrying Tamil and Russian on them for days. ArticleBody parses the document, sends each run of text as its own message, and writes the answers back into the same tree, so structure, formatting and links are never seen by an engine and the result is a document by construction. Code and inline code are left alone, edge spacing is kept, and a plain-text line that is exactly one block reuses that block's translation. A real production article went from 5,346 + 1,253 characters sent to 1,225, and round-trips exactly. A contentJson that is not a Lexical document is translated line by line. Existing translations are not touched by this commit.
