Skip to content

Translations pass May 2026 — voice, coverage, taxonomy#58

Open
lapenko wants to merge 7 commits into
mainfrom
translations-pass-2026-05
Open

Translations pass May 2026 — voice, coverage, taxonomy#58
lapenko wants to merge 7 commits into
mainfrom
translations-pass-2026-05

Conversation

@lapenko
Copy link
Copy Markdown
Contributor

@lapenko lapenko commented May 28, 2026

What this does

A comprehensive quality pass on translations and UI copy across all 18 locales. No new features, no structural changes — this is a content and accuracy sweep.


Tag taxonomy

  • Dropped Veterancy — the tag existed in EN but was referenced by zero organisations. Dead UI element.
  • Renamed Refugees → Refugee aid and Non-combat → Non-combat support — the bare nouns were ambiguous; the new values are clearer as filter labels.
  • Both renames are display-value only. YAML keys are unchanged, so no donation files needed touching.
  • Propagated to all 18 locale files with appropriate local-language equivalents.

Tag and chrome bug fixes

  • UA Refugees: 'Притулки' (Shelters — the building, not the people) → 'Допомога біженцям'
  • UA NGO: 'НДО' (wrong abbreviation) → 'НУО'
  • RU Refugees: 'Убежища' (same shelter/building false-friend) → 'Помощь беженцам'
  • DE 'Human Rights': 'Menschrechte' (typo, missing syllable) → 'Menschenrechte'
  • SW Credit Card value was the French string (copy-paste artefact) → 'Kreditkort'
  • RU Credit Card value was Romanian → 'Кредитная карта'
  • PL goal1 read "based on the full-scale invasion" — opposite meaning — → "to resist"
  • EN filterTo: 'To' (opaque) → 'Cause'; legalDesc1 rewritten for clarity
  • UA/RU/SW joinUs meant Subscribe or Follow us → corrected to Join us
  • Removed joinFormLink (International Legion referral) from all locales — the key had no component consumer

Donation card translations

Coverage was uneven (UA 54/54, DE 35/54, NL 26/54). This pass filled gaps and corrected drift across the nine primary locales.

Locale Before After Notes
UA 54/54 54/54 10 drift fixes — Prytula, Hospitallers, Women's Guard (40k corrected), others
DE 35/54 54/54 19 new cards; inclusive :innen forms; Revived Soldiers Ukraine title reverted from literal-translation calque
PL 36/54 54/54 18 new cards; na Ukrainiew Ukrainie sweep
ES 42/54 54/54 12 new cards; gender-neutral reframes throughout
FR 42/54 54/54 12 new cards; 3 calque title reversals (Retour en Vie → Come Back Alive, Agents Sanguins → Blood Agents, SOS Être → Vostok SOS)
SW 42/54 54/54 12 new cards
NL 26/54 50/54 24 new cards (4 are hidden orgs, skipped by policy)
RU 51/54 54/54 3 new cards + 10 drift fixes
JA 42/54 54/54 12 new cards
IT 35/54 50/54 drift + gap pass

KievKyiv corrected across all locales for org #30 (Vostok SOS).

All AI-drafted files carry # AI-assisted draft, pending native review at the top. UA was reviewed live with a native speaker.


Registration numbers


Docs

  • TRANSLATIONS_GUIDE.md — new voice and style reference for future contributors and AI assistants
  • TRANSLATIONS_REVIEW.md — full audit log: what changed, what was flagged, what needs native review

What this is not

  • No card content was invented. Facts not verifiable in the target language were left in English and flagged.
  • No hidden orgs were translated.
  • No structural or code changes. Component logic, routing, and styling are untouched.
  • 2022-era card framing (stale program names, older numbers) was not refreshed in this pass — logged in the review doc for a future round.

Spot-check suggestions

URL What to look for
/de Tag chips: Flüchtlingshilfe, Nicht-Kampf-Unterstützung, no Veterancy
/ua Tags: Допомога біженцям, НУО; filter label: Напрямок
/fr Org #1 title: Come Back Alive (not Retour en Vie)
/pl Org descriptions use w Ukrainie throughout
/ Filter label reads Cause; UNITED24 and Leleka cards show registration numbers

🤖 Generated with Claude Code

lapenko and others added 7 commits May 27, 2026 19:30
UA card descriptions had drifted from current EN. Rewrote 10 cards from
the current EN canonical (skipped #43 — already faithful).

Affected UA cards: #2 Prytula, #10 Hospitallers, #11 Pirogov,
#14 Women's Guard, #16 Army SOS (dropped dated 'Кропива' specific),
#22 Kyiv Independent, #33 Save the Children, #36 Nova Ukraine,
#47 Ed's friends, #54 Leleka Foundation.

Women's Guard count: EN file bumped from 30,000 to 40,000 (UA, RU, JA, SW
independently had 40,000 — confirmed with user as the current figure).
Synced DE, ES, FR, IT, LV, NL, PL, RO, TR to 40,000.

Co-Authored-By: Claude Opus 4.7 <[email protected]>
DE (German)
- Inclusivity sweep: male-generic plurals → :innen forms throughout
  (Soldat:innen, Spender:innen, Ukrainer:innen, Ärzt:innen, etc).
- Filled new cards for 13 visible orgs (hidden orgs skipped).
- Drift fixes on #6 Red Cross, #12 Molfar, #22 Kyiv Independent,
  #25 Razom, #29 Revived Soldiers.
