Provided by: po4a_0.52-1_all bug

NOME

       Locale::Po4a::Po - módulo de manipulação dum ficheiro PO

SINOPSE

           use Locale::Po4a::Po;
           my $pofile=Locale::Po4a::Po->new();

           # Read PO file
           $pofile->read('file.po');

           # Add an entry
           $pofile->push('msgid' => 'Hello', 'msgstr' => 'bonjour',
                         'flags' => "wrap", 'reference'=>'file.c:46');

           # Extrair uma tradução
           $pofile->gettext("bom dia"); # returns 'bonjour'

           # Escrever de volta para um ficheiro
           $pofile->write('otherfile.po');

DESCRIÇÃO

       Locale::po4a:: Po é um módulo que permite que você manipule catálogos de mensagens. Pode
       carregar e escrever de/para um ficheiro (cuja extensão é muitas vezes po), pode construir
       novas entradas na execução ou pedir uma tradução de uma sequência.

       For a more complete description of message catalogs in the PO format and their use, please
       refer to the info documentation of the gettext program (node "`PO Files"').

       Este módulo é parte do projeto po4a, cujo objetivo é usar ficheiros PO (projetado na
       origem para facilitar a tradução de mensagens do programa) para traduzir tudo, inclusive a
       documentação (página do manual, manual de informação), descrição do pacote, modelos
       debconf, e tudo o que pode beneficiar a partir deste.

OPÇÕES ACEITES POR ESTE MÓDULO

       --porefs type[,wrap|nowrap]
           Specify the reference format. Argument type can be one of never to not produce any
           reference, file to only specify the file without the line number, counter to replace
           line number by an increasing counter, and full to include complete references
           (default: full).

           O argumento pode ser seguido por uma vírgula ou pela palavra-chave wrap ou nowrap.
           Referências são escritas por padrão em uma única linha. A opção wrap envolve
           referências sobre várias linhas, para imitar as ferramentas gettext (xgettext e
           msgmerge). Esta opção irá tornar-se o padrão num lançamento futuro, porque é mais
           sensível. A opção nowrap é acessível para os utilizadores que querem manter o
           comportamento antigo.

       --msgid-bugs-address email@address
           Definir o endereço do relatório para msgid bugs. Por padrão, os ficheiros POT criados
           não têm campos Report-Msgid-bugs-To.

       --copyright-holder string
           Definir o titular dos direitos de autor no cabeçalho POT. O valor padrão é " Free
           Software Foundation, Inc. "

       --package-name string
           Definir o nome do pacote para o cabeçalho POT. O padrão é "PACOTE".

       --package-version string
           Definir o nome do pacote para o cabeçalho POT. O padrão é "VERSÃO".

Functions concerning entire message catalogs

       novo()
           Cria um catálogo de mensagem novo. Se um argumento é fornecido, é o nome dum ficheiro
           PO que deve carregar.

       ler($)
           Lê um ficheiro PO (que o nome é dado como argumento). Entradas previamente existentes
           em si não são removidas, os novos são adicionados ao fim do catálogo.

       escrever($)
           Escreve o catálogo atual para o ficheiro dado

       write_if_needed($$)
           Como escrever, mas se o ficheiro PO ou POT já existe, o objeto será escrito num
           ficheiro temporário, que será comparado com o ficheiro existente para verificar se a
           atualização é necessária (isso evita mudar um POT apenas para atualizar uma linha de
           referência ou o campo POT-Creation-Date).

       gettextize($$)
           Esta função produz um catálogo mensagem traduzida a partir de dois catálogos, um
           original e uma tradução. Este processo é descrito em po4a(7) secção Gettextization:
           como é que funciona?.

       filtro($)
           Esta função extrai um catálogo a partir de um já existente. Somente as entradas têm
           uma referência no ficheiro dado será colocado no catálogo resultante.

           Esta função analisa seu argumento, converte-o para uma definição função Perl, avalia
           esta definição e filtra os campos para os quais esta função retornará verdadeiro.

           Eu algumas vezes gosto de Perl ;)

       para_utf8()
           Recodifica para UTF-8 as mensagens traduzidas do PO. Não faz nada se o conjunto de
           carteres não é especificado no ficheio PO ("charset" value), ou se já é UTF-8 ou
           ASCII.

