예비 의견: 질문은 ~이야아니요~에 대한환경LC_ALL
LC_TIME
, 등을 변경하여 로케일을 변경합니다. LANG
이는 로케일을 변경하는 것과 비슷합니다.정의, 또는 각각을 사용 하여 /usr/share/i18n/locales/de_DE
이러한 시스템 설정을 변경하는 것보다 더 적절한 옵션에 대한 권장 사항을 얻습니다.
이것의도얻는 것이다ISO 시간 표현 %Y-%m-%d
그리고 %H:%M:%S
불리한 부작용도 없습니다.
온라인에서 찾은 제안은 여전히 적합하지 않습니다(예: 로케일을 "덴마크어"로 설정하면 요일 이름의 기본 철자가 유지되지 않습니다).
현재 원하는 동작을 얻기 위해 볼 수 있는 유일한 옵션은 을 변경하는 것입니다 /usr/share/i18n/locales/de_DE
. 시스템이 업데이트되면 변경된 파일을 다시 덮어쓸 수 있으므로 이는 완벽한 솔루션이 아닙니다.
내 질문은 다음과 같습니다
- 원하는 기능을 얻기 위해 특정 시스템 로케일 파일을 변경하는 것보다 더 나은 로케일 관련 옵션이 있습니까?
- 특정 로케일 정의 파일을 변경할 때 문제가 있나요? (시스템이 업데이트될 때 이 파일을 덮어쓰는 것을 방지하는 방법은 무엇입니까?)
- 다음을 정의하는 것이 좋습니다.새로운기존 로케일 파일의 특정 변형을
LC_*
설정에서 사용하시겠습니까? (시스템은 이 새로운 파일/정의에 대해 어떻게 올바르게 학습합니까?) - 다른 제안이 있나요?
답변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-*-base
language-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
사용자 정의 로케일 정의 파일과 동일한 이름의 관련 사용자 정의 섹션만 가리키십시오. 전역 설정 중 하나를 조정할 수 없습니다.