.\" 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::Xml 3pm" .TH Locale::Po4a::Xml 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::Xml \- converte documentos \s-1XML\s0 e derivados 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::Xml é um módulo para ajudar a tradução de documentos \s-1XML\s0 em outro idioma [humano]. Também pode ser usado como uma base para a construção de módulos de documentos com base em \s-1XML.\s0 .SH "TRADUZIR COM PO4A::XML" .IX Header "TRADUZIR COM PO4A::XML" Este módulo pode ser usado diretamente para lidar com documentos \s-1XML\s0 genéricos. Isto irá extrair todo o conteúdo das etiquetas e, não atributos, já que é onde o texto é escrito na maioria dos documentos com base \s-1XML.\s0 .PP Existem algumas opções (descrito na próxima secção), que podem personalizar este comportamento. Se isto não se encaixa no seu formato de documento que está encorajado a escrever o seu próprio módulo derivado deste, para descrever os detalhes do seu formato. Consulte a secção \fB\s-1WRITING DERIVATE MODULES\s0\fR abaixo, para descrição do processo. .SH "OPÇÕES ACEITES POR ESTE MÓDULO" .IX Header "OPÇÕES ACEITES POR ESTE MÓDULO" A opção de depuração global faz com que este módulo mostre as cadeia excluídas, para ver se ele ignora algo importante. .PP Estas são as opções particulares deste módulo: .IP "\fBnostrip\fR" 4 .IX Item "nostrip" Impede-o para tirar os espaços em torno das cadeias extraídas. .IP "\fBwrap\fR" 4 .IX Item "wrap" Canoniza a cadeia para traduzir, a considerar que espaços em branco não são importantes e dimensiona o documento traduzido. Essa opção pode ser sobrescrita por opções personalizadas de marcação. Veja a opção \fBtranslated\fR abaixo. .IP "\fBunwrap_attributes\fR" 4 .IX Item "unwrap_attributes" Atributos são quebrados por predefinição. Essa opção desativa a quebra. .IP "\fBcaseinsensitive\fR" 4 .IX Item "caseinsensitive" Faz as etiquetas e atributos a procurar trabalhar de forma em maiúsculas e minúsculas. Se for definido, ele vai tratar laNG e <\s-1BOOK\s0>Lang como lang. .IP "\fBescapequotes\fR" 4 .IX Item "escapequotes" Aspas de escapa em cadeias de saída. Necessário, por exemplo, para criação de recursos de cadeias para usar por ferramentas de compilação de Android. .Sp Veja também: https://developer.android.com/guide/topics/resources/string\-resource.html .IP "\fBincludeexternal\fR" 4 .IX Item "includeexternal" Quando definido, entidades externas estão incluídas no documento gerado (traduzido) e para a extração de cadeias. Se não for definido, vai ter que traduzir entidades externas separadamente como documentos independentes. .IP "\fBontagerror\fR" 4 .IX Item "ontagerror" Esta opção define o comportamento do módulo quando ele encontrar uma sintaxe de \s-1XML\s0 inválida (uma etiqueta de fecho, que não coincide com a última etiqueta de abertura). Ele pode ter os seguintes valores: .RS 4 .IP "\fIfail\fR" 4 .IX Item "fail" Este é o valor predefinido. O módulo irá sair com um erro. .IP "\fIwarn\fR" 4 .IX Item "warn" O módulo continuará e emitirá um aviso. .IP "\fIsilent\fR" 4 .IX Item "silent" O módulo vai continuar sem emitir um aviso. .RE .RS 4 .Sp Tenha cuidado ao usar esta opção. Recomenda-se geralmente para corrigir o ficheiro de entrada. .RE .IP "\fBtagsonly\fR" 4 .IX Item "tagsonly" Nota: Esta opção está obsoleta. .Sp Extrai apenas as marcações especificadas na opção \fBtags\fR. Do contrário, ela extrairá todas as marcações, com exceção daquelas especificadas. .IP "\fBdoctype\fR" 4 .IX Item "doctype" A cadeias que vai tentar combinar com a primeira linha do doctype do documento (se definido). Se isso não acontecer, um aviso indicará que o documento poderá ser de um tipo incorreto. .IP "\fBaddlang\fR" 4 .IX Item "addlang" A cadeia a indicar o caminho (por exemplo, <\s-1AAA\s0>) de uma etiqueta onde um atributo lang=\*(L"...\*(R" deve ser adicionado. O idioma será definido como o nome base do ficheiro \s-1PO\s0 sem qualquer extensão po. .IP "\fBoptionalclosingtag\fR" 4 .IX Item "optionalclosingtag" Booleano indicando se as tags de fechamento são opcionais (como em \s-1HTML\s0). Por padrão, as tags de fechamento ausentes geram um erro tratado de acordo com \fBontagerror\fR. .IP "\fBtags\fR" 4 .IX Item "tags" Nota: Esta opção está obsoleta. Deve usar as opções \fBtranslated\fR e \fBuntranslated\fR em vez. .Sp Lista de etiquetas separada por espaços que deseja traduzir ou ignorar. Por predefinição, as etiquetas especificadas serão excluídas, mas se usar a opção \*(L"tagsonly\*(R", etiquetas especificadas serão as únicas incluídas. As etiquetas devem estar em forma , mas podem-se juntar a algum () para dizer que o conteúdo da etiqueta só será traduzido quando está numaetiqueta . .Sp Também pode especificar algumas opções de marcação para pôr alguns caracteres na frente da hierarquia de marcações. Por exemplo, pode pôr um \fIw\fR (wrap) or \fIW\fR (não aplica wrap) para sobrescrever o comportamento padrão especificado pela opção global \fBwrap\fR. .Sp Exemplo: W .IP "\fBattributes\fR" 4 .IX Item "attributes" Lista de atributos das etiquetas separada por espaços que deseja traduzir. Pode especificar os atributos pelo nome deles (por exemplo, \*(L"lang\*(R"), mas pode prefixar com uma hierarquia de etiquetas, para especificar que este atributo só será traduzido quando está na etiqueta especificada. Por exemplo:<bbb><aaa>lang especifica que o atributo lang só será traduzido se for em numa etiqueta <aaa> e é numa etiqueta <bbb>. .IP "\fBfoldattributes\fR" 4 .IX Item "foldattributes" Não traduzir atributos em etiquetas em linha. Vez disso, substitua todos os atributos duma etiqueta por po4a\-id=<id>. .Sp Isto é útil quando atributos não serão traduzidas, como isso simplifica as cadeias para tradutores e evita erros de digitação. .IP "\fBcustomtag\fR" 4 .IX Item "customtag" lista de etiquietas separadas por espaços que não deviam ser tratadas como etiquetas. Estas etiquetas são tradadas com em linha e, não precisam de ser fechadas. .IP "\fBbreak\fR" 4 .IX Item "break" Lisat de etiquetas separada por espaços que devem quebrar a sequência. Por predefinição, todas as etiquetas quebrar a sequência. .Sp As etiquetas devem estar na forma <aaa>, mas pode juntar algumas (<bbb><aaa>), se uma etiqueta (<aaa>) só deveria ser considerada quando está em outra etiqueta (<bbb>). .Sp Note que uma marcação deve ser listada em apenas uma cadeia de configuração de \fBbreak\fR, \fBinline\fR \fBplaceholder\fR ou \fBcustomtag\fR. .IP "\fBinline\fR" 4 .IX Item "inline" Lista de etiquetas separada por espaços que devem ser tratados como em linha. Por predefinição todas as etiquetas quebram a sequência. .Sp As etiquetas devem estar na forma <aaa>, mas pode juntar algumas (<bbb><aaa>), se uma etiqueta (<aaa>) só deveria ser considerada quando está em outra etiqueta (<bbb>). .IP "\fBplaceholder\fR" 4 .IX Item "placeholder" Lista de etiquetas separadas por espaços que devem ser tratadas como espaços reservados. Os espaços reservados não quebram a sequência, mas o conteúdo dos espaços reservados é traduzido separadamente. .Sp A localização do espaço reservado no bloco dele será marcado com uma cadeia semelhante a: .Sp .Vb 1 \& <placeholder type=\e"footnote\e" id=\e"0\e"/> .Ve .Sp As etiquetas devem estar na forma <aaa>, mas pode juntar algumas (<bbb><aaa>), se uma etiqueta (<aaa>) só deveria ser considerada quando está em outra etiqueta (<bbb>). .IP "\fBbreak-pi\fR" 4 .IX Item "break-pi" Por padrão, as Instruções de Processamento (ou seja, tags \f(CW\*(C`<? ... ?>\*(C'\fR) são tratadas como tags embutidas. Passe essa opção se desejar que as I.P. sejam tratadas como tag de quebra. Note que tags \s-1PHP\s0 não processadas são tratadas como Instruções de Processamento pelo analisador. .IP "\fBnodefault\fR" 4 .IX Item "nodefault" lista de etiquetas separadas por espaço que o módulo não deve tentar definir por predefinição em qualquer categoria. .Sp Se tiver uma marcação que tenha a configuração predefinida dela pela subclasse deste módulo, mas desejar definir uma configuração alternativa, será necessário listar essa marcação como parte da cadeia de configuração \fBnodefault\fR. .IP "\fBcpp\fR" 4 .IX Item "cpp" Diretivas de suporte do pré\-processador C. Quando esta opção está definida, po4a irá considerar as diretivas de pré\-processamento como separadores de parágrafo. Isso é importante se o ficheiro \s-1XML\s0 deve ser processado, porque senão as directivas podem ser inseridas no meio de linhas se o po4a considerar que pertencem ao parágrafo corrente, que não será reconhecido pelo pré\-processador. Nota: as directivas de pré\-processamento só devem aparecer entre etiquetas (que não deve quebrar uma etiqueta). .IP "\fBtranslated\fR" 4 .IX Item "translated" Listas de etiquetas separadas por espaços que quer traduzir. .Sp As etiquetas devem estar na forma <aaa>, mas pode juntar algumas (<bbb><aaa>), se uma etiqueta (<aaa>) só deveria ser considerada quando está em outra etiqueta (<bbb>). .Sp Também pode especificar algumas opções de marcação para por alguns caracteres na frente da hierarquia de marcações. Isso sobrescreve o comportamento predefinido especificado pelas opções globais \fBwrap\fR e \fBdefaulttranslateoption\fR. .RS 4 .IP "\fIw\fR" 4 .IX Item "w" Etiquetas devem ser traduzidos e o conteúdo pode ser re-envolvido. .IP "\fIW\fR" 4 .IX Item "W" Etiquetas devem ser traduzidos e o conteúdo não devia ser reenvolvido. .IP "\fIi\fR" 4 .IX Item "i" As etiquetas deverão ser traduzidas em linha. .IP "\fIp\fR" 4 .IX Item "p" Etiquetas devem ser traduzidos em linha. .RE .RS 4 .Sp Internamente, o analisador \s-1XML\s0 só se preocupa com essas quatro opções: \fIw\fR \fIW\fR \fIi\fR \fIp\fR. .Sp * As tags listadas em \fBbreak\fR são definidas como \fIw\fR ou \fIW\fR dependendo da opção \fBwrap\fR. .Sp * As tags listadas em \fBinline\fR são definidas como \fIi\fR. .Sp * As tags listadas em \fBplaceholder\fR são definidas como \fIp\fR. .Sp * As tags listadas em \fBuntranslated\fR estão sem nenhuma dessas opções definidas. .Sp Pode verificar o comportamento real do parâmetro interno a invocar \fBpo4a\fR com a opção \fB\-\-debug\fR. .Sp Exemplo: W<chapter><title> .Sp Note que uma marcação deve estar listada na cadeia de configuração \fBtranslated\fR ou \fBuntranslated\fR. .RE .IP "\fBuntranslated\fR" 4 .IX Item "untranslated" Listas de etiquetas separadas por espaços que não quer traduzir. .Sp As etiquetas devem estar na forma <aaa>, mas pode juntar algumas (<bbb><aaa>), se uma etiqueta (<aaa>) só deveria ser considerada quando está em outra etiqueta (<bbb>). .Sp Note que uma tag inline traduzível numa tag não traduzida é tratada como uma tag de quebra traduzível, a configuração \fIi\fR é descartada e \fIw\fR ou \fIW\fR é definida dependendo da opção \fBwrap\fR. .IP "\fBdefaulttranslateoption\fR" 4 .IX Item "defaulttranslateoption" As categorias predefinidas para etiquetas que não são nenhuns de: traduzidos, não traduzidos, partidos, em linha ou espaço reservado. .Sp Este é um conjunto de letras, conforme definido em \fBtranslated\fR e essa configuração é válida apenas para tags traduzíveis. .SH "ESCREVENDO MÓDULOS DERIVADOS" .IX Header "ESCREVENDO MÓDULOS DERIVADOS" .SS "\s-1DEFINIR QUE ETIQUETAS E ATRIBUTOS PARA\s0 TRADUÇÃO" .IX Subsection "DEFINIR QUE ETIQUETAS E ATRIBUTOS PARA TRADUÇÃO" A mais simples personalização é definir quais as etiquetas e atributos mais desejados para o analisador a traduzir. Isto deve ser feito na função 'initialize'. Primeiro, deve invocar o 'initialize' principal, para obter as opções de linha de comando e, em seguida, acrescentar as suas definições personalizadas para as opções de 'hash'. Se quiser tratar de algumas novas opções de linha de comando, deve defini-las antes invocar o 'initialize' principal: .PP .Vb 6 \& $self\->{options}{\*(Aqnew_option\*(Aq}=\*(Aq\*(Aq; \& $self\->SUPER::initialize(%options); \& $self\->{options}{\*(Aq_default_translated\*(Aq}.=\*(Aq <p> <head><title>\*(Aq; \& $self\->{options}{\*(Aqattributes\*(Aq}.=\*(Aq <p>lang id\*(Aq; \& $self\->{options}{\*(Aq_default_inline\*(Aq}.=\*(Aq <br>\*(Aq; \& $self\->treat_options; .Ve .PP Deveria usar as opções \fB_default_inline\fR, \fB_default_break\fR, \fB_default_placeholder\fR, \fB_default_translated\fR, \fB_default_untranslated\fR e \fB_default_attributes\fR nos módulos derivados. Isso permite que utilizadores sobrescrevam o comportamento predefinido definido no seu módulo com opções de linha de comando. .SS "SUBSTITUIÇÃO \s-1DO COMPORTAMENTO PREDEFINIDO COM AS\s0 OPÇÕES \s-1DE LINHA DE COMANDO\s0" .IX Subsection "SUBSTITUIÇÃO DO COMPORTAMENTO PREDEFINIDO COM AS OPÇÕES DE LINHA DE COMANDO" Se não gostar do comportamento predefinido deste módulo xml e módulos derivados dele, poderá fornecer opções de linha de comando para alterar o comportamento deles. .PP Veja \fBLocale::Po4a::Docbook\fR\|(3pm), .SS "\s-1SUBSTITUINDO A\s0 FUNÇÃO found_string" .IX Subsection "SUBSTITUINDO A FUNÇÃO found_string" Outro passo simples é substituir a função \*(L"found_string\*(R", que recebe as cadeias extraídas do analisador, a fim de traduzi-las. Lá pode controlar quais cadeias deseja traduzir e realizar neles as transformações antes ou depois da tradução em si. .PP Ele recebe o texto extraído, a referência de onde ele estava e um 'hash' que contém informações extras para controlar o que cadeias a traduzir, como traduzi-las e gerar o comentário. .PP O conteúdo dessas opções depende do tipo de cadeia é (especificado numa entrada do 'hash'): .ie n .IP "type=""tag""" 4 .el .IP "type=``tag''" 4 .IX Item "type=tag" A cadeia encontrada é o conteúdo de uma etiqueta traduzível. A entrada \*(L"tag_options\*(R" contém os carateres de opção na frente da hierarquia das etiquetas na opção do módulo \*(L"tags\*(R". .ie n .IP "type=""attribute""" 4 .el .IP "type=``attribute''" 4 .IX Item "type=attribute" Significa que as cadeias encontradas é o valor de um atributo traduzível. A entrada \*(L"attribute\*(R" tem o nome do atributo. .PP Ela deve retornar o texto que irá substituir o original no documento traduzido. Aqui está um exemplo básico desta função: .PP .Vb 6 \& sub found_string { \& my ($self,$text,$ref,$options)=@_; \& $text = $self\->translate($text,$ref,"type ".$options\->{\*(Aqtype\*(Aq}, \& \*(Aqwrap\*(Aq=>$self\->{options}{\*(Aqwrap\*(Aq}); \& return $text; \& } .Ve .PP Aqui está outro exemplo simples no novo módulo Dia , que só filtra algumas cadeias. .SS "\s-1MODIFICANDO TIPOS DE ETIQUETAS\s0 (A \s-1FAZER\s0)" .IX Subsection "MODIFICANDO TIPOS DE ETIQUETAS (A FAZER)" Este é mais complexo, mas permite uma personalização (quase) total. É baseado numa lista de 'hashes', cada um define o comportamento de um tipo de etiqueta. A lista deve ser ordenada para que as etiquetas mais gerais estão antes das mais concretas (ordenadas primeiro no início e, depois, pelas chaves de fecho). Para definir um tipo de etiqueta vai ter que fazer um hash com as seguintes chaves: .IP "\fBbeginning\fR" 4 .IX Item "beginning" Especifice o princípio da etiqueta, depois de \*(L"<\*(R". .IP "\fBend\fR" 4 .IX Item "end" Especifice o fim da etiqueta, depois de \*(L">\*(R". .IP "\fBbreaking\fR" 4 .IX Item "breaking" Ele diz que se esta é uma classe de etiquetas quebradas. Uma etiqueta não\-quebrada (inline) é uma que pode ser tomada como parte do conteúdo de outra etiqueta. Pode levar o valor falso (0), verdadeiro (1) ou indefinido. Se deixá\-lo indefinido, vai ter que definir a função f_breaking que vai dizer se uma etiqueta concreta desta classe é uma etiqueta de quebrar ou não. .IP "\fBf_breaking\fR" 4 .IX Item "f_breaking" É uma função que vai dizer se a próxima etiqueta é uma quebra ou não. Ele deve ser definido se a opção \fBbreaking\fR não é. .IP "\fBf_extract\fR" 4 .IX Item "f_extract" Se deixar esta chave indefinida, a função de extração de genéricos terá que extrair a etiqueta própria. É útil para as etiquetas que podem ter outras etiquetas ou estruturas especiais dentro deles, de modo que o analisador principal não fica louco. Esta função recebe um booleano que diz se a etiqueta deve ser removida do fluxo de entrada ou não. .IP "\fBf_translate\fR" 4 .IX Item "f_translate" Esta função recebe a etiqueta (no formato \fBget_string_until()\fR) e retorna a etiqueta traduzida (atributos traduzidos ou todos as necessárias transformações) como uma única sequência. .SH "FUNÇÕES INTERNAS usadas para escrever analisadores derivados" .IX Header "FUNÇÕES INTERNAS usadas para escrever analisadores derivados" .SS "\s-1TRABALHANDO COM ETIQUETAS\s0" .IX Subsection "TRABALHANDO COM ETIQUETAS" .IP "\fBget_path()\fR" 4 .IX Item "get_path()" Esta função retorna o caminho para a etiqueta corrente a partir da raiz do documento na forma <html><body><p>. .Sp Um conjunto adicional de etiquetas (sem parênteses) pode ser passado como argumento. Estes elementos de caminho são adicionados ao fim do caminho da corrente. .IP "\fBtag_type()\fR" 4 .IX Item "tag_type()" Esta função retorna o índice da lista tag_types que cabe na etiqueta seguinte no fluxo de entrada, ou \-1, se é no fim do ficheiro de entrada. .Sp Aqui, a marcação tem estrutura iniciada por < e finalizada por > e pode conter várias linhas. .Sp Isso funciona no vetor \f(CW\*(C`@{$self\->{TT}{doc_in}}\*(C'\fR a deter os dados do documento de entrada e referência indiretamente via \f(CW\*(C`$self\->shiftline()\*(C'\fR e \f(CW\*(C`$self\->unshiftline($$)\*(C'\fR. .IP "extract_tag($$)" 4 .IX Item "extract_tag($$)" Esta função retorna a próxima etiqueta do fluxo de entrada sem o início e o fim, numa forma de matriz, para manter as referências do ficheiro de entrada tem dois parâmetros: o tipo de etiqueta (como retornado por tag_type) e um booleano, que indica se deve ser removido a partir do fluxo de entrada. .Sp Isso funciona no vetor \f(CW\*(C`@{$self\->{TT}{doc_in}}\*(C'\fR a deter os dados do documento de entrada e referência indiretamente via \f(CW\*(C`$self\->shiftline()\*(C'\fR e \f(CW\*(C`$self\->unshiftline($$)\*(C'\fR. .IP "get_tag_name(@)" 4 .IX Item "get_tag_name(@)" Esta função retorna o nome da etiqueta passada como um argumento, no formulário da matriz retornada por extract_tag. .IP "\fBbreaking_tag()\fR" 4 .IX Item "breaking_tag()" Esta função retorna um booleano que diz que se a próxima etiqueta no fluxo de entrada é uma etiqueta quebrada ou não (etiqueta inline). Ele deixa o fluxo de entrada intacto. .IP "\fBtreat_tag()\fR" 4 .IX Item "treat_tag()" Essa função converte a próxima etiqueta a partir do fluxo de entrada. Usando em cada etiqueta tipos personalizados de funções de tradução. .Sp Isso funciona no vetor \f(CW\*(C`@{$self\->{TT}{doc_in}}\*(C'\fR a deter os dados do documento de entrada e referência indiretamente via \f(CW\*(C`$self\->shiftline()\*(C'\fR e \f(CW\*(C`$self\->unshiftline($$)\*(C'\fR. .IP "tag_in_list($@)" 4 .IX Item "tag_in_list($@)" Esta função retorna um valor de cadeia que diz que se o primeiro argumento (a hierarquia das etiquetas) corresponde a qualquer uma das etiquetas do segundo argumento (a lista de etiquetas ou a hierarquia). Se não corresponder, ele retorna 0. Caso contrário, retorna as opções de etiqueta correspondentes (os carateres de frente da etiqueta) ou 1 (se a etiqueta não tem opções). .SS "\s-1TRABALHANDO COM ATRIBUTOS\s0" .IX Subsection "TRABALHANDO COM ATRIBUTOS" .IP "treat_attributes(@)" 4 .IX Item "treat_attributes(@)" Essa função manipula a tradução dos atributos das marcações. Ela recebe a marcação sem as marcas de início / fim e, então, ela encontra os atributos e traduz os traduzíveis (especificado pela opção do módulo \fBattributes\fR). Isso retorna uma string simples com a marcação traduzida. .SS "\s-1TRABALHANDO COM\s0 CONTEÚDOS \s-1MARCADOS\s0" .IX Subsection "TRABALHANDO COM CONTEÚDOS MARCADOS" .IP "\fBtreat_content()\fR" 4 .IX Item "treat_content()" Essa função obtém o texto até a próxima marcação de quebra (não em linha) do fluxo de entrada. Traduza-a a usar as funções de tradução personalizadas de cada tipo de marcação. .Sp Isso funciona no vetor \f(CW\*(C`@{$self\->{TT}{doc_in}}\*(C'\fR a deter os dados do documento de entrada e referência indiretamente via \f(CW\*(C`$self\->shiftline()\*(C'\fR e \f(CW\*(C`$self\->unshiftline($$)\*(C'\fR. .SS "\s-1TRABALHANDO COM\s0 OPÇÕES \s-1DE\s0 MÓDULOS" .IX Subsection "TRABALHANDO COM OPÇÕES DE MÓDULOS" .IP "\fBtreat_options()\fR" 4 .IX Item "treat_options()" Esta função preenche as estruturas internas que contêm as etiquetas, atributos e dados em linha com as opções do módulo (especificado na linha de comando ou na função de inicialização). .SS "OBTENÇÃO \s-1DE TEXTO A PARTIR DO DOCUMENTO DE ENTRADA\s0" .IX Subsection "OBTENÇÃO DE TEXTO A PARTIR DO DOCUMENTO DE ENTRADA" .IP "get_string_until($%)" 4 .IX Item "get_string_until($%)" Esta função retorna uma matriz com as linhas (e referências) do documento de entrada até encontrar o primeiro argumento. O segundo argumento é um 'hash' de opções. Valor 0 significa desativado (a predefinição) e 1 ativado. .Sp As opções válidas são: .RS 4 .IP "\fBinclude\fR" 4 .IX Item "include" Isto faz com que a matriz retornada contenha o texto procurado .IP "\fBremove\fR" 4 .IX Item "remove" Isto remove o fluxo retornado a partir da entrada .IP "\fBunquoted\fR" 4 .IX Item "unquoted" Isto assegura que o text procurado está fora de qualquer citação .IP "\fBregex\fR" 4 .IX Item "regex" Isso indica que o primeiro argumento é uma expressão regular e não uma cadeia simples .RE .RS 4 .RE .IP "skip_spaces(\e@)" 4 .IX Item "skip_spaces(@)" Esta função recebe como argumento a referência a um parágrafo (no formato retornado por get_string_until), ignora os espaços de título dele e retorna-os como uma sequência simples. .IP "join_lines(@)" 4 .IX Item "join_lines(@)" Esta função retorna uma cadeia simples com o texto do argumento da matriz (a descartar as referências). .SH "ESTADO DESTE MÓDULO" .IX Header "ESTADO DESTE MÓDULO" Este módulo pode traduzir etiquetas e atributos. .SH "LISTA PARAFAZER" .IX Header "LISTA PARAFAZER" \&\s-1DOCTYPE\s0 (\s-1ENTITIES\s0) .PP Há um suporte mínimo para a tradução de entidades. Elas são traduzida como um todo e as etiquetas não são tidas em conta. As entidades multi linhas não são suportados e as entidades são sempre re-envolvidas durante a tradução. .PP \&\s-1MODIFICAR TIPOS DE ETIQUETAS A PARTIR DE\s0 MÓDULOS \s-1HERDADOS\s0 (move a estrutura tag_types dentro de hash \f(CW$self\fR hash?) .SH "VER TAMBÉM" .IX Header "VER TAMBÉM" \&\fBLocale::Po4a::TransTractor\fR\|(3pm), \fBpo4a\fR\|(7) .SH "AUTORES" .IX Header "AUTORES" .Vb 2 \& Jordi Vilalta <jvprat@gmail.com> \& Nicolas François <nicolas.francois@centraliens.net> .Ve .SH "DIREITOS DE AUTOR E LICENÇA" .IX Header "DIREITOS DE AUTOR E LICENÇA" .Vb 2 \& Copyright © 2004 Jordi Vilalta <jvprat@gmail.com> \& Copyright © 2008\-2009 Nicolas François <nicolas.francois@centraliens.net> .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).