개요
locale은 세계 각 국에서 사용하는 언어, 문자, 화폐 표시, 시간등에 대해 국제화(i18n; Internationalization) 와 지역화(l10n; localization)를 통해 어떻게 표시할 지 정의한 매개 변수의 모음입니다.
locale 이 필요한 이유는 동일한 데이타라도 문화권마다 표시하고 처리하는 방법이 달라서입니다.
예로 12345678.235 란 숫자가 있을 경우 한국어로 locale 이 설정되어 있으면 다음과 같이 큰 자리 구분은 , 로 소수점은 . 으로 표시를 합니다.
12,345,678.235
하지만 프랑스 권에서는 다음처럼 콤마 대신 공백을 사용하고 소수점에는 콤마를 찍어서 표시한다고 합니다.
12 345 678,235
프랑스와 같은 EU 국가인 독일은 우리와 정반대로 콤마와 점을 사용한다고 합니다. 즉 큰 자리수 표현은 . 으로 소수점은 , 로 구분합니다.
12.345.678,235
locale 을 활용하면 언어권에 맞게 프로그램마다 데이타의 입력과 출력을 수정하지 않고도 사용하는 언어별에 맞는 데이타를 처리할 수 있는 장점이 있습니다.
locale 확인
locale 명령어로 현재 설정을 확인할 수 있습니다.
locale 명령어
$ 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 옵션을 주고 실행하면 됩니다.
전체 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
한국어 로케일은 ko_KR.euckr 과 ko_KR.utf8 이며 만약 목록에 보이지 않을 경우 언어팩을 설치해 주면 됩니다.
RHEL/CentOS
$ sudo yum install langpacks-ko
Ubuntu
$ sudo apt install language-pack-ko
locale 설정
LC_NUMERIC, LC_TIME, LC_MONETARY 같은 개별 로케일 변수마다 설정해도 되지만 LANG 변수에 설정하면 모든 로케일에 적용됩니다.
$ export LANG=ko_KR.utf8
위 문장은 다음 명령어와 동일한 결과를 갖게 됩니다.
export LC_CTYPE="ko_KR.utf8"
export LC_NUMERIC="ko_KR.utf8"
export LC_TIME="ko_KR.utf8"
export LC_COLLATE="ko_KR.utf8"
export LC_MONETARY="ko_KR.utf8"
export LC_MESSAGES="ko_KR.utf8"
export LC_PAPER="ko_KR.utf8"
export LC_NAME="ko_KR.utf8"
export LC_ADDRESS="ko_KR.utf8"
export LC_TELEPHONE="ko_KR.utf8"
export LC_MEASUREMENT="ko_KR.utf8"
export LC_IDENTIFICATION="ko_KR.utf8"
위와 같이 콘솔에서 설정하면 재부팅시 사라지므로 사용하는 쉘의 초기화 파일에 설정을 넣어주면 됩니다.
예로 RHEL/CentOS 에서 bash를 사용시에는 .bash_profile 에 Ubuntu 에서 bash 를 사용하면 .profile 에 설정하며 zsh 를 사용시에는 .zshrc 에 넣어줍니다.
.bash_profile
export LANG=ko_KR.utf8
'IT > 리눅스마스터1급' 카테고리의 다른 글
리눅스 프로필과 환경변수를 설정하는 방법 (0) | 2023.08.19 |
---|---|
yum 대화형 모드(shell mode) 사용하기 (0) | 2023.08.19 |
linux 에서 라이브러리를 찾을 수 없다며 프로그램 실행이 안 될때 해결방법(error while loading shared libraries) (0) | 2023.08.19 |
/etc/profile.d/lang.sh: line 19: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory (0) | 2023.08.19 |
[linux/Tip] Openssl 버전 및 openssh 버전 확인 (0) | 2023.08.17 |