GB 영어 또는 미국 영어?


96

API가 있고 국제적인 독자를 보유한 영국 기반 개발자 인 경우 API가

setColour()

또는

setColor()

(간단한 예로서 한 단어를 취하십시오.)

영국에 기반을 둔 엔지니어들은 종종 '올바른'철자에 대해 상당히 방어 적이지만 미국 철자가 국제 시장에서 더 '표준'이라고 주장 할 수 있습니다.

문제는 중요합니까? 다른 로케일의 개발자가 GB 철자에 어려움을 겪습니까, 아니면 일반적으로 의미가 분명합니까?

모두 미국 영어 여야합니까?


1
둘 다 포함하십시오. 그것은 당신을 해치지 않을 것입니다.
Amarghosh

우리의 교육 시스템은 항상 en-gb를 가르치므로 코드로 en-gb를 작성하는 데 익숙합니다. (가끔 게으르고 중국 고객 특정 코드를 개발할 때 중국 식별자를 삽입
Michael Tsang

답변:


79

다른 API에서 표준이 된 미국 영어를 사용하는 경향이 있습니다. 예를 들어, 영어 프로그래머로서 "색상"을 사용하는 데 아무런 문제가 없습니다.


6
표준화는 좋은 목표이며, 귀하의 API는 GB 버전을 사용하는 것보다 국제적으로 더 쉽게 받아 들여질 것입니다.
Maitus

55

저는 원어민이 아닙니다. 글에서는 항상 en-gb. 그러나 프로그래밍에서 저는 en-us식별자에 독일어 나 프랑스어를 사용하지 않는 것과 거의 같은 이유로 항상 영국 영어 대신 사용 합니다.


16

일반적으로 나는 GB 철자에 대해 고집적이지만 일관성이 있으면 코드가 훨씬 더 잘 읽히고 다음을 발견한다고 생각합니다.

Color lineColor = Color.Red;

다음보다 훨씬 나아 보입니다.

Color lineColour = Color.Red;

궁극적으로 그것은 실제로 중요하지 않다고 생각합니다.


9
속성 공개 Color Color {get;}
Benjol

15

대부분의 고객을 보는 위치에 따라 다릅니다. 개인적으로 개인 코드에 영어 -GB (예 : Colour)를 사용하는 것을 선호하지만 외부에서 게시 된 응용 프로그램 / API / 코드에 대해서는 Color로 이동합니다!


7
내부적으로 GB를 사용하고 외부 적으로 US를 사용하면 의미 변수 충돌의 위험이 있습니다. "color"및 "co1or"에서 발생하는 유형과 유사합니다. 당신의 두뇌는 철자가 아니라 단어를 처리하고 혼란을 일으킬 수 있습니다
Chris Cudmore

1
저도 똑같이하는 경향이 있지만 Chris가 언급 한 내용에주의해야합니다. API에서 하나의 철자를 사용하는 경우 프로젝트의 다른 곳에서도 동일한 철자를 사용해야합니다.
Mark Baker

10

나는 보통 정확한 철자법에 대해 매우 현명하지만 영국 개발자로서 나는 항상 미국식 '색상'철자를 사용합니다. 내가 접한 모든 프로그래밍 언어에서 이것은 이와 같으므로 일관성을 위해 '색상'을 사용하는 것이 좋습니다.


5

이것이 Java 또는 C # API라고 가정하면 IDE의 자동 완성 기능이 널리 퍼져 있으므로 문제가되지 않을 것입니다. 이것이 동적 언어이거나 최신 IDE가 표준이 아닌 언어라면 미국 철자를 사용합니다. 물론 나는 미국인이기 때문에 분명히 편견이 있지만, 영어 원어민이 아닌 개발자에게서 보는 대부분의 코드는 변수 이름 등에 미국 철자를 사용하는 것 같습니다.


3
.NET Framework 디자인 지침은 일관성을 위해 미국 영어를 권장합니다
Mark Cidade

@MarkCidade : 언급 된 권장 사항에 대한 링크가 있습니까? 나는 성공하지 않고 위아래로 검색했습니다.
Dio F

1
크쥐시토프 콸 리나와 브래드 에이 브람스에 의해 "재사용 .NET 라이브러리에 대한 규칙, 숙어, 및 패턴 프레임 워크 디자인 가이드 라인"그것은이 책에서 언급 된 것 @DioF
마크시다

5

영어 프로그래머로서 소프트웨어 개발에 en-US를 사용합니다. 미국 영어는 거의 모든 다른 API에서 우세하므로 한 가지 유형의 철자를 고수하고 모호성을 제거하는 것이 훨씬 쉽습니다. 철자 현지화로 인해 철자가 한 글자 씩 벗어난 것을 찾는 방법을 찾는 데 시간 낭비입니다.


4

나는 현재 표준을 따르고 미국 영어 철자를 고를 것입니다. HTML과 CSS는 "색상"이라는 철자로 인정 된 표준입니다. 둘째, .NET과 같은 프레임 워크로 작업하는 경우 이미 다른 이름 공간에서 사용할 수있는 색상이있을 가능성이 있습니다.

두 개의 철자를 다뤄야하는 정신적 부담은 개발자에게 도움이되지 않고 방해가 될 것입니다.

Label myLabel.color = setColour();

3

미국 영어가 아닌 API에 문제가 있습니다. 철자 차이 때문입니다. 단어의 의미를 알고 있지만 다른 철자법이 나를 괴롭 힙니다.

내가 익숙한 대부분의 라이브러리와 프레임 워크는 미국 철자를 사용합니다. 물론 저는 미국인이므로 미국 영어는 제 모국어입니다.


3

대부분의 개발 문서 (MSDN과 마찬가지로)는 미국 영어로되어 있습니다.

따라서 전 세계 사용자를 대상으로하는 경우 주류를 유지하고 API에서 미국 영어를 사용하는 것이 더 나을 수 있습니다.


2

또 다른 샘플 인 Serialise 및 Serialize가 있습니다. :)

