Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

locale 이란

locale은 세계 각 국에서 사용하는 언어, 문자, 화폐 표시, 시간등에 대해 국제화(i18n; Internationalization) 와 지역화(l10n; localization)를 통해 어떻게 표시할 지 정의한 매개 변수의 모음입니다.


locale 이 필요한 이유는 동일한 데이타라도 문화권마다 표시하고 처리하는 방법이 달라서입니다.


예로 12345678.235 란 숫자가 있을 경우 한국어로 locale 이 설정되어 있으면 다음과 같이 큰 자리 구분은 , 로 소수점은 . 으로 표시를 합니다.

Code Block
12,345,678.235


하지만 프랑스 권에서는 다음처럼 콤마 대신 공백을 사용하고 소수점에는 콤마를 찍어서 표시한다고 합니다.

Code Block
12 345 678,235


프랑스와 같은 EU 국가인 독일은 우리와 정반대로 콤마의 점을 사용한다고 합니다. 즉 큰 자리수 표현은 . 으로 소수점은 , 로 구분합니다.

...

locale 명령어로 현재 설정을 확인할 수 있습니다.

Code Block
languagebash
titlelocale 명령어
$ locale

LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

...

가능한 로케일 언어 목록은 -a 옵션을 주고 실행하면 됩니다.

Code Block
languagebash
title전체 locale 목록
$ locale -a | grep 

C
C.utf8
en_AG
en_AU
en_AU.utf8
...
en_US
en_US.iso885915
en_US.utf8
en_ZA
en_ZA.utf8
en_ZM
en_ZW
en_ZW.utf8
ko_KR.euckr
ko_KR.utf8
POSIX

...

Code Block
languagebash
titleUbuntu
$ sudo apt install language-pack-ko


locale 설정

LC_NUMERIC, LC_TIME, LC_MONETARY 같은 개별 로케일을 로케일 변수마다 설정해도 되지만 LANG 변수에 설정하면 모든 로케일에 적용됩니다. 

...

...