po-debconf

Autres langues

Langue: pt

Autres versions - même langue

Version: 2009-04-05 (debian - 07/07/09)

Section: 7 (Divers)

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>