Skip to content

Commit a19e36d

Browse files
Copilotgfauredev
andcommitted
Complete check_i18n.py and add 60 missing French exercise translations
Co-authored-by: gfauredev <19304085+gfauredev@users.noreply.github.com>
1 parent 21f7d7b commit a19e36d

61 files changed

Lines changed: 690 additions & 3 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

scripts/check_i18n.py

Lines changed: 42 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,14 @@
55
ROOT_DIR = Path(__file__).resolve().parent.parent
66
I18N_FILE = ROOT_DIR / "i18n.json"
77
SCHEMA_FILE = ROOT_DIR / "schema.json"
8+
EXERCISES_DIR = ROOT_DIR / "exercises"
9+
TRANSLATIONS_DIR = ROOT_DIR / "translations"
810

9-
def main():
11+
12+
def check_enum_translations():
1013
with open(SCHEMA_FILE, "r") as f:
1114
schema = json.load(f)
12-
15+
1316
with open(I18N_FILE, "r") as f:
1417
i18n = json.load(f)
1518

@@ -22,16 +25,52 @@ def main():
2225
"muscles": schema["properties"]["primaryMuscles"]["items"][0]["enum"]
2326
}
2427

28+
errors = 0
2529
for lang, translations in i18n.items():
2630
print(f"Checking language: {lang}")
2731
for key, values in enums.items():
2832
if key not in translations:
2933
print(f" Error: {key} missing in {lang}")
34+
errors += 1
3035
continue
31-
36+
3237
for val in values:
3338
if val not in translations[key]:
3439
print(f" Error: {key}.{val} missing translation in {lang}")
40+
errors += 1
41+
return errors
42+
43+
44+
def check_exercise_translations():
45+
exercise_ids = sorted(p.stem for p in EXERCISES_DIR.glob("*.json"))
46+
47+
total_errors = 0
48+
for lang_dir in sorted(TRANSLATIONS_DIR.iterdir()):
49+
if not lang_dir.is_dir():
50+
continue
51+
lang = lang_dir.name
52+
translated_ids = {p.stem for p in lang_dir.glob("*.json")}
53+
missing = [eid for eid in exercise_ids if eid not in translated_ids]
54+
if missing:
55+
print(f"\nMissing exercise translations for language '{lang}' ({len(missing)} missing):")
56+
for eid in missing:
57+
print(f" {eid}")
58+
total_errors += len(missing)
59+
else:
60+
print(f"\nAll {len(exercise_ids)} exercises translated for language '{lang}'.")
61+
return total_errors
62+
63+
64+
def main():
65+
enum_errors = check_enum_translations()
66+
exercise_errors = check_exercise_translations()
67+
68+
total = enum_errors + exercise_errors
69+
if total == 0:
70+
print("\nAll i18n checks passed.")
71+
else:
72+
print(f"\n{total} issue(s) found.")
73+
3574

3675
if __name__ == "__main__":
3776
main()
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"id": "it_band_and_glute_stretch",
3+
"name": "Étirement du fascia ilio-tibial et des fessiers",
4+
"instructions": [
5+
"Passez une ceinture, une corde ou un élastique autour d'un pied et croisez cette jambe tendue vers le côté opposé, allongé au sol. C'est votre position de départ.",
6+
"En gardant le pied levé, tirez sur la ceinture pour relever les orteils. Maintenez 10 à 20 secondes, puis répétez de l'autre côté."
7+
]
8+
}

