
        *****************************************************
        *           GENERATED FILE, DO NOT EDIT             *
        * THIS IS NO SOURCE FILE, BUT RESULT OF COMPILATION *
        *****************************************************

This file was generated by po4a(7). Do not store it (in VCS, for example),
but store the PO file used as source file by po4a-translate.

In fact, consider this as a binary, and the PO file as a regular .c file:
If the PO get lost, keeping this translation up-to-date will be harder.

=encoding UTF-8

=head1 NOME

po4a - atualizar ambos os ficheiros PO e documentos traduzidos numa só vez

=head1 SINOPSE

B<po4a> [I<options>] I<config_file>

=head1 DESCRIÇÃO

po4a (PO for anything) facilita a manutenção de tradução da documentação a
usar 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 L<po4a(7)> para uma introdução suave a este projeto.

Quando executa o programa B<po4a> pela primeira vez, com apenas um ficheiro
de configuração e os documentos para traduzir (chamados de documentos
mestres), ele produz um ficheiro POT (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.

Esses ficheiros POT podem ser traduzidos com um editor específico, como o
B<Editor de Tradução do GNOME>, o B<Lokalize> do KDE ou B<poedit>, ou podem
ser integrados a uma plataforma de localização online, como B<weblate> ou
B<pootle>. O resultado da tradução é um conjunto de ficheiros PO, um por
idioma.

Quando executa o programa B<po4a> com os documentos mestre e os ficheiros
PO, ele produz os documentos traduzidos a injetar a tradução do conteúdo
(encontrada nos ficheiros PO) na estrutura do documento mestre original.

Se os documentos mestre forem alterados, o po4a atualizará os ficheiros PO e
POT adequadamente, para que os tradutores possam detetar facilmente as
modificações e atualizar o trabalho deles. A depender das configurações, o
po4a descartará os documentos parcialmente traduzidos ou produzirá um
documento a misturar 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 PO).

Por predefeinição, os documentos traduzidos são produzidos quando pelo menos
80% do conteúdo deles é traduzido (consulte a opção I<--keep>
abaixo). Descartar traduções assim que elas não forem 100% pode ser
desanimador para os tradutores, enquanto mostrar "tradução" muito
incompletas pode ser preocupante para os utilizadores finais.

=head2 Visão geral gráfica



 documentos mestres -+----->-------->---------+
  (autoria de docs)  |                        |
                     V  (execuções do po4a)   >----+--> traduções
                     |                        |    |
  ficheiros PO ------->-----> ficheiros PO -->--+    |
   existentes                atualizados           |
     ^                             |               |
     |                             V               ^
     +----------<---------<--------+               |
      (processo de tradução manual)                |
                                                   |
 adendo ---->--------------------------------------+

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 PO, que são depois atualizados pelos tradutores. Todas as
alterações nos ficheiros PO (seja manual ou por po4a) são automaticamente
refletidas nos documentos traduzidos. Pode imitar este comportamento a usar
os scripts L<po4a-updatepo(1)> e L<po4a-translate(1)> em makefiles, mas isto
rapidamente torna-se incômodo e repetitivo (veja L<po4a(7)>). É altamente
recomendável usar o programa B<po4a> no seu processo de compilação.

=head1 OPÇÕES

=over 4

=item B<-k>, B<--keep>

Limite mínimo de percentagem de tradução para manter (p.ex. escrever) o
ficheiro resultante (predefinição: 80). P.ex. por predefinição, ficheiros
têm que ser traduzidos pelo menos a 80% para serem escritos no disco.

=item B<-h>, B<--help>

Mostrar uma pequena mensagem de ajuda.

=item B<-M>, B<--master-charset>

Conjunto de carateres dos ficheiros a conter os documentos a traduzir. Note
que todos os ficheiros mestres devem ter o mesmo conjunto de carateres.

=item B<-L>, B<--localized-charset>

