Provided by:
po-debconf_1.0.16_all 
NOME
po-debconf - introdução
DESCRIÇÃO
The goal of "debconf" was to make package configuration user-friendly.
In order to achieve this, it is important to ensure that users will get
the question in their own language. Translators need a framework to
easily work on translations without having to track package
development; "po-debconf" was designed to be able to work with standard
"gettext" tools when translating debconf templates files.
ACRESCENTAR SUPORTE DE I18N A FICHEIROS DE TEMPLATES DEBCONF
Se está a acrescentar suporte a debconf ao seu pacote, você escreveu um
ficheiro templates que contém o texto em Inglês. Para acrescentar o
devido suporte a i18n ao seu pacote, você tem de:
- Criar debian/po/POTFILES.in
Este ficheiro contém a lista de templates mestre. Normalmente
contém uma única linha:
[type: gettext/rfc822deb] templates
Os caminhos são relativos ao directório pai.
- Prepend an underscore before translatable fields in each template
Normalmente podem ser traduzidos os campos "Description", "Choices"
e às vezes "Default".
- Correr o debconf-updatepo
Isto irá criar o ficheiro debian/po/templates.pot que os tradutores
irão traduzir para o seu idioma.
- Acrescentar a dependência de compilação "po-debconf" em
debian/control
ACTUALIZAR TEMPLATES
In order to help translators, PO files in your package should always be
up-to-date, otherwise they may waste their time translating unused
strings. For that, simply call the following command without
arguments:
$ debconf-updatepo
Você deve correr este comando cada vez que mudar os templates em
Inglês, mas também quando receber traduções novas ou actualizadas,
porque os tradutores podem ter trabalhado num ficheiro PO obsoleto.
Se renomear, acrescentar ou remover alguns ficheiros de templates,
lembre-se também de editar debian/po/POTFILES.in de acordo, caso
contrário ficarão a faltar as mensagens em Inglês dos ficheiros PO e
serão mostradas aos utilizadores mesmo que os ficheiros PO estejam
traduzidos na totalidade.
The debconf-updatepo program is idempotent, it modifies PO files only
if their content has been updated. Thus the best way to provide up-to-
date PO files in your source package is to call this command from the
"clean" target of the debian/rules file.
Por favor note que tem de correr debconf-updatepo mesmo se você
utilizar dh_installdebconf. O último chama o po2debconf o qual era
utilizado para chamar o debconf-updatepo se fossem detectados ficheiros
desactualizados, mas isto não é actualmente o caso porque não era uma
boa solução devido a pelo menos duas razões:
1. O po2debconf baseia-se em registos de tempo para detectar ficheiros
desactualizados, e pode ser abusado ao utilizar o "pbuilder" ou se
uma tradução desactualizada for guardada no disco após os templates
terem sido modificados.
2. O dh_installdebconf é chamado muito depois do ficheiro ".diff.gz"
ter sido gerado
COMBINAR TRADUÇÕES E ORIGINAL
Você tem de se assegurar que quando o seu pacote for compilado, as
traduções irão ficar no pacote compilado. Você pode fazer isso
manualmente, ou automaticamente utilizando o script dh_installdebconf
(assegure-se que tem uma dependência de compilação com versão contra o
"debhelper (>= 4.1.16)").
Para o fazer manualmente, você tem de combinar os templates e as
traduções durante a compilação (e tem de ter uma dependência de
compilação contra o "po-debconf") como isto:
$ po2debconf debian/templates > debian/tmp/DEBIAN/templates
TENHA CUIDADO: os dois ficheiros chamados templates não são o mesmo. O
primeiro contém apenas o texto em Inglês, com marcas para denotar
alguns campos a serem traduzidos enquanto que o segundo contém todos os
idiomas. Isto é para dizer que você NÃO PODE manter apenas os
templates combinados, ou não será capaz de lidar com traduções que as
pessoas lhe submeterem.
NOVOS TEMPLATES MESTRE
O formato da fonte do novo ficheiro templates é idêntico a um dos
ficheiros templates distribuidos, mas os campos a traduzir são
precedidos com um underscore. Exemplo:
Template: debconf/frontend
Type: select
_Choices: Dialog, Readline, Gnome, Editor, Noninteractive
Default: Dialog
_Description: Interface a utilizar com os pacotes a configurar:
Os pacotes que utilizam debconf para a configuração partilham um aspecto
e funcionamento idênticos. Você pode escolher o tipo de interface com o
utilizador que utilizam.
.
O frontend dialog é uma interface de écran inteiro, baseada em caracter,
enquanto que o frontend readline oferece uma interface de texto simples,
mais tradicional, e o frontend gnome é uma interface X moderna. O
frontend editor permite configurar as coisas pelo uso do seu editor de
texto favorito. O frontend noninteractive não apresenta nenhuma questão.
DIVIDIR A LISTA DE ESCOLHAS
Since "po-debconf" 0.6.0, localized fields may contain two leading
underscores. In this case, the field value is supposed to be a comma
separated list of values, which are put in separate msgids. Thus if
the previous example did contain
__Choices: Dialog, Readline, Gnome, Editor, Noninteractive
isto seriam 5 msgids diferentes. Note que os espaços a seguir às
vírgulas não são significativos.
When a choices list never changes, "_Choices" may be considered fine.
However, splitting such lists may help avoiding frequent mistakes in
translations such as omitting a choice or using non-standard commas.
For such reasons, the use of "__Choices" will ease translator’s life
and is strongly recommended.
Unfortunately if you decide to switch from "_Choices" to "__Choices",
all translations become fuzzy. Here is an explanation to make this
change without translation loss (it requires "po-debconf" >= 1.0).
Suppose that we want to switch the previous example to "__Choices".
You copy the templates file into a temporary file.
$ cp debian/templates debian/foo
Edite debian/foo e mantenha apenas os campos "Template", "Type" e
"_Choices", que estão neste exemplo
Template: debconf/frontend
Type: select
_Choices: Dialog, Readline, Gnome, Kde, Editor, Noninteractive
Para compilar os ficheiros PO como se "__Choices" fosse escrito corra
debconf-gettextize com as flags "--merge" e "--choices" , e combine
esses ficheiros PO com os existentes:
$ debconf-gettextize --merge --choices debian/foo
Eventualmente terá de remover foo e manualmente editar debian/templates
para substituir "_Choices" por "__Choices" antes de debconf-updatepo
ser corrido.
PUTTING IN COMMENTS FOR TRANSLATORS
"Dpkg" maintainers decided that by convention lines beginning with a
number sign ("#") are comments in debian/control files, and
"po-debconf" follows this rule. Since "po-debconf" 0.8.0, such
comments are written into PO files, and can then contain valuable
information for translators. Incidentally all previous "po-debconf"
versions ignore lines which do not contain a colon, thus if your
comments does not contain any colons, there is no need to add a
versioned build dependency against "po-debconf". Here is an example:
Template: debconf/button-yes
Type: text
# Tradutores, este texto irá aparecer num botão, por isso mantenham-no CURTO!
_Description: Yes
No "po-debconf" 1.0 foram introduzidos comentários especiais para lidar
com mensagens que são compostas por vários itens (como o campo Choices)
ou parágrafos (como o Description). Com estas directivas, os developers
têm um melhor controlo sobre o que é mostrados aos tradutores. Estes
estão na forma "#flag:directive"; as directivas estão detalhadas
abaixo.
translate:spec, translate!:spec
Marcar apenas alguns itens como traduzíveis; spec é uma lista de
números separada por vírgulas, especifica quais as mensagens serão
escritas nos ficheiros PO. As gamas também podem ser definidas
através de um sinal de menos (por exemplo "2-6"), e um asterisco
("*") significa todas as mensagens. Por exemplo, com
Template: partman-basicfilesystems/fat_mountpoint
Type: select
#flag:translate:3,4
__Choices: /dos, /windows, Introduzir manualmente, Não o montar
_Description: Ponto de montagem para esta partição:
"Intoduzir manualmente" e "Não o montar" irá aparecer nos ficheiros
PO mas não "/dos" and "/windows". Quando o ponto de exclamação
segue a palavra-chave translate, spec especifica quais as mensagens
que serão descartadas dos ficheiros PO, todas as outras mensagens
serão mostradas. O exemplo anterior é similar a
Template: partman-basicfilesystems/fat_mountpoint
Type: select
#flag:translate!:1,2
__Choices: /dos, /windows, Introduza manualmente, Não o montar
_Description: Ponto de montagem para esta partição:
A mesma palavra-chave pode também ser aplicada ao campo Description
para assegurar que algumas mensagens não serão traduzidas.
Template: partman-crypto/options_missing
Type: error
#flag:translate!:3
_Description: Faltam opções de encriptação necessárias
As opções de encriptação para o dispositivo ${DEVICE} estão incompletas.
Por favor volte ao menu da partição e escolha todas as opções necessárias.
.
${ITEMS}
Mas isto é perigoso porque o contexto pode ser eliminado dos
ficheiros PO, neste caso por favor acrescente os comentários para
que os tradutores não fiquem confusos.
comment:spec, comment!:spec
O comentário após esta directiva aplica-se às mensagens
especificadas por spec, que é definida acima. Por omissão, um
comentário é escrito antes de um campo a traduzir e escrito
juntamente com todas as mensagens que pertençam a este campo.
(Nota: com o "po-debconf" < 1.0, o comentário era escrito apenas com
a primeira mensagem)
Template: arcboot-installer/prom-variables
Type: note
# Tradutores, a 4ª mensagem desta descrição foi largada
# dos ficheiros PO. Contém comandos da shell e não deve ser
# traduzida.
#flag:comment:3
# "Stop for Maintenance" deve ser deixado em Inglês
#flag:translate!:4
_Description: Definir variáveis na PROM para Arcboot
Se esta é a primeira instalação de Linux nesta máquina, ou se os
discos
rígidos foram reparticionados, têm de ser definidas algumas
variáveis na
PROM anes do sistema ser capaz de arrancar normalmente.
.
No fim desta etapa da instalação, o sistema irá reiniciar.
Após isto, introduza o comando monitor a partir da opção "Stop
for
Maintenance", e introduza os seguintes comandos:
.
setenv OSLoader arcboot
setenv OSLoadFilename Linux
.
Irá ter de fazer isto apenas uma vez. Depois disso, introduza o
comando
"boot" ou reinicie o sistema para passar à próxima etapa da
instalação.
O exemplo acima tem um comentário sem a directiva "#flag:comment",
onde é acrescentado um "#flag:comment:*" implícito. Este comentário
aparece com todas as mensagens, mas a que tem Stop for Maintenance é
mostrada apenas antes da mensagem relevante.
partial
Esta palavra-chave diz ao po2debconf para manter as mensagens
traduzidas mesmo que não estejam todas traduzidas. Por favor
utilize-a com cautela, esta palavra-chave foi introduzida para
propósitos muito específicos.
AVISAR OS TRADUTORES ANTES DE FAZER UM UPLOAD
Normalmente os tradutores tomam conhecimento nas páginas web de estado
(veja abaixo) que as traduções estão desactualizadas, e enviam patches
que serão incluidos em futuros uploads. Mas os developers são
encorajados a pedir uma actualização aos maintainers de traduções
desactualizadas antes dum upload, por exemplo com uma semana de
antecedência. Para este propósito foi escrita uma ferramenta dedicada,
o podebconf-report-po. Não hesite em abusar dela!
DEBUGGING
You will find that debconf-loadtemplate will not accept a templates
file with i18n markups. However, it will accept a merged file, so if
you have been debugging your debconf setup like this
rm /tmp/{config,templates}.dat{,-old}
debconf-loadtemplate debian/templates
DEBIAN_PRIORITY=low debconf -freadline debian/config configure 28.0
you will now need something like this instead:
po2debconf debian/templates > debian/tmp/DEBIAN/templates
rm /tmp/{config,templates}.dat{,-old}
debconf-loadtemplate debian/tmp/DEBIAN/templates
DEBIAN_PRIORITY=low debconf -freadline debian/config configure 28.0
AVISOS
· O "Debconf" 1.2.0 reconhece campos na forma Name-lang.encoding, e.g.
"Description-de.ISO-8859-1" ou "Choices-ru.KOI8-R". Por
pré-definição o po2debconf escreve ficheiros templates nesse novo
formato. Versões mais antigas do "debconf" irão ignorar estes
campos, mas é mostrado o texto em Inglês. Para saber como alterar a
codificação e o formato de saída veja po2debconf(1).
· A given English string may be given only one unique translation in a
given language. It is impossible to give two different translations,
depending on the context. To solve this issue, you have to add
special markups to the different occurrences of a given string to
make them different. (These markers will only be visible to
translators, and they will be removed from the string before being
displayed to user)
Tais marcadores têm de ser acrescentados no final das mensagens a
traduzir, têm de começar por "[ " (um parentesis recto esquerdo
seguido de um espaço) e terminar com "]" (parentesis recto direito),
e pode conter qualquer carácter excepto parentesis rectos ou novas
linhas. Por exemplo "[ blahblah]" é um marcador válido enquanto que
"[ bla[bla]bla]" não o é. Para viciados em expressões regulares de
Perl, os marcadores são reconhecidos (e removidos) utilizando esta
regra:
$msg =~ s/\[\s[^\[\]]*\]$//s;
· O espaçamento não é lidado exactamente da mesma forma pelo
"po-debconf" e pelo "debconf-utils"; com o último, os parágrafos são
reformatados ao actualizar e combinar traduções, por isso o
"debconf-utils" é muito esperto e não considera os espaços como parte
das mensagens ao determinar as entradas fuzzy. (i.e., as que
necessitam a atenção do tradutor devido ao original ter sido
alterado)
Por outro lado o "po-debconf" baseia-se no "gettext" para detectar
entradas fuzzy, e não trata os espaços como caracteres especiais.
Por isso os espaços supérfluos têm de ser removidos do final das
linhas nos ficheiros-mestre templates, ou irão aparecer nos ficheiros
PO e POT.
Pela mesma razão, o debconf-gettextize pode marcar o texto como fuzzy
se os caracteres espaço não coincidirem, os tradutores terão de
manualmente eliminar os fuzzys de tais mensagens. Isto apenas
acontece uma vez ao converter os templates para o formato
"po-debconf", a menos que altere aleatoriamente os espaços nos
ficheiros-mestre templates, o que será trabalhoso para os tradutores.
· Normalmente o campo Default: não pode ser traduzido quando o tipo do
template for Select ou Multiselect. Sob raras circunstâncias (e.g. ao
escolher o idioma pré-definido para uma aplicação) os valores
localizados podem ter significado.
O valor localizado não deve ser traduzido, mas escolhido a partir de
uma lista de valores em Inglês listados no campo Choices. A melhor
forma de alcançar esta meta é inserir um comentário no seu ficheiro
templates o qual será copiado para os ficheiros PO.
Template: geneweb/lang
Type: select
__Choices: Danish (da), Dutch (nl), English (en), Esperanto (eo)
# Você NÃO deve traduzir esta mensagem, mas pode mudar o seu valor.
# O comentário dentro de parentesis é utilizado para distinguir este msgid
# do que está na lista Choices; você não tem de se preocupar acerca deles,
# e tem apenas de escolher uma msgstr entre os valores em Inglês
# listados no campo Choices acima, e.g. msgstr "Dutch (nl)"
_Default: English (en)[ default language]
_Description: Geneweb default language
O valor pré-definido também aparece no campo Choices, e ambos têm
traduções diferentes: a primeira é um valor por traduzir escolhido
entre os valores de Choices, e a última é uma tradução normal. Como
o "gettext" não pode ter duas traduções diferentes no mesmo msgid,
então ambos os msgids têm de ser diferentes utilizando para isso
comentários em parentesis rectos conforme é descrito na secção
anterior.
Antes do "po-debconf" 0.8.0, não estavam disponíveis tais comentários
e os maintainers tinham de substituir o campo _Default: por
_DefaultChoice: de modo a destacar tais campos nos ficheiros PO:
#. DefaultChoice
msgid ""
"English[ pré-definido: não traduzir o que está dentro de parentesis"
"rectos, ponha aqui o seu idioma mas SEM TRADUZIR. Se não estiver na"
" lista, ponha English (sem o que está nos parentesis)]"
msgstr ""
"Portuguese"
Comentários simples nos ficheiros templates são menos sujeitos a
erros e são encorajados.
PÁGINAS WEB DE ESTADO
As estatísticas para as traduções "po-debconf" estão disponíveis em
<http://www.debian.org/intl/l10n/po-debconf/> (ou nos seus mirrors);
estas são automaticamente actualizadas quando for feito o upload dos
novos pacotes. Apenas são considerados os pacotes que contenham
debian/po/templates.pot e debian/po/POTFILES.in, por isso deve
assegurar-se que o seu pacote com a fonte o disponibiliza.
Os tradutores podem obter os ficheiros PO e POT a partir daqui, mas
eles devem sempre entrar em contacto com o tradutor anterior (o seu
endereço de mail pode ser encontrado no ficheiro PO) e/ou os seus
companheiros de traduções em debian-l10n-<language>@lists.debian.org
(se tal lista existir) para se assegurar que ninguém está a trabalhar
nessa tradução ao mesmo tempo, e ler os relatórios de bug actuais do
pacote que vai traduzir para ver se ja foi relatada uma tradução.
Após traduzir estes ficheiros, eles devem submeter o seu trabalho ao
maintainer como um relato de bug de severidade wishlist e com o tag
patch.
VEJA TAMBÉM
debconf-gettextize(1), debconf-updatepo(1), dh_installdebconf(1),
podebconf-report-po(1), po2debconf(1), debconf-devel(7).
AUTORES
Martin Quinson <Martin.Quinson@ens-lyon.fr>
Denis Barbier <barbier@linuxfr.org>
2009-04-29 PO-DEBCONF(7)