2010-01-11 9 views
11

Comment préparer un document Latex avec une traduction ... J'ai besoin d'un document multilingue. Il devrait être quelque chose comme:Document multilingue en Latex

\section{pl:Costam; en:Something} 

Je voudrais rendre en polonais ou en anglais ...

+1

Il y a les [ ' translations'] (http://www.ctan.org/pkg/translations) et le paquetage ['translator'] (http://www.ctan.org/pkg/beamer) (partie du paquet' beamer') qui peut ou peut ne pas être utile pour la tâche en cours – cgnieder

Répondre

2

J'ai la solution!

\newboolean{eng} 
\setboolean{eng}{false} 
\newboolean{pol} 
\setboolean{pol}{true} 
\newboolean{rus} 
\setboolean{rus}{false} 

\newcommand{\lang}[3] 
{ 
    \ifthenelse{\boolean{eng}}{#1}{}\ifthenelse{\boolean{pol}}{#2}{}\ifthenelse{\boolean{ger}}{#3}{} 
} 

Utilisation:

\lang{English}{Polski}{Deutch} 
+3

Cette réponse a) manque l'information où 'newboolean' et' ifthenelse' sont définis et b) introduit deux espaces parasites dans la définition de '\ lang'. – cgnieder

1

Avez-vous envisagé la parallel package? Vérifiez le docs (PDF link) pour voir si elle est appropriée à vos besoins.

Vous pouvez voir d'autres options par searching CTAN for "parallel text" (je n'ai pas eu beaucoup de chance avec "plusieurs langues" et "traduction").

+0

J'ai besoin d'un outil qui génère des documents distincts dans différentes langues ... – Etam

1

Vous pouvez le faire en utilisant des conditions, par ex. a \ifdef s. Avec des macros appropriées, cela ne doit pas être complètement horrible à lire.

Il vaut mieux utiliser un outil de localisation, tel qu'un éditeur XLIFF. Jetez un oeil à the XLIFF tools page. La grande force de cette route est les slots XLIFF directement dans les outils de traducteurs standard comme la mémoire de traduction.

9

Si tout le reste échoue, vous pouvez aller pour un encore plus basique, presque injurieuse muet approche:

\newcommand{\dumblang}[2]{{#1}} 

Cela définit une commande avec deux arguments ([2]) et crache le premier ({#1}).

Ainsi, par exemple, vous pouvez avoir ...

\usepackage[\dumblang{english}{italian}]{babel} 

%snip 

\section{\dumblang{Introduction}{Introduzione}} 
\dumblang{Your introduction goes here!}{Scrivi qua la tua introduzione!} 

... et quand vous voulez le document en italien, vous pouvez simplement changer \dumblang à:

\newcommand{\dumblang}[2]{{#2}}