Repository navigation
feat(i18n): traduction fr/en du cours et sélecteur de langue - #16
Merged
Merged
Conversation
…tecture i18n Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
…seul) Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
…s fr/en Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
…18n.js [BREAKING] l'ancien nom openshift-course-X.Y.Z.pptx est remplacé par -fr / -en. Repli sur le français signalé pour les modules en absents (erreur sous --strict-i18n). Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
…ci l Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
…langue Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
… et i18n-hash.js Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
….diagramPlaceholder Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Ajoute la nouvelle section « Langues » documentant: - Arborescence bilingue modules/<lang>/mNN-*.js - Champ obligatoire « lang » et sa validation - Contrat de parité structurelle (D1) - Ce qui se traduit et ne se traduit pas - Localisation des libellés (assets/i18n.js) - Titres bilingues (assets/plan.js) - Synchronisation par empreinte de source (D6) - Règle « une correction = même commit fr+en » - Options --strict-i18n et --root - Tests de parité et export PPTX bilingue Met à jour les passages existants (chemins, schéma du module, commandes validate). Co-Authored-By: Claude Haiku 4.5 <[email protected]>
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
…emets, --root sans valeur Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
… à la bascule Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
release.yml : validate --strict-i18n, export + check-pptx fr/en, sha256 par langue, 2 .pptx publiés. ci.yml : validate --strict-i18n et check-pptx --strict-i18n sur PR vers main seulement. Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Ajoute la règle index.html: chaque module (fr/en) doit être référencé par une balise <script> ; module en non référencé = warn normalement, erreur sous --strict-i18n (strict-i18n). Clarifie la tolérance duration: normalisée aux chiffres (format flexible accepté). Ajoute la limite de comparaison des commentaires de code: hors guillemets accepté pour traduction, exceptions non gérées documentées. Références: corrections de revue ebfdfd5 et 9c4e379. Co-Authored-By: Claude Haiku 4.5 <[email protected]>
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
… depuis i18n.js Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
…e mémorise pas) Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
…un.js Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
…sible Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
…duisible), cas F01-F04 Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Champ file: le nom de fichier doit rester identique fr/en, mais une précision entre parenthèses en fin de ligne (ex. 'dnsmasq.conf (lab example)') peut être traduite. Règle appliquée: regex \s*\([^)]*\)\s*$ en fin de file ne compte pas pour la parité. Validation: tools/validate.js compare baseFile() qui supprime le texte entre parenthèses. Référence: lot A m00, commit dev-course phase 1. Co-Authored-By: Claude Haiku 4.5 <[email protected]>
mon-sa, autre-svc, NOM_DU_CSR et colonnes custom-columns neutralisés en fr et en (même commit). Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
in plain text, change-me (m10 fr+en), lab-storage (m08 fr), tag to schedule (m11), empreintes recalculées. Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
…uelles Le marqueur « à vérifier » (fr) / « to be verified » (en) doit être réservé STRICTEMENT aux incertitudes factuelles (faits non confirmés par rapport à la doc Red Hat, à relire en phase 4). validate.js compte CHAQUE occurrence de « à vérifier » comme un marqueur et exige la parité avec « to be verified » en anglais. Usage ordinaire (consignes, titres de sections, vérifications générales): - « à contrôler » / « check » ou « to verify » - « à confirmer » / « to confirm » - « vérifier que... » / « verify that... » Clarifications dans la section Langues et dans les Exigences de contenu. Contexte: m12 et m14, lot D. Co-Authored-By: Claude Haiku 4.5 <[email protected]>
…anche de clés) Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
…s (m04, m05, m10) Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
…t sur l'anglais Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
…nche) Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
…), cas Y01-Y09 Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Remplace la règle générale « chaînes visibles à l'écran » par la règle réelle pour les blocs YAML : les VALEURS des clés message, summary, text, description, displayName se traduisent ; la CLÉ reste identique ; tout le reste (identifiants, noms d'objets, commandes) reste neutre et anglais dans les deux langues. Liste blanche en tools/validate.js (VISIBLE_TEXT_KEYS): message, summary, text, description, displayName. Aucune clé n'est ajoutée sans décision explicite. Exemple: message: "Alerte détectée" (fr) → message: "Alert detected" (en). Références: 81b40d7 (validate.js), 552f108 (fr restauré), GLOSSARY.md 63c3b03. Co-Authored-By: Claude Haiku 4.5 <[email protected]>
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
…fier » Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Ajoute section anglaise courte (Overview): cours OpenShift on-prem, 16 modules bilingues fr/en, sélecteur de langue FR | EN (raccourci l, ?lang=), deux PowerPoint par langue, HTML + ZIP bilingue en release. Met à jour les sections existantes: - Accès: deux PPTX (-fr.pptx / -en.pptx), sélecteur de langue, lien partageables - Structure du dépôt: modules/fr/, modules/en/, assets/i18n.js, tools/i18n-hash.js, docs/i18n/GLOSSARY.md, tests/i18n/ - Validation: --strict-i18n, --root, tests i18n (87 cas) - Export: --lang fr|en, libellés depuis i18n.js - Release: deux PPTX, contrôle strict i18n, checksums des trois fichiers - Conventions: section Langues de CONVENTIONS.md, GLOSSARY.md - Limites: relecture reportée, marqueurs restent, version non définie Co-Authored-By: Claude Haiku 4.5 <[email protected]>
Ajoute section Unreleased (Non publié, sans numéro ni date): Ajouté: - Traduction anglaise 16 modules, sélecteur FR | EN (raccourci l, ?lang=) - Localisation moteur (assets/i18n.js, assets/plan.js) - Validation parité (validate.js --strict-i18n, --root) - Synchronisation empreinte (tools/i18n-hash.js) - Suite tests i18n (87 cas, tests/i18n/run.js) - Glossaire et guide de style (docs/i18n/GLOSSARY.md) - Export PowerPoint bilingue (--lang fr|en, deux .pptx) - Workflow release bilingue, licence MIT Modifié: - Chemins modules: modules/ → modules/fr/ et modules/en/ - Identifiants neutres (fr+en) - Corrections contenu français (m06, m04, m05, m07) - Contrôles CI (push: warn, PR: erreur stricte) [BREAKING]: - Nom PPTX: .pptx (unique) → -fr.pptx / -en.pptx (deux fichiers) - Chemin modules: modules/ → modules/fr/ Notes: - Relecture technique reportée après fusion (marqueurs restent) - Version non définie (section deviendra 1.0.0 à la release) Co-Authored-By: Claude Haiku 4.5 <[email protected]>
C1 (l.324): Toute retouche fr rend l'empreinte en périmée → recalcul i18n-hash nécessaire, même pour simple tournure. Reformulation. C2 (l.224-269): Exemple i18n.js faux (emojis). Le moteur ajoute les emojis de callouts (sauf export.*). Correction des valeurs (course.title, Warning/Caution → titles réels). Clarifier que validate contrôle parité des clés et paramètres, pas l'usage. C3 (l.277-278): Emojis et titres inexacts du plan.js (validate exige correspondance exacte). Corriger emojis et titre en identique. C4 (l.5, l.134): Chemin obsolète modules/ → modules/fr/. Clarifier que validate EXIGE lang, pas de défaut au validateur. C5 (l.179): Préciser que liste blanche s'applique partout (heredoc bash etc.), ajouter limite « valeur sur une seule ligne » (multilignes refusées). C6 (l.379-389): Moteur ne « charge » pas les modules (tous chargés d'emblée par index.html), il les sélectionne. Repli reste en code (filet de sécurité), bandeau disparaît. Références: code-reviewer-i18n-final.md (revue phase 1-5). Co-Authored-By: Claude Haiku 4.5 <[email protected]>
This was referenced Oct 7, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Résumé
Traduction fr/en du cours et sélecteur de langue (milestone v1.0.0, issue parent #3).
modules/en/), à parité avec le françaistools/validate.js: contrôle de parité fr/en et--strict-i18n;tools/i18n-hash.js(empreintes de synchronisation)tests/i18n-fr/-en)release.yml) et CI stricte sur PR versmain(ci.yml)[BREAKING]
openshift-course-X.Y.Z-fr.pptx/-en.pptxmodules/→modules/fr/Changements du français existant
Champ
lang, identifiants neutres, 7 « contrôler », m06 autoupdate, valeurs YAML.Limites assumées
vX.Y.Z.Closes #3, #4, #5, #6, #7, #8, #9, #10, #11, #12, #14, #15
🤖 Generated with Claude Code