PO4A-GETTEXTIZE.1P(1) User Contributed Perl Documentation NOME po4a-gettextize - converte um arquivo original (e suas traducoes) para um arquivo PO SINOPSE po4a-gettextize -f fmt -m mestre.doc -l XX.doc -p XX.po (XX.po e a saida, e todo o resto e entrada) DESCRICAO po4a (PO for anything) facilita a manutencao de traducao da documentacao usando as ferramentas classicas do gettext. A principal caracteristica 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 voce a converter suas traducoes anteriormente existentes em um fluxo de trabalho baseado em po4a. Isso so deve ser feito uma vez para salvar uma traducao existente ao converter para po4a, nao em uma base regular apos a conversao de seu projeto. Este processo tedioso e explicado em detalhes na Secao 'Convertendo uma traducao manual em po4a' abaixo. Voce deve fornecer um arquivo mestre (por exemplo, a fonte em ingles) e um arquivo traduzido existente (por exemplo, uma tentativa de traducao anterior sem po4a). Se voce fornecer mais de um mestre ou arquivos de traducao, eles serao usados em sequencia, mas pode ser mais facil gettextizar cada pagina ou capitulo separadamente e, em seguida, usar msgmerge para mesclar todos os arquivos PO produzidos. Como preferir. Se o documento mestre possui caracteres nao-ASCII, o novo arquivo 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 Formato da documentacao que voce quer manipular. Use a opcao --help-format para ver a lista de formatos disponiveis. -m, --master Arquivo contendo o documento mestre para traduzir. Voce pode usar esta opcao multiplas vezes, se voce quiser usar gettextize em multiplos documentos. -M, --master-charset Conjunto de caracteres do arquivo contendo o documento para traduzir. -l, --localized Arquivo contendo o documento localizado (traduzido). Se voce forneceu multiplos arquivos mestre, voce pode desejar fornecer multiplos arquivos localizados usando esta opcao mais de uma vez. -L, --localized-charset Conjunto de caracteres do arquivo contendo o documento localizado. -p, --po Arquivo para o qual a mensagem deve ser escrita. Se nao fornecido, o catalogo de mensagens sera escrito para a saida padrao. -o, --option Opcoes extras para passar o plug-in de formato. Veja a documentacao de cada plug-in para mais informacoes sobre as opcoes validas e seus significados. Por exemplo, voce poderia passar "-o tablecells" para o analisador AsciiDoc, enquanto o analisador de texto aceitaria "-o tabs=split". -h, --help Mostra uma mensagem de ajuda. --help-format Lista os formatos de documentacao compreendidos pelo po4a. -k --keep-temps Mantem o mestre temporario e os arquivos POT localizados criados antes da mesclagem. Isso pode ser util para entender por que esses arquivos sao dessincronizados, levando a problemas de gettextizacao. -V, --version Exibe a versao do script e sai. -v, --verbose Aumenta o nivel de detalhamento do programa. -d, --debug Imprime algumas informacoes de depuracao. --msgid-bugs-address e-mail@endereco Define o endereco para relatorios de erros em msgids. Por padrao, os arquivos POT criados possuem nenhum campo Report-Msgid-Bugs-To. --copyright-holder string Define o detentor do copyright no cabecalho do POT. O valor padrao e "Free Software Foundation, Inc." --package-name string Define o nome do pacote para o cabecalho do POT. O padrao e "PACKAGE". --package-version string Define a versao do pacote do cabecalho do POT. O padrao e "VERSION". Convertendo uma traducao manual em po4a po4a-gettextize sincroniza os arquivos mestres e localizados para extrair seu conteudo em um arquivo PO. O conteudo do arquivo mestre fornece o msgid enquanto o conteudo do arquivo localizado fornece o msgstr. Este processo e um tanto fragil: supoe-se que a enesima string do arquivo traduzido seja a traducao da enesima string no original. A gettextizacao funciona melhor se voce conseguir recuperar a versao exata do documento original que foi usado para a traducao. Mesmo assim, voce pode precisar mexer com arquivos mestres e localizados para alinhar sua estrutura se foi alterado pelo tradutor original, entao trabalhar em copias de arquivos e aconselhado. Internamente, cada analisador do po4a relata o tipo sintatico de cada string extraida. E assim que a dessincronizacao e detectada durante a gettextizacao. No exemplo mostrado abaixo, e muito improvavel que a quarta string na traducao (do tipo "chapter") seja a traducao da quarta string no original (do tipo "paragraph"). E mais provavel que um novo paragrafo tenha sido adicionado ao original ou que dois paragrafos originais tenham sido mesclados na traducao. Original Traducao capitulo capitulo paragrafo paragrafo paragrafo paragrafo paragrafo capitulo capitulo paragrafo paragrafo paragrafo po4a-gettextize diagnosticara verbosamente qualquer dessincronizacao de estrutura. Quando isso acontece, voce deve editar manualmente os arquivos para adicionar paragrafos falsos ou remover algum conteudo aqui e ali, ate que a estrutura dos dois arquivos corresponda perfeitamente. Alguns truques sao fornecidos abaixo para salvar ao maximo a traducao existente ao fazer isso. If you are lucky enough to have a perfect match in the file structures out of the box, building a correct PO file is a matter of seconds. Otherwise, you will soon understand why this process has such an ugly name :) Even so, gettextization often remains faster than translating everything again. I gettextized the French translation of the whole Perl documentation in one day despite the many synchronization issues. Given the amount of text (2MB of original text), restarting the translation without first salvaging the old translations would have required several months of work. In addition, this grunt work is the price to pay to get the comfort of po4a. Once converted, the synchronization between master documents and translations will always be fully automatic. Apos uma gettextizacao bem sucedida, os documentos produzidos devem ser verificados manualmente para disparidades nao detectadas e erros silenciosos, como explicado abaixo. Dicas e truques para o processo de gettextizacao A gettextizacao para assim que uma dessincronizacao e detectada. Quando isso acontece, voce precisa editar os arquivos o quanto for necessario para realinhar as estruturas dos arquivos. po4a-gettextize e bastante detalhado quando as coisas dao errado. Informa as strings que nao correspondem, suas posicoes no texto e o tipo de cada uma delas. Alem disso, o arquivo 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 voce salve ao maximo a traducao anterior: o Remova todo o conteudo extra das traducoes, como a secao que da creditos aos tradutores. Eles devem ser adicionados separadamente a po4a como adendos (veja po4a(7)). o Ao editar os arquivos para alinhar 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, voce 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 arquivo 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 arquivo PO com o documento. o Voce 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 fazer isso ao usar po4a ;) Mas voce provavelmente desejara esperar ate o final da conversao para po4a antes de alterar os arquivos originais. o Algumas vezes, o conteudo do paragrafo nao corresponde, mas nao os seus tipos. Corrigir isso e ate dependente do formato. No POD e man, frequentemente ele vem do fato que um deles contem uma linha comecando com espaco em branco, enquanto a outra nao. Naqueles formatos, tal paragrafo nao pode ser dimensionado e, entao, se torna um tipo diferente. Basta remover o espaco e esta terminado. Pode ser um erro de escrita no nome da marcacao em XML. Da mesma forma, dois paragrafos podem ser mesclados no 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 detectado no inicio do processo. Procure o ponto de dessincronizacao real inspecionando o arquivo gettextization.failed.po que foi produzido e corrija o problema onde ele realmente esta. o Outros problemas podem vir de strings duplicadas no original ou na traducao. Strings duplicadas sao mescladas em arquivos PO, com duas referencias. Isso constitui uma dificuldade para o algoritmo de gettextizacao, que e um emparelhamento simples entre os msgids dos arquivos mestre e localizado. No entanto, acredita-se que as versoes recentes do po4a lidam adequadamente com strings duplicadas, portanto voce deve relatar qualquer problema remanescente que possa encontrar. Revisando arquivos produzidos pelo po4a-gettextize Qualquer arquivo produzido pelo po4a-gettextize deve ser revisado manualmente, mesmo quando o script tiver concluido com sucesso. Voce deve dar uma olhada no arquivo 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. Voce so precisa verificar se ha problemas de correspondencia obvios, pois as traducoes com correspondencia incorreta serao descartadas nas etapas subsequentes enquanto voce deseja salva-las. Felizmente, esta etapa nao requer o dominio dos idiomas de destino, pois voce deseja apenas reconhecer elementos semelhantes em cada msgid e seu msgstr correspondente. Como falante de frances, ingles e um pouco de alemao, posso fazer isso pelo menos para todos os idiomas europeus, mesmo que nao consiga dizer uma palavra da maioria desses idiomas. As vezes consigo detectar problemas de correspondencia em idiomas nao latinos observando o comprimento das strings, as estruturas das frases (a quantidade de pontos de interrogacao corresponde?) e outras pistas, mas prefiro quando outra pessoa pode revisar esses idiomas. Se voce detectar uma incompatibilidade, edite os arquivos originais e de traducao como se po4a-gettextize tivesse relatado um erro e tente novamente. Depois de ter um arquivo PO decente para sua traducao anterior, faca backup dele ate que o po4a funcione corretamente. Executando po4a pela primeira vez A maneira mais facil de configurar o po4a e escrever um arquivo de configuracao po4a.conf e usar o programa po4a integrado (po4a-updatepo e po4a-translate foram descontinuados). Por favor, verifique a secao "ARQUIVO DE CONFIGURACAO" na documentacao do po4a(1) para mais detalhes. Quando po4a for executado pela primeira vez, a versao atual dos documentos mestre sera usada para atualizar os arquivos PO contendo as traducoes antigas que voce recuperou atraves da gettextizacao. Isso pode levar muito tempo, porque muitos dos msgids da gettextizacao nao correspondem exatamente aos elementos do arquivo POT criado a partir dos arquivos mestres recentes. Isso forca o gettext a procurar o mais proximo usando um algoritmo custoso de proximidade de string. Por exemplo, a primeira execucao da traducao francesa da documentacao Perl (arquivo PO de 5,5 MB) levou cerca de 48 horas (sim, dois dias), enquanto as subsequentes levaram apenas alguns segundos. Movendo suas traducoes para producao Apos esta primeira execucao, os arquivos PO estao prontos para serem revisados pelos tradutores. Todas as entradas foram marcadas como aproximadas (fuzzy) no arquivo PO pelo po4a-gettextization, forcando 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 arquivos de traducao no disco e voce estara pronto para mover 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) COPYRIGHT E LICENCA Copyright 2002-2023 por SPI, inc. Esse programa e um software livre; voce pode redistribui-lo e/ou modifica-lo sob os termos da GPL v2.0 ou posterior (veja o arquivo COPYING). perl v5.38.2 2024-06-26 PO4A-GETTEXTIZE.1P(1)