Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Smalltalk
Перезагрузить страницу Невозможно ввести русские буквы под linux с юникодной локалью
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
shirofaii shirofaii вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 23.10.2006
По умолчанию Невозможно ввести русские буквы под linux с юникодной локалью - 31.10.2006, 20:59

Суть проблемы: невозможно ввести русские буквы под linux с юникодной локалью. VW игнорирует ввод, а при попытке вставки из буфера выводит \uXXXX.
Я попытался добавить Locale >> installRusUniLocale , но ничего путного из этого не вышло, слишком много возникло вопросов, которые Internationalization Guide не помог решить, а я ещё новичок в smalltalk'е и сходу разобраться в том как устроена система локалей тежеловато. Возможно кто-нибудь сталкивался с подобной проблемой и может подсказать в какую сторону нужно копать.
Ответить с цитированием
  (#2 (permalink)) Старый
Andrei N.Sobchuck Andrei N.Sobchuck вне форума
Member
 
Сообщений: 88
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 09.06.2005
По умолчанию 06.11.2006, 18:17

А как именно ты пытался исправить installRUSLoclale? На вскидку, нужно дописать что-то вроде:
Код:
  copy := locale copy.
"preferredEncodings - это список кодировок для отбора используемых шрифтов. Кодировку нужно посмотреть в шрифтах."
  copy 
    preferredEncodings: #('ISO10646-1');
    name: #'ru_RU.UTF-8'; "Имя локали в линуксе для которой будет использоваться наша локаль в VW"
    defaultStreamEncoder: (StreamEncoder lookupEncoderDirectory: #'utf-8'). "кодировка по умолчанию для чтения/записи файлов"

  self addLocale: copy platform: #unix.
После правки нужно этот метод вызвать из workspace:
Код:
Local installRUSLocale
и переинициализировать всё это хозяйство:
Код:
Locale initialHookup. 
TextAttributes resetViews
Теперь можно посмотреть текущую локаль:
Код:
Locale current name
Если она стала ru_RU.UTF-8 значит сделан первый шаг к прогрессу. Можно попробовать сохранить образ и перезапустить. Я точно не помню достаточно ли 'Locale initialHookup' для полноценной работы или нет.

Дальше начинаются догадки.

Для начала можно проверить как работает отображение уникода. Открой файл-броузер (пункт меню "File->File Browser", выставь там кодировку ("File-Encoding") и попробуй посмотреть содержимое файла в этой кодировке. По идее содержимое может быть в любой кодировке - хоть koi8, хоть cp-1251 хоть utf-8. Главное правильно задать кодировку в файл-броузере.

Если отображение работает нормально, то нужно переходить к вводу с клавиатуры. Если я правильно помню, то преобразованием ввода с клавиатуры в нужные буковки занимается сам X11 и докручивать ничего не нужно.
Ответить с цитированием
  (#3 (permalink)) Старый
yamamoto yamamoto вне форума
Member
 
Сообщений: 35
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 01.05.2006
По умолчанию 11.02.2009, 17:00

У меня так ничего и не заработало в VisualWorks последней версии (7.6). Если выполнить строчку:
Код:
Locale set: #'ru_RU.KOI8-R'
то русский начнет отображаться. Но, во-первых, не все символы отображаются. Например, символ нижнего подчеркивания ( _ ) не отображается. Просто пробел вместо него (визуально имеется в виду). А во-вторых, шрифт меняется до неузнаваемости. Становится мелким и нечетким. Если кто-то решил проблему, поделитесь.
Ответить с цитированием
  (#4 (permalink)) Старый
shirofaii shirofaii вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 23.10.2006
По умолчанию 23.02.2009, 01:08

У меня получилось только так:
Скрипт ~/bin/visualworks
Код:
#!/bin/sh

# VisualWorks startup script

export LANG=ru_RU.KOI8-R
# Русская локаль вкупе с включённым японским методом ввода приводит VW
# в состояние глубокой депрессии, приходится отключать IM
unset XMODIFIERS
unset GTK_IM_MODULE

export VISUALWORKS=/opt/vw/
/opt/vw/bin/linux86/visual $1
Затем добавить строчки в
Locale class >> installRUSLocale
Код:
copy := locale copy.
copy name: #'ru_RU.KOI8-R';
preferredFontFamily: #(cronyx bolkhov);
preferredPixelSize: 13;
defaultStreamEncoder: (StreamEncoder lookupEncoderDirectory: #KOI8R).
self addLocale: copy platform: #unix.
И сделать
Код:
Locale installRUSLocale.
Locale set: #'ru_RU.KOI8-R'
В системе должны быть иксовые шрифты bolkhov или cronyx
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
QT Embedded + русские буквы A.B. Trolltech Qt 1 14.02.2010 03:35
ajax autocomplate и русские буквы Aram PHP 6 16.07.2009 00:32
В программах не отображаются русские буквы. andreika35 Любые вопросы от новичков 2 06.02.2009 21:46
Русские буквы в строке адреса _kT PHP 1 14.07.2008 03:14
Squeak как вводить русские буквы murk Smalltalk 4 01.08.2007 23:41
Русские буквы в JSP как реализовать Anonymous Java 2 07.03.2006 16:19
В проекте, в одну из Форм стало невозможно ввести изменения Андрей2463 C++ Builder 2 21.02.2006 11:30
Русские буквы в SQLControls.Table как их поставить Anonymous Oberon 7 19.01.2006 22:18
Как показать русские буквы в приложении Виноград С/С++ 1 26.04.2005 13:13
Microsoft Visual C++ FAQ как вывести русские буквы Влад Программирование под Windows 6 23.04.2004 18:57
Не отображаются русские буквы в dbf-файле Anonymous Delphi 2 15.12.2003 20:29
Русские буквы в сервлетах SmolBars Java 1 15.12.2003 18:59



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов