GB英语,还是美国英语?

时间:2008-10-01 14:14:44

标签: api naming-conventions api-design

如果你有一个API,并且你是一个英国的开发人员,拥有高度国际化的受众,那么你的API应该

setColour()

setColor()

(用一个词作为一个简单的例子。)

英国工程师通常对他们的'正确'拼写非常防守,但可以说美国拼写在国际市场上更“标准”。

我想这个问题是否重要?其他语言环境中的开发人员是否会使用GB拼写,或者通常很明显是什么意思?

这一切都应该是美国英语吗?

28 个答案:

答案 0 :(得分:69)

我倾向于使用美国英语,因为这已经成为其他API的常态。作为一名英语程序员,我在使用“颜色”方面没有任何问题,例如。

答案 1 :(得分:50)

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

答案 2 :(得分:15)

取决于您看到大多数客户的位置。我个人更喜欢在我的私人代码中使用英语 - GB(例如Color),但我会转到Color以获取外部发布的应用程序/ API /代码!

答案 3 :(得分:15)

一般来说,我会成为GB拼写的坚持者,但我认为如果它是一致的,代码会读得更好,我发现:

Color lineColor = Color.Red;

看起来好多了:

Color lineColour = Color.Red;

我想这最终并不重要。

答案 4 :(得分:9)

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

答案 5 :(得分:4)

假设这是一个Java或C#API,鉴于IDE中自动完成功能的普遍性,它可能无关紧要。如果这是一种动态语言,或者现代IDE不是常态,我会选择美国拼写。当然我是美国人,因此显然有偏见,但似乎我从开发人员那里看到的大部分代码都不是母语为英语的人使用美国拼写作为变量名称等。

答案 6 :(得分:4)

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

必须处理两种拼写的精神税会妨碍而不是帮助开发者。

Label myLabel.color = setColour();

答案 7 :(得分:4)

作为一名英语程序员,我使用en-US作为我的软件开发人员。美国英语在几乎所有其他API中都占据优势,因此更容易坚持一种拼写并消除歧义。由于拼写本地化,搜索方法只是为了找到一个字母的拼写,这是浪费时间。

答案 8 :(得分:3)

我在使用不是美国英语的API时遇到问题。仅仅因为拼写上的差异。我知道这些词是什么意思,但不同的拼写让我兴奋不已。

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

答案 9 :(得分:3)

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

因此,如果您定位到国际受众群体,最好继续使用主流并在API中使用美式英语。

答案 10 :(得分:2)

我有另一个示例:Serialise和Serialize。 :)

就个人而言,我认为这并不重要。我参与了使用英国 - 英语拼写国家的项目,他们使用英国拼写。它仍然是英语,由于Intellisense,它并不重要。

答案 11 :(得分:2)

作为加拿大人,我一直都遇到这种情况。 我很难输入“颜色”,因为我的肌肉记忆力一直在达到“你”。

但是,我倾向于采用图书馆的语言。 Java有Color类,所以我使用color。

答案 12 :(得分:1)

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

我不知道很多语言,但我想不出一个使用美国英语以外的语言。

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

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

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

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

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

答案 13 :(得分:1)

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

实际上这很烦人。

答案 14 :(得分:1)

绝对是美国英语。

答案 15 :(得分:1)

尽管英国英语是全世界所说的 - 我建议使用美国英语,就像其他人所说的那样占主导市场。

答案 16 :(得分:1)

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

答案 17 :(得分:1)

我想看看你的语言中的其他图书馆如何选择和遵循他们的惯例。

编程语言的设计者及其内置的API做出了选择,无论用户是否是国际用户,他们习惯于看到与此选择一致的拼写。您不是针对不同语言的演讲者,而是针对编程语言的用户。很可能他们从内置的API中学到了很多外语,他们可能不知道美国英语和GB英语之间存在差异。不要通过切换池塘边来混淆它们。

我主要使用.NET语言,.NET Framework使用美国英语拼写。在这个平台上,我会坚持使用美国英语。我不知道GB英语标准化的任何语言,但是如果你这样做了,那么一定要与语言保持一致。

答案 18 :(得分:1)

我也不得不支持美英,只是为了保持一致(正如其他人已经在这里指出的那样)。虽然我是美国本土英语发言人,但我已经与德国和瑞典的软件公司一起完成了软件项目,在这两种情况下,偶尔的诱惑会让我的队友在代码中使用德语或瑞典文本 - 通常用于评论,但是有时也用于变量或方法名称。虽然我可以说这些语言,但它确实让人眼前一亮,并且让新的非演讲者更难进入项目。

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

也就是说,这里的区别在于两种不同的英语方言,这与在同一源代码文件中看到两种完全不同的语言并不完全相同。所以我想说,保持API的美式英语,但你的评论用英语 - 英语,如果它更适合你。

答案 19 :(得分:1)

由于该软件不提供英国英语的选择,我是其中一名心率和血压升高的人,每次我被迫在设置文件中使用美式英语等。但那只是我:)。

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

通过这种方式,你可以保持两个群体的快乐,让你的智力感知得更长一点,但至少人们不会抱怨你使用“错误的”语言。

答案 20 :(得分:1)

如果可能,我会尝试寻找替代词。我会让-ize幻灯片。对于Color我可以使用Hue,Ink,Foreground / Background ......

如果没有,作为一名英国人,我会使用en-GB,因为我在我的国家和地区留下了一些自豪感。

如果要成为更大项目的一部分,尤其是国际项目,我会保持整个项目的一致性,其中一小部分属于一种语言变体而其余部分属于另一种语言变异。

答案 21 :(得分:0)

您需要考虑您的受众群体。谁将使用代码以及他们期望看到什么?

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

有些东西跨界,但拼写上的差异很少是个问题。当美国人不知道对于Candian和英国英语有不同的拼写时,它可以产生一些有趣的对话。有时它们可​​以用它,但是它们坚持要求它改为“正确”的拼写。这也会影响日期格式(加拿大的年/月/年和美国的年/月/年)

当陷入僵局时,我们通常会使用美国拼写,因为加拿大人都熟悉这两种变体。

答案 22 :(得分:0)

我听说选择美国而不是英国英语的主要原因是因为英国观众在面对美国拼写时意识到这是美国的申请(或者认为是这样),而面对英国拼写的美国观众则认为“......嘿,那是错的......它的颜色不是颜色”

但正如其他人所说,标准化。选择并坚持下去。

答案 23 :(得分:0)

我自然而然地在英国英语工作,甚至没有考虑过它。但是,如果您正在开发内部程序,那并不重要。如果您要创建将公开使用的API,并且您的受众是国际化的,那么为什么不实现这两者?

答案 24 :(得分:0)

我更喜欢美国英语。

答案 25 :(得分:0)

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

一个小问题,我们依靠翻译服务将我们的文档复制到其他语言。我们发现当使用en-us作为源时,我们会得到更好的翻译。

答案 26 :(得分:0)

如果你回顾几百年,你会发现变化对美国没有任何影响,就像很多人会这样认为的那样。这些变化源于欧洲的影响,尤其是法国人。在此之前,英语单词“color”实际上拼写为“color”。

尝试标准化是徒劳的,因为有一半的中国孩子正在学习欧洲前的影响力和美国人对英语的理解,而另一半则正在接受现在的英语作为英语。

如果您认为语言有问题,那么您应该考虑重达600克的台湾Kg。我还没有找到他们如何管理那个,但我希望他们从未被雇用作为飞机加油人员!

答案 27 :(得分: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​​。 对于这样一个微不足道的目的而言可能有些过分,但是嘿,如果看起来很重要,为什么不呢! :)