Вместо шрифтов - кракозябры

Господа! Подскажите куда копать и что делать?
http://imglink.ru/show-image.php?id=1b5 … 1cecdddf6d

Спасибо.
locale -a
locale
И вывод сюда
[karkusha@DoubleFaced ~]$ locale -a
C
en_US.utf8
POSIX
ru_RU.utf8
[karkusha@DoubleFaced ~]$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
corefonts в wine и aur/ttf-ms-fonts установите
не помогло(
Quadro
[karkusha@DoubleFaced ~]$ locale
LANG=en_US.UTF-8
...
В таком случае, видимо, попробовать так:
LC_ALL=ru_RU.UTF8 wine c:/whereisit/whereisit.exe
А вот не надо запускать коряво русифицированные форточные программы под вайном с американской локалью!
Запускайте их с русской локалью, то есть с
LANG=ru_RU.UTF-8
Если не поможет – один раз запустите с
LC_ALL=ru_RU.UTF-8
Вообще-то, если играете с локалями, и зачем-то устанавливаете для юзера американскую, неплохо было бы и догадаться о причинах “кракозябр”.
признаться, я так и не смог постичь принцип работы локалей..или может быть не нашел годного мануала, разжевывающего все
Как выставить в системе локаль, читайте в вики:
http://wiki.archlinux.org/index.php/Locale_(Русский)
а также сверяйтесь с английским вариантом статьи.

О принципах локализации в линуксе читайте, например, в википедии:
http://ru.wikipedia.org/wiki/Gettext

Локализованные программы выводят свои сообщения не напрямую, а через специальную функцию. Она читает переменные локали (LANG и LC_*), и подставляет вместо английской надписи её перевод из файла локализации для соответствующего языка. Если вы заглянете в каталог /usr/share/locale/ , вы увидите кучу каталогов с разными локалями, и во многих из них будут файлы локализации для различных программ.

Переменная LANG задаёт локаль по-умолчанию сразу для всего, но допускает переопределение некоторых видов локализации, например можно после этого задать LC_NUMERIC=C, и вместо русских десятичных запятых будут точки, но надписи отстанутся русскими. Задание локали через LC_ALL применяется только в крайних случаях, когда надо принудительно выставить одинаково сразу все переменные LC_*, без возможности переопределения. В частности, переменную LC_ALL читает QT4, и многие программы на нём, которые полагаются в локализации только на саму библиотеку, приходится запускать с LC_ALL=$LANG, иначе они разговаривают только по-английски или требуют ручного указания языка… но это уже другой вопрос.

Так работает правильная локализация. Но есть программы, которые пытаются сами читать локаль, и делают это неправильно, либо вообще игнорируют её, либо программа делает всё правильно, но вы неправильно задали локаль. Тогда чтобы получить надписи на нужном языке, его принудительно выставляют в настройках этой программы. И если в добавок к языку ещё и кодировка локализации этой программы НЕ совпадает с кодировкой локали, вы видите “кракозябы”.

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

Теперь вы запускаете с американской локалью форточные программы под вайном. В форточках из вашей локали берётся язык, а кодировка зависит от используемой в конкретной программе – это может быть один из вариантов юникода или даже НЕ юникода, и кодировка тогда будет выбираться в зависимости от языка – cp1251 для русского, cp1252 для английского, к примеру.

Опять-таки, программы читающие локаль, покажут вам английские надписи, но программы БЕЗ юникода, в которых русский язык с кодировкой 1251 выставлен принудительно, будут брать надписи для кодировки 1251, а выводить их в кодировке 1252, которая соответствует текущему (английскому) языку локали – и вы получите кучу закорючек вместо русских букв.
Спасибо за информацию!
 
Зарегистрироваться или войдите чтобы оставить сообщение.