Locale::Po4a::Sgml(3pm)

NOME
Locale::Po4a::Sgml - converte documentos SGML de/para ficheiros PO

DESCRIÇÃO
O objetivo do projeto po4a (PO para tudo) é facilitar traduções (e mais interessante, a manutenção das traduções) usando ferramentas gettext em áreas onde eles não eram esperados como documentação.

Locale::Po4a::Sgml é um módulo para ajudar a tradução da documentação no formato SGML em outras idiomas [humanos].

This module uses onsgmls(1) to parse the SGML files. Make sure it is installed. Also make sure that the DTD of the SGML files are installed in the system.

OPÇÕES ACEITES POR ESTE MÓDULO

debug
    Lista separada por espaço de palavras-chave que indicam que parte você deseja. Valores de depuração possíveis são: tag, generic, entities e refs.

verbose
    Dê mais informações sobre o que está acontecendo.

translate
    Lista separada por espaços de etiquetas extra (ao lado dos DTD fornecidos), cujo conteúdo devem formar um identificador de mensagem extra.

section
    Lista separada por espaços de etiquetas extra (ao lado dos DTD fornecidos), contendo outras etiquetas, sendo algumas de categoria translate.

indent
    Lista separada por espaço de etiquetas que aumentam o nível de recuo.

verbatim
    A apresentação dentro dessas marcas não deve ser alterada. Este número não vai ficar envolvido e, não há espaço de recuo extra ou nova linha será adicionada para finalidade estética.

empty
    Etiquetas não precisam ser fechados

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, <b> é um bom candidato para esta categoria desde que o coloque na secção de traduzir criaria identificadores de mensagens não sendo frases inteiras, o que é mau.

attributes
    Uma lista separada por espaços de atributos que precisam ser traduzidos. Você pode especificar os atributos pelos seus nomes (por exemplo, "lang"), mas você 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: <bbb><aaa>lang especifica que o atributo 'lang' só será traduzido se estiver numa etiqueta <aaa>, que é uma etiqueta <bbb> Os nomes de etiqueta são realmente expressões regulares, então você também pode escrever coisas como <aaa|bbbb>lang para apenas traduzir os atributos 'lang' que estão num <aaa> ou uma etiqueta <bbb>.

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

force
    Proceed even if the DTD is unknown or if onsgmls finds errors in the input file.

include-all
    Por padrão, o 'msgids' contém apenas uma entidade (como '&version;') são ignorados para o conforto tradutor. Ativando esta opção impede que ista otimização. Pode ser útil se o documento contém uma construção como "<title>&Aacute;</title>" , mesmo que eu duvide que tais coisas sempre acontecem ...

ignore-inclusion
    Space separated list of entities that won't be inlined. Use this option with caution: it may cause onsgmls (used internally) to add tags and render the output document invalid.

STATUS DESTE MÓDULO
O resultado é perfeito. Ou seja, os documentos gerados são exatamente os mesmos. Mas ainda há alguns problemas:

•   The error output of onsgmls is redirected to /dev/null, which is clearly bad. I don't know how to avoid that.

    The problem is that I have to "protect" the conditional inclusions (i.e. the "<! [ %foo [" and "]]>" stuff) from onsgmls. Otherwise onsgmls eats them, and I don't know how to restore them in the final document. To prevent that, I rewrite them to "{PO4A-beg-foo}" and "{PO4A-end}".

    The problem with this is that the "{PO4A-end}" and such I add are invalid in the document (not in a <p> tag or so).

    Everything works well with onsgmls's output redirected that way, but it will prevent us from detecting that the document is badly formatted.

•   Ele funciona apenas com o DebianDoc e DocBook DTD. Adicionar suporte para um novo DTD deve ser muito fácil. O mecanismo é o mesmo para cada DTD, só tem que dar uma lista das etiquetas existentes e algumas das suascaracterísticas.

    Concordo. apenas necessita mais documentação, no entanto pode ser considerado como beta e eu detesto conteúdos de documentos que podem ainda ser sujeitos a alterações.

•   Aviso, o suporte para DTDs é bastante experimental. Eu 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.

    Eu testei DocBook contra o SAG (Guia do Administrador do Sistema), mas também este documento é muito grande, e deve usar mais especificidades do DocBook.

    Para DebianDoc, eu testei alguns dos manuais da DDP, mas não todos ainda.

•   Em caso de inclusão de ficheiros, a sequência de referência de mensagens em ficheiros PO (ou seja, linhas como "#: en/titletoc. sgml:9460") vai estar errada.

    This is because I preprocess the file to protect the conditional inclusion (i.e. the "<! [ %foo [" and "]]>" stuff) and some entities (like &version;) from onsgmls because I want them verbatim to the generated document. For that, I make a temp copy of the input file and do all the changes I want to this before passing it to onsgmls for parsing.

    Assim ele funciona, eu substituí as entidades que pedem a inclusão de ficheiros pelo conteúdo do ficheiro de dados (para que eu 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. Eu não tenho certeza qual é a melhor coisa a fazer.

AUTORES
This module is an adapted version of sgmlspl (SGML postprocessor for the ONSGMLS parser) which was:

Direitos de Autor (c) 1995 por David Megginson <dmeggins@aix1.uottawa.ca>

A adaptação para po4a foi feito por:

 Denis Barbier <barbier@linuxfr.org>
 Martin Quinson (mquinson#debian.org)
=head1 DIREITOS DE AUTOR E LICENÇA

 Direitos de Autor (c) 1995 por David Megginson <dmeggins@aix1.uottawa.ca>
 Direitos de Autor 2002, 2003, 2004, 2005 por SPI, inc.

Este programa é software livre, você pode redistribuí-lo e/ou modificá-lo sob os termos da GPL (consulte o ficheiro CÓPIA).