LINUX.ORG.RU

getenv ("LANG")

anonymous
()

К сожалению это даст только текущую локаль системы. А что, если я напишу в XF86Config в конфигурации клавиатуры строку Option "XkbLayout" "us,ru,ja,en"?

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

> даст только текущую локаль системы.

Поправочка - текущую локаль. Не системы, процесса. Признаком хорошего тона является ввод в той кодировке, в которой попросили - если LANG=ru_RU.KOI8-R, то пользователь, очевидно желает получить в KOI8-R, а не в CP1251. Если же приходят символы, отсутствующие в данной кодировке (например, хирагана/ктакана/канджи), то дальнейшие действия зависят от программы. Если же пользователь желает оба два языка сразу, пусть ставит, например LANG=ru_RU.UTF-8 и соответствующие шрифты.

В XFree, насколько мне известно, весь ввод сейчас приходит в Unicode, так что с этой стороны о кодировках заботиться не надо.

watashiwa_daredeska ★★★★
()
Ответ на: комментарий от df_0903

Для X11: google "Xlib - C Language X Interface"
Для linux: man 2 read

ЗЫ: Не слушай про юникод в X11, нет его там. Там собственная 2-байтная кодировка, ни с чем не совместимая. Xlib трансформирует ввод из нее в нормальную кодировку в соответствии с текущей локалью.

nobody ★★
()
Ответ на: комментарий от df_0903

Какой еще бардак? Тебе же сказали выше по топику: юзай переменную окружения LANG, если хочешь знать кодировку ввода (для чего, кстати?).

Насчет более 2 языков. Если юзеру нужно более 2 языков одновременно, ему следует прописать UTF-8 себе в LANG.

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