현재 쉘에서 LANG 변수를 변경하십시오.

현재 쉘에서 LANG 변수를 변경하십시오.

CentOS 8에서 LANG 변수를 이탈리아어로 변경하려고 하면 변경되지 않습니다. 여기 제가 하고 있는 일의 예가 있습니다.

LANG=it_IT.UTF-8

그런 다음 이 작업을 수행하면 ls --help결과가 여전히 영어로 표시됩니다.

감사해요.

답변1

이것이 작동하려면 다음과 같은 몇 가지 조건이 충족되어야 합니다.

  • 로케일 it_IT.UTF-8은 시스템에서 사용 가능해야 합니다. 확인하다locale -a | grep it
  • 해당 애플리케이션의 이탈리아어 번역이 가능해야 합니다(GNU의 경우 ls일반적으로 /usr/share/locale/it/LC_MESSAGES/coreutils.moCentOS와 같은 GNU 시스템과 유사함).
  • 변수에 액세스하려면 변수 LANG를 환경으로 내보내야 합니다 ls( export LANG).
  • 특히, GNU 시스템의 메시지 언어 설정은 및 변수 $LANGUAGE보다 우선합니다 ( 또는 가 C/POSIX 로케일로 설정되지 않은 경우) . 따라서 가 있으면 다른 모든 항목을 로 설정하더라도 프랑스어 메시지(사용 가능한 경우)를 받게 됩니다 .LANGLC_*LC_MESSAGELANGLC_ALLLANGUAGE=fr:en:itit_IT.UTF-8
  • 메시지 언어 설정의 경우, 다른 모든 것 LC_MESSAGES보다 우선하며 LANG재정의 LC_ALL됩니다( 위에 표시된 대로 / LANGUAGE가 아닌 경우 ).CPOSIX

의 출력에는 locale현재 설정에 대한 요약이 제공됩니다. env | grep -e LANG -e LC_로케일 관련 목록을 제공해야 합니다환경현재 설정된 변수입니다.

답변2

LANGSun Microsystems가 현재 지역화의 기본을 개발했던 1980년대의 오래된 환경 변수입니다.

이 변수는 계속 사용되지만 공식 표준의 다른 변수가 정의되지 않은 경우 대체용으로만 사용됩니다.

검색 순서는 다음과 같습니다.

  • LC_ALL은 모든 것을 포괄하는 데 사용됩니다.

  • LC_MESSAGES 및 이와 유사한 일반적인 사용법

  • LC_ALL이나 로케일 유형별 정의를 모두 사용할 수 없는 경우 LANG입니다.

재정의하려면 문서화된 LC_ALL을 사용하세요.

답변3

LC_ALL=it_IT.UTF-8을 제외하고 시도해 보세요 .LANGUAGE=it_IT.UTF-8LANG=it_IT.UTF-8

현재 로캘이 올바르게 설정되어 있는지 확인하세요 locale.

또한 it_IT.UTF-8로케일이 사용 가능한지 확인하십시오 locale -a.

LANGUAGE=it_IT.UTF-8예를 들어 메시지 텍스트 helpman페이지의 메시지 텍스트를 변경하도록 설정하기만 하면 됩니다 . 이는 LANGUAGE번역이 존재하는 메시지의 언어를 설정한다는 점을 기억하십시오. 그래서 ls --help정확히 이탈리아어는 아닐 수도 있습니다.

답변4

tmuxUbuntu에서 사용하면 아이콘 등을 표시할 수 없습니다.

사용하여

export LANG=en_IN.utf-8

문제가 해결되었습니다. 올바르게 표시하기 위해 사용하는 또 다른 방법은 tmux -u.

관련 정보