PO4A-GETTEXTIZE.1P(1) User Contributed Perl Documentation NOME po4a-gettextize - converte um ficheiro original (e a traducao dele) para um ficheiro PO RESUMO po4a-gettextize -f fmt -m mestre.doc -l XX.doc -p XX.po (XX.po e a saida, todos os outros sao entradas) DESCRICAO po4a (PO for anything) facilita a manutencao de traducao da documentacao a usar as ferramentas classicas do gettext. A caracteristica principal do po4a e que ele dissocia a traducao do conteudo da estrutura documental. Consulte a pagina po4a(7) para uma introducao suave a este projeto. O script po4a-gettextize ajuda a converter as suas traducoes anteriormente existentes num fluxo de trabalho baseado em po4a. Isto so deve ser feito uma vez para gravar uma traducao existente ao converter para po4a, nao numa base regular apos a conversao do seu projeto. Este processo tedioso e explicado em pormenores na Seccao 'Convertendo uma traducao manual em po4a' abaixo. Deve fornecer um ficheiro mestre (por exemplo, a fonte em ingles) e um ficheiro traduzido existente (por exemplo, uma tentativa de traducao anterior sem po4a). Se fornecer mais que um mestre ou ficheiros de traducao, eles serao usados em sequencia, mas pode ser mais facil gettextizar cada pagina ou capitulo separadamente e, em seguida, usar msgmerge para fundir todos os ficheiros PO produzidos. Como preferir. Se o documento mestre possui caracteres nao-ASCII, o novo ficheiro PO gerado vai estar in UTF-8. Se o documento mestre estiver completamente em ASCII, o PO gerado vai usar a codificacao do documento de entrada traduzido. OPCOES -f, --format O formato da documentacao que pretende processar. Use a opcao --help-format para ver a lista de formatos disponiveis. -m, --master Ficheiro que contem o documento principal para traduzir. Pode usar esta opcao varias vezes se quiser 'gettextize' varios documentos. -M, --master-charset Conjunto de caracteres do ficheiro que contem o documento a traduzir. -l, --localized Ficheiro que contem o documento localizado (traduzido). Se forneceu ficheiros mestres multiplos, pode fornecer multiplos ficheiros localizados a usar esta opcao mais de uma vez. -L, --localized-charset Conjunto de caracteres do ficheiro que contem o documento localizado. -p, --po Ficheiro onde o catalogo de mensagens deve ser escrito. Se nao for dado, a mensagem catalogo sera escrita na saida standard. -o, --option Opcao/coes adicional/ais para passar ao plugin de formato. Veja a documentacao de cada plugin para mais informacoes sobre as opcoes validas 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 documentacao compreendidos por po4a. -k --keep-temps Mantem o mestre temporario e os ficheiros POT localizados criados antes da fusao. Isto pode servir para entender por que esses ficheiros sao dessincronizados, o que leva a problemas de gettextizacao. -V, --version Mostrar a versao do script e sai. -v, --verbose Aumenta os detalhes do programa. -d, --debug Produz alguma informacao de depuracao. --msgid-bugs-address e-mail@endereco Define o endereco do relatorio para bugs de msgid. Por predefinicao, os ficheiros POT criados nao tem campos Report-Msgid-bugs-To. --copyright-holder string Define o titular dos direitos de autor no cabecalho POT. O valor predefinido e " Free Software Foundation, Inc." --package-name string Define o nome do pacote para o cabecalho POT. A predefinicao e "PACKAGE". --package-version string Define a versao do pacote para o cabecalho POT. A predefinicao e "VERSION". Converter a traducao manual para po4a po4a-gettextize sincroniza os ficheiros mestres e localizados para extrair seu conteudo num ficheiro PO. O conteudo do ficheiro mestre fornece o msgid enquanto o conteudo do ficheiro localizado fornece o msgstr. Este processo e um tanto fragil: supoe-se que a enesima cadeia do ficheiro traduzido seja a traducao da enesima cadeia no original. A gettextizacao funciona melhor se conseguir recuperar a versao exata do documento original que foi usado para a traducao. Mesmo assim, pode precisar mexer com ficheiros mestres e localizados para alinhar a sua estrutura se foi alterado pelo tradutor original, entao e aconselhado trabalhar em copias de ficheiros. Internamente, cada analisador do po4a relata o tipo sintatico de cada cadeia extraida. E assim que a dessincronizacao e detetada durante a gettextizacao. No exemplo mostrado abaixo, e muito improvavel que a quarta cadeia na traducao (do tipo "chapter") seja a traducao da quarta cadeia no original (do tipo "paragraph"). E mais provavel que um novo paragrafo tenha sido adicionado ao original ou que dois paragrafos originais tenham sido fundidos na traducao. Original Traducao capitulo capitulo paragrafo paragrafo paragrafo paragrafo paragrafo capitulo capitulo paragrafo paragrafo paragrafo po4a-gettextize ira diagnosticar detalhadamente qualquer dessincronizacao de estrutura. Quando isto acontece, deve editar manualmente os ficheiros para adicionar paragrafos falsos ou remover algum conteudo aqui e ali, ate que a estrutura dos dois ficheiros corresponda perfeitamente. Alguns truques sao fornecidos abaixo para salvar o maximo da traducao existente ao fazer isto. Se tiver a sorte de ter uma correspondencia perfeita de primeira nas estruturas de ficheiro prontas, construir um ficheiro PO correto e uma questao de segundos. Caso contrario, logo percebera por que este processo tem um nome tao feio :) Mesmo assim, a gettextizacao geralmente permanece mais rapida do que traduzir tudo novamente. Gettextifiquei a traducao francesa de toda a documentacao do Perl num dia, apesar dos problemas de sincronizacao. Dada a quantidade de texto (2MB de texto original), reiniciar a traducao sem primeiro gravar as traducoes antigas teria exigido varios meses de trabalho. Alem disso, este trabalho pesado e o preco a pagar para obter o conforto do po4a. Uma vez convertido, a sincronizacao entre documentos mestre e traducoes sera sempre totalmente automatica. Apos uma gettextizacao bem sucedida, os documentos produzidos devem ser verificados manualmente para disparidades nao detetadas e erros silenciosos, como explicado abaixo. Dicas e truques para o processo de gettextizacao A gettextizacao para assim que uma dessincronizacao e detetada. Quando isto acontece, deve editar os ficheiros o quanto for necessario para realinhar as estruturas dos ficheiros. po4a-gettextize e bastante detalhado quando as coisas dao errado. Informa as cadeias que nao correspondem, as suas posicoes no texto e o tipo de cada uma delas. Alem disso, o ficheiro PO gerado ate agora e descartado como gettextization.failed.po para inspecao adicional. Aqui estao alguns truques para ajuda-lo neste processo tedioso e garantir que salve o maximo da traducao anterior: o Remova todo o conteudo extra das traducoes, como a seccao que da creditos aos tradutores. Eles devem ser adicionados separadamente a po4a como adendos (veja po4a(7)). o Ao editar os ficheiros para alinhar as suas estruturas, prefira editar a traducao se possivel. Na verdade, se as alteracoes no original forem muito intrusivas, as versoes antiga e nova nao serao correspondidas durante a primeira execucao do po4a apos a gettextizacao (veja abaixo). Qualquer traducao sem correspondencia sera descartada de qualquer maneira. Dito isto, ainda deseja editar o documento original se for muito dificil fazer com que a gettextizacao prossiga de outra forma, mesmo que isso signifique que um paragrafo da traducao seja descartado. O importante e obter um primeiro ficheiro PO para comecar. o Nao hesite em eliminar qualquer conteudo original que nao exista na versao traduzida. Este conteudo sera reintroduzido automaticamente posteriormente, ao sincronizar o ficheiro PO com o documento. o Provavelmente deve informar o autor original de qualquer alteracao estrutural na traducao que pareca justificada. Problemas no documento original devem ser relatadas ao autor. Corrigi-los na sua traducao os corrige apenas para uma parte da comunidade. Alem disso, e impossivel faze-lo ao usar po4a ;) Mas provavelmente desejara esperar ate o final da conversao para po4a antes de alterar os ficheiros originais. o Algumas vezes, o conteudo do paragrafo corresponde, mas nao os tipos deles. Corrigir isso e ate dependente do formato. No POD e man, frequentemente vem do fato que um deles contem uma linha a comecar com espaco em branco, mas a outra nao. Naqueles formatos tal paragrafo nao pode ser dimensionado e, entao, se torna um tipo diferente. Basta remover o espaco e esta tudo bem. Pode tambem ser um erro de escrita no nome da marcacao em XML. Da mesma forma, dois paragrafos podem ser fundidos juntamente num POD quando a linha separadora contem alguns espacos ou quando nao ha linha vazia entre a linha =item e o conteudo do item. o As vezes, a mensagem de dessincronizacao parece estranha porque a traducao esta anexada ao paragrafo original errado. E o sinal de um problema nao detetado no inicio do processo. Procure o ponto de dessincronizacao real inspecionando o ficheiro gettextization.failed.po que foi produzido e corrija o problema onde ele realmente esta. o Outros problemas podem vir de cadeias duplicadas no original ou na traducao. Cadeias duplicadas sao mescladas em ficheiros PO, com duas referencias. Isto constitui uma dificuldade para o algoritmo de gettextizacao, que e um emparelhamento simples entre os msgids dos ficheiros mestre e localizado. No entanto, acredita-se que as versoes recentes do po4a lidam adequadamente com cadeias duplicadas, portanto deve relatar qualquer problema remanescente que possa encontrar. Rever ficheiros produzidos pelo po4a-gettextize Qualquer ficheiro produzido pelo po4a-gettextize deve ser revisado manualmente, mesmo quando o script tiver concluido com sucesso. Deve dar uma olhada no ficheiro PO, garantindo que msgid e msgstr realmente correspondam. Ainda nao e necessario garantir que a traducao esteja perfeitamente correta, pois todas as entradas sao marcadas como traducoes difusas de qualquer maneira. So precisa verificar se ha problemas de correspondencia obvios, pois as traducoes com correspondencia incorreta serao descartadas nas etapas subsequentes enquanto deseja grava-las. Felizmente, esta etapa nao requer o dominio dos idiomas de destino, pois deseja apenas reconhecer elementos semelhantes em cada msgid e o seu msgstr correspondente. Como falante de frances, ingles e um pouco de alemao, posso fazer isto pelo menos para todos os idiomas europeus, mesmo que nao consiga dizer uma palavra da maioria desses idiomas. As vezes consigo detetar problemas de correspondencia em idiomas nao latinos observando o comprimento das cadeias, as estruturas das frases (a quantidade de pontos de interrogacao corresponde?) e outras pistas, mas prefiro quando outra pessoa pode revisar estes idiomas. Se detetar uma incompatibilidade, edite os ficheiros originais e de traducao como se po4a-gettextize tivesse relatado um erro e tente novamente. Depois de ter um ficheiro PO decente para a sua traducao anterior, faca salvaguarda dele ate que o po4a funcione corretamente. Executar po4a pela primeira vez A maneira mais facil de configurar o po4a e escrever um ficheiro de configuracao po4a.conf e usar o programa po4a integrado (po4a-updatepo e po4a-translate foram descontinuados). Por favor, verifique a seccao "ARQUIVO DE CONFIGURACAO" na documentacao do po4a(1) para mais pormenores. Quando po4a for executado pela primeira vez, a versao atual dos documentos mestre sera usada para atualizar os ficheiros PO contendo as traducoes antigas que recuperou atraves da gettextizacao. Isto pode levar muito tempo, porque muitos dos msgids da gettextizacao nao correspondem exatamente aos elementos do ficheiro POT criado a partir dos ficheiros mestres recentes. Isto forca o gettext a procurar o mais proximo usando um algoritmo custoso de proximidade de cadeias. Por exemplo, a primeira execucao da traducao francesa da documentacao Perl (ficheiro PO de 5,5 MB) levou cerca de 48 horas (sim, dois dias), enquanto as subsequentes levaram apenas alguns segundos. Mover as suas traducoes para producao Apos esta primeira execucao, os ficheiros PO estao prontos para serem revisados pelos tradutores. Todas as entradas foram marcadas como aproximadas (fuzzy) no ficheiro PO pelo po4a-gettextization, forcando a sua revisao cuidadosa antes do uso. Os tradutores devem verificar cada entrada para verificar se a traducao recuperada realmente corresponde ao texto original atual, atualizar a traducao conforme necessario e remover as marcacoes de fuzzy. Depois que marcadores de fuzzy suficientes forem removidos, po4a comecara a gerar os ficheiros de traducao no disco e estara pronto para mover o seu fluxo de trabalho de traducao para producao. Alguns projetos acham util contar com o weblate para coordenacao entre tradutores e mantenedores, mas isso esta alem do escopo do po4a. VEJA TAMBEM po4a(1), po4a-normalize(1), po4a-translate(1), po4a-updatepo(1), po4a(7). AUTORES Denis Barbier Nicolas Francois Martin Quinson (mquinson#debian.org) DIREITOS DE AUTOR E LICENCA Copyright 2002-2023 por SPI, inc. Este programa e um software livre; pode redistribui-lo e/ou modifica-lo sob os termos da GPL v2.0 ou posterior (veja o ficheiro COPYING). perl v5.42.0 2025-11-22 PO4A-GETTEXTIZE.1P(1)