例如,我有一份手稿将创建一个德语 PDF 文件和一个英语 PDF 文件。
我的想法是它应该像 Java 中的 i18n 一样使用,因此我为文本块或句子设置一个键,并为每种语言设置一个语言文件。例如:
\documentclass[a4paper,12pt]{scrartcl}
\usepackage[utf8]{inputenc}
\begin{document}
\i18n{hello.world.text}
\end{document}
这将创建两个文档,其中一个包含文本你好世界以及一个包含你好世界。
我在这个主题上发现的所有内容都是在同一个文档中使用多种语言,但这不是我想要的。
答案1
这听起来像我在编辑国际语言学奥林匹克竞赛的多语言问题集时所做的事情。它需要一个主文件,其中所有文本块都被控制序列替换(如\greeting, \universe!
),几个词典文件(每种语言一个),以各自的方式定义控制序列(例如,德语的词典文件为\def\greeting{Hallo} \def\universe{Welt}
),以及同样多的 shell 文件,每个文件都输入 Babel 所需的设置、其语言的词典和主文件。
一个稍微大一点的例子:
英语词典:
\def \ThelgVai{Vai}
\def \ThelgFar{Faroese}
\def \belongsto #1#2{#1 belongs to the #2}
\def \toCMande{Central group of the Mande language family}
\def \toNGerma{Northern subgroup of the Germanic languages}
\def \spokenca #1#2{It is spoken by approx.\ #1 people #2}
\def \inLbrSle{in Liberia and Sierra Leone}
\def \iFaroetc{in the Faroe Islands and elsewhere}
德语字典:
\def \ThelgVai{Vai}
\def \ThelgFar{Färöische}
\def \belongsto #1#2{Das #1 gehört zur #2}
\def \toCMande{zentralen Gruppe der Mande-Sprachfamilie}
\def \toNGerma{nordischen Untergruppe der germanischen Sprachen}
\def \spokenca #1#2{Es wird von ungefähr #1 Menschen #2 gesprochen}
\def \inLbrSle{in Liberia und Sierra Leone}
\def \iFaroetc{auf den Färöern und anderswo}
主源:
\belongsto {\ThelgVai}{\toCMande}. \spokenca{105\,000}{\inLbrSle}.
[…]
\belongsto {\ThelgFar}{\toNGerma}. \spokenca{48\,000}{\iFaroetc}.