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.
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:
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'.
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 |