.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "Locale::Po4a::Sgml 3pm" .TH Locale::Po4a::Sgml 3pm "2023-01-03" "Ferramentas Po4a" "Ferramentas Po4a" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NOME" .IX Header "NOME" Locale::Po4a::Sgml \- converte documentos \s-1SGML\s0 de/para ficheiros \s-1PO\s0 .SH "DESCRIÇÃO" .IX Header "DESCRIÇÃO" O objetivo do projeto po4a (\s-1PO\s0 for anything: \s-1PO\s0 para qualquer coisa) é facilitar traduções (e o mais interessante, a manutenção das traduções) a usar as ferramentas do gettext em áreas em que não se esperava, como na documentação. .PP Locale::Po4a::Sgml é um módulo para ajudar a tradução da documentação no formato \s-1SGML\s0 em outras idiomas [humanos]. .PP Este módulo usa \fBonsgmls\fR(1) para analisar os ficheiros \s-1SGML.\s0 Certifique-se de que é instalado. Certifique-se também de que o \s-1DTD\s0 dos ficheiros \s-1SGML\s0 está instalado no sistema. .SH "OPÇÕES ACEITES POR ESTE MÓDULO" .IX Header "OPÇÕES ACEITES POR ESTE MÓDULO" .IP "\fBdebug\fR" 4 .IX Item "debug" Lista separada por espaços de palavras-chave que indicam que parte deseja depurar. Valores de depuração possíveis são: tag, generic, entities e refs. .IP "\fBverbose\fR" 4 .IX Item "verbose" Dê mais informações sobre o que está a acontecer. .IP "\fBtranslate\fR" 4 .IX Item "translate" Lista separada por espaços de etiquetas extra (ao lado dos \s-1DTD\s0 fornecidos), cujo conteúdo devem formar um identificador de mensagem extra. .IP "\fBsection\fR" 4 .IX Item "section" Lista separada por espaços de etiquetas extra (ao lado dos \s-1DTD\s0 fornecidos), a conter outras etiquetas, a ser algumas de categoria \fBtranslate\fR. .IP "\fBindent\fR" 4 .IX Item "indent" Lista separada por espaço de etiquetas que aumentam o nível de recuo. .IP "\fBverbatim\fR" 4 .IX Item "verbatim" A apresentação dentro dessas marcas não deve ser alterada. Este parágrafo não vai ficar envolvido e não há espaço de recuo adicional ou nova linha será adicionada para finalidade estética. .IP "\fBempty\fR" 4 .IX Item "empty" Etiquetas que não precisam ser fechadas. .IP "\fBignore\fR" 4 .IX Item "ignore" Etiquetas ignoradas e consideradas como simples dados de carateres por po4a. Isso quer dizer que elas podem ser parte de um identificador de mensagem. Por exemplo, é um bom candidato para esta categoria desde que o ponha na secção de traduzir criaria identificadores de mensagens não a ser frases inteiras, o que é mau. .IP "\fBattributes\fR" 4 .IX Item "attributes" Uma lista separada por espaços de atributos que precisam ser traduzidos. Pode especificar os atributos pelos seus nomes (por exemplo, \*(L"lang\*(R"), mas pode também prefixá\-lo com uma hierarquia de etiquetas, para especificar que este atributo será apenas traduzido quando está na etiqueta especificada, por exemplo: lang especifica que o atributo 'lang' só será traduzido se estiver numa etiqueta , que é uma etiqueta Os nomes de etiquetas são realmente expressões regulares, então também podem escrever coisas como lang para apenas traduzir os atributos 'lang' que estão num ou uma etiqueta . .IP "\fBqualify\fR" 4 .IX Item "qualify" Uma lista separada por espaços de atributos para que a tradução deve ser qualificada pelo nome do atributo. Note que esta definição adiciona automaticamente o atributo dado também na lista dos 'atributos'. .IP "\fBforce\fR" 4 .IX Item "force" Proceder mesmo se o \s-1DTD\s0 é desconhecido ou se onsgmls encontra erros no ficheiro de entrada. .IP "\fBinclude-all\fR" 4 .IX Item "include-all" Por predefinição, o 'msgids' contém apenas uma entidade (como '&version;') são ignorados para o conforto do tradutor. Ativando esta opção impede que ista otimização. Pode ser útil se o documento contém uma construção como \*(L"Á\*(R" , mesmo que duvide que tais coisas sempre acontecem ... .IP "\fBignore-inclusion\fR" 4 .IX Item "ignore-inclusion" Lista separada por espaço de entidades que não será indexadas. Use esta opção com cuidado: ela pode causar onsgmls (usado internamente) para adicionar etiquetas e render o documento de saída inválida. .SH "ESTADO DESTE MÓDULO" .IX Header "ESTADO DESTE MÓDULO" O resultado é perfeito. Ou seja, os documentos gerados são exatamente os mesmos. Mas ainda há alguns problemas: .IP "\(bu" 2 A saída de erro do onsgmls é redirecionada para /dev/null por predefinição, o que obviamente é ruim. Não sei como evitar isso. .Sp O problema é que tenho a \*(L"proteger\*(R" as inclusões condicionais (ou seja, o material \f(CW\*(C`\*(C'\fR) de 'onsgmls'. Caso contrário 'onsgmls' come-os e, não sei como restaurá\-los no documento final. Para evitar isso, reescrevi-os para \f(CW\*(C`{po4a\-beg\-foo}\*(C'\fR e \f(CW\*(C`{po4a\-final}\*(C'\fR. .Sp O problema com isso é que o \f(CW\*(C`{PO4A\-end}\*(C'\fR e outros que acrescento, são inválidos no documento (não numa marcação

ou similar). .Sp Se quiser ver a saída do onsgmls, adicione o seguinte à sua linha de comandos (ou linha de configuração po4a): .Sp .Vb 1 \& \-o debug=onsgmls .Ve .IP "\(bu" 2 Ele funciona apenas com o DebianDoc e DocBook \s-1DTD.\s0 Adicionar suporte para um novo \s-1DTD\s0 deve ser muito fácil. O mecanismo é o mesmo para cada \s-1DTD,\s0 só tem que dar uma lista das etiquetas existentes e algumas das suascaracterísticas. .Sp Concordo. apenas necessita mais documentação, no entanto pode ser considerado como beta e detesto conteúdos de documentos que podem ainda ser sujeitos a alterações. .IP "\(bu" 2 Aviso, o suporte para DTDs é bastante experimental. Não li nenhum manual de referência para encontrar a definição de cada etiqueta. Adicionei a definição de etiqueta para o módulo, até que funciona para alguns documentos que eu encontrei na Internet. Se o documento usar mais etiqueta do que a minha, não vai funcionar. Mas como eu disse acima, reparar isto deve ser muito fácil. .Sp Testei DocBook contra o \s-1SAG\s0 (Guia do Administrador do Sistema), mas também este documento é muito grande e deve usar mais especificidades do DocBook. .Sp Para DebianDoc, testei alguns dos manuais da \s-1DDP,\s0 mas não todos ainda. .IP "\(bu" 2 Em caso de inclusão de ficheiros, a cadeia de referência de mensagens em ficheiros \s-1PO\s0 (ou seja, linhas como \f(CW\*(C`#: en/titletoc. sgml:9460\*(C'\fR) vai estar errada. .Sp Isso é porque pre-processei o ficheiro para proteger a inclusão condicional (ou seja, o material \f(CW\*(C`) e algumas entidades (como &version;) de 'onsgmls' porque quero-os textualmente no documento gerado. Para isso, fiz uma cópia temporária do ficheiro de entrada e faço todos as mudanças que quero para este antes de o passar para 'onsgmls' para análise. .Sp Assim ele funciona, substituí as entidades que pedem a inclusão de ficheiros pelo conteúdo do ficheiro de dados (para que possa proteger também o que precisa de estar num sub-ficheiro também). Mas nada se fez até agora para corrigir as referências (ou seja o nome do ficheiro e o número da linha) mais tarde. Não tenho certeza qual é a melhor coisa a fazer. .SH "AUTORES" .IX Header "AUTORES" Este módulo é uma versão adaptada do 'sgmlspl' (pós\-processador \s-1SGML\s0 para os analisadores \s-1SGMLS\s0 e \s-1ONSGMLS\s0) que foi: .PP .Vb 1 \& Copyright © 1995 David Megginson .Ve .PP A adaptação para po4a foi feito por: .PP .Vb 2 \& Denis Barbier \& Martin Quinson (mquinson#debian.org) .Ve .SH "DIREITOS DE AUTOR E LICENÇA" .IX Header "DIREITOS DE AUTOR E LICENÇA" .Vb 2 \& Copyright © 1995 David Megginson . \& Copyright © 2002\-2005 SPI, Inc. .Ve .PP Este programa é software livre, pode redistribuí\-lo e/ou modificá\-lo sob os termos da \s-1GPL\s0 (consulte o ficheiro CÓPIA).