Provided by: po4a_0.67-2_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();

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

           # Adicionar uma entrada
           $pofile->push('msgid' => 'Hello', 'msgstr' => 'olá',
                         '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 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 cadeia.

       Para uma descrição mais completa do catálogo de mensagens no formato PO e o uso dele, por
       favor veja a documentação info do programa gettext. (nó "`Ficheiros PO"').

       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
           Especifica o formato de referência. O argumento tipo pode ser um de: never para não
           produzir qualquer referência, file para especificar o ficheiro sem o número da linha,
           counter para substituir os números de linha a aumentar o contador e full para incluir
           referências completas. (predefinição: full).

       --wrap-po no|newlines|number (predefinição: 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 são mais fáceis de manipular automaticamente, mas mais difíceis de ler
           para humanos.

           Historicamente, o pacote gettext reformatou os ficheiros po na 77ª coluna para
           questões cosméticas. Esta opção especifica o comportamento de po4a. Se for definido
           como um valor numérico, o po4a quebrará linha do ficheiro po após esta coluna e após
           novas linhas no conteúdo. Se for definido como newlines, o po4a dividirá apenas o
           msgid e o msgstr após as novas linhas no conteúdo. Se for definido como no, o po4a não
           quebrará linha do ficheiro po. Os comentários de referência têm sempre as linhas
           quebradas pelas ferramentas do gettext que usamos internamente.

           Observe que esta opção não afeta a maneira como o msgid e o msgstr sofrem quebra de
           linhas ou seja, como os caracteres de nova linha são adicionados ao conteúdo dessas
           cadeias.

       --msgid-bugs-address e-mail@endereço
           Definir o endereço do relatório para msgid bugs. Por predefiniçã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 predefinido é " Free
           Software Foundation, Inc."

       --package-name string
           Definir o nome do pacote para o cabeçalho POT. A predefinição é "PACKAGE".

       --package-version string
           Definir o nome do pacote para o cabeçalho POT. A predefinição é "VERSION".

       dedup
           Boolean indicating whether we should deduplicate msgids.  If true, when the same
           string is added again, a space is appended to deduplicate it.  This is probably only
           useful in the gettextization context, where dupplicate msgids break the string pairing
           algorithm.  See https://github.com/mquinson/po4a/issues/334 for more info.

Funções relativas a catálogos de mensagens inteiros

       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 ao 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á posto no catálogo resultante.

           Esta função analisa o argumento dele, 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.

           Algumas vezes gosto de Perl ;)

       para_utf8()
           Recodifica para UTF-8 as mensagens traduzidas do PO. Não faz nada se o conjunto de
           carateres 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 cadeia não foi encontrada.

           Após a cadeia 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 cadeia não
               são importantes. Se sim, a função canoniza a cadeia antes de procurar uma tradução
               e envolve o resultado.

           wrapcol
               a coluna em que devemos envolver (predefiniçã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 sobre o estado 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 cadeias.\n";

       stats_clear()
           Limpa as estatísticas sobre os êxitos do 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 cadeia no idioma original.

           msgstr
               a tradução.

           reference
               uma indicação de onde essa cadeia 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
               cadeia. 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 significado deles.

           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, 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 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 cadeias para traduzir.

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

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

           wrapcol
               a coluna em que devemos envolver (predefinição: 76).

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

Funções auxiliares

       count_entries()
           Retorna a quantidade de entradas no catálogo (sem o cabeçalho).

       count_entries_doc()
           Retorna a quantidade de entradas no documento. Se uma cadeia aparece múltiplas vezes
           no documento, será contado múltiplas vezes.

       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,
           irá retornar "UTF-8".

       set_charset($)
           Isso define o conjunto de caracteres do cabeçalho PO ao valor especificado no primeiro
           argumento dele. Se nunca invocar esta função (e nenhum ficheiro com um conjunto de
           caracteres especificado é lido), o valor predefinido é "UTF-8". 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)