.\" 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 "2020-08-19" "Ferramentas Po4a" "Ferramentas 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 \- atualizar ambos os ficheiros \s-1PO\s0 e documentos traduzidos numa só vez .SH "SINOPSE" .IX Header "SINOPSE" \&\fBpo4a\fR [\fIoptions\fR] \fIconfig_file\fR .SH "DESCRIÇÃO" .IX Header "DESCRIÇÃO" po4a (\s-1PO\s0 for anything) facilita a manutenção de tradução da documentação usando 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 \fBpo4a\fR\|(7) para uma introdução suave a este projeto. .PP Quando executa o programa \fBpo4a\fR pela primeira vez, com apenas um ficheiro de configuração e os documentos para traduzir (chamados de documentos mestres), ele produz um ficheiro \s-1POT\s0 (também chamado de modelo de tradução) que contém todas as cadeias traduzíveis no documento de uma forma que facilita o trabalho dos tradutores. .PP Esses ficheiros \s-1POT\s0 podem ser traduzidos com um editor específico, como o \&\fBEditor de Tradução do \s-1GNOME\s0\fR, o \fBLokalize\fR do \s-1KDE\s0 ou \fBpoedit\fR, ou podem ser integrados a uma plataforma de localização online, como \fBweblate\fR ou \&\fBpootle\fR. O resultado da tradução é um conjunto de ficheiros \s-1PO,\s0 um por idioma. .PP Quando executa o programa \fBpo4a\fR com os documentos mestre e os ficheiros \&\s-1PO,\s0 ele produz os documentos traduzidos injetando a tradução do conteúdo (encontrada nos ficheiros \s-1PO\s0) na estrutura do documento mestre original. .PP Se os documentos mestre forem alterados, o po4a atualizará os ficheiros \s-1PO\s0 e \&\s-1POT\s0 adequadamente, para que os tradutores possam detectar facilmente as modificações e atualizar seu trabalho. Dependendo das configurações, o po4a descartará os documentos parcialmente traduzidos ou produzirá um documento misturando inglês (para os parágrafos novos ou modificados) e o idioma de destino (para os parágrafos cuja tradução já está no ficheiro \s-1PO\s0). .PP Por predefeinição, os documentos traduzidos são produzidos quando pelo menos 80% de seu conteúdo é traduzido (consulte a opção \fI\-\-keep\fR abaixo). Descartar traduções assim que elas não forem 100% pode ser desanimador para os tradutores, enquanto mostrar \*(L"tradução\*(R" muito incompletas pode ser preocupante para os utilizadores finais. .SS "Visão geral gráfica" .IX Subsection "Visão geral gráfica" .Vb 11 \& master documents \-\-\-+\-\-\-\->\-\-\-\-\-\-\-\->\-\-\-\-\-\-\-\-\-+ \& (doc authoring) | | \& V (po4a executions) >\-\-\-\-\-+\-\-> translations \& | | | \& existing PO files \-\->\-\-> updated PO files >\-+ | \& ^ | | \& | V | \& +\-\-\-\-\-\-\-\-\-\-<\-\-\-\-\-\-\-\-\-<\-\-\-\-\-\-\-+ ^ \& (manual translation process) | \& | \& addendum \-\->\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ .Ve .PP Os documentos principais são de autoria de quem escreve a documentação. Todas as alterações são automaticamente refletidas pelo po4a nos ficheiros \s-1PO,\s0 que são depois atualizados pelos tradutores. Todas as alterações nos ficheiros \s-1PO\s0 (seja manual ou por po4a) são automaticamente refletidas nos documentos traduzidos. Pode imitar este comportamento usando os scripts \fBpo4a\-updatepo\fR\|(1) e \fBpo4a\-translate\fR\|(1) em makefiles, mas isto rapidamente torna-se incômodo e repetitivo (veja \fBpo4a\fR\|(7)). É altamente recomendável usar o programa \fBpo4a\fR no seu processo de compilação. .SH "OPÇÕES" .IX Header "OPÇÕES" .IP "\fB\-k\fR, \fB\-\-keep\fR" 4 .IX Item "-k, --keep" Minimal threshold for translation percentage to keep (i.e. write) the resulting file (default: 80). I.e. by default, files have to be translated at least at 80% to be written on disk. .IP "\fB\-h\fR, \fB\-\-help\fR" 4 .IX Item "-h, --help" Mostrar uma pequena mensagem de ajuda. .IP "\fB\-M\fR, \fB\-\-master\-charset\fR" 4 .IX Item "-M, --master-charset" Charset of the files containing the documents to translate. Note that all master documents must use the same charset. .IP "\fB\-L\fR, \fB\-\-localized\-charset\fR" 4 .IX Item "-L, --localized-charset" Charset of the files containing the localized documents. Note that all translated documents will use the same charset. .IP "\fB\-A\fR, \fB\-\-addendum\-charset\fR" 4 .IX Item "-A, --addendum-charset" Conjunto de carateres da adenda. Note-se que todas as adendas devem estar no mesmo conjnto de carateres. .IP "\fB\-V\fR, \fB\-\-version\fR" 4 .IX Item "-V, --version" Mostrar a versão do script e sair .IP "\fB\-v\fR, \fB\-\-verbose\fR" 4 .IX Item "-v, --verbose" Aumentar o detalhe do programa. .IP "\fB\-q\fR, \fB\-\-quiet\fR" 4 .IX Item "-q, --quiet" Diminuir o detalhe do programa. .IP "\fB\-d\fR, \fB\-\-debug\fR" 4 .IX Item "-d, --debug" Saída de alguma informação de depuração. .IP "\fB\-o\fR, \fB\-\-option\fR" 4 .IX Item "-o, --option" Extra option(s) to pass to the format plugin. See the documentation of each plugin for more information about the valid options and their meanings. For example, you could pass '\-o tablecells' to the AsciiDoc parser, while the text parser would accept '\-o tabs=split'. .IP "\fB\-f\fR, \fB\-\-force\fR" 4 .IX Item "-f, --force" Gera sempre os ficheiros \s-1POT\s0 e \s-1PO,\s0 mesmo se \fBpo4a\fR considera que não é necessário. .Sp O comportamento padrão (quando \fB\-\-force\fR não é especificado) é o seguinte: .RS 4 .Sp .RS 4 If the \s-1POT\s0 file already exists, it is regenerated if a master document or the configuration file is more recent (unless \fB\-\-no\-update\fR is provided). The \s-1POT\s0 file is also written in a temporary document and \fBpo4a\fR verifies that the changes are really needed. .Sp Além disso, uma tradução é regenerada somente se o seu documento mestre, o ficheiro \s-1PO,\s0 uma das suas adendas ou o ficheiro de configuração é mais recente. Para evitar tentar regenerar traduções que não passam no teste de limite (ver \fB\-\-keep\fR), um ficheiro com a extensão \fI.po4a\-stamp\fR pode ser criado (ver \fB\-\-stamp\fR). .RE .RE .RS 4 .Sp Se um documento mestre inclui ficheiros, você deve usar a flag \fB\-\-force\fR porque o tempo de modificação dos ficheiros incluídos não são tomados emconta. .Sp Os ficheiros \s-1PO\s0 são sempre regenerados com base em \s-1POT\s0 com \fBmsgmerge \-U\fR. .RE .IP "\fB\-\-stamp\fR" 4 .IX Item "--stamp" Diz \fBpo4a\fR para criar ficheiros de informação quando uma tradução não é gerada porque não atingiu o limiar. Esses ficheiros de informação são nomeados de acordo com o documento traduzido esperado, com a extensão \&\fI.po4a\-stamp\fR. .Sp Nota: Isso só ativa a criação dos ficheiros \fI.po4a\-stamp\fR. Os ficheiros de informação são sempre utilizados se existirem, e são removidos com \&\fB\-\-rm\-translations\fR ou quando o ficheiro é finalmente traduzido. .IP "\fB\-\-no\-translations\fR" 4 .IX Item "--no-translations" Não gerar os documentos traduzidos, apenas atualizar os ficheiros \s-1POT\s0 e \s-1PO.\s0 .IP "\fB\-\-no\-update\fR" 4 .IX Item "--no-update" Não altere os ficheiros \s-1POT\s0 e \s-1PO,\s0 apenas a tradução pode ser atualizada. .IP "\fB\-\-keep\-translations\fR" 4 .IX Item "--keep-translations" Keeps the existing translation files even if the translation doesn't meet the threshold specified by \fB\-\-keep\fR. This option does not create new translation files with few content, but it will save existing translations which decay because of changes to the master files. .Sp ATENÇÃO: Esta opção muda o comportamento do po4a de uma maneira bastante drástica: seus ficheiros 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" Remover os ficheiros traduzidos (implica \fB\-\-no\-translations\fR). .IP "\fB\-\-no\-backups\fR" 4 .IX Item "--no-backups" Esta flag 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" Esta flag não faz nada desde 0.41, e pode ser removida em versões posteriores. .IP "\fB\-\-translate\-only\fR \fItranslated-file\fR" 4 .IX Item "--translate-only translated-file" Traduzir apenas o ficheiro especificado. Pode ser útil para acelerar o processamento se um ficheiro de configuração contém muitos ficheiros. Note que o que esta opção faz não é possível atualizar ficheiros \s-1PO\s0 e \s-1POT.\s0 Esta opção pode ser usada várias vezes. .IP "\fB\-\-variable\fR \fIvar\fR\fB=\fR\fIvalue\fR" 4 .IX Item "--variable var=value" Definir uma variável que será expandida no ficheiro de configuração \&\fBpo4a\fR.Cada ocorrência de \fI$(var)\fR será substituída por \fIvalue\fR. Esta opção pode ser usada várias vezes. .IP "\fB\-\-srcdir\fR \fI\s-1SRCDIR\s0\fR" 4 .IX Item "--srcdir SRCDIR" Set the base directory for all input documents specified in the \fBpo4a\fR configuration file. .Sp Se \fIdestdir\fR e \fIsrcdir\fR forem especificados, os ficheiros de entrada serão pesquisados nos diretórios seguintes, em ordem: \fIdestdir\fR, o diretório atual e \fIsrcdir\fR. Os ficheiros de saída são gravados em \fIdestdir\fR, se forem especificados, ou no diretório atual. .IP "\fB\-\-destdir\fR \fI\s-1DESTDIR\s0\fR" 4 .IX Item "--destdir DESTDIR" Set the base directory for all the output documents specified in the \fBpo4a\fR configuration file (see \fB\-\-srcdir\fR above). .SS "Opções que modificam o cabeçalho do \s-1POT\s0" .IX Subsection "Opções que modificam o cabeçalho do POT" .IP "\fB\-\-porefs\fR \fItype\fR" 4 .IX Item "--porefs type" 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 ficheiro 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). .IP "\fB\-\-wrap\-po\fR \fBno\fR|\fBnewlines\fR|\fInumber\fR (predefinição: 76)" 4 .IX Item "--wrap-po no|newlines|number (predefinição: 76)" Especifica como o ficheiro po deve ter sua quebra de linha. Isso permite escolher entre ficheiros que tem boa quebra de linha, mas que podem levar a conflitos de git ou ficheiros que são mais fáceis de manipular automaticamente, mas mais difíceis de ler para humanos. .Sp Historicamente, o pacote gettext reformatou os ficheiros po na 77ª coluna para questões cosméticas. Esta opção especifica o comportamento de po4a. Se for definido como um valor numérico, o po4a quebrará linha do ficheiro po após esta coluna e após novas linhas no conteúdo. Se for definido como \&\fBnewlines\fR, o po4a dividirá apenas o msgid e o msgstr após as novas linhas no conteúdo. Se for definido como \fBno\fR, o po4a não quebrará linha do ficheiro po. Os comentários de referência têm sempre as linhas quebradas pelas ferramentas do gettext que usamos internamente. .Sp Observe que esta opção não afeta a maneira como o msgid e o msgstr sofrem quebra de linhas ou seja, como os caracteres de nova linha são adicionados ao conteúdo dessas strings. .IP "\fB\-\-master\-language\fR" 4 .IX Item "--master-language" Language of the source files containing the documents to translate. Note that all master documents must use the same language. .IP "\fB\-\-msgid\-bugs\-address\fR \fIemail@address\fR" 4 .IX Item "--msgid-bugs-address email@address" Definir o endereço do relatório para msgid bugs. Por padrão, os ficheiros \&\s-1POT\s0 criados não têm campos Report-Msgid-bugs-To. .IP "\fB\-\-copyright\-holder\fR \fIstring\fR" 4 .IX Item "--copyright-holder string" Definir o titular dos direitos de autor no cabeçalho \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" Definir o nome do pacote para o cabeçalho \s-1POT. O\s0 padrão é \*(L"\s-1PACOTE\*(R".\s0 .IP "\fB\-\-package\-version\fR \fIstring\fR" 4 .IX Item "--package-version string" Definir o nome do pacote para o cabeçalho \s-1POT. O\s0 padrão é \*(L"VERSÃO\*(R". .SS "Opções para modificar os ficheiros \s-1PO\s0" .IX Subsection "Opções para modificar os ficheiros PO" .IP "\fB\-\-msgmerge\-opt\fR \fIoptions\fR" 4 .IX Item "--msgmerge-opt options" Opções extra para \fBmsgmerge\fR(1). .Sp Nota: \fB\f(CB$lang\fB\fR será estendida para o idioma atual. .IP "\fB\-\-no\-previous\fR" 4 .IX Item "--no-previous" Esta opção remove \fB\-\-previous\fR a partir das opções passadas para B Isto permite suportar versões do \fBgettext\fR mais cedo do que 0.16. .IP "\fB\-\-previous\fR" 4 .IX Item "--previous" Esta opção acrescenta \fB\-\-previous\fR ás opções passadas para \&\fBmsgmerge\fR. Isso requer \fBgettext\fR 0.16 ou posterior, e é ativado por padrão. .SH "CONFIGURATION FILE" .IX Header "CONFIGURATION FILE" po4a espera um ficheiro de configuração como argumento. Este ficheiro deve conter os elementos seguintes: .IP "\(bu" 4 O caminho para os ficheiros \s-1PO\s0 e a lista de idiomas existentes no projeto; .IP "\(bu" 4 Opcionalmente, algumas opções globais e os chamados aliases de configuração que são usados como modelos para configurar ficheiros mestres individuais ; .IP "\(bu" 4 A lista de cada ficheiro mestre a traduzir, juntamente com parâmetros específicos. .PP Todas as linhas contêm um comando entre colchetes, seguido pelos seus parâmetros. Os comentários começam com o caractere \*(L"#\*(R" e correm até ao fim da linha. Pode escapar do fim da linha para espalhar um comando por várias linhas. .SS "Finding the \s-1PO\s0 and \s-1POT\s0 files" .IX Subsection "Finding the PO and POT files" A solução mais simples é fornecer o caminho para o diretório que contém o seu projeto de tradução da maneira seguinte. .PP .Vb 1 \& [po_directory] man/po/ .Ve .PP O diretório fornecido deve conter um conjunto de ficheiros \s-1PO,\s0 cada um chamado \fI\s-1XX\s0.po\fR, o \f(CW\*(C`XX\*(C'\fR sendo o \s-1ISO 631\-1\s0 do idioma utilizado neste ficheiro. O diretório deve conter também um único ficheiro \s-1POT,\s0 com a extensão \f(CW\*(C`.pot\*(C'\fR file. .PP Se preferir, pode dar as mesmas informações explicitamente como a seguir: .PP .Vb 1 \& [po4a_paths] man/po/project.pot de:man/po/de.po fr:man/po/fr.po .Ve .PP Isto especifica o caminho para o ficheiro \s-1POT\s0 primeiro e, em seguida, os caminhos para os ficheiros \s-1PO\s0 alemães e francêses. .PP Finalmente, a mesma informação pode ser escrita da maneira seguinte: .PP .Vb 2 \& [po4a_langs] fr de \& [po4a_paths] man/po/project.pot $lang:man/po/$lang.po .Ve .PP O componente \f(CW$lang\fR é expandido automaticamente usando a lista de idiomas fornecidos, reduzindo o risco de erro de copiar/colar quando um novo idioma é adicionado. .PP \fIFicheiros \s-1PO\s0 centralizados ou divididos?\fR .IX Subsection "Ficheiros PO centralizados ou divididos?" .PP Por predefinição, o po4a produz um único ficheiro \s-1PO\s0 por idioma de destino, contendo todo o conteúdo do seu projeto de tradução. Conforme o seu projeto cresce, o tamanho desses ficheiros pode tornar-se problemático. Ao utilizar weblate, é possível especificar prioridades para cada segmento de tradução (isto é, msgid), de modo que os importantes sejam traduzidos primeiro. Mesmo assim, algumas equipas de tradução preferem dividir o conteúdo em vários ficheiros. .PP Para ter um ficheiro \s-1PO\s0 por ficheiro mestre, basta usar a string \f(CW$master\fR no nome dos ficheiros \s-1PO\s0 na linha \f(CW\*(C`[po4a_paths]\*(C'\fR, da maneira seguinte. .PP .Vb 1 \& [po4a_paths] doc/$master/$master.pot $lang:doc/$master/$lang.po .Ve .PP Se há conflitos no nome porque vários ficheiros possuem o mesmo nome de ficheiro, o nome do ficheiro 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 .PP In split mode, \fBpo4a\fR builds a temporary compendium during the \s-1PO\s0 update, to share the translations between all the \s-1PO\s0 files. If two \s-1PO\s0 files have different translations for the same string, \fBpo4a\fR will mark this string as fuzzy and will submit both translations in all the \s-1PO\s0 files containing this string. When unfuzzied by the translator, the translation is automatically used in every \s-1PO\s0 files. .SS "Especificando os documentos para traduzir" .IX Subsection "Especificando os documentos para traduzir" Também deve listar os documentos que devem ser traduzidos. Para cada ficheiro mestre, deve especificar o analisador de formato a ser usado, o local do documento traduzido a ser produzido e, opcionalmente, uma configuração. Aqui está um exemplo: .PP .Vb 5 \& [type: sgml] doc/my_stuff.sgml fr:doc/fr/mon_truc.sgml \e \& 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 \e \& de:doc/de/script.xml .Ve .PP Mas, novamente, essas linhas complexas são difíceis de ler e modificar, por exemplo, ao adicionar um novo idioma. É muito mais simples reorganizar as coisas usando o modelo \f(CW$lang\fR da maneira seguinte: .PP .Vb 3 \& [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 .Ve .SS "Specifying options" .IX Subsection "Specifying options" Há dois tipos de opções: \fIopções do po4a\fR são valores predefinidos para as opções de linha de comando po4a enquanto \fIopções de formato\fR são usadas para alterar o comportamento dos analisadores de formato. Como uma \fIopções do po4a\fR, pode, por exemplo, especificar no seu ficheiro de configuração que o valor predefinido do parâmetro de linha de comando \fB\-\-keep\fR é de 50% em vez de 80%. \fIOpções de formato\fR estão documentadas na página específica de cada módulo de análise, por exemplo, \fBLocale::Po4a::Xml\fR\|(3pm). Pode, por exemplo, passar \fBnostrip\fR para o analisador \s-1XML\s0 para não remover os espaços ao redor das cadeias extraídas. .PP Pode passar essas opções para um ficheiro mestre específico ou mesmo para uma tradução específica desse ficheiro, usando \f(CW\*(C`opt:\*(C'\fR e \f(CW\*(C`opt_XX:\*(C'\fR para o idioma \f(CW\*(C`XX\*(C'\fR. No exemplo a seguir, a opção \fBnostrip\fR é passada para o analisador \s-1XML\s0 (para todos os idiomas), enquanto o limite será reduzido para 0% para a tradução em francês (que, portanto, é sempre mantida). .PP .Vb 1 \& [type:xml] toto.xml $lang:toto.$lang.xml opt:"\-o nostrip" opt_fr:"\-\-keep 0" .Ve .PP De qualquer forma, esses blocos de configuração devem estar localizados no final da linha. A declaração dos ficheiros deve vir primeiro, depois o adendo, se houver (veja abaixo), e somente as opções. O agrupamento de pedaços de configuração não é muito importante, pois os elementos são internamente concatenados como cadeias. Os exemplos a seguir são todos equivalentes: .PP .Vb 3 \& [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 .Ve .PP Observe que as opções específicas do idioma não são usadas ao criar o ficheiro \s-1POT.\s0 Por exemplo, é impossível passar \fBnostrip\fR para o analisador apenas ao criar a tradução em francês, porque o mesmo ficheiro \s-1POT\s0 é usado para atualizar todos os idiomas. Portanto, as únicas opções que podem ser específicas do idioma são as usadas na produção da tradução, como a opção \&\f(CW\*(C`\-\-keep\*(C'\fR. .PP \fIConfiguration aliases\fR .IX Subsection "Configuration aliases" .PP Para passar as mesmas opções para vários ficheiros, o melhor é definir um alias de tipo da maneira seguinte. No próximo exemplo, \f(CW\*(C`\-\-keep 0\*(C'\fR é passado para todas as traduções em italiano usando este tipo \f(CW\*(C`test\*(C'\fR, que é uma extensão do tipo \f(CW\*(C`man\*(C'\fR. .PP .Vb 2 \& [po4a_alias:test] man opt_it:"\-\-keep 0" \& [type: test] man/page.1 $lang:man/$lang/page.1 .Ve .PP Também pode estender um tipo existente de reutilizar o mesmo nome para o alias da forma seguinte. Este não é interpretada como uma errônea definição recursiva. .PP .Vb 2 \& [po4a_alias:man] man opt_it:"\-\-keep 0" \& [type: man] man/page.1 $lang:man/$lang/page.1 .Ve .PP \fIOpções predefinidas globais\fR .IX Subsection "Opções predefinidas globais" .PP Também pode usar as linhas \f(CW\*(C`[options]\*(C'\fR para definir opções que devem ser usadas para todos os ficheiros, independentemente do seu tipo. .PP .Vb 1 \& [options] \-\-keep 20 \-\-option nostrip .Ve .PP Como nas opções da linha de comando, pode abreviar os parâmetros passados no ficheiro de configuração: .PP .Vb 1 \& [options] \-k 20 \-o nostrip .Ve .PP \fIPrioridades das opções\fR .IX Subsection "Prioridades das opções" .PP As opções de todas as fontes são concatenadas, garantindo que os valores predefinidos possam ser facilmente substituídos por opções mais específicas. A ordem é a seguinte: .IP "\(bu" 4 As linhas \f(CW\*(C`[options]\*(C'\fR fornecem valores predefinidos que podem ser substituídos por qualquer outra fonte. .IP "\(bu" 4 Os aliases de tipo são então usados. As configurações específicas do idioma substituem as aplicáveis a todos os idiomas. .IP "\(bu" 4 As configurações específicas de um determinado ficheiro mestre substituem as predefinidas e as provenientes do alias de tipo. Neste caso, as configurações específicas do idioma também substituem as globais. .IP "\(bu" 4 Finalmente, os parâmetros fornecidos na linha de comando \fBpo4a\fR substituem todas as configurações do ficheiro de configuração. .PP \fIExemplo\fR .IX Subsection "Exemplo" .PP Aqui está um exemplo mostrando como citar os espaços e aspas: .PP .Vb 1 \& [po_directory] man/po/ \& \& [options] \-\-master\-charset UTF\-8 \& \& [po4a_alias:man] man opt:"\-o \e"mdoc=NAME,SEE ALSO\e"" \& [type:man] t\-05\-config/test02_man.1 $lang:tmp/test02_man.$lang.1 \e \& opt:"\-k 75" opt_it:"\-L UTF\-8" opt_fr:\-\-verbose .Ve .SS "Addendum: Adding extra content in the translation" .IX Subsection "Addendum: Adding extra content in the translation" Se deseja adicionar uma secção adicional à tradução, por exemplo, para dar mérito ao tradutor, é necessário definir um adendo à linha que define o seu ficheiro mestre. Consulte a página \fBpo4a\fR\|(7) para obter mais detalhes sobre a sintaxe dos ficheiros de adendo. .PP .Vb 2 \& [type: pod] script fr:doc/fr/script.1 \e \& add_fr:doc/l10n/script.fr.add .Ve .PP Também pode usar modelos de idioma da maneira seguinte: .PP .Vb 2 \& [type: pod] script $lang:doc/$lang/script.1 \e \& add_$lang:doc/l10n/script.$lang.add .Ve .PP Se um adendo não se aplicar, a tradução será descartada. .PP \fIModificadores para a declaração de adendo\fR .IX Subsection "Modificadores para a declaração de adendo" .PP Os modificadores de adendo podem simplificar o ficheiro de configuração 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 é um único caractere localizado antes do nome do ficheiro. .IP "\fB?\fR" 2 .IX Item "?" Incluir \fIaddendum_path\fR se este ficheiro existir, caso contrário não fazer nada. .IP "\fB@\fR" 2 .IX Item "@" \&\fIaddendum_path\fR não é uma adenda regular, mas um ficheiro contendo uma lista de adendas, uma por linha. Cada adenda pode ser precedida de modificadores. .IP "\fB!\fR" 2 .IX Item "!" \&\fIaddendum_path\fR é descartado, não é carregado e não será carregado por qualquer especificação de adenda. .PP O seguinte inclui um adendo em qualquer idioma, mas só se existir. Nenhum erro será relatado se o adendo não existir. .PP .Vb 1 \& [type: pod] script $lang:doc/$lang/script.1 add_$lang:?doc/l10n/script.$lang.add .Ve .PP O seguinte inclui uma lista de adendos para cada idioma: .PP .Vb 1 \& [type: pod] script $lang:doc/$lang/script.1 add_$lang:@doc/l10n/script.$lang.add .Ve .SS "Filtering the translated strings" .IX Subsection "Filtering the translated strings" Às vezes, deseja ocultar algumas cadeias do processo de tradução. Nesse sentido, pode atribuir um parâmetro \f(CW\*(C`pot_in\*(C'\fR ao seu ficheiro mestre para especificar o nome do ficheiro a ser usado em vez do mestre real ao criar o ficheiro \s-1POT.\s0 Aqui está um exemplo: .PP .Vb 3 \& [type:docbook] book.xml \e \& pot_in:book\-filtered.xml \e \& $lang:book.$lang.xml .Ve .PP Com essa configuração, as cadeias a serem traduzidas serão extraídas do \&\fIbook\-filter.xml\fR (que deve ser produzido antes da chamada de \fBpo4a\fR) enquanto os ficheiros traduzidos serão compilados do \fIbook.xml\fR. Como resultado, qualquer cadeia que faça parte de \fIbook.xml\fR, mas não em \&\fIbook\-filter.xml\fR não será incluída nos ficheiros \s-1PO,\s0 impedindo que os tradutores forneçam uma tradução para eles. Portanto, essas cadeias não serão modificadas ao produzir os documentos traduzidos. Isso naturalmente diminui o nível de tradução, portanto, pode precisar da opção \f(CW\*(C`\-\-keep\*(C'\fR para garantir que o documento seja produzido de qualquer maneira. .SS "\s-1CONFIGURATION EXAMPLE\s0" .IX Subsection "CONFIGURATION EXAMPLE" A \s-1FAZER:\s0 Esta secção é realmente útil? .PP Vamos supor que você mantém um programa chamado \fBfoo\fR que tem uma página do manual \fIman/foo.1\fR que naturalmente, é mantida apenas em Inglês. Agora você como gestor do upstream ou downstream quer criar e manter a tradução. Primeiro precisa criar o ficheiro \s-1POT\s0 necessário para enviar para 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ê teria então que enviar este ficheiro para as listas de idiomas adequadas ou oferecê\-lo para descarregar em algum lugar do seu site. .PP Agora, vamos supor que você recebeu três traduções antes do seu próximo lançamento: \fIde.po\fR (incluindo uma adenda \fIde.add\fR), \fIsv.po\fR e \&\fIpt.po\fR. Desde que não queira mudar o seu \fIMakefile\fR(s) sempre que uma nova tradução chega, pode usar \fBpo4a\fR com um ficheiro de configuração apropriado no seu \fIMakefile\fR. Vamos chamá\-lo \fIpo4a.cfg\fR. No nosso exemplo seria algo como 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, vamos supor que suas páginas de manual geradas (e todos ficheiros \s-1PO\s0 e adendas) devem ser armazenadas em \fIman/translated/$lang/\fR (respectivamente em \fIman/po4a/po/\fR e \fIman/po4a/add_$lang/\fR) abaixo do diretório atual. No nosso exemplo o diretório \fIman/po4a/po/\fR incluiria \&\fIde.po\fR, \fIpt.po\fR e \fIsv.po\fR, e o diretório \fIman/po4a/add_de/\fR incluiria F . .PP Observe o uso do modificador \fB?\fR apenas como a tradução alemã (\fIde.po\fR) é acompanhado por uma adenda. .PP Para realmente construir as páginas do manual traduzidas você então (uma vez!) adiciona a seguinte linha no ponto \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 precisa de um destino apropriado para instalar páginas do manual localizadas em Inglês. .PP Finalmente, se você não armazenar ficheiros gerados no seu sistema de controlo de versão, vai precisar de uma linha no seu ponto \fBclean\fR bem como: \-rm \-rf man/translated .SH "VER TAMBÉM" .IX Header "VER 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 "DIREITOS DE AUTOR E LICENÇA" .IX Header "DIREITOS DE AUTOR E LICENÇA" Direitos de Autor 2002\-2020 por \s-1SPI,\s0 inc. .PP Este programa é software livre, você pode redistribuí\-lo e/ou modificá\-lo sob os termos da \s-1GPL\s0 (consulte o ficheiro CÓPIA).