나만의 사용자 정의를 만들어 여기 locale
에 배치했으며 /etc/locale.conf
, 가상 콘솔(Ctrl+Alt+F2)에 로그인하면 성공적으로 적용됩니다. 그러나 내 Gnome3 세션에서는 이러한 변수가 설정되지 않았습니다. 터미널 애플리케이션의 경우 에 넣을 수 있지만 .bashrc
Thunderbird 및 Pidgin과 같은 그래픽 애플리케이션에는 도움이 되지 않습니다.
나는 다음 팁을 따르려고 노력합니다.쉘 초기화에서 로케일을 사용하지 않는 그놈 세션이 오류를 시뮬레이션한 경우에도로케일 - ArchWiki.pam_environment
파일을 생성해도 locale
s는 여전히 Gnome3에 의해 설정됩니다. Gnome 설정에 구성 대화 상자가 있지만 사전 정의된 locale
조합 중 매우 제한된 세트만 설정할 수 있으며 사용자 정의할 수 없습니다.
내 홈 디렉토리의 관련 파일:
user@localhost:~$ ls -lah .dmrc .pam_environment .session .xsession .xsessionrc
lrwxrwxrwx. 1 user user 16 12. Jun 08:57 .dmrc -> /etc/locale.conf
lrwxrwxrwx. 1 user user 16 11. Jun 20:23 .pam_environment -> /etc/locale.conf
lrwxrwxrwx. 1 user user 16 12. Jun 09:09 .session -> /etc/locale.conf
lrwxrwxrwx. 1 user user 16 12. Jun 09:07 .xsession -> /etc/locale.conf
lrwxrwxrwx. 1 user user 9 13. Jun 11:22 .xsessionrc -> .xsession
-rw-rw-r--. 1 user user 66 13. Jun 11:13 .profile
user@localhost:~$ cat .profile
source /etc/locale.conf
콘텐츠 /etc/locale.conf
:
LANG="en_US.utf8"
LC_TIME="de_MY.utf8" # NB: de_MY
LC_MONETARY="de_DE.utf8"
LC_PAPER="de_DE.utf8"
LC_NAME="de_DE.utf8"
LC_ADDRESS="de_DE.utf8"
LC_TELEPHONE="de_DE.utf8"
LC_MEASUREMENT="de_DE.utf8"
LC_IDENTIFICATION="de_DE.utf8"
locale
Gnome3에서 사용자 정의를 설정하는 방법을 아는 사람이 있습니까 ?
답변1
배경 정보
GNOME Shell 3.14.4를 사용하여 Fedora 21에서 이 솔루션을 테스트했지만 다른 버전에서도 작동할 것이라고 믿습니다.
가장 먼저 이해해야 할 점은 GNOME 데스크탑 환경이 시스템 전체 로케일 정의를 무시하므로 영향을 받지 않는다는 것입니다 /etc/locale.conf
. 또한 일부 응용 프로그램은 자체 로케일 구성을 갖고 시스템이나 GNOME 설정을 전혀 사용하지 않을 수도 있습니다. 이 안내서에서는 그놈과 시스템이 로케일 관점에서 일관되도록 로케일을 필요에 맞게 사용자 정의하는 방법을 설명하겠습니다.
현재 로캘 상태 확인
시스템 전체 설정
시스템 전체 로케일 설정은 이
/etc/locale.conf
파일에 저장되며, 이는 초기 시작 시 사용됩니다.체계악마. 에 구성된 로케일 설정은/etc/locale.conf
개별 프로그램이나 개별 사용자가 이를 재정의하지 않는 한 각 서비스나 사용자에게 상속됩니다.
현재 로케일 상태를 보려면 다음을 실행할 수 있습니다.
$ localectl status
System Locale: LANG=en_US.UTF-8
LC_NUMERIC=en_US.UTF-8
LC_TIME=en_US.UTF-8
LC_MONETARY=en_US.UTF-8
LC_PAPER=en_US.UTF-8
LC_MEASUREMENT=en_US.UTF-8
VC Keymap: us
X11 Layout: us
그놈 설정
$ gsettings get org.gnome.system.locale region
'en_US.UTF-8'
그놈에는 하나의 설정만 있습니다. 잠깐 살펴보며그놈 제어 센터의 소스 코드set_localed_locale()
함수가 호출되면 다음 범주(LC_TIME, LC_NUMERIC, LC_MONETARY, LC_MEASURMENT, LC_PAPER)를 모두 로 설정하는 것으로 보입니다 org.gnome.system.locale region
.
사용자 정의 로케일을 만들지 않고는 서로 다른 로케일을 혼합하는 것이 불가능해 보일 수 있지만 다행히도 그다지 복잡한 작업은 아닙니다.
사용자 정의 로캘 만들기
예를 들어 설명하는 것이 가장 쉬운 방법이라고 생각합니다. 내 특별한 경우에는 주로 히브리어(힘_IL) 그러나 LC_NAME, LC_MESSAGES의 출처는 다음과 같습니다.zh_CN및 LC_TIME (수정된 first_weekday
합계 first_workday
)en_GB.
로캘 정의 파일 가져오기
어떤 로케일을 혼합하고 싶은지 알아야 합니다. 먼저 에서 찾을 수 있는 관련 정의 파일을 찾아야 합니다 /usr/share/i18n/locales/
. 예제로 돌아가서 다음이 필요합니다.힘_IL,zh_CN그리고en_GB. 집에 작업 폴더를 설정하고 필요한 파일을 여기에 복사했습니다.
$ cd /usr/share/i18n/locales
$ mkdir -v ~/custom-locale ; cp -v he_IL en_US en_GB ~/custom-locale/
새 정의 파일 만들기
나는 내 지역에 전화하기로 결정했습니다hc_IL그리고 가져갔다힘_IL기본으로. 다음 줄은 해당 문자열의 모든 항목을 hc_IL
내용 으로 대체할 새 파일을 만듭니다.he_IL
힘_IL파일에 있어요hc_IL.
$ cd ~/custom-locale/
$ sed 's/he_IL/hc_IL/g' he_IL > hc_IL
새 정의 파일 수정
이제 필요에 따라 새 로케일을 사용자 정의할 수 있습니다. 즐겨 사용하는 텍스트 편집기를 사용하여 새로 생성된 파일을 엽니다 ~/custom-locale/hc_IL
. 나는 사용한다윔(로케일 정의 파일에 대해 올바른 구문 강조 표시가 있습니다):
$ vim ~/custom-locale/hc_IL
아직 마음에 드는 에디터를 선택하지 못한 분들을 위해윔그들이 좋아하지 않는다면, 당신은 사용할 수 있습니다편집자:)
$ gedit ~/custom-locale/hc_IL
파일 구조는 그리 복잡하지 않습니다. 기본적으로 부품으로 제작됩니다. ~에서로케일(5)매뉴얼 페이지:
로케일 정의에는 각 로케일 범주에 대한 섹션이 있습니다. 각 섹션은 다른 기존 로캘에서 복사하거나 처음부터 정의할 수 있습니다. 카테고리를 복사하려는 경우 정의에서 유효한 키워드는 다음과 같습니다.복사그 뒤에는 복사해야 하는 로케일 이름이 옵니다.
개념복사굉장히 유용하다. 시간이 절약되고 결과 문서가 명확하고 간결해집니다. 예를 들어 전체 섹션을 복사하는 대신 다음을 수행할 수 있습니다.
LC_MESSAGES
copy "en_US"
END LC_MESSAGES
로케일 정의 파일에 대한 전체 문서는 다음을 통해 액세스할 수 있습니다.
$ man 5 locale
그러나 기존 로케일이 혼합된 사용자 정의 로케일을 생성하려는 경우 모든 세부 사항을 알 필요는 없습니다.
제 경우에는 다음과 같은 카테고리와 키워드를 수정했습니다.
LC_IDENTIFICATION
title "Custom Hebrew locale" source "mydomain.ws" address "http:////www.mydomain.ws" contact "" email "[email protected]" tel "" fax "" language "Hebrew" territory "Israel" revision "1.0" date "2015-04-21"
노트:모든 것"범주..” 라인 입력LC_IDENTIFICATION를 사용하여 파일을 생성하는 동안 섹션이 수정되었습니다
sed
. 그러니 우리는 더 이상 그것들을 만질 필요가 없습니다.LC_TIME
전체 부분을 복사했어요en_GB그리고 주의 첫 번째 날과 첫 번째 근무일을 나타내는 행만 수정합니다.
first_weekday 1 first_workday 1
나머지 카테고리는 그대로 두거나 해당 내용을 다음으로 대체합니다.복사지침은 다음과 같습니다.
LC_NAME copy "en_US" END LC_NAME
이제 정의 파일이 준비되었습니다. 파일을 저장하는 것을 잊지 마세요 :)
새 로케일 컴파일 및 복사
다음 명령을 사용하여 새 로캘 컴파일을 완료합니다.뿌리또는 사용스도. hc_IL
해당 로케일로 바꾸십시오 .
$ sudo localedef -c -v -i hc_IL -f UTF-8 hc_IL.UTF-8
컴파일이 성공하면 컴파일된 로케일 데이터가 아카이브 파일에 추가됩니다 /usr/lib/locale/locale-archive
.
새 로케일 정의 파일을 로케일 정의 디렉터리에 복사합니다. hc_IL
해당 로케일로 바꾸십시오 .
$ sudo cp -v hc_IL /usr/share/i18n/locales/
새 로케일 활성화
이 단계에서는 새 로케일을 사용하도록 시스템과 GNOME을 구성합니다.
시스템 전체 설정
파일을 /etc/locale.conf
다음과 같이 편집하세요.뿌리LC_
새 로케일로 시작하는 모든 줄을 설정하세요 . 예를 들어:
LANG=en_US.UTF-8
LC_NUMERIC=hc_IL.utf8
LC_TIME=hc_IL.utf8
LC_MONETARY=hc_IL.utf8
LC_PAPER=hc_IL.utf8
LC_MEASUREMENT=hc_IL.utf8
그놈 설정
GNOME에서 새 로케일을 활성화하려면 다음 명령을 실행하십시오. hc_IL
해당 로케일로 바꾸십시오 .
$ gsettings set org.gnome.system.locale region "hc_IL.utf8"
새 설정 확인
마지막 단계는 모든 것이 예상대로 작동하는지 확인하는 것입니다. 모든 설정을 다시 로드하려면 재부팅하는 것이 가장 쉽습니다.
- 시스템이 올바르게 구성되었는지 확인하려면 "현재 로케일 상태 확인" 섹션을 참조하십시오.
그놈 쉘과 로케일 종속 응용프로그램(그래픽 및 콘솔)을 사용하고 새 로케일에서 예상대로 작동하는지 확인하십시오. 예를 들어, LC_TIME을 사용자 정의한 경우
date
다음 명령을 실행하여 날짜 형식을 확인할 수 있습니다.$ date +%x 21/04/15
노트:모든 것은 Fedora 21과 GNOME 3.14에서 테스트되었습니다. 다른 Linux 배포판에는 추가 단계나 다른 단계가 필요할 수 있습니다.
지침에 문제가 있는 경우 댓글을 남겨주세요.