GB 英语,还是美国英语?

如果你有一个 API,并且你是一个英国的开发人员,拥有很多国际用户,那么你的 API 应该是

setColour()

或者

setColor()

(To take one word as a simple example.)

英国的工程师经常对他们的“正确”拼写相当自我防卫,但是可以说美国的拼写在国际市场上更加“标准”。

I guess the question is does it matter? Do developers in other locales struggle with GB spelling, or is it normally quite apparent what things mean?

应该都是美式英语吗?

16184 次浏览

我倾向于使用美式英语,因为这已经成为其他 API 的规范。作为一个英语程序员,我使用“颜色”没有任何问题,例如。

Depends where you see most of your customers. I personally prefer using English-GB (e.g. Colour) in my private code, but I go to Color for externally published applications/API/code!

我在使用不是美式英语的 API 时遇到了麻烦。只是因为拼写不同。我知道这些单词的意思,但是不同的拼写让我很困惑。

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

我得到了另一个样本: Serialize 和 Serialize. :)

我个人认为这不重要。我曾经参与过一些使用英国-英国拼写国家的项目,他们使用的是英国拼写。它仍然是英语,并且由于智能感觉,它真的没有多大关系。

尽管我通常对正确的拼写非常迂腐,作为一个英国的开发人员,我总是用美国的“颜色”拼写。在我遇到的所有编程语言中,都是这样的,所以为了保持一致性,使用“ color”有很大的意义。

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

大多数开发文档(就像 MSDN 一样)是用美国英语编写的。

因此,如果你的 API 是面向国际用户的,那么最好还是保持主流,在 API 中使用美式英语。

I'm not a native speaker. In writing, I always try to use en-gb. However, in programming I always use en-us instead of British English for much the same reason that I don't use German or French for my identifiers.

作为一个加拿大人,我经常遇到这种情况。 对我来说输入“颜色”是非常困难的,因为我的肌肉记忆一直在接近“ u”。

然而,我倾向于采用库的语言。 Java 有 Color 类,所以我使用 Color。

一般情况下,我会坚持 GB 的拼写,但我认为,代码读起来更好,如果它是一致的,我发现:

Color lineColor = Color.Red;

看起来比:

Color lineColour = Color.Red;

我想最终这并不重要。

如果可能的话,我尽量找到替代词。我不会计较的。对于颜色,我可以使用色相,墨水,前景/背景..。

如果不是,作为一个英国人,我将使用 en-GB,因为我对我的国家和出身还有一些自豪感。

然而,如果它是一个更大的项目的一部分,特别是一个国际项目,我会保持整个项目的一致性,以上有一个小部分是在一种语言的变化,其余在另一种。

我是这样一个人,每次我被迫在安装文件中使用美式英语时,心率和血压都会上升,等等,因为软件没有提供英式英语的选项,但这只是我:)

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

这样你可以让两个群体都开心,当然你的智力会增长一些,但至少人们不会抱怨你使用了“错误的”语言。

我会按照现在的标准,选择美国英语的拼写。HTML 和 CSS 是公认的拼写为“ color”的标准,其次,如果您使用的框架类似于。NET,那么您可能已经在不同的名称空间中有可用的颜色。

对必须处理两种拼写的人征收的精神税会妨碍而不是帮助开发商。

Label myLabel.color = setColour();

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

一个次要的问题是,我们依赖翻译服务将文档复制到其他语言。我们已经发现,我们得到更好的翻译时,使用我们的来源。

我也将不得不支持美式英语,只是为了保持一致(正如其他人已经注意到这里)。虽然我的母语是美国-英语,但是我曾经和德国和瑞典的软件公司一起做过软件项目,在这两种情况下,我的队友偶尔会忍不住在代码中使用德语或瑞典语文本——通常用于注释,但有时也用于变量或方法名。尽管我能说这些语言,但是这真的很刺眼,让我很难把一个不会说这些语言的人带进这个项目。

