Provided by: po4a_0.73-2ubuntu1_all bug

NOME

       Locale::Po4a::Man - converte páginas de manual de/para arquivos PO

DESCRIÇÃO

       O objetivo do projeto po4a (PO for anything, ou PO para qualquer coisa) é facilitar traduções (e o mais
       interessante, a manutenção das traduções) usando as ferramentas do gettext em áreas em que não se
       esperava, como documentação.

       Locale::Po4a::Man é um módulo para ajudar a tradução de documentação no formato nroff (o idioma das
       páginas de manual) para outros idiomas.

TRADUZINDO COM PO4A::MAN

       Este módulo tenta com muito esforço tornar a vida do tradutor mais fácil. Para isso, o texto apresentado
       para os tradutores não é uma cópia literal do texto encontrado na página man. De fato, as partes mais
       cruas do formato nroff são ocultadas de forma que os tradutores não possam se complicar com elas.

   Dimensionamento de texto
       Parágrafos sem recuo são automaticamente redimensionados para o tradutor. Isso pode levar a alguma
       pequena diferença no resultado gerado, já que regras de redimensionamento usadas pelo groff não são muito
       claras. Por exemplo, dois espaços após um parêntese é mantido em alguns casos.

       De qualquer forma, a diferença será apenas sobre a posição de espaços extras em parágrafos dimensionados,
       e eu acho que isso vale a pena.

   Especificação de fonte
       A primeira alteração é sobre especificação de alteração de fontes. No nroff, há várias formas de
       especificar se uma palavra fornecida deveria ser escrita diminuída, negrito ou itálico. No texto para
       traduzir, há apenas uma forma, emprestada do formato POD (documentação on-line do Perl):

       I<texto> -- texto em itálico
           equivalente a \fItexto\fP ou ".I texto"

       B<texto> -- texto em negrito
           equivalente a \fBtexto\fP or ".B texto"

       R<texto> -- texto em romano
           equivalente a \fRtexto\fP

       CW<texto> -- texto com largura fixa
           equivalente a \f(CWtexto\fP ou ".CW texto"

       Observação:  A  opção CW não está disponível para todos os dispositivos groff. Não é recomendável usá-lo.
       Ele é fornecido para sua conveniência.

   Transliteração automática de caracteres
       Po4a translitera automaticamente alguns caracteres para facilitar a tradução ou a  revisão  da  tradução.
       Aqui está a lista de transliterações:

       hífenes
           Sinais  de  hífenes  (-)  e  de  menos (\-) em páginas de manual são todas transliteradas como traços
           simples (-) nos arquivos PO. Então, todos os traços são transliterados em sinais roff de  menos  (\-)
           quando a tradução é inserida no documento de saída.

           Tradutores podem forçar um hífen usando o glifo "\[hy]" do roff em suas traduções.

       espaço rígido
           Tradutores  podem  usar  espaços  rígidos (também conhecidos como "espaços fixos") em suas traduções.
           Esses espaços rígidos (0xA0 em latin1) será transliterado para um espaço rígido ("\ ").

       transliterações de aspas
           `` e '' são transliteradas, respectivamente, para \*(lq e \*(rq.

           Para evitar essas transliterações, os tradutores podem inserir um caractere roff com zero de  largura
           (isto é, usando `\&` ou '\&', respectivamente).

   Colocando "<" e ">" nas traduções
       Já  que esses caracteres são usados para delimitar partes sob modificação de fonte, você não pode usá-los
       de forma literal. Use E<lt> e E<gt> em vez disso (como em POD, novamente).

OPÇÕES ACEITAS POR ESTE MÓDULO

       Estas são as opções específicas deste módulo:

       debug
           Ativa depuração em alguns mecanismos internos deste módulo. Use a fonte para saber quais partes podem
           ser depuradas.

       verbose
           Aumenta o nível de detalhamento.

       groff_code
           Esta opção controla o comportamento do módulo quando ele encontrar uma seção .de, .ie ou  .if  .  Ele
           pode levar os valores a seguir:

           fail
               Esse é o valor de padrão. O módulo vai falhar quando uma seção .de, .ie ou .if for encontrada.

           verbatim
               Indica  que  as seções .de, .ie ou .if devem ser copiadas como estão do original para o documento
               traduzido.

           translate
               Indica que as seções .de, .ie ou .if vão ser propostas para a tradução. Você deveria apenas  usar
               esta  opção se uma string de tradução contiver uma dessas seções. Do contrário, verbatim deve ser
               preferido.

       generated
           Esta opção especifica que o arquivo foi gerado e que po4a não deve tentar detectar se as páginas  man
           foi  geral de outro formato. Wata opção é obrigatória para usar po4a em páginas man geradas. Note que
           traduzir páginas geradas em vez das páginas fonte é geralmente um mais suscetível a erro e, portanto,
           uma má ideia.

       mdoc
           Esta opção é apenas útil para páginas mdoc.

           Ela seleciona um suporte mais estrito ao formato mdoc ao informar po4a que não deve traduzir a  seção
           "NAME".  Páginas  mdoc  cuja  seção  "NAME"  está traduzida não vão gerar cabeçalho ou nota de rodapé
           algum.

           De acordo com as páginas do groff_mdoc, as seções NAME, SYNOPSIS e DESCRIPTION são obrigatórias.  Não
           há problemas conhecidos  com  seções  SYNOPSIS  ou  DESCRIPTION  traduzidas,  mas  você  também  pode
           especificar essas seções desta forma:
            -o mdoc=NAME,SYNOPSIS,DESCRIPTION

           Esse problema pode ser resolvido com um adendo como este aqui:
            PO4A-HEADER:mode=before;position=^.Dd
            .TH DOCUMENT_TITLE 1 "dia mês, ano" OS "Nome da seção"

       The  following  options  specify  the  behavior  of  a  user-defined  macro (with a .de request), or of a
       classical macro that is not supported by po4a.  They take as argument a comma-separated list  of  macros.
       For example:

        -o noarg=FO,OB,AR -o translate_joined=BA,ZQ,UX

       Nota:  se uma macro não tem suporte no po4a e se você considera que é uma macro roff padrão, você deveria
       enviá-la para a equipe de desenvolvimento do po4a.

       untranslated
           untranslated indica que esta macro (em seus argumentos) não deveria ser traduzida.

       noarg
           noarg é como untranslated, exceto que po4a vai verificar que nenhum  argumento  é  adicionar  a  esta
           macro.

       translate_joined
           translate_joined indica que po4a deve propor a tradução de argumentos da macro.

       translate_each
           Com  translate_each,  os  argumentos  também serão propostos para a tradução, exceto que cada um será
           traduzido separadamente.

       no_wrap
           Esta opção leva como argumento uma lista de pares de begin:end separados por vírgula,  onde  begin  e
           end são comandos que delimitam o início e fim de uma seção que não deveria ser redimensionada.

           Nota:  nenhum  teste  é  feito  para  assegurar  que um comando end corresponde ao seu comando begin;
           qualquer comando de finalização termina o modo no_wrap. Se você tem uma macro begin  (respectivamente
           end) que não possui end (respectivamente begin), você pode especificar uma end existente (como fi) ou
           begin (como nf) como uma contraparte. Essas macros (e seus argumentos) não serão traduzidos.

       inline
           Esta  opção  especifica  uma  lista de macros separadas por vírgula que não podem dividir o parágrafo
           atual. A string a ser traduzida vai, então, conter foo <.bar baz qux> quux, sendo bar o  comando  que
           deveria ser embutido, e baz qux seus argumentos.

       unknown_macros
           Esta  opção  indica  como  po4a  deveria se comportar quando uma macro desconhecida é encontrada. Por
           padrão, po4a falha com um aviso. Ele pode levar  os  valores  a  seguir:  failed  (o  valor  padrão),
           untranslated,  noarg,  translate_joined  ou  translate_each  (veja  acima uma explicação para cada um
           desses valores).

CRIAÇÃO DE PÁGINAS MAN COMPATÍVEIS COM PO4A::MAN

       Este módulo ainda é bem limitado, e sempre será, pois ele não é um interpretador nroff de verdade.  Seria
       possível  criar  um  interpretador nroff para permitir que autores usem todas as macros existentes ou até
       mesmo definir novas em suas páginas, mas nós não queríamos. Seria muito  difícil  e  nós  entendemos  não
       haver  necessidade.  Nós  pensamos que se os autores de páginas man desejam ver seus produtos traduzidos,
       eles podem ter que adaptar para facilitar o trabalho dos tradutores.

       Então, o analisador de manuais implementado no po4a possui algumas  limitações  conhecidas  que  nós  não
       exatamente  estamos  podendo  corrigir  e  que  podem ser buracos a serem evitados se você não quiser ver
       tradutores tomando conta da sua documentação.

   Não programe em nroff
       nroff é uma linguagem de programação completa, com definição de macros, condicionais e por aí vai. Já que
       este analisador não é um interpretador nroff com todas suas funcionalidades, ela vai  falhar  em  páginas
       usando essas capacidades (Há cerca de 200 de tais páginas no meu computador).

   Uso o conjunto de macros simples
       Há  ainda  algumas  macros  que não encontram suporte no po4a::man. Isso porque eu não consegui encontrar
       qualquer documentação sobre elas. Aqui está a lista de macros sem suporte, usadas na minha máquina.  Note
       que essa lista não é exaustiva, já que o programa falha na primeira macro sem suporte encontrada. Se você
       não  possui  qualquer  informação sobre algumas dessas macros, ficarei feliz em adicionar suporte a elas.
       Por causa dessas macros, cerca de 250 páginas estão inacessíveis para po4a::man.

        ..               ."              .AT             .b              .bank
        .BE              ..br            .Bu             .BUGS           .BY
        .ce              .dbmmanage      .do                             .En
        .EP              .EX             .Fi             .hw             .i
        .Id              .l              .LO             .mf
        .N               .na             .NF             .nh             .nl
        .Nm              .ns             .NXR            .OPTIONS        .PB
        .pp              .PR             .PRE            .PU             .REq
        .RH              .rn             .S<             .sh             .SI
        .splitfont       .Sx             .T              .TF             .The
        .TT              .UC             .ul             .Vb             .zZ

   Ocultando texto dopo4a
       Algumas vezes, o autor sabe que algumas  partes  não  são  traduzíveis  e,  portanto,  não  deveriam  ser
       extraídas  pelo po4a. Por exemplo, uma opção pode aceitar um argumento other e other também pode aparecer
       como o último item de uma lista. No primeiro caso, other não deveria ser traduzível. e no  segundo  caso,
       other deveria ser traduzido.

       Neste  aso,  o  autor  pode evitar que po4a extraia algumas strings usando alguns constructs especiais do
       groff:

        .if !'po4a'hide' .B other

       (isto vai exibir a opção -o groff_code=verbatim)

       Uma nova macro também pode ser definida para automatizar isso:
        .de IR_untranslated
        .    IR \\$@
        ..

        .IR_untranslated \-q ", " \-\-quiet

       (Isto vai exigir as opções -o groff_code=verbatim e -o untranslated=IR_untranslated; com este  construct,
       a  condicional  .if  !'po4a'hide' não é estritamente necessária já que po4a não vai analisar o interno da
       definição de macro)

       ou usando o alias:
        .als IR_untranslated IR

        .IR_untranslated \-q ", " \-\-quiet

       Isto vai exigir a opção -o untranslated=als,IR_untranslated.

   Conclusão
       Para resumir esta seção, mantenha simples e não tente ser esperto  ao  criar  suas  páginas  man.  Muitas
       coisas são possível no nroff, mas que não têm suporte neste analisador. Por exemplo, não tente bagunçar o
       \c  interrompendo o processamento de texto (como 40 páginas na minha máquina fazem). Ou, certifique-se de
       que colocar os argumentos de macros na mesma linha da própria macro. Eu se que é  válido  no  nroff,  mas
       complicado demais para o analisador lidar.

       É  claro,  outra possibilidade é usar outro formato, mais amigável ao tradutor (como POD usando po4a::pod
       ou um da família XML como o SGML), mas graças ao po4a::man isso não é mais necessário. Tendo  dito  isso,
       se  o  formato  fonte  da documentação é POD, ou XML, pode ser inteligente traduzir o formato fonte e não
       este gerado. Na maioria dos casos, po4a::man vai detectar páginas geradas e mostrar um aviso. El vai  até
       mesmo  recusar  processar  páginas  geradas  no  POD  porque  tais páginas são lidadas perfeitamente pelo
       po4a::pod, e porque sua contraparte nroff define um monte de novas macros que eu não desejo dar  suporte.
       Na minha máquina, 1432 das 4323 página são geradas de POD e vão ser ignoradas pelo po4a::man.

       Na  maioria  dos casos, po4a::man vai detectar o problema e se recusar a processar a página, apresentando
       uma mensagem adaptada. Em alguns casos raros, o programa vai completar sem avisos,  mas  a  saída  estará
       errada.  Tais  casos  são  chamados  de "bugs" ;) Se você encontrar tal caso, certifique-se de relatá-lo,
       junto com uma solução, quando possível…

ESTADO DESTE MÓDULO

       Este módulo pode ser usado para a maioria das páginas man existentes.

       Alguns testes são executados frequentemente em máquinas Linux:

       •   um terço das páginas são recusadas porque foram geradas a partir de outro formato com suporte no po4a
           (ex: POD ou SGML).

       •   10% das páginas remanescentes são rejeitadas com um erro (ex: uma macro groff não tem suporte).

       •   Então, menos de 1% das páginas são aceitas silenciosamente pelo po4a, mas com problemas significantes
           (isto é, palavras faltando ou novas palavras inseridas)

       •   As outras páginas são normalmente lidadas sem  diferenças  mais  importantes  do  que  diferenças  de
           espaçamento ou linha redimensionada (problemas de fontes em menos de 10% das páginas processadas).

VEJA TAMBÉM

       Locale::Po4a::Pod(3pm), Locale::Po4a::TransTractor(3pm), po4a(7)

AUTORES

        Denis Barbier <barbier@linuxfr.org>
        Nicolas François <nicolas.francois@centraliens.net>
        Martin Quinson (mquinson#debian.org)

COPYRIGHT E LICENÇA

       Copyright © 2002-2008 SPI, Inc.

       Esse programa é um software livre; você pode redistribuí-lo e/ou modificá-lo sob os termos da GPL v2.0 ou
       posterior (veja o arquivo COPYING).

perl v5.38.2                                       2024-08-28                           LOCALE::PO4A::MAN.3PM(1)