Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Smalltalk
Перезагрузить страницу Русский язык в Squeak
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
danio danio вне форума
Member
 
Сообщений: 366
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 02.01.2004
По умолчанию 26.01.2008, 20:17

Свежее решение по русификации squeak (в связи с улучшенной поддержкой юникода в основных VM).

Для Windows работает с VM доступной с сайта:
http://ftp.squeak.org/current_stable/win/S...-3.10.6-bin.zip

Для Linux/Unix - работает с VM из текущего транка svn, с локалью UTF-8 (не путать с WTF-? :-)). Я уже давно не видел других локалей в юниксах, поэтому интерпретаторы клавиатуры для KOI8 и CP1251 просто выкинул (конвертеры текста оставил - т.к. файлы еще долго будут попадаться).
Код:
  $ svn co http://squeakvm.org/svn/squeak/trunk squeak
  $ cd squeak/platforms/unix
  $ make
  $ sudo make install
Код:
danil@danil-desktop:~/squeak-svn/platforms/unix/doc$ squeak -version
3.9-12 #3 Thu Jan 24 22:22:35 MSK 2008 gcc 4.1.2
Squeak3.9alpha of 4 July 2005 [latest update: #7021]
Linux danil-desktop 2.6.20-16-generic #2 SMP Tue Dec 18 05:45:12 UTC 2007 i686 GNU/Linux
default plugin location: /usr/local/lib/squeak/3.9-12/*.so
Инсталляция самого пакета:
1) Ставите FreeType plugin (SqueakMap/ UniverseBrowser) и включаете шрифты.
2) Устанавливаете пакет RussianSupport

Код:
MczInstaller installStream:
  (HTTPSocket httpGet: 'http://www.squeaksource.com/RussianS...ao.13.mcz' ).
Locale switchToID: (LocaleID isoLanguage: 'ru').
В линуксе, чтобы нормально работал copy-paste русского, squeak надо вызывать с такими параметрами:
Код:
squeak -encoding UTF-8 -textenc UTF-8 your_freeking_squeak_image.image
Альтернативно, можно перед компиляцией пойти в vm/sqUnixCharConv.c и выставить там это же по умолчанию.

Тестировалось (работает) это с образами 3.9 и 3.10, и виндо2000-ХР и линуксах kubuntu.

Попробуйте так же в MacOS - может получше будет с копи-пэйстом :) В любом случае отталкиваться будем уже от этого, а не от того что я постил ранее, на скорую руку.

Тут просили описание как оно устроено, вот ссылка на несколько устаревший дизайн, по которому делалась поддержка юникод в squeak:
http://www.is.titech.ac.jp/~ohshima/squeak...aper/index.html
Ответить с цитированием
  (#2 (permalink)) Старый
xonix xonix вне форума
Member
 
Сообщений: 429
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 16.03.2007
По умолчанию 28.01.2008, 18:47

Cпасибо за инфу.
Можно, плз поподробнее

> 1) Ставите FreeType plugin (SqueakMap/ UniverseBrowser) и включаете шрифты.

я поставил плагин, RussianSupport-dao.13.mcz тоже, а где фонты включить не зашарю...
пока что русский вопросиками..
Ответить с цитированием
  (#3 (permalink)) Старый
danio danio вне форума
Member
 
Сообщений: 366
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 02.01.2004
По умолчанию 28.01.2008, 19:18

Кроме плагина, так же нужен пакет FreeType Plus (обязательно - собственно интерфейс Smalltalk к плагину) и FreeType antialising (опционально). Это на всякий случай.

Шрифты выбираются так:
Левая кнопка мыши на столе (World Menu -> Appearance -> System Fonts).
Меню фонтов удобно "пришпилить", перед тем как выбирать шрифты, чтобы не вызывать всю последовательность из глобального меню.

Так же можно разом установить шрифты по аналогии с тем, что у меня в системе (выделить все и doIt):
Код:
Preferences setDefaultFonts: #(
        (setSystemFontTo:        Arial                9)
        (setListFontTo:            Arial                9)
        (setFlapsFontTo:            Accushi                12)
        (setEToysFontTo:            ArialBold            9)
        (setPaintBoxButtonFontTo:            Arial    9)
        (setMenuFontTo:            ArialBold            10)
        (setWindowTitleFontTo:    Arial                11)
        (setBalloonHelpFontTo:    Accujen                9)
        (setCodeFontTo:            Arial                9)
        (setButtonFontTo:        Georgia    9)
    )
Ответить с цитированием
  (#4 (permalink)) Старый
yamamoto yamamoto вне форума
Member
 
Сообщений: 35
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 01.05.2006
По умолчанию 26.07.2008, 17:02

Здравствуйте. Спасибо большое за эту статью.

У меня при установке возникла проблема... Все делаю строго по инструкции в Windows XP HomeEdition. Русский заработал, но теперь не работает copy/paste. Если я выделяю английский текст и нажимаю сочетание Ctrl-c, то сразу после выделенного текста вставляется nil и все. Если делаю тоже самое, но только с русским текстом, то появляется меню с заголовком: "Unknown selector, please confirm...". Более того, нельзя выделить весь текст сочетанием Ctrl-a. В результате курсор перемещается в начало текста и, опять же, ничего не происходит. Подскажите пожалуйста, как это можно исправить?

Благодарен за помощь, с уважением, yamamoto.
Ответить с цитированием
  (#5 (permalink)) Старый
danio danio вне форума
Member
 
Сообщений: 366
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 02.01.2004
По умолчанию 28.07.2008, 11:34

По-умолчанию, в Squeak для копирования испопльзуется Alt-c/v/a/x - оно работает?
Если у вас стоит переназначение клавиш, скажите как вы его настраивали и какой image (версию и откуда брали) вы используете.
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
yamamoto yamamoto вне форума
Member
 
Сообщений: 35
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 01.05.2006
По умолчанию 08.08.2008, 13:11

Прошу прощения за задержку с ответом. Нет, Alt-c/v/x - тоже не работает. Работает только Alt-a. На счет переназначения клавиш я ничего не знаю. Сам я ничего не ставил. Версия образа - 3.9-final-7067, образ взят из SqueakCD3.9, который который был скачан с squeak.org.
Ответить с цитированием
  (#7 (permalink)) Старый
yamamoto yamamoto вне форума
Member
 
Сообщений: 35
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 01.05.2006
По умолчанию 10.08.2008, 08:27

Здравствуйте. Наконец-то удалось справиться с установкой русского языка. Проблема была в том, что меня постоянно преследовала ошибка следующего содержания: 'invalid utf8 input detected'. Она появлялась только после выполнения всех инструкций (при использовании squeak версии 3.9), данных здесь для установки русского языка. Возникала она при попытке сохранить образ, при попытке скопировать или вставить что-либо и т.д.

Оказалось, что это было из-за того (т.е. в данный момент я так думаю), что в Windows я работал под именем пользователя, которое было написано по-русски. Думаю, что как раз именно поэтому squeak версии 3.10.2 выдавал эту же ошибку сразу же при запуске (я создавал тему, посвященную этому: http://www.hardforum.ru/t78016.

Происходило примерно следующее: во время запуска squeak, на некотором этапе метод primSecureUserDirectory возвращал примерно следующее: <C:russianInSqueakабракадабра>, где "абракадабра" - имя пользователя в непонятных символах. Именно это и приводило в дальнейшем к ошибке.

В данный момент использую vm версии 3.10.6 (как и было указано в данной теме для ОС Windows) и образ версии 3.10.2. Все работает. Ошибок пока что не обнаружено. Единственное что огорчает, так это то, что в seaside русский отображается лишь частично. Т.е. если например создать ссылку на русском, то все будет в порядке. А вот если попытаться ввести русское слово (например, название файла или папки) в поле ввода, то оно в дальнейшем отобразится в непонятных символах. Пробовал запускать WAKomEncoded и WAKomEncoded39 - не помогает. Если кто-то устранил данную проблему, то пожалуйста поделитесь информацией.

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

Друзья, прошу прощения за дезинформацию. Сказанное выше (кроме проблем с seaside) касается только squeak последней версии (перепутал немного). В версии 3.9 все работает (и с русским именем пользователя Windows), за исключением лишь одной ошибки, с которой вполне можно жить. Появляется она при попытке скопировать текст. Самое интересное то, что все копируется и скопированное потом можно вставлять куда угодно, но ошибка все же появляется. Если кому-то интересно, могу описать подробней.
Ответить с цитированием
  (#9 (permalink)) Старый
danio danio вне форума
Member
 
Сообщений: 366
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 02.01.2004
По умолчанию 10.08.2008, 21:38

Цитата:
Появляется она при попытке скопировать текст. Самое интересное то, что все копируется и скопированное потом можно вставлять куда угодно, но ошибка все же появляется. Если кому-то интересно, могу описать подробней.
Если хотите, чтобы ее (быть может) починили - то опишите (и подробно версии squeak-vm и image). Как будет под рукой виндовз - посмотрю
Ответить с цитированием
  (#10 (permalink)) Старый
danio danio вне форума
Member
 
Сообщений: 366
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 02.01.2004
По умолчанию 10.08.2008, 21:40

Цитата:
В данный момент использую vm версии 3.10.6 (как и было указано в данной теме для ОС Windows) и образ версии 3.10.2. Все работает. Ошибок пока что не обнаружено. Единственное что огорчает, так это то, что в seaside русский отображается лишь частично. Т.е. если например создать ссылку на русском, то все будет в порядке. А вот если попытаться ввести русское слово (например, название файла или папки) в поле ввода, то оно в дальнейшем отобразится в непонятных символах. Пробовал запускать WAKomEncoded и WAKomEncoded39 - не помогает. Если кто-то устранил данную проблему, то пожалуйста поделитесь информацией.

Благодарен за помощь, с уважением, yamamoto.
Скажите версию seaside и image куда грузите, по-моему, надо в header http добавить мета-инфу о кодировке (если мне не изменяет память)
Ответить с цитированием
  (#11 (permalink)) Старый
yamamoto yamamoto вне форума
Member
 
Сообщений: 35
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 01.05.2006
По умолчанию 11.08.2008, 08:59

Я использую seaside версии 2.8.2 - последнее, что можно загрузить через SqueakMap. Версия image - 3.10.2-7179, скачанная отсюда: http://ftp.squeak.org/3.10/Squeak3.10.2-7179-basic.zip. Версия vm - 3.10.6, которую брал здесь (Ваша ссылка): http://ftp.squeak.org/current_stable/win/S...-3.10.6-bin.zip

Подскажите, как правильно работать с текстовыми файлами, содержащими русский текст? Содержание отображается непонятными символами.
Ответить с цитированием
  (#12 (permalink)) Старый
chaetal chaetal вне форума
Member
 
Сообщений: 42
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 11.04.2005
По умолчанию 29.08.2008, 23:54

Цитата:
Я использую seaside версии 2.8.2 - последнее, что можно загрузить через SqueakMap. Версия image - 3.10.2-7179, скачанная отсюда: http://ftp.squeak.org/3.10/Squeak3.10.2-7179-basic.zip. Версия vm - 3.10.6, которую брал здесь (Ваша ссылка): http://ftp.squeak.org/current_stable/win/S...-3.10.6-bin.zip

Подскажите, как правильно работать с текстовыми файлами, содержащими русский текст? Содержание отображается непонятными символами.
Если не изменяет память, собака зарыта в Web-сервере "по умолчанию". Мы побороли переходом на альтернативный. Информация актуальна примерно на апрель сего года (т.е. более старый сисайд соответственно). Подробности, к сожалению, не имею привычки держать в голове... Но могу уточнить у коллег при необходимости.
Ответить с цитированием
Ads
  (#13 (permalink)) Старый
yamamoto yamamoto вне форума
Member
 
Сообщений: 35
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 01.05.2006
По умолчанию 30.08.2008, 01:01

Цитата:
Если не изменяет память, собака зарыта в Web-сервере "по умолчанию". Мы побороли переходом на альтернативный. Информация актуальна примерно на апрель сего года (т.е. более старый сисайд соответственно). Подробности, к сожалению, не имею привычки держать в голове... Но могу уточнить у коллег при необходимости.
Я нашел способ, но он мне все равно не нравится. Так вот, я использую WAKomEncoded39 вместо WAKom, и при работе с русскоязычным текстом использую методы squeakToUtf8 и utf8ToSqueak. Буду очень признателен, если Вы уточните подробности на счет решения данной проблемы.
Ответить с цитированием
Ads
Ответ

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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Cmd - русский язык как его установить Вака С/С++ 9 30.06.2011 20:23
Как вывести русский язык. lifefine Prolog 2 02.06.2011 03:36
Русский язык в squeak в Mac OS leto317 Smalltalk 20 24.06.2008 12:12
Help коверкает русский язык Sati Delphi 2 20.05.2006 10:22
EZY Prolog и русский язык Сергей Пеньков Prolog 1 01.05.2006 08:10
Русский язык и exe-шники Amputator Pascal 2 20.02.2006 22:51
Русский язык Dian Мысли вслух 30 01.11.2005 17:24
Русский язык и M$Visual 7.0 Omen Visual C++ 6 28.02.2005 10:15
Русский Язык и Mysql serg3 MySQL 3 21.02.2005 22:43
Русский язык в WAP Формах LanDyx XML & WML 5 25.12.2004 00:45
Русский язык в PostgreSQL wolf PostgreSQL 1 28.05.2004 13:01
Как включить русский язык Anonymous Офтопик 1 30.04.2003 13:07



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