Carrossel dos ficheiros que contêm os documentos localizados. Note que todos
os documentos traduzidos utilizarão o mesmo conjunto de caracteres.

=item B<-A>, B<--addendum-charset>

Conjunto de carateres da adenda. Note-se que todas as adendas devem estar no
mesmo conjnto de carateres.

=item B<-V>, B<--version>

Mostrar a versão do script e sair.

=item B<-v>, B<--verbose>

Aumentar o detalhe do programa.

=item B<-q>, B<--quiet>

Diminuir o detalhe do programa.

=item B<-d>, B<--debug>

Saída de alguma informação de depuração.

=item B<-o>, B<--option>

Opção/ções adicional/ais para passar ao plugin de formato. Veja a
documentação de cada plugin para mais informações sobre as opções válidas e
os significados deles. Por exemplo, poderia passar '-o tablecells' para o
analisador AsciiDoc, enquanto o analisador de texto aceitaria '-o
tabs=split'.

=item B<-f>, B<--force>

Gera sempre os ficheiros POT e PO, mesmo se B<po4a> considera que não é
necessário.

O comportamento predefinido (quando B<--force> não é especificado) é o
seguinte:

=over 

Se o ficheiro POT já existe, ele é regenerado se um documento mestre ou o
ficheiro de configuração é mais recente (a menos que B<--no-update> seja
fornecido). O ficheiro POT também é escrito num documento temporário e
B<po4a> verifica que as mudanças são realmente necessárias.

Além disso, uma tradução é regenerada somente se o documento mestre dela, o
ficheiro PO, 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 B<--keep>), um ficheiro com a extensão F<.po4a-stamp> pode ser
criado (ver B<--stamp>).

=back

Se um documento mestre inclui ficheiros, deve usar a flag B<--force> porque
o tempo de modificação dos ficheiros incluídos não são tomados em conta.

Os ficheiros PO são sempre regenerados com base em POT com B<msgmerge -U>.

=item B<--stamp>

Diz B<po4a> 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
F<.po4a-stamp>.

Nota: Isso só ativa a criação dos ficheiros F<.po4a-stamp>. Os ficheiros de
informação são sempre utilizados se existirem e são removidos com
B<--rm-translations> ou quando o ficheiro é finalmente traduzido.

=item B<--no-translations>

Não gerar os documentos traduzidos, apenas atualizar os ficheiros POT e PO.

=item B<--no-update>

Não altere os ficheiros POT e PO, apenas a tradução pode ser atualizada.

=item B<--keep-translations>

Mantém os ficheiros de tradução existentes mesmo se a tradução não atingir o
limite especificado por B<--keep>.  Essa opção não cria ficheiros de
tradução com pouco conteúdo, mas vai gravar traduções existentes que cujo
nível decai devido a alterações nos ficheiros de mestre.

ATENÇÃO: esta opção muda o comportamento do po4a de uma maneira bastante
drástica: os seus ficheiros traduzidos não serão atualizados até que a
tradução melhore. Use esta opção somente se preferir enviar uma documentação
traduzida desatualizada em vez de enviar apenas uma documentação não
traduzida precisa.

=item B<--rm-translations>

Remover os ficheiros traduzidos (implica B<--no-translations>).

=item B<--no-backups>

Esta flag não faz nada desde 0.41 e pode ser removida em versões
posteriores.

=item B<--rm-backups>

Esta flag não faz nada desde 0.41 e pode ser removida em versões
posteriores.

=item B<--translate-only> I<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 PO e POT. Esta
opção pode ser usada várias vezes.

=item B<--variable> I<var>B<=>I<value>

Definir uma variável que será expandida no ficheiro de configuração
B<po4a>.Cada ocorrência de I<$(var)> será substituída por I<value>. Esta
opção pode ser usada várias vezes.

=item B<--srcdir> I<SRCDIR>

Definir o diretório de base para todos os documentos de entrada
especificados no ficheiro de configuração B<po4a>.

