Skip to content

feat(i18n): add DatasetUpdater tasks for Rules AR/ES/FA/ZH - #361

Merged
jsboige merged 4 commits into
masterfrom
feat/rules-translation-ar-es-fa-zh
May 26, 2026
Merged

feat(i18n): add DatasetUpdater tasks for Rules AR/ES/FA/ZH#361
jsboige merged 4 commits into
masterfrom
feat/rules-translation-ar-es-fa-zh

Conversation

@jsboige

@jsboige jsboige commented May 26, 2026

Copy link
Copy Markdown
Contributor

Summary

Add 4 new DatasetUpdater task configs + 8 prompt files for translating Rules to Spanish, Arabic, Farsi, and Chinese Simplified.

  • Task configs: sequential chunks of 3, gpt-5.4-mini, function calling enabled
  • Prompts follow the existing PT Rules translation pattern
  • All tasks start Enabled = false — ready to activate one at a time

Test plan

  • Build: 0 errors

Co-Authored-By: Claude Opus 4.7 noreply@anthropic.com

Add 4 new DatasetUpdater task configs for translating Rules to Spanish,
Arabic, Farsi, and Chinese Simplified. Each task uses gpt-5.4-mini with
function calling, sequential chunks of 3, targeting the Text_es/ar/fa/zh
CSV fields.

Also adds 8 prompt files (user + assistant for each language) following
the existing PT Rules translation pattern.

Build: 0 errors.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

@clusterManager-Myia clusterManager-Myia left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Hermes] — COMMENT_WITH_CONCERNS

PR: feat(i18n): add DatasetUpdater tasks for Rules AR/ES/FA/ZH
SHA: 8db93ca
Metrique: 9 fichiers, +255/-3 LOC

Checklist

Check Status
Security scan ✅ CLEAN
Cross-repo impact ✅ N/A (config DatasetUpdater Argumentum)
Root cause ✅ Nouvelle feature i18n (pas un fix)

Verification

  • 4 nouvelles tâches de traduction (AR, ES, FA, ZH) — toutes Enabled = false ✅ (safe)
  • 8 templates de prompts (User + Assistant pour chaque langue)
  • Pattern cohérent avec les tâches existantes (gpt-5.4-mini, FunctionCalling, SequentialChunks)
  • BOM retiré de DatasetUpdaterRootConfig.cs (correction mineure bienvenue)

Concerns — 2 items

1. Incohérence WriteOneTargetFileByField (non-bloquant)
Les 4 nouvelles tâches ont WriteOneTargetFileByField = false. La dernière tâche existante dans le même tableau a true. Est-ce intentionnel ? Si les traductions Rules doivent aller dans le même fichier CSV cible, false est correct. Mais si chaque langue nécessite un fichier séparé, il manque le paramétrage.

2. Champs Text_ar/Text_fa dans le CSV cible (à vérifier)
Les tâches AR et FA ciblent "Text_ar" et "Text_fa" comme FieldsToUpdate. Le CSV cible Argumentum Rules - Cards.csv doit contenir ces colonnes. Vérifier que les colonnes RTL existent dans le schéma CSV — sinon le DatasetUpdater échouera silencieusement à l'exécution.

Verdict : COMMENT_WITH_CONCERNS (non-bloquant)

Feature propre, tâches désactivées par défaut, prompts bien structurés. Les 2 concerns sont des vérifications pré-merge.

jsboige and others added 3 commits May 26, 2026 21:31
Adds patterns for the 22+ /cycle*/ working directories, MASTER-INDEX.md,
and local screenshot artefacts that accumulated under repo root during
ai-01 cycles. Patterns are anchored to root (/) to avoid masking any
unrelated cycle-named files elsewhere in the tree.

No files deleted — just cleans `git status` noise.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Add missing ("ar", "_ar."), ("fa", "_fa."), ("zh", "_zh.") tuples to
StaticConversions so CSS class rewriting works for Arabic, Farsi, and
Chinese. Without this, class="desc_fr" was not rewritten to class="desc_ar"
etc., causing RTL CSS rules to never match.

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Rules CSV now has 100% coverage across all 8 pipeline languages:
FR (source) + EN/RU/PT (existing) + ES/AR/FA/ZH (new).

