教科书等中的源代码是否应该翻译?


16

几周前,我的课被分配翻译成葡萄牙语Real World Haskell。在翻译文本和注释时,我开始怀疑我是否也应该按照教师的建议翻译代码。例如:

数据BookInfo = Book Int字符串[String]
              衍生节目

会成为

数据InfoLivro = Livro Int字符串[String]
               衍生节目

由于我还没有阅读过任何与葡萄牙语有关的软件书籍,因此,我不知道这是否是常见的做法,也不知道是否应该这样做。最后,代码是一种混合语言(也许Haskell中的示例不是一个很好的例子,因为您可以像那样快速创建同义词type CadeiaDeCaracteres = String,但是您明白了)。因此,无论您多么努力,都没有关系,您必须依靠读者以前的经验来使用某种基本的英语单词。

知道这一点,我真的看不出翻译代码的意义,因为我们在编码生涯的早期就学习了它应该以通用语言编写。但是,如果需要翻译周围的文本(例如注释和书中的文本本身),那么在这件事上有什么可能和可行的?您能为我提供一些操作指导吗?


9
指导老师希望您从中学到什么?是的,您可能会学到一些有关Haskell的知识,但这听起来似乎主要是对您的英语翻译技能的考验。他是否只是想为将来的课程提供翻译,并且他认为浪费这堂课的所有学生的时间是实现这一目标的方法?我敢打赌:您将学到的就是为什么翻译是专家最好完成的专业领域。
多里(Dori)2010年


@Dori我完全同意。可悲的是,这就是我大学的工作方式,至少在CS领域如此。
拉帕里亚

您应该告诉他这样的话:“”“教授,请重新发言。Eupiriririadormir com suamãedo que fazer isso。”“
乔布

Answers:


13

我认为没有。大多数程序员无论是否愿意都被迫学习英语,如今,它已成为软件界的通用语言

但是,以我的经验,由作者使用一种较强大的语言撰写的书有这样做的趋势-到目前为止,我已经看到德语,法语和俄语在这本书中的实践(嗯,俄语与一种,因为它们也使用不同的字母)。根据经验,这取决于该国对英语的依赖程度

文本当然是翻译的,较大的注释(也可以更详细地描述程序的运行),然后是较稀有的较小的注释和变量名。我也看到了变量名被翻译的情况,但是用英语留下了较小的注释。但是我相信作者在这种情况下指望他的听众掌握有效的英语知识。

抱歉,这不能解决您的难题,但是在这一问题上还没有达成共识:-/


11

我是巴西人[我们在这里说葡萄牙语],当我可以选择原始版本还是翻译版本时,我总是选择原始版本,因为几乎每一本书都是翻译给非程序员的,因此命令和表达式会丢失翻译后的原始含义。

想要英语书籍的另一个原因是,网络上的所有内容(或最好的东西,例如本网站)都是用英语编写的,因此您将熟悉英语术语,并且能够更好地理解其他人的代码... [因为一个好的程序员至少要用我的观点才能用英语编码]

如果您需要阅读葡萄牙语[或其他语言]的书籍,请首选使用该语言[未翻译]撰写的书籍。

明确说明:如果您要翻译该书,请尝试将所有代码都保留为英文[注释可以翻译,但不能翻译vars或funcs],也不要尝试将“ array”之类的内容翻译为“ arranjo”或'mouse'到'rato'[至少我想使用英文术语,葡萄牙人更喜欢第二个术语]。


3
+1表示需要这三个方面的专家(源语言,目标语言,编程)
Frank Shearar 2010年

2

作为非英语母语者,我不喜欢翻译后的代码。

  1. 建立良好的实践。作为专业人员,不仅英语是该领域的主要语言,而且背景不同的人也共享并使用相同的代码。用另一种语言编写代码极大地减少了可以使用您的代码的人员-我对用另一种语言编写的一些代码感到很开心,这太糟糕了。那么,为什么不鼓励良好的习惯呢?

  2. 看起来很丑。大多数编程语言都使用英语中的关键字,并且通过很好的标识符选择,阅读程序可能是接近自然语言的一种体验。除非您使用其他语言作为标识符,否则将使其类似于同时阅读两种语言。

  3. 我认为这没有太大帮助。即使对于不讲英语的人,在常规程序中用于标识符的英语也非常简单,而且可以很快地学习。


2

反对翻译代码示例的一个好处是,如果这样做,您将必须对其进行测试,因为翻译后的代码示例与原始代码示例一样是正确的。

测试工作是否包括在翻译成本中?我想在大多数情况下不是。

如果您不测试翻译后的代码,则可能会冒着代码破裂或不正确的风险,从而损害翻译后的材料和原始材料的声誉。

如果不想承担测试代码示例的麻烦,则应仅翻译注释,而不以任何方式更改代码。

要考虑的另一件事是,原始作者很可能具有代码库,也许是一个完整编译的完整应用程序或库。从这样的代码库中提取了代码示例,并在整本书中进行了介绍。您将不需要这些,因此在翻译了代码示例之后,您可能最终得到的代码示例在翻译的书中由于书中不同部分的不同翻译决定而相互矛盾,而在原书中,不是因为它们是从相同的代码库中提取的。


0

除了英语,我不会说其他语言。(好吧,我在高中时是拉丁语。如果我去过拉丁美洲,会很有用。:-)在这种背景下,我会说:

正如其他人指出的那样,网络上和书籍中有关编程的很多信息都是英语的,因此如果您学习英语,肯定会对您有所帮助。

某些计算机语言使用很多英语单词,例如Visual Basic。其他人大多使用符号,例如C / C ++ / C#。因此,如果要编程,就必须学习一些英语。但是我不认为很多。IF,WHILE,RETURN等。取决于语言,可能是10或20个单词到几十个单词。Visual Basic是我能想到的最冗长的语言,我刚刚检查了一个列表,通过快速计数,它大约有160个保留字,但是其中有很多重复项。就像END和WHILE,然后END WHILE一样被列为三个单独的“单词”。我可以看到这对于不讲英语的人来说很不方便,但是这些词的使用含义通常与它们的常见英语含义之间没有多少联系,所以我认为在很多情况下,对于非英语使用者而言,这比英语使用者要难得多。就像,对于说英语的新程序员来说,对于说葡萄牙语的新程序员而言,HANDLER或CAST的含义可能不那么明显。如果这些事情中的某些事情被英语中没有意义的单词所调用,比如说不是说CAST,而是说FOOBAR,那会使我学习编程变得更加困难吗?我怀疑这会有很大的不同。那会使我更难学习编程吗?我怀疑这会有很大的不同。那会使我更难学习编程吗?我怀疑这会有很大的不同。

您提到有些语言可以选择以一种或另一种方式为关键字定义替代词。因此,可以的,您可以将自己语言中的单词定义为英语关键字的同义词。我不会 现在,您的程序包含了许多非标准术语。尝试相同操作的其他人不太可能使用与您完全相同的一组单词。因此,现在阅读其他人的程序,您必须弄清楚他的“翻译”是什么意思。我想如果公司中的每个人都使用同一套软件,您将学习它们并且可以轻松地在彼​​此的程序上进行工作。但是,当您转移到另一家公司或从网络上下载软件时会发生什么呢?在我看来,您只是在为自己设置陷阱。最好只学习标准单词。

如果您是用葡萄牙语编写程序的,并且唯一可能读懂该程序的人是其他巴西人,并且您大概都讲葡萄牙语,但英语也许不太流利,那么将变量名设为葡萄牙语是很有意义的。我看不出尝试用您不太擅长的语言来命名变量会带来什么好处。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.