국제화(internationalization)를 I18N이나 i18n으로, 지역화(localization)를 L10N이나 l10n 등으로 표기하기도 한다. 이것은 두 단어의 영어 철자에서 첫 글자와 마지막 글자만 뺀 나머지 글자들을 그 숫자로 표시한 것이다. - 위키백과
i18n 은 국제화(internationalization)의 약자로, i와 n 사이에 18글자가 있기 때문에 이렇게 표기한다.
비슷한 예로 k8s(kubernetes)
가 있다.
i18n은 여러 분야에서 사용되지만 여기서는 컴퓨터 분야만 살펴보도록 하자.
컴퓨터 분야에서 가장 대표적인 예시는 바로, 번역일 것이다.
프로그램이 동작하는 코드 말고, 실제로 출력되는 메시지 등을 각 나라에 맞춰 달라지게끔 하여 모든 나라의 사용자들이 접할 수 있게 하는 것!
i18n 을 파이썬에서 지원하기 위해서는 다음과 같은 도구에 대한 이해가 있어야 한다.
PO, POT, MO, 그리고 gettext
PO 파일은 실제로 다른 언어로 번역된 내용이 포함되어 있다. 따라서 번역을 지원할 각 언어마다 PO 파일을 만들어 주어야 한다. 각 언어 번역 정보는 locale 폴더 안에 ko_KR 등 로케일 정보가 담긴 폴더 안에 PO 파일로 기록된다.
MO 파일은 PO 파일을 가지고 만든 바이너리 파일이다. msgfmt 명령어를 통해 생성한다.
msgfmt gettext_test.po -o gettext_test.mo
POT 파일은 PO 파일을 만들기 위한 template 파일이다.
gettext는 번역을 위해 필요한 리눅스 프로그램이다.
Openstack에서 사용할 수 있도록, Python 라이브러리도 존재한다. 링크