Locale (한국어)

From ArchWiki
Jump to: navigation, search

로캘은 리눅스에서 사용자가 어떤 언어를 사용하는지 지정하는 데 사용된다. 로캘은 사용될 문자 집합을 같이 지정하기 때문에 로캘을 바르게 설정하는 것이 특히 언어에 비아스키 문자가 있을 경우에 매우 중요하다.

로캘은 다음과 같은 형식으로 지정된다.

<언어>_<지역>.<코드집합>[@<변형>]

필요한 로캘 활성화

로캘을 시스템에서 사용하려면 먼저 활성화해야 한다. 모든 이용 가능한 로캘을 보려면 다음 명령어를 사용하라.

$ locale -a

로캘을 활성화하려면 /etc/locale.gen 파일에서 그 로캘 앞의 주석 표시를 제거하라. 이 파일은 시스템에서 사용 가능한 로캘 전부를 포함한다. 로캘을 비활성화하려면 그 로캘을 주석 처리하라. 필요한 로캘을 지정한 후에 시스템을 다음 명령어로 갱신해야 한다.

# locale-gen

지금 사용하고 있는 로캘을 표시하려면 다음을 입력해 보라.

$ locale
도움말: 단지 하나의 언어가 시스템에서 대부분 사용될지라도 다른 로캘을 활성화하는 게 도움이 되거나 심지어 필요할 수 있다. en_US를 사용하지 않는 사용자가 있는 다중 사용자 시스템이라면 그 각자의 로캘이 시스템에서 지원되어야 한다.

한국어 예시

/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에 기본 로캘을 설정할 수도 있다.

  1. localectl set-locale LANG="ko_KR.utf8"

더 자세한 사항은 man 1 localectlman 5 locale.conf를 참고하라.

로캘은 시스템을 재부팅해야 적용되며 로그인하면 각 세션별로 설정될 것이다.

안전 로캘 설정

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) 로 설정하고 재부팅하라.

같이 보기