英国英语还是美国英语?


93

如果您有API,并且您是英国的开发人员且具有很高的国际受众,那么您的API应该是

setColour()

要么

setColor()

(以一个字为例)。

英国工程师通常对自己的“正确”拼写颇为防御,但可以说美国拼写在国际市场上更为“标准”。

我想问题是重要的吗?其他地区的开发人员是否在拼写GB拼写方面挣扎,还是通常很清楚这是什么意思?

都是美国英语吗?


1
包括两个em。它不会伤害你的。
Amarghosh,2009年

我们的教育系统总是教授en-gb,因此我习惯于用代码编写en-gb。(有时候,我很懒,在开发中国客户专用代码时插入了一些中文标识符,后来又改成了英语)
Tsang Tsang

Answers:


77

我倾向于使用美国英语,因为这已成为其他API的规范。以英语程序员的身份讲,例如,使用“颜色”没有任何问题。


6
标准化是一个好目标,与使用GB版本相比,您的API将更容易被国际人群接受。
Maitus

54

我不是母语人士。在写作中,我总是尝试使用en-gb。但是,在编程中en-us,出于与我不使用德语或法语作为标识符相同的原因,我总是使用英式英语来代替。


15

取决于您看到大多数客户的位置。我个人更喜欢在我的私人代码中使用English-GB(例如Colour),但是我去Color寻求外部发布的应用程序/ API /代码!


7
在内部使用GB和在外部使用GB会带来语义变量冲突的风险-类似于“颜色”和“颜色”发生的事情的类型。您的大脑处理单词,而不是拼写,并且可能导致混乱
Chris Cudmore'Oct

1
我倾向于这样做,但是要注意Chris提到的内容-如果在API中使用一种拼写,则可能应该在项目中的其他地方使用相同的拼写。
Mark Ba​​ker

15

通常,我会很喜欢GB拼写,但是我认为如果代码一致,则代码的读取效果会更好,我发现:

Color lineColor = Color.Red;

看起来比:

Color lineColour = Color.Red;

我想最终这并不重要。


8
更糟糕的是,如果您拥有公共颜色Color {get;}
Benjol,

10

尽管我通常对正确的拼写非常着迷,但作为英国开发人员,我总是会选择美国的“颜色”拼写。在我遇到的所有编程语言中,都是这样,因此,为了保持一致性,使用“颜色”很有意义。


5

假设这是Java或C#API,考虑到IDE中自动完成功能的普遍性,这可能并不重要。如果这是一种动态语言,或者不是现代IDE的惯用语言,那么我会使用美国拼写。我当然是美国人,因此显然有偏见,但似乎我从不是以英语为母语的开发人员那里看到的大多数代码都使用美国拼写作为其变量名等。


3
.NET Framework设计指南出于一致性考虑而推荐使用美国英语
Mark Cidade'Oct

@MarkCidade:您是否有提到的建议的链接?我上下搜索都没有成功。
Dio F

1
@DioF在Krzysztof Cwalina和Brad Abrams的书“框架设计指南:可重用.NET库的约定,惯用语和模式”中提到
Mark Cidade,

5

作为一名英语程序员,我在软件开发人员中使用en-US。在几乎所有其他API中,美式英语都占主导地位,以至于坚持一种拼写并消除歧义要容易得多。寻找一种方法只是因为拼写本地化而发现拼写被一个字母打断,这是浪费时间。


4

我会遵循当前的标准,并选择美国英语拼写。HTML和CSS是公认的带有“颜色”拼写的标准,其次,如果您正在使用.NET之类的框架,则可能已经在不同的名称空间中使用了颜色。

不得不处理两个拼写的精神税将阻碍而不是帮助开发人员。

Label myLabel.color = setColour();

3

我用非美国英语的API遇到麻烦。只是因为拼写不同。我知道单词的意思,但是不同的拼写使我感到震惊。

我熟悉的大多数库和框架都使用美国拼写。当然,我是美国人,所以...美国英语是我的母语。



2

我得到了另一个示例:序列化和序列化。:)

就个人而言,我认为这并不重要。我从事的项目使用的是英式英语拼写国家,而他们使用的是英国拼写。它仍然是英语,由于Intellisense,它并没有多大关系。


