Provided by: po4a_0.66-1_all bug

NOME

       po4a-gettextize - converte um ficheiro original (e a tradução dele) para um ficheiro PO

SINOPSE

       po4a-gettextize -f fmt -m master.doc [-l XX.doc] -p XX.po

       (XX.po é a saída, todos os outros são entradas)

DESCRIÇÃO

       po4a (PO for anything) facilita a manutenção de tradução da documentação a usar as ferramentas clássicas
       do gettext. A característica principal do po4a é que ele dissocia a tradução do conteúdo da estrutura
       documental. Consulte a página po4a(7) para uma introdução suave a este projeto.

       O script po4a-gettextize é responsável pela conversão de ficheiros de documentação em ficheiros PO. Só
       precisa dele para configurar o seu projeto de tradução com o po4a, nunca depois.

       Se começar do zero, po4a-gettextize extrairá as cadeias traduzíveis da documentação e gravará um ficheiro
       POT. Se fornecer um ficheiro traduzido existente anteriormente com o sinalizador -l, po4a-gettextize
       tentará usar as traduções que ele contém no ficheiro PO produzido. Esse processo permanece tedioso e
       manual, conforme explicado na Secção "Converter uma tradução manual em po4a" abaixo.

       Se o documento principal tiver caracteres não ASCII, o novo ficheiro PO gerado estará em UTF-8. Caso
       contrário (se o documento principal estiver completamente em ASCII), o PO gerado utilizará a codificação
       do documento de entrada traduzido, ou UTF-8 se não for fornecido nenhum documento traduzido.

