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

           # 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".

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.

       equals_msgid(po)
           Retorna  ($uptodate,  $diagnostic)  com  $uptodate  a  indicar se todas as msgid do ficheiro po atual
           também estão presentes naquele que foi passado como parâmetro (todos os outros campos  são  ignorados
           na  comparação  de ficheiros). Informalmente se $uptodate retornar falso, então os ficheiros po podem
           ser alterados quando forem através do po4a-updatepo.

           Se $uptodate for falso, então $diagnostic contém um diagnóstico de por que isto é assim.

       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)

Ferramentas Po4a                                   2022-01-02                              Locale::Po4a::Po(3pm)