other versions
- jessie 0.45-1
- stretch 0.47-2
- testing 0.55-1
- stretch-backports 0.55-1~bpo9+1
- unstable 0.55-1
other languages
Locale::Po4a::Po(3pm) | Ferramentas Po4a | Locale::Po4a::Po(3pm) |
NOME¶
Locale::Po4a::Po - módulo de manipulação dum ficheiro POSINOPSE¶
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. Para uma descrição mais completa dos catálogos de mensagens no formato PO e o seu uso, por favor consulte a documentação do programa gettext. 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]
- Especificar o formato de referência. Argumento type pode ser um none para não produzir qualquer referência, noline para não especificar o número da linha (mais exactamente todos os números de linha são substituídos por 1), counter para substituir o número de linha por um contador crescente, e full para incluir referências completas. 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".
Funções sobre catálogos de mensagens inteiras¶
- 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.
- 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)
2013-08-21 | Ferramentas Po4a |