XDM 로그인 화면을 현지화하기로 결정했지만 스웨덴어 문자가 깨졌습니다.
나는 다음과 같은 목적으로 Debian Wheezy를 사용합니다./etc/X11/xdm/Xresources
Xcursor.theme:whiteglass xlogin*login.translations: #재정의 \ CtrlR: 표시() 중단\n\ F1: 세션 매개변수 설정(안전 장치) 완료 필드()\n\ 삭제: delete-character()\n\ 왼쪽: 문자를 뒤로 이동()\n\ 오른쪽: 문자를 앞으로 이동()\n\ 홈: 처음으로 이동()\n\ end: end()로 이동\n\ CtrlKP_Enter: set-session-argument(failsafe) 종료 필드()\n\ KP_Enter: set-session-argument() 종료 필드()\n\ CtrlReturn: set-session-argument(failsafe) 종료 필드()\n\ 반환: set-session-argument() 종료 필드() !xlogin*인사말: CLIENTHOST까지 V\303\244lkommen xlogin*인사말: CLIENTHOST까지 Välkommen xlogin*name 프롬프트: 답변: !xlogin*fail: 기분이 좋아요! xlogin*fail: Fel lösenord! !xlogin*greetFace: Inconsolata:size=16 !xlogin*얼굴: Inconsolata:size=14 !xlogin*promptFace: Inconsolata:size=14 !xlogin*failFace: Inconsolata:size=20 xlogin*greetFace -*-fixed-r-*--*-200-*-*-*-*-iso8859-15 xlogin*failFace -*-fixed-r-*--*-200-*-*-*-*-iso8859-15 xlogin*promptFace -*-fixed-r-*--*-200-*-*-*-*-iso8859-15 xlogin*face -*-fixed-r-*--*-200-*-*-*-*-iso8859-15 xlogin*테두리 너비: 0 xlogin*프레임폭: 0 xlogin*innerFramesWidth: 0 xlogin*shd 색상: grey30 xlogin*hi 색상: grey90 xlogin*배경: 회색 !xlogin*전경: 진한 녹색 xlogin*인사색상: 검정색 xlogin*실패 색상: 빨간색 *전경: 검정색 *배경: #fffff0 xlogin*로고 파일 이름:/home/stemid/heart.xpm xlogin*useShape: true xlogin*logoPadding: 10 XConsole.text.Geometry: 480x130 XConsole.verbose: 참 XConsole*iconic: 참 XConsole* 글꼴: 고정됨 선택기*형상: 700x500+300+200 선택기 *allowShellResize: false Chooser*viewport.forceBars: true 선택기 *label.Font:*-신세기 교과서-Bold-i-Normal-*-240-* Chooser*label.label: CLIENTHOST의 XDMCP 호스트 메뉴 선택기*목록.글꼴:-*-*-medium-r-normal-*-*-230-*-*-c-*-iso8859-1 선택기 *Command.font: *-new Century schoolbook-bold-r-normal-*-180-*
/etc/X11/xdm/Xsetup
#!/bin/sh # # 이 스크립트는 로그인 위젯을 표시하기 전에 루트로 실행됩니다. 내보내기_언어=sv_SE 내보내기 LANG=sv_SE 내보내기LC_ALL=sv_SE xsetroot-solid "#002b36" 수면 10 && import -w root /home/stemid/.login_screen.jpg & chown Stemid:stemid /home/stemid.login_screen.jpg &
처음에는 환경에서 sv_SE.UTF-8을 사용해 보았지만 두 로케일이 모두 Debian locale-gen에서 활성화되었습니다.
~/.xsession
내보내기_언어=sv_SE 내보내기 LANG=sv_SE 내보내기LC_ALL=sv_SE 테스트 -f ~/.Xresources && xrdb ~/.Xresources xsetroot-solid "#002b36" xscreensaver - 스플래시 없음 & 쥐약을 실행한다
또한 .profile에서 로케일 설정을 시도했습니다.
데비안은 일반적으로 xorg.conf를 필요로 하지 않지만 그 안에 두 개의 파일을 만들었습니다 /etc/X11/xorg.conf.d
. 하나는 시냅틱스 터치패드용이고 다른 하나는 글꼴 경로용입니다.
"파일"섹션 모듈 경로 "/usr/lib/xorg/modules/" 글꼴 경로 "/usr/share/fonts/X11/misc/" 글꼴 경로 "/usr/share/fonts/X11/TTF/" 글꼴 경로 "/usr/share/fonts/X11/OTF" 글꼴 경로 "/usr/share/fonts/X11/Type1/" 글꼴 경로 "/usr/share/fonts/X11/100dpi/" 글꼴 경로 "/usr/share/fonts/X11/75dpi/" 글꼴 경로 "/usr/share/fonts/X11/misc/artwiz-aleczapka-se-1.3/" 끝 부분
또한 스웨덴어를 특별히 지원하는 글꼴을 설치해 보았지만 xfontsel의 줄을 사용하여 Xresources에서 사용할 수 없습니다.
xlsfonts에는 새로운 artwiz 글꼴을 포함하여 내가 기대하는 모든 글꼴이 나열되어 있습니다. 제가 보기에는 글꼴 문제가 아니라 인코딩 문제인 것 같습니다.
또한 세 가지 설정을 모두 적용하여 X를 다시 시작해 보았습니다 dpkg-reconfigure locales
. 이것들은 제가 활성화하고 각각을 기본값으로 테스트한 유일한 3개의 로케일입니다.
- sv_SE
- sv_SE.ISO-8859-1
- sv_SE.ISO-8859-15
- sv_SE.UTF-8
답변1
귀하의 환경이 그런 식으로 설정되어 있더라도 xdm이 UTF-8을 지원하지 않는 것 같습니다. 문자열의 해석과 문자열에 포함될 수 있는 인코딩을 처리하는 것은 여전히 애플리케이션에 달려 있습니다.
이 문제를 해결하기 위해 utf8로 인코딩된 문자열을 제거하고 해당 ISO-8859-15 문자열로 대체했습니다(사용할 iso-8859-15 시퀀스 목록을 얻을 수 있음 man iso_8859-15
). 그래서 이것은 나에게 효과가 있는 것 같습니다:
xlogin*greeting: V\344lkommen till CLIENTHOST
xlogin*namePrompt: Anv\344ndare:
xlogin*fail: Fel l\366senord!
이는 또한 Xsetup에서 아무 것도 설정할 필요가 없다는 것을 의미합니다(처음에는 sv_SE.utf8을 사용해 보았습니다).
답변2
ä
Latin-1은 \303\244
UTF-8 입니다 ä
. 분명히 디스플레이 관리자는 문자열을 Latin-1로 해석하고 있지만 편집자는 UTF-8을 사용합니다.
한 가지 해결책은 이러한 리소스를 UTF-8에서 Latin-1로 다시 인코딩하는 것입니다. X 리소스는 문자열이 아닌 바이트 문자열입니다. 어떤 인코딩에 포함되어 있는지 결정하는 것은 애플리케이션에 달려 있습니다.
또 다른 해결책은 xlogin에 UTF-8을 사용하도록 지시하는 것입니다. Latin-1을 사용하도록 구성했습니다. 인코딩 표시가 없는 로케일은 sv_SE
이전 버전과의 호환성을 위해 Latin-1 인코딩을 사용합니다. 이 줄을 /etc/X11/xdm/Xsetup
다음으로 변경하십시오.
export LC_CTYPE=sv_SE.UTF-8
LC_MESSAGES
(오류 및 정보 메시지), LC_COLLATE
(정렬 순서, 그러나 xlogin에서는 아무 작업도 수행할 수 없을 것 같습니다) 및 LC_TIME
(날짜 및 시간 형식)을 설정하고 싶을 수도 있습니다 . 또는 변수에 의해 재정의 LANG
되지 않는 한 모든 항목을 설정하는 set 입니다. LC_xxx
설정은 LC_ALL
모든 로캘 범주를 이 값으로 강제 설정하며 여기서는 필요하지 않으며 LANGUAGE
언어를 사용할 수 없는 경우 대체 언어를 지정하려는 경우에만 유용합니다.