[lfs-fr] Récapitulatif du projet de passage aux .po

amj amj at tdct.org
Dim 7 Sep 17:02:02 PDT 2014


Tout d'abord bienvenue Belaïd !
C'est la rentrée (scolaire) et à cette occasion voici un récapitulatif
de ce qui a été fait et reste à faire 
(actuellement la traduction se fait directement dans le code docbook
donc dans l'xml)

1) Un makefile a été écrit, il permet de:
-générer les po à partir des sources EN et FR, ceux-ci sont donc déjà
traduits => première étape (make initpo)
-mettre à jour les po, cette partie télécharge le svn EN et régénère  de
nouveau po partiellement traduit (ou pas du tout s'il y a de nouveaux
fichiers) => deuxième étape (make updatepo)
-- (troisième étape plus loin)
-générer les fichier xml nécéssaire pour le livre => quatrième étape
(make gensource)

2) Ce qu'il faut encore faire:
-décider d'une interface de traduction de po (dont voici une liste
http://alternativeto.net/software/pootle/ ) et en discuter avec la
communauté EN afin de mettre en place un serveur.
-adapter le makefile afin qu'il mette directement les po sur le site de
traduction. (cette fonctionnalité n'est pas obligatoire pour commencer
les test de po) ==> troisième étape

3) les pépins  :
-les tests d'installation de pootle que j'ai fait ont tous échoués  =>
problème de serveur python probablement
-il faudrait décider d'où on stock les stylesheets (qui ne change
normalement presque jamais  et sont donc exclu du processus de
traduction et directement téléchargés par le makefile)

