The whole blog reads in French

All sixty-three articles now exist in French alongside the English and German. They are written rather than machine-translated: the prose is rebuilt rather than transposed, and the search terms are the ones a French reader actually types — while the dates, the links, the code and every checked-on citation stay exactly as they were.

/fr/blog is now the whole index and not a shelf with four things on it: every piece that exists in English exists in French, at the same address with a /fr in front of it. German has the same. Spanish and Italian have four articles each, and are listed as four.

What a translation is here

Not a pass through a machine. The register is French, sentences are rebuilt where a literal one would read as English wearing French words, and the search terms are the phrases somebody types in French rather than the English phrases translated. The description is written to length for French, which runs longer than English, instead of being trimmed out of the original.

What is identical: the date the piece was written, every link target, every code block, every table, and every "checked on" citation, which keeps the date it was actually checked on. A translation is not a new article and is not dated as one.

The address does not change

/fr/blog/markdown-escaping is the French text of /blog/markdown-escaping. The language is the prefix and the slug after it is the same in every language, so a cross-reference between two articles does not depend on which language you happen to be reading. A link in the prose points at the French page when there is one and at the English page when there is not, which is why a half-finished language has no dead ends in it.

The tags are translated one word at a time and the same word every time — Conversion, Syntaxe, Publication, Sécurité, Automatisation, Code, Workflow. The filter chips on the index are built from whatever the articles say, so two spellings would make two chips.

What is still English

The API and the connector answer in one language, and that language is English. So does the page a share link opens, which the server renders for a reader it knows nothing about — there is nothing to pick a language from there but Accept-Language, and guessing wrong is worse than English.

And Spanish and Italian, for fifty-nine of the sixty-three. An article a language does not have is not listed in that language, not linked to, and claims no hreflang: a crawler follows an alternate that was never written and finds nothing, which is worse than claiming nothing at all.

Related: escaping characters in Markdown, and CommonMark, GFM and the flavours.