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 langue
Si 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/