Skip to main content Help Control Panel

Login   A+   A-

Development «   Languages «   Localization support board «  

Création de fichier *.po avec outils xgettext (fichiers sources yacs) et tutoriaux d'utilisation

avatarDECLERCQ Laurent -- on Oct. 29 2007, from Caen, devant mon bureau
En directe de Caen
Bonjour à tous ;

Ce message s'adresse plus particulièrement à Bernard, auteur de la classe i18n intégrée au projet YACS.
Il y a quelque temps, je t'avais fais part d'un projet dans lequel je souhaitais intégrer ta classe i18n. Tu m'avais donné ton accord par retour courriel.

Ajourd'hui, dans la mesure ou je suis en pleine internationalisation, j'aurais besoin (je sais, je suis un peu fainiant) de connaître les arguements que tu passe à l'outil xgettext pour créer les fichiers *.po à partir des fichiers sources.

Plus particulièrement, j'aimerais si possible que tu m'indique le mot clé que tu utilise dans la mesure ou dans le code source *.php, l'identificateur n'est pas celui communement employé. Est-ce tout simplement un truc du genre --> -ks ?

Je sais que ma question peut paraître conne mais dans le code source, tu fais appel à différentes méthodes de la classe i18n selon qu'il s'agisse de pluriels ou non.

Ps : Si dans le fond de ton grenier ou encore, dans la cage de ton Amster, tu as rangé un petit script maison pour la création des fichiers *.po, je suis bien entendu preneur.

Merci d'avance pour les éclaircissement apportés.

Nuxwin Team

Files

Recipelevel php.zip 1,764 bytes, 116 downloads
Edited by Agnès on Dec. 22 2007
Zoom
unix_build_pot.pl 12,158 bytes, 224 downloads
Edited by Nuxwin on Nov. 4 2007
Zoom

Comments

Bernard
avatar
from nearby-an-airport
Associate, 6745 posts

on Oct. 29 2007


La commande utilisée est :

xgettext *.php --output=i18n/templates/%MODULE%.pot --default-domain=%MODULE% --keyword=c --keyword=nc:1,2 --keyword=s --keyword=ns:1,2 --language=php ## Le script qui permet d'extraire les chaînes en ligne de commande sous Windows est disponible dans l'archive de base de YACS, c'est le fichier ##tools/build_i18n.bat
Nuxwin
avatar
from Caen, devant mon bureau
190 posts

on Oct. 29 2007


Bonjour ;

Je te remercie pour cette réponse rapide.

Je suis sous linux donc le .bat....

J'avais trouvé la marche à suivre sous poedit mais j'avais omis les arguements (1,2) pour les pluriels et du coup, j'arrivais pas à les extraire.

Encore merci.

Nuxwin Team
Bernard
avatar
from nearby-an-airport
Associate, 6745 posts

inspired from nuxwin on Oct. 29 2007


Nuxwin: Si tu prépares un script shell pour Linux, je connais quelques personnes que ceci pourrait intéresser. Merci d'avance...
Nuxwin
avatar
from Caen, devant mon bureau
190 posts

inspired from Bernard on Oct. 30 2007


Bernard :

Bonjour ;

