Прикручивание русского языка к FP в линуксе

Планы, идеология, архитектура и т.п.

Модератор: Модераторы

Re: Прикручивание русского языка к FP в линуксе

Сообщение SSerge » 02.01.2013 15:17:03

alex_alex_alex1 писал(а):Переводите и давайте патчи.

???Патчи??? Вы видели код этой библиотеки? Её на 2/3 переписывать придётся. К тому же не имеет практического смысла поддерживать архаические структуры, навсегда ушедшие в историю
SSerge
энтузиаст
 
Сообщения: 815
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: Прикручивание русского языка к FP в линуксе

Сообщение alex_alex_alex1 » 02.01.2013 15:21:32

Тогда помогайте делать то, что делается. Пока логично использовать внешнюю кодировку CP866 - это делает luit, использовать внутреннюю кодировку CP866. На данный момент даже это в fp как следует не поддерживается и надо патчить, и патчить в этом случае придется не очень много. Поэтому, этот путь по пути наименьшего сопротивления.
alex_alex_alex1
постоялец
 
Сообщения: 179
Зарегистрирован: 15.10.2010 14:08:50

Re: Прикручивание русского языка к FP в линуксе

Сообщение stikriz » 02.01.2013 21:36:44

Сквозняк писал(а):Это программисту в каждом конкретном случае решать а редактор не должен вредить.

Вы не писали в Лазарус. Отсюда и все проблемы. На дворе 21 век, никто не парится по поводу размера исходника - все можно сжать. Юникод дает возмжность писать под все языки, так и пишите под все, в том числе и под русский.
Аватара пользователя
stikriz
энтузиаст
 
Сообщения: 613
Зарегистрирован: 15.03.2006 09:37:47

Re: Прикручивание русского языка к FP в линуксе

Сообщение alex_alex_alex1 » 02.01.2013 22:25:33

При чём тут Лазарус. Вы пойдите и объясните это преподавателю, который читает лекции по Turbo Pascal. Например, у нас в Химическом университете на первом курсе всего один семестр программирование - студентам более, чем изучить немного Turbo Pascal по программе и не надо. В школах всё абсолютно тоже самое. В одной из школ я лично знаю, что учат Бейсик на БК. Поэтому, и делаем русский fp-ide.
alex_alex_alex1
постоялец
 
Сообщения: 179
Зарегистрирован: 15.10.2010 14:08:50

Re: Прикручивание русского языка к FP в линуксе

Сообщение bormant » 03.01.2013 00:01:34

Даже не знаю, чего не хватает для этих тривиальных задач...
Код: Выделить всё
$ locale -a | grep ^ru_RU
ru_RU
ru_RU.cp1251
ru_RU.koi8r
ru_RU.utf8
$ LANG=ru_RU.cp1251 luit
$ cat luit_test.pas
var
  s: string;
begin
  writeln('Привет, мир!');
  readln(s);
  writeln(s);
end.
$ fpc luit_test
...
7 lines compiled, 0.1 sec
$ ./luit_test
Привет, мир!
Привет, FPC!
Привет, FPC!
Вроде как всё в полном порядке.
Аватара пользователя
bormant
постоялец
 
Сообщения: 379
Зарегистрирован: 21.03.2012 11:26:01

Re: Прикручивание русского языка к FP в линуксе

Сообщение alex_alex_alex1 » 03.01.2013 03:24:22

В консоли русский работает. Его нет в IDE.
alex_alex_alex1
постоялец
 
Сообщения: 179
Зарегистрирован: 15.10.2010 14:08:50

Re: Прикручивание русского языка к FP в линуксе

Сообщение bormant » 03.01.2013 09:30:34

Выходит, проблемы обучения программированию в школе/институте при помощи FreePascal под Linux надуманы.
Однобайтовая cp1251 приведена в примере исходя из частых задач на посимвольную обработку строк и однобайтовый char.
Аватара пользователя
bormant
постоялец
 
Сообщения: 379
Зарегистрирован: 21.03.2012 11:26:01

