Repository navigation
Exercise-name packs for it/de/es/fr plus two per-language English-name toggles - #254
Merged
Merged
Conversation
Contributor
Author
|
Implement #253 |
1 task done
This was referenced Sep 20, 2026
ilirhushi
added a commit
to ilirhushi/openGym
that referenced
this pull request
Sep 20, 2026
The upstream name packs (DuarteSantos8#245, DuarteSantos8#254, DuarteSantos8#266) only cover the 1,324 exercises shared with upstream; this fork's own 9 additions (landmine row, pike push-up, nordic hamstring curl, meadows row, bird dog, band clamshell, deficit deadlift, band pull-apart, copenhagen plank) had no translation in any of the newly-added languages, failing each pack's completeness test.
ilirhushi
added a commit
to ilirhushi/openGym
that referenced
this pull request
Sep 20, 2026
…e toggles Adds complete exercise-name packs for Italian, German, Spanish and French from authored JSON sources, generated by fail-fast build scripts and covered by unit tests asserting full catalogue coverage plus per-language translation rules. Languages without a pack keep today's rendering. Alongside the existing per-language "English name in parentheses" toggle, adds an "English names only" toggle that replaces the translated name with the original English one; while it is on, the parenthetical toggle is disabled for that language. The two Settings labels are translated in all 14 locale packs, with new locale-coverage tests. No new dependencies.
giulioleuci
force-pushed
the
exercises-name
branch
from
September 21, 2026 09:53
a15d222 to
9ea8156
Compare
DuarteSantos8
added a commit
that referenced
this pull request
Sep 28, 2026
…anish and Russian packs too, an English-only name is title-cased again, and the stray ISSUE_ON_GITHUB.md is gone
Owner
|
Thanks @giulioleuci. From this PR the Italian and French name packs and the two per-language toggles (English in parentheses / English only) are in v1.3.9. I didn't take your German and Spanish packs: German comes from #290 (@mkoester, partly native-reviewed) and Spanish from #245 (@AlexRomero12, opened first). Your toggles work with those packs and with Russian (#266) as well. I also removed the stray If you know an Italian or French speaker who could read through the names, a review PR would be very welcome. Released in v1.3.9: https://github.com/DuarteSantos8/openGym/releases/tag/v1.3.9 |
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.
Closes #253
Summary
Adds complete exercise-name packs for Italian (it), German (de), Spanish (es) and French (fr) — each translating the full 1,324-exercise built-in catalogue — plus two independent per-language toggles in Settings:
Languages that already had translated packs (
pt-BR,hu) are unaffected; each language remembers its own choice;de-CHkeeps inheriting the German pack through the existingderivePacktransform (ß→ss), so no extra pack to maintain.What changes
Exercise-name packs — every pack is generated by a build script from an authored JSON source (
scripts/exercise-name-sources/*.json→scripts/build-*-exercise-names.mjs→frontend/src/exercise-names/*.js). The scripts fail hard on unknown ids, empty values or an incomplete count. Each pack ships a unit test asserting full catalogue coverage plus per-language translation rules (barbell→Langhantel/barra/barre/... dumbbell→Kurzhantel/mancuerna/haltère/... etc.).Per-language "(English name)" toggle (
#253, point 2) — the English parenthetical that follows translated exercise names is now a per-language user setting:DEF.enParens = {}) in the store, defaulting to shown so existing profiles keep today's rendering;New "English names only" per-language toggle — drops the translation entirely and shows the original English name. Since the parenthetical is redundant in this mode, the "English exercise names" switch is disabled (greyed out) while it is active. The two labels are translated in all 14 packs.
i18n — the new Settings labels are translated in all 14 locale packs (including a Brazilian-Portuguese override), with a
locale-coverage.test.jsasserting the keys exist and are non-blank in every shipped pack.Notes on translations
The exercise names in the
it/de/es/frpacks were translated from English by an LLM (OpenCode Zen), then reviewed against the exercise catalogue. Please give them a native-speaker pass before relying on them in production.Tests
Full frontend suite passes: 131 files / 1,611 tests (same Node 22 runtime as the CI gate). No new dependencies.
Issue
Fixes #253 — exercise-name packs for
it/de/es/frplus the per-language "English name in parentheses" toggle and a companion "English names only" toggle.