用其他语言编码

109

这是我一直想知道的事情,在网上找不到任何提及。当来自日本等国家的商店编写代码时,我能用英语阅读吗?还是诸如C、PHP之类的编程语言有日文翻译版本?

我的意思是,世界上的每一个程序员都懂得足够的英语来使用与我相同的保留字吗?

这段代码会是这样的:

If (i < size){
    switch
        case 1:
            print "hi there"
        default:
            print "no, thank you"
} else {
    print "yes, thank you"
}

我所看到的英文内容是否与其他非英语母语的人看到的内容完全相同,他们会看到"if"、"switch"、"case"、"default"、"print"和"else"这些单词的本地化翻译吗?

编辑-是的,这是认真的。我不知道不同语言环境是否有不同的关键字,或者是否存在不同的语言环境。


4
相关问题:是否存在任何主流编程语言,其关键词不是英语(即使该语言最初是在英语非母语的地方发明的)?答案:是的,存在一些主流编程语言的关键词不是英语。例如,日本的Ruby编程语言的许多关键词都是用日语拼写的。另一个例子是德国的Lisp方言Scheme,其中一些关键词使用了德语单词。 - Jon Schneider
2
这个问题让我想起了一次与一个(外国人)的对话,他认为上帝的主要语言是英语,因此其他人应该学习它,以便他们的祷告能够被理解。(我不是在无礼,尽管这是一个有趣的问题) - wallyqs
2
只有上帝懂一种语言。那是一个现已灭绝的美索不达米亚村庄的晦涩方言。这就是为什么他不回答你的祷告,以及为什么好人遭遇不幸(他只是太困惑了)。 - Anthony
1
哦,现在我看了一些答案...好问题。我一直认为有本地化版本的计算机代码,但现在想想,某些约定可能很难实现(从右到左或竖向方向),而其他约定则可能很难适应(特别是:PHP中的行以分号结尾。这基于以分号结束完整子句的西方惯例。想象一下为标点符号习惯本地化。甚至可能有酷炫的西班牙领先标记)。 - Anthony
使用APL编程,你就不会问自己这个问题了 :) - David Larochette
显示剩余5条评论
26个回答

4
我是一名法国团队的成员,我们正在使用C#开发软件系统。尽管编程语言关键字表面上是英文,但我想您在阅读代码时可能会遇到很大的困难,因为所有的函数名称、变量、代码注释、数据库表和列、技术规范、协议等都是用法语编写的,包括那些可爱的重音字符ç、é、è、ù等等。由于本地化错误(例如依赖逗号作为默认小数分隔符),我甚至不确定该系统是否能在其他地方运行。
另外,WinDev是法国流行的编程平台,其编程语言WLanguage的关键字可以是法语或英语,这里有一个例子:链接文字

使用 Resharper 可以捕获任何与本地化相关的问题 :) 使用一个月的试用期来清理您的代码库。 - v.oddou

4

曾经有法语和日语方言的AppleScript版本可用。我不知道为什么它被撤回了。


可能是因为在互联网时代很难分享代码...VBA也被翻译了。这是个坏主意。 - PhiLho

3

有一些语言拥有翻译过的关键字,例如Excel公式。如果你在电子表格中写一些计算,这些计算会用你的语言来表达。

幸运的是,这不是普遍的做法,即使像我这样的非英语母语者也感谢上帝有一个关键字的标准语言:

  • 更容易分享你的工作。
  • 它防止文档变成比现在更大的噩梦。
  • 英语单词和句子通常很短且语法实用。在文学方面,拉丁语系的语言更加美丽,但对于技术内容,英语是首选。

那么,该在何处停止呢?你能想象C语言使用古希腊语吗?

关键字必须保持在一种语言中,好吧,它始于英语,让它保持这样。这可能会更糟糕(亚洲语言?)。因此,我们必须用英语编写方法和注释。好吧,这对我们来说意味着更多的工作,但至少国际代码库保持一致。

然而,在使用本地语言的方法名称和注释可以成为良好实践的一种情况是在第三世界国家。我将在几个月内前往塞内加尔管理一个Django项目。塞内加尔有着巨大的文盲率,因此他们已经在努力提高编程知识,强迫他们同时学习计算机和一门新语言是低效的。法语是这里的母语,所以使用法语关键字会更有效率。

顺便说一下,以下是使用法语关键字的代码:

Si (i < taille) {
    cas par cas :
        cas 1:
            afficher "salut"
        défaut:
            afficher "non merci"
} sinon {
    afficher "oui, merci"
}

请注意,翻译关键字与翻译字符串无关。当然,我们的语言中有“你好,那里”的翻译。欧洲程序员甚至更倾向于使用I18N,因为这样他们的服务可以触及更广泛的受众。


3

我曾经看到VBA被翻译成类似西班牙语的命令。这是我见过的最丑陋的东西之一。如果我的电脑上有这样的东西,我会感到羞耻。