Re: Прикручивание русского языка к FP в линуксе

Сообщение alex_alex_alex1 » 03.01.2013 13:21:44

Консоль руссифицировать не надо - задача стоит руссифицировать IDE.
alex_alex_alex1
постоялец
 
Сообщения: 179
Зарегистрирован: 15.10.2010 14:08:50

Re: Прикручивание русского языка к FP в линуксе

Сообщение Сквозняк » 05.01.2013 03:55:37

stikriz писал(а):Вы не писали в Лазарус. Отсюда и все проблемы. На дворе 21 век, никто не парится по поводу размера исходника - все можно сжать. Юникод дает возмжность писать под все языки, так и пишите под все, в том числе и под русский.

Именно что писал и сейчас иногда правлю гуёвину приложения, потому и знаю проблемы его интерфейса и формы - нерешаемые в обозримом будущем потому как "для энтерпрайза и так сойдёт" и "а в дельфях так сделано". Сделайте для начала в лазарусе настройку отображения кода как в FP и нормальную поддержку 8 битных кодировок чтобы редактор не портил те символы которые не понимает а потом рассказывайте какой это во всех смыслах прогрессивный редактор.

Добавлено спустя 1 час 59 минут 1 секунду:
alex_alex_alex1 писал(а):Консоль руссифицировать не надо - задача стоит руссифицировать IDE.

Символы с кодами 0 - 31 не отображаются, остальные от 32 до 255 нормально. Никак не найду причину.

Не понимаю твоей проблемы - у тебя нормальное отображение символов, почти как в fp из fpc 2.0.2, даже лучше
Изображение Изображение
Только там символы 1..31 изображались моргающей чёрным заглушкой, ты же можешь вывести вместо неё надпись "НЕВИДИМЫЕ В КОНСОЛИ СИМВОЛЫ" и дело в шляпе. И это будет верно:
Код: Выделить всё
var
A: byte;

begin
writeln('111111111111111');
for A:=1 to 31 do write(chr(A));
writeln('');
writeln('222222222222222');
end.

И в линуксовой и в вайновой консолях демка выведет пшик, из чего следует что проблема не в паскалевском редакторе а в ограничениях консолей.
Сквозняк
энтузиаст
 
Сообщения: 580
Зарегистрирован: 29.06.2006 22:08:32

Re: Прикручивание русского языка к FP в линуксе

Сообщение alex_alex_alex1 » 05.01.2013 10:48:16

Не всё так просто. Текущие src.rpm тут: ftp://ftp.mageialinux.ru/mageia2/SRPMS/ (пакет называется fp-ide)
- IDE полностью переведено на русский язык
- не работает отладчик http://bugs.freepascal.org/view.php?id=23581
- глючит много где, например, Отладка -> Вычислить (кнопки не работают, вместо их нажатия вводится набор иероглифов, и это происходит абсолютно во всём IDE, но где-то диалоги работают корректно, странно), например, Справка -> Файлы... - тут вообще ни одна кнопка не работает.
Помогите отладить, пожалуйста.
Я не настолько крутой программист чтобы осилить столь сложный код. У них исходники чёрт ногу сломит - строки прямо в коде, в ресурсы не вынесено, использовал исключительно sed для перевода, возможны ошибки и тут (но я проверял и непереведенное IDE - проблемы воспроизводятся).
xdf046.png
xdf046.png (7.68 КБ) Просмотров: 14467
alex_alex_alex1
постоялец
 
Сообщения: 179
Зарегистрирован: 15.10.2010 14:08:50

Re: Прикручивание русского языка к FP в линуксе

Сообщение Сквозняк » 05.01.2013 14:56:46

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

Чтобы нормально протестировать редактор, желательно разобраться как его теперь собирать со всеми патчами кроме как rpm -i *.src.rpm Надо что-то привычное, компиляющее и патчащее распакованный пакет в локальном каталоге без установки в систему и стирания модифицированных исходников.fp-ide
Сквозняк
энтузиаст
 
Сообщения: 580
Зарегистрирован: 29.06.2006 22:08:32

