Guide de traduction

Ce site existe en néerlandais, en français et en anglais. Cette page explique comment les traductions sont organisées, pour que tu puisses les entretenir sans casser la structure.

Comment les langues sont enregistrées

Chaque page a un fichier par langue, dans le même dossier :

content/sessions/python/01-catch-the-stars/_index.md      ← Nederlands (standaardtaal)
content/sessions/python/01-catch-the-stars/_index.en.md   ← Engels
content/sessions/python/01-catch-the-stars/_index.fr.md   ← Frans
  • Le néerlandais est à la racine (/sessions/...), le français et l’anglais sous /fr/ et /en/ avec le même chemin.
  • S’il manque une traduction, le sélecteur de langue affiche quand même cette langue, mais il mène à la page d’accueil de cette langue. Jamais de lien mort.
  • Tu ajoutes une nouvelle page ? Crée alors tout de suite les trois fichiers. title, weight, hidden et description doivent figurer dans chaque langue ; weight et hidden restent identiques.

Ce que tu ne traduis pas

  • Les identifiants de code (basket, star, ship, score) restent en anglais, parce qu’ils sont dans le fichier Python.
  • Les noms de fichiers (star.png, boom.wav, starter.zip) restent neutres en langue.
  • Les noms de produits : Pygame, Pgzéro/Pgzero, Thonny, PyCharm, VS Code, uv, Python, Git, GitHub, pygbag.
  • Les termes dojo que nous utilisons comme emprunts : ninja, coach, dojo, cheatsheet, cliffhanger, starter, checkpoint, Dojo Defender.

Ce que tu traduis, par contre

  • Tout le texte en prose, les intertitres, les titres et les champs description.
  • Les commentaires et les docstrings dans les blocs de code ; les identifiants et les chaînes dont le programme a vraiment besoin restent tels quels.
  • Les libellés des démos interactives (curseurs, textes sur le canvas).
  • Les notes du coach et les suggestions « à emporter chez toi ».

Termes fixes

NéerlandaisAnglaisFrançais
sessiesessionsession
uitdagingchallengedéfi
werkbladworksheetfiche de travail
oplossingsolutionsolution
bronnenresourcesressources
installerensetupinstallation
coach-notitiescoach notesnotes du coach
Wat je vandaag leertWhat you’ll learn todayCe que tu vas apprendre aujourd’hui
Neem mee naar huisTake it homeÀ emporter chez toi
Vastgelopen?Stuck?Bloqué ?
Tot de volgende keer!See you next time!À la prochaine !

Ton : le néerlandais utilise « je », l’anglais « you », le français « tu » (tutoiement) — les textes sont pour des ninjas de 10 à 17 ans.

Liens et téléchargements

  • Pour les liens vers d’autres pages, tu utilises {{% relref "/sessions/python/01-catch-the-stars" %}}, pour qu’ils suivent automatiquement la bonne langue.
  • Les liens vers des fichiers dans static/ (images, JS des démos, ZIP) sont absolus et neutres en langue.
  • Les ZIP avec du code existent par langue : starter.zip (néerlandais), starter.en.zip et starter.fr.zip. Chaque page de langue renvoie vers son propre ZIP. Les packs d’assets sans code (images.zip, fruits.zip) n’ont pas de variante par langue.

Code par langue

Le code source se trouve dans code/. Les commentaires sont en néerlandais ; les traductions se trouvent à côté de l’original sous main.en.py et main.fr.py. Lors de la création des ZIP, <naam>.<taal>.py est renommé en <naam>.py et les variantes des autres langues sont retirées. make zips s’en occupe.

Démos interactives

Chaque démo JS dans static/sessions/ a en haut une table STRINGS avec le néerlandais, l’anglais et le français. La langue vient de l’attribut lang de la page ; sans table ou avec une langue inconnue, la démo retombe sur le néerlandais.

Vérification avant de pusher

make build

Le build échoue sur un relref cassé. Ensuite, vérifie les trois langues de la page modifiée : le titre, les intertitres, les liens et les téléchargements doivent fonctionner de la même façon dans les trois.