Je peux bien faire ça mais je pense que Perl offrerais plus de possibilitées (La vérité c'est que je n'aime pas l'approche bash ).

Pour exemple, je pourrais coder un programme qui opererait récursivement dans l'archive amont de yacs à la recherche de modules. Ce programme extrairait les chaînes, crérait les fichiers *.pot et *.po.

Le programme serait invoqué avec x arguements offrant ainsi plusieurs possibilitées à l'utilisateur.

Bien entendu, il faudrait aussi penser à gérer les exceptions au niveau des noms de certains *.pot qui diffèrent des fichiers sources.

Qu'en pense-tu ?

Si tu as une idée précise de ce que ce programme devrais pouvoir accomplir, n'hésite pas.

Edit : Dans un premier temps, je pense qu'on pourrait axer le codage sur ton .bat. Voici le genre de résultat que l'utilisateur pourrait obtenir en mode debug :

nuxwin@dev:~/Desktop/20071024-yacs-7-10beta24.tgz_FILES/tools$ ./build_pot.pl -v
DEBUG: push_el() sub_name: BuildAll(), msg: Starting...
DEBUG: push_el() sub_name: xgettext(), msg: Starting...
DEBUG: push_el() sub_name: sys_command(), msg: Starting...
DEBUG: push_el() sub_name: sys_command('xgettext *.php --output=i18n/templates/root.pot --default-domain=root --keyword=c --keyword=nc:1,2 --keyword=s --keyword=ns:1,2 --language=php'), msg: Ending...
DEBUG: push_el() sub_name: xgettext(), msg: Ending...
DEBUG: push_el() sub_name: BuildAll(), msg: Ending...
...


J'attends tes idées pour continuer.

Nuxwin Team
Bernard
avatar
from nearby-an-airport
Associate, 6745 posts

on Oct. 30 2007


Et bien, cela m'irait très bien, le propos étant d'avoir, pour les Unixiens, une solution complète d'extraction des chaînes de caractères et de fabrication des .pot et des .po de référence, équivalente à celle utilisée aujourd'hui sous Windows.

Donc une commande qui analyse l'ensemble des scripts et qui, module par module, recrée le contenu des répertoires i18n/templates et aussi i18n/locale/en et i18n/locale/fr.

Idéalement, une deuxième commande pourrait être fabriquée pour rafraichir les .po dans une autre langue. Merci par avance...
Nuxwin
avatar
from Caen, devant mon bureau
190 posts

on Nov. 1 2007


Bernard :

Bonsoir ;

Je fais suite à notre discussion en te demandant si tu peux arranger ceci (je suis une vrai courge en anglais) :

$0 Ver $VERSION

This script generates all language files for YACS.
See http://www.yetanothercommunitysystem.com
for more information about YACS Project.

Usage: $0 [option] [option] [option]
example : $0 --buildall --locale=fr

-?, -h, --help display this helpscreen and exit

-b=#, --buildall build all language files (*.pot, *.po, *.mo)
Note : For *.po file, update if exist

-G=#, --Genpot=# Generates all *.pot files for one or more
specified modules
ex: --Genpot=actions for one module or
--Genpot=actions-categories for any modules
Note : with ( all ) argv, this option will be generate
*.pot files for all modules

-g=#, --genpo=# Generates all *.po files for one or more specified modules
ex: --genpo=actions (for one module) or
--genpo=actions-categories ( for more modules )
Note: The files *.pot must have been previously created.

-u=#, --updatepo=# Update all *.po files for one or more specified modules
ex : --updatepo=actions for one module or
--updatepo=actions-categories for more modules

-c=#, --compile Compile *.mo file for one or more specified modules
ex: --compile=root ( for one module ) or
--compile=root-actions ( for more modules )
Note: The files *.po must have been previously created.

-l=#, --locale=# build language files for specified locale(s)
ex : --locale=fr ( for one locale ) or
--locale=fr-es for more locales

-d, --debug enable debug mode

General Note : If the --locale option is not set, the default
language selected is English (en).

! ! ! Do not execute this script with mixed options :
(buildall, Genpot, genpo, updatepo, compile). ! ! !


D'avance merci.

Nuxwin Team
Bernard
avatar
from nearby-an-airport
Associate, 6745 posts

inspired from nuxwin on Nov. 1 2007


Pour information, courge se dit squash en anglais

$0 Ver $VERSION

This script generates all language files for YACS.
See http://www.yetanothercommunitysystem.com
for more information about the YACS Project.

Usage: $0 [option] [option] [option]
example: $0 --buildall --locale=fr

-?, -h, --help display this help screen and exit

-b=#, --buildall build all language files (*.pot, *.po, *.mo)
Note: also update *.po files if they exist

-G=#, --Genpot=# Generates all *.pot files for one or more
specified modules
ex: --Genpot=actions for one module or
--Genpot=actions-categories for any modules
Note: with ( all ) argv, this option will generate
*.pot files for all modules

-g=#, --genpo=# Generates all *.po files for specified modules
ex: --genpo=actions (for one module) or
--genpo=actions-categories ( for more modules )
Note: The *.pot files must exist.

-u=#, --updatepo=# Update all *.po files for specified modules
ex : --updatepo=actions for one module or
--updatepo=actions-categories for more modules

-c=#, --compile Compile *.mo file for specified modules
ex: --compile=root ( for one module ) or
--compile=root-actions ( for more modules )
Note: The *.po files must exist.

-l=#, --locale=# build language files for specified locale(s)
ex : --locale=fr ( for one locale ) or
--locale=fr-es for more locales

-d, --debug enable debug mode

General Note : If the --locale option is not set, the default
language selected is English (en).

! ! ! Do not execute this script with mixed options :
(buildall, Genpot, genpo, updatepo, compile). ! ! !


A faire tester et vérifier par NickR, à l'occasion, et un grand merci pour ce boulot. Tu vas faire des heureux chez les Linuxiens...
Nuxwin
avatar
from Caen, devant mon bureau
190 posts

on Nov. 2 2007


Bonjour ;

Dans le cadre du développement du présent script, je suis entrain de mettre en place certaines règles au niveau du nom des locales que l'utilisateur peut passer à l'option --locale.

Je voulais donc savoir si on devais simplement autoriser la définition ISO 639 soit :

# Set Locales
our $LOCALES = [];

if($opt{locale} =~ /^[a-z]{2}$/) { # According RFC3066 - One locale

@$LOCALES = $opt{locale};

} elsif ($opt{locale} =~ /^[a-z]{2}(-[a-z]{2})*$/) { # According RFC3066 - More locales

@$LOCALES = split /-/, $opt{locale};

} else {
usage("Invalid --locale option");
}


Ou modifier ces règles de façon à accepter la définition ISO 3166-1.

Merci d'avance pour la réponse.

Ps : Merci pour la rectification du helper.

Nuxwin Team
Agnès
avatar
from le Grésivaudan (grenoble-chambéry)
Associate, 2032 posts

on Nov. 2 2007


Nuxwin : J'avoue que je ne comprends pas tout à votre discussion technique mais je peux t'assurer que je suis tout cela avec un grand intérêt. Je fais partie de ceux qui te remercieront bôôôôcoup de cette contribution chinese !
Bernard
avatar
from nearby-an-airport
Associate, 6745 posts

inspired from nuxwin on Nov. 4 2007


Nuxwin: Tu me poses une colle, mais on pourrait au mons démarrer avec la première spécification, qui est aussi un RFC comme signalé dans ton code, et puis voir venir ensuite non ?
Nuxwin
avatar
from Caen, devant mon bureau
190 posts

inspired from Bernard on Nov. 4 2007


Bernard :

Oui, pas de problème, de toute façon, on pourra toujours modifier la chose si besoin.

Je pense pouvoir fournir une première version ce jour. Par contre, faudra me dire comment je dois la publier.

Merci.

@agnes : Merci pour les encouragements

Nuxwin Team
Nuxwin
avatar
from Caen, devant mon bureau
190 posts

on Nov. 4 2007


unix_build_pot.pl - v1.00 : Création des fichiers de langue pour le projet YACS

Ci-joint une première version du script à renommer en unix_build_pot.pl. Doit être placé dans le dossier ./tools et un chmod 0750 doit être appliqué dessus pour qu'il puisse être exécuté. A noter que l'utilisateur unix qui l'exécute doit avoir le droit d'écriture dans l'archive Yacs.

UTILISATION :

Ce programme permet aux utilisateurs des systèmes GNU-linux de créer automatiquement tous les fichiers de langues du projets YACS pour une localisation respectant la spécification ISO 639 (e.g. 'en', 'fr', 'ar'...) décrite dans la RFC 3066. A noter que dans l'immédiat, ce programme ne gère pas la spécification ISO 3166-1 (eg. 'en-uk', 'zh-cn' ...).

Ce script peut être exécuté avec ou sans option(s).

Exécuté sans option, ce script contruira les fichiers *.pot (Portable Object Template), *.po (Portable Object) et *.mo (Machine Object) de tous les modules du projet YACS, étant précisé que la localisation selectionnée par défaut est l'anglais.

Comme évoqué ci-avant, le programme peut être invoqué avec une ou des options passées sur la ligne de commandes.

Les options disponibles sont les suivantes :

-?, h, help Cette option affiche l'aide d'utilisation du script en Anglais

-a, --availablesmod Cette option permet à l'utilisateur de prendre connaissance de la liste des modules disponibles.

-b, --buildall=# Cette option permet à l'utilisateur de spécifier en argument un ou plusieurs modules pour lesquels les fichiers *.pot, *.po et *.mo seront générés. Si pour un module donné, le fichier *.po existe déjà, il sera simplement mis à jour.

Si l'utilisateur passe l'agument ( all ) à cette option, les fichiers seront générés pour l'ensemble des modules disponibles.

-G, --Genpot=# Cette option permet à l'utilisateur de spécifier en argument un ou plusieurs modules pour lesquels les fichiers *.pot seront générés.

Si l'utilisateur passe l'argument ( all ) à cette option, les fichers *.pot seront générés pour l'ensemble des modules disponibles.

A noter que la création des fichier *.pot est indépendante de la localisation.

-g, --genpo=# Cette option permet à l'utilisateur de spécifier en argument un ou plusieurs modules pour lesquels les fichiers *.po seront générés. Si pour un module donné, le fichier *.po existe déjà, il sera simplement mis à jour.

A noter que les fichiers *.pot rattachés au modules spécifiés doivent exister.

-u, --updatepo=# Cette option permet à l'utilisateur de spécifier en argument un ou plusieurs modules pour lesquels les fichiers *.po seront mis à jour.

Si l'utilisateur passe l'argument ( all ) à cette option, la mise à jour sera effectuée pour les fichiers *.po de tous les modules disponibles.

A noter que les fichiers *.po rattachés aux modules spécifiés doivent exister.

-c, --compile=# Cette option permet à l'utilisateur de spécifier en argument un ou plusieurs modules pour lesquels les fichiers *.mo seront générés.

A noter que les fichiers *.po des modules concernés doivent exister.

-l, --locale=# Cette option permet à l'utilisateur de specifier en argument une ou plusieurs localisation. Cette option peut être associée aux options buildall, genpo, updatepo et compile.

Pour ce qui concerne l'association de cette option avec les options updatepo et compile, il s'agit uniquement de préciser la où les localisations pour lesquelles on souhaite soit mettre les fichiers *.po à jour soit créer les fichiers *.mo.

A noter que si l'option locale n'est pas paramétrée explicitement par l'utilisateur, la localisation selectionnée par défaut sera l'anglais ( en ).

-d, v, debug, --verbose Active le mode debug

Vous noterez que le mixage des options availablesmod, buildall, Genpot, genpo, updatepo et --compile n'est pas permis. Si vous tentez un mixage, une erreur sera retournée par le programme.

Note complémentaire : Ce script à été développé de manière à ce que l'utilisateur final puisse effectuer des actions liées à la localisation de manière dirigée. Si le but est simplement de créer tous les fichiers de langue pour les localisation en et fr, comme le fait déjà le script dédié aux plateformes windows (script ./tools/script build_i18n.bat), l'utilisateur doit simplement exécuter le programme avec les options suivantes :
./unix_build.pot --locale=en-fr
ou
./unix_build.pot --buildall=all --locale=en-fr
Enfin, si le but est simplement de mettre à jour les fichiers *.po pour la localisation fr, comme le fait déjà le script dédié aux plateformes windows (script ./tools/update_i18n.bat), l'utilisateur doit simplement exécuter le programme avec les options suivantes :
./unix_build_pot.pl --updatepo=all --locale=fr


Note de conception : Le présent script est écrit en perl. Il ne requière pas de modules spéficiques supplémentaires que ceux installés avec perl de base.

Le script à été testé sur Debian Etch et devrait normalement fonctionner correctement avec toutes les plateformes Linux.

Note aux développeurs du projet YACS :

Le liste des modules disponibles est incluse en dur dans le code source du programme. Si vous ajoutez ou supprimez un module du projet, il vous suffit d'éditer le tableau listant tous les modules soit la partie suivante du code :

our $MODULES = ["root", "actions", "agents", "articles", "behaviors", "categories", "codes", "collections", "comments", "control", "dates", "decisions", "feeds", "files", "i18n", "images", "letters", "links", "locations", "overlays", "scripts", "sections", "servers", "services", "shared", "skins", "smileys", "tools", "tables", "users", "versions"];


Ne pas hésiter à me faire part de vos remarques (bonnes ou mauvaises)

Nuxwin Team

Fichier joint : unix_build_pot.pl

Last Update : - Nov 05 - 01:27
Agnès
avatar
from le Grésivaudan (grenoble-chambéry)
Associate, 2032 posts

on Nov. 12 2007


Nuxwin : c'est un bien joli travail ! Et la doc ira avec, merci.

On va bientôt pouvoir compléter la doc et faire l'annonce

J'ai pas encore eu le temps de tester ton script, désolée, je suis débordée en ce moment. Mais je promets de le faire bientôt. Nick devrai pouvoir nous en dire plus... plus vite
-----
Agnès
Il n'y a pas de problèmes, que des solutions.
Agnès
avatar
from le Grésivaudan (grenoble-chambéry)
Associate, 2032 posts

inspired from nuxwin on Dec. 20 2007


Nuxwin : J'ai un overlay à localiser en français.

J'ai mis le script dans /tools (extension.pl), et mon overlay dans le répertoire overlays.

Quels sont les prérequis sur ma machine ? Car quand je lance la commande, je récolte un "commande introuvable". J'avais commencé en tapant "unix_build...", puis j'ai vu qu'en fait c'était "unix-build...", enfin, j'ai essayé avec et sans l'extension : même résultat.

La commande que j'ai tapée (en étant dans le répertoire tools) : unix-build-pot.pl --updatepo=overlays --locale=fr

Je suis sous ubuntu 7.04. Il y a des librairies perl installées - mais pas de serveur apache sur ma machine, je pense pas en avoir besoin.

Faut-il vérifier d'autres choses ? (par ex. je me souviens sous windows, il m'a fallu installer gettext (là j'ai gettext et gettext-base d'installés) et rajouter un truc dans PATH pour que ça fonctionne - et là, y'a quelque chose du même genre à faire ? si oui où et comment ?

Mais qu'est-ce que j'ai donc oublié là ?
Agnès
avatar
from le Grésivaudan (grenoble-chambéry)
Associate, 2032 posts

inspired from Agnès on Dec. 20 2007


Nuxwin : 'a y est, j'ai trouvé mes coquilles !

Alors résultat :
  • se fier à la ligne de commande sous linux, plus claire que l'interface graphique (sous gnome au moins) pour faire un chmod digne de ce nom
  • avoir un Tof dans les parages (meeeeerci Tof ) pour se faire expliquer le pourquoi du comment du ./ avant le nom du script Les joies du PATH (quand même plus facile sous linux je trouve).


Encore un peu plus cultivée aujourd'hui
Agnès
avatar
from le Grésivaudan (grenoble-chambéry)
Associate, 2032 posts

inspired from Agnès on Dec. 20 2007


Coucou, encore moi, avec un message qui me déroute :

je tape ./unix-build-pot.pl --Genpot=all et le script me renvoie :
./unix-build-pot.pl --Genpot=all xgettext: Chaîne non-ASCII repérée à overlays/recipelevel.php:31. Veuillez spécifier l'encodage de la source avec l'option « --from-code »..

Qu'est-ce à dire ? L'overlay (celui que j'ai retravaillé) est sur la base de recipe. J'ai rajouté des champs, et pile poil le premier est à la ligne 31. Pour autant, le script est encodé en UTF-8, mais comme tous les autres. Alors pourquoi il râle juste sur le bout de texte que j'ai tapé ? Ce sont des mots, juste des mots (donc des lettres toutes bêtes), entre quote : $label = i18n::s('Level of the recipe');. Pas d'accents et autres trucs bizarres (que j'aurai encodé de toutes manières).

Comment sortir de ça ? une idée, quelqu'un ?

Sinon, c'est quoi la syntaxe de l'option --from-code ?
Agnès
avatar
from le Grésivaudan (grenoble-chambéry)
Associate, 2032 posts

on Dec. 21 2007


Allez, ça finit par fonctionner. Voilà où ce sont situés les problèmes :
  • tout d'abord (merci pour l'info bernard), les sources sont en ASCII et pas UTF-8. Bien que, si j'ai compris ce que j'ai lu de-ci de-là, l'UTF-8 récupère les codes ASCII... (donc du coup, je suis un peu larguée, mais bon), j'ai tenté d'enregistrer mon script en ISO-8859-1 : résultat : que dalle, même message, même punition. J'ai même tenté un copié-collé dans un fichier neuf, avec enregistrement par défaut en ascii : toujours pareil.
  • en désespoir de cause, il s'avère qu'a la ligne du dessus, dans le commentaire, j'avais un caractère accentué que je n'avais pas écrit en ascii (un é). Bingo : ôter cet accent à suffit à résoudre le problème. Donc j'ai enfin mes templates ! (tout ça pour traduire 4 mots, c'est plus de la culture, c'est du gavage vitesse grand V).


Reste à comprendre pourquoi le message d'erreur de xgettext mentionne la ligne 31 si le problème se situe ligne 30...
Nuxwin
avatar
from Caen, devant mon bureau
190 posts

inspired from Agnès on Dec. 21 2007


Agnès :

bonsoir ;

Je suis désolé, de ne pas t'avoir répondu en tant et en heures mais je viens seulement de prendre connaissance de tes posts.

Bien que tu es réussie à tant sortir, est-ce qu'en définitif ce script fonctionne correctement, pense tu qu'il faut apporter des modifications ?

Pour ce qui concerne le problème concernant le format d'entrée (ACSII), j'avoue que j'ai pas bien compris, tu peux ré-expliquer ?
Agnès
avatar
from le Grésivaudan (grenoble-chambéry)
Associate, 2032 posts

on Dec. 21 2007


Nuxwin : pour le script, voici ce que j'ai fait :
  • j'ai construit, à partir d'une arborescence de la 7.12, tous les templates (Genpot=all)
  • j'ai demandé la génération des .po en français et anglais (genpo=all locale=en-fr) (je voulais en profiter pour corriger certaines coquilles que j'ai pu remarquer, en plus de mon overlay).
Mais quand j'édite overlays.po, impossible de l'enregistrer correctement sous poEdit, il y a des erreurs (missing 'msgstr' section).

En mettant à jour via ton script overlays.po (updatepo=overlays --locale=en-fr), je récolte ceci sur la console :
...:~/Desktop/712test/tools$ ./unix-build-pot.pl --updatepo=overlays --locale=fr
i18n/locale/fr/overlays.po:26: Section « msgstr » absente
...
i18n/locale/fr/overlays.po:786: Section « msgstr » absente
i18n/locale/fr/overlays.po:813: La première forme du pluriel a un indice non nul
i18n/locale/fr/overlays.po:817: Section « msgstr » absente
i18n/locale/fr/overlays.po:821: Section « msgstr » absente
i18n/locale/fr/overlays.po:825: Section « msgstr » absente
msgmerge: 100 erreurs fatales trouvées


Bref, je comprends pas tout, mais j'ai une cagouille quelque part - et je sais pas du tout d'où ça vient, y compris moi peut-être.

Je te joins le script (à peine) modifié qui me pose problème, si tu veux faire des tests - au moins pour voir si ton script est hors de cause. Je me tournerai alors vers mon espace entre la chaise et le clavier...).

