Locale::Po4a::TeX(3pm) | Outils po4a | Locale::Po4a::TeX(3pm) |
Locale::Po4a::TeX - Convertir les documents TeX (ou dérivés) depuis ou vers des fichiers PO
L’objectif du projet po4a [PO for anything — PO pour tout] est de simplifier la traduction (et de façon plus intéressante, la maintenance des traductions) en utilisant les outils gettext dans des domaines pour lesquels ils n’étaient pas destinés, comme la documentation.
Locale::Po4a::TeX est un module qui permet d’aider à traduire des documents TeX dans d’autres langues. Il peut aussi servir de base pour créer d’autres modules pour des documents basés sur le format TeX.
Les utilisateurs devraient plutôt utiliser le module LaTeX, qui hérite du module TeX et contient les définitions des commandes LaTeX les plus courantes.
Ce module peut être utilisé directement pour traiter des documents dans un format générique TeX. Il découpera le document en blocs plus petits (paragraphes, blocs verbatim, ou des éléments encore plus petits comme les titres ou index).
Il y a quelques options (décrites dans la section suivante) qui peuvent permettre de paramétrer ce comportement. Si ça ne correspond pas au format de votre document, vous êtes encouragé à écrire votre propre module dérivé de celui-ci, pour décrire en détails votre format. Consultez la section ÉCRITURE DE MODULES DÉRIVÉS plus bas, pour un descriptif de la procédure.
Ce module peut également être configuré à l’aide de lignes commençant par « % po4a: » dans le fichier TeX. Ce processus est décrit dans la section PERSONNALISATION EN LIGNE.
Voici les options particulières à ce module :
Notez qu’il y a une différence entre un environnement sans remise en forme et un environnement verbatim. Il n’y a pas d’analyse des commandes et des commentaires dans les blocs verbatim.
Si cet environnement n’était pas déjà enregistré, po4a considérera que cet environnement ne prend pas de paramètre.
Si cet environnement n’était pas déjà enregistré, po4a considérera que cet environnement ne prend pas de paramètre.
Utilisez ces options pour remplacer le comportement par défaut des commandes définies.
Le module TeX peut être personnalisé à l’aide de lignes commençant par % po4a:. Ces lignes sont interprétées comme des commandes pour l’analyseur. Les commandes suivantes sont reconnues :
Vous pouvez précéder la commande commande1 par :
Note : dans ce cas, vous n’avez pas à préciser quels paramètres sont traduisibles, mais po4a doit connaître les types et le nombre de paramètres.
Le paramètre paramètres est une suite de []
(pour indiquer un paramètre optionnel) ou {} (pour indiquer un
paramètre obligatoire). Vous pouvez placer un tiret-bas (_) entre ces
crochets ou accolades pour indiquer que ce paramètre doit être
traduit. Par exemple:
% po4a: command *chapter [_]{_}
Ceci indique que la commande chapter a deux paramètres : un
optionnel (titre court) et un obligatoire, qui doivent tous deux être
traduits. Si vous voulez indiquer que la commande href a deux
paramètres obligatoires, que vous ne voulez pas traduire l’URL
(le premier paramètre), et que vous ne voulez pas que cette commande
soit séparée d’un paragraphe (ce qui permet au
traducteur de déplacer le lien dans une phrase), vous pouvez utiliser
:
% po4a: command -href {}{_}
Dans ce cas, l’information indiquant quels paramètres doivent être traduits n’est utilisée que si un paragraphe n’est composé que de cette commande.
Comme pour les commandes, env peut être précédé d’un plus (+) pour indiquer que la commande \begin doit être traduite avec tous ses paramètres.
L’expression rationnelle doit être délimitée par des guillemets. Elle ne doit pas créer de rétro-référence. Vous devriez utiliser (?:) si vous avez besoin d’un groupe. Elle peut aussi nécessiter des caractères d’échappement.
Par exemple, le module LaTeX utilise l’expression rationnelle "(?:&|\\\\)" pour traduire séparément chaque cellule d’un tableau (les lignes sont séparées par '\\' et les cellules par '&').
La notion d’environnement est étendue au type affiché dans le fichier PO. Ceci peut être utilisé pour réaliser un découpage suivant "\\\\" dans le premier paramètre obligatoire de la commande title. Dans ce cas, l’environnement à utiliser est title{#1}.
Si cet environnement n’était pas déjà enregistré, po4a considérera que cet environnement ne prend pas de paramètre.
Les commentaires d’un paragraphe sont insérés comme commentaires au fichier PO pour la première chaîne de ce paragraphe.
Si une fonction est définie dans %translate_buffer_env pour l’environnement en cours, cette fonction sera utilisée pour traduire le bloc au lieu d’utiliser translate_buffer().
Mis à part l’insertion des fichiers, c’est un simple copier-coller de la fonction read du Transtractor.
Consultez la section PERSONNALISATION EN LIGNE pour plus de détails.
Les fonctions pour les commandes et les environnements prennent, en plus de l’objet $self, les paramètres suivants :
Les 3 premiers paramètres sont extraits par get_leading_command ou get_trailing_command.
Les fonctions pour les environnements ou les commandes renvoient la traduction de la commande avec ses paramètres et le nouvel environnement.
Les fonctions pour les environnements sont appelées lorsqu’une commande \begin est trouvée. Elles sont appelées avec la commande \begin et ses paramètres.
Le module TeX ne fournit qu’une fonction pour les commandes et une fonction pour les environnements : generic_command et generic_environment.
generic_command utilise les informations spécifiées
par register_generic_command ou par une définition dans le fichier
TeX :
% po4a: command commande1 paramètres
generic_environment utilise les informations
spécifiées par register_generic_environment ou par une
définition dans le fichier TeX :
% po4a: commande commande1 paramètres
Ces deux fonctions ne traduisent que les paramètres qui ont été indiqués comme étant à traduire (avec un « _ »). generic_environment ajoutera le nom de l’environnement à la pile des environnements et generic_command ajoutera le nom de la commande suivi par un identifiant du paramètre (comme {#7} ou [#2]).
Ce module a besoin de plus de tests.
Il a été testé avec un livre et la documentation Python.
Divers points sont marqués FIXME dans les sources.
Locale::Po4a::LaTeX(3pm), Locale::Po4a::TransTractor(3pm), po4a(7)
Nicolas François <nicolas.francois@centraliens.net>
Martin Quinson (mquinson#debian.org)
Copyright © 2004, 2005 Nicolas FRANÇOIS <nicolas.francois@centraliens.net>.
Ce programme est un logiciel libre ; vous pouvez le copier et / ou le modifier sous les termes de la GPL (voir le fichier COPYING).
2023-01-03 | Outils po4a |