Internationalization 代码“;“国际化”;
我在不同的国家从事不同的项目,并指出有时代码会国际化,比如 SetLargeUratautur()(用于设置宽度和高度,fr)Internationalization 代码“;“国际化”;,internationalization,design-guidelines,Internationalization,Design Guidelines,我在不同的国家从事不同的项目,并指出有时代码会国际化,比如 SetLargeUratautur()(用于设置宽度和高度,fr) Dim\u ListaDeobecte作为(对象的)列表(对于对象列表,ro) 内部void sohranenieusherov()(适用于存储用户,ru) 等等 碰巧在使用拉丁字母的国家,这种混合更为明显,因为不需要音译 更重要的是,编程“行话”往往受到项目规范语言的启发。在某些情况下,“项目语言”中的术语在英语中具有“不可翻译”的含义 也有一些项目只起作用,比如说一
Dim\u ListaDeobecte作为(对象的)列表(对于对象列表,ro)
内部void sohranenieusherov()(适用于存储用户,ru)
等等 碰巧在使用拉丁字母的国家,这种混合更为明显,因为不需要音译 更重要的是,编程“行话”往往受到项目规范语言的启发。在某些情况下,“项目语言”中的术语在英语中具有“不可翻译”的含义 也有一些项目只起作用,比如说一个法语团队,使用法语单词(比如Personne、vehicleue、Projet等) 在这种情况下,我个人会在规范中添加一个“字典”,解释所有业务对象名称,并且只有这些对象在其他(法语)语言中使用 说: 收集-人员集合 所有操作(获取、设置、更新、修改、加载等)都是英文的 现在代码中可以使用“强”名称: 将人员添加到集合
- 你对“国际化”的态度是什么
VisualStudio在.NET中编译和运行项目时,使用了名为“btnAddèlève”或“èПèèèèèève”的按钮。我个人的做法是,编程社区中的许多人(但不是所有人)都同意源代码应该是英文的,所有的开发工具也应该是英文的 这样做的最重要原因是能够与世界分享您的问题和解决方案(就像我们现在在StackOverflow中所做的那样),而不必每次都翻译类名、错误消息、路径和其他工件 这也有助于保持一致性,因为大多数库都是用英语编写的,而且元素名混合了两种语言,这对任何人都没有帮助,除了当像Add这样的动词不总是被使用时,它经常成为内部冲突的焦点 英语代码还可以更容易地将外国人添加到项目中,而不必担心理解和误解(特别是在密切相关的语言之间,如西班牙语和葡萄牙语,它们有许多错误的同源词) 这是一个很好的链接:
(如果有人想知道,我是南美洲人,英语不是我的主要语言)我想我会把这样的代码库称为“深不可测”而不是“国际化”,但我一直听到的一般规则是,如果你认为说你的语言的人以外的人可能接触过代码,用英语做。我现在对挪威语也有同样的问题。我想这取决于你在项目中的位置、可用时间和软件的角色 在我的案例中,我决定将所有条款保留在我正在使用的挪威语的现有协议和库中,因为我可以合理地预期,几代管理人员已经习惯了这些条款,而且库依赖于协议。在一个国际项目的库包装中,我逐字翻译了每个方法的名称,并添加了该方法的英文文档 关于代码的注释和文档是英文的
如果从头开始设计一个软件,我会尝试为所有方法名称甚至业务术语寻找英语术语(如果合理的话,我很难想出一个没有术语的例子),以保持它的“可移植性” 即使团队中的每个人都会说一口流利的英语(这不是既定的),他们也不一定知道所有商业术语的英语对应词 我认为这是一个特定于项目的决定,但我通常会容忍并在某些情况下鼓励使用当地语言的商业术语(如实体名称),而不是技术术语(即不是大/傲慢而不是宽/高)
例如,在法国的金融界,每个人都知道OPCVM和FCP是什么意思——如果你尝试英语翻译,你可能会比允许混合语言造成更多的误解。如果你正在编写有一天可能在国际上使用的代码,请用英语编写。如果有疑问,请用英语写,如果可以的话,甚至可以写评论(尽管我想你可以用你工作场所的语言添加一些评论) 不幸的是,这并不是特定于编码的。英语不是我的母语,但我已经能够阅读许多技术论文,并与来自世界各地的人一起参加国际会议。如果每个人都以各自的母语发表文章,那么这些合作就根本不起作用
如果你想不惜一切代价为自己的语言辩护,这可能会令人伤心,但你必须现实一点。我认为英语的优点是相对简单,可以达到基本的水平:名称没有性别,没有变化,没有大小写。通常,涉及语言概念的代码应该与编程语言使用相同的母语(即英语-因为字符串都是英语单词) 在本地语言中使用变量和域概念是可以的(但不是很好),但您肯定不希望将列表、对象、小数等转换为术语,这会导致程序员在协调两种语言方面做更多的工作。即使如此,我还是会极力游说限制非常常见的领域概念,如集合、成员资格、人员、用户,以及可能不太常见的领域概念,如发票、收据,在可能的情况下限制为英语 这就像用VB和C语言分别编写了一半的课程——你的大脑必须进行认知转换。这对于混合应用程序(web上的JavaScript和C