2010-01-11 13 views
11

cómo prepara el documento de látex con una traducción ... Necesito 1 documento en varios idiomas. Debe ser algo así como:documento en varios idiomas en Latex

\section{pl:Costam; en:Something} 

Entonces me gustaría hacerla en polaco o Inglés ...

+1

Hay la [ ' translations'] (http://www.ctan.org/pkg/translations) package y el paquete ['translator'] (http://www.ctan.org/pkg/beamer) (parte del paquete' beamer') que puede o no ser útil para la tarea en cuestión – cgnieder

Respuesta

2

¡Tengo la solución!

\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}{} 
} 

Uso:

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

Esta respuesta a) omite la información donde '\ newboolean' y' \ ifthenelse' están definidos yb) introduce _dos espacios espurios_ en la definición de '\ lang'. – cgnieder

1

Puede hacer esto usando condicionales, p. Ej. a \ifdef s. Con las macros apropiadas, esto no tiene por qué ser completamente horrible de leer.

Mucho mejor sería utilizar una herramienta de localización, como un editor XLIFF. Eche un vistazo al the XLIFF tools page. La gran fortaleza de seguir esta ruta son las ranuras XLIFF directamente en herramientas de traducción estándar como la memoria de traducción.

9

Si todo lo demás falla, puede ir a una aún más básico, casi insultante mudo aproximación:

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

Esto define un comando con dos argumentos ([2]) y escupe el primero ({#1}).

Así, por ejemplo, puede tener ...

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

%snip 

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

... y cuando desea que el documento en italiano, sólo puede cambiar a \dumblang:

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