我确定我的英语老师告诉我'尾码在GB英语中有效吗?在英语中,ise和ize的结尾都可以接受,因此我将我的大小调整为适合隔垫。(cockneyrhymingslang.co.uk/slang/sceptic_tank
斯科特朗廷

2

作为加拿大人,我一直都遇到这种情况。对我来说,键入“颜色”非常困难,因为我的肌肉记忆力一直持续到“ u”。

但是,我倾向于采用库的语言。Java具有Color类,因此我使用color。


1
“ c”,“ o”,“ l”,Ctrl +空格键,“。
汤姆”,

1

如果可能,我会尝试寻找其他单词。我将让-ize幻灯片。对于颜色,我可能会使用色相,墨水,前景/背景...

如果不是这样,作为英国人,我会使用en-GB,因为我对自己的国家和血统有一些自豪感。

但是,如果要成为更大项目的一部分,尤其是国际项目,我将使整个项目保持一致,其中一小部分是一种语言版本,其余部分是另一种语言版本。


2
我不同意使用前景/背景(而不是颜色)。例如,前/背景也可以表示图案。如果您想设置/获取颜色,那就应该叫它。缺少/附加​​的“ u”比没有命名的属性要少混淆。
Treb

这只是示例的一个小问题,不是原则,但很公平。
JeeBee

2
顺便说一句。-ize拼写不是美国主义!
朱尔斯2010年

@Jules是的,是的。
igorcadelima

@igorcadelima可能是英国人经常使用,但请考虑:en.wikipedia.org/wiki/Oxford_spelling
Jules

1

我还不得不站在美式英语的一边,仅仅是为了保持一致(就像其他人已经在这里指出的那样)。尽管我是说美国英语的母语人士,但我已经与德国和瑞典的软件公司一起完成了软件项目,在这两种情况下,这种诱惑偶尔都会使我的队友在代码中使用德语或瑞典语文字-通常是出于评论的目的,但是有时也用于变量或方法名称。即使我会说这些语言,也确实让我感到震颤,这使得在项目中引入新的非母语人士变得更加困难。

大多数欧洲软件公司(至少与我合作过的公司)的行为方式相同-代码保留英语,仅仅是因为如果其他程序员加入,这会使代码对国际更友好。但是,内部文档通常倾向于以母语完成。

就是说,这里的区别是关于英语的两种不同的方言,这并不像在同一源代码文件中看到两种完全不同的语言那样极端。因此,我想说的是,将API保留为美国英语,但如果您更适合,则使用GB-英语。


1

我想说一下您所用语言中的其他库如何选择并遵循它们的约定。

编程语言及其内置的API的设计者做出了选择,无论用户是否是国际用户,他们都习惯于查看与该选择一致的拼写。您不是针对使用其他语言的用户,而是针对编程语言的用户。奇怪的是,他们已经从内置的API中学习了很多外语单词,并且他们可能不知道美式英语和英式英语之间的区别。不要通过切换池塘的侧面来混淆它们。

我主要使用.NET语言,.NET Framework使用美国英语拼写。在这个平台上,我会坚持使用美国英语。我不知道有任何以GB英语为标准的语言,但是如果您已经做到了,那么请务必与该语言保持一致。


1

我同意“去美国”演出团。我本人在编写电子邮件等时更喜欢en-GB,但是美国英语几乎是所有编程领域的标准。


1

即使全世界都在说英式英语,但我还是建议使用像其他人所说的那样在市场上占主导地位的美式英语。



1

首先,我在美国。在我当前的项目中,它始终是“颜色”,但是,我们似乎无法为其选择拼写的单词是“灰色”与“灰色”。

实际上变得很烦人。


1

选择标识符名称的语言与受众无关,而与开发框架或API的原始语言无关。

我的语言不是很多,但是我想不出一种语言会使用除美国英语以外的其他语言。

恕我直言,由于拼写不同而引入细微错误的危险太大。

函数覆盖很容易变成伪重载。

由于拼写不同,配置文件可能变得无效。

可能会出现这样的情况,即使用en-US和en-GB使用多个类定义了相同的概念对象。

因此,无论一段代码是纯粹内部使用还是外部使用,所使用的拼写都必须始终与平台/框架/编译器/ API的原始语言匹配。


我只关心我们API中的一致性。例如,如果我们的包装针对英国,则只能使用en-gb,绝对不能使用“ color”之类的拼写。
曾荫权

我猜您还写了自己的基类库,迈克尔?
Umar Farooq Khawaja'3

