Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Ср окт 18, 2017 10:29 am

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 134 сообщения ]  На страницу Пред. 15 6 7 8 9 След.
Автор Сообщение
СообщениеДобавлено: Пн авг 15, 2011 2:53 pm 
Не в сети

Зарегистрирован: Сб авг 13, 2011 1:48 pm
Сообщения: 49
Мне почему-то кажется, что одной из первоочередных задач является поддержка различных языков системой, иначе KolibriOS вряд ли будет популярна по всему миру. Для этого нужно реализовать поддержку Unicode, различных раскладок клавиатур и кодировок, а также других национальных стандартов. Но в данный момент мы имеем:
1. Системной кодировкой "официально" считается CP866.
2. При этом фактически кодировка в системе не определена - соответствие символов двоичным кодам зависит от mt-шрифтов.
3. Нынешний шрифт char.mt, таким образом, соответствует кодировке СP866 (DOS Cyrillic), а char2.mt - кастрированно-мутированной версии CP866 без псевдографики, начиненной "левыми" символами с кодами 0xC0-0xD6, 0xF8-0xFE.
4. Unicode поддерживается только файловой подсистемой.
5. поддерживается только русская QWERTY-раскладка клавиатуры.
6. Все программы довольно плохо "дружат" с национальными стандартами. Например, в английском языке разделителем дробной части является точка, а в русском - запятая; многие виды письменности используют обратный порядок написания символов (справа налево); в американском и британском вариантах английского языка дата, как правило, пишется по-разному и т.д.)


Вернуться к началу
СообщениеДобавлено: Пн авг 15, 2011 7:15 pm 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Чт сен 03, 2009 1:52 pm
Сообщения: 1599
Раскладку поменять довольно просто, она загружается из keymap.key с довольно прозрачным форматом. Естественно, по модулю того, что раскладка - это отображение из сканкодов в используемую кодировку. Остальное - проблемы, да.
CP866 фактически на уровне ядра присутствует, а именно, файловые системы в однобайтном варианте конвертируют именно в неё.

_________________
Сделаем мир лучше!


Вернуться к началу
СообщениеДобавлено: Пн авг 15, 2011 8:03 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Вт авг 25, 2009 4:45 pm
Сообщения: 788
самые большие проблемы, имхо, с юникодом - его парсить сложно, код будет большой, да и сам текст занимает больше.


Вернуться к началу
СообщениеДобавлено: Пн авг 15, 2011 10:56 pm 
Не в сети

Зарегистрирован: Сб авг 13, 2011 1:48 pm
Сообщения: 49
XVilka, даже неоптимизированная процедура чтения символа UTF-8 или UTF-16, принимающая на входе указатель на символ, и на выходе возвращающая 32-битный кодпойнт + указатель на следующий символ, в несжатом состоянии у меня занимает 120-130 байт. Неужели это так много? Тем более поддержку различных кодировок можно вынести в различные библиотеки (одна для UTF7/8/16/32, другая для WIN CP12**, третья для DOS CP8** и т.д.), а пользователь сможет удалить/добавить в систему нужную/ненужную ему кодировку.


Вернуться к началу
СообщениеДобавлено: Пн авг 15, 2011 11:12 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Вт май 08, 2007 12:44 am
Сообщения: 340
В библиотеки-то зачем? Достаточно класса "однобайтовая кодировка" и "двухбайтовая кодировка" -- для Big5 и прочего, если вообще понадобится. Для трансляции в Unicode однобайтовой кодовой страницы достаточно таблицы на 128 слов, для EBDIC -- 256 слов. Таблицу обратной трансляции создавать в памяти.

Не нужно копировать подход iconv с минимум 64-килобайтными библиотеками на кодировку. Уж тем более в Колибри. А в Винде полноразмерные таблицы в сделаны для отображения NLS-файлов в память. Опять же, не подход Колибри.

_________________
Разработчик языка программирования Кантор


Вернуться к началу
СообщениеДобавлено: Пн авг 15, 2011 11:22 pm 
Не в сети

Зарегистрирован: Сб авг 13, 2011 1:48 pm
Сообщения: 49
Ну можно сделать такой вариант: сложные кодировки типа UTF-7/UTF-8 реализовывать в библиотеках, а простые типа KOI-8/EBCDIC как таблицы. Это, конечно, если заботиться о расширяемости.


