LOCALE::PO4A::SGML.3PM(1) User Contributed Perl Documentation NOME Locale::Po4a::Sgml - converte documentacoes SGML de/para arquivos PO DESCRICAO O objetivo do projeto po4a (PO for anything, ou PO para qualquer coisa) e facilitar traducoes (e o mais interessante, a manutencao das traducoes) usando as ferramentas do gettext em areas em que nao se esperava, como documentacao. Locale::Po4a::Sgml e um modulo para ajudar a traducao de documentacao no formato SGML para outros idiomas. Esse modulo usa onsgmls(1) para analisar os arquivos SGML. Certifique- se de que ele esta instalado. Certifique-se, tambem, de que o DTD dos arquivos SGML estao instalados no sistema. OPCOES ACEITAS POR ESTE MODULO debug Space-separated list of keywords indicating which category of extra debug messages should be shown. Possible values are: "entities", "generic", "onsgml", "refs" and "tag". verbose Fornece mais informacoes sobre o que esta acontecendo. translate Lista separada por espaco das marcacoes extras (alem daquelas fornecidas por DTD) cujo conteudo deveria formar um msgid extra, isto e, deveria ser traduzido. section Lista separada por espaco das marcacoes extras (alem daquelas fornecidas por DTD) contendo outras marcacoes, algumas delas sendo da categoria translate. indent Lista separada por espaco das marcacoes que incrementam o nivel de recuo. Isso vai afetar o recuo no documento resultante. verbatim O layout dentro daquelas marcacoes que nao deveriam ser alteradas. O paragrafo nao sera dimensionado e nenhuma nova linha ou espaco de recuo extra serao adicionados por motivos cosmeticos. empty Marcacoes que nao precisam ser fechadas. ignore Marcacoes ignoradas e consideradas como dados de caracteres simples pelo po4a. Isso e o mesmo que dizer que elas podem ser parte de um msgid. Por exemplo, e um otimo candidato para esta categoria, considerando que colocar ela em uma secao translate resultaria na criacao de um msgid com apenas o seu conteudo (e geralmente nao uma sentenca completa), o que e ruim. attributes A space-separated list of attributes that need to be translated. You can specify the attributes by their name (for example, "lang"), but you can also prefix it with a tag hierarchy, to specify that this attribute will only be translated when it is into the specified tag. For example: "lang" specifies that the lang attribute will only be translated if it is in an "" tag, which is in a "" tag. The tag names are actually regular expressions so you can also write things like "lang" to only translate "lang" attributes that are in an "" or a "" tag. qualify Uma lista separada por espaco de atributos para os quais a traducao deve ser qualificada pelo nome do atributo, isto e, o texto extraido para a traducao incluira o nome e o valor do atributo. Por exemplo, para uma tag como "" os tradutores receberao a string "lang_en="foo"". Observe que isso tambem adiciona automaticamente o atributo fornecido a lista attributes tambem. force Continua mesmo na eventualidade do DTD ser desconhecido ou se onsgmls encontrar erros no arquivo de entrada. include-all Por padrao, msgids que contenham apenas uma entidade (como "&version;") sao ignorados para o conforto dos tradutores. Ao ativar essa opcao, esta se prevenindo esta otimizacao. Ela pode ser util se a documentacao contem uma construcao como "Á", mesmo eu duvidando que esse tipo de coisa venha a acontecer... ignore-inclusion Lista separada por espaco de entidades que nao serao acrescentadas embutidas. Use esta opcao com cuidado: ela pode levar o onsgmls (usado internamente) a adicionar tags e tornar invalido o documento resultante. ESTADO DESTE MODULO O resultado e perfeito, ou seja, os documentos gerados sao exatamente os mesmos que os originais. Mas ainda ha alguns problemas: o A saida de erro do onsgmls e redirecionada para /dev/null por padrao, o que obviamente e ruim. Eu nao sei como evitar isso. O problema e que eu tenho que "proteger" as inclusoes condicionais (i.e. as "") do onsgmls. Do contrario, onsgmls devora-as e eu nao sei como restaura-las no documento final. Para evitar isso, eu as reescrevo para "{PO4A-beg-foo}" e "{PO4A-end}". O problema com isso e que o "{PO4A-end}", e outros que eu acrescento, sao invalidos no documento (nao em uma marcacao

ou similar). Se voce quiser ver a saida do onsgmls, adicione o seguinte a sua linha de comandos (ou linha de configuracao po4a): -o debug=onsgmls o Ele funciona bem apenas com o Docbook DTD e DebianDoc. Adicionar suporte a um novo DTD deve ser muito facil. O mecanismo e o mesmo para todo DTD, voce so deveria passar uma lista de marcacoes existentes e algumas de suas caracteristicas. Eu concordo, isso precisa de mais documentacao, mas ele ainda e considerado como beta e eu odeio documentar coisas que podem/vao alterar. o Aviso, o suporte para DTDs e bem experimental. Eu nao li nenhum manual de referencia para encontrar a definicao para todas marcacoes. Eu adicionar definicao de marcacoes ao modulo ate que funcionou para algumas documentacoes encontradas na internet. Se seu documento usa mais marcacoes que o meu, ele nao vai funcionar. Mas como eu falei acima, corrigir isso deve ser bem facil. Eu testei DocBook apenas com o SAG (System Administrator Guide), mas este documento e bem grande e deveria usar a maioria das especificidades do DocBook. Para DebianDoc, Eu testei alguns dos manuais do DDP, mais nao todos ainda. o No caso de inclusao de arquivo, a referencia de strings nos arquivos PO (i.e. linhas como "#: en/titletoc.sgml:9460") estarao erradas. Isso porque eu pre-processo o arquivo para proteger a inclusao condicional (i.e. aqueles "") e algumas entidades (como "&version;") do onsgmls porque eu quero eles verbatim no documento gerado. Para isso, eu faco uma copia temporaria do arquivo de entrada e faco todas as alteracoes que eu quero nele antes de passa-lo para o onsgmls para analise. Para que isso funcione, eu substituo as entidades requisitando uma inclusao de arquivo pelo conteudo do arquivo dado (de forma que eu possa proteger o precisa ser um subarquivo tambem). Mas nada e feito ate o momento para corrigir as referencias (i.e. nome de arquivo e numero da linha) posteriormente. Eu nao tenho certeza qual e a melhor coisa a se fazer. AUTORES Esse modulo e uma versao adaptado do sgmlspl (pos-processador SGML para o analisador ONSGMLS) que era: Copyright (C) 1995 David Megginson A adaptacao para o po4a foi feita para: Denis Barbier Martin Quinson (mquinson#debian.org) COPYRIGHT E LICENCA Copyright (C) 1995 David Megginson . Copyright (C) 2002-2005 SPI, Inc. Esse programa e um software livre; voce pode redistribui-lo e/ou modifica-lo sob os termos da GPL v2.0 ou posterior (veja o arquivo COPYING). perl v5.38.2 2024-06-26 LOCALE::PO4A::SGML.3PM(1)