Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Smalltalk
Перезагрузить страницу Русский язык в squeak в Mac OS
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
leto317 leto317 вне форума
Новичок
 
Сообщений: 12
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 25.12.2007
По умолчанию Русский язык в squeak в Mac OS - 25.12.2007, 11:58

здравствуйте!

подскажите, плиз, что надо сделать (или где почитать), чтобы включить поддержку русского в squeak 3.9 для Mac OS X?

Поискав в инете, я нашел пару объяснений, но ни один описанный метод не заработал.

Че за VM для мака, я не знаю. Видимо, она отличается от VM для линуха.
Локаль везде в осх -- UTF-8.

Че б сделать, чтобы русский заработал? Не то, чтобы это супер важно - иметь русский, но коль скоро я решил поразбираться с seaside, мне понадобится уметь вводить русскй текст для страничек.
Ответить с цитированием
  (#2 (permalink)) Старый
leto317 leto317 вне форума
Новичок
 
Сообщений: 12
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 25.12.2007
По умолчанию Русский язык в squeak в Mac OS - 25.12.2007, 11:58

здравствуйте!

подскажите, плиз, что надо сделать (или где почитать), чтобы включить поддержку русского в squeak 3.9 для Mac OS X?

Поискав в инете, я нашел пару объяснений, но ни один описанный метод не заработал.

Че за VM для мака, я не знаю. Видимо, она отличается от VM для линуха.
Локаль везде в осх -- UTF-8.

Че б сделать, чтобы русский заработал? Не то, чтобы это супер важно - иметь русский, но коль скоро я решил поразбираться с seaside, мне понадобится уметь вводить русскй текст для страничек.
Ответить с цитированием
  (#3 (permalink)) Старый
leto317 leto317 вне форума
Новичок
 
Сообщений: 12
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 25.12.2007
По умолчанию Русский язык в squeak в Mac OS - 25.12.2007, 11:58

здравствуйте!

подскажите, плиз, что надо сделать (или где почитать), чтобы включить поддержку русского в squeak 3.9 для Mac OS X?

Поискав в инете, я нашел пару объяснений, но ни один описанный метод не заработал.

Че за VM для мака, я не знаю. Видимо, она отличается от VM для линуха.
Локаль везде в осх -- UTF-8.

Че б сделать, чтобы русский заработал? Не то, чтобы это супер важно - иметь русский, но коль скоро я решил поразбираться с seaside, мне понадобится уметь вводить русскй текст для страничек.
Ответить с цитированием
  (#4 (permalink)) Старый
Oleg Richards
Guest
 
Сообщений: n/a
По умолчанию 31.12.2007, 01:01

Проще всего установить Parallels и в нем запустить VisualWorks - там и практиковаться с Seaside. Мне как-то удалось заставить его писать по-русски, но он периодически вылетал да и работать было не очень приятно. Плюс там нет нормальной поддержки MultiByteString. Поэтому установите VisualWorks и изучайте Seaside. Будут вопросы - обращайтесь
Ответить с цитированием
  (#5 (permalink)) Старый
berkgaut berkgaut вне форума
Новичок
 
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 11.09.2007
По умолчанию 31.12.2007, 13:12

Цитата:
Проще всего установить Parallels и в нем запустить VisualWorks ...
Я подозреваю, что родная виртуальная машина VW под OS X будет прекрасно работать. С наступающим.
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
leto317 leto317 вне форума
Новичок
 
Сообщений: 12
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 25.12.2007
По умолчанию 11.01.2008, 23:49

Цитата:
Я подозреваю, что родная виртуальная машина VW под OS X будет прекрасно работать. С наступающим.
чессказать не хочется работать под виндой, даже в виртуализации
совсем не хочется

собстна, на русский я уже забил
я так понял, что пока решения нет
и надо серьезно погружаться в устройство VM для ос х, чтобы решить проблему с русским
Ответить с цитированием
  (#7 (permalink)) Старый
leto317 leto317 вне форума
Новичок
 
Сообщений: 12
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 25.12.2007
По умолчанию 11.01.2008, 23:52

Цитата:
Проще всего установить Parallels и в нем запустить VisualWorks - там и практиковаться с Seaside. Мне как-то удалось заставить его писать по-русски, но он периодически вылетал да и работать было не очень приятно. Плюс там нет нормальной поддержки MultiByteString. Поэтому установите VisualWorks и изучайте Seaside. Будут вопросы - обращайтесь
visualwork есть и под мак виртуализация не понадобится

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

Насколько вы уже освоились в Squeak? Можете ли вы загрузить truetype шрифты в ваш образ (первое условие русификации - наличие шрифтов?).
Ответить с цитированием
  (#9 (permalink)) Старый
leto317 leto317 вне форума
Новичок
 
Сообщений: 12
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 25.12.2007
По умолчанию 15.01.2008, 17:54

Цитата:
Насколько вы уже освоились в Squeak? Можете ли вы загрузить truetype шрифты в ваш образ (первое условие русификации - наличие шрифтов?).
Да, шрифты загрузил. Выбираются из всего списка. Но при вводе по-русски - квадратики. Причем один квадратик на символ.
Ответить с цитированием
  (#10 (permalink)) Старый
leto317 leto317 вне форума
Новичок
 
Сообщений: 12
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 25.12.2007
По умолчанию 16.01.2008, 12:20

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

Код:
WideString streamContents:     [:s |
    (16r430 to: (16r430 + 31)) do: [:i | s nextPut: i asCharacter]].
Скопируйте в workspace с включенным шрифтом, выделите и нажмите cmd-p (print-it) - видно русский? Это проверка на то, что у вас нормально с шрифтами.

А я пока буду с вводом смотреть (уже и windows разломали - еще летом все работало).
Ответить с цитированием
  (#12 (permalink)) Старый
danio danio вне форума
Member
 
Сообщений: 366
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 02.01.2004
По умолчанию 16.01.2008, 23:04

С вендой понятно что - вышла новая VM, которая в событие клавиатуры добавляет одно поле, с нажатием клавиши в виде юникод-кодпойнта (Со старым полем новая VM делает какую-ту неподтребщину - от чего и поломалось). Причем сделано это по аналогии с маковской VM, в которую эту фичу добавили первой.
Ниже поделка на скорую руку, которая вроде работает в виндовз на новой VM. Если с фонтами все ок - то, весьма вероятно, что заработает и в макос (мака у меня нет, сам проверить не могу). Поделку надо сохранить в файл Podelka.st и сделать операцию file in from the squeak file browser.
После чего выполнить в workspace
Код:
Locale switchToID: (LocaleID isoLanguage: 'ru')
вдруг заработает :)

Код:
LanguageEnvironment subclass: #RussianEnvironment
    instanceVariableNames: ''
    classVariableNames: 'RussianToLatinKeyboardMap'
    poolDictionaries: ''
    category: 'RussianSupport'!
!RussianEnvironment commentStamp: 'dao 1/16/2008 19:21' prior: 0!
Locale switchToID: (LocaleID isoLanguage: 'ru') !


"-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- "!

RussianEnvironment class
    instanceVariableNames: ''!

!RussianEnvironment class methodsFor: 'language methods' stamp: 'dao 8/30/2005 11:01'!
leadingChar

    ^0 "XXX: can't figure out right usage of it - let it be 0 now"
! !

!RussianEnvironment class methodsFor: 'language methods' stamp: 'dao 8/30/2005 12:54'!
originalKeyShortcutFromRussian: char

    
    ^RussianToLatinKeyboardMap at: char ifAbsent: [char]! !


!RussianEnvironment class methodsFor: 'private' stamp: 'dao 1/16/2008 19:28'!
clipboardInterpreterClass

    ^UnixJPClipboardInterpreter
! !

!RussianEnvironment class methodsFor: 'private' stamp: 'dao 8/27/2005 12:56'!
fileNameConverterClass

    ^self systemConverterClass ! !

!RussianEnvironment class methodsFor: 'private' stamp: 'dao 1/16/2008 19:18'!
inputInterpreterClass

    "self inputInterpreterClass "
    | vmPlatform vmVersion |
    vmPlatform := SmalltalkImage current platformName.
    vmVersion := SmalltalkImage current vmVersion.
    vmVersion.     "ignore version for now".
        
    vmPlatform = 'Win32' ifTrue: [^RussianInputInterpreter].
    
    ^RussianInputInterpreter
    
    ! !

!RussianEnvironment class methodsFor: 'private' stamp: 'dao 1/16/2008 19:20'!
systemConverterClass

    ^UTF8TextConverter! !


!RussianEnvironment class methodsFor: 'subclass responsibilites' stamp: 'dao 1/16/2008 19:36'!
defaultEncodingName

    ^'utf-8'! !


!RussianEnvironment class methodsFor: 'class initialization' stamp: 'dao 8/30/2005 12:00'!
initialize

    
    LanguageEnvironment resetKnownEnvironments.
    self initializeRussianToLatinKeyboardMap
    ! !

!RussianEnvironment class methodsFor: 'class initialization' stamp: 'dao 8/30/2005 12:52'!
initializeRussianToLatinKeyboardMap

    "self     initializeRussianToLatinKeyboardMap"
    | mapPairs |
    RussianToLatinKeyboardMap := Dictionary new.
    mapPairs :=  #( #(1081 113) #(1094 119) #(1091 101) #(1082 114) #(1077 116) #(1085 121) #(1075 117) #(1096 105) #(1097 111) #(1079 112) #(1093 91) #(1098 93) #(1092 97) #(1099 115) #(1074 100) #(1072 102) #(1087 103) #(1088 104) #(1086 106) #(1083 107) #(1076 108) #(1078 59) #(1101 39) #(1103 122) #(1095 120) #(1089 99) #(1084 118) #(1080 98) #(1090 110) #(1100 109) #(1073 44) #(1102 46) #(1049 81) #(1062 87) #(1059 69) #(1050 82) #(1045 84) #(1053 89) #(1043 85) #(1064 73) #(1065 79) #(1047 80) #(1061 123) #(1066 125) #(1060 65) #(1067 83) #(1042 68) #(1040 70) #(1055 71) #(1056 72) #(1054 74) #(1051 75) #(1044 76) #(1046 58) #(1069 34) #(1071 90) #(1063 88) #(1057 67) #(1052 86) #(1048 66) #(1058 78) #(1068 77) #(1041 60) #(1070 62) ) .
    mapPairs do: [:p | RussianToLatinKeyboardMap at: p first asCharacter put: p second asCharacter ]
! !


!RussianEnvironment class methodsFor: 'platform-testing' stamp: 'dao 10/14/2005 09:50'!
supportedLanguages
    
    ^#('ru' 'RU')
! !

KeyboardInputInterpreter subclass: #RussianInputInterpreter
    instanceVariableNames: ''
    classVariableNames: ''
    poolDictionaries: ''
    category: 'RussianSupport'!

!RussianInputInterpreter methodsFor: 'keyboard' stamp: 'dao 1/16/2008 19:27'!
nextCharFrom: sensor firstEvt: evtBuf

     "MacOS and Windows recent VMs put the unicode point code at the sixth field of event buffer.
      Don't care about anything else for a while.
      Is the #macToSqueak send still needed?"
    
    | char |
    char := evtBuf sixth asCharacter macToSqueak.
    
    "here we restore the original meaning for shortcuts, when layout is Russian"
    ^(evtBuf at: 5) > 2 "Alt or Ctrl pressed?"
        ifTrue: [RussianEnvironment  originalKeyShortcutFromRussian: char ]
        ifFalse: [ char ] .! !

RussianEnvironment initialize!
Ответить с цитированием
Ads
  (#13 (permalink)) Старый
leto317 leto317 вне форума
Новичок
 
Сообщений: 12
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 25.12.2007
По умолчанию 16.01.2008, 23:16

да, шрифт видно
я заюзал Helvetica
в результате выполнения этого кода у меня отобразилась строка русских маленьких букв от а до я
скриншот выложить некуда


Цитата:
Код:
WideString streamContents:     [:s |
    (16r430 to: (16r430 + 31)) do: [:i | s nextPut: i asCharacter]].
Скопируйте в workspace с включенным шрифтом, выделите и нажмите cmd-p (print-it) - видно русский? Это проверка на то, что у вас нормально с шрифтами.

А я пока буду с вводом смотреть (уже и windows разломали - еще летом все работало).
Ответить с цитированием
  (#14 (permalink)) Старый
danio danio вне форума
Member
 
Сообщений: 366
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 02.01.2004
По умолчанию 16.01.2008, 23:18

Цитата:
в результате выполнения этого кода у меня отобразилась строка русских маленьких букв от а до я
скриншот выложить некуда :-)
Не надо выкладывать - я вам верю ибо это не может быть простым совпадением.
Переходите на следующий уровень :)
Ответить с цитированием
  (#15 (permalink)) Старый
leto317 leto317 вне форума
Новичок
 
Сообщений: 12
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 25.12.2007
По умолчанию 16.01.2008, 23:37

йоу!!! заработало!

когда я выполнил эту Locale switchTo.... сквик подвис секунды на две
потом отвис
и ввод русских букв заработал

сенкс вери мач

но, черт возьми, хотелось бы понять че я сделал надо изучить фреймворк по-подробнее
смолтолк для меня теперь понятен
но надо понимать че и как устроено


Цитата:
Не надо выкладывать - я вам верю ибо это не может быть простым совпадением.
Переходите на следующий уровень
Ответить с цитированием
Ответ

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

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

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 danio Smalltalk 12 30.08.2008 01:01
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 - компьютерный форум и программирование, форум программистов