Re: Прикручивание русского языка к FP в линуксе

Сообщение alex_alex_alex1 » 05.01.2013 15:13:32

Да всё просто:
1) заменить video.pp
2) запустить скрипт local_ru.sh
3) make all
Я запускаю его через luit, но он должен поддерживать CP 866:
export LANG="ru_RU.CP866" && luit -encoding 'CP 866' /usr/local/bin/fp
Чтобы исключить ошибки руссификации, скрипт local_ru.sh можно не запускать.
alex_alex_alex1
постоялец
 
Сообщения: 179
Зарегистрирован: 15.10.2010 14:08:50

Re: Прикручивание русского языка к FP в линуксе

Сообщение Сквозняк » 06.01.2013 00:36:30

В понедельник-вторник посмотрю подробнее, из того что увидел, метод запуска редактора кривой: на моей федоре иногда удаётся добиться русского текста в интерфейсе, чаще там корябулы и непонятно зачем нужна эта свистопляска с переменной LANG - редактор умеет менять кодировки консоли, чем постоянно пользуется, нужно лишь найти как он это делает и поправить. Например, сразу при запуске нужно врубить IBM 866, во время запуска программ или просмотре выхлопа консоли врубается UTF-8, что есть правильно - нужно отлаживать ПО в той среде, в какой оно будет работать. Но вот сразу при выходе из консольного выхлопа нужно прописать в редакторе переключение кодировки консоли обратно на IBM 866 чтобы русские буквы не испортились. И тогда никакие глючные сторонние утилиты для запуска fp будут не нужны.
Сквозняк
энтузиаст
 
Сообщения: 580
Зарегистрирован: 29.06.2006 22:08:32

Re: Прикручивание русского языка к FP в линуксе

Сообщение Максим » 06.01.2013 01:38:09

alex_alex_alex1
Я не смотрел ваши патчи, но, судя по их описанию, вы рискуете тем, что ваши наработки никогда приняты в апстрим не будут. Поэтому я бы рекомендовал сначала обсудить подходы к решению данной проблемы в списке рассылки fpc-devel, чтобы не тратить усилия впустую.
Аватара пользователя
Максим
энтузиаст
 
Сообщения: 588
Зарегистрирован: 27.07.2007 01:51:43
Откуда: Москва

Re: Прикручивание русского языка к FP в линуксе

Сообщение alex_alex_alex1 » 06.01.2013 05:16:45

Текущее состояние по проекту следующее:
- отказался от luit
- приспособил lxterminal (для всех DE) и gnome-terminal (для LXDE) для запуска в кодировке CP866 (сейчас никаких UTF-8 быть не должно - и консоль, и редактор используют только CP866)
- оставил перевод символов с кодами #0..#31,#127 в видимый диапазон #32..#255 (так лучше для большинства настроек консолей, пусть и в ущерб некоторым символам)
- глюков стало значительно меньше
- не работают горячие клавиши (не все)
- отладчик так и не работает

Впустую ничего не тратится - создается отдельный пакет - русский fp-ide, который не пересекается с апстримом, тем не менее его поддерживать в актуальном состоянии будет несложно. В апстрим по любому ничего не попадёт - им там нафик ничего не нужно.

Добавлено спустя 11 минут 32 секунды:
Надо лишь настроить поддержку CP866 в консоли. Например, в Магее это:
- установить пакет glibc-i18ndata и выполнить команду под root: localedef -i ru_RU -f IBM866 ru_RU.CP866 (это прописано в spec файле)
- использовать скрипт fp-ide для запуска.
А конечному пользователю надо лишь установить пакет fp-ide.

Добавлено спустя 4 минуты 1 секунду:
А LANG нужно менять, иначе если он увидит, что UTF-8 в LANG, то будет работать совершенно так как не нужно.
alex_alex_alex1
постоялец
 
Сообщения: 179
Зарегистрирован: 15.10.2010 14:08:50

Пред.След.

Вернуться в Разработки на нашем сайте

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

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

Рейтинг@Mail.ru