Locale (한국어)
로캘은 리눅스에서 사용자가 어떤 언어를 사용하는지 지정하는 데 사용된다. 로캘은 사용될 문자 집합을 같이 지정하기 때문에 로캘을 바르게 설정하는 것이 특히 언어에 비아스키 문자가 있을 경우에 매우 중요하다.
로캘은 다음과 같은 형식으로 지정된다.
<언어>_<지역>.<코드집합>[@<변형>]
필요한 로캘 활성화
로캘을 시스템에서 사용하려면 먼저 활성화해야 한다. 모든 이용 가능한 로캘을 보려면 다음 명령어를 사용하라.
$ locale -a
로캘을 활성화하려면 /etc/locale.gen
파일에서 그 로캘 앞의 주석 표시를 제거하라. 이 파일은 시스템에서 사용 가능한 로캘 전부를 포함한다. 로캘을 비활성화하려면 그 로캘을 주석 처리하라. 필요한 로캘을 지정한 후에 시스템을 다음 명령어로 갱신해야 한다.
# locale-gen
지금 사용하고 있는 로캘을 표시하려면 다음을 입력해 보라.
$ locale
한국어 예시
/etc/locale.gen
에서 다음을 지정하라.
ko_KR.UTF-8 UTF-8
루트 권한으로 다음과 같이 시스템을 갱신하라.
# locale-gen
시스템 로캘 설정
시스템 로캘을 지정하려면 locale.conf
파일에 LANG
을 설정하라.
locale.conf
는 행 바꿈으로 구분되는 환경 변수 할당값을 포함한다. LANG
외에도, LC_ALL
을 제외하고 모든 LC_*
변수를 지원한다.
/etc/locale.conf
는 기본적으로 생성되지 않기 때문에 수동으로 만들어야 한다.locale
의 출력이 자신의 기호에 맞다면 가상 루트에 있는 동안 # locale > /etc/locale.conf
를 실행해 설정 시간을 줄일 수 있다./etc/locale.conf
LANG="ko_KR.UTF-8"
고급 설정 예시:
/etc/locale.conf
# 한국어 UTF-8 설정 LANG="ko_KR.UTF-8" # 기본 정렬 방식 유지하도록 설정('.' 파일이 디렉토리 목록의 처음에 표시됨) LC_COLLATE="C" # YYYY년 MM월 DD일 (토) 오후 HH시 MM분 SS초 ("date +%c" 명령어로 시험) 형식으로 날짜 표시하기 LC_TIME="ko_KR.UTF-8"
localectl
을 사용해 locale.conf
에 기본 로캘을 설정할 수도 있다.
- localectl set-locale LANG="ko_KR.utf8"
더 자세한 사항은 localectl(1)과 locale.conf(5)를 참고하라.
로캘은 시스템을 재부팅해야 적용되며 로그인하면 각 세션별로 설정될 것이다.
안전 로캘 설정
gettext를 사용해 번역하는 프로그램은 일반 변수 외에 LANGUAGE
변수를 사용한다. 이 변수는 다음 순서로 사용될 로캘 변수 목록을 지정한다. 선호하는 로캘 번역이 없다면 유사한 로캘 번역이 기본 로캘 대신 사용될 것이다. 예를 들면, 한국어 사용자가 그 대안으로 다음과 같이 미국 영어와 영국 영어를 지정할 수도 있다.
/etc/locale.conf
LANG="ko_KR.UTF-8" export LANGUAGE="en_US:en_GB:en"
개인 사용자 로캘 설정
앞에서도 말했지만 개별 사용자는 시스템 로캘과 다른 로캘을 사용하기를 원할 수 있다. 이를 위해 ~/.bashrc
파일에서 LANG
변수를 설정한다. 예를 들어 ko_KR.UTF-8
로캘을 사용하려면 다음처음 설정하라.
export LANG=en_AU.UTF-8
로캘은 ~/.bashrc
가 읽어들여질 때 갱신된다. 갱신하려면 재로그인하거나 그것을 수동으로 다음과 같이 읽어들여라.
$ source ~/.bashrc
정렬 순서 설정
정렬은 조금 다른 문제이다. 로캘마다 서로 다른 정렬 방법을 사용한다. 잠재적 위험을 피하려고 아치는 /etc/profile
에서 LC_COLLATE="C"
를 지정해었다. 그러나 이 방법은 더 이상 사용되지 않는다. 이 방식을 활성화하려면 /etc/locale.conf
에 다음을 추가하라.
LC_COLLATE="C"
ls 명령은 도트파일, 대문자, 소문자 파일 이름순으로 정렬할 것이다. LC_COLLATE
설정이 없으면 로캘 인식 프로그램은 LC_ALL
이나 LANG
에 따라 정렬하지만, LC_COLLATE
설정은 LC_ALL
이 설정되면 무시될 것이다. 이것이 문제가 된다면 /etc/profile
에 다음을 추가해 LC_ALL의 설정을 해제하라.
export LC_ALL=
LC_ALL은 /etc/locale.conf
에서 설정될 수 없는 유일한 변수임을 명심하라.
주일의 첫 번째 요일 설정
많은 나라에서 주일의 첫 번째 요일이 월요일이다. 이를 조정하려면 /usr/share/i18n/locales/<자신의 로캘>
에서 다음을 LC_TIME
부분에 추가하거나 변경하라. :
week 7;19971130;5 first_weekday 2 first_workday 2
그리고 시스템을 갱신하라.
# locale-gen
export LC_MESSAGES=C
를 설정한 상태에서 문제가 되는 프로그램의 출력을 질문 글에 포함하라. 그러면 오류나 경고 같은 프로그램 출력이 영어로 표시되어 더 많은 사람이 답할 수 있을 것이다. 비영어 포럼이라면 이렇게 할 필요가 없다.문제 해결
터미널에서 UTF-8을 지원하지 못할 경우
불행하게도 일부 터미널은 UTF-8을 지원하지 않는다. 이런 경우에는 다른 터미널을 사용해야 한다. UTF-8 지원 터미널로 다음과 같은 것이 있다.
- vte 기반 터미널
- gnustep-terminal
- konsole
- mlterm
- rxvt-unicode
- xterm
Xterm에서 UTF-8을 지원하지 못할 경우
xterm은 uxterm
이나 xterm -u8
로 실행해야만 UTF-8을 지원한다.
Gnome-터미널과 rxvt-unicode 터미널에서 UTF-8을 지원하지 못할 경우
UTF-8 로캘에서 이 프로그램을 실행해야 한다. 그렇지 않으면 UTF-8 지원을 하지 않는다. ko_KR.UTF-8
로캘을 위에서 설명한 대로 기본 로캘(또는 다른 언어 UTF-8) 로 설정하고 재부팅하라.