@@ -719,6 +719,61 @@ Fusion des fichiers *pot* de CPython
719
719
make merge
720
720
721
721
722
+ Copier des traductions d'une branche à l'autre
723
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
724
+
725
+ Dans certains cas on a besoin de bouger des traductions d'une branche
726
+ à l'autre :
727
+
728
+ - d'une ancienne branche vers une nouvelle branche : lors du passage
729
+ d'une version à l'autre de cpython, quelqu'un a une PR sur une
730
+ ancienne release (*forward porting*) ;
731
+ - d'une nouvelle branche vers des anciennes branches : pour propager
732
+ de temps en temps le travail sur d'anciennes releases (*back porting*).
733
+
734
+ On utilise ` ` pomerge` ` \ : on le fait lire sur une branche, puis écrire
735
+ sur une autre, par exemple pour copier de la 3.7 à la 3.8 ::
736
+
737
+ git fetch
738
+ git checkout 3.7
739
+ git reset --hard upstream/3.7
740
+ pomerge --from-files *.po */*.po
741
+ git checkout -b forward-porting upstream/3.8
742
+ pomerge --no-overwrite --to-files *.po */*.po
743
+ powrap -m
744
+ git add --patch
745
+ git commit --message="Forward porting from 3.7"
746
+ git push --set-upstream origin HEAD
747
+
748
+ Notes :
749
+
750
+ - j'utilise ` ` git fetch` ` au début pour avoir upstream/3.7 et
751
+ upstream/3.8 à jour localement, ainsi je peux travailler sans
752
+ toucher au réseau jusqu'au ` ` git push` ` , mais chacun fait comme il
753
+ veut ;
754
+ - j'utilise ` ` *.po */*.po` ` et pas ` ` **/*.po` ` , car si vous avez un
755
+ venv dans l'arborescence il va vous trouver des traductions de Sphinx et peut-être
756
+ d'autres paquets dans ` ` .venv/lib/python*/` ` (et mettre beaucoup
757
+ plus longtemps) ;
758
+ - j'utilise ` ` pomerge --no-overwrite` ` , ça indique à ` ` pomerge` ` de
759
+ n'écrire que si le ` ` msgstr` ` est vide, donc de ne pas modifier
760
+ l'existant, ainsi il est impossible de casser quelque chose, c'est
761
+ important lors du *forward-porting* pour ne pas défaire une
762
+ correction. Mais on pourrait le tenter sans ` ` --no-overwrite` ` sur
763
+ du rétroportage, attention, ça fait des bêtises, ça nécessite une
764
+ relecture attentive : certaines traductions, comme *example:* sont en
765
+ francais parfois traduite avec une majuscule, et parfois non, en
766
+ fonction du contexte, ` ` pomerge` ` uniformiserait ça, ce n'est pas bien ;
767
+ - attention, si vous testez sans ` ` --no-overwrite` ` , il est peut être
768
+ bon de vider la mémoire de ` ` pomerge` ` avant la lecture, pour éviter
769
+ de lui faire écrire des choses lues lors des sessions précédentes,
770
+ via un ` ` rm -f ~/.pomerge.json` ` \ ;
771
+ - j'utilise ` ` git add --patch` ` (ou ` ` -p` ` ) car j'aime bien relire quand même,
772
+ typiquement je n'ajoute pas les différences d'ordre dans les entêtes,
773
+ mais un ` ` git add --update` ` irait très bien ;
774
+ - attention au fichier *dict* à qui il peut manquer des lignes.
775
+
776
+
722
777
Synchronisation de la traduction avec Transifex
723
778
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
724
779
0 commit comments