Locale::Po4a::Po.3pm

Autres langues

Langue: fr

Version: 2008-11-05 (ubuntu - 07/07/09)

Section: 3 (Bibliothèques de fonctions)

NOM

Locale::Po4a::Po - module de manipulation des fichiers po

SYNOPSIS

     use Locale::Po4a::Po;
     my $pofile=Locale::Po4a::Po->new();
 
     # Lit un fichier po
     $pofile->read('fichier.po');
 
     # Ajoute une entrA~Xe
     $pofile->push('msgid' => 'Hello', 'msgstr' => 'bonjour',
                   'flags' => "wrap", 'reference'=>'file.c:46');
 
     # Extrait la traduction
     $pofile->gettext("Hello"); # retourne 'bonjour'
 
     # A~Xcrit le rA~Xsultat dans un fichier
     $pofile->write('autrefichier.po');
 
 

DESCRIPTION

Locale::Po4a::Po est un module qui permet de manipuler des catalogues de messages. Vous pouvez lire et A~Xcrire dans/depuis un fichier (dont l'extension classique est po), vous pouvez construire de nouvelles entrA~Xes ou demander la traduction d'une chaA~Xne.

Pour une description plus complA~Xte des catalogues de messages dans le format po et leur utilisation, veuillez vous rA~XfA~Xrer A~  la documentation du programme gettext.

Ce module fait partie du projet po4a, dont l'objectif est d'utiliser les fichiers po (conA~Xus A~  l'origine pour la traduction des programmes) pour la traduction d'autres formats tels que la documentation (pages de manuel, manuels info), la description des paquets, les questionnaires debconf et toute chose pouvant bA~XnA~Xficier de ces mA~Xcanismes.

OPTIONS ACCEPTA~XES PAR CE MODULE

porefs
Ceci prA~Xcise le format des rA~XfA~Xrences. Les valeurs valables sont AX none AX pour ne pas produire de rA~XfA~Xrence, AX noline AX pour ne pas prA~Xciser les numA~Xros de ligne et AX full AX pour inclure des rA~XfA~Xrences complA~Xtes.

Fonctions A~  propos du catalogue entier

new()
CrA~Xe un nouveau catalogue. Si un paramA~Xtre est fourni, il s'agit du nom du fichier po A~  lire.
read($)
Lit un fichier po (dont le nom est fourni en paramA~Xtre). Les entrA~Xes prA~X-existantes dans self ne sont pas oubliA~Xes, et les nouvelles sont ajoutA~Xes A~  la fin du catalogue.
write($)
A~Xcrit le catalogue courant dans le fichier spA~XcifiA~X.
write_if_needed($$)
Comme write, mais si le fichier PO ou POT existe dA~XjA~ , l'objet sera A~Xcrit dans un fichier temporaire qui sera ensuite comparA~X avec le fichier existant pour vA~Xrifier que la mise A~  jour est nA~Xcessaire (ceci permet d'A~Xviter A~  changer le fichier POT juste pour mettre A~  jour une rA~XfA~Xrence de ligne ou le champ POT-Creation-Date).
gettextize($$)
Cette fonction produit un catalogue de messages traduits A~  partir de deux catalogues, l'original et la traduction. Ce processus est dA~Xcrit dans po4a(7) A~  la section Gettextization : Comment A~Xa marche ?.
filter($)
Cette fonction extrait un catalogue d'un autre. Seules les entrA~Xes ayant une rA~XfA~Xrence dans le fichier donnA~X seront placA~Xes dans le catalogue rA~Xsultant.

Cette fonction analyse son paramA~Xtre, le convertit en une dA~Xfinition de fonction Perl, A~Xvalue cette dA~Xfinition et filtre les champs pour lesquels cette fonction retourne AX true AX.

J'aime Perl par moments ;)

to_utf8()
RA~X-encode les chaA~Xnes msgstr du po en UTF-8. Ne fait rien si le jeu de caractA~Xres n'est pas spA~XcifiA~X dans le fichier po (la valeur du champ AX CHARSET AX) ou s'il est dA~XjA~  en UTF-8 ou ASCII.

Fonctions pour utiliser un catalogue de messages pour les traductions

gettext($%)
Recherche la traduction de la chaA~Xne, fournie en paramA~Xtre, dans le catalogue courant. Cette fonction retourne la chaA~Xne originelle (non traduite) si la chaA~Xne cherchA~Xe est introuvable.

AprA~Xs la chaA~Xne A~  traduire, vous pouvez passer un hachage de paramA~Xtres supplA~Xmentaires. Voici la liste des valeurs valables :

wrap
boolA~Xen indiquant si les espaces et retours chariot de la chaA~Xne peuvent A~Xtre modifiA~Xs. Si oui, la fonction utilise une forme canonique de la chaA~Xne lors de la recherche d'une traduction, et ajoute des retours A~  la ligne.
wrapcol
La colonne A~  laquelle les retours A~  la ligne doivent avoir lieu (76 par dA~Xfaut).
stats_get()
Retourne les statistiques sur le taux de rA~Xussite des requA~Xtes de traduction depuis la derniA~Xre fois que stats_clear() a A~XtA~X appelA~X. Notez qu'il ne s'agit pas des statistiques obtenues avec l'option --statistic de msgfmt. Ici, ce sont les statistiques de l'usage rA~Xcent du fichier tandis que msgfmt indique l'A~Xtat du fichier. Exemple d'utilisation :
     [une utilisation quelconque du fichier po pour des traductions]
 
     ($percent,$hit,$queries) = $pofile->stats_get();
     print "Pour l'instant, $percent\% des traductions cherchA~Xes ont A~XtA~X trouvA~Xes ($hit parmi $queries).\n";
 
 
stats_clear()
Oublie les statistiques sur la rA~Xussite de gettext.

Fonctions pour construire un catalogue de messages

push(%)
Ajoute une nouvelle entrA~Xe dans le catalogue courant. Les paramA~Xtres doivent A~Xtre un hachage. Les valeurs de clA~X valides sont :
msgid
la chaA~Xne dans la langue originale.
msgstr
la traduction.
reference
une indication de la localisation de cette chaA~Xne. Par exemple : file.c:46 (ce qui dA~Xsigne la ligne 46 du fichier file.c). Il peut s'agir d'une liste sA~XparA~Xe par des espaces dans le cas d'occurrences multiples.
comment
un commentaire ajoutA~X manuellement (par le traducteur). Le format est libre.
automatic
un commentaire ajoutA~X automatiquement par le programme d'extraction des chaA~Xnes. Veuillez vous rA~XfA~Xrer A~  l'option --add-comments du programme xgettext pour plus d'informations.
flags
liste de tous les drapeaux utilisA~Xs pour cette entrA~Xe (sA~XparA~Xs par des espaces).

Les valeurs valides sont : c-text, python-text, lisp-text, elisp-text, librep-text, smalltalk-text, java-text, awk-text, object-pascal-text, ycp-text, tcl-text, wrap, no-wrap et fuzzy.

Voir la documentation de gettext pour leur signification.

type
Il s'agit principalement d'un paramA~Xtre interne utilisA~X lors de la gettextisation des documents. Le but est d'analyser A~  la fois le document d'origine et la traduction sous la forme d'objet po, et de les combiner en utilisant les msgid de l'un comme msgid et les msgid de l'autre comme msgstr. Afin de s'assurer que les choses se dA~Xroulent correctement, un type dA~Xpendant de son rA~Xle syntaxique dans le document (comme AX chapt AX, AX sect1 AX, AX p AX pour un docbook) est attribuA~X A~  chaque chaA~Xne. Si deux chaA~Xnes sur le point d'A~Xtre appariA~Xes sont de types diffA~Xrents, cela signifie que les deux fichiers ne partagent pas la mA~Xme structure, et le processus se termine par une erreur.

Cette information est A~Xgalement reportA~Xe dans le fichier po sous forme de commentaire automatique car elle indique le contexte des chaA~Xnes A~  traduire.

wrap
boolA~Xen indiquant si les espaces peuvent A~Xtre modifiA~Xs lors de remises en forme esthA~Xtiques. Si vrai, les chaA~Xnes sont mises sous forme canonique avant usage.

Cette information est reportA~Xe dans le fichier po grA~Xce aux drapeaux AX wrap AX (si vrai) et AX no-wrap AX (sinon).

wrapcol
La colonne A~  laquelle les retours A~  la ligne doivent avoir lieu (76 par dA~Xfaut).

Cette information n'est pas reportA~Xe dans le fichier po.

Fonctions diverses

count_entries()
Retourne le nombre d'entrA~Xes dans le catalogue (sans compter l'en-tA~Xte).
count_entries_doc()
Retourne le nombre d'entrA~Xes dans le document. Si une chaA~Xne apparaA~Xt plusieurs fois dans le document, elle sera comptA~Xe plusieurs fois.
msgid($)
Retourne le msgid du numA~Xro fourni.
msgid_doc($)
Retourne le msgid qui a la position donnA~Xe dans le document.
get_charset()
Retourne le jeu de caractA~Xres spA~XcifiA~X dans l'en-tA~Xte du po. S'il n'a pas A~XtA~X dA~Xfini, il retourne AX CHARSET AX.
set_charset($)
Permet de fixer le jeu de caractA~Xres de l'en-tA~Xte du po A~  la valeur fournie dans son premier paramA~Xtre. Si vous n'appelez jamais cette fonction (et qu'aucun fichier dont le jeu de caractA~Xres est spA~XcifiA~X n'est lu), la valeur par dA~Xfaut est laissA~Xe A~  AX CHARSET AX. Cette valeur ne change pas le comportement du module, elle ne sert qu'A~  remplir la valeur de ce champ dans l'en-tA~Xte, et A~  la retourner avec get_charset().

AUTEURS

  Denis Barbier <barbier@linuxfr.org>
  Martin Quinson (mquinson#debian.org)
 
 

TRADUCTION

  Martin Quinson (mquinson#debian.org)