Russian Qt Forum
Ноябрь 24, 2024, 11:02 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: SLickEdit и русский текст  (Прочитано 5612 раз)
Steven_Orko
Гость
« : Сентябрь 30, 2006, 23:09 »

В общем, думаю, проблемма с вводом русского языка известна всем. Так вот, я придумал некоторое решение на основе не рабочего макроса из инета. Если на соответствующую команду повесить горячей клавишей F7, то с помощью нее можно включать русский и выключать его.
Макрос приведен ниже. Сохраните его, где хотите, обзовите, как хотите, но только его необходимо загрузить в слике.

Да, еще создал 4 мастера по два к Qt 3 и Qt 4 соответсвенно для создания проекта приложения. Тот визард, что выкладывал раньше, имел большЫе ошибки. Хотя новые тоже далеки от совершенства. Выложу их, как только привезу с работы.


Вот макрос для включения русского языка в слике. Может, кто лучше предложит - буду рад:

Цитировать

// Visual SlickEdit KOI8-R input module.
// Version 1.0
// Copyright (C) 2006 Steven Orko
// Bind command `enabled_koi8r_input` to any key or key sequence
// Use this binding to activete KOI8-R and F7 to deactivate
// Known problems: while KOI8-R input is active any mouse operations restricted
#include "slick.sh"

_str koi8r:[]=
{  
   '`'=>'1',  '1'=>'1','2'=>'2','3'=>'3','4'=>'4','5'=>'5','6'=>'6','7'=>'7','8'=>'8',
   '9'=>'9',   '0'=>'0','q'=>'К','w'=>'Г','e'=>'Х','r'=>'Л','t'=>'Е','y'=>'О','u'=>'З',
   'i'=>'Ы',    'o'=>'Э','p'=>'Ъ','['=>'И',']'=>'Я','a'=>'Ж','s'=>'Щ','d'=>'Ч','f'=>'Б',
   'g'=>'Р','h'=>'Т','j'=>'П','k'=>'М','l'=>'Д',';'=>'Ц','z'=>'С','x'=>'Ю','c'=>'У',
   'v'=>'Н','b'=>'Й','n'=>'Ф','m'=>'Ш',','=>'В','.'=>'А','/'=>'.','~'=>'і','!'=>'!',
   '@'=>'"','#'=>'#','$'=>';','%'=>'%','^'=>':','&'=>'?','*'=>'*','('=>'(',')'=>')',
   'Q'=>'к','W'=>'г','E'=>'х','R'=>'л','T'=>'е','Y'=>'о','U'=>'з','I'=>'ы','O'=>'э',
   'P'=>'ъ','{'=>'и','}'=>'я','A'=>'ж','S'=>'щ','D'=>'ч','F'=>'б','G'=>'р','H'=>'т',
   'J'=>'п','K'=>'м','L'=>'д',':'=>'ц','"'=>'ь','Z'=>'с','X'=>'ю','C'=>'у','V'=>'н',
   'B'=>'й','N'=>'ф','M'=>'ш','<'=>'в','>'=>'а','?'=>','
};

definit()
{
   message('Russian KOI8-R input module! Bind "enable_koi8r_input" and enjoy! Copyright (C) 2006 Steven Orko ');
   koi8r:['`'] =_UTF8Chr(1105);

   koi8r:['q'] =_UTF8Chr(1081);
   koi8r:['w'] =_UTF8Chr(1094);
   koi8r:['e'] =_UTF8Chr(1091);
   koi8r:['r'] =_UTF8Chr(1082);
   koi8r:['t'] =_UTF8Chr(1077);
   koi8r:['y'] =_UTF8Chr(1085);
   koi8r:['u'] =_UTF8Chr(1075);

   koi8r:['i'] =_UTF8Chr(1096);
   koi8r:['o'] =_UTF8Chr(1097);
   koi8r:['p'] =_UTF8Chr(1079);
   koi8r:['['] =_UTF8Chr(1093);
   koi8r:[']'] =_UTF8Chr(1098);
   koi8r:['a'] =_UTF8Chr(1092);
   koi8r:['s'] =_UTF8Chr(1099);
   koi8r:['d'] =_UTF8Chr(1074);
   koi8r:['f'] =_UTF8Chr(1072);

   koi8r:['g'] =_UTF8Chr(1087);
   koi8r:['h'] =_UTF8Chr(1088);
   koi8r:['j'] =_UTF8Chr(1086);
   koi8r:['k'] =_UTF8Chr(1083);
   koi8r:['l'] =_UTF8Chr(1076);
   koi8r:[';'] =_UTF8Chr(1078);
   koi8r:['"'] = _UTF8Chr(1101);
   koi8r:['z'] =_UTF8Chr(1103);
   koi8r:['x'] =_UTF8Chr(1095);
   koi8r:['c'] =_UTF8Chr(1089);


   koi8r:['v'] =_UTF8Chr(1084);
   koi8r:['b'] =_UTF8Chr(1080);
   koi8r:['n'] =_UTF8Chr(1090);
   koi8r:['m'] =_UTF8Chr(1100);
   koi8r:[','] =_UTF8Chr(1073);
   koi8r:['.'] =_UTF8Chr(1102);
   
   koi8r:['~'] =_UTF8Chr(1025);

   koi8r:['Q'] =_UTF8Chr(1049);
   koi8r:['W'] =_UTF8Chr(1062);
   koi8r:['E'] =_UTF8Chr(1059);
   koi8r:['R'] =_UTF8Chr(1050);
   koi8r:['T'] =_UTF8Chr(1045);
   koi8r:['Y'] =_UTF8Chr(1053);
   koi8r:['U'] =_UTF8Chr(1043);
   koi8r:['I'] =_UTF8Chr(1064);
   koi8r:['O'] =_UTF8Chr(1065);

   koi8r:['P'] =_UTF8Chr(1047);
   koi8r:['{'] =_UTF8Chr(1061);
   koi8r:['}'] =_UTF8Chr(1066);
   koi8r:['A'] =_UTF8Chr(1060);
   koi8r:['S'] =_UTF8Chr(1067);
   koi8r:['D'] =_UTF8Chr(1042);
   koi8r:['F'] =_UTF8Chr(1040);
   koi8r:['G'] =_UTF8Chr(1055);
   koi8r:['H'] =_UTF8Chr(1056);

   koi8r:['J'] =_UTF8Chr(1057);
   koi8r:['K'] =_UTF8Chr(1051);
   koi8r:['L'] =_UTF8Chr(1044);
   koi8r:[':'] =_UTF8Chr(1046);
   koi8r:['"'] =_UTF8Chr(1069);
   koi8r:['Z'] =_UTF8Chr(1071);
   koi8r:['X'] =_UTF8Chr(1063);
   koi8r:['C'] =_UTF8Chr(1054);
   koi8r:['V'] =_UTF8Chr(1052);

   koi8r:['B'] =_UTF8Chr(1048);
   koi8r:['N'] =_UTF8Chr(1058);
   koi8r:['M'] =_UTF8Chr(1068);
   koi8r:['<'] =_UTF8Chr(1041);
   koi8r:['>'] =_UTF8Chr(1070);
}
defload()
{
   message('Russian KOI8-R input module! Bind "enable_koi8r_input" and enjoy! Copyright (C) 2006 Steven Orko ');
}