大多数欧洲软件公司(至少和我合作过的那些公司)的行为方式都是一样的——代码保留在英语中,仅仅是因为如果有其他程序员加入,这会使代码更加国际化。不过,内部文档通常是用本地语言完成的。

也就是说,这里的区别在于两种不同的英语方言列表,这并不像在同一个源代码文件中看到两种完全不同的语言那么极端。因此,我会说,保持 API 在美国英语,但你的评论在 GB-英语,如果它更适合你。

我想说的是,看看您语言中的其他库是如何选择和遵循它们的约定的。

编程语言及其内置 API 的设计者做出了一个选择,无论用户是否国际化,他们都习惯于看到与这个选择一致的拼写。您不是针对不同语言的使用者,而是针对编程语言的用户。很可能他们已经从内置的 API 中学到了不少外语单词,而且他们可能没有意识到美国英语和英国英语之间的差异。不要转换阵营来迷惑他们。

我吸毒。主要是 NET 语言,而。NET 框架使用美国英语拼写。在这个平台上,我会坚持使用美国英语。我不知道任何语言标准化的英国英语,但如果你的已经这样做了,然后尽一切办法保持与语言一致。

我同意“去美国”剧团。我自己在写电子邮件的时候更喜欢 en-GB,但是美式英语在所有编程圈子里几乎都是标准的。

作为一个英语程序员,我使用 en-US 进行软件开发。美式英语在几乎所有其他 API 中都占据着主导地位,因此坚持使用一种拼写方式并消除歧义要容易得多。搜索一个方法,却发现由于拼写本地化,拼写错误了一个字母,这是浪费时间。

即使英国英语是什么是在世界各地说-我建议使用美国英语,就像其他人说主导市场。

You need to consider your audience. Who is going to use the code and what are they expecting to see?

我在一家在加拿大和美国都有办事处的公司工作。我们使用加拿大拼写(非常类似于英国英语)时,生产的文件和代码在加拿大和美国拼写什么是在美国使用。

有些东西是跨国界的,但拼写上的差异很少是个问题。当美国人没有意识到加拿大英语和英国英语的拼写不同时,它实际上可以产生一些有趣的对话。有时候他们觉得没问题,有时候他们坚持要改成“正确的”拼写。这也会影响日期格式(加拿大的 dd/mm/yyyy 和美国的 mm/dd/yyyy)

当出现僵局时,我们通常使用美式拼写,因为加拿大人对这两种变体都很熟悉。

我听说选择 US 而不选择 UK English 的主要原因是,当英国受众面对 US 拼写时,他们意识到这是一个 US 应用程序(或者假设是这样) ,而面对 UK 拼写的美国受众则认为“ ... ... 嘿,这是错误的。.这是颜色,不是颜色

但就像其他人说的,标准化,挑剔并坚持下去。

对我来说,用英国英语工作是很自然的事情,甚至想都不用想。然而,如果你正在开发内部程序,这并不重要。如果您正在创建将被公开使用的 API,并且您的受众是国际化的,那么为什么不同时实现这两个 API 呢?

我更喜欢美式英语。

绝对是美式英语。

First, I'm in the US. In my current project, it's always "color" however, the word we can't seem to pick a spelling for is "grey" vs "gray".

It's actually gotten quite annoying.

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

试图将英语标准化将是徒劳的,因为一半的中国儿童正在学习前欧洲时代的影响力和美国对英语的理解,而另一半儿童正按照目前的情况,将其作为英语。

如果你认为语言是一个问题,那么你应该考虑一下重达600克的台湾公斤。我还不知道他们是如何做到这一点的,但我希望他们永远不要被雇佣为飞机加油人员!

我所有的编程都使用 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。 也许为了这样一个微不足道的目的而过度杀戮,但是,嘿,如果它看起来很重要,为什么不呢! :)

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

我不懂很多语言,但是我想不出一种语言除了美国英语之外还能用别的语言。

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

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

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

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

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