Latex中的多语言文档

17

如何准备带有翻译的Latex文档?我需要一个多语言文档,类似于:

\section{pl:Costam; en:Something}

然后我想用波兰语或英语呈现它...


2
translations包和translator包(beamer捆绑包的一部分),可能对手头的任务有所帮助。 - cgnieder
在tex.stackexchange上有一个类似的问题,其中有一些有用的答案。https://tex.stackexchange.com/q/60781/235101 - Philip Z.
5个回答

15

如果其他方法都失败了,你可以采用更基本、甚至有点侮辱智商的方法:

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

这定义了一个带有两个参数([2])的命令,并输出第一个({#1})。

例如,您可以有...

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

%snip

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

......当您希望将文档翻译成意大利语时,只需将\dumblang更改为:


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

简单而天才。 - Max N


3

2
你可以使用条件语句,例如\ifdef。通过适当的宏定义,这种方法并不难读。
更好的方法是使用本地化工具,例如 XLIFF 编辑器。请查看XLIFF 工具页面。这种方法的优点是,XLIFF 可直接插入标准翻译工具,如翻译记忆库。

1

我有解决方案!

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

使用方法:

\lang{English}{Polski}{Deutch}

5
这个答案 a) 没有提供 \newboolean\ifthenelse 定义的信息,b) 在定义 \lang 时引入了两个错误空格。请注意修改这些问题并保持原意,同时尽可能让内容更加易懂。 - cgnieder

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接