附注:我认为西班牙语比英语更美好,但是翻译是错误的。


我不知道新版的 MS Office 是否仍然存在这个问题,但旧版本无法执行为其他本地化编写的脚本。 - EricSchaefer
1
英语“优于”西班牙语的唯一方式是英语有更大的词汇量,因此写起来稍微短一些。我会很讨厌将英语作为第二语言学习;西班牙语更加逻辑! - Chip Uni
西班牙语(像大多数语言一样)比英语拥有更丰富的词汇量;但是英语使得发明新单词并仍然被理解变得容易。这使得它在技术问题上非常简洁和易于使用。此外,英语更加命令式,并偏爱简单的句子(如果有什么,为了避免歧义),也许这使得它更适合过程式编程。还要注意的是,我永远不会说英语比任何其他语言“更好”;但是BASIC基于英语,翻译它会导致无法阅读的混乱。 - Javier
“西班牙语(像大多数语言一样)的词汇量比英语丰富得多”:不是真的。众所周知,英语拥有比其他任何语言更多的单词,约为250,000个,而西班牙语仅有约100,000个。 - Luigi Plinge
这里的一个教训是纯商业性的;你无法为全球可能少于1,000人的VBE编程社区的本地化提供持续支持。微软在1990年代做过这件事,然后很快撤回了。其中一些教训延伸到更大的社区,比如西班牙语。首先,你不能与没有相同本地化语言版本的人分享你的脚本。 - tripleee

3

嗯,正如其他人指出的那样,关键字和系统调用可能仍然是英文。

然而,理解语言的关键字只是理解代码的一小部分。变量名、函数名和注释都可能使用作者的母语。

编辑:我突然回忆起我的青春时期,在我的TRS-80内置BASIC的映射表中切换关键字以将它们改为法语。我可以改变所有的关键字,但是我不能让它们变得更大。这使得程序很有趣。


确实。"我们将在所有地方使用[插入本地语言],从变量名称到注释 - 这只是一个微小的应用程序,谁会改变它呢?" 几年后,在别处: "是的,有注释。如果我只知道'// Meg tudom enni az üveget, nem árt nekem'是什么意思..."(语言更改以突出重点) - Piskvor left the building
我记得在大学时期,有人进入DOS并更改了一些命令和消息的内容,使其变得粗鄙,但它仍然能够正常工作。 - JoelFan

3
请勿嘲笑这个。几年前,微软宣布了G#(德语Sharp)-带有德语关键字和API的C#。当然,这只是一个愚人节玩笑,但整个网站看起来非常真实和专业(并且在microsoft.com上)。令人毛骨悚然。
在工作中,我们使用两种现场总线系统,都是由讲德语的国家开发的,其中标识符具有可怕的德语和英语混合,包括一些可爱的假朋友。这真是一团糟。
不,英语关键字和标识符很好。虽然有些人可能会争论应该是Color还是Colour :)

3
在我工作早期的几个VBA项目中,我们必须检测用户计算机上安装的Office版本,并相应地更改电子表格中使用的公式。由于我编写的程序是用葡萄牙语编写的,所以“SUM”必须翻译成“SOMA”等等。我无法想象在多种语言中实现这一点所需的工作量。是否有其他人遇到过这个问题?

2
您的问题与Perl有关,因为它的语法是设计成遵循(英语)自然语言的。我想知道这是否会使非英语母语者更难学习...
当然,Perl和Perlers拒绝遵守传统规则。疯狂科学家Damian Conway编写了Lingua::Romana::Perligata模块,利用源代码过滤器的黑魔法,让您可以用拉丁文编写Perl!

我不这么认为。问题在于,即使你懂英语,也无法将 while (cond) jump_to: label ... 转换成 Perl 语言。我的意思是,就像一个 goto 或其他的东西。 - OscarRyz
大多数 Perl 的“自然语言”习惯用法,例如“open() or die()”,对于我作为德语使用者来说非常自然。我猜英语和德语足够相似。 - bjelli

2

在澳大利亚,我们仍然需要用 color 来拼写 colour。 然而,当其他(澳大利亚的)开发人员在澳大利亚项目上决定使用美式拼写来命名内部变量时,我觉得很烦人。


2

一般来说,大多数程序员都适应英文形式。我7岁学编程时只会希伯来语(从右到左),不会英语,这使得学习编程成为了一次相当有趣的经历。

通常你会遇到的问题是文档、变量和函数名称。我曾经见过其他语言使用英文字母的变量。

我唯一熟悉的被翻译的语言是好老的Logo(至今仍然很惊人)。


Shalom Uri, 在Sourceforge上还有一种名为Hebrew Programming Language(HPL)的编程语言。与LOGO类似,它旨在面向年轻的计算机用户。 - TonJ

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