Provided by: po-debconf_1.0.21_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>

                                            2018-11-20                              PO-DEBCONF(7)