LINUX.ORG.RU

Локаль + GIMP,Galeon


0

0

Набираю в xterm: gimp &
- кликаю "Text" и ввожу русские буковки. Круто.

Теперь делаю export LANG=C и еще вызываю gimp. Русские буковки
не вводятся, что и понятно - xkb не знает, какую раскладку русской
клавиатуры ему подключить. Теперь запускаю galeon. Надписи в менюшках
стали английскими - замечательно. Теперь захожу на сайт www.ya.ru,
и там в формочке русские буковки... вводятся! Почему?

Большое спасибо!


Потому что не следует путать такие понятия как локаль и настройки расширения XKB X сервера. При запуске в другой локали (что достигается изменением переменной LANG) приложения просто начинают с Вами болтать на другом языке (на самом деле ещё меняется формат даты/времени/валюты/дробей и прочая дребедень, но это детали), но это отнюдь не препятствует Вам набирать с клавиатуры текст на разных языках. Вас же не смущает, что, например, в OpenOffice.org и прочих прогах Вы набираете как по-русски, так и по-английски, когда Вам это нужно? В файле конфигурации X сервера (XF86Config) у Вас прописано две страны - us (США) и ru (Россия), поэтому в любом случае Вы сможете переключать клаву между английским и русским, а локаль ставьте хоть японскую, хоть арабскую, если надо.

wildhoney
()
Ответ на: комментарий от wildhoney

Вообще-то я думал так: после переключения раскладки, при нажатии клавиши, допустим, "ц" (которая над "w"), xkb, в соответствии с файлом /etc/X11/xkb/symbols/ru, генерирует вызов "Cyrillic_tse" - именно за _это_ и отвечает раскладка "ru", которая указана в XF86Config. Далее, нужно залезть в какой-нибудь русский шрифт и выдать на экран символ, который соответствует этой "Cyrillic_tse". То есть, нужно найти номер символа "ц" и скомандовать Х серверу выдать на экран символ номер такой-то из укзанного кириллического шрифта. Но - _какого_ русского шрифта? У меня стоит несколько таких шрифтов, с разными кодировками. Если стоит локаль ru_RU.KOI8-R, то он должен залезть в указанный кириллический шрифт и искать номер символа "ц" в КОДИРОВКЕ KOI8. Если ему сделать локаль CP1251, он полезет снова в шрифт KOI, но выдаст оттуда символ, который стоит по номеру символа "ц" в кодировке CP1251 ("Г", стало быть). Простой пример - запусти

xterm -fn <какой-нибудь-шрифт-ср1251>, установи локаль ru_RU.KOI8-R, и набери что-нибудь по-русски :)

murla
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.