로케일 정의 변경(로케일이 아님)

로케일 정의 변경(로케일이 아님)

예비 의견: 질문은 ~이야아니요~에 대한환경LC_ALLLC_TIME, 등을 변경하여 로케일을 변경합니다. LANG이는 로케일을 변경하는 것과 비슷합니다.정의, 또는 각각을 사용 하여 /usr/share/i18n/locales/de_DE이러한 시스템 설정을 변경하는 것보다 더 적절한 옵션에 대한 권장 사항을 얻습니다.

이것의도얻는 것이다ISO 시간 표현 %Y-%m-%d그리고 %H:%M:%S불리한 부작용도 없습니다.

온라인에서 찾은 제안은 여전히 ​​적합하지 않습니다(예: 로케일을 "덴마크어"로 설정하면 요일 이름의 기본 철자가 유지되지 않습니다).

현재 원하는 동작을 얻기 위해 볼 수 있는 유일한 옵션은 을 변경하는 것입니다 /usr/share/i18n/locales/de_DE. 시스템이 업데이트되면 변경된 파일을 다시 덮어쓸 수 있으므로 이는 완벽한 솔루션이 아닙니다.

내 질문은 다음과 같습니다

  1. 원하는 기능을 얻기 위해 특정 시스템 로케일 파일을 변경하는 것보다 더 나은 로케일 관련 옵션이 있습니까?
  2. 특정 로케일 정의 파일을 변경할 때 문제가 있나요? (시스템이 업데이트될 때 이 파일을 덮어쓰는 것을 방지하는 방법은 무엇입니까?)
  3. 다음을 정의하는 것이 좋습니다.새로운기존 로케일 파일의 특정 변형을 LC_*설정에서 사용하시겠습니까? (시스템은 이 새로운 파일/정의에 대해 어떻게 올바르게 학습합니까?)
  4. 다른 제안이 있나요?

답변1

안에최근 질문저는 이러한 변화에 대한 모범 사례가 무엇인지 물었습니다. 아직 답변이 없습니다. 하지만 제가 사용하고 있는 레시피를 알려드릴 수 있으며 그 레시피가 효과가 있다는 것이 입증되었습니다. 모든 프로그램은 날짜를 올바르게 선택합니다.

내 설명은 Ubuntu에 대한 것이지만 Debian 및 Mint에도 적용될 수 있습니다.

준비

사용자 정의하려는 로케일 설정을 /usr/share/i18n/locales새 파일에 복사하십시오. 예를 들어

cp /usr/share/i18n/locales/de_DE /usr/share/i18n/locales/de_DE@isodate

조정모두다음 부분을 제외하고 LC_TIME:

copy "de_DE"

LC_TIME원하는 결과에 맞게 이 섹션을 조정하세요 . 위에 링크한 질문의 설정을 템플릿으로 사용할 수 있습니다. 이것이 바로 당신이 원하는 것 같습니다.

해당 로캘에서 "AM/PM" 표기법을 사용하지 않는 경우 공백으로 설정하세요.

t_fmt_ampm ""
am_pm   "";""

시스템에 알려주세요

파일을 편집 /var/lib/locales/supported.d/local하고 로케일 정의에 대한 정보를 추가하십시오. 즉, 위의 파일 이름이 다음과 같은 줄을 추가하고 isodate, 그렇지 않으면 다음을 조정합니다.

de_DE.UTF-8@isodate UTF-8

존재하지 않는 경우 /var/lib/locales/supported.d/local동일한 이름의 파일을 만듭니다. 시스템의 패키지가 업데이트 되면 덮어쓰여질 수 있으므로 이 폴더의 패키지 en나 파일에 변경 사항을 적용하지 마십시오 de.language-pack-*-baselanguage-pack-*

이제 다음을 실행하세요 dpkg-reconfigure locales.

# dpkg-reconfigure locales
Generating locales...
  de_DE.UTF-8@isodate... done
  de_DE.UTF-8... up-to-date
Generation complete.

귀하의 경우 이는 de_DE.UTF-8@isodate로캘이 생성되었음을 나타냅니다(구문 문제가 없다고 가정).

마지막으로 다음을 추가하세요 /etc/default/locale.

LC_TIME="de_DE.UTF-8@isodate"

이는 다음을 보장합니다.오직 LC_TIME정의된 기본 로캘을 사용하여 재정의합니다 LANG.

date다시 로그인하면 해당 libc 런타임 기능을 사용하는 다른 도구를 사용할 때 새로운 ISO 날짜/시간을 볼 수 있습니다.


의도여기노력하지 않고도 할 수 있는 가장 덜 침해적인 변화이다반대하다시스템(예: 패키지 관리자 및 친구용) 물론 간단하게 로케일 복사본을 만들어 위와 비슷한 방식으로 설치한 다음 조정할 수도 있습니다 LANG. 요점은 패키지 업데이트로 인해 변경 사항을 덮어쓰지 않으려는 경우 다음을 수행할 수 있다는 것입니다.~ 해야 하다사용자 정의 사본을 사용하십시오(원하는 사용자 정의, copy즉 단순히 원본 부분 유지). 그리고 LANG다음을 가리키는 것으로 변경할지 여부가득한사용자 정의 로케일 정의 -또는당신이 상관없이다음에 추가 LC_TIME사용자 정의 로케일 정의 파일과 동일한 이름의 관련 사용자 정의 섹션만 가리키십시오. 전역 설정 중 하나를 조정할 수 없습니다.

관련 정보