如何向外部翻译人员提供 LaTeX 文档?

如何向外部翻译人员提供 LaTeX 文档?

我负责为公司编写产品文档,我想用 LaTeX 来完成。如何处理外部翻译?

目前我的公司使用Word编写产品的英文文档,然后将其发送.docx给外部翻译:整个过程非常简单。

如果我改用 LaTeX,我该如何管理文档的外部翻译?我担心向翻译人员提供原始源代码(没有任何详细说明)可能会导致混乱和错误,但向他们提供编译后的源代码.pdf并要求他们添加带有 pdf 注释的翻译肯定太费力了,我无法将翻译后的文本重新插入源代码中。有折衷方案吗?

一种可能的方法:我可以编写一个脚本,生成一个.xlsx文件,其中每行包含一行源代码.tex,使用 Excel 条件格式突出显示不翻译的行(例如以 开头的行),或混合了 LaTeX 语法和要翻译的文本的行,并要求翻译人员将翻译插入第二列。之后,我可以编写另一个脚本,将和翻译的文本\includegraphics结合起来并生成一个返回。.xlsx.tex

答案1

一种可能的方法是使用命令构建脚本。每个命令都必须加载单独的内容,源代码可以放在 csv 文件中,列有语言代码 de|en|fr

使用 datatool 可以做到这一点,但这种方法很慢。发送 csv 文件可以轻松完成,而且没有人知道您通过 latex 处理此内容...

\documentclass{scrreprt}

\usepackage{etex}
\reserveinserts{28}
\usepackage{morewrites}
\usepackage[english,german]{babel} % English language
\usepackage[T1]{fontenc} % Use 8-bit encoding that has 256 glyphs
\usepackage[utf8]{inputenc} % Uses the utf8 input encoding                   
\usepackage{datatool}
\usepackage{fp}
\usepackage{filecontents}

\newcommand{\fetchinfo}[3]{%
   % Get the column index for the column labelled ``c1''
   \DTLgetcolumnindex{\columnidx}{#3}{c1}%
   % Get the row where that column matches the given text:
   \DTLgetrowindex{\rowidx}{#3}{\columnidx}{#2}%
   % Set it as the current row
   \dtlgetrow{#3}{\rowidx}%
   % Get the index for the required column
   \DTLgetcolumnindex{\columnidx}{#3}{c\langselectkey}%
   \dtlgetentryfromcurrentrow{#1}{\columnidx}%
}


\begin{filecontents*}{cvdatabase-A.csv}
LANGID;CATA;CATB;MIN;MAX;ADDA;ADDB;1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18
Langaugecode;SYSTEM;;2;3;;;DE;EN;ESP;SRB;SLO;;;;;;;;;;;;;
cmdAAAA;Content;Chapter;3;10;Main;;"German Text";"English Text";"ESP";"SRB";"SLO";;;;;;;;;;;;; 
\end{filecontents*} 


    \FPupn{langselect}{1} % take 1 for german, 2 for english, 3, add more languages to the csv file
    \DTLsetseparator{;}
    \FPupn{langselectkey}{0}

    \FPupn{langselectkey}{langselect 7 + 0 round}
    \typeout{CSV-A Load Start}
    \DTLifdbexists{cva}{\DTLdeletedb{cva}}{ }
    \DTLloadrawdb[keys={c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16,c17,c18,c19,c20,c21,c22,c23,c24,c25}]{cva}{cvdatabase-A.csv}
    \typeout{CSV-A Load finished}
    \typeout{pause}
    % \input{../dblaa}


\fetchinfo{\cmdAAAA}{cmdAAAA}{cva}

\begin{document}
\selectlanguage{german}


\cmdAAAA

You have to replace each text to a command and add the command to the csv file, also you have to load it via fetchinfo....



\end{document}

正如上面提到的那样,它会非常慢......

答案2

我为每个文本块定义一个新的空命令,例如\newcommand{\descript}{}在主文件中,

然后我将我想要显示的文本放入一个文件中:例如 german.tex,其中我有

\renewcommand{\descript}{
Das ist der Text.
}

在主文件中,调用\input{german.tex} 然后在适当的位置\descript

您可以更进一步,将布局(列等)分离为命令或文件。然后您的主文件最终看起来会像这样,它会在同一个布局中依次打印所有语言(因为布局调用了语言文件中定义的命令):

\input{german.tex}
\input{layout.tex}
\input{french.tex}
\input{layout.tex}

相关内容