PO4A.1P(1) User Contributed Perl Documentation PO4A.1P(1) NOME po4a - atualiza ambos arquivos PO e documentacoes traduzidas em um tiro SINOPSE po4a [opcoes] arquivo_config 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. Ao executar, po4a analisa todos os arquivos de documentacao especificados em seu arquivo de configuracao. Ele atualiza os arquivos PO (contendo a traducao) para refletir qualquer alteracao na documentacao, e produzir uma documentacao traduzida, injetando a traducao do conteudo (encontrado nos arquivos PO) na estrutura do documento mestre original. Inicialmente, os arquivos PO apenas contem as strings para traduzir da documentacao original. Este formato de arquivo permite que os tradutores fornecam manualmente uma traducao para cada paragrafo extraido por po4a. Se a documentacao for modificada apos a traducao, po4a marca as traducoes correspondentes como "fuzzy" no arquivo PO para solicitar uma revisao manual pelos tradutores. Os tradutores tambem podem fornecer o chamado "addendum" (adendo), que sao conteudo extra afirmando por exemplo quem fez a traducao e como relatar bugs. documentos mestres -+----->-------->---------+ (criacao de docs) | | V (execucoes do po4a) >----+--> documentos | | | traduzidos | | | arquivos PO ------->-----> arquivos PO -->--+ | existentes atualizados | ^ | | | V ^ +----------<---------<--------+ | (processo de traducao manual) | | adendo ---->--------------------------------------+ O fluxo de trabalho de po4a e assincrono, conforme adequado para projetos de codigo aberto. Os autores de documentacao escrevem os documentos mestre em seu proprio ritmo. Os tradutores revisam e atualizam as traducoes nos arquivos PO. Os mantenedores executam novamente po4a quando necessario, para refletir qualquer alteracao na documentacao original para os arquivos PO e para produzir traducoes de documentacao atualizadas, injetando a mais recente traducao para a mais recente estrutura de documentos. Por padrao, um documento traduzido e produzido quando pelo menos 80% de seu conteudo e traduzido. O texto nao traduzido e mantido no idioma original. A documentacao produzida mistura idiomas se a traducao nao estiver completa. Voce pode alterar o limite de 80% com a opcao -keep descrita abaixo. Note no entanto que descartar traducoes assim que nao sao 100% pode ser desanimador para os tradutores cujo trabalho quase nunca sera mostrado aos usuarios, ao mostrar "traducoes" que sao muito incompletas pode ser um problema para os usuarios finais. Armazenar os arquivos de documentacao traduzidos no sistema de controle de versao e provavelmente uma ma ideia, uma vez que eles sao gerados automaticamente. Os arquivos preciosos sao os arquivos PO, que contem o trabalho duro de seus colegas tradutores. Alem disso, algumas pessoas acham mais facil interagir com os tradutores atraves de uma plataforma online como o weblate, mas isso e naturalmente totalmente opcional. Tutorial de inicio rapido Vamos supor que voce mantenha um programa chamado foo que tem uma pagina man man/foo.1 escrito em ingles (o idioma-ponte na maioria dos projetos de codigo aberto, mas po4a pode ser usado de ou para qualquer idioma). Um tempo atras, alguem forneceu uma traducao em alemao chamada man/foo.de.1 e desapareceu. Este e um problema porque voce acabou de ter um relatorio de bug dizendo que sua documentacao contem uma informacao gravemente enganosa que deve ser corrigida em todos os idiomas, mas voce nao fala alemao para que voce so possa modificar o original, nao a traducao. Agora, outro colaborador quer contribuir com uma traducao para japones, um idioma que voce tambem nao domina. E hora de converter sua documentacao para po4a para resolver seus pesadelos de manutencao de documentacao. Voce quer atualizar o documento quando necessario, voce quer facilitar o trabalho de seus colegas tradutores, e voce quer garantir que seus usuarios nunca vejam nenhuma documentacao desatualizada e, portanto, enganosa. A conversao inclui dois passos: configurar a infraestrutura do po4a e converter a traducao anterior alema para salvar o trabalho anterior. Esta ultima parte e feita usando po4a-gettextize, como segue. Como detalhado na documentacao de po4a-gettextize(1), este processo raramente totalmente automatico, mas uma vez feito, o arquivo de.po contendo a traducao alema pode ser integrado no seu fluxo de trabalho do po4a. po4a-gettextize --format man --master foo.1 --localized foo.de.1 --po de.po Vamos agora configurar o po4a. Com o layout de arquivo apropriado, seu arquivo de configuracao pode ser tao simples como este: [po_directory] man/po4a/ [type: man] man/foo.1 $lang:man/translated/foo.$lang.1 It specifies that all PO files (containing the work of the translators) are in the man/po4a/ directory, and that you have only one master file, man/foo.1. If you had several master files, you would have several lines similar to the second one. Each such line also specify where to write the corresponding translation files. Here, the German translation of man/foo.1 is in man/translated/foo.de.1. A ultima coisa que precisamos para completar a configuracao do po4a e um arquivo POT contendo o material do modelo que deve ser usado para iniciar uma nova traducao. Basta criar um arquivo vazio com a extensao .pot no especificado po_directory (por exemplo, man/po4a/foo.pot), e po4a o preenchera com o conteudo esperado. Aqui esta uma recapitulacao dos arquivos nesta configuracao: man/ | foo.1 <- A pagina man original, em ingles | po4a/ | | de.po <- O PO com traducao alema, da gettextizacao | | foo.pot <- O POT, modelo de futuras traducoes (vazio no inicio) | translated/ <- Diretorio onde as traducoes serao criadas po4a.cfg <- O arquivo de configuracao Uma vez configurado, a execucao do po4a analisara sua documentacao, atualizara o arquivo de modelo POT, vai usa-lo para atualizar os arquivos de traducao PO e vai usa-los para atualizar os arquivos de traducao da documentacao. Tudo em um comando: po4a --verbose po4a.cfg E isto. po4a esta agora totalmente configurado. Uma vez que voce tenha corrigido seu erro no man/foo.1, o paragrafo problematico na traducao alema sera substituido pelo texto corrigido em ingles. Misturar idiomas nao e o melhor, mas e a unica maneira de remover erros nas traducoes que voce nao entende e garantir que o conteudo apresentado aos usuarios nunca seja enganoso. A atualizacao da traducao alema tambem e muito mais facil no arquivo PO correspondente, entao a mistura de idiomas pode nao durar muito. Finalmente, quando um tradutor japones quer contribuir com uma nova traducao, ela deve renomear o foo.pot em ja.po e completar a traducao. Uma vez que voce tem este arquivo, basta deixa-lo em man/po4a/po/. Uma pagina traduzida aparecera como man/translated/foo.ja.1 (desde que o conteudo suficiente seja traduzido) quando voce executar po4a novamente. OPCOES -k, --keep Limite minimo de porcentagem de traducao para manter (i.e. escrever) o arquivo resultante (padrao: 80). Isto e, por padrao, arquivos tem que estar traduzidos em pelo menos 80% para serem escritos no disco. -w, --width Column at which we should wrap the resulting file if the format supports it (default: 76). -h, --help Mostra uma mensagem de ajuda. -M, --master-charset Conjunto de caracteres dos arquivos contendo os documentos para traduzir. Note que todos os documentos mestres devem usar o mesmo conjunto de caracteres. -L, --localized-charset Conjunto de caracteres dos arquivos contendo os documentos localizados. Note que todos os documentos traduzidos devem usar o mesmo conjunto de caracteres. -A, --addendum-charset Conjunto de caracteres dos adendos. Note que todos os adendos deveriam ser do mesmo conjunto de caracteres. -V, --version Exibe a versao do script e sai. -v, --verbose Aumenta o nivel de detalhamento do programa. -q, --quiet Reduz o nivel de detalhamento do programa. -d, --debug Imprime algumas informacoes de depuracao. -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". -f, --force Sempre gera os aquivos POT e PO, mesmo se po4a considera isso desnecessario. O comportamento padrao (quando --force nao e especificado) e o seguinte: Se o arquivo POT ja existe, ele e regerado se uma documentacao mestre ou arquivo de configuracao for mais recente (a menos --no-update seja fornecido). O POT tambem e escrito em um documento temporario e po4a certifica-se de que as alteracoes sao realmente necessarias. Tambem, uma traducao e gerada novamente apenas se seu documento mestre, o arquivo PO, um desses adendos ou arquivo de configuracao e mais recente. Para evitar tentativa de gerar traducoes que nao passam no teste de limite (veja --keep), um arquivo com a extensao .po4a-stamp pode ser criada (veja --stamp). Se um documento mestre inclui arquivos, voce deveria usar a opcao --force porque o horario de modificacao desses arquivos incluidos nao sao levados em consideracao. Os arquivos PO sao gerados novamente baseados no POT com msgmerge -U. --stamp Informa ao po4a para criar arquivos stamp quando uma traducao nao e gerada porque ela nao atingiu o limite. Esses arquivos stamp sao nomeados de acordo com o documento de traducao esperado, com a extensao .po4a-stamp. Nota: Isso somente ativa a criacao dos arquivos .po4a-stamp. Os arquivos stamp sao sempre usados se existirem e eles sao removidos com --rm-translations ou quando o arquivo e finalmente traduzido. --no-translations Nao gera os documentos traduzidos, apenas atualiza os arquivos POT e PO. --no-update Nao altere os arquivos POT e PO, apenas a traducao pode ser atualizada. --keep-translations Mantem os arquivos de traducao existentes mesmo se a traducao nao atender o limite especificado por --keep. Essa opcao nao cria novos arquivos de traducao com pouco conteudo, mas vai salvar traducoes existentes que cujo nivel decai por causa de alteracoes nos arquivos de mestre. ATENCAO: Esta opcao muda o comportamento do po4a de uma maneira bastante drastica: seus arquivos traduzidos nao serao atualizados ate que a traducao melhore. Use esta opcao somente se voce preferir enviar uma documentacao traduzida desatualizada em vez de enviar apenas uma documentacao nao traduzida precisa. --rm-translations Remove os arquivos de traducao (implica em --no-translations). --no-backups Essa opcao nao faz nada desde 0.41 e pode ser removida em versoes posteriores. --rm-backups Essa opcao nao faz nada desde 0.41 e pode ser removida em versoes posteriores. --translate-only arquivo-traduzido Traduz apenas o arquivo especificado. Pode ser util para agilizar o processamento se um arquivo de configuracao contem muitos arquivos. Note que essa opcao nao atualiza arquivos POT e PO. Essa opcao pode ser usada multiplas vezes. --variable var=valor Define uma variavel que vai ser expandida no arquivo de configuracao do po4a. Toda ocorrencia de $(var) vai ser substituida por valor. Essa opcao pode ser usada multiplas vezes. --srcdir SRCDIR Define o diretorio base para todos os documentos de entradas especificados no arquivo de configuracao do po4a. Se destdir e srcdir forem especificados, os arquivos de entrada serao pesquisados nos seguintes diretorios, em ordem: destdir, o diretorio atual e srcdir. Os arquivos de saida sao gravados em destdir, se especificado, ou no diretorio atual. --destdir DESTDIR Define o diretorio base para todos os documentos de saida especificados no arquivo de configuracao do po4a (veja --srcdir acima). Opcoes que modificam o cabecalho do POT --porefs tipo Especifica o formato de referencia. O argumento tipo pode ser um de: never para nao produzir qualquer referencia, file para especificar o arquivo sem o numero de linha, counter para substituir os numeros de linha aumentando o contador e full para incluir referencias completas. (padrao: full). --wrap-po no|newlines|number (padrao: 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 sao mais faceis de manipular automaticamente, mas mais dificeis de ler para humanos. Historicamente, o pacote gettext reformatou os arquivos po na 77a coluna para questoes cosmeticas. Esta opcao especifica o comportamento de po4a. Se definido como um valor numerico, o po4a quebrara linha do arquivo po apos esta coluna e apos novas linhas no conteudo. Se definido como newlines, o po4a dividira apenas o msgid e o msgstr apos as novas linhas no conteudo. Se definido como no, o po4a nao quebrara linha do arquivo po. Os comentarios de referencia tem sempre as linhas quebradas pelas ferramentas do gettext que nos usamos internamente. Observe que esta opcao nao afeta a maneira como o msgid e o msgstr sofrem quebra de linhas, ou seja, como os caracteres de nova linha sao adicionados ao conteudo dessas strings. --master-language Idioma dos arquivos fonte contendo os documentos para traduzir. Note que todos os documentos mestres devem usar o mesmo idioma. --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". Opcoes para modificar os arquivos PO --msgmerge-opt opcoes Opcoes extras para msgmerge(1). Nota: $lang vai estar estendida do idioma atual. --no-previous Essa opcao remove --previous das opcoes passadas ao msgmerge. Isso e necessario para oferecer suporte a versoes do gettext antes de 0.16. --previous Essa opcao adiciona --previous as opcoes passadas ao msgmerge. Isso requer gettext 0.16 ou posterior, e e ativada por padrao. ARQUIVO DE CONFIGURACAO po4a espera um arquivo de configuracao como argumento. Este arquivo deve conter os seguintes elementos: o O caminho para os arquivos PO e a lista de idiomas existentes no projeto; o Opcionalmente, algumas opcoes globais e os chamados aliases de configuracao que sao usados como modelos para configurar arquivos mestres individuais ; o A lista de cada arquivo mestre a traduzir, juntamente com parametros especificos. Todas as linhas contem um comando entre colchetes, seguido dos seus parametros. Os comentarios comecam com o caractere "#" e correm ate ao fim da linha. Voce pode escapar do fim da linha para espalhar um comando por varias linhas. Alguns exemplos completos sao apresentados nesta pagina, enquanto outros exemplos podem ser encontrados no diretorio "t/cfg" da distribuicao de origem. Encontrando os arquivos PO e POT A solucao mais simples e dar explicitamente o caminho para arquivos POT e PO, da seguinte forma: [po4a_paths] man/po/project.pot de:man/po/de.po fr:man/po/fr.po Isso especifica o caminho para o arquivo POT primeiro e, em seguida, os caminhos para os arquivos PO alemao e frances. A mesma informacao pode ser escrita da seguinte maneira para reduzir o risco de erros de copiar/colar: [po4a_langs] fr de [po4a_paths] man/po/project.pot $lang:man/po/$lang.po O componente $lang e gasto automaticamente usando a lista de idiomas fornecidos, reduzindo o risco de erro de copiar/colar quando um novo idioma e adicionado. Voce pode compactar ainda mais as mesmas informacoes fornecendo apenas o caminho para o diretorio contendo seu projeto de traducao, da forma a seguir. [po_directory] man/po/ O diretorio fornecido deve conter um conjunto de arquivos PO, cada um chamado XX.po com "XX" o ISO 631-1 do idioma utilizado neste arquivo. O diretorio deve conter tambem um unico arquivo POT, com a extensao ".pot" file. Para a primeira execucao, este arquivo pode estar vazio, mas deve existir (po4a nao pode adivinhar o nome a ser usado antes da extensao). Observe que voce deve escolher apenas um entre "po_directory" e "po4a_paths". O primeiro ("po_directory") e mais compacto, reduz ainda mais o risco de erro de copia/pasta, mas forca voce a usar a estrutura de projeto esperada e nomes de arquivos. O segundo ("po4a_paths"), e mais explicito, provavelmente mais legivel, e aconselhado quando voce configura seu primeiro projeto com po4a. Arquivos PO centralizados ou divididos? Por padrao, o po4a produz um unico arquivo PO por idioma de destino, contendo todo o conteudo do seu projeto de traducao. Conforme o seu projeto cresce, o tamanho desses arquivos pode se tornar problematico. Ao utilizar weblate, e possivel especificar prioridades para cada segmento de traducao (isto e, msgid), de modo que os importantes sejam traduzidos primeiro. Mesmo assim, algumas equipes de traducao preferem dividir o conteudo em varios arquivos. Para ter um arquivo PO por arquivo mestre, basta usar a string $master no nome dos arquivos PO na linha "[po4a_paths]", da seguinte maneira. [po4a_paths] doc/$master/$master.pot $lang:doc/$master/$lang.po Com esta linha, po4a produzira arquivos POT e PO separados para cada documento a ser traduzido. Por exemplo, se voce tiver 3 documentos e 5 idiomas, isso resultara em 3 arquivos POT e 15 arquivos PO. Esses arquivos sao nomeados conforme especificado no modelo "po4a_paths", com $master substituido no nome de base de cada documento a ser traduzido. Em caso de conflito de nome, voce pode especificar o arquivo POT a ser usado da seguinte maneira, com o parametro "pot=". Este recurso tambem pode ser usado para agrupar varios arquivos traduzidos no mesmo arquivo POT. O exemplo a seguir so produz 2 arquivos POT: l10n/po/foo.pot (contendo o material de foo/gui.xml) e l10n/po/bar.pot (contendo o material de ambos bar/gui.xml e bar/cli.xml). [po4a_langs] de fr ja [po4a_paths] l10n/po/$master.pot $lang:l10n/po/$master.$lang.po [type: xml] foo/gui.xml $lang:foo/gui.$lang.xml pot=foo [type: xml] bar/gui.xml $lang:bar/gui.$lang.xml pot=bar [type: xml] bar/cli.xml $lang:bar/cli.$lang.xml pot=bar No modo de divisao, po4a cria um compendio temporario durante a atualizacao do PO, para compartilhar as traducoes entre todos os arquivos do pedido. Se dois arquivos PO tiverem traducoes diferentes para a mesma string, po4a marcara essa string como difusa e enviara ambas as traducoes em todos os arquivos PO que contem essa string. Quando nao e confundida pelo tradutor, a traducao e usada em todos os arquivos PO automaticamente. Especificando os documentos para traduzir Voce tambem deve listar os documentos que devem ser traduzidos. Para cada arquivo mestre, voce deve especificar o analisador de formato a ser usado, o local do documento traduzido a ser produzido e, opcionalmente, alguma configuracao. Nomes de arquivos devem estar entre aspas ou escapados se eles contiverem espacos. Aqui esta um exemplo: [type: sgml] "doc/my stuff.sgml" "fr:doc/fr/mon truc.sgml" de:doc/de/mein\ kram.sgml [type: man] script fr:doc/fr/script.1 de:doc/de/script.1 [type: docbook] doc/script.xml fr:doc/fr/script.xml \ de:doc/de/script.xml Mas, novamente, essas linhas complexas sao dificeis de ler e modificar, por exemplo, ao adicionar um novo idioma. E muito mais simples reorganizar as coisas usando o modelo $lang da seguinte maneira: [type: sgml] doc/my_stuff.sgml $lang:doc/$lang/my_stuff.sgml [type: man] script.1 $lang:po/$lang/script.1 [type: docbook] doc/script.xml $lang:doc/$lang/script.xml Especificando opcoes Ha dois tipos de opcoes: opcoes do po4a sao valores padrao para as opcoes de linha de comando po4a enquanto opcoes de formato sao usadas para alterar o comportamento dos analisadores de formato. Como uma opcoes do po4a, voce pode, por exemplo, especificar em seu arquivo de configuracao que o valor padrao do parametro de linha de comando --keep e de 50% em vez de 80%. Opcoes de formato estao documentadas na pagina especifica de cada modulo de analise, por exemplo, Locale::Po4a::Xml(3pm). Voce pode, por exemplo, passar nostrip para o analisador XML para nao remover os espacos ao redor das strings extraidas. Voce pode passar essas opcoes para um arquivo mestre especifico, ou mesmo para uma traducao especifica desse arquivo, usando "opt:" e "opt_XX:" para o idioma "XX". No exemplo a seguir, a opcao nostrip e passada para o analisador XML (para todos os idiomas), enquanto o limite sera reduzido para 0% para a traducao em frances (que, portanto, e sempre mantida). [type:xml] toto.xml $lang:toto.$lang.xml opt:"-o nostrip" opt_fr:"--keep 0" De qualquer forma, esses blocos de configuracao devem estar localizados no final da linha. A declaracao dos arquivos deve vir primeiro, depois o adendo, se houver (veja abaixo), e somente as opcoes. O agrupamento de pedacos de configuracao nao e muito importante, pois os elementos sao internamente concatenados como strings. Os exemplos a seguir sao todos equivalentes: [type:xml] toto.xml $lang:toto.$lang.xml opt:"--keep 20" opt:"-o nostrip" opt_fr:"--keep 0" [type:xml] toto.xml $lang:toto.$lang.xml opt:"--keep 20 -o nostrip" opt_fr:"--keep 0" [type:xml] toto.xml $lang:toto.$lang.xml opt:--keep opt:20 opt:-o opt:nostrip opt_fr:--keep opt_fr:0 Observe que as opcoes especificas do idioma nao sao usadas ao criar o arquivo POT. Por exemplo, e impossivel passar nostrip para o analisador apenas ao criar a traducao em frances, porque o mesmo arquivo POT e usado para atualizar todos os idiomas. Portanto, as unicas opcoes que podem ser especificas do idioma sao as usadas na producao da traducao, como a opcao "--keep". Aliases de configuracao Para passar as mesmas opcoes para varios arquivos, o melhor e definir um alias de tipo da seguinte maneira. No proximo exemplo, "--keep 0" e passado para todas as traducoes em italiano usando este tipo "test", que e uma extensao do tipo "man". [po4a_alias:test] man opt_it:"--keep 0" [type: test] man/page.1 $lang:man/$lang/page.1 Voce tambem pode estender um tipo existente de reutilizar o mesmo nome para o alias da seguinte forma. Este nao e interpretada como uma erronea definicao recursiva. [po4a_alias:man] man opt_it:"--keep 0" [type: man] man/page.1 $lang:man/$lang/page.1 Opcoes padrao globais Voce tambem pode usar as linhas "[options]" para definir opcoes que devem ser usadas para todos os arquivos, independentemente do seu tipo. [options] --keep 20 --option nostrip Como nas opcoes da linha de comando, voce pode abreviar os parametros passados no arquivo de configuracao: [options] -k 20 -o nostrip Prioridades das opcoes As opcoes de todas as fontes sao concatenadas, garantindo que os valores padrao possam ser facilmente substituidos por opcoes mais especificas. A ordem e a seguinte: o As linhas "[options]" fornecem valores padrao que podem ser substituidos por qualquer outra fonte. o Os aliases de tipo sao entao usados. As configuracoes especificas do idioma substituem as aplicaveis a todos os idiomas. o As configuracoes especificas de um determinado arquivo mestre substituem as padrao e as provenientes do alias de tipo. Tambem neste caso, as configuracoes especificas do idioma substituem as globais. o Finalmente, os parametros fornecidos na linha de comando po4a substituem quaisquer configuracoes do arquivo de configuracao. Exemplo Aqui esta um exemplo mostrando como citar os espacos e aspas: [po_directory] man/po/ [options] --master-charset UTF-8 [po4a_alias:man] man opt:"-o \"mdoc=NAME,SEE ALSO\"" [type:man] t-05-config/test02_man.1 $lang:tmp/test02_man.$lang.1 \ opt:"-k 75" opt_it:"-L UTF-8" opt_fr:--verbose Adendo: Acrescimo de conteudo extra na traducao Se voce deseja adicionar uma secao extra a traducao, por exemplo, para dar credito ao tradutor, e necessario definir um adendo a linha que define seu arquivo mestre. Consulte a pagina po4a(7) para obter mais detalhes sobre a sintaxe dos arquivos de adendo. [type: pod] script fr:doc/fr/script.1 \ add_fr:doc/l10n/script.fr.add Voce tambem pode usar modelos de idioma da seguinte maneira: [type: pod] script $lang:doc/$lang/script.1 \ add_$lang:doc/l10n/script.$lang.add Se um adendo nao se aplicar, a traducao sera descartada. Modificadores para a declaracao de adendo Os modificadores de adendo podem simplificar o arquivo de configuracao no caso em que nem todos os idiomas fornecem um adendo ou quando a lista de adendos muda de um idioma para o outro. O modificador e um unico caractere localizado antes do nome do arquivo. ? Inclua addendum_path se esse arquivo nao existir, do contrario nada para fazer. @ addendum_path nao e um adendo regular, mas um arquivo contendo uma lista de adendos, uma por linha. Cada adendo pode ser precedido por modificadores. ! addendum_path esta descartado, ele nao e carregado e nao vai ser carregado por qualquer uma especificacao de adendo. O seguinte inclui um adendo em qualquer idioma, mas se existir. Nenhum erro sera relatado se o adendo nao existir. [type: pod] script $lang:doc/$lang/script.1 add_$lang:?doc/l10n/script.$lang.add O seguinte inclui uma lista de adendos para cada idioma: [type: pod] script $lang:doc/$lang/script.1 add_$lang:@doc/l10n/script.$lang.add Filtrando as strings traduzidas As vezes, voce deseja ocultar algumas strings do processo de traducao. Nesse sentido, voce pode atribuir um parametro "pot_in" ao seu arquivo mestre para especificar o nome do arquivo a ser usado em vez do mestre real ao criar o arquivo POT. Aqui esta um exemplo: [type:docbook] book.xml \ pot_in:book-filtered.xml \ $lang:book.$lang.xml Com essa configuracao, as strings a serem traduzidas serao extraidas do book-filter.xml (que deve ser produzido antes da chamada de po4a) enquanto os arquivos traduzidos serao compilados a partir do book.xml. Como resultado, qualquer string que faca parte de book.xml, mas nao em book-filter.xml nao sera incluida nos arquivos PO, impedindo que os tradutores fornecam uma traducao para eles. Portanto, essas strings nao serao modificadas ao produzir os documentos traduzidos. Isso naturalmente diminui o nivel de traducao, portanto, voce pode precisar da opcao "--keep" para garantir que o documento seja produzido de qualquer maneira. VEJA TAMBEM po4a-gettextize(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.1P(1)