Вернуться к началу
СообщениеДобавлено: Вс сен 04, 2011 4:55 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пт июн 27, 2008 3:22 pm
Сообщения: 974
Joaquin
1. Справедливо только для русской сборки.
2. CleverMouse уже ответила про keymap.key
3. Системные шрифты - это массив символов, которые по-разному мапятся на коды клавиатуры в зависимости от раскладки клавиатуры.
4. Кириллица также поддерживается по крайней мере двумя программами HTMLv и utf2dos
5. Нет. Запусти Zkey и понажимай Alt+1...Alt+9.
6. Согласен.


Вернуться к началу
СообщениеДобавлено: Вс сен 11, 2011 9:54 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Вс май 10, 2009 7:56 pm
Сообщения: 97
Как по мне, так самы такая приорететная задача это дать возможность писать программы в самой Колибри.

Сделать это можно либо дописав редактор KFAR до уровня Tinypad или T_Edit, либо любым способом дать возможность масштабировать шрифты в тех же Tinypad или T_Edit.


Вернуться к началу
СообщениеДобавлено: Вт сен 13, 2011 12:33 am 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 750
kogemyaka писал(а):
либо любым способом дать возможность масштабировать шрифты в тех же Tinypad или T_Edit.

Как один из вариантов можно разработать экранную лупу как виндовсе.


Вернуться к началу
СообщениеДобавлено: Вт сен 13, 2011 2:51 am 
Не в сети
Аватара пользователя

Зарегистрирован: Вт авг 25, 2009 4:45 pm
Сообщения: 788
IgorA: имхо, но это костыль. Лучше потратить время на сам TinyPad или T_Edit


Вернуться к началу
СообщениеДобавлено: Вт сен 13, 2011 2:53 am 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Пт авг 14, 2009 1:46 am
Сообщения: 1291
IgorA писал(а):
Как один из вариантов можно разработать экранную лупу как виндовсе.

Только не это!
Давайте лучше человеческий Курьер в качестве подгружаемого системного шрифта в ядро впихнём?


Вернуться к началу
СообщениеДобавлено: Вт сен 13, 2011 3:00 am 
Не в сети
Аватара пользователя

Зарегистрирован: Вт авг 25, 2009 4:45 pm
Сообщения: 788
art_zh: может лучше terminus? он свободный, и глифов больше.


Вернуться к началу
СообщениеДобавлено: Вт сен 13, 2011 9:17 am 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
1) Экранная лупа есть.
2) Терминус и правда лучше, ИМХО
3) Не знаю, насколько это покорежит ядро. Разве что если 4ю функцию исправить, чтобы она кроме char.mt и char2.mt другие шрифты тоже умела использовать в схожем формате, но разных размеров...
Допустим,
Код:
    * eax = 4 - номер функции
    * ebx = [координата по оси x]*65536 + [координата по оси y]
    * ecx = 0xX0RRGGBB, где
          o RR, GG, BB задают цвет текста
          o X=ABnn (биты):
          o nn задает используемый шрифт: 0=системный моноширинный, 1=системный шрифт переменной ширины, 10=новые системные шрифты
          o A=0 - выводить esi символов, A=1 - выводить ASCIIZ-строку
          o B=1 - закрашивать фон цветом edi
    * edx = указатель на начало строки
    * esi = Для nn=00 и 01:
               A=0 длина строки, должна быть не больше 255; для A=1 игнорируется
               Для nn=10 указатель на структуру (имя шрифта, размер шрифта).
Если nn=00 или 01,то функция не возвращает значения, иначе
eax=высота глифа, ebx=длина строки


Вернуться к началу
СообщениеДобавлено: Вт сен 13, 2011 11:43 am 
Я уже предлагал такое viewtopic.php?f=36&t=561&start=101
Приложение через дополнительную функцию подгружает шрифт и использует. Нужно лишь прописать каждому потоку свой указатель на область с 3-м шрифтом. Много памяти это не сожрет, ведь шрифты будут в памяти лишь по мере необходимости сменять друг-друга.


Вернуться к началу
   
СообщениеДобавлено: Ср сен 14, 2011 12:48 am 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 750
Лупа для увеличения шрифта не самый лучший вариант, просто предлагал как возможный временный выход. Плохо что нельзя фиксировать увеличиваемую область, иначе курсор портит всю работу.

Думаю что если в системе будет новые шрифты, то переделать t_edit будет не очень сложно. Вот на рисунке пример программы, где изменены всего 2 цифры. Как видно возникли небольшие проблемы с верхней панелью, хотя остальное работает как надо.


Вложения:
t_edit_big.png
t_edit_big.png [ 9.99 КБ | 2086 просмотров ]
Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 134 сообщения ]  На страницу Пред. 15 6 7 8 9 След.

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


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

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB