Page 1 of 2

Языки и шрифты в Kolibri 0.5.2

Posted: Sun Apr 02, 2006 10:07 pm
by xGibrit
Прочитал об операционнке, стало интересно перевести её на турецкий язык (я учусь в турецком лицее). Читал статью парня из узбекистана и увидел, что нужно поменять файлы char.mt и char2.mt. Но в колибри они совершенно другие! Что нужно сделать, чтобы перевести на турецкий язык?

Posted: Sun Apr 02, 2006 10:36 pm
by Veliant
В 0530 сборке в исходниках в папке boot лежит файл RU.INC в нем находится вторая половина таблицы шрифтов. В нем и можешь поменять на нужные символы.

Posted: Mon Apr 03, 2006 12:14 am
by mike.dld
xGibrit
Для этого нужно заставить Халявина выложить наконец-то где-нибудь программу для конвертации шрифтов :)

Андрей: Если она отличается от моей CONVERT.COM только тем, что в CHAR2.MT добавлен байт ширины для каждого символа, то я могу переделать свою. С другой стороны, если твоя имеет графический интерфейс - почему бы не выложить её...

Posted: Mon Apr 03, 2006 7:37 am
by halyavin
Только тем, что добавлен байт ширины для каждого символа.
Кажется я как раз твой convert.com и изменял для конвертации (куда его у себя сохранил - не помню) ;).

Posted: Sat Apr 08, 2006 11:19 am
by xGibrit
В 0530 сборке в исходниках в папке boot лежит файл RU.INC в нем находится вторая половина таблицы шрифтов. В нем и можешь поменять на нужные символы.
А как менять? Там одни 0x?? написаны, что с ними делать?

Posted: Sat Apr 08, 2006 12:21 pm
by mike.dld
Представь себе, что каждый символ представляется набором бит. Приведу пример, в RU.INC написано:

Code: Select all

 db  0x00, 0x00, 0x1E, 0x36, 0x66, 0xC6, 0xC6, 0xFE, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00
Это шестнадцатеричные числа, на каждую букву - 16 чисел. Представим их в двоичном виде и вынесем каждое число в новую строку:

Code: Select all

00000000
00000000
00011110       oooo
00110110      oo oo
01100110     oo  oo
11000110    oo   oo
11111110    ooooooo
11000110    oo   oo
11000110    oo   oo
11000110    oo   oo
11000110    oo   oo
00000000
00000000
00000000
00000000
Eсли приглядеться, то можно распознать букву "А". Надеюсь, идея ясна

Posted: Mon Apr 10, 2006 6:23 am
by xGibrit
Всё понял. Спасибо. :D

Posted: Tue Apr 11, 2006 4:35 pm
by xGibrit
Следующая проблема ...

Многие буквы расположенны на клавишах цифр. Что нужно изменить в ru.inc чтобы вместо цифр выводились буквы, а когда нажимаешь alt, выводились цифры?

Posted: Sat Apr 15, 2006 6:35 am
by xGibrit
РАЗРАБОТЧИКИ, ПОЖАЛУЙСТА, ОТВЕТЬЕ НА МОЙ ВЫШЕ ЗАДАННЫЙ ВОПРОС!!!

Posted: Sat Apr 15, 2006 9:46 am
by Veliant
если не ошибаюсь то в файле ru.inc хранятся только русские буквы остальные хранятся где-то в другом месте (скорее всего в знакогенераторе)

Posted: Sat Apr 15, 2006 9:50 am
by Mario79
xGibrit
В ru.inc находятся шрифты, которые выводятся в синем загрузочном экране. К твоей проблеме, по-моему, это отношение совсем не имеет.
Alt в текущем варианте системы заблокирован для функции 2. Он используется для приложения @PANEL для обрабатывания горячих комбинаций. А отключение для функции 2 я сделал, для того, чтобы в текстовом редакторе или другом приложении не выводился мусор при нажатии горячих комбинаций.
В текущем варианте имеются следующие горячие комбинации:
Ctrl+Alt+Del <- работает на уровне ядра.
Остальные работают за счет @PANEL
Сtrl+Shift <-переключение раскладки клавиатуры
Shif+Shift <- переключение языка системы
Alt+Win - запуск приложения MENU
Alt+Ctrl+F12 - запуск приложения END
Alt+F4 - завершение активного приложения.
Для изменения кодирования клавиш тебе нужно изменить кодировку символов в приложении SETUP.
alt_general:

; db ' ',27
; db ' @ $ {[]}\ ',8,9
; db ' ',13
; db ' ',0,' ',0,'4',0,' '
; db ' ',180,178,184,'6',176,'7'
; db 179,'8',181,177,183,185,182
; db 'ABCD',255,'FGHIJKLMNOPQRSTUVWXYZ'
; db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
; db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
; db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'


en_keymap:

db '6',27
db '1234567890-=',8,9
db 'qwertyuiop[]',13
db '~asdfghjkl;',39,96,0,'\zxcvbnm,./',0,'45 '
db '@234567890123',180,178,184,'6',176,'7'
db 179,'8',181,177,183,185,182
db 'AB<D',255,'FGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'


en_keymap_shift:

