Provided by: po4a_0.69-1_all 

NOME
Locale::Po4a::Po - módulo para manipulação de arquivos PO
SINOPSE
use Locale::Po4a::Po;
my $pofile=Locale::Po4a::Po->new();
# Lê um arquivo PO
$pofile->read('arquivo.po');
# Adiciona uma entrada
$pofile->push('msgid' => 'Hello', 'msgstr' => 'bom dia',
'flags' => "wrap", 'reference'=>'file.c:46');
# Extrai uma tradução
$pofile->gettext("Hello"); # retorna "bom dia"
# Escreve de volta em um arquivo
$pofile->write('outroarquivo.po');
DESCRIÇÃO
Locale::Po4a::Po é um módulo que permite que você manipule catálogo de mensagens. Você pode carregar e
escrever de/para um arquivo (cujas extensões geralmente são po), você pode compilar novas entradas em
tempo real ou requisitar a tradução de uma string.
Para uma descrição mais completa do catálogo de mensagens no formato PO e seu uso, por favor veja a
documentação info do programa gettext. (nó "`Arquivos PO"').
Este módulo é parte do projeto po4a, cujo objetivo é usar arquivos PO (projetado em sua origem para
facilitar a tradução de mensagens de programas) para traduzir tudo, incluindo documentação (páginas man,
manual info), descrição de pacotes, modelos de debconf e tudo que pode se beneficiar dele.
OPÇÕES ACEITAS POR ESTE MÓDULO
--porefs tipo
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 arquivo sem o número de linha, counter para substituir os números
de linha aumentando o contador e full para incluir referências completas. (padrão: full).
--wrap-po no|newlines|number (padrão: 76)
Especifica como o arquivo po deve ter sua quebra de linha. Isso permite escolher entre arquivos que
tem boa quebra de linha, mas que podem levar a conflitos de git, ou arquivos que são mais fáceis de
manipular automaticamente, mas mais difíceis de ler para humanos.
Historicamente, o pacote gettext reformatou os arquivos po na 77ª coluna para questões cosméticas.
Esta opção especifica o comportamento de po4a. Se definido como um valor numérico, o po4a quebrará
linha do arquivo po após esta coluna e após novas linhas no conteúdo. Se definido como newlines, o
po4a dividirá apenas o msgid e o msgstr após as novas linhas no conteúdo. Se definido como no, o po4a
não quebrará linha do arquivo po. Os comentários de referência têm sempre as linhas quebradas pelas
ferramentas do gettext que nós 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 strings.
--msgid-bugs-address e-mail@endereço
Define o endereço para relatórios de erros em msgids. Por padrão, os arquivos POT criados possuem
nenhum campo Report-Msgid-Bugs-To.
--copyright-holder string
Define o detentor do copyright no cabeçalho do POT. O valor padrão é "Free Software Foundation, Inc."
--package-name string
Define o nome do pacote para o cabeçalho do POT. O padrão é "PACKAGE".
--package-version string
Define a versão do pacote do cabeçalho do POT. O padrão é "VERSION".
Funções relativas a catálogos de mensagens inteiros
new()
Cria uma nova mensagem de catálogo. Se for fornecido um argumento, é o nome de um arquivo PO que nós
devemos carregar.
read($)
Lê um arquivo PO (cujo nome é fornecido como argumento). Entradas previamente existentes nele não são
removidas, sendo as novas adicionadas ao final do catálogo.
write($)
Escreve o catálogo atual no arquivo fornecido.
write_if_needed($$)
Similar ao "write", mas se o arquivo PO ou POT já existir, o objeto será escrito em um arquivo
temporário, o qual será comparado com o arquivo existente para verificar se a atualização é
necessária (isso evita alterar um POT apenas para atualizar uma linha de referência ou o campo POT-
Creation-Date).
filter($)
Esta função extrai um catálogo de um outro existente. Apenas as entradas contendo uma referência no
arquivo fornecido serão inseridas no catálogo resultante.
Esta função analisa seu argumento, convertendo-o para uma definição de função de Perl, avalia esta
definição e filtra os campos para os quais esta função retorna verdadeiro.
Tem vezes que eu adoro Perl ;)
to_utf8()
Re-codifica para UTF-8 as "msgstr"s do PO. Faz nada se a codificação de caracteres não tiver sido
especificada no arquivo PO (valor "CHARSET") ou se ele já for UTF-8 ou ASCII.
Funções para usar um catálogo de mensagens para traduções
gettext($%)
Requisita a tradução de uma string fornecida como argumento no catálogo atual. A função retorna a
string original (não traduzida) se a string não tiver sido encontrada.
Após a string para ser traduzida, você pode passar um hash de argumentos extras. Aqui estão as
entradas válidas:
wrap
booleano indicando se nós podemos considerar que espaços em branco na string não são importantes.
Se sim, a função canoniza a string antes de procurar por uma tradução e dimensiona o resultado.
wrapcol
a coluna na qual nós deveríamos dimensionar (padrão: 76).
stats_get()
Retorna estatísticas sobre a proporção de acerto do gettext desde a última vez que stats_clear() foi
chamada. Por favor, note que essa não é a mesma estatística impressa por msgfmt --statistic. Aqui,
essa estatística sobre uso recente do arquivo PO, enquanto msgfmt relata o estado do arquivo. Exemplo
de uso:
[um uso do arquivo PO para traduzir coisas]
($percent,$hit,$queries) = $pofile->stats_get();
print "Até agora, nós encontramos traduções para $percent\% ($hit de $queries) da strings.\n";
stats_clear()
Limpa as estatísticas sobre os acertos do gettext.
Funções para compilar um catálogo de mensagem
push(%)
Insere uma nova entrada no final do catálogo atual. Os argumentos deveriam formar uma tabela de hash.
As chaves válidas são:
msgid
a string no idioma original.
msgstr
a tradução.
reference
uma indicação de onde esta string foi encontrada. Exemplo: file.c:46 (significa em "file.c" na
linha 46). Ela pode ser uma lista separada por espaço no caso de múltiplas ocorrências.
comment
um comentário adicionado aqui manualmente (pelos tradutores). Este formato é livre.
automatic
um comentário que foi adicionado automaticamente pelo programa de extração de strings. Veja a
opção --add-comments no programa xgettext para mais informações.
flags
lista separada por espaço de todas as opções definidas para esta entrada.
Opções 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 e fuzzy.
Veja a documentação do gettext para ver seu significado.
type
esse é basicamente um argumento interno: ele é usado ao gettextizar documentos. A ideia aqui é
analisar tanto o original quanto a tradução em um objeto PO e mesclá-los, usando a msgid do
primeiro e o msgid do segundo como msgstr. Para certificar-se de que as coisas funcionem, a cada
msgid nos objetos PO é fornecido um tipo, baseado em sua estrutura (como "chapt", "sect1", "p" e
outros, em DocBook). Se os tipos de strings não forem os mesmos, significa que ambos arquivos não
compartilham a mesma estrutura e o processa relata um erro.
Esta informação é escrita como um comentário automático no arquivo PO já que isso fornece aos
tradutores algum contexto sobre as strings para traduzir.
wrap
booleano indicando se espaços em branco podem ser separados em reformatação cosmética. Se
verdadeiro, a string é canonizada antes de ser usada.
Esta informação é escrita no arquivo PO usando as opções wrap ou no-wrap.
wrapcol
a coluna na qual nós deveríamos dimensionar (padrão: 76).
Esta informação não é escrita no arquivo PO.
Funções diversas
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 string aparece múltiplas vezes no documento, ele
vai ser contado múltiplas vezes.
msgid($)
retorna o msgid do número fornecido.
msgid_doc($)
retorna o msgid com a posição fornecida no documento.
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 a codificação de caracteres do cabeçalho do PO. Se ele não tiver sido definido, ele vai
retornar "UTF-8".
set_charset($)
Isso define a codificação de caracteres do cabeçalho PO para o valor especificado no seu primeiro
argumento. Se você nunca chamou esta função (e nenhum arquivo com uma codificação de caracteres
especificada for lida), o valor padrão é deixado com "UTF-8". Este valor não altera o comportamento
deste módulo, ele apenas é usado para preencher aquele campo no cabeçalho e retorná-lo em
get_charset().
AUTORES
Denis Barbier <barbier@linuxfr.org>
Martin Quinson (mquinson#debian.org)
Ferramentas do Po4a 2023-01-03 Locale::Po4a::Po(3pm)