LOCALE::PO4A::PO.3PM(1) User Contributed Perl Documentation NOME Locale::Po4a::Po - modulo de manipulacao dum ficheiro PO SINOPSE use Locale::Po4a::Po; my $pofile=Locale::Po4a::Po->new(); # Ler ficheiro PO $pofile->read('file.po'); # Adicionar uma entrada $pofile->push('msgid' => 'Hello', 'msgstr' => 'ola', 'flags' => "wrap", 'reference'=>'file.c:46'); # Extrair uma traducao $pofile->gettext("bom dia"); # returns 'bonjour' # Escrever de volta para um ficheiro $pofile->write('otherfile.po'); DESCRICAO Locale::po4a:: Po e um modulo que permite que manipule catalogos de mensagens. Pode carregar e escrever de/para um ficheiro (cuja extensao e muitas vezes po), pode construir novas entradas na execucao ou pedir uma traducao de uma cadeia. Para uma descricao mais completa do catalogo de mensagens no formato PO e o uso dele, por favor veja a documentacao info do programa gettext. (no "`Ficheiros PO"'). Este modulo e parte do projeto po4a, cujo objetivo e usar ficheiros PO (projetado na origem para facilitar a traducao de mensagens do programa) para traduzir tudo, inclusive a documentacao (pagina do manual, manual de informacao), descricao do pacote, modelos debconf e tudo o que pode beneficiar a partir deste. OPCOES ACEITES POR ESTE MODULO --porefs type Especifica o formato de referencia. O argumento tipo pode ser um de: never para nao produzir qualquer referencia, file para especificar o ficheiro sem o numero da linha, counter para substituir os numeros de linha a aumentar o contador e full para incluir referencias completas. (predefinicao: full). --wrap-po no|newlines|number (predefinicao: 76) Especifica como o ficheiro po deve ter a quebra de linha. Isso permite escolher entre ficheiros que tem boa quebra de linha, mas que podem levar a conflitos de git ou ficheiros que sao mais faceis de manipular automaticamente, mas mais dificeis de ler para humanos. Historicamente, o pacote gettext reformatou os ficheiros po na 77a coluna para questoes cosmeticas. Esta opcao especifica o comportamento de po4a. Se for definido como um valor numerico, o po4a quebrara linha do ficheiro po apos esta coluna e apos novas linhas no conteudo. Se for definido como newlines, o po4a dividira apenas o msgid e o msgstr apos as novas linhas no conteudo. Se for definido como no, o po4a nao quebrara linha do ficheiro po. Os comentarios de referencia tem sempre as linhas quebradas pelas ferramentas do gettext que usamos internamente. Observe que esta opcao nao afeta a maneira como o msgid e o msgstr sofrem quebra de linhas ou seja, como os caracteres de nova linha sao adicionados ao conteudo dessas cadeias. --msgid-bugs-address e-mail@endereco Definir o endereco do relatorio para msgid bugs. Por predefinicao, os ficheiros POT criados nao tem campos Report-Msgid-bugs-To. --copyright-holder string Definir o titular dos direitos de autor no cabecalho POT. O valor predefinido e " Free Software Foundation, Inc." --package-name string Definir o nome do pacote para o cabecalho POT. A predefinicao e "PACKAGE". --package-version string Definir o nome do pacote para o cabecalho POT. A predefinicao e "VERSION". Funcoes relativas a catalogos de mensagens inteiros novo() Cria um catalogo de mensagem novo. Se um argumento e fornecido, e o nome dum ficheiro PO que deve carregar. ler($) Le um ficheiro PO (que o nome e dado como argumento). Entradas previamente existentes em si nao sao removidas, os novos sao adicionados ao fim do catalogo. escrever($) Escreve o catalogo atual ao ficheiro dado. write_if_needed($$) Como escrever, mas se o ficheiro PO ou POT ja existe, o objeto sera escrito num ficheiro temporario, que sera comparado com o ficheiro existente para verificar se a atualizacao e necessaria (isso evita mudar um POT apenas para atualizar uma linha de referencia ou o campo POT-Creation-Date). filtro($) Esta funcao extrai um catalogo a partir de um ja existente. Somente as entradas tem uma referencia no ficheiro dado sera posto no catalogo resultante. Esta funcao analisa o argumento dele, converte-o para uma definicao funcao Perl, avalia esta definicao e filtra os campos para os quais esta funcao retornara verdadeiro. Algumas vezes gosto de Perl ;) Funcoes para utilizar um catalogo de mensagens para traducoes gettext($%) Pede a traducao duma dada sequencia como argumento no catalogo atual. Esta funcao retorna a sequencia (nao traduzida) original, se a cadeia nao foi encontrada. Apos a cadeia para traduzir, pode passar um 'hash' de argumentos adicionais. Aqui sao as entradas validas: wrap um booleano indica se podemos considerar que os espacos em branco na cadeia nao sao importantes. Se sim, a funcao canoniza a cadeia antes de procurar uma traducao e envolve o resultado. wrapcol a coluna em que devemos envolver (predefinicao: 76). stats_get() Retorna estatisticas sobre a taxa de acerto de gettext desde a ultima vez que stats_clear() foi chamado. Por favor, note que nao sao as mesmas estatisticas que sao impressas por msgfmt --statistic. Aqui, sao as estatisticas sobre o recente uso do ficheiro PO, enquanto msgfmt informa sobre o estado do ficheiro. Exemplo de uso: [algum uso do ficheiro PO para traduzir coisas] ($percent,$hit,$queries) = $pofile->stats_get(); print "Ate agora, encontramos traducoes para $percent\% ($hit de $queries) de cadeias.\n"; stats_clear() Limpa as estatisticas sobre os exitos do gettext. Funcoes para a construcao de um catalogo de mensagens push(%) Empurrar uma nova entrada no final do catalogo atual. Os argumentos devem formar uma tabela hash. As chaves validas sao: msgid a cadeia no idioma original. msgstr a traducao. reference uma indicacao de onde essa cadeia foi encontrada. Exemplo: file.c:46 (ou seja, em 'file.c' na linha 46). Pode ser uma lista separada por espacos em caso de multiplas ocorrencias. comment um comentario adicionado aqui manualmente (pelo tradutor). O formato e livre. automatic um comentario que foi adicionado automaticamente pelo programa de extracao da cadeia. Veja a opcao --add-comments do programa xgettext para obter mais informacoes. flags lista separada por espacos de todas as 'flags' definidas para esta entrada. As 'flags' validas sao: 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 and fuzzy. Consulte a documentacao do gettext para o significado deles. type este e mais um argumento interno: e usado enquanto os documentos sao 'gettextizados'. A ideia aqui e analisar tanto o original como a traducao num objeto PO e fundi-los, a usar um 'msgid' como 'msgid' e os outros 'msgid' como 'msgstr'. Para ter certeza de que as coisas ficam bem, cada 'msgid em objetos PO recebem um tipo, com base na estrutura deles (como "chapt", "sect1", "p" e assim por diante em DocBook). Se os tipos de cadeias nao sao as mesmas, significa que ambos os ficheiros nao partilham a mesma estrutura e, o processo e informa um erro. Esta informacao e escrita como comentario automatico no ficheiro PO uma vez que da aos tradutores algum contexto sobre as cadeias para traduzir. wrap booleano que indica se os espacos em branco podem ser mutilados em cosmeticas reformatacoes. Se for verdade, a cadeia esta canonizada antes do uso. Esta informacao e gravada no ficheiro PO a usar a 'flag' wrap ou B . wrapcol ignored; the key is kept for backward computability. Funcoes auxiliares count_entries() Retorna a quantidade de entradas no catalogo (sem o cabecalho). count_entries_doc() Retorna a quantidade de entradas no documento. Se uma cadeia aparece multiplas vezes no documento, sera contado multiplas vezes. msgid($) Retorna o identificador de mensagem do numero dado. msgid_doc($) Retorna o identificador de mensagem na posicao do documento dada. type_doc($) Returns the type of the msgid with the given position in the document. This is probably only useful to gettextization, and it's stored separately from {$msgid}{'type'} because the later location may be overwritten by another type when the $msgid is duplicated in the master document. get_charset() Retorna o conjunto de caracteres especificado no cabecalho PO. Se nao foi definido, ira retornar "UTF-8". AUTORES Denis Barbier Martin Quinson (mquinson#debian.org) perl v5.38.2 2024-06-26 LOCALE::PO4A::PO.3PM(1)