IT/리눅스마스터1급

locale(로케일, 로캘) 이란?

알콩달콩아빠 2023. 8. 19. 21:10
728x90
반응형

개요

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

 

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

 

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

12,345,678.235
Copy
CODE

 

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

12 345 678,235
Copy
CODE

 

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

12.345.678,235
Copy
CODE

 

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=
Copy
BASH

 

가능한 로케일 언어 목록은 -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
Copy
BASH

 

한국어 로케일은 ko_KR.euckr  ko_KR.utf8 이며 만약 목록에 보이지 않을 경우 언어팩을 설치해 주면 됩니다.

RHEL/CentOS

$ sudo yum install langpacks-ko
Copy
BASH

Ubuntu

$ sudo apt install language-pack-ko
Copy
BASH

 

locale 설정

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

$ export LANG=ko_KR.utf8
Copy
CODE

 

위 문장은 다음 명령어와 동일한 결과를 갖게 됩니다.

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"
Copy
CODE

 

위와 같이 콘솔에서 설정하면 재부팅시 사라지므로 사용하는 쉘의 초기화 파일에 설정을 넣어주면 됩니다.

예로 RHEL/CentOS 에서 bash를 사용시에는 .bash_profile 에  Ubuntu 에서 bash 를 사용하면 .profile 에 설정하며 zsh 를 사용시에는 .zshrc 에 넣어줍니다.

.bash_profile

export LANG=ko_KR.utf8
Copy
CODE

.profile

export LANG=ko_KR.utf8
Copy
CODE
 
 
728x90
반응형