Fix structural defects and register in existing translations - #347
Merged
Conversation
Reviewed all 882 translated news posts against their English sources with an automated checker, then corrected them per language. Files with errors: 221 -> 112. Total errors: 474 -> 207. Everything still failing is an abridged legacy translation (107 Hebrew, 1 ru, 1 tr) that needs translating rather than proofreading. Systemic defects found and fixed across many languages: - 2025-10-07/450: translations described a superseded release. Rebuilt from the English source in 14 languages. - 2025-12-31/500: all three #### section headings dropped, collapsing the post into one bullet list. Restored in ~25 languages. - 2025-09-15/440: the Organic Maps brand dropped from the download line in ~20 languages. - Contributor names transliterated out of Latin script (55 across 4 files); one rendered Viktar Havaka as a different name entirely. Also: register aligned to policy (informal everywhere except ru/uk/be, which use the polite form), project terminology applied from translation_glossary.tsv, brands restored to Latin and unquoted, native quotation marks, and a number of outright mistranslations - Welsh rendered GTFS "feed" as animal feed, Czech rendered zipline as cable car, Greek rendered antimeridian zoom-out as zoom-in. Signed-off-by: Alexander Borsuk <me@alex.bio>
Translated posts linked `@/donate/index.LANG.md` correctly but left `@/contribute/index.md` and similar targets in English, sending readers of a translated page to the English version. Rewrites every `@/…/index.md` reference in a translated file to `@/…/index.LANG.md` when that translation exists, leaving it in English when it does not. 265 links across 32 languages. Signed-off-by: Alexander Borsuk <me@alex.bio>
The 14 translations rebuilt from the English source lost their slug: field and carried a placeholder date, so Zola derived their URL from the translated title instead of the shared slug, and they sorted differently from their siblings. All 18 intact translations in that folder use the English slug verbatim, so the same slug is restored here, and date: is aligned to the source's 2025-10-07T07:20:28+00:00 (all 32 now agree). Signed-off-by: Alexander Borsuk <me@alex.bio>
<omaps.app/api> has no URL scheme, so markdown renders it as literal text rather than a link. The English source uses <https://omaps.app/api>. A corpus-wide scan found this to be the only occurrence. Signed-off-by: Alexander Borsuk <me@alex.bio>
CLAUDE.md forbids rendering amounts like 5K as 5.000. Six translations of 2025-12-31/500 already used K notation throughout but had expanded a handful of values to zeroes, so the same post mixed both styles - e.g. German read "1.7K auf Reddit ... mit 100.000 jährlichen Aufrufen". 13 values restored to each file's own K style and decimal separator (de 5, ca 6, it 1, nl 1). Literal counts that are not K-derived, such as 1.244 forks and 12.411 stars, are untouched. Ten further languages (cs, es, et, eu, gl, id, lt, oc, sv, tr) expand every value and use no K notation at all. Making those consistent is a per-language style choice between K and a local 'thousand' form, so they are left for a separate decision. Signed-off-by: Alexander Borsuk <me@alex.bio>
Occitan wording drifted across files (carta/mapa, marcadors/marcapaginas/marcas) with nothing in the glossary to settle it; the same gap existed for ca, gl, eu, cy and af. 79 term pairs mined from the site's own proofread translations with tmp/glossary_extract.py. DeepL has no glossary support for these languages, so they surface through get_review_terms() as guidance for the proofreading pass rather than as substitutions. Three ambiguous cases are listed under NEEDS NATIVE REVIEW instead of guessed: oc bookmark (marcapaginas, the book sense, vs marcadors, the map-marker sense used elsewhere in the project), eu crash, and eu track. Signed-off-by: Alexander Borsuk <me@alex.bio>
109 translations (107 Hebrew, 1 ru, 1 tr) failed the structural checker. They were not abridged as first assumed: 108 of them already contained their full translation, but the markdown had collapsed - bullet lists joined onto one line with ' - ' separators, paragraphs merged, and '**iOS**:' sub-headings absorbed into the preceding bullet. They were re-flowed onto each source's line structure with the existing wording preserved. Two of the five passes verified character-level that nothing was lost, by subsequence check against HEAD. Only the Turkish file needed new text (7 lines including a whole iOS section), costing ~413 DeepL characters against the ~161,000 a wholesale re-translation would have used. Defects found and fixed along the way: - OSM tags rendered as prose, which made changelogs meaningless: craft=*, parking_entrance, railway-rail-*, a healthcare=* value list. - A crypto wallet code block missing entirely from the donation post, and a SEPA table flattened onto one line. - Links reduced to bare parenthesised URLs in seven files. - Arabic letters spliced into a Hebrew word. - A bold span that could not open under CommonMark flanking rules. Also restores product brands and contributor names that had been translated or transliterated - 'Organic Maps' as the Hebrew phrase for 'the organic maps', and ~60 credited contributors across he, ar, fa-IR and ru whose names appeared in Latin elsewhere in the same file. All 882 news translations now pass the checker with zero errors. Signed-off-by: Alexander Borsuk <me@alex.bio>
Eleven Persian FAQ pages and the news section index rendered the brand as
نقشههای ارگانیک ('the organic maps'), against 39 Persian pages that keep it in
Latin. One file used both forms.
Slugs are untouched: content/faq/editing/organic-maps-map-editing/index.fa-IR.md
keeps the translated brand inside its slug, because that is a published URL.
Signed-off-by: Alexander Borsuk <me@alex.bio>
biodranik
force-pushed
the
translation-review
branch
from
August 8, 2026 10:48
f28e452 to
582040d
Compare
Deploying organicmaps with
|
| Latest commit: |
16d91da
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://a9cdab15.organicmaps.pages.dev |
| Branch Preview URL: | https://translation-review.organicmaps.pages.dev |
Signed-off-by: Alexander Borsuk <me@alex.bio>
biodranik
force-pushed
the
translation-review
branch
from
August 8, 2026 15:31
d90c152 to
7f944ed
Compare
- 2025-12-31/500 de mixed singular and plural address, switching number mid-sentence in "Dank euch … folge uns, falls du…". Settled on the plural euch/ihr, already the majority form in the file and the natural choice for community-wide thanks, matching how pt, ca and cs handled the same post. - 2022-11-30/111 tr kept the formal karşınızda in both title and body while the rest of the sentence had been converted to informal. Now karşında. Signed-off-by: Alexander Borsuk <me@alex.bio>
biodranik
force-pushed
the
translation-review
branch
from
August 8, 2026 15:31
7f944ed to
16d91da
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.