Автор Тема: Кириллица из под Wine  (Прочитано 10230 раз)

serfting

  • Новичок
  • *
  • Сообщений: 13
  • Карма: +0/-0
  • Я новичок в Linux Mint Росинке...
    • Просмотр профиля
Кириллица из под Wine
« : 22 Август 2012, 18:20:46 »
Не печатаются русские символы в формах из под wine. Устанавливал, переустанавливал разные версии wine. Результат тот же. Может кто-то сталкивался с этой проблемой на Росинке. Уже запутался. Шрифты ставил винды в нужную папку, шаманил с нагугленными командами в консоли. Результата ноль. Раньше сидел на обычной Ubuntu - таких проблем пока не возникало. Спасибо.
« Последнее редактирование: 22 Август 2012, 18:24:59 от serfting »

Alexander7_88

  • Ветеран
  • *****
  • Сообщений: 1514
  • Карма: +217/-4
  • Универсальный поисковый бот
    • Просмотр профиля
Re: Кириллица из под Wine
« Ответ #1 : 22 Август 2012, 18:35:33 »
Что за программа? Какая версия wine?

serfting

  • Новичок
  • *
  • Сообщений: 13
  • Карма: +0/-0
  • Я новичок в Linux Mint Росинке...
    • Просмотр профиля
Re: Кириллица из под Wine
« Ответ #2 : 23 Август 2012, 12:23:03 »
Ставил wine и 1.2 и 1.3. Не пошло. А программы, да тот же ДубльГис, пробовал EssentialPim - органайзер

Alexander7_88

  • Ветеран
  • *****
  • Сообщений: 1514
  • Карма: +217/-4
  • Универсальный поисковый бот
    • Просмотр профиля
Re: Кириллица из под Wine
« Ответ #3 : 23 Август 2012, 15:39:34 »
При условии того что 2Гис у меня, и не только у меня, работает под wine без нареканий и печать проблем не вызывает, то проблема в настройки ваше ОС скорее всего проблема в системной локали

serfting

  • Новичок
  • *
  • Сообщений: 13
  • Карма: +0/-0
  • Я новичок в Linux Mint Росинке...
    • Просмотр профиля
Re: Кириллица из под Wine
« Ответ #4 : 23 Август 2012, 18:01:34 »
Прописал в /var/lib/locales/supported.d/local:
ru_RU.UTF-8 UTF-8
ru_RU.CP1251 CP1251
ru_RU.KOI8-R KOI8-R и команда командой locale-gen - НЕ ПОМОГЛО.
Текущая локаль - ru_RU.UTF-8 UTF-8
Есть какие-то еще варианты изменений внутри локали? Еще плохо разбираюсь.

Помощь получил вот с этого текста:
Цитировать
Опишу небольшой глюк с локалями, возникший недавно у меня. Точнее это даже не столько глюк, сколько, скорее всего, я не до конца разобралась, однако проблему я решила и это может кому-то помочь (да и мне, если повторится).
Глюк проявился следующим образом - внезапно весь интерфейс стал на английском языке. И произошло это после того, как я заменила экран входа в систему с kdm на slim, хотя в настройках самого slim ничего даже близко нет и он использует те же сессии, что и gdm и kdm.
Сам по себе английский интерфейс лично для меня даже предпочтительнее, но как выяснилось позже, проблема проявлялась и более неприятным образом.
Во-первых, в 2gis и, скорее всего, и в других приложениях под wine перестала печататься кириллица - в интерфейсе она отображалась по прежнему нормально, а напечатать в полях поиска можно было только латиницей.
А во-вторых, в эмуляторах терминала, вместо кириллических символов печатались знаки вопроса. Если открыть пункт меню Terminal, то можно увидеть такую картину:

И тут даже можно выбрать кодировку UTF-8, тогда кириллица будет печататься нормально, но работает это лишь в текущем открытом окне программы.