개인적으로는 그다지 중요하지 않다고 생각합니다. 저는 영국 영어 철자 국가를 사용하는 프로젝트에서 일했고 그들은 영국 철자를 사용합니다. 여전히 영어이며 Intellisense로 인해별로 중요하지 않습니다.


제 영어 선생님이 '아이즈 엔딩이 GB 영어로 유효 했나요? ise와 ize 엔딩은 모두 GB 영어로 허용됩니다. ( cockneyrhymingslang.co.uk/slang/sceptic_tank )
Scott Langham

2

캐나다인으로서 저는 항상 이런 일을 겪습니다. 근육 기억이 계속해서 'u'에 도달하기 때문에 "color"를 입력하는 것은 매우 어렵습니다.

그러나 나는 도서관의 언어를 채택하는 경향이 있습니다. Java에는 Color 클래스가 있으므로 색상을 사용합니다.


1
"c", "o", "l", Ctrl + Space, "."
Tom

1

가능하면 대체 단어를 찾으려고 노력합니다. -ize 슬라이드를하겠습니다. Color의 경우 Hue, Ink, Foreground / Background를 사용할 수 있습니다.

그렇지 않다면 영국인으로서 나는 내 나라와 출신에 자부심이 남아 있기 때문에 en-GB를 사용할 것입니다.

그러나 더 큰 프로젝트, 특히 국제적인 프로젝트의 일부인 경우, 작은 부분은 한 언어 변형에 나머지는 다른 언어로 구성하여 전체 프로젝트를 일관성있게 유지할 것입니다.


2
색상 / 또는 색상 대신 전경 / 배경 사용에 동의하지 않습니다.) 예를 들어 앞 / 배경은 패턴을 의미 할 수도 있습니다. colo (u) r을 설정 / 얻고 싶다면 그것을 호출해야합니다. 누락 / 추가 'u'는 이름이 잘못된 속성보다 덜 혼동됩니다.
Treb

원칙은 아니지만 충분히 공평한 사례입니다.
JeeBee

2
Btw. -ize 철자는 미국주의가 아닙니다!
Jules

@Jules 예, 그렇습니다.
igorcadelima

@igorcadelima 일반적으로 사용되는 경우 영국식 일 수 있지만 다음을 고려하십시오. en.wikipedia.org/wiki/Oxford_spelling
Jules Jules

1

나는 또한 일관된 일관을 유지하기 위해 미국-영어 편에서야 할 것입니다 (다른 사람들이 이미 여기에서 언급했듯이). 저는 미국 영어 원어민이지만 독일어와 스웨덴 소프트웨어 회사 모두와 소프트웨어 프로젝트를 수행했습니다. 두 경우 모두 코드에 독일어 또는 스웨덴어 텍스트를 사용하려는 유혹이 팀원들에게 종종 강타합니다. 때로는 변수 또는 메소드 이름에도 사용됩니다. 내가 그 언어를 말할 수는 있지만 눈에 거슬 리고 새로운 비연 사자를 프로젝트에 데려 오기가 더 어려워집니다.

대부분의 유럽 소프트웨어 회사 (적어도 내가 함께 일한 회사)는 동일한 방식으로 행동합니다. 코드는 영어로 유지됩니다. 단순히 다른 프로그래머가 참여할 경우 코드가 더 국제적으로 친숙해지기 때문입니다. 그러나 내부 문서는 일반적으로 모국어로 작성되는 경향이 있습니다.

