.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) .\" .\" 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::TeX 3pm" .TH Locale::Po4a::TeX 3pm "2018-12-09" "Ferramentas do Po4a" "Ferramentas do 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::TeX \- converte documentos TeX e derivados de/para arquivos \s-1PO\s0 .SH "DESCRIÇÃO" .IX Header "DESCRIÇÃO" O objetivo do projeto po4a (\s-1PO\s0 for anything, ou \s-1PO\s0 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. .PP Locale::Po4a::TeX é um módulo para ajudar a tradução de documentos TeX para outros idiomas. Ele também pode ser usado como uma base para construir módulos para documentos baseados em TeX. .PP Usuários provavelmente deveriam usar o módulo LaTeX, o qual herdou do módulo TeX e contém as definições dos comandos comuns do LaTeX. .SH "TRADUZINDO COM PO4A::TEX" .IX Header "TRADUZINDO COM PO4A::TEX" Esse módulo pode ser usado diretamente para lidar com documentos TeX genéricos. Ele vai dividir seu documento em blocos menores (parágrafos, blocos literais ou até mesmo menores, como títulos e índices). .PP Há algumas opções (descritas na próxima seção) que podem personalizar este comportamento. Se isso não se adequar ao formato do seu documento, encorajamos você a escrever seu próprio módulo derivado deste, para descrever os detalhes do seu formato. Veja a seção abaixo \fB\s-1ESCREVENDO\s0 MÓDULOS \s-1DERIVADOS\s0\fR, para a descrição do processo. .PP Esse módulo também pode ser personalizado por linhas iniciais com \*(L"% po4a:\*(R" no arquivo TeX. Essas personalizações são descritas na seção \&\fBPERSONALIZAÇÃO \s-1INTEGRADA\s0\fR. .SH "OPÇÕES ACEITAS POR ESTE MÓDULO" .IX Header "OPÇÕES ACEITAS POR ESTE MÓDULO" Estas são as opções específicas deste módulo: .IP "\fBdebug\fR" 4 .IX Item "debug" Ativa depuração em alguns mecanismos internos deste módulo. Use a fonte para saber quais partes podem ser depuradas. .IP "\fBno_wrap\fR" 4 .IX Item "no_wrap" Lista separada por vírgula dos ambientes que não deveriam ser redimensionado. .Sp Note que há uma diferença entre ambientes literais e no_wrap. Não há análise de comentários e comandos nos blocos literais. .Sp Se esse ambiente ainda não foi registrado, po4a vai considerar que ele não leva parâmetros. .IP "\fBexclude_include\fR" 4 .IX Item "exclude_include" Lista separada por dois-pontos (:) dos arquivos que não deveria ser incluídos por \einput e \einclude. .IP "\fBdefinitions\fR" 4 .IX Item "definitions" O nome de um arquivo contendo definições para o po4a, como definido na seção \&\fBPERSONALIZAÇÃO \s-1INTEGRADA\s0\fR. Você pode usar esta opção se não for possível colocar as definições no documento que está sendo traduzido. .IP "\fBverbatim\fR" 4 .IX Item "verbatim" Lista separada por vírgula dos ambientes que deveriam ser considerados com literais. .Sp Se esse ambiente ainda não foi registrado, po4a vai considerar que ele não leva parâmetros. .PP Usar essas opções permite sobrescrever o comportamento dos comandos definidos nas listas padrões. .SH "PERSONALIZAÇÃO INTEGRADA" .IX Header "PERSONALIZAÇÃO INTEGRADA" O módulo TeX pode ser personalizado com linhas começando com \fB% po4a:\fR. Essas linhas são interpretadas como comandos para o analisador. Os seguintes comandos são reconhecidos: .IP "\fB% po4a: command\fR \fIcomando1\fR \fBalias\fR \fIcomando2\fR" 4 .IX Item "% po4a: command comando1 alias comando2" Indica que os argumentos do \fIcomando1\fR deveriam ser tratados como os argumentos do comando \fIcomando2\fR. .IP "\fB% po4a: command\fR \fIcomando1\fR \fIparâmetros\fR" 4 .IX Item "% po4a: command comando1 parâmetros" Isso permite descrever em detalhes os parâmetros do comando \&\fIcomando1\fR. Essa informação será usada para verificar o número de argumentos e seus tipos. .Sp Você pode preceder o comando \fIcomando1\fR por .RS 4 .IP "um asterisco (\fB*\fR)" 4 .IX Item "um asterisco (*)" po4a vai extrair esse comando dos parágrafos (se ele estiver alocado no começo ou no fim de um parágrafo). Os tradutores vão, então, ter que traduzir os parâmetros que estão marcados como traduzíveis. .IP "um mais (\fB+\fR)" 4 .IX Item "um mais (+)" Assim como o asterisco, o comando será extraído se ele aparecer em uma extremidade de um bloco, mas os parâmetros não serão traduzidos separadamente. O tradutor terá que traduzir o comando concatenado a todos os seus parâmetros. Isso permite manter mais o contexto e é útil para comandos com palavras pequenas em parâmetro, o qual pode ter múltiplos significados (e traduções). .Sp Nota: neste caso, você não terá que especificar quais parâmetros são traduzíveis, mas po4a deve saber o tipo e número de parâmetros. .IP "um menos (\fB\-\fR)" 4 .IX Item "um menos (-)" Nesse caso, o comando não será extraído de qualquer bloco. Mas se ele aparece sozinho em um bloco, então apenas os parâmetros marcados como traduzíveis serão apresentados para o tradutor. Isso é útil para comandos de fonte. Esses comandos geralmente deveriam não ser separados de seu parágrafo (para manter o contexto), mas não há motivo para incomodar o tradutor com eles, se um conjunto de strings está incluso neste comando. .RE .RS 4 .Sp O argumento \fIparâmetros\fR é um conjunto de [] (para indicar um argumento opcional) ou {} (para indicar um argumento obrigatório). Você pode colocar um sublinhado (_) entre esses colchetes para indicar que o parâmetro deve ser traduzido. Por exemplo: % po4a: command *chapter [_]{_} .Sp Isso indica que o comando de capítulo possui dois parâmetros: um opcional (título curto) e um obrigatório, os quais devem ser traduzidos. Se você deseja especificar que o comando href tenha dois parâmetros obrigatórios, que você não deseja traduzir a \s-1URL\s0 (primeiro parâmetro), e que você não deseja que esse comando seja separado de seu parágrafo (o que permite que o tradutor mova o link na sentença), você pode usar: % po4a: command \-href {}{_} .Sp Neste caso, a informação indicando quais argumentos devem ser traduzidos é apenas usado se um parágrafo é composto apenas deste comando href. .RE .IP "\fB% po4a: environment\fR \fIambiente\fR \fIparâmetros\fR" 4 .IX Item "% po4a: environment ambiente parâmetros" Isso permite definir os parâmetros aceitos pelo ambiente \fIambiente\fR. Essa informação é posteriormente usada para verificar o número de argumentos do comando \ebegin e permite especificar quais deles devem ser traduzidos. A sintaxe do argumento \fIparâmetros\fR é a mesma da descrita para outros comandos. O primeiro parâmetro do comando \ebegin é o nome do ambiente. Este parâmetro não deve ser especificado na lista de parâmetros. Veja alguns parâmetros: % po4a: environment multicols {} % po4a: environment equation .Sp Quanto aos comandos, \fIambiente\fR pode ser precedido por um mais (+) para indicar que o comando \ebegin deve ser traduzido com todos os seus argumentos. .ie n .IP "\fB% po4a: separator\fR \fIambiente\fR \fB""\fR\fIexpressão_regular\fR\fB""\fR" 4 .el .IP "\fB% po4a: separator\fR \fIambiente\fR \fB``\fR\fIexpressão_regular\fR\fB''\fR" 4 .IX Item "% po4a: separator ambiente ""expressão_regular""" Indica que um ambiente deveria ser dividido de acordo com a expressão regular fornecida. .Sp A expressão regular é delimitada por aspas. Ela não deveria criar qualquer referência própria. Você deveria usar (?:) se você precisa de um grupo. Também pode ser necessário alguns caracteres de escapes. .Sp Por exemplo, o módulo LaTeX usa a expressão regular \*(L"(?:&|\e\e\e\e)\*(R" para traduzir separadamente cada célula de uma tabela (linhas são separadas por \&\*(L"\e\e\*(R" e células por \*(L"&\*(R"). .Sp A noção de ambiente é expandida ao tipo exibido no arquivo \s-1PO.\s0 Isso pode ser usado para dividir em \*(L"\e\e\e\e\*(R" no primeiro argumento obrigatório no comando title. neste caso, o ambiente é title{#1}. .IP "\fB% po4a: verbatim environment\fR \fIambiente\fR" 4 .IX Item "% po4a: verbatim environment ambiente" Indica que \fIambiente\fR é o ambiente literal (verbatim). Comentários e comandos serão ignorados neste ambiente. .Sp Se esse ambiente ainda não foi registrado, po4a vai considerar que ele não leva parâmetros. .SH "ESCREVENDO MÓDULOS DERIVADOS" .IX Header "ESCREVENDO MÓDULOS DERIVADOS" .IP "\fBpre_trans\fR" 4 .IX Item "pre_trans" .PD 0 .IP "\fBpost_trans\fR" 4 .IX Item "post_trans" .IP "\fBtranslate\fR" 4 .IX Item "translate" .PD Wrapper da tradução do Transtractor, com filtros pré e pós\-processamento. .Sp Comentários de um parágrafo são inseridos como um comentário no \s-1PO\s0 para a primeira string traduzida neste parágrafo. .IP "\fBget_leading_command\fR($buffer)" 4 .IX Item "get_leading_command($buffer)" Essa função retorna: .RS 4 .IP "Um nome de comando" 4 .IX Item "Um nome de comando" Se nenhuma comando for encontrado no começo do buffer fornecido, esta string estará vazia. Apenas comandos que podem ser separados são considerados. O hash \f(CW%separated_command\fR contém a lista destes comandos. .IP "Uma variante" 4 .IX Item "Uma variante" Isso indica se uma variante é usada. Por exemplo, um asterisco (*) pode ser adicionado ao final de comando de seções para especificar que eles deveriam não ser numerados. Nesse caso, este campo deveria conter \*(L"*\*(R". Se não houver variante, o campo é uma string vazia. .IP "Um vetor com tuplos (tipo de argumento, argumento)" 4 .IX Item "Um vetor com tuplos (tipo de argumento, argumento)" O tipo de argumento pode ser tanto \*(L"{\*(R" (para argumentos obrigatórios) ou \*(L"[\*(R" (para argumentos opcionais). .IP "O buffer restante" 4 .IX Item "O buffer restante" O resto do buffer após a remoção deste comando e seus argumentos. Se nenhum comando for encontrado, o buffer original não é afetado e é retornado neste campo. .RE .RS 4 .RE .IP "\fBget_trailing_command\fR($buffer)" 4 .IX Item "get_trailing_command($buffer)" O mesmo que \fBget_leading_command\fR, mas para comandos ao final de um buffer. .IP "\fBtranslate_buffer\fR" 4 .IX Item "translate_buffer" Traduz recursivamente um buffer separando comandos no início e no final (aqueles que devem ser traduzidos separadamente) do buffer. .Sp Se uma função é definida em \f(CW%translate_buffer_env\fR como o ambiente atual, essa função será usada para traduzir o buffer ao invés de \&\fBtranslate_buffer()\fR. .IP "\fBread\fR" 4 .IX Item "read" Sobrepõe o \fBread()\fR do Transtractor. .IP "\fBread_file\fR" 4 .IX Item "read_file" Lê recursivamente um arquivo, anexando arquivos incluídos que não estão listados no vetor \f(CW@exclude_include\fR. Arquivos incluídos são pesquisados usando o comando \fBkpsewhich\fR da biblioteca Kpathsea. .Sp Exceto pela parte de inclusão de arquivos, é uma cópia idêntica da leitura do Transtractor. .IP "\fBparse_definition_file\fR" 4 .IX Item "parse_definition_file" Subrotina para analisar um arquivo com diretivas do po4a (definições de novos comandos). .IP "\fBparse_definition_line\fR" 4 .IX Item "parse_definition_line" Analisa uma linha de definição na forma de \*(L"% po4a: \*(R". .Sp Veja a seção \fBPERSONALIZAÇÃO \s-1INTEGRADA\s0\fR para mais detalhes. .IP "\fBis_closed\fR" 4 .IX Item "is_closed" .PD 0 .IP "\fBdocheader\fR" 4 .IX Item "docheader" .PD .SH "FUNÇÕES INTERNAS usadas para escrever analisadores derivados" .IX Header "FUNÇÕES INTERNAS usadas para escrever analisadores derivados" Funções de ambiente e comandos levam os seguintes argumentos (em adição ao objeto \f(CW$self\fR): .IP "Um nome de comando" 4 .IX Item "Um nome de comando" .PD 0 .IP "Uma variante" 4 .IX Item "Uma variante" .IP "Um vetor de tuplos (tipo, argumento)" 4 .IX Item "Um vetor de tuplos (tipo, argumento)" .IP "O ambiente atual" 4 .IX Item "O ambiente atual" .PD .PP Os primeiros três argumentos são extraídos por get_leading_command ou get_trailing_command. .PP Funções de ambiente ou comandos retornam a tradução do comando com seus argumentos e um novo ambiente. .PP Funções de ambiente são chamadas quando um comando \ebegin for encontrado. Elas são chamadas com o comando \ebegin e seus argumentos. .PP O módulo TeX propõe apenas uma função de comando e uma função de ambiente: generic_command e generic_environment. .PP generic_command usa a informação especificada por register_generic_command ou adicionando definição ao arquivo TeX: % po4a: command \fIcomando1\fR \fIparâmetros\fR .PP generic_environment usa a informação especificada por register_generic_environment ou adicionando definição ao arquivo TeX: % po4a: environment \fIambiente\fR \fIparâmetros\fR .PP Ambas funções vai traduzir apenas os parâmetros que foram especificadas como traduzíveis (com uma \*(L"_\*(R"). generic_environment vai anexar o nome do ambiente à pilha de ambientes e generic_command vai anexar o nome do comando seguido por um identificador do parâmetro (como {#7} ou [#2]). .SH "ESTADO DESTE MÓDULO" .IX Header "ESTADO DESTE MÓDULO" Esse módulo precisa de mais testes. .PP Ele foi testado em um livro e com a documentação Python. .SH "LISTA DE TAREFAS" .IX Header "LISTA DE TAREFAS" .IP "Detecção automática de novos comandos" 4 .IX Item "Detecção automática de novos comandos" O módulo TeX poderia analisar os argumentos de novos comandos e tentar adivinhar o número de argumentos, seus tipos e se eles deveriam ser traduzidos. .IP "Tradução do separador de ambiente" 4 .IX Item "Tradução do separador de ambiente" Quando o \eitem é usado como um separador de ambiente, o argumento item é anexado a string seguinte. .IP "Alguns comandos devem ser adicionados à pilha de ambiente" 4 .IX Item "Alguns comandos devem ser adicionados à pilha de ambiente" Esses comandos deveriam ser especificados em duplas. Isso poderia permitir especificar comandos iniciando ou terminando um ambiente literal. .IP "Outros" 4 .IX Item "Outros" Vários outros pontos são marcados como \s-1TODO\s0 no código. .SH "ERROS CONHECIDOS" .IX Header "ERROS CONHECIDOS" Vários pontos são marcados como \s-1FIXME\s0 no código. .SH "VEJA TAMBÉM" .IX Header "VEJA TAMBÉM" \&\fBLocale::Po4a::LaTeX\fR\|(3pm), \&\fBLocale::Po4a::TransTractor\fR\|(3pm), \&\fBpo4a\fR\|(7) .SH "AUTORES" .IX Header "AUTORES" .Vb 1 \& Nicolas François .Ve .SH "COPYRIGHT E LICENÇA" .IX Header "COPYRIGHT E LICENÇA" Copyright © 2004, 2005 Nicolas FRANÇOIS . .PP Esse programa é um software livre; você pode redistribuí\-lo e/ou modificá\-lo sob os termos da \s-1GPL\s0 (veja o arquivo \s-1COPYING\s0).