Se I<destdir> e I<srcdir> forem especificados, os ficheiros de entrada serão
pesquisados nos diretórios seguintes, em ordem: I<destdir>, o diretório
atual e I<srcdir>. Os ficheiros de saída são gravados em I<destdir>, se
forem especificados, ou no diretório atual.

=item B<--destdir> I<DESTDIR>

Definir o diretório base para todos os documentos de saída especificados no
ficheiro de configuração B<po4a> (veja B<--srcdir> acima).

=back

=head2 Opções que modificam o cabeçalho do POT

=over 4

=item B<--porefs> I<type>

Especifica o formato de referência. O argumento I<tipo> pode ser um de:
B<never> para não produzir qualquer referência, B<file> para especificar o
ficheiro sem o número da linha, B<counter> para substituir os números de
linha a aumentar o contador e B<full> para incluir referências
completas. (predefinição: full).

=item B<--wrap-po> B<no>|B<newlines>|I<number> (predefinição: 76)

Especifica como o ficheiro po deve ter a 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.

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
B<newlines>, o po4a dividirá apenas o msgid e o msgstr após as novas linhas
no conteúdo. Se for definido como B<no>, 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.

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 cadeias.

=item B<--master-language>

Idioma dos ficheiros fonte que contêm os documentos a traduzir. Note que
todos os documentos principais devem usar o mesmo idioma.

=item B<--msgid-bugs-address> I<e-mail@endereço>

Definir o endereço do relatório para msgid bugs. Por predefinição, os
ficheiros POT criados não têm campos Report-Msgid-bugs-To.

=item B<--copyright-holder> I<string>

Definir o titular dos direitos de autor no cabeçalho POT. O valor
predefinido é " Free Software Foundation, Inc."

=item B<--package-name> I<string>

Definir o nome do pacote para o cabeçalho POT. A predefinição é "PACKAGE".

=item B<--package-version> I<string>

Definir o nome do pacote para o cabeçalho POT. A predefinição é "VERSION".

=back

=head2 Opções para modificar os ficheiros PO

=over 4

=item B<--msgmerge-opt> I<options>

Opções extra para B<msgmerge>(1).

Nota: B<$lang> será estendida ao idioma atual.

=item B<--no-previous>

Esta opção remove B<--previous> a partir das opções passadas para B
<msgmerge> Isto permite suportar versões do B<gettext> mais cedo do que
0.16.

=item B<--previous>

Esta opção acrescenta B<--previous> ás opções passadas para
B<msgmerge>. Isso requer B<gettext> 0.16 ou posterior e é ativado por
predefinição.

=back

=head1 CONFIGURATION FILE

po4a espera um ficheiro de configuração como argumento. Este ficheiro deve
conter os elementos seguintes:

=over 

=item 

O caminho aos ficheiros PO e a lista de idiomas existentes no projeto;

=item 

Opcionalmente, algumas opções globais e os chamados aliases de configuração
que são usados como modelos para configurar ficheiros mestres individuais ;

=item 

A lista de cada ficheiro mestre a traduzir, juntamente com parâmetros
específicos.

=back

Todas as linhas contêm um comando entre colchetes, seguido pelos seus
parâmetros.  Os comentários começam com o caractere "#" e correm até ao fim
da linha. Pode escapar do fim da linha para espalhar um comando por várias
linhas.

Alguns exemplos completos são apresentados nesta página, enquanto outros
exemplos encontram-se no diretório C<t/cfg> da distribuição fonte.

=head2 Encontrar os ficheiros PO e POT

A solução mais simples é fornecer o caminho aos ficheiros POT e PO, da
maneira seguinte:

 [po4a_paths] man/po/project.pot de:man/po/de.po fr:man/po/fr.po

Isto especifica o caminho ao ficheiro POT primeiro e, em seguida, os
caminhos aos ficheiros PO alemães e francêses.

