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'.
-
-h, --help
- Mostrar um sumário de utilização para
o programa e sair.
-
-v, --verbose
- Processar em modo detalhado.
-
--podir=DIR
- 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.
- --choices
- 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".
- --merge
- 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 <[email protected]>
Martin Quinson <[email protected]>