4) Une fois que tout sera fait ... :) Il est prévu de tester le nouveau
système de traduction sur la branche systemd (plus traduite depuis la
dernière version stable (7.5) et pas encore relue :( )


le makefile est en pièce jointe (dsl il est pas ~encore~ très lisible :D )

N'hésitez pas à venir sur le salon irc pour en discuter! (pour Belaïd : #lfs-fr sur freenode)


Amaury

-------------- section suivante --------------
#!/usr/bin/make -f
source_LANG1 = svn://svn.linuxfromscratch.org/LFS/trunk/BOOK
source_LANG2 = svn://svn.traduc.org/lfs/trunk/lfs
LANG1 = lfs-en
LANG2 = lfs-fr
PO_dir = lfs-po_en_fr
sourcegen = lfsgen-fr
version = svn
# si stable mettre <version>-fr
XML1 = $(wildcard $(LANG1)/*.xml) $(wildcard $(LANG1)/**/*.xml)
PO = $(patsubst $(LANG1)/%.xml,$(PO_dir)/%.po, $(XML1))
PO_init = $(patsubst $(LANG1)/%.xml,init/%.po, $(XML1))
XMLGEN = $(patsubst $(LANG1)/%.xml,$(sourcegen)/%.xml, $(XML1))
date1 = $(shell sed -n 3p $(LANG1)/general.ent | sed 's/.*"\([^"]\+\)".*/\1/')
date2 = $(shell date -d "$(date1)" "+%d %B %Y")
filetocopy = aux-file-data.sh bootscripts images INSTALL make-aux-files.sh obfuscate.sh pdf-fixups.sh process-scripts.sh README tidy.conf udev-lfs general.ent packages.ent patches.ent

default: help

help:
	@echo "Script de conversion de xml vers po et po vers xml"
	@echo "utilisez initpo pour la génération des po à partir de rien"
	@echo "utilisez updatepo pour mettre à jour les po présents dans le dossier $(Po_dir)"
	@echo "utilisez gensource pour générer le xml dans le dossier $(sourcegen) à partir\n \
	des po présents dans $(PO_dir) et d'une archive tar."
	@echo ""
	@echo "Procédure de mise à jour afin de mettre à jour les po exécutez make updatepo les\n \
	po sont dès lors mis à jour à partir des sources présentes sur \n \
	$(source_LANG1). Traduisez les po via une interface \n \
	extérieure. Copiez les po nouvellement traduit vers le dossier $(PO_dir).\n \
	Regénérez les sources grace à make gensource."
	@echo "Les sources sont alors disponibles dans le dossier $(sourcegen) \n \
	( et prêtes pour la génération du livre )"


$(LANG1):
	svn co $(source_LANG1) $(LANG1)/
$(LANG2):
	svn co $(source_LANG2) $(LANG2)/

#cible à n'executer que la première fois un fois pour convertir un projet existant vers le système po
initpo: $(LANG1) $(LANG2) $(PO_init)

#cible fictive
init/%.po: $(LANG1)/%.xml $(LANG2)/%.xml
	po4a-gettextize -f docbook -m $(LANG1)/$*.xml -l $(LANG2)/$*.xml -p $(PO_dir)/$*.po
	#sed -e "s/#, fuzzy/#, /g"  -i $(PO_dir)/$*.po

updatesource_en: $(LANG1)
	svn update $(LANG1)
	bash -c ' if [[ `svn diff $(LANG1)` != "" ]]; then rm -r $(LANG1) ; svn co $(source_orig) $(LANG1); fi'

updatepo: updatesource_en $(PO)

$(PO_dir)/%.po: $(LANG1)/%.xml 
	po4a-updatepo -f docbook -m $(LANG1)/$*.xml -p $(PO_dir)/$*.po

sourcegenclean:
	if [ -e $(sourcegen)]; then rm -r $(sourcegen); fi

genxml: $(XMLGEN)

$(sourcegen)/%.xml: $(PO_dir)/%.po $(LANG1)/%.xml
	po4a-translate -f docbook -m $(LANG1)/$*.xml -l $(sourcegen)/$*.xml -p $(PO_dir)/$*.po

stylesheet-fr.tar.xz:
	wget http://amj.tdct.org/.lfs/lfs-fr-stylesheet-mk-epub-udev_config.tar.xz -O stylesheet-fr.tar.xz
	cd $(sourcegen)/ && tar  -xJf ../stylesheet-fr.tar.xz

addfiles: stylesheet-fr.tar.xz $(LANG1)
	for a in $(filetocopy); do cp -r "$(LANG1)/$$a"  $(sourcegen)/ ;done
 
appsed: addfiles
#je sais c'est torchon d'appliquer des scripts sed à du xml ^^ => faudrait utiliser le "robot" de myou


	sed -e "s/$(date1)/$(date2)/g"\
	    -e "s/Approximate build time/Temps de construction approximatif/g"\
	    -e "s/Required disk space/Espace disque requis/g"\
	    -e "s/Installation depends on/L'installation dépend de/g"\
	    -e "s/Test suite depends on/La suite de tests dépend de/g"\
	    -e "s/Must be installed before/Doit être installé avant/g"\
	    -e "s/Optional dependencies/Dépendances facultatives/g"\
	    -e "s/&lfs-root;blfs\//http:\/\/lfs.traduc.org\/view\/blfs-$(version)/g"\
	    -e "s/&lfs-root;hints\/downloads\/files\//http:\/\/lfs.traduc.org\/view\/astuces\//g"\
	    -i $(sourcegen)/general.ent

	sed -e "s/KB/Ko/g" -e "s/MB/Mo/g" -e "s/GB/Go/g"\
	    -e "s/less than/moins de/g"\
	    -e "s/typically about/en général environ/g"\
	    -e "s/about/environ/g"\
	    -e "s/with tests/avec les tests/g"\
	    -i $(sourcegen)/packages.ent
	
	sed -e "s/KB/Ko/g"  -i $(sourcegen)/patches.ent
	sed -e "s/<book>/<book lang=\"fr\">/g"  -i $(sourcegen)/index.xml

gensource: sourcegenclean genxml appsed

-------------- section suivante --------------
Une pièce jointe autre que texte a été nettoyée...
Nom: 0x55269A03.asc
Type: application/pgp-keys
Taille: 3831 octets
Desc: non disponible
URL: <http://lists.linuxfromscratch.org/pipermail/lfs-traducfr/attachments/20140908/c11bc667/attachment.key>


More information about the lfs-traducfr mailing list