A mesma informação pode ser escrita da seguinte forma para reduzir o risco
de erros de cópia/colagem:

 [po4a_langs] fr de
 [po4a_paths] man/po/project.pot $lang:man/po/$lang.po

O componente C<$lang> é expandido automaticamente a usar a lista de idiomas
fornecidos, a reduzir o risco de erro de copiar/colar quando um novo idioma
é adicionado.

Pode compactar ainda mais as mesmas informações a fornecer apenas o caminho
ao diretório que contém o seu projeto de tradução, como a seguir.

 [po_directory] man/po/

O diretório fornecido deve conter um conjunto de ficheiros PO, cada um
chamado F<XX.po>, o C<XX> a ser o ISO 631-1 do idioma utilizado neste
ficheiro. O diretório também deve conter um único ficheiro POT, com a
extensão C<.pot> file. Para a primeira execução, este ficheiro pode estar
vazio, mas deve existir (po4a não pode adivinhar o nome a usar antes da
extensão).

Note que deve escolher apenas um de C<po_diretório> e C<po4a_caminhos>. O
primeiro (C<po_directório>) é mais compacto, reduz ainda mais o risco de
erro de copiar/colar, mas obriga-o a usar a estrutura de projeto e os nomes
de ficheiro esperados. O segundo (C<po4a_paths>) é mais explícito,
provavelmente mais legível e é aconselhado quando configura o seu primeiro
projeto com o po4a.

=head3 Ficheiros PO centralizados ou divididos?

Por predefinição, o po4a produz um único ficheiro PO por idioma de destino,
a conter 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.

Para ter um ficheiro PO por ficheiro mestre, basta usar a cadeia C<$master>
no nome dos ficheiros PO na linha C<[po4a_paths]>, da maneira seguinte.

 [po4a_paths] doc/$master/$master.pot $lang:doc/$master/$lang.po

