Provided by: po-debconf_1.0.21+nmu1_all bug

NOME

       po-debconf - introdução

DESCRIÇÃO

       O objectivo do "debconf" era tornar a configuração do pacote mais amiga do utilizador.  De modo a
       alcançar isto, é importante assegurar que os utilizadores irão obter a questão no seu idioma.  Os
       tradutores necessitam de um mecanismo para facilmente trabalharem nas traduções sem terem de perseguir o
       desenvolvimento do pacote; O "po-debconf" foi desenhado para ser capaz de trabalhar com ferramentas
       "gettext" standard ao traduzir ficheiros de templates debconf.

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.

       - Em cada template juntar um underscore como prefixo antes dos campos a traduzir
           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

       De  modo  a  ajudar  os  tradutores,  os ficheiros PO no seu pacote devem estar sempre actualizados, caso
       contrário eles poderão perder o seu tempo a traduzir mensagens não utilizadas.  Para  isso,  simplesmente
       chame o seguinte comando sem argumentos:

         $ 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.

       O programa debconf-updatepo é idempotente, modifica  apenas  os  ficheiros  PO  se  o  seu  conteúdo  foi
       actualizado.   Por  isso  a  melhor forma para disponibilizar os ficheiros PO actualizados no seu pacote-
       fonte é chamar este comando a partir do alvo "clean" do ficheiro debian/rules.

       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 distribuídos, 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 ecrã inteiro, baseada em carácter,
          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
       Desde o "po-debconf" 0.6.0, os campos localizados podem conter dois underscores no inicio.  Neste caso, o
       valor do campo é suposto ser uma lista de valores  separada  por  vírgulas,  que  são  postos  em  msgids
       diferentes.  Por isso se o exemplo anterior contivesse

         __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.

       Quando  uma lista de escolhas nunca for alterada, "_Choices" pode ser considerado OK. No entanto, dividir
       tais listas pode ajudar a evitar erros frequentes em traduções, tais como, omitir uma escolha ou utilizar
       vírgulas não-standard. Por essas razões, a utilização de "__Choices" facilitará a vida do  tradutor  e  é
       fortemente recomendado.

       Infelizmente  se  decidir  mudar de "_Choices" para "__Choices", todas as traduções ficarão 'fuzzy'. Aqui
       está uma explicação para fazer esta alteração sem perda de tradução (necessita  de  "po-debconf"  >=1.0).
       Suponha  que queremos mudar o exemplo anterior para "__Choices".  Você copia o ficheiro templates para um
       ficheiro temporário.

         $ 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.

   COLOCAR AQUI COMENTÁRIOS PARA OS TRADUTORES
       Os maintainers do "Dpkg" decidiram que por convenção as linhas que começam  por  um  cardinal  ("#")  são
       comentários  nos ficheiros debian/control, e o "po-debconf" segue esta regra. Desde o "po-debconf" 0.8.0,
       tais comentários são escritos nos ficheiros PO, e podem conter informações valiosas para  os  tradutores.
       Incidentalmente  todas as versões anteriores do "po-debconf" ignoram linhas que não contenham um sinal de
       dois pontos, por isso se os seus comentários não contêm qualquer sinal de dois pontos, não  é  necessário
       acrescentar uma dependência de compilação com versão contra o "po-debconf".  Aqui está um exemplo:

         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 re-particionados, têm de ser definidas algumas variáveis na
             PROM antes 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 incluídos 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!

DEPURAÇÃO

       Irá descobrir que debconf-loadtemplate não irá  aceitar  um  ficheiro  templates  com  códigos  i18n.  No
       entanto,  irá  aceitar  um ficheiro integrado, por isso se tem feito depuração a sua configuração debconf
       assim

         rm /tmp/{config,templates}.dat{,-old}
         debconf-loadtemplate debian/templates
         DEBIAN_PRIORITY=low debconf -freadline debian/config configure 28.0

       em vez disso agora irá necessitar de algo como isto:

         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).

       • Uma  dada  mensagem em Inglês apenas pode ter uma única tradução num dado idioma. É impossível dar duas
         traduções diferentes, dependendo do contexto.  Para resolver este problema,  você  tem  de  acrescentar
         marcas  especiais para as diferentes ocorrências de uma dada mensagem para as tornar diferentes. (Estas
         marcações apenas serão visíveis aos tradutores, e serão removidas da mensagem antes de ser mostrada  ao
         utilizador)

         Tais  marcadores  têm  de ser acrescentados no final das mensagens a traduzir, têm de começar por  "[ "
         (um parêntesis recto esquerdo seguido de um espaço) e terminar com "]" (parêntesis  recto  direito),  e
         pode conter qualquer carácter excepto parêntesis 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 parêntesis é 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  parêntesis  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 parêntesis"
           "rectos, ponha aqui o seu idioma mas SEM TRADUZIR.  Se não estiver na"
           " lista, ponha English (sem o que está nos parêntesis)]"
           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 já 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>

                                                   2020-12-30                                      PO-DEBCONF(7)