DOKK / manpages / debian 11 / po-debconf / debconf-gettextize.1.pt
DEBCONF-GETTEXTIZE(1) po-debconf DEBCONF-GETTEXTIZE(1)

debconf-gettextize - extrair traduções de templates debconf para ficheiros PO

debconf-gettextize [-v] [-h] [--podir=DIR] [--choices] [--merge] master [master ...]

Os ficheiros /var/lib/dpkg/info/*.templates lidos pelo debconf contêm texto em Inglês e traduções no mesmo ficheiro. Mas nos pacotes fonte, as traduções são geridas em ficheiros separados para ajudar os tradutores. Na implementação inicial, um ficheiro mestre templates continha apenas o texto em Inglês, e os ficheiros templates.xx continham as mensagens originais e as mensagens traduzidas para o idioma xx. O programa debconf-mergetemplate juntava os ficheiros mestre e traduzidos.

A nova implementação com "po-debconf" é baseada em "gettext". Os maintainers marcam os campos a traduzir acrescentando no seu inicio um underscore, as mensagens em Inglês são automaticamente extraídas para um ficheiro POT, os tradutores trabalham em ficheiros PO normais, e o po2debconf gera um ficheiro combinado de templates com a mesma estrutura.

O programa debconf-gettextize foi desenvolvido inicialmente para ajudar a migrar para a nova implementação.

  • Lê uma lista de ficheiros mestre e as suas traduções associadas, e gera ficheiros po/*.po para cada idioma contendo as mensagens traduzidas.
  • Cada ficheiro de entrada recebe um sufixo ".old", e um novo ficheiro mestre sobrescreve o antigo; é idêntico ao ficheiro mestre anterior excepto que acrescentado no inicio um underscore aos campos a traduzir. Os developers podem então escolher quais os campos em que os tradutores têm de trabalhar e quais são evitados porque os seus valores não dependem de definições locais.
  • Também é criado um ficheiro po/POTFILES.in, que contém a lista de ficheiros templates que o debconf-updatepo tem de processar.

Normalmente o programa debconf-gettextize tem de ser executado apenas uma vez quando se transforma da primeira implementação para o formato "po-debconf", mas também pode ser utilizado posteriormente para transformar um campo "_Choices" em "__Choices" (ou vice-versa) sem perder traduções, quando utilizar a flag "--merge" (juntamente com "--choices", ou não). O template desejado que contém os campos "_Choices" ou "__Choices" a modificar tem de ser copiado para um ficheiro template temporário, que é passado, como argumento, ao debconf-gettextize . De seguida são executados os seguintes passos:

1.
O po2debconf é executado neste ficheiro template para gerar um ficheiro templates traduzido.
2.
O ficheiro templates traduzido é processado conforme é descrito acima e são gerados os ficheiros PO.
3.
Os ficheiros PO acabados de criar são combinados com os existentes.

Quando os ficheiros PO são combinados, os campos "_Choices" têm de ser substituídos por "__Choices" (ou vice-versa) no ficheiro templates original antes de executar debconf-updatepo, caso contrário as novas traduções serão marcadas como 'fuzzy'.

Mostrar um sumário de utilização para o programa e sair.
Processar em modo detalhado.
Definir o directório para os ficheiros PO. O pré-definido é procurar ficheiros PO no sub-directório po por baixo da localização do primeiro ficheiro mestre.
Por omissão, o debconf-gettextize substitui os campos "Choices" por "_Choices". Com esta opção são sobrescritos, em vez disso, os campos "__Choices".
Quando for esta opção for definida, as mensagens são combinadas com os ficheiros PO existentes. Os ficheiros templates e po/POTFILES.in não são modificados.

O campo "Default" é especial quando o tipo de template for "Select" ou "Multiselect", porque tem de ser escolhido um valor entre a lista de escolhas em Inglês, mesmo para valores traduzidos. Normalmente este campo não pode ser alterado, mas em raras circunstâncias os valores traduzidos fazem sentido (e.g. escolher o idioma de uma aplicação). De modo a deixar os tradutores saberem que este campo traduzido "Default" é especial, você tem de, por convenção, chama-lo de "_DefaultChoice" em vez de "_Default".

debconf-updatepo(1), po2debconf(1), debconf-devel(7), po-debconf(7).

  Denis Barbier <barbier@linuxfr.org>
  Martin Quinson <martin.quinson@ens-lyon.fr>
2020-12-30