Add Polish and Korean exercise instructions

Incorporates the translation content from two external PRs onto current main
(their branches were based on a pre-media-restore history with no common
ancestor, so applied programmatically rather than merged):

- Polish (pl) from #25 (Dawid Matyjasik) — as submitted.
- Korean (ko) from #27 (SeungTaek Lim) — normalized to the dataset convention:
  only nested instructions.ko / instruction_steps.ko were kept. The PR's extra
  flat top-level *_ko metadata fields (name_ko, target_ko, etc.) were dropped
  because they are inconsistent with every other language and would violate
  data/exercises.schema.json (additionalProperties: false).

Updates data/exercises.json (all 1,324 records), the embedded EXERCISES blob
and SQL export in index.html, the SQL schemas / INSERT builder / LLM prompt in
setup.html, and README language references (7 -> 9 languages). Change is purely
additive: stripping pl+ko reproduces the previous data byte-for-byte.

Co-Authored-By: Dawid Matyjasik <63721806+dawidmatyjasik@users.noreply.github.com>
Co-Authored-By: SeungTaek Lim <61047602+namest504@users.noreply.github.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Hasan Emir Yıldırım
2026-07-09 21:10:06 +03:00
co-authored by Dawid Matyjasik SeungTaek Lim Claude Opus 4.8
parent 39348bf821
commit 118e4bd6b1
4 changed files with 24736 additions and 1340 deletions
+14 -2
View File
@@ -749,6 +749,8 @@ const DB_SQL = {
instructions_ru NVARCHAR(MAX),
instructions_zh NVARCHAR(MAX),
instructions_hi NVARCHAR(MAX),
instructions_pl NVARCHAR(MAX),
instructions_ko NVARCHAR(MAX),
muscle_group NVARCHAR(100),
secondary_muscles NVARCHAR(MAX), -- JSON array stored as string
target NVARCHAR(100),
@@ -769,6 +771,8 @@ const DB_SQL = {
instructions_ru TEXT,
instructions_zh TEXT,
instructions_hi TEXT,
instructions_pl TEXT,
instructions_ko TEXT,
muscle_group VARCHAR(100),
secondary_muscles JSONB,
target VARCHAR(100),
@@ -789,6 +793,8 @@ const DB_SQL = {
instructions_ru TEXT,
instructions_zh TEXT,
instructions_hi TEXT,
instructions_pl TEXT,
instructions_ko TEXT,
muscle_group VARCHAR(100),
secondary_muscles JSON,
target VARCHAR(100),
@@ -809,6 +815,8 @@ const DB_SQL = {
instructions_ru TEXT,
instructions_zh TEXT,
instructions_hi TEXT,
instructions_pl TEXT,
instructions_ko TEXT,
muscle_group TEXT,
secondary_muscles TEXT, -- JSON array stored as string
target TEXT,
@@ -1393,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), 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), 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
@@ -1522,6 +1530,8 @@ function buildInserts(exercises, db) {
const instrRu = ex.instructions && ex.instructions.ru ? ex.instructions.ru : '';
const instrZh = ex.instructions && ex.instructions.zh ? ex.instructions.zh : '';
const instrHi = ex.instructions && ex.instructions.hi ? ex.instructions.hi : '';
const instrPl = ex.instructions && ex.instructions.pl ? ex.instructions.pl : '';
const instrKo = ex.instructions && ex.instructions.ko ? ex.instructions.ko : '';
const vals = [
escStr(ex.id, db),
@@ -1536,6 +1546,8 @@ function buildInserts(exercises, db) {
escStr(instrRu, db),
escStr(instrZh, db),
escStr(instrHi, db),
escStr(instrPl, db),
escStr(instrKo, db),
escStr(ex.muscle_group, db),
escStr(muscles, db),
escStr(ex.target, db),
@@ -1544,7 +1556,7 @@ function buildInserts(exercises, db) {
escStr(ex.created_at, db),
].join(', ');
lines.push(`INSERT INTO exercises (id, name, category, body_part, equipment, instructions_en, instructions_es, instructions_it, instructions_tr, instructions_ru, instructions_zh, instructions_hi, muscle_group, secondary_muscles, target, image, gif_url, created_at) VALUES (${vals});`);
lines.push(`INSERT INTO exercises (id, name, category, body_part, equipment, instructions_en, instructions_es, instructions_it, instructions_tr, instructions_ru, instructions_zh, instructions_hi, instructions_pl, instructions_ko, muscle_group, secondary_muscles, target, image, gif_url, created_at) VALUES (${vals});`);
if (db === 'mssql' && (i + 1) % 50 === 0 && i + 1 < exercises.length) {
lines.push('GO');