db '6',27
db '!@#$%^&*()_+',8,9
db 'QWERTYUIOP{}',13
db '~ASDFGHJKL:"~',0,'|ZXCVBNM<>?',0,'45 '
db '@234567890123',180,178,184,'6',176,'7'
db 179,'8',181,177,183,185,182
db 'AB>D',255,'FGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'


fr_keymap:

db '6',27
db '&О"',39,'(-Н_УР)=',8,9
db 'azertyuiop^$',13
db '~qsdfghjklmТ',0,0,'*wxcvbn,;:!',0,'45 '
db '@234567890123',180,178,184,'6',176,'7'
db 179,'8',181,177,183,185,182
db 'AB<D',255,'FGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'



fr_keymap_shift:


db '6',27
db '1234567890+',8,9
db 'AZERTYUIOPХФ',13
db '~QSDFGHJKLM%',0,'ЦWXCVBN?./',0,'45 '
db '@234567890123',180,178,184,'6',176,'7'
db 179,'8',181,177,183,185,182
db 'AB>D',255,'FGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'


fr_keymap_alt_gr:


db '6',27
db 28,'~#{[|Ш\^@]}',8,9
db 'azertyuiop^$',13
db '~qsdfghjklmТ',0,0,'*wxcvbn,;:!',0,'45 '
db '@234567890123',180,178,184,'6',176,'7'
db 179,'8',181,177,183,185,182
db 'AB<D',255,'FGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'




fi_keymap:

db '6',27
db '1234567890+[',8,9
db 'qwertyuiop',192,'~',13
db '~asdfghjkl',194,193,'1',0,39,'zxcvbnm,.-',0,'45 '
db '@234567890123',180,178,184,'6',176,'7'
db 179,'8',181,177,183,185,182
db 'AB<D',255,'FGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'


fi_keymap_shift:

db '6',27
db '!"#П%&/()=?]',8,9
db 'QWERTYUIOP',200,'~',13
db '~ASDFGHJKL',202,201,'1',0,'*ZXCVBNM;:_',0,'45 '
db '@234567890123',180,178,184,'6',176,'7'
db 179,'8',181,177,183,185,182
db 'AB>D',255,'FGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'



ge_keymap:

db '6',27
db '1234567890?[',8,9
db 'qwertzuiop',203,'~',13
db '~asdfghjkl',194,193,'1',0,39,'yxcvbnm,.-',0,'45 '
db '@234567890123',180,178,184,'6',176,'7'
db 179,'8',181,177,183,185,182
db 'AB<D',255,'FGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'


ge_keymap_shift:

db '6',27
db '!"#$%&/()=',197,']',8,9
db 'QWERTZUIOP',195,'~',13
db '~ASDFGHJKL',202,201,'1',0,'*YXCVBNM;:_',0,'45 '
db '@234567890123',180,178,184,'6',176,'7'
db 179,'8',181,177,183,185,182
db 'AB>D',255,'FGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

ru_keymap:

db '6',27
db '1234567890-=',8,9
db 'йцукенгшщзхъ',13
db 0,"фывапролджэ"
db 0xf1, '-/'
db "ячсмитьбю",'.-','45 '
db '@234567890123',180,178,184,'6',176,'7'
db 179,'8',181,177,183,185,182
db 'AB<D',255,'FGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'



ru_keymap_shift:

db '6',27
db '!"N;%:?*()_+',8,0
db "ЙЦУКЕНГШЩЗХЪ",13
db 0,"ФЫВАПРОЛДЖЭ"
db 0xf0, '-\'
db "ЯЧСМИТЬБЮ",',-','45 '
db '@234567890123',180,178,184,'6',176,'7'
db 179,'8',181,177,183,185,182
db 'AB>D',255,'FGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

Как видишь, Alt я приравнял к обычной раскладке, закомментировав его данные.
Но это не все как я уже описывал выше, в самом ядре заблокирован вывод комбинаций с Alt для функции 2.
Вместо таких комбинаций выдается 0.
Конечно, это не лучший выход, но я не разработчик Тинипадов и нужен был какой то выход для борьбы с мусором. А игнорировать 0 значение гораздо проще, чем отлавливать все комбинации с Alt.
Вот такие дела. Возможно, для тебя есть выход сделать две раскладки, переключая которые можно вводить недостающие символы. Но опять же могут возникнуть проблемы.

Posted: Sat Apr 15, 2006 9:04 pm
by xGibrit
Mario79

Жалко, что alt не работает ... Ну ладно, сделаю 2 рескладки.

Другая проблема, в ru.inc не использовано 16 символов, т.е. с 80 до 96 символа там храняться нули. Если я их изменю, то нужно сделать, чтобы использовать их? Причём вместо "1" пишет, к примеру символ "Х".

Posted: Sun Apr 16, 2006 3:08 pm
by Mario79
xGibrit
На данный вопрос я тебе не могу ответить. Экспериментируй, может чего и получиться.

Posted: Mon Apr 17, 2006 4:36 pm
by xGibrit
Mario79
ru.inc - это шрифты для реального режима. А где храняться шрифты для защищённого?

Posted: Mon Apr 17, 2006 4:57 pm
by willow
char*.mt