Funções para utilizar um catálogo de mensagens para traduções

       gettext($%)
           Pede a tradução duma dada sequência como argumento no catálogo atual. Esta função
           retorna a sequência (não traduzida) original, se a sequência não foi encontrada.

           Após a sequência para traduzir, pode passar um 'hash' de argumentos adicionais. Aqui
           são as entradas válidas:

           wrap
               um booleano indica se podemos considerar que os espaços em branco na sequência não
               são importantes. Se sim, a função canoniza a sequência antes de procurar uma
               tradução, e envolve o resultado.

           wrapcol
               a coluna em que nos devemos envolver (padrão: 76)

       stats_get()
           Retorna estatísticas sobre a taxa de acerto de gettext desde a última vez que
           stats_clear() foi chamado. Por favor, note que não são as mesmas estatísticas que são
           impressas por msgfmt --statistic. Aqui, são as estatísticas sobre o recente uso do
           ficheiro PO, enquanto msgfmt informa o status do ficheiro. Exemplo de uso:

               [algum uso do ficheiro PO para traduzir coisas]

               ($percent,$hit,$queries) = $pofile->stats_get();
               print "Até agora, encontramos traduções para $percent\% ($hit de $queries) de sequências.\n";

       stats_clear()
           Limpa as estatísticas sobre visitas gettext

Funções para a construção de um catálogo de mensagens

       push(%)
           Empurrar uma nova entrada no final do catálogo atual. Os argumentos devem formar uma
           tabela hash. As chaves válidas são:

           msgid
               a sequência no idioma original.

           msgstr
               a tradução

           reference
               uma indicação de onde essa sequência foi encontrada. Exemplo: file.c:46 (ou seja,
               em 'file.c' na linha 46). Pode ser uma lista separada por espaços em caso de
               múltiplas ocorrências.

           comment
               um comentário adicionado aqui manualmente (pelo tradutor). O formato é livre.

           automatic
               um comentário que foi adicionado automaticamente pelo programa de extração da
               sequência. Veja a opção --add-comments do programa xgettext para obter mais
               informações.

           flags
               lista separada por espaços de todas as 'flags' definidas para esta entrada.

               As 'flags' válidas são: 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 documentação do gettext para o seu significado.

           type
               este é mais um argumento interno: é usado enquanto os documentos são
               'gettextizados'. A ideia aqui é analisar tanto o original como a tradução num
               objeto PO, e fundi-los, usando 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 sua estrutura (como "chapt", "sect1", "p" e assim por
               diante em DocBook). Se os tipos de sequências não são as mesmas, significa que
               ambos os ficheiros não partilham a mesma estrutura e, o processo e informa um
               erro.

               Esta informação é escrita como comentário automático no ficheiro PO uma vez que dá
               aos tradutores algum contexto sobre as sequências para traduzir.

           wrap
               booleano que indica se os espaços em branco podem ser mutilados em cosméticas
               reformatações. Se for verdade, a sequência está canonizada antes do uso.

               Esta informação é gravada no ficheiro PO usando a 'flag' wrap ou B <no-wrap>.

           wrapcol
               a coluna em que nos devemos envolver (padrão: 76)

               Esta informação não é escrita no ficheiro PO.

Funções auxiliares

       count_entries()
           Retorna o número de entradas no catálogo (sem o cabeçalho).

       count_entries_doc()
           Retorna o número de entradas no documento. Se uma sequência aparece múltiplas vezes no
           documento, será contado múltiplas vezes.

       equals_msgid(po)
           Returns ($uptodate, $diagnostic) with $uptodate indicating whether all msgid of the
           current po file are also present in the one passed as parameter (all other fields are
           ignored in the file comparison).  Informally, if $uptodate returns false, then the po
           files would be changed when going through po4a-updatepo.

           If $uptodate is false, then $diagnostic contains a diagnostic of why this is so.

       msgid($)
           Retorna o identificador de mensagem do número dado.

       msgid_doc($)
           Retorna o identificador de mensagem na posição do documento dada.

       get_charset()
           Retorna o conjunto de caracteres especificado no cabeçalho PO. Se não foi definido,
           ele irá retornar "CHARSET".

       set_charset($)
           Isso define o conjunto de caracteres do cabeçalho PO para o valor especificado no seu
           primeiro argumento. Se você nunca invocar esta função (e nenhum ficheiro com um
           conjunto de caracteres especificado é lido), o valor padrão é deixada para "CHARSET".
           Este valor não altera o comportamento deste módulo, que é utilizado apenas para
           preencher esse campo no cabeçalho, e devolvê-lo em get_charset().

AUTORES

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