Запуск программ в Ubuntu под wine с нужной кодировкой

Продолжаю вспоминать своё шаманское прошлое. Сразу хочу предупредить, что в данной статье много нелестного по отношению к особенностям Ubuntu, да и ненормативной лексики хватает, т.к. нельзя без мата изучить Linux. Ну а речь пойдёт о кодировках и запуске программ в среде wine. Как с этим обстоит сейчас – не знаю, а в далёком 2010 году у меня было так.

Продолжаются свои мучения с Linux. В некоторой степени, приобщаюсь к шаманскому миру извращенцев и маньяков. На этом фоне, ещё один миф рассыпался в пух и прах – сглаживание шрифтов в Linux это достаточно абстрактное понятие. Нормальный (англ. normal) шрифт зачастую выглядит уж слишком худым, я бы даже сказал – прозрачным. В тоже время жирный (англ. bold) шрифт уж слишком жирный (англ. bolder). Впрочем, этот факт не имеет прямого отношения к рассматриваемой мной теме. Просто, заметки на полях.

Ну а теперь к сути вопроса. Недавно у меня случилась забавная штука. Т.к. Bluefish Editor всё ещё остаётся, пусть и перспективной, но пародией на HomeSite, я использую последний через wine. Понятно, что такой вариант не самый лучший, но лучше что-то чем совсем ничего (здесь можно припомнить как хуёво плохо смотрится Courier New, но я не буду). Забавное пришло внезапно. Вот пишу я себе, пишу и тут понимаю – английские буквы печатаются, а русские (т.е. кириллица) – нет. Что за?

Не могу сказать однозначно, но в мире духов бывают такие глюки – никакой травы не надо. Полная свобода, мать её, а проще говоря анархия. Предположительно глюк пробивается из-за нестабильности в понимании кодировки. Один раз понимает, другой нет – х.з.

Танцы с бубном

Во первых строках, нужно помянуть о такой команде как local-gen. Что это такое?

locale-gen – compile a list of locale definition files

Другими словами, это компилятор списка выбранных файлов локализации. В моём случает мне понадобилась ru_RU.CP1251. Через терминал:

sudo locale-gen ru_RU.CP1251

Как я понял, так добавляется/обновляется соответствующая локаль?

Далее нам понадобится команда dpkg-reconfigure. Что это такое?

dpkg-reconfigure – reconfigure an already installed package

Другими словами, мы переконфигурируем уже установленный пакет. В нашем случае это locales. Через терминал:

sudo dpkg-reconfigure locales

Сделали? А вот теперь я должен признаться – я не знаю нахуя зачем это надо было делать, если локаль уже установлена и настроена. В моей ситуации локаль ru_RU.CP1251вроде как была, а потом кто его знает. Но я подумал, что упомянуть все эти телодвижения, которые посоветовал осуществить Fantom3D, будет не лишним. Чего добру пропадать то?

Самое интересное начинается, когда мы используем такую команду как env. Что это такое?

env – run a program in a modified environment

Другими словами, эта команда позволяет изменить значения переменных среды при запуске программы. В нашем случае речь идёт о переменной LANG. Например, через терминал:

env LANG=ru_RU.CP1251 wine /home/igor/.wine/drive_c/Program\ Files/Marriage/marriage.exe

В моём случае ситуация оказалась несколько сложнее, т.к. переменных среды было несколько, а сама команда вызова редактора HomeSite сложнее. Конечный вариант выглядит так:

env LANG=ru_RU.CP1251 WINEPREFIX="/home/wmas/.wine" wine C:\\windows\\command\\start.exe /Unix /home/wmas/.wine/dosdevices/c:/users/wmas/Главное\ меню/Программы/Macromedia\ HomeSite\ 5/HomeSite\ 5.lnk

Как вы наверное догадались, эта команда прописана в свойствах значка вызова программы. У вас она может отличаться от моей. Главное здесь понять, что переменные окружающей среды прописываются через пробел.

P.S. Должен признать, у меня нет полной уверенности, что причиной по которой удалось умилостивить духов основана на выше перечисленных действиях – уточнения, пояснения, опровержения и т.д. приветствуются.