_command void enable_koi8r_input()
{
   while(1)
   {
     message('Russian KOI8-R input activated. Press "ESC" to disable it!');
      key = get_event('K');
     // message(event2name(key));
     
      if(event2name(key)=='F7')
      {
         message('Russian KOI8-R input disabled.');
         break;
      };
      if(event2name(key)=="\'")  
      {
         _insert_text(_UTF8Chr(1101));
      }else
      if(koi8r._indexin(event2name(key)))
      {
       _insert_text(koi8r:[event2name(key)]);
      }else
      {
         call_key(key);
      };      
   } ; /*
   for (i = 1040; i < 1106; ++i) {
            _insert_text(_UTF8Chr(i)" - "i"   \n ");
      } */
};


Записан
Tonal
Гость
« Ответ #1 : Октябрь 02, 2006, 08:46 »

Круть! ;-)
А не проще сликовские функции перекодирования заюзать?
koi8 он вроде знает, так же как и dos866 и win1251.
Записан
Steven_Orko
Гость
« Ответ #2 : Октябрь 03, 2006, 00:20 »

Я пробывал, только фигня в том, что несмотря на заданную кодировку кои8-р, слик отображал у меня текст все равно в юникоде. Просто он переводил файл из кои8 в юникод перед  отображением, потому при вводе русских букв получалось, что вводятся они иероглифам, хотя при сохранении файла и открытии его заново все нормально видится. Потому пришлось именно так сделать, чтобы можно было печатать текст прямо в слике во время редактирования текста.
Записан
Enabled
Гость
« Ответ #3 : Август 04, 2011, 14:05 »

В общем, думаю, проблемма с вводом русского языка известна всем. Так вот, я придумал некоторое решение на основе не рабочего макроса из инета. Если на соответствующую команду повесить горячей клавишей F7, то с помощью нее можно включать русский и выключать его.
Макрос приведен ниже. Сохраните его, где хотите, обзовите, как хотите, но только его необходимо загрузить в слике.

Да, еще создал 4 мастера по два к Qt 3 и Qt 4 соответсвенно для создания проекта приложения. Тот визард, что выкладывал раньше, имел большЫе ошибки. Хотя новые тоже далеки от совершенства. Выложу их, как только привезу с работы.


Вот макрос для включения русского языка в слике. Может, кто лучше предложит - буду рад:

Цитировать
// Visual SlickEdit KOI8-R input module.
// Version 1.0
// Copyright (C) 2006 Steven Orko
// Bind command `enabled_koi8r_input` to any key or key sequence
// Use this binding to activete KOI8-R and F7 to deactivate
// Known problems: while KOI8-R input is active any mouse operations restricted
#include "slick.sh"
...

Когда я выкладывал этот макрос в июне 2006 (http://www.linux.org.ru/news/opensource/1431442) он прекрасно у всех работал.
У вас в октябре 2006 он перестал работать?
И начал работать только после того как мои "Copyright (C) 2006 Ivan Kulkov" изменились на "Copyright (C) 2006 Steven Orko"?
Зачем было мой копирайт убирать? Просто дописал бы свой и всё, мне не жалко.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.048 секунд. Запросов: 20.