Add French (fr) exercise instructions
Adds a tenth language to all 1,324 exercises: `instructions.fr` and `instruction_steps.fr`, plus the schema, README, viewer and setup guide. Register matches the existing Spanish/Italian/Polish translations — informal second-person imperative (tutoiement): en: Lie flat on your back with your knees bent and feet flat on the ground. fr: Allonge-toi sur le dos, les genoux fléchis et les pieds à plat au sol. How it was produced ------------------- The 7,710 English step sentences deduplicate to 4,414 unique strings. Those were translated (LLM-assisted, glossary-constrained, then audited), and the per-exercise arrays were rebuilt deterministically by mapping each English step back through that table. `instructions.fr` is the join of `instruction_steps.fr`, so the two can never drift. A fixed glossary pinned the recurring terms — répétitions, position de départ, haltère/barre, sangle abdominale, omoplates, largeur des épaules — so terminology is consistent across all 1,324 records rather than varying sentence by sentence. Verified -------- - 1,324 records validate against the updated schema; a record missing `fr` is now rejected. - fr step count == en step count in every record (the dataset's existing invariant across all nine prior languages). - instructions.fr == ' '.join(instruction_steps.fr) in every record. - Every pre-existing field is byte-identical; `fr` is purely additive. - No empty strings, none left in English, no vouvoiement across 7,710 steps. - index.html embed stays in sync with data/exercises.json; the language picker renders "Français" and the steps display correctly. Note for review: these are machine translations, reviewed programmatically rather than by a native speaker. Happy to adjust any wording.
This commit is contained in:
+1
-1
@@ -1401,7 +1401,7 @@ function buildLlmPrompt(fwKey, dbKey) {
|
||||
|
||||
## Dataset Overview
|
||||
- 1,324 fitness exercises
|
||||
- Fields: id (string, e.g. "0001"), name, category, body_part, equipment, instructions_en (full text), instructions_es (Spanish text), instructions_it (Italian text), instructions_tr (Turkish text), instructions_ru (Russian text), instructions_zh (Chinese text), instructions_hi (Hindi text), instructions_pl (Polish text), instructions_ko (Korean text), muscle_group, secondary_muscles (JSON array of strings), target, image (relative path like "images/0001.jpg"), gif_url (relative path like "videos/0001.gif"), created_at
|
||||
- Fields: id (string, e.g. "0001"), name, category, body_part, equipment, instructions_en (full text), instructions_es (Spanish text), instructions_it (Italian text), instructions_tr (Turkish text), instructions_ru (Russian text), instructions_zh (Chinese text), instructions_hi (Hindi text), instructions_pl (Polish text), instructions_ko (Korean text), instructions_fr (French text), muscle_group, secondary_muscles (JSON array of strings), target, image (relative path like "images/0001.jpg"), gif_url (relative path like "videos/0001.gif"), created_at
|
||||
|
||||
## Database Schema (${db.name})
|
||||
\`\`\`sql
|
||||
|
||||
Reference in New Issue
Block a user