Merge pull request #44 from umutcakirai/add-french-instructions
Add French (fr) exercise instructions
This commit is contained in:
5 files changed
+13035
-1340
No files matched your search
@@ -11,12 +11,12 @@
|
||||
<img src="videos/0334-DsgkuIt.gif" width="120" alt="dumbbell lateral raise" />
|
||||
</p>
|
||||
|
||||
**A comprehensive, ready-to-use fitness exercise dataset with 1,324 exercises — each with an animation GIF, 180×180 thumbnail image, category, body-part, equipment, target and muscle-group data, and step-by-step instructions in 9 languages (English, Spanish, Italian, Turkish, Russian, Chinese, Hindi, Polish, Korean).**
|
||||
**A comprehensive, ready-to-use fitness exercise dataset with 1,324 exercises — each with an animation GIF, 180×180 thumbnail image, category, body-part, equipment, target and muscle-group data, and step-by-step instructions in 10 languages (English, Spanish, Italian, Turkish, Russian, Chinese, Hindi, Polish, Korean, French).**
|
||||
|
||||
[](data/exercises.json)
|
||||
[](videos/)
|
||||
[](images/)
|
||||
[](#-overview)
|
||||
[](#-overview)
|
||||
[](https://github.com/hasaneyldrm/logpress-public)
|
||||
[](LICENSE)
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
|
||||
- 1,324 exercises with category, body-part, equipment, target and muscle-group data
|
||||
- an animation GIF + 180×180 thumbnail for every exercise (media © [Gym visual](https://gymvisual.com/) — see [License](#-license--use))
|
||||
- step-by-step instructions in 9 languages (🇬🇧 English, 🇪🇸 Spanish, 🇮🇹 Italian, 🇹🇷 Turkish, 🇷🇺 Russian, 🇨🇳 Chinese, 🇮🇳 Hindi, 🇵🇱 Polish, 🇰🇷 Korean)
|
||||
- step-by-step instructions in 10 languages (🇬🇧 English, 🇪🇸 Spanish, 🇮🇹 Italian, 🇹🇷 Turkish, 🇷🇺 Russian, 🇨🇳 Chinese, 🇮🇳 Hindi, 🇵🇱 Polish, 🇰🇷 Korean, 🇫🇷 French)
|
||||
- the interactive browser (`index.html`) and developer setup guide (`setup.html`)
|
||||
|
||||
---
|
||||
@@ -71,7 +71,7 @@ Each exercise entry contains:
|
||||
| Muscle Group | Supporting / synergist muscles |
|
||||
| Equipment | Equipment required (or `body weight` for bodyweight) |
|
||||
| Instructions | Step-by-step instructions for each exercise |
|
||||
| Available Languages | 🇬🇧 English · 🇪🇸 Spanish · 🇮🇹 Italian · 🇹🇷 Turkish · 🇷🇺 Russian · 🇨🇳 Chinese · 🇮🇳 Hindi · 🇵🇱 Polish · 🇰🇷 Korean |
|
||||
| Available Languages | 🇬🇧 English · 🇪🇸 Spanish · 🇮🇹 Italian · 🇹🇷 Turkish · 🇷🇺 Russian · 🇨🇳 Chinese · 🇮🇳 Hindi · 🇵🇱 Polish · 🇰🇷 Korean · 🇫🇷 French |
|
||||
| Media | 180×180 thumbnail (`image`) + animation GIF (`gif_url`) per exercise — media © Gym visual, see [License](#-license--use) |
|
||||
|
||||
---
|
||||
@@ -88,7 +88,7 @@ A fully client-side exercise explorer with:
|
||||
- Live search across all 1,324 exercises
|
||||
- Filter by category, equipment, and target muscle
|
||||
- Infinite scroll grid
|
||||
- Click any card to see full details and instructions in English, Spanish, Italian, Turkish, Russian, Chinese, Hindi, Polish, or Korean
|
||||
- Click any card to see full details and instructions in English, Spanish, Italian, Turkish, Russian, Chinese, Hindi, Polish, Korean, or French
|
||||
|
||||
### `setup.html` — Developer Setup Guide
|
||||
|
||||
@@ -131,7 +131,7 @@ exercises-dataset/
|
||||
| Metric | Count |
|
||||
|---|---|
|
||||
| Total Exercises | **1,324** |
|
||||
| Instruction Languages | **9** |
|
||||
| Instruction Languages | **10** |
|
||||
|
||||
### Exercises by Body Part
|
||||
|
||||
@@ -189,7 +189,8 @@ Each record in `data/exercises.json` follows this structure. A machine-readable
|
||||
| `instructions.hi` | `string` | Full step-by-step instructions in Hindi |
|
||||
| `instructions.pl` | `string` | Full step-by-step instructions in Polish |
|
||||
| `instructions.ko` | `string` | Full step-by-step instructions in Korean |
|
||||
| `instruction_steps.<lang>` | `array[string]` | Same instructions split into an ordered array of steps, per language (`en`, `es`, `it`, `tr`, `ru`, `zh`, `hi`, `pl`, `ko`) |
|
||||
| `instructions.fr` | `string` | Full step-by-step instructions in French |
|
||||
| `instruction_steps.<lang>` | `array[string]` | Same instructions split into an ordered array of steps, per language (`en`, `es`, `it`, `tr`, `ru`, `zh`, `hi`, `pl`, `ko`, `fr`) |
|
||||
| `muscle_group` | `string` | Primary synergist muscle group |
|
||||
| `secondary_muscles` | `array[string]` | Additional muscles involved |
|
||||
| `target` | `string` | Primary target muscle (e.g. `"biceps"`, `"pectoralis major"`) |
|
||||
@@ -217,7 +218,8 @@ Each record in `data/exercises.json` follows this structure. A machine-readable
|
||||
"zh": "平躺,膝盖弯曲,双脚平放在地上。...",
|
||||
"hi": "अपने घुटनों को मोड़कर और पैरों को ज़मीन पर सपाट रखते हुए अपनी पीठ के बल लेट जाएँ।...",
|
||||
"pl": "Połóż się płasko na plecach, ugnij kolana i oprzyj stopy płasko na pod ...",
|
||||
"ko": "등을 바닥에 누워 무릎을 구부리고 발을 바닥에 붙입니다. ..."
|
||||
"ko": "등을 바닥에 누워 무릎을 구부리고 발을 바닥에 붙입니다. ...",
|
||||
"fr": "Allonge-toi sur le dos, les genoux fléchis et les pieds à plat au sol. ..."
|
||||
},
|
||||
"muscle_group": "hip flexors",
|
||||
"secondary_muscles": ["hip flexors", "lower back"],
|
||||
@@ -333,6 +335,7 @@ print(ex["instructions"]["tr"]) # Turkish
|
||||
print(ex["instructions"]["ru"]) # Russian
|
||||
print(ex["instructions"]["zh"]) # Chinese
|
||||
print(ex["instructions"]["hi"]) # Hindi
|
||||
print(ex["instructions"]["fr"]) # French
|
||||
```
|
||||
|
||||
### Python — Load with Pandas
|
||||
@@ -384,6 +387,7 @@ console.log(ex.instructions.zh); // Chinese
|
||||
console.log(ex.instructions.hi); // Hindi
|
||||
console.log(ex.instructions.pl); // Polish
|
||||
console.log(ex.instructions.ko); // Korean
|
||||
console.log(ex.instructions.fr); // French
|
||||
```
|
||||
|
||||
### TypeScript — Type-safe Usage
|
||||
@@ -405,6 +409,7 @@ interface Exercise {
|
||||
hi: string;
|
||||
pl: string;
|
||||
ko: string;
|
||||
fr: string;
|
||||
};
|
||||
muscle_group: string;
|
||||
secondary_muscles: string[];
|
||||
|
||||
+13006
-1324
File diff suppressed because it is too large.
Load diff
@@ -17,9 +17,13 @@
|
||||
"it": { "type": "string" },
|
||||
"tr": { "type": "string" },
|
||||
"ru": { "type": "string" },
|
||||
"zh": { "type": "string" }
|
||||
"zh": { "type": "string" },
|
||||
"hi": { "type": "string" },
|
||||
"pl": { "type": "string" },
|
||||
"ko": { "type": "string" },
|
||||
"fr": { "type": "string" }
|
||||
},
|
||||
"required": ["en", "es", "it", "tr", "ru", "zh"],
|
||||
"required": ["en", "es", "it", "tr", "ru", "zh", "hi", "pl", "ko", "fr"],
|
||||
"additionalProperties": { "type": "string" }
|
||||
},
|
||||
"languageStepsMap": {
|
||||
@@ -31,9 +35,13 @@
|
||||
"it": { "$ref": "#/$defs/steps" },
|
||||
"tr": { "$ref": "#/$defs/steps" },
|
||||
"ru": { "$ref": "#/$defs/steps" },
|
||||
"zh": { "$ref": "#/$defs/steps" }
|
||||
"zh": { "$ref": "#/$defs/steps" },
|
||||
"hi": { "$ref": "#/$defs/steps" },
|
||||
"pl": { "$ref": "#/$defs/steps" },
|
||||
"ko": { "$ref": "#/$defs/steps" },
|
||||
"fr": { "$ref": "#/$defs/steps" }
|
||||
},
|
||||
"required": ["en", "es", "it", "tr", "ru", "zh"],
|
||||
"required": ["en", "es", "it", "tr", "ru", "zh", "hi", "pl", "ko", "fr"],
|
||||
"additionalProperties": { "$ref": "#/$defs/steps" }
|
||||
},
|
||||
"steps": {
|
||||
|
||||
+3
-3
@@ -1169,7 +1169,7 @@
|
||||
</div>
|
||||
|
||||
<script>
|
||||
const EXERCISES = [{"id":"0001","name":"3/4 sit-up","category":"waist","body_part":"waist","equipment":"body weight","instructions":{"en":"Lie flat on your back with your knees bent and feet flat on the ground. Place your hands behind your head with your elbows pointing outwards. Engaging your abs, slowly lift your upper body off the ground, curling forward until your torso is at a 45-degree angle. Pause for a moment at the top, then slowly lower your upper body back down to the starting position. Repeat for the desired number of repetitions.","it":"Sdraiati sulla schiena con le ginocchia piegate e i piedi appoggiati a terra. Metti le mani dietro la testa con i gomiti rivolti verso l'esterno. Coinvolgendo gli addominali, solleva lentamente la parte superiore del corpo da terra, piegandoti in avanti finché il busto non forma un angolo di 45 gradi. Fermati per un momento in alto, quindi abbassa lentamente la parte superiore del corpo fino alla posizione di partenza. Ripetere per il numero di ripetizioni desiderato.","tr":"Dizleriniz bükülü ve ayaklarınız yere düz basacak şekilde sırt üstü yatın. Ellerinizi başınızın arkasına, dirsekleriniz dışarı bakacak şekilde yerleştirin. Karın kaslarınızı devreye sokarak üst bedeninizi yavaşça yerden kaldırın ve gövdeniz 45 derecelik bir açıya gelene kadar öne doğru kıvrılın. Tepe noktasında bir an duraklayın, ardından üst vücudunuzu yavaşça başlangıç pozisyonuna indirin. İstenilen sayıda tekrar için tekrarlayın.","es":"Túmbate sobre tu espalda con las rodillas flexionadas y los pies apoyados en el suelo. Coloca las manos detrás de la cabeza con los codos apuntando hacia afuera. Activando el abdomen, levanta lentamente la parte superior del cuerpo del suelo, curvándote hacia adelante hasta que tu torso forme un ángulo de 45 grados. Haz una pausa por un momento en la parte superior, luego baja lentamente la parte superior del cuerpo de vuelta a la posición inicial. Repite el número de repeticiones deseado.","ru":"Лягте на спину, согните колени и поставьте ступни на землю. Положите руки за голову локтями наружу. Включив пресс, медленно поднимите верхнюю часть тела от земли, наклоняясь вперед, пока туловище не окажется под углом 45 градусов. Задержитесь на мгновение в верхней точке, затем медленно опустите верхнюю часть тела обратно в исходное положение. Повторите необходимое количество повторений.","zh":"平躺,膝盖弯曲,双脚平放在地上。 将双手放在脑后,肘部朝外。 收紧腹肌,慢慢将上半身抬离地面,向前卷曲,直到躯干呈 45 度角。 在顶部停顿片刻,然后慢慢将上半身放回起始位置。 重复所需的重复次数。","hi":"अपने घुटनों को मोड़कर और पैरों को ज़मीन पर सपाट रखते हुए अपनी पीठ के बल लेट जाएँ। अपने हाथों को अपने सिर के पीछे रखें और अपनी कोहनियों को बाहर की ओर रखें। अपने पेट को शामिल करते हुए, धीरे-धीरे अपने ऊपरी शरीर को जमीन से ऊपर उठाएं, आगे की ओर झुकें जब तक कि आपका धड़ 45 डिग्री के कोण पर न आ जाए। शीर्ष पर एक पल के लिए रुकें, फिर धीरे-धीरे अपने ऊपरी शरीर को वापस प्रारंभिक स्थिति में ले आएं। दोहराव की वांछित संख्या के लिए दोहराएँ।","pl":"Połóż się płasko na plecach, ugnij kolana i oprzyj stopy płasko na podłodze. Umieść dłonie za głową, kierując łokcie na zewnątrz. Angażując mięśnie brzucha, powoli unieś górną część ciała nad podłogę, zwijając się do przodu, aż tułów znajdzie się pod kątem 45 stopni. Zatrzymaj się na chwilę w górnej pozycji, a następnie powoli opuść górną część ciała z powrotem do pozycji wyjściowej. Powtórz zalecaną liczbę razy.","ko":"등을 바닥에 누워 무릎을 구부리고 발을 바닥에 붙입니다. 손을 머리 뒤에 깍지껴 팔꿈치가 바깥쪽을 향하도록 합니다. 복근을 사용하여 천천히 윗몸을 들어 올려 몸통이 45도 각도가 될 때까지 앞쪽으로 구부립니다. 맨 위에서 잠깐 멈췄다가 천천히 윗몸을 시작 자세로 내립니다. Line truncated
|
||||
const EXERCISES = [{"id":"0001","name":"3/4 sit-up","category":"waist","body_part":"waist","equipment":"body weight","instructions":{"en":"Lie flat on your back with your knees bent and feet flat on the ground. Place your hands behind your head with your elbows pointing outwards. Engaging your abs, slowly lift your upper body off the ground, curling forward until your torso is at a 45-degree angle. Pause for a moment at the top, then slowly lower your upper body back down to the starting position. Repeat for the desired number of repetitions.","it":"Sdraiati sulla schiena con le ginocchia piegate e i piedi appoggiati a terra. Metti le mani dietro la testa con i gomiti rivolti verso l'esterno. Coinvolgendo gli addominali, solleva lentamente la parte superiore del corpo da terra, piegandoti in avanti finché il busto non forma un angolo di 45 gradi. Fermati per un momento in alto, quindi abbassa lentamente la parte superiore del corpo fino alla posizione di partenza. Ripetere per il numero di ripetizioni desiderato.","tr":"Dizleriniz bükülü ve ayaklarınız yere düz basacak şekilde sırt üstü yatın. Ellerinizi başınızın arkasına, dirsekleriniz dışarı bakacak şekilde yerleştirin. Karın kaslarınızı devreye sokarak üst bedeninizi yavaşça yerden kaldırın ve gövdeniz 45 derecelik bir açıya gelene kadar öne doğru kıvrılın. Tepe noktasında bir an duraklayın, ardından üst vücudunuzu yavaşça başlangıç pozisyonuna indirin. İstenilen sayıda tekrar için tekrarlayın.","es":"Túmbate sobre tu espalda con las rodillas flexionadas y los pies apoyados en el suelo. Coloca las manos detrás de la cabeza con los codos apuntando hacia afuera. Activando el abdomen, levanta lentamente la parte superior del cuerpo del suelo, curvándote hacia adelante hasta que tu torso forme un ángulo de 45 grados. Haz una pausa por un momento en la parte superior, luego baja lentamente la parte superior del cuerpo de vuelta a la posición inicial. Repite el número de repeticiones deseado.","ru":"Лягте на спину, согните колени и поставьте ступни на землю. Положите руки за голову локтями наружу. Включив пресс, медленно поднимите верхнюю часть тела от земли, наклоняясь вперед, пока туловище не окажется под углом 45 градусов. Задержитесь на мгновение в верхней точке, затем медленно опустите верхнюю часть тела обратно в исходное положение. Повторите необходимое количество повторений.","zh":"平躺,膝盖弯曲,双脚平放在地上。 将双手放在脑后,肘部朝外。 收紧腹肌,慢慢将上半身抬离地面,向前卷曲,直到躯干呈 45 度角。 在顶部停顿片刻,然后慢慢将上半身放回起始位置。 重复所需的重复次数。","hi":"अपने घुटनों को मोड़कर और पैरों को ज़मीन पर सपाट रखते हुए अपनी पीठ के बल लेट जाएँ। अपने हाथों को अपने सिर के पीछे रखें और अपनी कोहनियों को बाहर की ओर रखें। अपने पेट को शामिल करते हुए, धीरे-धीरे अपने ऊपरी शरीर को जमीन से ऊपर उठाएं, आगे की ओर झुकें जब तक कि आपका धड़ 45 डिग्री के कोण पर न आ जाए। शीर्ष पर एक पल के लिए रुकें, फिर धीरे-धीरे अपने ऊपरी शरीर को वापस प्रारंभिक स्थिति में ले आएं। दोहराव की वांछित संख्या के लिए दोहराएँ।","pl":"Połóż się płasko na plecach, ugnij kolana i oprzyj stopy płasko na podłodze. Umieść dłonie za głową, kierując łokcie na zewnątrz. Angażując mięśnie brzucha, powoli unieś górną część ciała nad podłogę, zwijając się do przodu, aż tułów znajdzie się pod kątem 45 stopni. Zatrzymaj się na chwilę w górnej pozycji, a następnie powoli opuść górną część ciała z powrotem do pozycji wyjściowej. Powtórz zalecaną liczbę razy.","ko":"등을 바닥에 누워 무릎을 구부리고 발을 바닥에 붙입니다. 손을 머리 뒤에 깍지껴 팔꿈치가 바깥쪽을 향하도록 합니다. 복근을 사용하여 천천히 윗몸을 들어 올려 몸통이 45도 각도가 될 때까지 앞쪽으로 구부립니다. 맨 위에서 잠깐 멈췄다가 천천히 윗몸을 시작 자세로 내립니다. Line truncated
|
||||
|
||||
// ── State ──────────────────────────────────────────
|
||||
const state = {
|
||||
@@ -1525,8 +1525,8 @@
|
||||
|
||||
// Instructions — format is always keyed by language code
|
||||
modalInstr.innerHTML = '';
|
||||
const LANG_LABELS = { en: 'English', es: 'Español', it: 'Italiano', tr: 'Türkçe', ru: 'Русский', zh: '简体中文', hi: 'हिन्दी', pl: 'Polski', ko: '한국어' };
|
||||
const langs = ['en', 'es', 'it', 'tr', 'ru', 'zh', 'hi', 'pl', 'ko']
|
||||
const LANG_LABELS = { en: 'English', es: 'Español', it: 'Italiano', tr: 'Türkçe', ru: 'Русский', zh: '简体中文', hi: 'हिन्दी', pl: 'Polski', ko: '한국어', fr: 'Français' };
|
||||
const langs = ['en', 'es', 'it', 'tr', 'ru', 'zh', 'hi', 'pl', 'ko', 'fr']
|
||||
.map(code => ({ code, steps: ex.instruction_steps?.[code] ?? [] }))
|
||||
.filter(l => l.steps.length > 0);
|
||||
|
||||
|
||||
+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