На скриншоте ещё заметно, что текущей локалью установлена POSIX, однако при входе через kdm или gdm, всё возвращается к нормальному виду без изменения настроек. И, кажется, даже если зайти через slim в gnome или kde, то можно поменять локаль через их gui-инструменты.
Однако, правка файлов никак не помогала, пока я не поставила пакет utils-linux-locale. Не знаю, в чём тут секрет, тем более у других пользователей, этот пакет не установлен и всё работает (ну правда в kde с kdm), но помогло именно это.

Теперь вкратце инструкция как вообще изменять язык интерфейса и добавлять недостающие локали не через gui-утилиты.
Во-первых, в папке /var/lib/locales/supported.d/ лежат три файла: en, ru и local. Это у меня их три, а если вам нужна ещё, допустим, и японская локаль, то добавится ещё один файл (правда, придётся ещё установить необходимые пакеты).
В файлах en и ru прописаны варианты данных языков, которые будут сформированы в системе, в частности:

    en_US.UTF-8 UTF-8
    en_GB.UTF-8 UTF-8

и

    ru_RU.UTF-8 UTF-8
    ru_RU.CP1251 CP1251
    ru_RU.KOI8-R KOI8-R

А в файле local вписываются те кодировки, которые будут использоваться, у меня содержание файла такое:

    ru_RU.UTF-8 UTF-8
    en_US.UTF-8 UTF-8
    ru_RU.CP1251 CP1251
    ru_RU.KOI8-R KOI8-R

После измнения в этих файлах есть смысл перегенерировать локали командой locale-gen.

Текущая локаль в системе задаётся в файле /etc/default/locale:

    LANG=en_GB.UTF-8
    LANGUAGE=en_GB:en

Это у меня, так как мне хочется интерфейс на английском. А русский язык и кириллица всё равно поддерживаются при этом за счёт сформированных локалей. Правда, в примерах, которые я видела в сети, вторая строка обычно выглядит так: LANGUAGE="en_EN:en:ru_RU:ru", типа чтобы русский язык поддерживался, но у меня работает и без этого.
И ещё в старых версия системы то же самое прописывалось в файле /etc/environment, однако, сейчас он вроде бы не используется, хотя существует, но на всякий случай можно и там прописать.

Проверить, как локаль установлена основной можно командой locale:

    LANG=en_GB.UTF-8
    LANGUAGE=en_GB:en
    LC_CTYPE="en_GB.UTF-8"
    LC_NUMERIC="en_GB.UTF-8"
    LC_TIME="en_GB.UTF-8"
    LC_COLLATE="en_GB.UTF-8"
    LC_MONETARY="en_GB.UTF-8"
    LC_MESSAGES="en_GB.UTF-8"
    LC_PAPER="en_GB.UTF-8"
    LC_NAME="en_GB.UTF-8"
    LC_ADDRESS="en_GB.UTF-8"
    LC_TELEPHONE="en_GB.UTF-8"
    LC_MEASUREMENT="en_GB.UTF-8"
    LC_IDENTIFICATION="en_GB.UTF-8"
    LC_ALL=

Что обозначает каждая переменная можно почитать в мане команды, но и так понятно, что если, например, хочется при английском интерфейсе иметь русский формат отображения денежных единиц, то в /etc/default/locale нужно добавить строку LC_MONETARY="ru_RU.UTF-8".
Ну и кстати, все примеры тут для кодировки UTF-8, так как я её использую. Если предпочтение отдаётся KOI8-R, то действия те же, но с соответствующими поправками.

Кстати, посмотреть, какие локали ещё поддерживаются можно в файле /usr/share/i18n/SUPPORTED, в частности для русского языка ещё доступна:

    ru_RU ISO-8859-5

Там же рядом лежат файлы локалей в /usr/share/i18n/locales/ и файлы кодировок в /usr/share/i18n/charmaps/.
В этом "руководстве", возможно, есть ошибки, так как готовые рецепты из сети не всегда работают или не всегда работают как надо, и, возможно, оно ещё будет дополняться.
« Последнее редактирование: 24 Август 2012, 21:20:20 от Azure »

serfting

  • Новичок
  • *
  • Сообщений: 13
  • Карма: +0/-0
  • Я новичок в Linux Mint Росинке...
    • Просмотр профиля