translations/fr/sled_row.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"id": "sled_row",
3+
"name": "Rowing au traîneau",
4+
"instructions": [
5+
"Fixez deux poignées au traîneau à l'aide d'une corde ou d'une chaîne. Chargez le traîneau et reculez jusqu'à sentir une tension dans la ligne.",
6+
"Une poignée dans chaque main, genoux légèrement fléchis, tête et poitrine levées, bras tendus.",
7+
"Initiez le mouvement en fléchissant les coudes et rétractant les omoplates pour tirer le traîneau vers vous.",
8+
"Faites un ou deux pas en arrière pour retrouver la tension et répétez."
9+
]
10+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"id": "sledgehammer_swing",
3+
"name": "Balancement du marteau de forgeron",
4+
"instructions": [
5+
"Tenez-vous devant un pneu à environ 60 cm, en position décalée. Saisissez le marteau.",
6+
"Si vous êtes droitier, la main gauche se place en bas du manche et la droite plus haut près de la tête.",
7+
"En levant le marteau, la main droite glisse vers la tête ; en frappant vers le bas, les deux mains se rejoignent. Frappez aussi fort que possible contre le pneu.",
8+
"Répétez de l'autre côté."
9+
]
10+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"id": "smith_incline_shoulder_raise",
3+
"name": "Élévation des épaules inclinée à la machine Smith",
4+
"instructions": [
5+
"Placez un banc incliné sous la machine Smith. Réglez la barre à une hauteur atteignable les bras presque tendus allongé. Allongez-vous et alignez les épaules sous la barre.",
6+
"En prise pronée (paumes vers l'avant) à largeur d'épaules, déverrouillez la barre et tenez-la au-dessus de vous. C'est votre position de départ.",
7+
"En expirant, levez la barre jusqu'à extension complète des bras. La contraction se ressent au niveau des épaules.",
8+
"Après une seconde de pause, redescendez à la position de départ en inspirant.",
9+
"Répétez pour le nombre de répétitions prescrit.",
10+
"Replacez la barre sur le rack à la fin."
11+
]
12+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"id": "smith_machine_behind_the_back_shrug",
3+
"name": "Haussement d'épaules derrière le dos à la machine Smith",
4+
"instructions": [
5+
"Avec la barre au niveau des cuisses, chargez un poids approprié.",
6+
"Tenez-vous avec la barre derrière vous en prise pronée à largeur d'épaules, déverrouillez. Tenez-vous droit, bras tendus. C'est votre position de départ.",
7+
"Initiez le mouvement en haussant les épaules vers le haut sans fléchir les bras ni les poignets.",
8+
"Après une brève pause, ramenez le poids à la position de départ.",
9+
"Répétez pour le nombre de répétitions souhaité, puis raccrochez la barre."
10+
]
11+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"id": "smith_machine_bench_press",
3+
"name": "Développé couché à la machine Smith",
4+
"instructions": [
5+
"Placez un banc plat sous la machine Smith. Allongez-vous, saisissez la barre en prise pronée plus large que la largeur d'épaules, déverrouillez et tendez les bras. C'est votre position de départ.",
6+
"En inspirant, descendez lentement jusqu'à ce que la barre touche le milieu de la poitrine.",
7+
"Après une seconde de pause, remontez la barre en expirant en contractant les pectoraux. Verrouillez les bras, maintenez une seconde, puis redescendez lentement.",
8+
"Répétez pour le nombre de répétitions prescrit.",
9+
"Raccrochez la barre sur le rack à la fin."
10+
]
11+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"id": "smith_machine_bent_over_row",
3+
"name": "Rowing penché à la machine Smith",
4+
"instructions": [
5+
"Réglez la barre à environ 5 cm sous les genoux.",
6+
"Fléchissez légèrement les genoux et inclinez le torse vers l'avant en gardant le dos droit et la tête levée.",
7+
"Saisissez la barre en prise pronée et déverrouillez-la. Laissez-la pendre, bras perpendiculaires au sol. C'est votre position de départ.",
8+
"En expirant, tirez la barre vers le haut en gardant les coudes proches du corps sans solliciter les avant-bras. En haut, contractez le dos une seconde.",
9+
"Redescendez lentement en inspirant.",
10+
"Répétez pour le nombre de répétitions recommandé."
11+
]
12+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"id": "smith_machine_calf_raise",
3+
"name": "Extension des mollets debout à la machine Smith",
4+
"instructions": [
5+
"Placez un bloc ou un disque sous la barre. Réglez la barre à la bonne hauteur. Posez les avant-pieds sur le bloc et placez la barre sur l'arrière des épaules.",
6+
"Saisissez la barre des deux mains et déverrouillez en vous redressant. C'est votre position de départ.",
7+
"Montez sur la pointe des pieds en contractant les mollets. Genoux tendus. Maintenez une seconde.",
8+
"Redescendez lentement en inspirant.",
9+
"Répétez pour le nombre de répétitions recommandé."
10+
]
11+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"id": "smith_machine_close_grip_bench_press",
3+
"name": "Développé couché prise serrée à la machine Smith",
4+
"instructions": [
5+
"Placez un banc plat sous la machine Smith. Allongez-vous et saisissez la barre en prise pronée à largeur d'épaules. Déverrouillez et tendez les bras. C'est votre position de départ.",
6+
"En inspirant, descendez lentement jusqu'à toucher le milieu de la poitrine. Gardez les coudes proches du corps pour maximiser l'implication des triceps.",
7+
"Après une seconde, remontez en expirant en poussant avec les triceps. Verrouillez, maintenez une seconde, puis redescendez lentement.",
8+
"Répétez pour le nombre de répétitions prescrit.",
9+
"Raccrochez la barre à la fin."
10+
]
11+
}

0 commit comments

Comments
 (0)