Pour les messages, pas de soucis. Le transfert du domaine de Yetanoz a duré quelques bonnes paires d'heures, et si le contenu était hébergé sur paxer.info - donc j'ai pu poster - les mails n'étaient plus en service le temps du transfert - donc pas d'alerte.

Enfin, pour l'ascii, je comprends pas tout non plus. En fait, j'avais simplement fait une erreur puisque j'avais laissé un caractère accentué sans le coder - le coup de l'erreur entre la chaise et le clavier, classique).
Agnès
avatar
from le Grésivaudan (grenoble-chambéry)
Associate, 2032 posts

inspired from Agnès on Dec. 21 2007


(le fichier n'est pas passé, je retente)

[file=709]
Nuxwin
avatar
from Caen, devant mon bureau
190 posts

on Dec. 22 2007


Agnès :

Bonjour ;

Voici la procédure suivie lors d'un premier teste :

Dans un premier temps, j'ai effectué un teste sans ton script pour voir le comportement général.

Voici un sommaire des opérations effectuées lors de ce teste :
  • Création d'un répertoire dédié au teste ;
  • Récupération et désachivage de la dernière version de yacs (7.12) ;
  • Récupération du script ./unix-build-pot et renommage ;
  • Génération des fichiers *.pot pour tous les modules ;
  • Génération des fichiers *.po pour tous les modules mais seulement pour la localisation en ;
  • Récupération de l'archive contenant les fichiers *.po existant pour la localisation fr (version 7.10) sur le serveur de référence et désarchivage ;
  • Placement des fichiers *.po (localisation fr) dans le répertoire ./i18n/locale/fr de l'arborecence de yacs (7.12) ;
  • Mise à jour des fichiers *.po (localisation fr) à partir des fichiers *.pot précédement générés ;
  • Ouverture du fichier ./i18n/locale/fr/overlays.po avec poEdit, modification d'une chaîne et enregistrement ;
  • Mise à jour du fichier *.mo afférent


1. Dans le répertoire /home/nuxwin/Desktop, j'ai créé un nouveau répertoire nommé ./agnes dans lequel j'ai créé un autre répertoire nommé ./yacs :

nuxwin@dev:~$ cd ~/Desk*
nuxwin@dev:~/Desktop$ mkdir -p ./agnes/yacs


2. J'ai récupéré la version 7.12 de yacs et je l'ai décompressée dans le dossier ./agnes/yacs :

nuxwin@dev:~/Desktop$ cd ./agnes/yacs
nuxwin@dev:~/Desktop/agnes/yacs$ wget http://www.yetanothercommunitysystem.com/file-fetch/148-20071217_yacs_7.12.tgz && tar xzf *


3. J'ai téléchargé le script ./unix-build-pot que j'ai placé dans le dossier ./tools de yacs :

nuxwin@dev:~/Desktop/agnes/yacs$ cd ./tools && wget http://www.yetanothercommunitysystem.com/file-fetch/679-unix-build-pot.txt


4. J'ai renommé le script en ./unix-build-pot et je lui ai appliqué un chmod 0755 afin de pouvoir l'exécuter :

nuxwin@dev:~/Desktop/agnes/yacs/tools$ mv *unix-build-pot.txt unix-build-pot && chmod 0755 ./unix-build-pot


5. J'ai généré tous les fichiers *.pot :

nuxwin@dev:~/Desktop/agnes/yacs/tools$ ./unix-build-pot --Genpot=all


6. J'ai généré les fichiers *.po pour tous les modules mais seulement pour la localisation en :

nuxwin@dev:~/Desktop/agnes/yacs/tools$ ./unix-build-pot --genpo=all


7. J'ai récupéré l'archive contenant les fichiers *.po de la version 7.10 sur le serveur de référence (de façon à ne pas devoir tout re-traduir) et je l'ai décompressée dans le dossier ./agnes :

nuxwin@dev:~/Desktop/agnes/yacs/tools$ cd ../.. && wget http://www.yetanothercommunitysystem.com/file-fetch/676-20071103-yacs7-10-i18n-locale-fr.tgz && tar xzf *-20071103-yacs7-10-i18n-locale-fr.tgz


8. J'ai placé tous les fichiers *.po de la localisation fr dans le dossier ./i18n/locale/fr de l'aborecence de yacs (7.12) :

nuxwin@dev:~/Desktop/agnes/$ mv ./i18n/locale/fr/*.po ./yacs/i18n/locale/fr/


9. Comme je ne suis pas membre de l'équipe de traduction et que je ne savais donc pas si de nouvelles chaînes avaient été ajoutées entre la version 7.10 et la version 7.12, j'ai fait une mise à jour des fichiers *.po (localisation fr) à partir des fichiers *.pot précédement créés :

nuxwin@dev:~/Desktop/agnes/$ cd ./yacs/tools && ./unix-build-pot --updatepo=all --locale=fr


10. J'ai ensuite ouvert le fichier ./overlay.po (localisation fr) avec poEdit et je me suis amusé à modifier la traduction de la première chaîne :

#: overlays/contact.php:56
msgid "Mail address:"
msgstr "Adresse postale :"


11. J'ai enregistré le fichier et voici les modifications y apparaissant :

msgid ""
msgstr ""
"Project-Id-Version: YACS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2007-12-22 02:00+0100\n"
"PO-Revision-Date: 2007-12-22 02:38+0100\n"
"Last-Translator: Laurent DECLERCQ \n"
"Language-Team: Agnès Rambaud, Bernard Paques\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n>1);\n"
"X-Poedit-Country: FRANCE\n"
"X-Poedit-SourceCharset: utf-8\n"

#: overlays/contact.php:56
msgid "Mail address:"
msgstr "Courriel :"


12. Enfin, j'ai procédé à une mise à jour du fichier *.mo afférent :

nuxwin@dev:~/Desktop/agnes/yacs/tools$ ./unix-build-pot --compile=overlays --locale=fr
168 messages traduits.


Lors de ce teste, je n'ai rencontré aucunes erreurs, que cela soit avec le script ou encore poEdit.

Le deuxième teste consistera à placer ton script dans le répertoire du module overlays, recréer le fichier *.pot du module overlays pour la prise en comptes des nouvelles chaînes présentes dans ton script, mettre le *.po du module overlays à jour, faire une tentative d'edition et enregistrement avec poEdit et enfin mettre à jour le *.mo afférent.
Nuxwin
avatar
from Caen, devant mon bureau
190 posts

on Dec. 22 2007


Agnes :

Le fichier communiqué est identique à celui contenu dans l'archive de la version 7.12 de yacs. J'ai fait un diff pour m'en assurer.

Ne te serais-tu pas trompé de fichier ?
Agnès
avatar
from le Grésivaudan (grenoble-chambéry)
Associate, 2032 posts

on Dec. 22 2007




Bien sûr que je me suis trompée de fichier - désolée. Le voici.

Sinon, j'ai fais comme toi - en récupérant les traductions de la 7.10 également. J'ajoute que sous poEdit, lorsque j'ouvre recipelevel.po, je n'ai aucune traduction. Je demande alors la traduction à partir de la mémoire de traduction - j'ai indiqué en paramètres le répertoire I18n et il récupère toutes les chaînes contenues dans les dossiers locale pour construire la base de données. Dans la procédure, il faut ensuite transformer ces traductions "approximatives" en traductions validées. Il y a en principe 3 nouvelles chaînes à traduire pour mon overlays, et il m'a placé des chaînes par défaut qui n'ont rien à voir, mais du coup il n'apparaît pas de chaînes manquantes.

Enfin, après plusieurs passages de ton script avec des erreurs sous poEdit, j'ai demandé uniquement la génération des .po du module overlays et c'est là que j'ai les messages d'erreurs que j'ai mentionné lors d'un précédent message.

Je ne maîtrise pas trop poEdit, je ne sais pas si je peux faire plus simple. Merci de tes tests. Je sais pas si j'aurai le temps d'en faire d'autres aujourd'hui.


Agnès
Il n'y a pas de problèmes, que des solutions.

recipelevel-php.zip
Nuxwin
avatar
from Caen, devant mon bureau
190 posts

on Dec. 22 2007


" Bonjour ;

Pas de problèmes (comme tu dirais, y a que des solutions) , je vais tester tout ça.

Pour poEdit, je vais te faire un tuto en images. "


Ps : Afin que je teste sous le même environnement, peux tu me dire sous quelle version d'Ubuntu tu tourne et me dire quelle locales par défaut utilise tu sur ton systeme ?

D'avance merci.
Agnès
avatar
from le Grésivaudan (grenoble-chambéry)
Associate, 2032 posts

inspired from nuxwin on Dec. 22 2007


" Ps : Afin que je teste sous le même environnement, peux tu me dire sous quelle version d'Ubuntu tu tourne et me dire quelle locales par défaut utilise tu sur ton systeme ?

D'avance merci. "


Je suis sous ubuntu 7.04. Pour les locales ( ) ça doit être un truc du genre "tout par défaut" - et en français tant qu'à faire - moi juste utilisatrice quasiment "de base".

Merci d'avance de ton regard éclairé et attentif
Nuxwin
avatar
from Caen, devant mon bureau
190 posts

on Dec. 22 2007


Agnès :

Deuxième teste (avec ton script --> recipelevel.php )

Note : Pour rappel, j'avais précedement effectué les opérations suivantes (cf. teste1 ci-avant) :
  • Création d'un répertoire dédié au teste ;
  • Récupération et désachivage de la dernière version de yacs (7.12) ;
  • Récupération du script ./unix-build-pot, placement dans le répertoire ./tools de l'arborescence de yacs version 7.12 et renommage ;
  • Génération des fichiers *.pot pour tous les modules ;
  • Génération des fichier *.po pour tous les modules mais seulement pour la localisation en ;
  • Récupération de l'archive contenant les fichier *.po existant pour la localisation fr (version 7.10) sur le serveur de référence et désarchivage ;
  • Placement des fichiers *.po (localisation fr) dans le répertoire ./i18n/locale/fr de l'arborecence de yacs (7.12) ;
  • Mise à jour des fichiers *.po (localisation fr) à partir des fichiers *.pot précédement générés ;
  • Ouverture du fichier ./i18n/locale/fr/overlays.po avec poEdit, modification d'une chaîne et enregistrement ;
  • Mise à jour du fichier *.mo afférent

Voici un sommaire des opérations effectuées lors de ce nouveau teste (teste 2) :


  • Récupération et désarchivage de l'archive contenant ton script ( recipelevel.php ) dans le répertoire ./agnes ;
  • Edition du script ./agnes/recipelevel.php à l'aide de l'editeur Gedit et opération d'enregistrement pour passer d'un encodage ISO-8859-15 à UTF-8 ;
  • Copie du script ./agnes/recipelevel.php dans le répertoire du modules overlays de l'arborescence de yacs version 7.12;
  • Mise à jour du fichier ./overlays.pot à l'aide du script ./unix-build-pot ;
  • Edition du fichier ./overlays.pot à l'aide de l'éditeur Gedit pour mettre en évidence les nouvelles chaines (en effectuant une recherche sur le nom du script recipelevel.php ) ;
  • Mise à jour des fichiers ./ovelays.po ( localisation en et fr ) à l'aide du script ./unix-build-pot ;
  • Edition du fichier ./overlays.po ( localisation fr ) à l'aide de l'éditeur Gedit pour mettre en évidence les nouvelles chaînes ;
  • Edition du fichier ./overlays.po ( localisation fr ) à l'aide de poEdit et traduction de trois chaines ;
  • Edition du fichier ./overlays.po ( localisation fr ) à l'aide de l'éditeur Gedit pour vérification;
  • Mise à jour des fichiers ./overlays.mo (localisation en et fr).

Détails de la procédure suivie :


1. J'ai récupéré ton script --> ./recipelevel.php, et je l'ai décompressé dans le dossier ./agnes :

nuxwin@dev:~$ cd ~/Desktop/agnes
nuxwin@dev:~/Desktop/agnes$ wget http://www.yetanothercommunitysystem.com/file-fetch/710-recipelevel-php.zip && unzip 710-recipelevel-php.zip


2. J'ai édité le fichier ./recipelevel.php avec l'éditeur de texte Gedit et j'ai fait : Fichier --> Enregistrer sous. Dans la nouvelle fenêtre qui s'est ouverte, pour le codage des caractères, j'ai selectionné l'option : UTF-8 (qui, sur mon système, est la locale par défaut). Lorsque Gedit m'a indiqué que le fichier existait déjà, j'ai cliqué sur le bouton 'Remplacer' pour l'écraser. Enfin, j'ai fermé l'editeur Gedit.

3. J'ai copié le script ./recipelevel.php dans le répertoire du module overlays :

nuxwin@dev:~/Desktop/agnes$ cp ./recipelevel.php ./yacs/overlays/


4. J'ai mis à jour le template ./overlays.pot en exécutant le script ./unix-build-pot :

nuxwin@dev:~/Desktop/agnes$ cd ./yacs/tools && ./unix-build-pot --Genpot=overlays


5. J'ai édité le fichier ./overlays.pot avec l'editeur Gedit et j'ai fait une recherche sur le nom de ton script soit : 'recipelevel.php' pour mettre en évidence la présence des nouvelles chaines. Le résultat de la recherche fut le suivant :

#: overlays/recipelevel.php:25 overlays/recipe.php:25
msgid "Persons to be served"
msgstr ""

#: overlays/recipelevel.php:27 overlays/recipe.php:27
msgid "Try to standardize your recipes for four people"
msgstr ""

#: overlays/recipelevel.php:31
msgid "Level of the recipe"
msgstr ""

#: overlays/recipelevel.php:33
msgid "From 1 (kids) to 3 (experts)"
msgstr ""

#: overlays/recipelevel.php:37 overlays/recipe.php:31
msgid "Time to prepare"
msgstr ""

#: overlays/recipelevel.php:39 overlays/recipe.php:33
msgid "Do not take into account cooking time"
msgstr ""

#: overlays/recipelevel.php:43 overlays/recipe.php:37
msgid "Time to cook"
msgstr ""

#: overlays/recipelevel.php:45 overlays/recipe.php:39
msgid "Do not take into account time to heat the owen"
msgstr ""

#: overlays/recipelevel.php:49 overlays/recipe.php:43
msgid "Ingredients"
msgstr ""

#: overlays/recipelevel.php:51 overlays/recipe.php:45
msgid "Type each ingredient on one separate line starting with a '-' character"
msgstr ""

#: overlays/recipelevel.php:80 overlays/recipe.php:74
msgid "Preparation steps"
msgstr ""

#: overlays/recipelevel.php:85 overlays/recipe.php:79
msgid "We are trying to standardize recipes for 4 people."
msgstr ""

#: overlays/recipelevel.php:94 overlays/recipe.php:88
msgid "Modify one recipe"
msgstr ""

#: overlays/recipelevel.php:97 overlays/recipe.php:91
msgid "Delete one recipe"
msgstr ""

#: overlays/recipelevel.php:100 overlays/recipe.php:94
msgid "Post a new recipe"
msgstr ""

#: overlays/recipelevel.php:137 overlays/recipe.php:131
#, php-format
msgid "People to be served: %s"
msgstr ""

#: overlays/recipelevel.php:140
#, php-format
msgid "Level of the recipe: %s"
msgstr ""

#: overlays/recipelevel.php:143 overlays/recipe.php:134
#, php-format
msgid "Time to prepare: %s"
msgstr ""

#: overlays/recipelevel.php:146 overlays/recipe.php:137
#, php-format
msgid "Cooking time: %s"
msgstr ""

#: overlays/recipelevel.php:149 overlays/recipe.php:140
#, php-format
msgid "Ingredients: %s"
msgstr ""


Ici, comme tu peux aisément le constater, la plupart des chaînes présentes dans le script importé ( ./recipelevel.php ) sont identiques à celles présentes dans le scripts nommé ./overlays/recipe.php. Les seules nouvelles chaînes à traduire sont situées aux lignes 31, 33 et 140 du script importé ( ./recipelevel.php ).

6. J'ai mis à jour le fichier ./overlays.po du module overlays pour les locales en et fr :

nuxwin@dev:~/Desktop/agnes$ ./unix-build-pot --updatepo=overlays --locale=en-fr
.................... terminé.
.................... terminé.
Note : Comme tu peux le voir au regard de la sortie du script, aucune erreur n'a été retournée lors de la mise à jour des fichiers ./overlays.po.

7. J'ai édité le fichier ./overlays.po ( localisation fr ) avec l'editeur Gedit et j'ai fait une recherche sur le nom de ton script soit : 'recipelevel.php' pour mettre en évidence la présence de nouvelles chaines. Le résultat de la recherche fut le suivant :

#: overlays/recipelevel.php:25 overlays/recipe.php:25
msgid "Persons to be served"
msgstr "Nombre de convives"

#: overlays/recipelevel.php:27 overlays/recipe.php:27
msgid "Try to standardize your recipes for four people"
msgstr "Autant que possible, prévoyez des recettes pour quatre personnes"

#: overlays/recipelevel.php:31
#, fuzzy
msgid "Level of the recipe"
msgstr "Supprimer une recette"

#: overlays/recipelevel.php:33
msgid "From 1 (kids) to 3 (experts)"
msgstr ""

#: overlays/recipelevel.php:37 overlays/recipe.php:31
msgid "Time to prepare"
msgstr "Temps de préparation"

#: overlays/recipelevel.php:39 overlays/recipe.php:33
msgid "Do not take into account cooking time"
msgstr "Ne comptez ni temps de cuisson, ni temps de macération"

#: overlays/recipelevel.php:43 overlays/recipe.php:37
msgid "Time to cook"
msgstr "Temps de cuisson"

#: overlays/recipelevel.php:45 overlays/recipe.php:39
msgid "Do not take into account time to heat the owen"
msgstr "Ne comptez pas le temps de préchauffage du four"

#: overlays/recipelevel.php:49 overlays/recipe.php:43
msgid "Ingredients"
msgstr "Ingrédients"

#: overlays/recipelevel.php:51 overlays/recipe.php:45
msgid "Type each ingredient on one separate line starting with a '-' character"
msgstr ""
"Indiquez chaque ingrédient sur une ligne séparée démarrant par le caractère "
"'-'"

#: overlays/recipelevel.php:80 overlays/recipe.php:74
msgid "Preparation steps"
msgstr "Etapes de la recette"

#: overlays/recipelevel.php:85 overlays/recipe.php:79
msgid "We are trying to standardize recipes for 4 people."
msgstr "Si possible, merci de standardiser vos recettes pour 4 convives."

#: overlays/recipelevel.php:94 overlays/recipe.php:88
msgid "Modify one recipe"
msgstr "Modifier une recette"

#: overlays/recipelevel.php:97 overlays/recipe.php:91
msgid "Delete one recipe"
msgstr "Supprimer une recette"

#: overlays/recipelevel.php:100 overlays/recipe.php:94
msgid "Post a new recipe"
msgstr "Publier une nouvelle recette"

#: overlays/recipelevel.php:137 overlays/recipe.php:131
#, php-format
msgid "People to be served: %s"
msgstr "Nombre de parts : %s"

#: overlays/recipelevel.php:140
#, fuzzy, php-format
msgid "Level of the recipe: %s"
msgstr "Supprimer une recette"

#: overlays/recipelevel.php:143 overlays/recipe.php:134
#, php-format
msgid "Time to prepare: %s"
msgstr "Temps de préparation : %s"

#: overlays/recipelevel.php:146 overlays/recipe.php:137
#, php-format
msgid "Cooking time: %s"
msgstr "Temps de cuisson : %s"

#: overlays/recipelevel.php:149 overlays/recipe.php:140
#, php-format
msgid "Ingredients: %s"
msgstr "Ingrédients : %s"


Comme évoqué à l'étape précédente, la pluparts des chaînes présentes dans le script importé (recipelevel.php) étaient déjà présentes dans le script ./overlays/recipe.php). De ce fait, nul besoin de les re-traduire. Nous avions noté que seules les chaînes situées aux lignes 31, 33 et 140 du script importé (recipelevel.php) devraient faire l'objet d'une attention particulière.

Ce faisant, ici que pouvons nous constater de nouveau ?

Les chaînes situées aux lignes 31, 140 du script recipelevel.php), se trouvent dans un état dit d'incohérence (marqueur fuzzy). Il s'agit en fait de nouvelles chaînes qui ont fait l'objet d'une traduction approximative lors de la mise à jour du fichier ./overlays.po.

Malheureusement une traduction approximative n'est pas synonyme de traduction correcte. Il faudra donc penser à modifier cet état d'incohérence (effectuer une traduction correcte) lorsque nous allons éditer le fichier ./overlays.po ( localisation fr ) avec poEdit. Ceci sera très facile puisque sous poEdit, toutes les chaînes se trouvant dans un état d'incohérence apparaissent sur fond jaune.

Enfin, la chaînes située à la ligne 33 du script ./recipelevel.php n'a quand à elle fait l'objet d'aucune traduction. En ce qui concerne cette chaîne, il nous suffira de la traduire à l'aide de poEdit, étant précisé que les chaînes non traduites apparaissent sur fond bleu sous ce dernier.

8. Après avoir dûment analisé le fichier ./overlays.po ( localisation fr ) avec l'éditeur Gedit, je l'ai refermé et je l'ai édité avec poEdit :

IMAGE 8.1

Comme tu peux le voir sur l'image jointe ci-dessus, nous retrouvons bien notre nouvelle chaine non traduite (ligne apparaissant sur fond bleu) ainsi que les deux lignes ayant fait l'objet d'une traduction approximative (lignes apparaissant sur fond jaune)

Ici, nous allons donc nous contenter de traduire c'est trois nouvelles chaînes.

Voici une capture de poEdit après traduction :

IMAGE 8_2

9. La traduction des trois chaînes étant terminée, j'ai enregistré le fichier et j'ai fermé poEdit.

10. J'ai ré-édité le fichier ./overlays.po ( localisation fr ) avec Gedit et j'ai effecuté une nouvelle recherche sur le nom de ton script 'recipelevel.php' pour vérifier que la traduction des trois chaines à bien été prise en compte. Voici le résultat que j'ai obtenu :

msgid ""
msgstr ""
"Project-Id-Version: YACS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2007-12-22 21:48+0100\n"
"PO-Revision-Date: 2007-12-22 22:37+0100\n"
"Last-Translator: Laurent DECLERCQ \n"
"Language-Team: Agnès Rambaud, Bernard Paques\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n>1);\n"
"X-Poedit-Country: FRANCE\n"
"X-Poedit-SourceCharset: utf-8\n"

...

#: overlays/recipelevel.php:27
#: overlays/recipe.php:27
msgid "Try to standardize your recipes for four people"
msgstr "Autant que possible, prévoyez des recettes pour quatre personnes"

#: overlays/recipelevel.php:31
msgid "Level of the recipe"
msgstr "Niveau de la recette"

#: overlays/recipelevel.php:33
msgid "From 1 (kids) to 3 (experts)"
msgstr "De 1 (enfants) pour 3 (experts)"

#: overlays/recipelevel.php:37
#: overlays/recipe.php:31
msgid "Time to prepare"
msgstr "Temps de préparation"

#: overlays/recipelevel.php:39
#: overlays/recipe.php:33
msgid "Do not take into account cooking time"
msgstr "Ne comptez ni temps de cuisson, ni temps de macération"

#: overlays/recipelevel.php:43
#: overlays/recipe.php:37
msgid "Time to cook"
msgstr "Temps de cuisson"

#: overlays/recipelevel.php:45
#: overlays/recipe.php:39
msgid "Do not take into account time to heat the owen"
msgstr "Ne comptez pas le temps de préchauffage du four"

#: overlays/recipelevel.php:49
#: overlays/recipe.php:43
msgid "Ingredients"
msgstr "Ingrédients"

#: overlays/recipelevel.php:51
#: overlays/recipe.php:45
msgid "Type each ingredient on one separate line starting with a '-' character"
msgstr "Indiquez chaque ingrédient sur une ligne séparée démarrant par le caractère '-'"

#: overlays/recipelevel.php:80
#: overlays/recipe.php:74
msgid "Preparation steps"
msgstr "Etapes de la recette"

#: overlays/recipelevel.php:85
#: overlays/recipe.php:79
msgid "We are trying to standardize recipes for 4 people."
msgstr "Si possible, merci de standardiser vos recettes pour 4 convives."

#: overlays/recipelevel.php:94
#: overlays/recipe.php:88
msgid "Modify one recipe"
msgstr "Modifier une recette"

#: overlays/recipelevel.php:97
#: overlays/recipe.php:91
msgid "Delete one recipe"
msgstr "Supprimer une recette"

#: overlays/recipelevel.php:100
#: overlays/recipe.php:94
msgid "Post a new recipe"
msgstr "Publier une nouvelle recette"

#: overlays/recipelevel.php:137
#: overlays/recipe.php:131
#, php-format
msgid "People to be served: %s"
msgstr "Nombre de parts : %s"

#: overlays/recipelevel.php:140
#, php-format
msgid "Level of the recipe: %s"
msgstr "Niveau de la recette: %s"

#: overlays/recipelevel.php:143
#: overlays/recipe.php:134
#, php-format
msgid "Time to prepare: %s"
msgstr "Temps de préparation : %s"

#: overlays/recipelevel.php:146
#: overlays/recipe.php:137
#, php-format
msgid "Cooking time: %s"
msgstr "Temps de cuisson : %s"

#: overlays/recipelevel.php:149
#: overlays/recipe.php:140
#, php-format
msgid "Ingredients: %s"
msgstr "Ingrédients : %s"

...


Comme tu peux le constater, les trois chaines qui nous interessent ont bien été traduites :

#: overlays/recipelevel.php:31
msgid "Level of the recipe"
msgstr "Niveau de la recette"

#: overlays/recipelevel.php:33
msgid "From 1 (kids) to 3 (experts)"
msgstr "De 1 (enfants) pour 3 (experts)"

#: overlays/recipelevel.php:140
#, php-format
msgid "Level of the recipe: %s"
msgstr "Niveau de la recette: %s"


11. Enfin, j'ai mis les fichiers ./overlays.mo ( localisation en et fr ) à jour.
nuxwin@dev:~/Desktop/agnes$ ./unix-build-pot --compile=overlays --locale=en-fr
171 messages traduits.
171 messages traduits.


Là encore, l'exécution du scripts n'a engengrée aucun problème particulier.

EN CONCLUSIONS :



Je te recommande de suivre au moin une fois les deux procédures (teste 1 et teste 2) à la lettre en prenant le soin de vérifier que la locale par défaut sur ton système et UTF-8 et non pas ISO-8859-15 ou encore ISO-8859-1. Pour le savoir facilement, ouvre Gedit et simule une opération d'enregistrement. Normalement, dans les paramètre d'encodage, la locale employée par défaut sur ton système devrait clairement être mise en évidence dans la liste.

Par ailleurs, comme tu as pu le constater, lorsque j'ai récupéré ton fichier, la première chose que j'ai fait, c'est de le passer en UTF-8. Peut-être que le problème vient de là chez toi car tu utilise un codage iso-8859-15 .

Enfin, en ce qui concerne l'exécution du script ./unix-build-pot, il faut que tu l'exécute toujours à partir du répertoire ./tools de l'arborescence de yacs. En effet, si tu es située dans un autre répertoire et que tu tente de l'exécuter en précisant le chemin, tu rencontreras des erreurs.

Pour exemple, si tu fait :

nuxwin@dev:~/Desktop/agnes$ ./yacs/tools/unix-build-pot [param]


Il y a de fortes chances que l'exécution échoue.

Tu dois donc faire :

nuxwin@dev:~/Desktop/agnes$ cd ./yacs/tools
nuxwin@dev:~/Desktop/agnes/yacs/tools$ ./unix-build-pot [param]


Esperant t'avoir suffisament éclairé sur la chose.

Ps : Désolé pour la longueur de cette réponse mais j'ai essayé de détaillé au maximum pour que tu puisse comprendre facilement la démarche.

Ps : Je suis entrain de mettre les images.
Agnès
avatar
from le Grésivaudan (grenoble-chambéry)
Associate, 2032 posts

inspired from nuxwin on Dec. 23 2007


Nuxwin : chinese

Alors là, je vais devoir transformer ton post en documentation !! si si !!

Mille merci, et j'ai enfin compris où était mon problème : j'ai d'abord eu des erreurs "d'encodage", dues à une erreur de ma part (un é écrit tel quel dans un commentaire : d'où un message de présence de texte non-ASCII), mais je ne savais pas encore où. Ce faisant, Bernard me dis que tous ces scripts sont en ASCII - alors que j'ai plutôt UTF-8 comme paramètre de base sur l'éditeur Bluefish que j'utilise en général). J'ai alors modifié l'encodage de mon script - sans bien comprendre, puisqu'à mon sens, l'UTF-8 devait convenir - avec gEdit. Mais j'avais toujours le message d'erreur, et ç'est là que j'ai repéré l'erreur sur le e accentué. J'ai tout recommencé, à peu près de la même manière que toi, mais je n'ai pas pensé à re-basculer mon script en UTF-8. Bien entendu, ça n'allait toujours pas à cause de l'encodage du script.

J'ai appris pas mal de choses à propos des formats d'encodage en deux jours, mais j'avais vraiment oublié le format de mon script !

Au final, après un ré-enregistrement en UTF-8, j'ai pu mener l'opération à son bon terme, en suivant tes explications vraiment tip-top. Merci encore

Alors te voilà gagnant :
  • de ma haute estime pour ton aide, cette contribution,
  • de mes remerciements pour ce script qui me permet de rester totalement sous linux pour bosser pour Yacs
  • d'une doc pour la traduction avec tout ce que tu a fait
  • et pis d'une grosse bise sur chaque joue
Avec mon anglais trop limite, l'aide de poEdit me rebute un peu et les mises à jour des scripts me posaient sérieusement problème. Mais avec ce script, tout est à portée de mains. Et ça, c'est un énOOOrme confort.

Enfin, cette histoire montre aussi que ta contribution est solide et que les erreurs sont entre la chaise et clavier comme dirait Moi-même !
Ben maintenant, je vais explorer les overlays moi

Merci merci encore
Nuxwin
avatar
from Caen, devant mon bureau
190 posts

on Jan. 2


@agnes

Merci pour ta gratitude.

Ps : Si tu transforme en doc, je te souhaite bon courage pour toutes les fautes d'ortho que j'ai faites.

Tags: po xgettext internationalisation i18n poEdit

Rate this page
Posted by Nuxwin on Oct. 29 2007, edited by Nuxwin on Jan. 2, (popular)