locale 설정에서 LANG, LC_ALL, 그리고 개별 LC_ 변수들 사이의 우선순위

개발하는 G0·2024년 4월 17일
0

locale 설정에서 LANG, LC_ALL, 그리고 LC_MESSAGES와 같은 개별 LC_ 변수들 사이의 우선순위는 다음과 같습니다:

  1. LC_ALL - 이 변수가 설정되어 있으면, 시스템의 모든 locale 설정을 이 값으로 오버라이드합니다. 따라서 이 변수는 모든 LC_ 변수들(예: LC_MESSAGES, LC_CTYPE 등)과 LANG보다 최고 우선순위를 가집니다. 만약 LC_ALL이 설정되어 있다면, 다른 모든 locale 설정은 무시됩니다.

  2. 개별 LC_ 변수들 (LC_MESSAGES, LC_CTYPE, 등) - 이들 각각의 변수는 특정 locale 관련 설정을 제어합니다. 예를 들어, LC_MESSAGES는 시스템 메시지의 언어를 설정합니다. LC_ALL이 설정되지 않았다면, 이 변수들은 LANG보다 우선순위가 높습니다. 즉, LC_MESSAGES는 메시지 출력의 언어를, LC_CTYPE는 문자 처리 방식을 결정합니다.

  3. LANG - 이 변수는 기본적인 시스템 locale을 설정합니다. 모든 LC_ 변수들이 명시적으로 설정되지 않은 경우, LANG의 값이 사용됩니다. LANG은 일종의 기본값 역할을 하며, 특정 LC_ 변수가 설정되지 않았을 때 그 변수의 설정을 제공합니다.

요약

  • LC_ALL은 다른 모든 locale 설정을 오버라이드합니다.
  • 개별 LC_ 변수들은 LANG보다 높은 우선순위를 가지며, 각각의 설정 영역을 구체적으로 제어합니다.
  • LANG은 다른 LC_ 변수들이 설정되지 않은 경우에 대한 기본 설정을 제공합니다.

이러한 우선순위를 이해하면 특정 환경에서 어떻게 locale이 결정되는지 더 잘 파악할 수 있습니다.

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

나같은 경우에는 LC_ALL은 건드리지 않고
LANG만 ko_KR.UTF-8로 설정하고
LC_MESSAGES을 en_US.UTF-8로 설정했더니
오류메세지 자체는 영어로 뜨고 유니코드 한글문자들은 한글대로 떠서 쓰기 편리하였음

profile
초보 개발자

0개의 댓글