Tout commence un jour quand Archy sur le slack de K8s Canada partage un lien vers le repository Github du site web de Kubernetes:
« You know French ? Want to become contributor to Kubernetes ?
Help to improve/review k8s docs ».
Traduire la documentation Kubernetes en français ?
La documentation Kubernetes est disponible sur le site principal https://kubernetes.io/ et la traduction française sur : https://kubernetes.io/fr/; vous remarquerez après avoir cliqué sur quelques liens que la traduction n’est pas complète – voyons comment améliorer cela !
Contribuer à la documentation Kubernetes
Pour commencer, je ne disposais que d’un lien vers une PR existante; j’ai proposé mon aide et Rémy m’a indiqué comment démarrer :
@anthonydahanne Parfait On recherche toujours de nouveaux contributeurs Si tu es chaud, je te conseille de regarder les deux documents utile. Le first step pour contribuer (https://docs.google.com/presentation/d/1D7PaazwoWSS7Kus2wGU-MTFw5hCxjhdpCdAR7WWGf5Y/edit#slide=id.g338ac0a8b6_0_48 ) et voici notre document de suivi, tu peux ajouter ton compte GitHub (https://docs.google.com/document/d/1TWBtGxz1GbKgKnfcEV98hRQviGbMNOU4JzjgY2qobuc/edit#) Est ce que tu peux nous rejoindre sur le slack Kubernetes sur le canal #kubernetes-docs-fr ?
https://github.com/kubernetes/website/pull/13434#issuecomment-497696715
Signer le CLA
Après avoir pris connaissance du document, le plus important était de signer le CLA (Contributor License Agreement) du projet Kubernetes – je l’ai fait à titre individuel, mais il est aussi possible de le faire en tant qu’employé d’une compagnie.
Rejoindre le canal slack #kubernetes-docs-fr
Ceci étant fait, j’ai rejoint le canal slack #kubernetes-docs-fr après m’être inscrit sur le compte slack du projet Kubernetes via cette url : https://slack.k8s.io/ ; c’est ici que l’on peut discuter et partager le statut d’une traduction en cours.
Cloner le repo git de la documentation Kubernetes
La première étape est bien entendue de rapatrier le code source de la documentation Kubernetes : toutes les traductions y sont incluses; pour rajouter une nouvelle traduction, il suffit de copier un fichier disponible en langue anglaise vers la même arborescence sous content/fr :
Pour pouvoir y contribuer, il faudra aussi le « forker », voici à quoi ressemble ma configuration git pour ce projet :
1 2 3 4 5 6 7 |
$ git remote -v origin git@github.com:anthonydahanne/website.git (fetch) origin git@github.com:anthonydahanne/website.git (push) upstream https://github.com/kubernetes/website.git (fetch) upstream https://github.com/kubernetes/website.git (push) |
Outillage suggéré pour commencer l’aventure
Même s’il existe une liste de PRs de traductions : https://github.com/kubernetes/website/pulls?q=is%3Apr+is%3Aopen+label%3Alanguage%2Ffr , un des défis est de ne pas « se marcher sur les pieds » autrement dit ne pas travailler sur un document déjà en cours de traduction!
find_pr.py
En rejoignant le canal slack, un des contributeurs à la traduction française, Christophe, me suggéra d’utiliser ce script (en fait il est aussi disponible dans le repo git de la documentation) afin de retrouver les documents déjà en cours de traduction (pour rechercher s’il y a déjà des Pull Request ouvertes concernant un fichier)
Avant de pouvoir l’utiliser, vous devrez vous créer un jeton (token) Github :
Après avoir généré le jeton, il suffit de l’exporter dans votre shell :
export GITHUB_TOKEN=xxxx
Ensuite, vous devrez avoir un environnement Python correctement configuré sur votre machine
Sous Mac, j’ai installé Python avec Homebrew et j’ai ensuite ajouté les modules Python nécessaires :
$ brew install python
$ pip install click requests jinja2
Si on regarde l’aide :
1 2 3 4 5 6 7 8 9 |
$ ./find_pr.py --help Usage: find_pr.py [OPTIONS] PATH Find what GitHub pull requests touch a given file. ex: ./find_pr.py --tags "language/fr" "content/fr/_index.html" Options: --tags TEXT Tags of PullRequest (Can be passed multiple times) --token TEXT GitHub API token. (Default env variable GITHUB_TOKEN) --last-n-pr INTEGER Last n-th PullRequests --help Show this message and exit. |
Il est facile de l’utiliser :
1 2 3 4 5 6 7 8 9 |
$ ./find_pr.py --tags "language/fr" "content/fr/_index.html" Update kubecon buttons on homepage fr (MERGED) https://github.com/kubernetes/website/pull/14587 Grammar fix for README-ko.md. (CLOSED) https://github.com/kubernetes/website/pull/14666 Fix typo, missing 's' for plural (MERGED) https://github.com/kubernetes/website/pull/14783 Cycle KubeCon info on landing page (MERGED) https://github.com/kubernetes/website/pull/15204 |
Utiliser un environnement de développement (IDE) avec support Markdown et un dictionnaire français
Utilisant IntelliJ IDEA au quotidien, j’ai recherché un dictionnaire français, et en déroulant le fil de discussion suivant, j’ai téléchargé ce dictionnaire, que j’ai ensuite ajouté à mon IDE :
Tester ses changements au site Web de Kubernetes en local
Une fois que vous êtes fin prêts avec vos changements, vous pouvez les tester localement, comme expliqué dans le Readme du projet :
1 2 3 4 5 6 7 8 9 10 |
$ make docker-image $ make docker-serve [...] Watching for changes in /src/{assets,content,data,i18n,layouts,static} Watching for config changes in /src/config.toml Environment: "development" Serving pages from memory Running in Fast Render Mode. For full rebuilds on change: hugo server --disableFastRender Web Server is available at http://localhost:1313/ (bind address 0.0.0.0) Press Ctrl+C to stop |
Vous pouvez alors admirer vos changements depuis http://localhost:1313 (si votre Docker for Desktop a bindé le port 1313 sur localhost)
Conclusion
Traduire la documentation d’un projet aussi riche que Kubernetes est certainement un travail de longue haleine, mais je pense que chaque contribution compte : que vous soumettiez votre PR ou que vous commentiez des PRs existantes, la communauté appréciera !