OPÇÕES

       -f, --format
           O  formato  da  documentação  que  pretende  processar. Use a opção --help-format para ver a lista de
           formatos disponíveis.

       -m, --master
           Ficheiro que contem o documento principal para traduzir. Pode usar esta opção várias vezes se  quiser
           'gettextize' vários documentos.

       -M, --master-charset
           Conjunto de carateres do ficheiro que contém o documento a traduzir.

       -l, --localized
           Ficheiro que contem o documento localizado (traduzido). Se forneceu ficheiros mestres múltiplos, pode
           fornecer múltiplos ficheiros localizados a usar esta opção mais de uma vez.

       -L, --localized-charset
           Conjunto de carateres do ficheiro que contém o documento localizado.

       -p, --po
           Ficheiro  onde  o  catálogo  de mensagens deve ser escrito. Se não for dado, a mensagem catálogo será
           escrito na saída predefinido.

       -o, --option
           Opção/ções adicional/ais para passar ao plugin de formato. Veja a documentação de  cada  plugin  para
           mais  informações  sobre  as  opções válidas e os significados deles. Por exemplo, poderia passar '-o
           tablecells' para o analisador AsciiDoc, enquanto o analisador de texto aceitaria '-o tabs=split'.

       -h, --help
           Mostrar uma pequena mensagem de ajuda.

       --help-format
           Lista os formatos de documentação compreendidos por po4a.

       -V, --version
           Mostrar a versão do script e sair.

       -v, --verbose
           Aumentar o detalhe do programa.

       -d, --debug
           Saída de alguma informação de depuração.

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

   Converter a tradução manual para po4a
       po4a-gettextize tentará extrair o conteúdo de qualquer ficheiro de tradução fornecido  e  utilizará  esse
       conteúdo como msgstr no ficheiro PO produzido. Este processo é muito frágil: a N-ésima cadeia do ficheiro
       traduzido  deve ser a tradução da N-ésima cadeia no original. Isto naturalmente não vai funcionar a menos
       que ambos os ficheiros compartilhem a mesma estrutura.

       Internamente, cada analisador po4a reporta o tipo sintático de cada cadeia extraída. Esta é a forma  como
       a  dessincronização  é  detetada  durante  a gettext-ização.  Por exemplo, se os ficheiros têm a seguinte
       estrutura, é muito improvável que a 4ª cadeia na tradução (do tipo 'capítulo')  seja  a  tradução  da  4ª
       cadeia  no  original  (do  tipo  'parágrafo').  É provável que um novo parágrafo tenha sido adicionado ao
       original ou que dois parágrafos originais tenham sido fundidos na tradução.

           Original          Tradução

         capítulo            capítulo
           parágrafo           parágrafo
           parágrafo           parágrafo
           parágrafo         capítulo
         capítulo              parágrafo
           parágrafo           parágrafo

       po4a-gettextize diagnosticará verbalmente qualquer dessincronização de estrutura detectada.  Quando  isso
       acontece,  deve  editar  os  ficheiros manualmente (isso provavelmente requer que tenha algumas noções do
       idioma de destino). Deve adicionar parágrafos falsos ou remover algum conteúdo de um dos  documentos  (ou
       ambos)  para  corrigir  as  disparidades  relatadas,  até que a estrutura dos dois documentos corresponda
       perfeitamente. Alguns truques são dados na próxima secção.

       Mesmo quando o documento é processado com sucesso, disparidades não detetadas e erros  silenciosos  ainda
       são  possíveis. É por isso que qualquer tradução associada automaticamente pelo po4a-gettextize é marcada
       como fuzzy para exigir uma inspeção manual  por  seres  humanos.  É  preciso  verificar  se  cada  msgstr
       recuperado é realmente a tradução do msgid associado e não a cadeia antes ou depois.

       Como pode ver, a chave aqui é de ter exatamente a mesma estrutura no documento traduzido e no original. O
       melhor  é fazer a gettextização na versão exata de master.doc que foi usada para a tradução e atualizar o
       ficheiro PO somente no ficheiro mestre mais recente depois que a gettextização tiver êxito.

       Se tiver a sorte de ter uma correspondência perfeita nas estruturas do ficheiro, construir um ficheiro PO
       correto é uma questão de segundos. Caso contrário, logo entenderá porque este processo tem  um  nome  tão
       feio  :)  Mas  lembre-se que este trabalho grunhido é o preço a pagar para ter o conforto de po4a depois.
       Uma vez convertido, a sincronização entre os documentos mestres e as  traduções  será  sempre  totalmente
       automática.

       Mesmo  quando as coisas correm mal, a gettext-ização permanece muitas vezes mais rápida do que a tradução
       de tudo de novo. Consegui fazer a gettext-ização da tradução francesa existente de  toda  a  documentação
       Perl  num  dia,  embora  a estrutura de muitos documentos tenha sido dessincronizada. Foram mais que dois
       megabytes de texto original (2 milhões de caracteres): reiniciar  a  tradução  a  partir  do  zero  teria
       exigido vários meses de trabalho.

   Dicas e truques para o processo de gettextização
       A  gettextização acaba assim que uma dessincronização é detetada. Em teoria, provavelmente seria possível
       ressincronizar a gettextização posteriormente nos documentos a usar, por exemplo, o mesmo algoritmo que o
       utilitário diff(1). Mas uma intervenção manual ainda seria obrigatória para  corresponder  aos  elementos
       manualmente  que  não  puderam  ser correspondidos automaticamente, a explicar por que a ressincronização
       automática ainda não foi implementada (ainda?).

       Quando isso acontece, tudo se resume novamente ao alinhamento das malditas  estruturas  desses  ficheiros
       através  de  edições  manuais.  po4a-gettextize  é  bastante  verboso  sobre o que deu errado quando isso
       acontece. Ele relata as cadeias que não correspondem, as posições delas no texto e o  tipo  de  cada  uma
       delas. Além disso, o ficheiro PO gerado até o momento é descartado como gettextization.failed.po para uma
       inspeção posterior.

       Aqui estão alguns outros truques para ajudar-lo neste processo tedioso:

       •   Remova  todo  o  conteúdo  adicional das traduções, como a secção que dá méritos aos tradutores. Pode
           adicioná-lo novamente no po4a posteriormente, a usar um adendo (consulte po4a(7)).

       •   Se precisar de editar os ficheiros para alinhar as estruturas deles, deve preferir editar a tradução,
           se possível. De fato, se as alterações no original forem muito intrusivas, a versão antiga e nova não
           corresponderão durante a atualização do pedido e a tradução correspondente será despejada de qualquer
           maneira. Mas não hesite em editar também o documento original, se  for  necessário:  o  importante  é
           obter um primeiro ficheiro PO para começar.

       •   Não  hesite  em eliminar qualquer conteúdo original que não exista na versão traduzida. Este conteúdo
           será reintroduzido automaticamente posteriormente, ao sincronizar o ficheiro PO com o documento.

       •   Provavelmente deve informar o autor original de qualquer mudança estrutural na  tradução  que  pareça
           justificada.  Questões  no  documento original devem ser relatadas ao autor. Fixá-los na sua tradução
           apenas os corrige para uma parte da comunidade. Além disso, é impossível fazê-lo quando se utiliza  o
           po4a ;)

       •   Algumas  vezes,  o  conteúdo  do  parágrafo não corresponde, mas tipos deles não. Corrigir isso é até
           dependente do formato. No POD e man, frequentemente vem do fato que  um  deles  contém  uma  linha  a
           começar  com  espaço  em  branco,  mas  a  outra  não.   Naqueles formatos tal parágrafo não pode ser
           dimensionado e, então, se torna um tipo diferente. Basta remover o espaço e está terminado. Pode  ser
           um erro de escrita no nome da marcação em XML.

           Da  mesma  forma, dois parágrafos podem ser mesclados num POD quando a linha separadora contém alguns
           espaços ou quando não há linha vazia entre a linha =item e o conteúdo do item.

       •   Às vezes a mensagem de dessincronização parece estranha porque a tradução está anexada  ao  parágrafo
           original errado. É o sinal de um problema não detetado no início do processo. Procure o ponto real de
           dessincronização  a  inspecionar  gettextization.failed.po  e  conserte o problema onde ele realmente
           está.

       •   Em alguns cenários infelizes, terá a sensação de que o po4a comeu algumas partes  do  texto,  seja  o
           original  ou  a  tradução. gettextization.failed.po indica que ambos os ficheiros corresponderam como
           esperado até o parágrafo N. Mas uma tentativa (sem sucesso) é feita para corresponder o parágrafo N+1
           no ficheiro original não com o parágrafo N+1 na tradução como deveria, mas com o parágrafo  N+2.  Tal
           como  se  o  parágrafo  N+1  que  se vê no documento simplesmente desaparecesse do ficheiro durante o
           processo.

           Esta situação infeliz acontece quando o mesmo parágrafo é repetido sobre odocumento. Neste caso,  não
           é  criada uma nova entrada no ficheiro de PO, mas uma nova referência é adicionada ao já existente em
           seu lugar.

           Portanto, a situação  anterior  ocorre  quando  dois  parágrafos  semelhantes,  mas  diferentes,  são
           traduzidos  exatamente  da mesma maneira. Aparentemente, isso removerá um parágrafo da tradução. Para
           corrigir o problema, basta alterar ligeiramente uma das traduções no documento. Também pode  preferir
           eliminar o segundo parágrafo no documento original.

           Ao  contrário,  se  o  mesmo parágrafo que aparece duas vezes no documento original não for traduzido
           exatamente da mesma forma em ambos os locais, terá a  sensação  de  que  um  parágrafo  do  documento
           original  simplesmente  desapareceu.  Basta  copiar  a  melhor  tradução  sobre  a outra no documento
           traduzido para resolver o problema.

       •   Como nota final, não se surpreenda se a primeira sincronização  do  seu  ficheiro  PO  demorar  muito
           tempo.  Isso  acontece  porque  a  maioria  do  msgid  do ficheiro PO resultante da gettextização não
           corresponde exatamente a nenhum elemento do ficheiro POT criado dos ficheiros mestre  recentes.  Isso
           força o gettext a procurar o mais próximo a usar um algoritmo de proximidade de cadeias caro.

           Por  exemplo, o primeiro po4a-updatepo da tradução em francês da documentação do Perl (ficheiro PO de
           5.5 MB) levou cerca de 48 horas (sim, dois dias), enquanto os subsequentes demoram apenas  uma  dúzia
           de segundos.

VER TAMBÉM

       po4a(1), po4a-normalize(1), po4a-translate(1), po4a-updatepo(1), po4a(7).

AUTORES

        Denis Barbier <barbier@linuxfr.org>
        Nicolas Francois <nicolas.francois@centraliens.net>
        Martin Quinson (mquinson#debian.org)

DIREITOS DE AUTOR E LICENÇA

       Direitos de Autor 2002-2020 por SPI, inc.

       Este  programa  é  software  livre, pode redistribuí-lo e/ou modificá-lo sob os termos da GPL (consulte o
       ficheiro CÓPIA).

Ferramentas Po4a                                   2022-01-02                                PO4A-GETTEXTIZE(1p)