Translations generated via DatasetUpdater with gpt-5.4-mini using
function calling mode. Multiple pass-and-merge cycles for stubborn
rows (Rules_03, _21, _24 needed ChunkSize=1 isolation).

Also adds a null-guard in RecordsUpdater.UpdateRecord to prevent
ArgumentNullException when the LLM returns an invalid fieldName
in function calling mode, returning a diagnostic message instead.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

@myia-ai-01 myia-ai-01 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approve — Rules AR/ES/FA/ZH 24/24 × 4 langs. CSV diff cohérent (cellules vides remplies, FR/EN/RU/PT untouched). Null-guard RecordsUpdater bien vu. AssetConverterConfig change = doublon bénin de #360 déjà mergé (CLEAN/MERGEABLE confirme auto-resolve). Hermes concerns résolus par exécution réussie.

@jsboige
jsboige merged commit 96eb57f into master May 26, 2026
3 checks passed
@jsboige
jsboige deleted the feat/rules-translation-ar-es-fa-zh branch May 26, 2026 19:47
jsboige added a commit that referenced this pull request May 28, 2026
…381)

Memo + MemoPrintAndPlay reuse the FallaciesTaxonomy dataset and the same
{{text_fr}}, {{desc_fr}}, {{Famille}}, {{Sous-Famille}}, {{Soussousfamille}}
template placeholders. Without entries in CardSetLocalizations, the FR
placeholders are never swapped at runtime → MEMO pages on EN/RU/PT/AR/ES/ZH/FA
PDFs render FR content.

Same root cause as #216 (Fallacies multilingual content was broken until
PR #347 in April 2026). Fix: append KnownCardSets.Memo and
KnownCardSets.MemoPrintAndPlay to the existing Fallacies CardSetLocalization
entry — same dataset, same placeholders, same conversions.

Acceptance criteria (#358):
- MEMO Tarot + MEMO Print&Play render translated content on EN/RU/PT ✓ (by config)
- MEMO renders correctly on AR/ES/ZH/FA ✓ (already in conversion lists from #361)
- PDF visual regression test (#212) is tracked separately

Pipeline regen required to produce the corrected PDFs.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
jsboige added a commit that referenced this pull request Jun 29, 2026
…ublish) (#612)

Idle #135 (endorsed by ai-01). Net-new public-facing announcement article
for the v0.9.0 release, prepped for the DNN News5 module. FR canonical +
EN mirror (docs/publication/ convention). Publish action stays GATED on
#134 (tag) + #131 (DNN 10.3.2 live) + #132 (deploy) — this is text prep only.

Grounded in RELEASE-NOTES-v0.9.0.md + release-dossier README (no figure
invented): 8 languages (fr/en/ru/pt/es/ar/fa/zh, config-verified), 1408
fallacy nodes + 223 virtues + 167 scenarios 100% translated, 4 new game
variants (Bingo mixologie argumentative + Dernier Beau Parleur + Moulin a
Baratin + Parlote Coinchee, Rules deck-verified), 64 PDFs (8 langs x 8
types), FreeMind SVG mind maps, OWL 5.3MB SKOS+AIF, Print&Play A4.

Issue #135 body is STALE ("4 languages") — live scope is 8 (decision #4,
merged via #359/#360/#361). Reflected current scope, not the stale brief.

All version/download/og:image fields = [PLACEHOLDER] filled at tag time.
Downloads taxonomy by language x format x package (extends release-dossier
section 5 snippet). SEO meta block (title/description/og:image/twitter:card
/hreflang) + sitemap note. Publish checklist (gates #134/#131/#132).
Indexed in docs/publication/README.{fr,en}.md inventory (doc #3).

Scope: docs/publication/ only. 0 write Cards/, 0 AssetConverter code change
(pre-tag safe). Base ba8e4a6.

Relates to #135, #134, #131, #132.

Co-authored-by: Your <your.email@example.com>
Co-authored-by: Claude-Code <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants