Автор Гілка: firefox ukrainian hotkeys  (Прочитано 16859 раз)

Відсутній Tikhon

  • Кореспондент
  • ***
  • дописів: 135
  • Карма: +0/-0
  • програміст
firefox ukrainian hotkeys
« : 2006-10-15 22:26:56 »
Знайшов в мережі додаток до вогнелиса, котрий вмикає хоткеї в російській розкладці. (http://forum.ubuntu.ru/index.php?topic=4635.0)
Вирішив додати туди символи з української розкладки, але щось в мене нічого не виходить.

ось код:
/*
 * Russian hot keys bugfix.
 * Copyrigh (c) 2006 by Relan (relan@bk.ru)
 * This software is distributed under the GNU General Public License version 2.
 */

// codes translation table
var RhkbTable = new Array(0x46, 0x2C, 0x44, 0x55, 0x4C, 0x54, 0x3B, 0x50, 0x42, 0x51, 0x52, 0x4B, 0x56, 0x59, 0x4A, 0x47, 0x48, 0x43, 0x4E, 0x45, 0x41, 0x5B, 0x57, 0x58, 0x49, 0x4F, 0x5D, 0x53, 0x4D, 0x27, 0x2E, 0x5A, 0x66, 0x2C, 0x64, 0x75, 0x6C, 0x74, 0x3B, 0x70, 0x62, 0x71, 0x72, 0x6B, 0x76, 0x79, 0x6A, 0x67, 0x68, 0x63, 0x6E, 0x65, 0x61, 0x5B, 0x77, 0x78, 0x69, 0x6F, 0x5D, 0x73, 0x6D, 0x27, 0x2E, 0x7A);

var extrahash = {
  0x0490: 0x007C, // Ґ - |
  0x0404: 0x0022, // Є - "
  0x0406: 0x0053, // І - S
  0x0407: 0x007D, // Ї - }
  0x0491: 0x005C, // ґ - \
  0x0454: 0x0027, // є - '
  0x0456: 0x0073, // і - s
  0x0457: 0x005D, // ї - ]
  0x002E: 0x002F // . - /
}


var Rhkbf = {
        // А-Я: 0x0410-0x042F, а-я: 0x0430-0x44F
        // АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ => F,DULT;PBQRKVYJGHCNEA[WXIO]SM'.Z
        // абвгдежзийклмнопрстуфхцчшщъыьэюя => f,dult;pbqrkvyjghcnea[wxio]sm'.z

        keypress: function(evt) {
                if (!evt.altKey && !evt.ctrlKey)
                        return;

                var newCharCode = 0;

                if (evt.charCode >= 0x0410 /* А */ && evt.charCode <= 0x0442F /* я */) {
                        newCharCode = RhkbTable[evt.charCode - 0x0410];
                }
                else {
        /*
                        for (var k in extrahash) {
                                k = parseInt(k);
                                if ( evt.charCode == k ) {
                                        newCharCode = parseInt(hash[k]);
                                }
                        }

                        if (newCharCode == 0) {
                                return;
                        }
        */
                        if ( evt.charCode == 0x456 ) {
                                newCharCode = 0x73;
                        }
                        else {
                                return;
                        }

                }

                var trevt = document.createEvent("KeyboardEvent");
                trevt.initKeyEvent(evt.type, evt.canBubble, evt.cancelable,
                        evt.view, evt.ctrlKey, evt.altKey, evt.shiftKey, evt.metaKey,
                        evt.keyCode, newCharCode);
                evt.preventDefault();
                evt.target.dispatchEvent(trevt);
        },

        load: function() {
                try {
                        window.removeEventListener("keypress", Rhkbf.keypress, true);
                } catch(ex) {
                }
                window.addEventListener("keypress", Rhkbf.keypress, true);
        }
}

window.addEventListener("load", function() { Rhkbf.load(); }, false);

ось шмат коду, котрий не працює:
                       if ( evt.charCode == 0x456 ) {
                                newCharCode = 0x73;
                        }
                        else {
                                return;
                        }
він має в українській розкладці замінювати 'і' на 's'
тим самим активувати хоткей збереження сторінки,
але не працює

в чому може бути проблема?
З повагою....

Відсутній Cthulhu

  • Кореспондент
  • ***
  • дописів: 183
  • Карма: +0/-0
Re: firefox ukrainian hotkeys
« Відповідей #1 : 2006-10-16 18:15:19 »
if (evt.charCode >= 0x0410 /* А */ && evt.charCode <= 0x0442F /* я */)Наводить на роздуми, бо 456 < 442F. Думаю, слід s/0x442F/0x044F/g , а то ваш код там взагалі не виконується.

Відсутній Tikhon

  • Кореспондент
  • ***
  • дописів: 135
  • Карма: +0/-0
  • програміст
Re: firefox ukrainian hotkeys
« Відповідей #2 : 2006-10-16 20:00:46 »
тьху ти господи, от дурний,
коли це вже я встиг туди 2-ку вліпити (0x0442F => 0x044F) :)
безмежно вдячний Вам, пане :)

