1. 국제화(i18n)와 지역화(L10n)란?
- 출판물이나 하드웨어 또는 소프트웨어 등의 제품을 언어 및 문화권 등이 다른 여러 환경에 대해 사용할 수 있도록 지원하는 것을 의미한다.[1]
- 국제화 (internationlization, i18n) : 제품 자체가 여러 환경을 지원할 수 있도록 제품을 설계하는 것을 의미
- 지역화 (localization, L10n) : 제품을 각 환경에 대해 지원(개발)하는 것을 의미
- 국제화와 지역화를 모두 포함하여 세계화(globalization, g11n)라고 부르기도 한다.
- 대표적으로 문자 모음 (유니코드), 측정 단위 (통화, °C/°F, km/miles 등), 시간 및 날짜 형식, 키보드 레이아웃, 텍스트 방향 등을 지원해야한다.[2]
- Locale (로케일) : 특정 언어와 지역의 문화적, 지리적 요소를 모두 고려하여 설정된 값[3]
- 같은 언어를 사용하더라도 지역 간의 문화적 차이가 있을 수 있기 때문에 언어와 지역 설정은 분리하여 제공해야 한다.
- ex) ko-KR, ko-KP, en-US, en-GB, en-CA, fr-CA (language-region locale codes)
2. 국제화와 지역화 적용
2.1. 날짜 및 시간
- UTC (Coordinated Universal Time, 협정 세계시) : 1970년 1월 1일 자정을 0밀리 초로 설정하여 기준을 삼아 그 후의 시간 흐름을 밀리초로 계산하는 방식의 국제 표준시[4]
- UTC는 그리니치 평균시(GMT)에 기반하므로 GMT로 불리기도 하고, 일상에서는 혼용해서 쓰인다.
- UTC는 그레고리력의 표기를 따른다. 1일은 24시간으로, 1시간은 60분으로, 1분은 60초로 나뉘는 것이 보통이다.
- ISO 8601 : 국제 표준화 기구(ISO)에서 지정한 날짜와 시간 관련 데이터를 다루는 국제 표준[5]
- ex) 2016-10-27, 2016-10, 2016-10-27T17:13:40Z, 2016-10-27T17:13:40+00:00, 20161027
- 보편적 원칙 :
1. 날짜와 시간 값은 시간 단위의 가장 큰 것부터 가장 작은 것으로 정렬된다. (년도, 월, 일, 시, 분, 초…)
2. 날짜와 시간은 각각 앞에 0을 붙여서 고정된 자릿수를 유지한다.
3. 날짜 값들(년도, 월, 주, 일) 사이에 사용되는 구분자는 붙임표(하이픈)이고, 시간 값(시, 분, 초) 사이에 사용되는 구분자는 쌍점(콜론)이다. - 달력 날짜 표현은 YYYY-MM-DD 또는 YYYYMMDD등과 같이 사용된다. YYYY는 0000부터 9999까지 4자리의 연도를, MM은 01부터 12까지 2자리의 달을, DD는 01부터 31까지 2자리의 일을 나타낸다.
- 시간 표현은 24시간제를 사용하며 hh:mm:ss 또는 hhmmss 등과 같이 사용된다. hh는 00부터 24까지의 시간을, mm은 00부터 59까지의 분을, ss는 00부터 60까지의 초를 나타낸다.
- 표준 시간대는 UTC 혹은 UTC 오프셋으로써 표현된다. 시간이 UTC인 경우 시간 뒤에 빈칸 없이 Z를 추가한다.
- 구분 문자 T를 사용하여 완전한 날짜 표현과 유효한 시간 표현을 연결한다.
- 국가마다 주로 사용하는 연-월-일 표기 순서가 다르다.
- YYYY-MM-DD : ISO 8601 표준, 한중일을 포함한 일부 아시아 국가
- DD-MM-YYYY : 전 세계에서 가장 많이 사용, 대부분의 유럽 국가 및 중동 등
- MM-DD-YYYY : 미국
- 12시간제를 사용할 경우 오전/오후를 표기하게 되는데, 오전 10시 30분 또는 10:30 AM과 같이 표현할 수 있다.
2.2. 달력
- ISO에서는 한 주의 시작을 월요일로 보지만, 일부 국가에서는 일요일을 한 주의 시작으로 본다. 대표적으로 미국과 캐나다, 일본이 일요일을 한 주의 시작으로 본다. 아프가니스탄이나 이란 등에서는 토요일을 주의 시작으로 보기도 한다.
- 영어를 비롯한 인도유럽어권에서는 1월부터 12월까지의 각 달에 이름을 붙여 사용한다.[6] 대표적으로 영미권에서는 각 달을 January-December로 표시하며 약어로는 Jan.-Dec.로 표시한다.[7]
- 각 달의 명칭과 더불어 요일의 명칭도 국가별로 큰 차이가 있다.[8] 영미권에서는 Monday-Sunday로 표시하며 약어로는 Mon.-Sun.으로 표시한다.
- 이 외에도 서기 대신 불기를 사용하는 국가 (예를 들어 태국)도 있고, 음력 달력을 고려해야 할 때도 있다.
2.3. 주소와 전화번호
- 주소를 작성할 때 대부분의 국가들은 작은 단위부터 큰 단위의 순서대를 사용한다. 하지만, 한중일을 포함한 동아시아에서는 반대로 큰 단위부터 작은 단위의 순서를 사용한다. 또한, 국가에 따라 우편번호가 주소의 앞에 오거나 뒤에 오는 경우가 있다.[9]
- 전화번호의 경우도 국가별, 지역별로 사용하는 형식이 매우 다양하다. 일반적으로 국가 번호 또는 지역 번호, 개별 변호로 구성된다. 대한민국의 경우 개인 이동 전화는 대부분 010-XXXX-XXXX과 같은 형식을 사용한다. 번호의 구분자도 나라에 따라 XXX-XXXX-XXXX, (XXX) XXX-XXXX, XX XX XX XX, (XXX)XXXXXXXX와 같이 하이픈과 공백을 다양하게 사용한다.[10]
2.4. 숫자
- 소수점의 기호로 영어권 국가와 동아시아에서는 마침표(.)를 사용하지만, 영국을 제외한 유럽 국가에서는 쉼표(,)를 사용한다.
- 자릿수가 많은 숫자는 읽기 쉽도록 구분 기호를 사용하여 그룹화를 한다. 이 구분 기호에는 마침표(.), 쉼표(,), 얇은 공백( ), 밑줄(_) 등이 사용된다. 다만, 소수점 구분 기호와는 구별되도록 사용한다. 예를 들어 숫자 10000을 소수점 두 자리까지 나타내려면 10 000,00 또는 10.000,00 또는 10,000.00과 같이 나타낼 수 있다. 국제 표준으로는 첫 번째 방법(10 000,00)이 권장된다.[11]
- 대부분의 언어에서는 복수형을 표현하기 위해 언어의 굴절을 사용한다. 단순한 예시로 영어에서는 하나의 책을 표현할 때는 book으로 작성하지만, 여러 개의 책을 표현할 때는 -s를 추가하여 books로 작성한다. 영어를 제외한 인도유럽어권 언어들에서는 복수형을 표현하는 방법이 매우 다양하고 불규칙적이다.[12]
- 물결표(~)의 경우 한국을 포함한 동아시아에서는 범위의 표현으로 사용하지만, 일반적인 영어에서는 하이픈을 범위의 표현으로 사용한다. 영어에서 물결표는 ‘대략’의 의미를 가진다. 예를 들어, ~30 minutes before는 대략 30분 전이라는 의미이다.[13]
2.5. 문자
- 당구장 표시(※)는 한중일에서는 참조의 의미로 사용한다. 이와 동일한 의미를 갖는 문자를 영어권에서 사용하려면 별표(*)를 사용한다.[14]
- 스페인어에서는 의문문과 감탄문 앞에 거꾸로 된 물음표(¿)와 느낌표(¡)를 붙인다.
- 일본어나 중국어에서는 일부 작은따옴표와 큰 따옴표를 ' '와 “ “가 아닌, 「 」와 『 』를 사용한다. 또한, 마침표로。 표시를 사용하고 쉼표로 、를 사용한다.
- 대부분의 현대 언어에서는 오른쪽-왼쪽 방향 쓰기가 사용되지만, 히브리어, 아랍어 및 페르시아어는 반대로 왼쪽-오른쪽 방향 쓰기가 사용된다. 한중일 언어에서는 경우에 따라 위-아래/오른쪽-왼쪽 방향 쓰기가 사용되기도 한다.
참고 :
[1] 국제화와 지역화
[2] 국제화 (internationalization, I18N) - MDN Web Docs 용어 사전: 웹 용어 정의 | MDN
[3] Localizations (지역화)
[4] 협정 세계시
[5] ISO 8601
[6] Months of the year in many languages
[7] Abbreviations of the Names of the Months | Yale University Library
[8] Days of the week in many languages
[9] Address
[10] National conventions for writing telephone numbers
[11] Decimal separator
[12] Plural
[13] Tilde
[14] Reference mark
'FE' 카테고리의 다른 글
Vue 프로젝트에 Airbnb ESLint 적용하기 (0) | 2024.12.08 |
---|---|
[vue-i18n] 2. 번역 리소스 (0) | 2024.12.07 |
[vue-i18n] 1. 시작하기 (0) | 2024.12.07 |
TailwindCSS 설치 (0) | 2024.12.07 |
Storybook 사용하기 (1) | 2024.12.07 |