It seems that you're using an outdated browser. Some things may not work as they should (or don't work at all).
We suggest you upgrade newer and better browser like: Chrome, Firefox, Internet Explorer or Opera

×
En discutant avec Robotophe, j’ai écrit un court guide expliquant comment je construis de manière automatique mes archives de traduction que vous pouvez trouver par ici :
https://www.gog.com/mix/archives_de_traduction_francaises

Je me suis dit que ça pourrait intéresser d’autres personnes, alors je partage ce guide ici.
Il est écrit pour Linux, mais devrait pouvoir être adapté sous Windows si vous connaissez bien le fonctionnement de sa console.

-----

Alors voici ma méthode pour créer une archive de traduction à partir de deux versions différentes d’un même jeu. Elle utilise pas mal de "logique" interne à Bash (plus généralement au shell quel qu’il soit), alors n’hésite pas à demander des explications sur ce qui n’est pas clair.

Je vais poser comme hypothèse un répertoire '~/jeu-fr/' contenant la version française du jeu, et un répertoire '~/jeu-en/' contenant la version anglaise.
Une première boucle va me permettre de renommer tous les fichiers en lettres minuscules uniquement pour éviter par exemple que par la suite une boucle ne trouve pas "fichier" parce qu’il se nomme "Fichier".

La boucle pour passer tout le contenu d’un répertoire en lettres minuscules :
find ~/jeu-fr/ -depth | while read file; do
newfile="$(dirname "$file")/$(basename "$file" | tr [:upper:] [:lower:])"
if [ "$newfile" != "$file" ]; then
mv "$file" "$newfile"
fi
done
Qu’on répète bien sûr sur le second répertoire :
find ~/jeu-en/ -depth | while read file; do
newfile="$(dirname "$file")/$(basename "$file" | tr [:upper:] [:lower:])"
if [ "$newfile" != "$file" ]; then
mv "$file" "$newfile"
fi
done
Voilà, maintenant les seules différences de contenu entre ~/jeu-fr/ et ~/jeu-en/ sont les fichiers qui ont besoin d’être intégrés à l’archive de traduction. Comme on est maintenant certains que les fichiers sont nommés de la même façon des deux côtés, on peut automatiser la recherche des fichiers différents :
cd ~/jeu-fr/
find . -type f | while read file; do
diff -q "$file" ~/jeu-en/"$file"
done
Bon, la liste des fichier a défilé, mais elle est peut-être trop longue pour être exploitée telle quelle sans y passer des jours, on va donc automatiser encore un peu la suite. À commencer par en enregistrer la liste dans un fichier '~/liste-diffs.txt' :
cd ~/jeu-fr/
find . -type f | while read file; do
if [ -n "$(diff -q "$file" ~/jeu-en/"$file" 2>&1)" ]; then
echo "$file" >> ~/liste-diffs.txt
fi
done
Et voilà, la liste des fichiers à récupérer se trouve maintenant prête à être exploitée dans le fichier ~/liste-diffs.txt, mais on ne veut toujours pas se la farcir à la main ! Aucun problème, la suite va de nouveau être automatique. Après rapide vérification que le contenu de ce fichier est cohérent, on va plutôt que de se contenter de lister les fichiers différents directement les copier dans un nouveau répertoire '~/patchfr/' :
mkdir ~/patchfr/
cd ~/jeu-fr/
find . -type f | while read file; do
if [ -n "$(diff -q "$file" ~/jeu-en/"$file" 2>&1)" ]; then
cp -l --parents "$file" ~/patchfr/
fi
done
C’est prêt ! Le répertoire ~/patchfr/ contient tout le nécessaire à passer le jeu en anglais.
Tu peux le tester en en copiant le contenu dans ~/jeu-en/, en écrasant au passage les fichiers déjà en place, puis en lançant le jeu qui se trouve sous ~/jeu-en/. Si tout va bien celui-ci est maintenant en français.
Post edited July 16, 2015 by vv221
Salut
Aucun commentaire ici, et pourtant je suis souvent venu lire ce post.
Il y à un jeu que j'aimerai particulièrement voir traduit c'est Death Road to Canada
Une chose étonnante, il n'y à jamais eu de patch.fr et pourtant il me semble que ce jeu à eu du succès.
avatar
vv221: C'est parce que les commentaires sont plutôt faits dans ce fil : La traduction du jour
J'ai donc un légèrement... souiller ton tuto, désolé. (merci pour le lien :-)
Post edited January 22, 2021 by LinuxFire
avatar
LinuxFire: Aucun commentaire ici, et pourtant je suis souvent venu lire ce post.
C'est parce que les commentaires sont plutôt faits dans ce fil : La traduction du jour

Les archives de traduction que j'y propose ont été construites avec la méthode que je décris ici.