Se há conflitos no nome porque vários ficheiros possuem o mesmo nome de
ficheiro, o nome do ficheiro mestre pode ser especificado a adicionar uma
opção C<master:file=>I<name>:

 [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

No modo split, B<po4a> constrói um compêndio temporário durante a
atualização do PO, para compartilhar as traduções entre todos os ficheiros
do PO. Se dois ficheiros PO tiverem traduções diferentes para a mesma
cadeia, B<po4a> marcará esta cadeia como difusa e enviará ambas as traduções
em todos os ficheiros PO a conter esta cadeia. Quando o tradutor não se
deixa abater, a tradução é automaticamente utilizada em todos os ficheiros
PO.

=head2 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:

 [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 são difíceis de ler e modificar, por
exemplo, ao adicionar um novo idioma. É muito mais simples reorganizar as
coisas a usar o modelo C<$lang> da maneira seguinte:

 [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

=head2 Especificar opções

Há dois tipos de opções: I<opções do po4a> são valores predefinidos para as
opções de linha de comando po4a enquanto I<opções de formato> são usadas
para alterar o comportamento dos analisadores de formato. Como uma I<opções
do po4a>, pode, por exemplo, especificar no seu ficheiro de configuração que
o valor predefinido do parâmetro de linha de comando B<--keep> é de 50% em
vez de 80%. I<Opções de formato> estão documentadas na página específica de
cada módulo de análise, por exemplo, L<Locale::Po4a::Xml(3pm)>. Pode, por
exemplo, passar B<nostrip> para o analisador XML para não remover os espaços
ao redor das cadeias extraídas.

Pode passar essas opções a um ficheiro mestre específico ou mesmo a uma
tradução específica desse ficheiro, a usar C<opt:> e C<opt_XX:> para o
idioma C<XX>. No exemplo a seguir, a opção B<nostrip> é passada ao
analisador XML (para todos os idiomas), enquanto o limite será reduzido a 0%
para a tradução em francês (que, portanto, é sempre mantida).

 [type:xml] toto.xml $lang:toto.$lang.xml opt:"-o nostrip" opt_fr:"--keep 0"

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:

  [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 opções específicas do idioma não são usadas ao criar o
ficheiro POT. Por exemplo, é impossível passar B<nostrip> para o analisador
apenas ao criar a tradução em francês, porque o mesmo ficheiro POT é 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
C<--keep>.

=head3 Aliases de configuração

Para passar as mesmas opções para vários ficheiros, o melhor é definir um
alias de tipo da maneira seguinte. No próximo exemplo, C<--keep 0> é passado
para todas as traduções em italiano a usar este tipo C<test>, que é uma
extensão do tipo C<man>.

  [po4a_alias:test] man opt_it:"--keep 0"
  [type: test] man/page.1 $lang:man/$lang/page.1

Também pode estender um tipo existente de reutilizar o mesmo nome ao alias
da forma seguinte. Este não é interpretada como uma errônea definição
recursiva.

  [po4a_alias:man] man opt_it:"--keep 0"
  [type: man] man/page.1 $lang:man/$lang/page.1

=head3 Opções predefinidas globais

Também pode usar as linhas C<[options]> para definir opções que devem ser
usadas para todos os ficheiros, independentemente do tipo dele.

  [options] --keep 20 --option nostrip

Como nas opções da linha de comando, pode abreviar os parâmetros passados no
ficheiro de configuração:

  [options] -k 20 -o nostrip

=head3 Prioridades das opções

As opções de todas as fontes são concatenadas, a garantir que os valores
predefinidos possam ser facilmente substituídos por opções mais
específicas. A ordem é a seguinte:

=over 

=item 

As linhas C<[options]> fornecem valores predefinidos que podem ser
substituídos por qualquer outra fonte.

=item 

Os aliases de tipo são então usados. As configurações específicas do idioma
substituem as aplicáveis a todos os idiomas.

=item 

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.

=item 

Finalmente, os parâmetros fornecidos na linha de comando B<po4a> substituem
todas as configurações do ficheiro de configuração.

=back

=head3 Exemplo

Aqui está um exemplo a mostrar como citar os espaços 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

=head2 Adendo: adicionar conteúdo na tradução

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 L<po4a(7)> para obter mais detalhes sobre
a sintaxe dos ficheiros de adendo.

 [type: pod] script fr:doc/fr/script.1 \
             add_fr:doc/l10n/script.fr.add

Também pode usar modelos de idioma da maneira seguinte:

 [type: pod] script $lang:doc/$lang/script.1 \
             add_$lang:doc/l10n/script.$lang.add

Se um adendo não se aplicar, a tradução será descartada.

=head3 Modificadores para a declaração de adendo

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 ao outro. O modificador é um único caractere
localizado antes do nome do ficheiro.

=over 2

=item B<?>

Incluir I<addendum_path> se este ficheiro existir, caso contrário não fazer
nada.

=item B<@>

I<addendum_path> não é uma adenda regular, mas um ficheiro a conter uma
lista de adendas, uma por linha. Cada adenda pode ser precedida de
modificadores.

=item B<!>

I<addendum_path> é descartado, não é carregado e não será carregado por
qualquer especificação de adenda.

=back

O seguinte inclui um adendo em qualquer idioma, mas só se existir. Nenhum
erro será relatado se o adendo não 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

=head2 Filtrar as cadeias traduzidas

Às vezes, deseja ocultar algumas cadeias do processo de tradução. Nesse
sentido, pode atribuir um parâmetro C<pot_in> ao seu ficheiro mestre para
especificar o nome do ficheiro a ser usado em vez do mestre real ao criar o
ficheiro POT. Aqui está um exemplo:

  [type:docbook] book.xml          \
          pot_in:book-filtered.xml \
          $lang:book.$lang.xml

Com essa configuração, as cadeias a serem traduzidas serão extraídas do
F<book-filter.xml> (que deve ser produzido antes da chamada de B<po4a>)
enquanto os ficheiros traduzidos serão compilados do F<book.xml>. Como
resultado, qualquer cadeia que faça parte de F<book.xml>, mas não em
F<book-filter.xml> não será incluída nos ficheiros PO, a impedir 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 C<--keep> para
garantir que o documento seja produzido de qualquer maneira.

=head2 EXEMPLO DE CONFIGURAÇÃO

A FAZER: Esta secção é realmente útil?

Vamos supor que mantém um programa chamado B<foo> que tem uma página do
manual F<man/foo.1> que naturalmente, é mantida apenas em Inglês. Agora como
gestor do upstream ou downstream quer criar e manter a tradução. Primeiro
precisa criar o ficheiro POT necessário para enviar aos tradutores a usar
L<po4a-gettextize(1)>.

Então para o nosso caso chamaríamos

 cd man && po4a-gettextize -f man -m foo.1 -p foo.pot

Teria então que enviar este ficheiro às listas de idiomas adequadas ou
oferecê-lo para descarregar em algum lugar do seu site.

Agora, vamos supor que recebeu três traduções antes do seu próximo
lançamento: F<de.po> (incluindo uma adenda F<de.add>), F<sv.po> e
F<pt.po>. Desde que não queira mudar o seu F<Makefile>(s) sempre que uma
nova tradução chega, pode usar B<po4a> com um ficheiro de configuração
apropriado no seu F<Makefile>. Vamos chamá-lo F<po4a.cfg>. No nosso exemplo
seria algo como o seguinte:

 [po_directory] man/po4a/po/

 [type: man] man/foo.1 $lang:man/translated/$lang/foo.1 \
            add_$lang:?man/po4a/add_$lang/$lang.add opt:"-k 80"

Neste exemplo, vamos supor que as suas páginas de manual geradas (e todos
ficheiros PO e adendas) devem ser armazenadas em F<man/translated/$lang/>
(respectivamente em F<man/po4a/po/> e F<man/po4a/add_$lang/>) abaixo do
diretório atual. No nosso exemplo o diretório F<man/po4a/po/> incluiria
F<de.po>, F<pt.po> e F<sv.po> e o diretório F<man/po4a/add_de/> incluiria F
<de.add>.

Observe o uso do modificador B<?> apenas como a tradução alemã (F<de.po>) é
acompanhado por uma adenda.

Para realmente construir as páginas do manual traduzidas então (uma vez!)
adiciona a seguinte linha no ponto B<build> do F<Makefile> apropriado:

        po4a po4a.cfg

Assim que isso estiver sido configurado, não precisa tocar no F<Makefile>
quando uma nova tradução aparecer, p.ex. se a equipa francesa enviar-lhe
F<fr.po> e F<fr.add>, iria simplesmente colocá-las respetivamente em
F<man/po4a/po/> e F<man/po4a/add_fr/> e o a próxima vez que o programa for
compilado, a tradução em francês também será compilada automaticamente em
F<man/translated/fr/>.

Note que ainda precisa de um destino apropriado para instalar páginas do
manual localizadas em Inglês.

Finalmente, se não armazenar ficheiros gerados no seu sistema de controlo de versão,
vai precisar de uma linha no seu ponto B<clean> bem como:
        -rm -rf man/translated

=head1 VER TAMBÉM

L<po4a-gettextize(1)>, L<po4a-normalize(1)>, L<po4a-translate(1)>,
L<po4a-updatepo(1)>, L<po4a(7)>.

=head1 AUTORES

 Denis Barbier <barbier@linuxfr.org>
 Nicolas François <nicolas.francois@centraliens.net>
 Martin Quinson (mquinson#debian.org)

=head1 DIREITOS DE AUTOR E LICENÇA

Direitos de Autor 2002-2020 por SPI, inc.

Este programa é software livre, pode redistribuí-lo e/ou modificá-lo sob os
termos da GPL (consulte o ficheiro CÓPIA).