Re: Кириллица из под Wine
« Ответ #5 : 06 Сентябрь 2012, 19:01:00 »
Ничего не помогает. Попробовал разных вариантов. Вообще Росинка ставил на трех разных компах. По-умолчанию wine в исходном дистрибутиве стоит, но при инсталляции программ wine везде выдавал ошибки. Приходилось на трех компах переустанавливать wine и результат тот-же: не печатает кириллицу. ПОМОГМТЕ. Заметил в интернете тема актуальная, в том числе на ubuntu/

Alexander7_88

  • Ветеран
  • *****
  • Сообщений: 1514
  • Карма: +217/-4
  • Универсальный поисковый бот
    • Просмотр профиля
Re: Кириллица из под Wine
« Ответ #6 : 06 Сентябрь 2012, 19:49:25 »
Пробовали?
LC_ALL=ru_RU.cp1251 wine ваша_программа.exe

serfting

  • Новичок
  • *
  • Сообщений: 13
  • Карма: +0/-0
  • Я новичок в Linux Mint Росинке...
    • Просмотр профиля
Re: Кириллица из под Wine
« Ответ #7 : 12 Сентябрь 2012, 09:48:42 »
Спасибо Alexander7_88. После добавления << LC_ALL=ru_RU.cp1251 wine ваша_программа.exe >> в терминал, программы стали писаться с русским шрифтом. Сейчас попробую вписать эту команду в локаль.
« Последнее редактирование: 12 Сентябрь 2012, 09:50:48 от serfting »

serfting

  • Новичок
  • *
  • Сообщений: 13
  • Карма: +0/-0
  • Я новичок в Linux Mint Росинке...
    • Просмотр профиля
Re: Кириллица из под Wine
« Ответ #8 : 12 Сентябрь 2012, 10:46:25 »
Для того, чтобы запускать программы из под wine ярлыком на рабочем столе с учетос киррилицы (смотрите ниже):

Наберите в консоли: locale -a | grep ru_RU

Появится список локалей ru с кодировками. У меня:

ru_RU.cp1251
ru_RU.koi8r
ru_RU.utf8

Если у Вас в списке нет кодировки cp1251, то нужно проделать следующее:

    sudo gedit /var/lib/locales/supported.d/ru
    вписываем в файл строку ru_RU.CP1251 CP1251. Сохраняем.
    sudo locale-gen
    изменяем ярлык запуска программы или создаем новый.
   
В команду запуска пишем: sh -c "export LC_ALL=ru_RU.CP1251 ; <Имя программы>"

serfting

  • Новичок
  • *
  • Сообщений: 13
  • Карма: +0/-0
  • Я новичок в Linux Mint Росинке...
    • Просмотр профиля
Re: Кириллица из под Wine
« Ответ #9 : 12 Сентябрь 2012, 10:51:14 »
Еще делают вот так, если возникают сложности с предыдущим методом.
Цитировать
Решаем проблему следующим образом — в Терминале:sudo sed -i '$a\
ru_RU.CP1251 CP1251\
ru_UA.CP1251 CP1251' /var/lib/locales/supported.d/ru
Сохраняем, закрываем. В Терминале:sudo locale-genСоздаем новый текстовый документ и ложим туда следующий код:
#!/bin/bash
LC_ALL=ru_RU.CP1251 wine "c:\\Program Files\\1cv77\\Bin\\1cv7s.exe"
Сохраняем в домашнем каталоге под именем 1C
Далее Приложения -> Wine -> Программы -> 1С Предприятие -> кликаем правой кнопкой на значке с программой -> Добавить кнопку запуска на панель. После этого на панели быстрого запуска у нас появится кнопочка 1С-ки. Кликаем правой кнопочкой на ней -> Свойства -> Команда пишем следующее:sh /home/$USER/1CЖмем «Закрыть». Все готово.
=====
Задача с отображением кириллицы в wine решена. Спасибо за помощь.
« Последнее редактирование: 12 Сентябрь 2012, 17:52:07 от Azure »