즉, 여기서 차이점은 두 가지 다른 영어 방언에 관한 것입니다. 이것은 동일한 소스 코드 파일에서 완전히 다른 두 언어를 보는 것만 큼 극단적이지 않습니다. 따라서 API는 US- 영어로 유지하되, 귀하에게 더 적합하다면 GB- 영어로 의견을 남겨 주시기 바랍니다.


1

나는 당신의 언어로 된 다른 도서관들이 그들의 관습을 어떻게 선택하고 따르는 지 보라고 말하고 싶습니다.

프로그래밍 언어 및 내장 API의 설계자는 선택을했으며 사용자가 국제적이든 아니든이 선택과 일치하는 철자를 보는 데 익숙합니다. 다른 언어 사용자가 아니라 프로그래밍 언어 사용자를 대상으로합니다. 이상하게도 그들은 내장 된 API에서 외국어로 꽤 많은 단어를 배웠고 미국 영어와 GB 영어 사이에 차이점이 있다는 것을 인식하지 못할 수도 있습니다. 연못의 측면을 바꿔 혼동하지 마십시오.

주로 .NET 언어를 사용하고 .NET Framework는 미국 영어 철자를 사용합니다. 이 플랫폼에서는 미국 영어를 고수합니다. 저는 GB 영어로 표준화 된 언어를 알지 못합니다. 그러나 당신의 언어가 그렇게했다면 반드시 그 언어와 일관성을 유지하십시오.


1

나는 "go for American"극단에 동의합니다. 나는 이메일 등을 작성할 때 en-GB를 선호하지만 미국 영어는 모든 프로그래밍 분야에서 거의 표준입니다.


1

영국 영어가 전 세계적으로 사용되지만 다른 사람들처럼 시장을 지배한다고 말하는 미국 영어를 사용하는 것이 좋습니다.



1

첫째, 저는 미국에 있습니다. 내 현재 프로젝트에서는 항상 "색상"이지만 철자를 선택할 수없는 단어는 "회색"대 "회색"입니다.

사실 꽤 짜증이납니다.


1

식별자 이름에 대한 언어 선택은 대상과 관련이 없으며 프레임 워크 또는 API가 개발 된 원래 언어와 관련이 있습니다.

저는 많은 언어를 모르지만 미국 영어 이외의 다른 언어를 사용하는 언어는 생각할 수 없습니다.

다른 철자법으로 인해 미묘한 버그를 도입하는 위험은 너무 큽니다.

함수 재정의는 쉽게 의사 오버로드가 될 수 있습니다.

철자의 차이로 인해 구성 파일이 유효하지 않게 될 수 있습니다.

en-US 및 en-GB를 모두 사용하여 여러 클래스를 사용하여 동일한 개념적 개체가 정의 된 상황이 발생할 수 있습니다.

따라서 코드 조각이 순전히 내부 용이든 외부 용이든간에 사용되는 철자는 항상 플랫폼 / 프레임 워크 / 컴파일러 / API의 원래 언어와 일치해야합니다.


저는 API 내의 일관성에만 관심이 있습니다. 예를 들어, 패키지가 영국을 대상으로하는 경우 en-gb 만 사용할 수 있으며 "color"와 같은 철자는 전혀 사용할 수 없습니다.
마이클라고 Tsang

나도 당신 자신의 기본 클래스 라이브러리를 작성하는 것 같아요, 마이클?
Umar Farooq Khawaja

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의 차이를 알아 내려는 많은 사람들을 혼동 할 것입니다. 또한 color라는 단어가 포함 된 메서드가 많으면 API에 많은 혼란이 생길 ​​수 있습니다.
Kibbee

내 생각과 일치 해. 두 철자를 모두 제공하고 동일한 것으로 문서화하는 데 비용이 들지 않습니다. 중복성 반대의 경우 사용성이 직교성을 능가합니다.
Dave Sherohman

0

수백 년을 되돌아 보면 많은 사람들이 그렇게 생각하는 것처럼 변화가 미국과 전혀 관련이 없음을 알게 될 것입니다. 변화는 유럽의 영향, 특히 프랑스의 영향에서 비롯됩니다. 그 이전에는 영어 단어 "colour"의 철자가 "color"였습니다.

표준화를 시도하는 것은 중국 어린이의 절반이 유럽 이전의 영향과 미국의 영어 이해를 배우고있는 반면 나머지 절반은 영어를 오늘날 그대로 받아들이고 있기 때문에 헛된 일입니다.

언어가 문제라고 생각한다면 무게가 600g 인 대만 Kg를 고려해야합니다. 나는 그들이 어떻게 그것을 관리했는지 아직 알지 못했지만 그들이 항공기 연료 공급 인력으로 고용되지 않기를 바랍니다!


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 언어를 따릅니다. (대부분 US Eng).
ADTC
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.