- #29 title: 'Wiederbelebte Soldaten Ukraine' → 'Revived Soldiers Ukraine'
  (org has no real German name).
- Pre-existing grammar/voice nits left untouched per scope.

PL (Polish)
- 'na Ukrainie' → 'w Ukrainie' sweep (post-2022 sovereignty form,
  per user policy).
- Filled new cards for 12 visible orgs.
- Drift fixes on #6, #11, #12, #21, #36.
- #21 misfile bug: PL file in donations/21/ contained The Kyiv
  Independent's content inside the Texty.org.ua folder. Replaced
  with correct Texty translation; comment in file header notes
  the previous bug. Verified no other locale's #21 had the
  same misfile.
- Voice/calque kills: 'na twoich zasadach' → 'tak, jak ci wygodnie';
  'Dotrzyj do nas' → 'Napisz do nas'.

Hidden orgs (#13, #32, #35, #37, #38, #41, #45, #47, #49) skipped
per scope.

Co-Authored-By: Claude Opus 4.7 <[email protected]>
ES (Spanish)
- Inclusivity via gender-neutral noun phrases (Spanish has no clean :innen).
  'soldados ucranianos' → 'tropas ucranianas'; 'primeros intervinientes' →
  'personal de primera respuesta'; 'los defensores' → 'quienes defienden Ucrania'.
- Filled 12 visible orgs (43-54 minus the hidden ones).
- Drift fixes on #3, #10, #12, #22, #25, #28.
- Grammar fix: #47 'cuándo y dónde' → 'cuando y donde' (subordinate, no accent).

FR (French)
- Midpoint inclusive forms (Ukrainien·ne·s, vétéran·e·s, donateur·rice·s).
- Chrome switched vous → tu site-wide.
- Filled 12 visible orgs; drift fixes on #6, #10, #12, #22, #25.
- Proper-name calques reverted per guide: #1 'Retour en Vie' →
  'Come Back Alive', #23 'Agents Sanguins' → 'Blood Agents'.
- #15 description fix: 'Ligne de Vie Ukraine' → 'Lifeline Ukraine'
  (was inconsistent with the title).
- Pre-existing grammar bugs swept while in flight: #5 'gilets blindé' →
  'gilets blindés', 'caméras thermique' → 'caméras thermiques';
  #8 'établit' → 'établi'.

IT (Italian)
- Inclusivity via 'persone veterane', 'la infanzia', 'tropas ucraine'.
- Filled 12 visible orgs (43-54 minus hidden).
- Drift fixes on #6, #12, #22.

JA (Japanese)
- Polite form (です/ます) throughout.
- Filled 12 visible orgs.
- Drift rewrites on #2, #10, #12, #25, #28, #36 (pre-existing JA was
  notably stale relative to current EN's program specifics).

Co-Authored-By: Claude Opus 4.7 <[email protected]>
SW (Swedish) — biggest unlock by traffic (4.66%)
- Pre-existing was chrome-only. Filled 12 visible org cards.
- Drift fixes on #6, #10, #11, #12, #13, #22.

NL (Dutch)
- Coverage went from 26/54 → 50/54 (hidden orgs intentionally skipped).
- Drift fixes on #6, #12, #14, #22.

RU (Russia)
- Editorial decision: locale kept per user (outreach + SEO + real
  donor traffic; white-flag icon makes the site's position clear).
- Switched siteDescription/heroTitle/heroSubtitle from formal вы
  to informal ты, matching the rest of chrome.
- Drift fixes on #2, #10, #11, #16 (dropped dated 'Кропива' specific),
  #22, #27, #33, #36, #47.
- Filled new cards for #52, #53, #54.
- Fixed UA-twin bug: 'Убежища' for Refugees tag meant 'Shelters', not
  'Refugee aid'.

Co-Authored-By: Claude Opus 4.7 <[email protected]>
Site-wide Kiev → Kyiv sweep for org #30 (Vostok SOS). Affected files:
ES, FR, IT, NL, NO, RO, TR. Russified spelling is dated; modern usage
on a Ukraine solidarity site should be Kyiv.

FR #30 title bug: was 'SOS Être' (nonsense; 'Être' means 'to be'). The
org name is Vostok SOS — fixed in this commit's FR diff. Also fixed
'colonies de première ligne' (colonies has colonial baggage) →
'localités de première ligne'.

No other Kiev spellings remain in the repo.

Co-Authored-By: Claude Opus 4.7 <[email protected]>
TRANSLATIONS_GUIDE.md
- Voice and translation guide defining the site's editorial register:
  plain, direct, factual; wiki not campaign; informal address site-wide;
  inclusive by default per language; common-sense proper-name rule;
  hidden orgs skipped.

TRANSLATIONS_REVIEW.md
- Full audit log of what changed in this pass and what is flagged for
  native review.

core submodule bumped to include the chrome translation pass (commit
9e8d41f on translations-pass-2026-05 branch).

Also adds .claude/launch.json (preview dev server config; local dev
helper, not used in production).

Co-Authored-By: Claude Opus 4.7 <[email protected]>
Leleka Foundation (US 501(c)(3)): EIN 47-2377309 — surfaces on the card
with a Charity Navigator link.

UNITED24: EDRPOU 45127904 — verified against youcontrol.com.ua,
registered Jan 2023 as БО "ОБ'ЄДНАНІ 24 ДЛЯ УКРАЇНИ".

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant