LOCALE::PO4A::TEX.3PM(1) User Contributed Perl Documentation NOME Locale::Po4a::TeX - converte documentos TeX e derivados 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::TeX e um modulo para ajudar a traducao de documentos TeX para outros idiomas. Ele tambem pode ser usado como uma base para construir modulos para documentos baseados em TeX. Usuarios provavelmente deveriam usar o modulo LaTeX, o qual herdou do modulo TeX e contem as definicoes dos comandos comuns do LaTeX. TRADUZINDO COM PO4A::TEX Esse modulo pode ser usado diretamente para lidar com documentos TeX genericos. Ele vai dividir seu documento em blocos menores (paragrafos, blocos de texto literais ou ate mesmo menores, como titulos e indices). Ha algumas opcoes (descritas na proxima secao) que podem personalizar este comportamento. Se isso nao se adequar ao formato do seu documento, encorajamos voce a escrever seu proprio modulo derivado deste, para descrever os detalhes do seu formato. Veja a secao abaixo ESCREVENDO MODULOS DERIVADOS, para a descricao do processo. Esse modulo tambem pode ser personalizado por linhas iniciais com "% po4a:" no arquivo TeX. Esse processo e descrito na secao PERSONALIZACAO INTEGRADA. OPCOES ACEITAS POR ESTE MODULO Estas sao as opcoes especificas deste modulo: debug Ativa depuracao em alguns mecanismos internos deste modulo. Use a fonte para saber quais partes podem ser depuradas. no_wrap Lista separada por virgula dos ambientes que nao deveriam ser redimensionado. Note que ha uma diferenca entre ambientes literais e no_wrap. Nao ha analise de comentarios e comandos nos blocos de texto literais. Se esse ambiente ainda nao foi registrado, po4a vai considerar que ele nao leva parametros. exclude_include Lista separada por dois-pontos (:) dos arquivos que nao deveria ser incluidos por \input e \include. definitions O nome de um arquivo contendo definicoes para o po4a, como definido na secao PERSONALIZACAO INTEGRADA. Voce pode usar esta opcao se nao for possivel colocar as definicoes no documento que esta sendo traduzido. verbatim Lista separada por virgula dos ambientes que deveriam ser considerados como literais. Se esse ambiente ainda nao foi registrado, po4a vai considerar que ele nao leva parametros. Use essas opcoes para sobrescrever o comportamento padrao dos comandos definidos. PERSONALIZACAO INTEGRADA O modulo TeX pode ser personalizado com linhas comecando com % po4a:. Essas linhas sao interpretadas como comandos para o analisador. Os seguintes comandos sao reconhecidos: % po4a: command comando1 alias comando2 Indica que os argumentos do comando1 deveriam ser tratados como os argumentos do comando comando2. % po4a: command comando1 parametros Isso descreve em detalhes os parametros do comando comando1. Essa informacao sera usada para verificar o numero de argumentos e seus tipos. Voce pode preceder o comando comando1 por um asterisco (*) po4a vai extrair esse comando dos paragrafos (se ele estiver alocado no comeco ou no fim de um paragrafo). Os tradutores vao, entao, ter que traduzir os parametros que estao marcados como traduziveis. um mais (+) Assim como o asterisco, o comando sera extraido se ele aparecer em uma extremidade de um bloco, mas os parametros nao serao traduzidos separadamente. O tradutor tera que traduzir o comando concatenado a todos os seus parametros. Isso mantem mais o contexto e e util para comandos com palavras pequenas em parametro, o qual pode ter multiplos significados (e traducoes). Nota: neste caso, voce nao tera que especificar quais parametros sao traduziveis, mas po4a deve saber o tipo e numero de parametros. um menos (-) Nesse caso, o comando nao sera extraido de qualquer bloco. Mas se ele aparece sozinho em um bloco, entao apenas os parametros marcados como traduziveis serao apresentados para o tradutor. Isso e util para comandos de fonte. Esses comandos geralmente deveriam nao ser separados de seu paragrafo (para manter o contexto), mas nao ha motivo para incomodar o tradutor com eles, se um conjunto de strings esta incluso neste comando. O argumento parametros e um conjunto de [] (para indicar um argumento opcional) ou {} (para indicar um argumento obrigatorio). Voce pode colocar um sublinhado (_) entre esses colchetes para indicar que o parametro deve ser traduzido. Por exemplo: % po4a: command *chapter [_]{_} Isso indica que o comando de capitulo possui dois parametros: um opcional (titulo curto) e um obrigatorio, os quais devem ser traduzidos. Se voce deseja especificar que o comando href tenha dois parametros obrigatorios, que voce nao deseja traduzir a URL (primeiro parametro), e que voce nao deseja que esse comando seja separado de seu paragrafo (o que permite que o tradutor mova o link na sentenca), voce pode usar: % po4a: command -href {}{_} Neste caso, a informacao indicando quais argumentos devem ser traduzidos e apenas usado se um paragrafo e composto apenas deste comando href. % po4a: environment ambiente parametros Isso define os parametros aceitos pelo ambiente ambiente e especifica quais serao traduzidos. Essa informacao e posteriormente usada para verificar o numero de argumentos do comando \begin. A sintaxe do argumento parametros e a mesma da descrita para outros comandos. O primeiro parametro do comando \begin e o nome do ambiente. Este parametro nao deve ser especificado na lista de parametros. Veja alguns exemplos: % po4a: environment multicols {} % po4a: environment equation Quanto aos comandos, ambiente pode ser precedido por um mais (+) para indicar que o comando \begin deve ser traduzido com todos os seus argumentos. % po4a: separator ambiente "expressao_regular" Indica que um ambiente deveria ser dividido de acordo com a expressao regular fornecida. A expressao regular e delimitada por aspas. Ela nao deveria criar qualquer referencia propria. Voce deveria usar (?:) se voce precisa de um grupo. Tambem pode ser necessario alguns caracteres de escapes. Por exemplo, o modulo LaTeX usa a expressao regular "(?:&|\\\\)" para traduzir separadamente cada celula de uma tabela (linhas sao separadas por "\\" e celulas por "&"). A nocao de ambiente e expandida ao tipo exibido no arquivo PO. Isso pode ser usado para dividir em "\\\\" no primeiro argumento obrigatorio no comando title. neste caso, o ambiente e title{#1}. % po4a: verbatim environment ambiente Indica que ambiente e o ambiente literal (verbatim). Comentarios e comandos serao ignorados neste ambiente. Se esse ambiente ainda nao foi registrado, po4a vai considerar que ele nao leva parametros. ESCREVENDO MODULOS DERIVADOS pre_trans post_trans add_comment Adiciona uma string como um comentario a ser adicionado em torno do proximo elemento traduzido. Isso e principalmente util para o modulo texinfo, ja que os comentarios sao tratados automaticamente no TeX. translate Wrapper da traducao do Transtractor, com filtros pre e pos-processamento. Comentarios de um paragrafo sao inseridos como um comentario no PO para a primeira string traduzida neste paragrafo. get_leading_command($buffer) Essa funcao retorna: Um nome de comando Se nenhuma comando for encontrado no comeco do buffer fornecido, esta string estara vazia. Apenas comandos que podem ser separados sao considerados. O hash %separated_command contem a lista destes comandos. Uma variante Isso indica se uma variante e usada. Por exemplo, um asterisco (*) pode ser adicionado ao final de comando de secoes para especificar que eles deveriam nao ser numerados. Nesse caso, este campo deveria conter "*". Se nao houver variante, o campo e uma string vazia. Um vetor com tuplos (tipo de argumento, argumento) O tipo de argumento pode ser tanto "{" (para argumentos obrigatorios) ou "[" (para argumentos opcionais). O buffer restante O resto do buffer apos a remocao deste comando e seus argumentos. Se nenhum comando for encontrado, o buffer original nao e afetado e e retornado neste campo. get_trailing_command($buffer) O mesmo que get_leading_command, mas para comandos ao final de um buffer. translate_buffer Traduz recursivamente um buffer separando comandos no inicio e no final (aqueles que devem ser traduzidos separadamente) do buffer. Se uma funcao e definida em %translate_buffer_env como o ambiente atual, essa funcao sera usada para traduzir o buffer ao inves de translate_buffer(). read Sobrepoe o read() do Transtractor. read_file Le recursivamente um arquivo, anexando arquivos incluidos que nao estao listados no vetor @exclude_include. Arquivos incluidos sao pesquisados usando o comando kpsewhich da biblioteca Kpathsea. Exceto pela parte de inclusao de arquivos, e uma copia identica da leitura do Transtractor. parse_definition_file Subrotina para analisar um arquivo com diretivas do po4a (definicoes de novos comandos). parse_definition_line Analisa uma linha de definicao na forma de "% po4a: ". Veja a secao PERSONALIZACAO INTEGRADA para mais detalhes. is_closed parse docheader FUNCOES INTERNAS usadas para escrever analisadores derivados Funcoes de ambiente e comandos levam os seguintes argumentos (em adicao ao objeto $self): Um nome de comando Uma variante Um vetor de tuplos (tipo, argumento) O ambiente atual Os primeiros tres argumentos sao extraidos por get_leading_command ou get_trailing_command. Funcoes de ambiente ou comandos retornam a traducao do comando com seus argumentos e um novo ambiente. Funcoes de ambiente sao chamadas quando um comando \begin for encontrado. Elas sao chamadas com o comando \begin e seus argumentos. O modulo TeX propoe apenas uma funcao de comando e uma funcao de ambiente: generic_command e generic_environment. generic_command usa a informacao especificada por register_generic_command ou adicionando definicao ao arquivo TeX: % po4a: command comando1 parametros generic_environment usa a informacao especificada por register_generic_environment ou adicionando definicao ao arquivo TeX: % po4a: environment ambiente parametros Ambas funcoes vai traduzir apenas os parametros que foram especificadas como traduziveis (com uma "_"). generic_environment vai anexar o nome do ambiente a pilha de ambientes e generic_command vai anexar o nome do comando seguido por um identificador do parametro (como {#7} ou [#2]). ESTADO DESTE MODULO Esse modulo precisa de mais testes. Ele foi testado em um livro e com a documentacao Python. LISTA DE TAREFAS Deteccao automatica de novos comandos O modulo TeX poderia analisar os argumentos de novos comandos e tentar adivinhar o numero de argumentos, seus tipos e se eles deveriam ser traduzidos. Traducao do separador de ambiente Quando o \item e usado como um separador de ambiente, o argumento item e anexado a string seguinte. Alguns comandos devem ser adicionados a pilha de ambiente Esses comandos deveriam ser especificados em duplas. Isso pode ser usado para especificar comandos iniciando ou terminando um ambiente literal. Outros Varios outros pontos sao marcados como TODO no codigo. ERROS CONHECIDOS Varios pontos sao marcados como FIXME no codigo. VEJA TAMBEM Locale::Po4a::LaTeX(3pm), Locale::Po4a::TransTractor(3pm), po4a(7) AUTORES Nicolas Francois COPYRIGHT E LICENCA Copyright (C) 2004, 2005 Nicolas FRANCOIS . 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::TEX.3PM(1)