Re: [ostorybook-dev] translation codes |
[ Thread Index | Date Index | More lists.tuxfamily.org/ostorybook-dev Archives ]
On 04/23/2017 08:59 PM, oStorybook wrote:
Un fichier properties est assez simple. C'est un fichier de type texte, codé en UTF-8. Les CR, CR+LF seront transformés lors de la phase d'intégration. Les bénévoles de Permondo utilisent, pour la plupart, tout simplement Word comme éditeur. Pour transformer ces fichiers je me contante simplement d'une série de copier/coller (depuis Writer vers gedit que j'utilise comme simple éditeur de texte).Chaque ligne est composée de: - la clé d'accès au libellé - le caractère = (égal) - le libellé traduit dans la langueSi le libellé tient sur plusieurs lignes, chaque changement de ligne doit être précédé du caractère d'échappement (l'anti-slash). Je recommande fortement de ne pas utiliser cette possibilité et de ne pas insérer de rupture de ligne. Si le message lui-même doit comporter un changement de ligne il faut utiliser la séquence de caractère \n. Certains messages sont complétés "à la volée" par un ou plusieurs paramètres. Ceux-ci sont signalés par un numéro entre crochets. Par exemple, le message "Le nom du fichier est {0}" sera traduit en anglais par "The filename is {0}", ou "{0} is the filename".Les commentaires sont introduits par le caractère # (dièse). Tout ce qui suit ce caractère sur la même ligne est considéré comme commentaire.
OK. Je suppose donc que le backslash et le dièse s'échappent aussi par un backslash ?
Par exemple: foo=bar# foo est bar donne "bar" foo=bar\#foo est bar donne "bar#foo est bar" foo=bar\\#foo est bar donne "bar\" foo=bar\\\#foo est bar donne "bar\#foo est bar" C'est bien ça ?
À noter que l'accès WEB au GIT transforme les caractères UTF-8 en caractères avec échappement (code hexadécimal via \u).
Ça explique pourquoi tout est encodé de cette façon ? C'est juste illisible :-(
C'est du paramétrage ?A partir du moment ou on accepte des fichiers binaires 8 bits (des jar etc...), il n'y a aucune raison de tout faire passer en 7 bits par l'accès WEB...
Autre chose, pour faire un script: Les espaces en début de ligne ou autour du "=" sont ignorés, ou interdits ? Exemple: foo=bar foo=bar foo = bar foo = bar Sont équivalents ? On peut échapper donc l'espace et le "=" aussi ? Genre: foo=\=\ bar donnerait "= bar" Ça change la regexp pour la recherche du terme gauche de la ligne.En attachement, une version bêta d'un script bash qui devrait plus ou moins marcher, selon ce que j'ai compris du format. Pas vraiment testé, et plus le temps aujourd'hui, ni demain d'ailleurs. Il n'est pas complet dans le sens où un keyword n'est pas vraiment explicite, et ça ne suffit pas pour savoir ce qu'il faut y mettre. Je rajouterai une option pour indiquer la ligne complète du fichier de référence, et non pas seulement le keyword, ce sera un peu plus clair.
Exemples d'utilisation: Liste les keywords manquant dans messages_zh.properties: br@galadriel:~/.../src/storybook/msg$ ./propdiff.sh messages_zh.properties category.name category.sort category.value chapter.nbscenes chapter.new close.confirm common confirm dict.user directory.select diverse dlg.exception.report editors.nonmodal export.dir.missing export.failed export.nav.first export.nav.last export.nav.next export.nav.prior export.nav.summary export.options.html.navimage file file.import.type gender.new import.dlg.exists import.dlg.force import.dlg.notok import.dlg.ok import.dlg.open.docbuilder import.dlg.open.error import.dlg.open.io import.dlg.open.parsing itemlink.new jortho.searchword jortho.word.nospace language.comment language.confirm language.default language.file language.overwrite language.saveok language.select location.view memo.layoutdirection memo.layoutdirection.left memo.layoutdirection.top memo.new new relationship relationships replace replace.all replace.bywords scene.add scene.end scene.start sort table taglink.new toolbar toolbar.select toolbar.select.all toolbar.select.notall view xeditor xeditor.askuse xeditor.create xeditor.err.missing.extension xeditor.err.missing.name xeditor.err.missing.template xeditor.err.point xeditor.extension xeditor.file xeditor.filenotexist xeditor.launching xeditor.name xeditor.open xeditor.reset xeditor.template Liste les lignes manquant ou en trop dans le même fichier:br@galadriel:~/.../src/storybook/msg$ ./propdiff.sh -a messages_zh.properties
+category.name +category.sort +category.value +chapter.nbscenes +chapter.new +close.confirm +common +confirm +dict.user +directory.select +diverse +dlg.exception.report +editors.nonmodal +export.dir.missing +export.failed +export.nav.first +export.nav.last +export.nav.next +export.nav.prior +export.nav.summary +export.options.html.navimage +file +file.import.type +gender.new +import.dlg.exists +import.dlg.force +import.dlg.notok +import.dlg.ok +import.dlg.open.docbuilder +import.dlg.open.error +import.dlg.open.io +import.dlg.open.parsing +itemlink.new +jortho.searchword +jortho.word.nospace +language.comment +language.confirm +language.default +language.file +language.overwrite +language.saveok +language.select +location.view +memo.layoutdirection +memo.layoutdirection.left +memo.layoutdirection.top +memo.new +new +relationship +relationships +replace +replace.all +replace.bywords +scene.add +scene.end +scene.start +sort +table +taglink.new +toolbar +toolbar.select +toolbar.select.all +toolbar.select.notall +view +xeditor +xeditor.askuse +xeditor.create +xeditor.err.missing.extension +xeditor.err.missing.name +xeditor.err.missing.template +xeditor.err.point +xeditor.extension +xeditor.file +xeditor.filenotexist +xeditor.launching +xeditor.name +xeditor.open +xeditor.reset +xeditor.template -gender -status br.
Attachment:
propdiff.sh
Description: application/shellscript
Mail converted by MHonArc 2.6.19+ | http://listengine.tuxfamily.org/ |