Jump to content
Sign in to follow this  
cL0N31

locale

Recommended Posts

цель: правильное отображение русских букв вместо вопросов и ероглифов в приложениях на русском языке (non-unicode); читабельность русских текстовых файлов; никаких побочных эффектов типа полной локализации быть не должно; не использовать права root

что я сделал так это инициализировал следующие переменные в моём .profile :

LANG=ru_RU
LC_NUMERIC=POSIX
LC_TIME=POSIX
LC_COLLATE=POSIX
LC_MONETARY=POSIX
LC_MESSAGES=POSIX
LC_PAPER=POSIX
LC_NAME=POSIX
LC_ADDRESS=POSIX
LC_TELEPHONE=POSIX
LC_MEASUREMENT=POSIX
LC_IDENTIFICATION=POSIX

вопрос: есть ли вариант решения задачи проще, или это самый правильный метод?

Share this post


Link to post
Share on other sites

ИМХО, использование переменных окружения (environment variables) - это самый правильный способ.

Не очень четко сформулирована задача и вариант ее решения. У вас программа с русской локализацией или без? Она у вас отображается/должна отображаться на русском языке? Ввод текста осуществляется/должен осуществлять на русском? Работает или нет?

Share this post


Link to post
Share on other sites

программа русская с русскими букавками запущенная в wine... при выставлении этих переменных всё отображает корректно... без этих переменных отображает ероглефы... хотя только недавно заметил что если в окне терминала ввести 'man несуществующая команда' то в ответ выдаютса ероглифы которые по идее должны грить что мол not found... может я какую var забыл?

Share this post


Link to post
Share on other sites

Уж не знаю, правильно ли я вас понял. Вообще, если вам нужна русская локаль, то надо всем этим переменным присвоить значение ru_RU. При этом ru_RU - это на самом деле только ссылка на ru_RU.UTF8, либо ru_RU.KOI8-R, либо ru_RU.CP1251 и т.п. Программы, которыми вы будете пользоваться должны иметь соответствующую локализацию. Про то, как это устроено, надо читать в manpages. Полный перечень поддерживаемых локалей можно узнать с помощью locale -a, если чего-то нехватает, можно собрать недостающие файлы с помощью localedef. Я, помнится, как-то добавлял ручками локаль ru_RU.CP1251 в Mandrake Linux много-много лет назад. В любом современном дистрибутиве все локали уникодные.

Поэтому, если что-то где-то кракозяблами, то первым делом попробуйте export LC_ALL=ru_RU && export LANG=ru_RU && ./myprog. Если это "лечит ситуацию", прописывайте в profile значения ru_RU для всех переменных.

Как там wine работает с этими переменными, и есть ли какая-то специфика, я не в курсе, т.к. не сталкивался и сталкиваться не собираюсь.

Share this post


Link to post
Share on other sites

вобщем запускаемое приложение как я уже говорил я запускаю через wine а значит оно виндовое... линуховой локализации в нём нет и не могло быть естессно... кодировка в нём non-unicode... моя цель ещё раз: сделать чтоб через wine сия прога отображалась корректно, но чтоб линух в целом остался английским а не русским... потомучто если я поменяю всё на ru_RU и LC_MESSAGES в том числе то будут messages на русском

Share this post


Link to post
Share on other sites

И, кстати, переменные окружения можно задавать только для запуска одной программы. К примеру, вы можете для запуска gedit задать для LC_ALL значение POSIX дав в терминале команду:

$ LC_ALL=POSIX gedit

Для запуска вашей этой программы можно сделать так:

LC_CTYPE=ru_RU wine /path/to/myprog

Это не спасет отца русской демократии?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...