용어

국제적인 설정 환경에서 사용할 소프트웨어를 제작하는데에 대한 논의를 함에 있어 자주 사용하는 많은 용어가 있다. 그 첫번째로 국제화(internationalization)지역화(localization) 란 각각 일정 범위의 언어를 지원하는 소프트웨어를 만드는 과정 그리고 이 프로그램의 메시지와 규범을 특정 로케일에 맞도록 하는 과정을 가리킨다. 이 용어는 종종 i18n, l10n 이라는 약자로 각각 불리운다. 이는 각 단어의 첫문자와 맨끝문자 사이에 있는 글자의 갯수를 표현하고 있다.

로케일(locale) 이란 사용자의 국가와(또는) 언어에 대한 설정 집합이다. 보통en_UK와 같은 문자열로 표시한다. 처음에 나오는 두 문자는 언어(여기서는 English)를 나타내고 두번째는 국가(여기서는 영국, United Kingdom)를 나타낸다. 로케일 안에는 국가에서 사용하는 화폐 단위, 숫자를 형식화하는 방식이 포함되지만 무엇보다도 언어에서 사용하는 문자를 나타낸다. 문자셋(character set) 이란 문자를 표시할 때 사용하는 문자의 집합을 말한다. 문자들을 메모리나 디스크에 저장할 때, 주어진 어떤 문자셋은 다른 방법으로 저장할 수 있다. - 저장하는 방식에 대하여 인코딩(encoding)이라는 용어를 사용한다.

국제적 텍스트를 처리하는데 있어 영어나 유럽어 텍스트와는 전혀 다른 인코딩이 있기 때문에 매우 복잡해진다. (특히 아시아 언어와 같이 커다란 문자셋을 가지고 있는 언어의 경우) - 여기서 각 문자의 표현은 하나의 바이트로 부족하다. (문자셋에 256 개의 이상의 문자가 있기 때문이다.)

이러한 문자들을 처리하는 데에는 두 가지 기본적인 전략이 있다. 멀티 바이트(multi-byte) 인코딩에서는 각 문자가 가변 바이트로 표시된다. 그러한 인코딩의 예로서, 자주 사용되고 있는 EUC 인코딩에서는 128 보다 작은 바이트는 평범한 ASCII 문자이고 128 보다 큰 바이트는 한 쌍으로 처리하여 문자셋의 확장 부분을 표현하게 된다. 멀티 바이트 인코딩은 보통 ASCII와 이전 호환성을 갖기 때문에 문자열을 그냥 있는 그대로 처리하고자 하는 프로그램에 유용하다. 그러나 각 문자가 다른 갯수의 바이트를 갖기 때문에 프로그램에서 문자열을 차례 대로 한 바이트 씩 읽어야 할 때 어렵다. 와이드 캐릭터(wide-character, 역자 주 : 용어를 영어 발음대로 적었습니다.) 인코딩에서는, 모든 문자가 같은 폭을 갖는다. (예를 들어, 각 문자의 폭은 2 바이트이다.) 와이드 캐릭처 문자열은 일반적으로 처리하기 더 쉽지만 이전 호환성이 떨어진다.