отже кому потрібні хоткеї при ввімкнутій українській чи російській розкладці,
милості прошу качати цей додаток chkbf.zip,
змінюєте розширення на .xpi та насолоджуєтесь роботою з вогнелисом :)

всі подяки автору цього додатка Relan (relan@bk.ru)
« Змінено: 2006-10-16 20:49:38 від tikhon »
З повагою....

Praporshic

  • Гість
Re: firefox ukrainian hotkeys
« Відповідей #3 : 2006-10-16 20:52:11 »
Дивно, але в мене в українській розкладці не працює :'(
Firefox/1.5.0.6 (Debian-1.5.dfsg+1.5.0.6-4)

Відсутній Tikhon

  • Кореспондент
  • ***
  • дописів: 135
  • Карма: +0/-0
  • програміст
Re: firefox ukrainian hotkeys
« Відповідей #4 : 2006-10-16 21:23:02 »
є підозри, шо не то залив, спробуйте цей
З повагою....

Praporshic

  • Гість
Re: firefox ukrainian hotkeys
« Відповідей #5 : 2006-10-16 21:40:09 »
І справді ;) Дуже дякую.

Відсутній Cthulhu

  • Кореспондент
  • ***
  • дописів: 183
  • Карма: +0/-0
Re: firefox ukrainian hotkeys
« Відповідей #6 : 2006-10-16 22:46:53 »
Справді працює. Дякую, корисна річ.

Відсутній Cthulhu

  • Кореспондент
  • ***
  • дописів: 183
  • Карма: +0/-0
Re: firefox ukrainian hotkeys
« Відповідей #7 : 2006-11-05 18:59:00 »
Тут це саме... оригінал тепер на mozilla.org живе, і оце розширення тепер при поновленні затирається. Я йому новий uid згенерив, тепер буде нормально.

Відсутній AEX_CHECKER

  • Новачок
  • *
  • дописів: 21
  • Карма: +0/-0
  • I Love YaBB 2!
Re: firefox ukrainian hotkeys
« Відповідей #8 : 2007-12-28 18:31:53 »
Тут це саме... оригінал тепер на mozilla.org живе, і оце розширення тепер при поновленні затирається. Я йому новий uid згенерив, тепер буде нормально.
В яке місцерозташування покласти цей chkbf-0.9.1.xpi  файл.
« Змінено: 2007-12-28 18:32:51 від AEX_CHECKER »

Відсутній Cthulhu

  • Кореспондент
  • ***
  • дописів: 183
  • Карма: +0/-0
Re: firefox ukrainian hotkeys
« Відповідей #9 : 2007-12-28 18:58:05 »
Тут це саме... оригінал тепер на mozilla.org живе, і оце розширення тепер при поновленні затирається. Я йому новий uid згенерив, тепер буде нормально.
В яке місцерозташування покласти цей chkbf-0.9.1.xpi  файл.
Ctrl-o і виберіть файл.

Відсутній Сашко Кравчук

  • Графоман
  • ****
  • дописів: 490
  • Карма: +0/-0
  • Debian GNU/Linux
Re: firefox ukrainian hotkeys
« Відповідей #10 : 2008-01-01 15:48:52 »
Супер! Дякую!!!