.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "PO4A 1p" .TH PO4A 1p "2018-12-09" "Ferramentas do Po4a" "Ferramentas do Po4a" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NOME" .IX Header "NOME" po4a \- atualiza ambos arquivos \s-1PO\s0 e documentações traduzidas em um tiro .SH "SINOPSE" .IX Header "SINOPSE" \&\fBpo4a\fR [\fIopções\fR] \fIarquivo_config\fR .SH "DESCRIÇÃO" .IX Header "DESCRIÇÃO" O objetivo do projeto po4a (\s-1PO\s0 for anything, ou \s-1PO\s0 para qualquer coisa) é facilitar traduções (e o mais interessante, a manutenção das traduções) usando as ferramentas do gettext em áreas em que não se esperava, como documentação. .PP O programa \fBpo4a\fR é útil, se você quer evitar chamar \fBpo4a\-gettextize\fR\|(1), \&\fBpo4a\-updatepo\fR\|(1) e \fBpo4a\-translate\fR\|(1) em Makefiles complexos quando você possui múltiplos arquivos para traduzir, formato diferente, ou precisa especificar opções diferentes para documentos diferentes. .SH "Sumário" .IX Header "Sumário" Esse documento é organizado da seguinte forma: .SS "DESCRIÇÃO" .IX Subsection "DESCRIÇÃO" .SS "INTRODUÇÃO" .IX Subsection "INTRODUÇÃO" .SS "\s-1SINTAXE DO ARQUIVO DE\s0 CONFIGURAÇÃO" .IX Subsection "SINTAXE DO ARQUIVO DE CONFIGURAÇÃO" \fIEspecificando os idiomas modelos\fR .IX Subsection "Especificando os idiomas modelos" .PP \fIEspecificando os caminhos para entradas do tradutor\fR .IX Subsection "Especificando os caminhos para entradas do tradutor" .PP \fIDetecção automática dos caminhos e idiomas\fR .IX Subsection "Detecção automática dos caminhos e idiomas" .PP \fIEspecificando os documentos para traduzir\fR .IX Subsection "Especificando os documentos para traduzir" .PP \fIEspecificando opções para os módulos\fR .IX Subsection "Especificando opções para os módulos" .PP \fIEspecificando alias\fR .IX Subsection "Especificando alias" .PP \fIModo dividido\fR .IX Subsection "Modo dividido" .SS "OPÇÕES" .IX Subsection "OPÇÕES" .SS "\s-1EXEMPLO\s0" .IX Subsection "EXEMPLO" .SS "\s-1PROBLEMAS\s0" .IX Subsection "PROBLEMAS" .SS "\s-1VEJA\s0 TAMBÉM" .IX Subsection "VEJA TAMBÉM" .SS "\s-1AUTORES\s0" .IX Subsection "AUTORES" .SS "\s-1COPYRIGHT E\s0 LICENÇA" .IX Subsection "COPYRIGHT E LICENÇA" \fI\fR .IX Subsection "" .SH "INTRODUÇÃO" .IX Header "INTRODUÇÃO" O programa \fBpo4a\fR está encarregado de atualizar ambos arquivos \s-1PO\s0 (para sincronizá\-los aos documentos originais) e documentos traduzidos (para sincronizá\-los aos arquivos \s-1PO\s0). O ponto principal é tornar o uso do po4a mais fácil sem ter que lembrar as opções de linha de comando. .PP Ele também permite que você misture documentos com formatos diferentes no mesmo arquivo \s-1POT,\s0 de forma que tenha apenas um arquivo por projeto. .PP Esse comportamento pode ser copiado por outras ferramentas da suíte po4a (por exemplo, com Makefiles), mas isso é difícil de fazer e exaustivo de refazer os mesmos Makefiles complicados para cada projeto usando po4a. .PP O fluxo de dados pode ser resumido como mostrado a seguir. Quaisquer alterações no documento mestre serão refletidas nos arquivos \s-1PO\s0 e todas alterações nos arquivos \s-1PO\s0 (seja manual ou causado por etapas anteriores) vão ser refletidas nos documentos traduzidos. .PP Caso normal sem especificar \fBpot_in\fR: .PP .Vb 1 \& <\- arquivos fontes \->|<\-\-\-\-\-\-\-\- resultados de compilação \-\-\-\-\-\-\-\-\-> \& \& adendo \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ \& | \& documento mestre \-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ | \& V +\-\-+\-\-> traduções \& arquivos PO antigos \-+\-\-> arquivos PO atualizados + \& ^ | \& | V \& +<........................+ \& (os arquivos PO atualizados são copiados \& manualmente para o código\-fonte do \& próximo lançamento enquanto atualiza \& manualmente o conteúdo da tradução) .Ve .PP Caso especial especificando \fBpot_in\fR: .PP .Vb 1 \& <\- arquivos fontes \->|<\-\-\-\-\-\-\-\-\- resultados de compilação \-\-\-\-\-\-\-\-\-\-\-\-> \& \& documento mestre \-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ \& : | \& programa de : documento | \& filtragem ========X..> mestre | \& externo filtrado | \& | | \& V +\-\-> traduções \& arquivos PO antigos \-\-\-\-\-\-+\-\-\-\-> arquivos PO atualizados + \& ^ | \& | V \& +<............................+ \& (os arquivos PO atualizados são copiados \& manualmente para o código\-fonte do \& próximo lançamento enquanto atualiza \& manualmente o conteúdo da tradução) .Ve .PP O fluxo de dados não pode ser revertido nesta ferramenta e alterações nas traduções são sobrescritas pelo conteúdo dos arquivos \s-1PO.\s0 Na verdade, essa ferramenta não pode ser usada para converter traduções existentes ao sistema do po4a. Para essa tarefa, por favor veja o \fBpo4a\-gettextize\fR\|(1). .SH "SINTAXE DO ARQUIVO DE CONFIGURAÇÃO" .IX Header "SINTAXE DO ARQUIVO DE CONFIGURAÇÃO" O argumento (obrigatório) é o arquivo de configuração a ser usado. Sua sintaxe mira em ser simples e perto dos arquivos de configuração usados pelos projetos do intl-tools. .PP Comentários nesses arquivos são anotados pelo caractere \*(L"#\*(R". Ele comenta tudo até o fim da linha. Linhas podem ser continuadas ao escapar o fima da linha. Todas as linhas não vazias podem iniciar com um comando [], seguido pelos seus argumentos. (parece difícil falando dessa forma, mas é bem fácil, espero! ;) .SS "Especificando os idiomas modelos" .IX Subsection "Especificando os idiomas modelos" \&\fBNota:\fR É recomendado o uso de \fB[po_directory]\fR ao invés de \&\fB[po4a_langs]\fR e \fB[po4a_paths]\fR. Veja a seção \fBDetecção automática dos caminhos e idiomas\fR abaixo. .PP Esse é um comando opcional que pode simplificar o processo de configuração como um todo, e vai tornar ele mais escalável. Você pode especificar uma lista de idiomas para os quais você deseja traduzir os documentos. Isso é tão simples quanto: .PP .Vb 1 \& [po4a_langs] fr de .Ve .PP Isso vai permitir que você expanda \fB\f(CB$lang\fB\fR para todos os idiomas especificados no resto do arquivo de configuração. .SS "Especificando os caminhos para entradas do tradutor" .IX Subsection "Especificando os caminhos para entradas do tradutor" \&\fBNota:\fR É recomendado o uso de \fB[po_directory]\fR ao invés de \&\fB[po4a_langs]\fR e \fB[po4a_paths]\fR. Veja a seção \fBDetecção automática dos caminhos e idiomas\fR abaixo. .PP Primeiro, você tem que especificar onde os arquivos de entrada do tradutor (i.e. os arquivos usados pelos tradutores para fazer seu trabalho) estão localizados. Isso pode ser feito por uma linha assim: .PP .Vb 2 \& [po4a_paths] doc/l10n/project.doc.pot \e \& fr:doc/l10n/fr.po de:doc/l10n/de.po .Ve .PP O comando é assim \fB[po4a_paths]\fR. O primeiro argumento é o caminho para o arquivo \s-1POT\s0 para usar. Todos os argumentos subsequentes são da forma auto-explicativa: .PP .Vb 1 \& : .Ve .PP Se você definiu os idiomas modelos, você pode reescrever a linha acima dessa forma: .PP .Vb 1 \& [po4a_paths] doc/l10n/project.doc.pot $lang:doc/l10n/$lang.po .Ve .PP Você também pode usar \fB\f(CB$master\fB\fR para referir ao nome de arquivo do documento. Neste caso, \fBpo4a\fR vai usar um modo dividido: um \s-1POT\s0 e um \s-1PO\s0 (para cada idioma) vão ser criados para cada documento especificado no arquivo de configuração do \fBpo4a\fR. Veja a seção do \fBModo dividido\fR. .PP .Vb 1 \& [po4a_paths] doc/$master/$master.pot $lang:doc/$master/$lang.po .Ve .SS "Detecção automática dos caminhos e idiomas" .IX Subsection "Detecção automática dos caminhos e idiomas" Outro comando pode ser usado para especificar o nome de um diretório onde os arquivos \s-1PO\s0 e \s-1POT\s0 estão localizados. Quando ele é usado, \fBpo4a\fR vai detectar o arquivo \s-1POT\s0 com o único arquivo \fI*.pot\fR do diretório especificado. \fBpo4a\fR também vai ser usado na lista de arquivos \fI*.po\fR para definir a lista de idiomas (ao remover a extensão). Esses idiomas vão ser usados para a substituição da variável \fB\f(CB$lang\fB\fR no resto do arquivo de configuração. .PP Esse comando deveria não ser usado junto com os comandos \fB[po4a_langs]\fR ou \&\fB[po4a_paths]\fR. .PP Quando usando esse comando, você tem que criar um arquivo \s-1POT\s0 vazio na primeira invocação de \fBpo4a\fR para que ele saiba o nome do arquivo \s-1POT.\s0 .PP .Vb 1 \& [po_directory] po4a/po/ .Ve .SS "Especificando os documentos para traduzir" .IX Subsection "Especificando os documentos para traduzir" Agora, você normalmente tem que especificar quais documentos estão traduzidos, seus formatos e onde colocar as traduções. Isso pode ser feito por uma linha assim: .PP .Vb 7 \& [type: sgml] doc/my_stuff.sgml fr:doc/fr/mon_truc.sgml \e \& pt_BR:doc/pt_BR/minhas_coisas.sgml \& [type: pod] script fr:doc/fr/script.1 pt_BR:doc/pt_BR/script.1 \e \& add_fr:doc/l10n/script.fr.add \& [type: docbook] doc/script.xml fr:doc/fr/script.xml \e \& pt_BR:doc/pt_BR/script.xml \e \& pot_in:doc/script.filtered.xml .Ve .PP Isso também deveria ser auto-explicativa. Note que no segundo caso, \&\fIdoc/l10n/script.fr.add\fR é um adendo para adicionar a versão em francês deste documento. Por favor, veja o \fBpo4a\fR\|(7) para mais informações sobre os adendos. .PP Mais formalmente, o formato é: .PP .Vb 3 \& [type: ] (:)* \e \& (pot_in:)? \e \& (add_:*)* .Ve .PP Se \fBpot_in\fR for especificado, \fIdoc_mestre_filtrado\fR será usado para criar o arquivo \s-1POT\s0 em vez de \fIdoc_mestre\fR. Esse recurso permite que o usuário crie maneiras flexíveis para evitar conteúdos que não devem ser incluídos nos arquivos \s-1PO.\s0 Ferramentas como o pré\-processador C (\fBcpp\fR) ou o utilitário \s-1XSL\s0 Transformation (por exemplo, \fBxsltproc\fR) podem ser usadas para criar o programa de filtragem externo e chamá\-lo antes de invocar \&\fBpo4a\fR. .PP Se há nenhum modificador, \fIaddendum_path\fR é um caminho para um adendo. Modificadores são .IP "\fB?\fR" 2 .IX Item "?" Inclua \fIaddendum_path\fR se esse arquivo não existir, do contrário nada para fazer. .IP "\fB@\fR" 2 .IX Item "@" \&\fIaddendum_path\fR não é um adendo regular, mas um arquivo contendo uma lista de adendos, uma por linha. Cada adendo pode ser precedido por modificadores. .IP "\fB!\fR" 2 .IX Item "!" \&\fIaddendum_path\fR está descartado, ele não é carregado e não vai ser carregado por qualquer uma especificação de adendo. .PP Se você definiu os idiomas modelos, você pode reescrever a linha acima dessa forma: .PP .Vb 2 \& [type: pod] script $lang:doc/$lang/script.1 \e \& add_fr:doc/l10n/script.fr.add .Ve .PP Se todos os idiomas possuíssem adendos com caminhos similares, você poderia também escrever alguma coisa como: .PP .Vb 2 \& [type: pod] script $lang:doc/$lang/script.1 \e \& add_$lang:doc/l10n/script.$lang.add .Ve .SS "Especificando opções para os módulos" .IX Subsection "Especificando opções para os módulos" \&\fBpo4a\fR aceita opções que serão passadas para o módulo. Essas opções são especificas do módulo e são especificadas com a opção \fB\-o\fR. .PP Se você precisar de uma opção específica para um dos documentos que deseja traduzir, você também pode especificá\-lo no arquivo de configuração. Opções são introduzidas pela palavra-chave \fBopt\fR. O argumento da palavra-chave \&\fBopt\fR deve estar entre aspas duplas se contiver um espaço (ex.: se você especificar múltiplas opções ou uma opção com um argumento). Você também pode especificar opções que vão apenas aplicar a um idioma específico usando a palavra-chave \fBopt_\fR\fIlang\fR. .PP Aqui está um exemplo: [type:man] t\-05\-config/test02_man.1 \f(CW$lang:tmp\fR/test02_man.$lang.1 \e opt:\*(L"\-k 75\*(R" opt_it:\*(L"\-L \s-1UTF\-8\*(R"\s0 opt_fr:\-v .PP Argumentos podem conter espaços se você usa aspas simples ou aspas escapadas (\*(L"): [po4a_alias:man] man opt:\*(R"\-o \e\*(L"mdoc=NAME,SEE ALSO\e\*(R" \-k 20" .PP Se você quiser especificar as mesmas opções para muitos documentos, você pode querer usar um apelido/alias (veja a seção \fBEspecificando alias\fR abaixo). .PP Você também pode definir opções para todos os documentos especificados no arquivo de configuração: [opções] opt:\*(L"...\*(R" opt_fr:\*(L"...\*(R" .SS "Especificando alias" .IX Subsection "Especificando alias" Se você deve especificar as mesmas opções para múltiplos arquivos, você pode se interessar na definição de um alias (apelido) de um módulo. Isso pode ser feito dessa forma: .PP .Vb 1 \& [po4a_alias:test] man opt:"\-k 21" opt_es:"\-o debug=splitargs" .Ve .PP Isso define um alias para um módulo chamado \fBtest\fR, baseado no módulo \&\fBman\fR, com o \fB\-k 21\fR aplicado aos idiomas e com \fB\-o debug=splitargs\fR aplicado para tradução em espanhol. .PP Esse alias de módulo pode, então, ser usado como um módulo normal: .PP .Vb 2 \& [type:test] t\-05\-config/test02_man.1 $lang:tmp/test02_man.$lang.1 \e \& opt_it:"\-L UTF\-8" opt_fr:\-v .Ve .PP Note que você pode especificar opções adicionais por arquivo. .SS "Modo dividido" .IX Subsection "Modo dividido" O modo dividido (\*(L"split mode\*(R") é usado quando \fB\f(CB$master\fB\fR é usado na linha de \&\fB[po4a_paths]\fR. .PP Quando o modo dividido for usado, um grande \s-1POT\s0 temporário e grandes POs temporários são usados. Isso permite compartilhar as traduções entre todos os POs. .PP Se dois POs possuem traduções diferentes para a mesma string, \fBpo4a\fR vai marcar essa string como aproximada (\*(L"fuzzy\*(R") e vai enviar ambas traduções em todos os POs que contêm essa string. Então, quando um tradutor atualiza a tradução e remove a sinalização de aproximada em um \s-1PO,\s0 a tradução dessa string será atualizada em todos POs automaticamente. .PP Se há conflitos no nome porque vários arquivos possuem o mesmo nome de arquivo, o nome do arquivo mestre pode ser especificado adicionando uma opção \f(CW\*(C`master:file=\*(C'\fR\fIname\fR: .PP .Vb 4 \& [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 master:file=foo\-gui \& [type: xml] bar/gui.xml $lang:bar/gui.$lang.xml master:file=bar\-gui .Ve .SH "OPÇÕES" .IX Header "OPÇÕES" .IP "\fB\-k\fR, \fB\-\-keep\fR" 4 .IX Item "-k, --keep" Limite mínimo de porcentagem de tradução para manter (i.e. escrever) o arquivo resultante (padrão: 80). I.e. por padrão, arquivos têm que ser traduzido em pelo menos 80% para ser escrito. .IP "\fB\-h\fR, \fB\-\-help\fR" 4 .IX Item "-h, --help" Mostra uma mensagem de ajuda. .IP "\fB\-M\fR, \fB\-\-master\-charset\fR" 4 .IX Item "-M, --master-charset" Conjunto de caracteres contendo os documentos para traduzir. Note que todos os documentos mestres deve usar o mesmo conjunto de caracteres por hora. Isso é uma limitação conhecida e nós estamos trabalhando para resolver isso. .IP "\fB\-L\fR, \fB\-\-localized\-charset\fR" 4 .IX Item "-L, --localized-charset" Conjunto de caracteres dos arquivos contendo os documentos localizados. Note que todos os documentos traduzidos vão usar o mesmo conjunto de caracteres por hora. Essa é uma limitação conhecida e nós estamos trabalhando para resolver isso. .IP "\fB\-A\fR, \fB\-\-addendum\-charset\fR" 4 .IX Item "-A, --addendum-charset" Conjunto de caracteres dos adendos. Note que todos os adendos deveriam ser do mesmo conjunto de caracteres. .IP "\fB\-V\fR, \fB\-\-version\fR" 4 .IX Item "-V, --version" Exibe a versão do script e sai. .IP "\fB\-v\fR, \fB\-\-verbose\fR" 4 .IX Item "-v, --verbose" Aumenta o nível de detalhamento do programa. .IP "\fB\-q\fR, \fB\-\-quiet\fR" 4 .IX Item "-q, --quiet" Reduz o nível de detalhamento do programa. .IP "\fB\-d\fR, \fB\-\-debug\fR" 4 .IX Item "-d, --debug" Imprime algumas informações de depuração. .IP "\fB\-o\fR, \fB\-\-option\fR" 4 .IX Item "-o, --option" Opções extras para passar o plug-in de formato. Especifique cada opção no formato "\fInome\fR\fB=\fR\fIvalor\fR". Veja a documentação de cada plug-in para mais informações sobre as opções válidas e seus significados. .IP "\fB\-f\fR, \fB\-\-force\fR" 4 .IX Item "-f, --force" Sempre gera os aquivos \s-1POT\s0 e \s-1PO,\s0 mesmo se \fBpo4a\fR considera isso desnecessário. .Sp O comportamento padrão (quando \fB\-\-force\fR não é especificado) é o seguinte: .RS 4 .Sp .RS 4 Se o arquivo \s-1POT\s0 já existe, ele é regerado se uma documentação mestre ou arquivo de configuração for mais recente. O \s-1POT\s0 também é escrito em um documento temporário e \fBpo4a\fR certifica-se de que as alterações são realmente necessárias. .Sp Também, uma tradução é gerada novamente apenas se seu documento mestre, o arquivo \s-1PO,\s0 um desses adendos ou arquivo de configuração é mais recente. Para evitar tentativa de gerar traduções que não passam no teste de limite (veja \fB\-\-keep\fR), um arquivo com a extensão \fI.po4a\-stamp\fR pode ser criada (veja \fB\-\-stamp\fR). .RE .RE .RS 4 .Sp Se um documento mestre inclui arquivos, você deveria usar a opção \fB\-\-force\fR porque o horário de modificação desses arquivos incluídos não são levados em consideração. .Sp Os arquivos \s-1PO\s0 são gerados novamente baseados no \s-1POT\s0 com \fBmsgmerge \-U\fR. .RE .IP "\fB\-\-stamp\fR" 4 .IX Item "--stamp" Informa ao \fBpo4a\fR para criar arquivos stamp quando uma tradução não é gerada porque ela não atingiu o limite. Esses arquivos stamp são nomeados de acordo com o documento de tradução esperado, com a extensão \fI.po4a\-stamp\fR. .Sp Nota: Isso somente ativa a criação dos arquivos \fI.po4a\-stamp\fR. Os arquivos stamp são sempre usados se existirem e eles são removidos com \&\fB\-\-rm\-translations\fR ou quando o arquivo é finalmente traduzido. .IP "\fB\-\-no\-translations\fR" 4 .IX Item "--no-translations" Não gera os documentos traduzidos, apenas atualiza os arquivos \s-1POT\s0 e \s-1PO.\s0 .IP "\fB\-\-no\-update\fR" 4 .IX Item "--no-update" Não altere os arquivos \s-1POT\s0 e \s-1PO,\s0 apenas a tradução pode ser atualizada. .IP "\fB\-\-keep\-translations\fR" 4 .IX Item "--keep-translations" Mantém os arquivos de tradução existentes mesmo se a tradução não atender o limite especificado por \-\-keep. Essa opção não cria novos arquivos de tradução com pouco conteúdo, mas vai salvar traduções existentes que cujo nível decai por causa de alterações nos arquivos de mestre. .Sp ATENÇÃO: Esta opção muda o comportamento do po4a de uma maneira bastante drástica: seus arquivos traduzidos não serão atualizados até que a tradução melhore. Use esta opção somente se você preferir enviar uma documentação traduzida desatualizada em vez de enviar apenas uma documentação não traduzida precisa. .IP "\fB\-\-rm\-translations\fR" 4 .IX Item "--rm-translations" Remove os arquivos de tradução (implica em \fB\-\-no\-translations\fR). .IP "\fB\-\-no\-backups\fR" 4 .IX Item "--no-backups" Essa opção não faz nada desde 0.41 e pode ser removida em versões posteriores. .IP "\fB\-\-rm\-backups\fR" 4 .IX Item "--rm-backups" Essa opção não faz nada desde 0.41 e pode ser removida em versões posteriores. .IP "\fB\-\-translate\-only\fR \fIarquivo-traduzido\fR" 4 .IX Item "--translate-only arquivo-traduzido" Traduz apenas o arquivo especificado. Pode ser útil para agilizar o processamento se um arquivo de configuração contém muitos arquivos. Note que essa opção não atualiza arquivos \s-1POT\s0 e \s-1PO.\s0 Essa opção pode ser usada múltiplas vezes. .IP "\fB\-\-variable\fR \fIvar\fR\fB=\fR\fIvalor\fR" 4 .IX Item "--variable var=valor" Define uma variável que vai ser expandida no arquivo de configuração do \&\fBpo4a\fR. Toda ocorrência de \fI$(var)\fR vai ser substituída por \fIvalor\fR. Essa opção pode ser usada múltiplas vezes. .IP "\fB\-\-srcdir\fR \fI\s-1SRCDIR\s0\fR" 4 .IX Item "--srcdir SRCDIR" Define o diretório base para todos os documentos de entradas especificados no arquivo de configuração do \fBpo4a\fR. .IP "\fB\-\-destdir\fR \fI\s-1DESTDIR\s0\fR" 4 .IX Item "--destdir DESTDIR" Define o diretório base para todos os documentos de saída especificados no arquivo de configuração do \fBpo4a\fR. .SS "OPÇÕES \s-1QUE MODIFICAM O\s0 CABEÇALHO \s-1DO POT\s0" .IX Subsection "OPÇÕES QUE MODIFICAM O CABEÇALHO DO POT" .IP "\fB\-\-porefs\fR \fItipo\fR[,\fBwrap\fR|\fBnowrap\fR]" 4 .IX Item "--porefs tipo[,wrap|nowrap]" Especifica o formato de referência. O argumento \fItipo\fR pode ser um de: \&\fBnever\fR para não produzir qualquer referência, \fBfile\fR para especificar o arquivo sem o número de linha, \fBcounter\fR para substituir os números de linha aumentando o contador e \fBfull\fR para incluir referências completas. (padrão: full). .Sp Argumento pode estar seguido por uma vírgula e as palavras-chaves \fBwrap\fR ou \&\fBnowrap\fR. Referências são escritas por padrão em uma única linha. A opção \&\fBwrap\fR quebra as referências em várias linhas, para copiar as ferramentas do \fBgettext\fR (\fBxgettext\fR e \fBmsgmerge\fR). Essa opção vai se tornar o padrão em um lançamento futuro, mas ela é mais sensível. A opção \fBnowrap\fR está disponível de forma que usuários que desejarem manter o comportamento antigo podem fazê\-lo. .IP "\fB\-\-msgid\-bugs\-address\fR \fIe\-mail@endereço\fR" 4 .IX Item "--msgid-bugs-address e-mail@endereço" Define o endereço para relatórios de erros em msgids. Por padrão, os arquivos \s-1POT\s0 criados possuem nenhum campo Report-Msgid-Bugs-To. .IP "\fB\-\-copyright\-holder\fR \fIstring\fR" 4 .IX Item "--copyright-holder string" Define o detentor do copyright no cabeçalho do \s-1POT. O\s0 valor padrão é \*(L"Free Software Foundation, Inc.\*(R" .IP "\fB\-\-package\-name\fR \fIstring\fR" 4 .IX Item "--package-name string" Define o nome do pacote para o cabeçalho do \s-1POT. O\s0 padrão é \*(L"\s-1PACKAGE\*(R".\s0 .IP "\fB\-\-package\-version\fR \fIstring\fR" 4 .IX Item "--package-version string" Define a versão do pacote do cabeçalho do \s-1POT. O\s0 padrão é \*(L"\s-1VERSION\*(R".\s0 .SS "OPÇÕES \s-1PARA MODIFICAR ARQUIVOS PO\s0" .IX Subsection "OPÇÕES PARA MODIFICAR ARQUIVOS PO" .IP "\fB\-\-msgmerge\-opt\fR \fIopções\fR" 4 .IX Item "--msgmerge-opt opções" Opções extras para \fBmsgmerge\fR(1). .Sp Nota: \fB\f(CB$lang\fB\fR vai estar estendida do idioma atual. .IP "\fB\-\-no\-previous\fR" 4 .IX Item "--no-previous" Essa opção remove \fB\-\-previous\fR das opções passadas ao \fBmsgmerge\fR. Isso permite Isso permite o suporte a versões do \fBgettext\fR antes de 0.16. .IP "\fB\-\-previous\fR" 4 .IX Item "--previous" Essa opção adiciona \fB\-\-previous\fR às opções passadas ao \fBmsgmerge\fR. Isso requer \fBgettext\fR 0.16 ou posterior, e é ativada por padrão. .SS "\s-1EXEMPLO\s0" .IX Subsection "EXEMPLO" Vamos presumir que você mantém um programa chamado \fBfoo\fR, o qual possui uma página de manual \fIman/foo.1\fR, a qual naturalmente é mantida em inglês somente. Agora você, como o mantenedor upstream ou downstream, quer criar e manter a tradução. Primeiro você precisa criar o arquivo \s-1POT\s0 necessário para enviar os tradutores usando \fBpo4a\-gettextize\fR\|(1). .PP Então, para o nosso caso, chamaríamos .PP .Vb 1 \& cd man && po4a\-gettextize \-f man \-m foo.1 \-p foo.pot .Ve .PP Você iria, então, enviar esse arquivo para as listas de idiomas apropriadas ou oferecê\-lo para download em algum lugar na sua página web. .PP Agora, vamos presumir que você recebeu três traduções antes de seu próximo lançamento: \fIde.po\fR (includindo um adendo \fIde.add\fR), \fIsv.po\fR e \&\fIpt.po\fR. Considerando que você não quer alterar seu \fIMakefile\fR(s) quando uma nova tradução aparece, você pode usar o \fBpo4a\fR com um arquivo de configuração apropriada em seu \fIMakefile\fR. Vamos chamá\-lo de \&\fIpo4a.cfg\fR. Em nosso exemplo, ele se pareceria com o seguinte: .PP .Vb 1 \& [po_directory] man/po4a/po/ \& \& [type: man] man/foo.1 $lang:man/translated/$lang/foo.1 \e \& add_$lang:?man/po4a/add_$lang/$lang.add opt:"\-k 80" .Ve .PP Neste exemplo, nós presumimos que suas páginas de manual geradas (e todos os arquivos \s-1PO\s0 e de adendos) deveriam estar armazenadas em \&\fIman/translated/$lang/\fR (respectivamente em \fIman/po4a/po/\fR e \&\fIman/po4a/add_$lang/\fR) abaixo do diretório atual. Em nosso exemplo, o diretório de \fIman/po4a/po/\fR iria incluir \fIde.po\fR, \fIpt.po\fR e \fIsv.po\fR, e o diretório de \fIman/po4a/add_de/\fR iria incluir \fIde.add\fR. .PP Note que o uso do modificador \fB?\fR em apenas tradução em alemão (\fIde.po\fR) é acompanhada por um adendo. .PP Para atualmente compilar as páginas de manual traduzidas você iria, então, adicionar (uma só vez!) a seguinte linha no alvo \fBbuild\fR do \fIMakefile\fR apropriado: .PP .Vb 1 \& po4a po4a.cfg .Ve .PP Assim que isso estiver sido configurado, você não precisa tocar no \&\fIMakefile\fR quando uma nova tradução aparecer , i.e. se o time francês enviar a você \fIfr.po\fR e \fIfr.add\fR, você iria simplesmente colocá\-las respectivamente em \fIman/po4a/po/\fR e \fIman/po4a/add_fr/\fR e o a próxima vez que o programa for compilado, a tradução em francês também será compilada automaticamente em \fIman/translated/fr/\fR. .PP Note que você ainda precisaria de um alvo apropriado para instalar páginas de manuais localizados com os em inglês. .PP Finalmente, se você não armazena arquivos gerados em seu sistema de controle de versão, você vai precisar de uma linha em seu alvo \fBclean\fR também: \-rm \-rf man/translated .SH "PROBLEMAS" .IX Header "PROBLEMAS" .IP "\(bu" 4 Duplica alguns códigos com os programas \fBpo4a\-\fR\fI*\fR. .PP Patches são bem-vindos! ;) .SH "VEJA TAMBÉM" .IX Header "VEJA TAMBÉM" \&\fBpo4a\-gettextize\fR\|(1), \fBpo4a\-normalize\fR\|(1), \fBpo4a\-translate\fR\|(1), \&\fBpo4a\-updatepo\fR\|(1), \fBpo4a\fR\|(7) .SH "AUTORES" .IX Header "AUTORES" .Vb 3 \& Denis Barbier \& Nicolas François \& Martin Quinson (mquinson#debian.org) .Ve .SH "COPYRIGHT E LICENÇA" .IX Header "COPYRIGHT E LICENÇA" Copyright 2002\-2012 por \s-1SPI,\s0 inc. .PP Esse programa é um software livre; você pode redistribuí\-lo e/ou modificá\-lo sob os termos da \s-1GPL\s0 (veja o arquivo \s-1COPYING\s0).