NOM¶
Locale::Po4a::Po - mòdul per a la manipulació de fitxers PO
SINOPSI¶
use Locale::Po4a::Po;
my $fitxerpo=Locale::Po4a::Po->new();
# Llegim el fitxer PO
$fitxerpo->load('fitxer.po');
# Afegim una entrada
$pofile->push('msgid' => 'Hello', 'msgstr' => 'Hola',
'flags' => "wrap", 'reference'=>'fitxer.c:46');
# Extraiem una traducció
$fitxerpo->gettext("Hello"); # retorna 'Hola'
# Escrivim el nou fitxer po
$fitxerpo->write('unaltrefitxer.po');
DESCRIPCIÓ¶
Locale::Po4a::Po és un mòdul que permet manipular catàlegs
de missatges. Podeu carregar i escriure des de/a un fitxer (l'extensió
del qual és habitualment
po, podeu crear noves entrades sobre la
marxa i demanar la traducció de cadenes.
Per una descripció més completa dels catàlegs de missatges
en el format PO i el seu ús, consulteu la documentació del
programa gettext.
Aquest mòdul és part del projecte po4a, que té per objectiu
utilitzar fitxers PO (dissenyats originalment per facilitar la
traducció de missatges de programa) per traduir de tot, incloent
documentació (pàgines de manual, manuals d'info), descripcions
de paquets, plantilles de debconf, i qualsevol altra cosa que se'n pugui
beneficiar.
OPCIONS QUE ACCEPTA AQUEST MÒDUL¶
- porefs type[,wrap|nowrap]
- Specify the reference format. Argument type can be one of
none to not produce any reference, noline to not specify the
line number (more accurately all line numbers are replaced by 1),
counter to replace line number by an increasing counter, and
full to include complete references.
Argument can be followed by a comma and either wrap or nowrap
keyword. References are written by default on a single line. The
wrap option wraps references on several lines, to mimic
gettext tools ( xgettext and msgmerge). This option
will become the default in a future release, because it is more sensible.
The nowrap option is available so that users who want to keep the
old behavior can do so.
- --msgid-bugs-address email@address
- Set the report address for msgid bugs. By default, the created POT files
have no Report-Msgid-Bugs-To fields.
- --copyright-holder string
- Set the copyright holder in the POT header. The default value is
"Free Software Foundation, Inc."
- --package-name string
- Set the package name for the POT header. The default is
"PACKAGE".
- --package-version string
- Set the package version for the POT header. The default is
"VERSION".
Funcions sobre el catàleg de missatges sencer¶
- new()
- Crea un nou catàleg de missatges. Si se li passa un
paràmetre, serà el nom del fitxer PO que ha de
carregar.
- read($)
- Llegeix un fitxer PO (el nom del qual es passa com a paràmetre).
Les entrades que ja existien al catàleg actual no s'eliminen, les
noves s'afegeixen al final del catàleg.
- write($)
- Escriu el catàleg actual al fitxer donat.
- write_if_needed($$)
- Like write, but if the PO or POT file already exists, the object will be
written in a temporary file which will be compared with the existing file
to check if the update is needed (this avoids to change a POT just to
update a line reference or the POT-Creation-Date field).
- gettextize($$)
- Aquesta funció produeix un catàleg de missatges
traduït a partir de dos catàlegs, l'original i la
traducció. Aquest procés es descriu a la secció
Gettextització: com funciona? de po4a(7).
- filter($)
- Aquesta funció extreu un catàleg a partir de l'actual.
Només desarà al catàleg resultant les entrades que
tinguin una referència al fitxer donat.
Aquesta funció analitza els seu paràmetre, el converteix a una
definició de funció de Perl, avalua aquesta definició
i filtra els camps pels que aquesta funció retorna cert.
M'encanta Perl a vegades ;)
- to_utf8()
- Recodifica a UTF-8 els msgstrs del PO. No fa res si el joc de caracters no
està especificat en el fitxer PO (el valor "CHARSET"), o
si ja està en UTF-8 o ASCII.
Funcions per utilitzar el catàleg de missatges per les traduccions¶
- gettext($%)
- Retorna la traducció de la cadena donada com a paràmetre al
catàleg actual. La funció retorna l'original (sense traduir)
si no troba la cadena.
Després de la cadena a traduir, podeu passar un hash de
paràmetres extra. Aquestes són les entrades
vàlides:
- wrap
- booleà que indica si podem considerar que els espais de la cadena
no són importants. En cas afirmatiu, la funció canonitza la
cadena abans de buscar-ne la traducció, i justifica el
resultat.
- wrapcol
- La columna a la que s'ha de justificar (per defecte: 76).
- stats_get()
- Retorna les estadístiques sobre la quantitat d'encerts de gettext
des de la darrera vegada que s'ha cridat stats_clear(). Tingueu en
compte que no són les mateixes estadístiques que mostra
msgfmt --statistic. Aquestes són sobre l'ús recent del
fitxer PO, mentre que msgfmt informa sobre l'estat del fitxer. Exemple
d'ús:
[ús del fitxer PO per traduir coses]
($percentatge,$encerts,$peticions) = $fitxerpo->stats_get();
print "Fins ara, s'han trobat traduccions per al $percentatge\% ($encerts de $peticions) de les cadenes.\n";
- stats_clear()
- Neteja les estadístiques sobre els encerts de gettext.
Funcions per construir un catàleg de missatges¶
- push(%)
- Insereix una nova entrada al final del catàleg actual. Els
paràmetres han de formar una taula de hash. Les claus
vàlides són :
- msgid
- la cadena en l'idioma original.
- msgstr
- la traducció.
- reference
- una indicació d'on s'ha trobat la cadena. Exemple: fitxer.c:46
(significa a la línia 46 del 'fitxer.c'). Pot ser una llista
separada per espais en cas de múltiples ocurrències.
- comment
- un comentari afegir manualment (pels traductors). El format és
lliure.
- automatic
- un comentari que ha afegit automàticament el programa
d'extracció de cadenes. Vegeu l'opció --add-comments
del programa xgettext per a més informació.
- flags
- llista separada per espais dels flags definits per aquesta entrada.
Els flags vàlids són: 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 i fuzzy.
Vegeu la documentació de gettext pels seus significats.
- type
- Aquest és més aviat un paràmetre intern: s'utilitza a
l'hora de gettextitzar documents. La idea és analitzar el document
original i la traducció a objectes PO, i ajuntar-los, utilitzant
els msgid d'un com a msgid, i els msgid de l'altre com a msgstr. Per
assegurar que les coses van bé, es dóna un tipus a cada
msgid dels objectes po, segons la seva estructura (com ara
"chapt", "sect1", "p" i així a
DocBook). Si els tipus de les cadenes no coincideixen, significa que
ambdós documents no comparteixen la mateixa estructura, i el
procés acaba amb un error.
Aquesta informació s'escriu com a comentari automàtic al
fitxer PO ja que dóna informació de context sobre les
cadenes a traduir als traductors.
- wrap
- booleà que indica si els espais en blanc es poden tractar en
reformatejats cosmètics. En cas afirmatiu, abans d'utilitzar la
cadena, aquesta és canonitzada.
Aquesta informació s'escriu al fitxer PO utilitzant el flag
wrap o no-wrap.
- wrapcol
- La columna a la que s'ha de justificar (per defecte: 76).
Aquesta informació no s'escriu al fitxer PO.
Funcions diverses¶
- count_entries()
- Retorna el nombre d'entrades del catàleg (sense la
capçalera).
- count_entries_doc()
- Returns the number of entries in document. If a string appears multiple
times in the document, it will be counted multiple times
- msgid($)
- Retorna el msgid del nombre donat.
- msgid_doc($)
- Returns the msgid with the given position in the document.
- get_charset()
- Retorna el joc de caràcters especificat a la capçalera PO.
Si encara no s'ha ajustat, retornarà "CHARSET".
- set_charset($)
- Defineix el joc de caràcters de la capçalera PO al valor
especificat com a primer paràmetre. Si no crideu mai aquesta
funció (i no es llegeix cap fitxer amb un joc de caràcters
especificat), el valor per defecte es deixa a "CHARSET". Aquest
valor no canvia el comportament d'aquest mòdul, només
s'utilitza per omplir el camp de la capçalera, i es retorna a
get_charset().
AUTORS¶
Denis Barbier <barbier@linuxfr.org>
Martin Quinson (mquinson#debian.org)
TRADUCCIÓ¶
Carme Cirera <menxu@hotmail.com>
Jordi Vilalta <jvprat@gmail.com>