0

如果您所有的程序员都是英国人,请使用en-gb。如果您的代码将被英国以外的程序员看到,那么en-us将是一个更好的选择。

一点,我们依靠翻译服务将我们的文档复制为其他语言。我们发现使用en-us作为来源时可以获得更好的翻译。


0

您需要考虑您的听众。谁将使用该代码,他们期望看到什么?

我在一家在加拿大和美国都设有办事处的公司工作。在加拿大制作文档和代码时,我们使用加拿大的拼写(非常类似于英式英语),而在美国,则使用美国的拼写。

有些东西是跨界的,但拼写差异很少成为问题。当美国人不知道加拿大英语和英国英语的拼写不同时,它会引起一些有趣的对话。有时他们会接受,有时他们坚持要求改成“正确”的拼写。这也会影响日期格式(加拿大的dd / mm / yyyy和美国的mm / dd / yyyy)

如果出现僵局,我们通常会采用美国的拼写,因为加拿大人都熟悉这两种变体。


0

我听说选择美国而不是英国英语的主要原因是,当英国观众面对美国拼写时,意识到它是美国的应用程序(或假设是这样),而面对英国拼写的美国观众则认为“。”。嘿,那是错误的。

但是就像其他人所说的那样,标准化。选择并坚持下去。


0

对于我来说,即使不用考虑,也可以使用英国英语工作。但是,如果您正在开发内部程序,那并不重要。如果您要创建将要公开使用的API,并且您的受众是国际用户,那么为什么不同时实现这两个呢?



0

我是其中之一,每次我被迫在设置文件等中使用美式英语时,心率和血压都会升高,原因是该软件未提供用于英式英语的选项,但这仅仅是我 :)

我个人对此的看法是提供两种拼写,给它们提供setColor()和setColour(),在其中之一中编写代码,然后让第二个通过参数。

通过这种方式,您可以让两个小组都开心,因为您的智力会更长一些,但是至少人们不能用“错误”的语言来抱怨您。


7
这不是一个好主意。API将充满冗余方法。
McDowell

6
那是一个非常糟糕的解决方案。您可能会使很多人感到困惑,他们试图弄清楚setColour和setColor之间的区别。另外,如果您有很多带有单词颜色的方法,那么它会在API中造成很多混乱。
Kibbee

我的想法正好。提供两个拼写并将它们记录为完全相同无需花费任何费用。对于冗余异议,可用性胜过正交性。
戴夫·谢罗曼

0

如果回首几百年,您会发现这种变化与美国毫无关系,很多人会这样认为。变化源于欧洲的影响,尤其是法国的影响。在此之前,英语单词“ colour”实际上是拼写为“ color”的。

试图标准化将是徒劳的,因为一半的中国儿童正在学习欧洲之前的影响力和美国对英语的理解,而另一半正在将其作为当今的英语来学习。

如果您认为语言有问题,则应考虑重量为600克的台湾公斤。我还没有找到他们是如何做到这一点的,但是我希望他们永远不会被雇用为飞机加油人员!


0

我在所有编程中始终使用en-GB。我想这是由于英国小说的巨大影响。

但是,可能无法在内部调用同一函数的两组不同的API(一组用于en-US,一组用于en-GB)吗?但是,这可能会使头文件膨胀,因此可能取决于预处理程序的定义,条件编译?如果您使用的是C ++,则可以执行以下操作...

#ifdef ENGB
     typedef struct Colour
     {
      //blahblahblah
     };
     void SetColour(Colour c);
#else
    typedef struct Color
    {
      //blahblahblah
    };
    void SetColor(Color c);
#endif

取决于客户端程序员是否定义ENGB,如下所示

#define ENGB

他可以在自己喜欢的文化中使用API​​。也许出于如此琐碎的目的而过度杀伤,但嘿,如果它看起来很重要,为什么不呢!:)


2
最好遵循美国拼写,因为几乎所有标准API都遵循它。编译器严格要求准确的拼写,因此为两个语言环境提供两个不同的API是一个坏主意。该文档可以满足两个不同的区域设置,但是API必须一致。通常期望即使在不同地区使用相同的API讲德语,法语,西班牙语等不同语言,尽管文档可能会以本地语言提供说明,但方法,变量等都将遵循原始API语言(最有可能是美国工程师)。
ADTC 2014年
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.