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

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

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

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

Сообщение SSerge » 03.02.2013 08:35:04

Сквозняк писал(а):Сколько лет уже работаю с Lazarus-ом никогда не задумывался о том, что у него какие-то "плохие" шрифты в редакторе, они меня полностью устраивают


Под Windows у него все относительно нормально, под линукс отображение шрифтов поганенькое, факт. :(
Некорректное отображение файлов в байтовых кодировках (не UTF-8) также имеет место; но особого значения на практике не несет, ибо нефиг ими пользоваться.

Кстати, cp866 - самая неудачная кодировка в плане поддержки компилятора. Он (компилятор) её при считывании файлов, если задана директива {$codepage cp866}, извращает. :D
ну и в плане программирования для "линуксов" байтовые кодировки актуальны для древних релизов типа Красной Шапки 7 или архиконсервативной FreeBSD, у которой корректной уникодной локали нет до сих пор.

Вообще, сторонникам программирования в консолях, наконец то стоило бы задуматься над тем, как они осуществляют задачу вывода национальных символов на консоль и ввода.

методика №1. Я бы назвал ее "жопа советского периода"

Код: Выделить всё
program test;

Var s:string;

begin
  write('введите строку:');
  readln(s);
  writeln('Вы ввели:',s);
end.

В данном случае нет речи вообще о каких-то языковых структурах. Компилятору тупо скармливается as is байтовое представление исходника, строка как есть передается на экран. Исходники в обязательном порядке должны быть в той кодировке, в которой работает текстовая консоль. При попытке работатьс консолью UTF8 первое что вылезает - это нарушение позиционирования при форматном выводе (типа writeln('Моя строка':15,s:10);) и другие радости.


методика №2. Промежуточная. Текст исходника - только в UTF8. Порождена как раз переходом лазаруса в UTF и работой с его редакторами. Компиляторы 2.6.х и младьшие. Delphi uncompatible вообще то.

Код: Выделить всё
program test;

Var s:string;

begin
  write(UTF8ToConsole('введите строку:'));
  readln(s);
  s:=consoleToUTF8(s);
  ...
  writeln(UTF8ToConsole('Вы ввели:'),UTF8ToConsole(s));
end.


Методика 3. То, что сделано в Delphi, начиная с 2005-й версии и вообще то единственно правильный способ с точки зрения идеологии. Требует компилятора 2.7.х с поддержкой unicode, который еще не вышел в стадию релиза, хотя надо сказать, вполне работоспособен.


Код: Выделить всё
{$codepage UTF8}
program test;

Var s:UnicodeString;

begin
  write('введите строку:');
  readln(s);
  writeln('Вы ввели:',s);
end.

Здесь преобразования кодовых страниц и строк управляются компилятором и все работает именно так, как и должно работать.

Однако, всегда по факту превалирует методика "жопа советского периода". Причина изначальная - неосмысленный перевод западных - в первую очередь американских - книжек про программирование. Они там не знают значков которые за кодом ASCII, им кириллица не нужна. :D
SSerge
энтузиаст
 
Сообщения: 896
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

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

Сообщение Сквозняк » 03.02.2013 09:02:20

SSerge писал(а):Кстати, cp866 - самая неудачная кодировка в плане поддержки компилятора. Он (компилятор) её при считывании файлов, если задана директива {$codepage cp866}, извращает.

Ненужная директива плохо работает, печаль.

Код: Выделить всё
write(UTF8ToConsole('введите строку:'))

Если поставить в консоли произвольную кодировку отличную от системной, UTF8ToConsole не справится с задачей, эта функция только в виндах что-то полезное делает.
Это ж надо привести несколько примеров и старательно обойти удобный и рабочий:

Код: Выделить всё
Writeln(CP866_v_utf8('йцукен'));

Всего-то и нужна одна самописная функция возвращающая значение типа ansistring.
Сквозняк
энтузиаст
 
Сообщения: 764
Зарегистрирован: 29.06.2006 22:08:32

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

Сообщение Brainenjii » 03.02.2013 09:02:47

У "begin end" и "writeln" толщина линии разная и это в настройках известным мне способом не регулируется. А без нормальной регулировки шрифтов и подсветки кода нельзя делать чёрный цвет фона.

Вы подсветку синтаксиса считаете недостатком? Однако... Тем не менее - 8 кликов мышки:
Изображение
FP IDE спроектирован так что на нём удобно погрузиться в процедурщину а Lazarus адаптирован для клепания гуёв и ковыряния в классах, у него даже с масками в путях модулей проблемы

Вы считаете поддержку ООП недостатком? Однако... Тем не менее - пишу консольные приложения уже около 2 лет без каких либо проблем на том же самом Lazarus'e. С Unit test'ами, отладчиком, Console output'ом и прочими радостями жизни (см. выше).
У лазаруса ещё проблемы с исходниками в 8 битных кодировках, не умеет от при отображении кода в utf8 отображать непонятные символы в виде мусора который никому не мешает и не портит содержимое файла - компилировать релизную версию то всё равно будет fpc из коммандной строки.

Можно какой-нибудь конкретный пример? Сейчас поставил кодировку CP1251 (вполне себе однобайтную), надобавлял всяких непотребных символов времён DOS'а - все прекрасно отобразилось.
Изображение
Тебе руским по русскому ещё раз говорят: для процедурного программирования.

По поводу процедурщины - назовите, пожалуйста, хоть одно преимущество FP IDE на этом поприще против Lazarus'a? Я не злорадства ради спрашиваю, и не потроллить - просто может быть Вы просто не в курсе, что та или иная задача вполне себе может быть решена в Lazarus'е и тратите своё время на доработку ПО, заброшенного даже своими создателями по причине отсталости.
В свою личную версию а потом мучительно патчить при каждом обновлении :mrgreen: Лёгкость внесения изменений облегчает оные дизайнерам со странным эталоном прекрасного.

Когда-то давным давно при написании JSON сериализатора мне потребовался инструмент быстрого сравнения 2 JSON строк и нахождения разницы между ними. Приходилось сначала форматировать JSON представление для эталона и факта, а затем прогонять их через diff. Это было крайне неудобно. За 30 минут накидал пакет к лазарус'у, и получил требуемый функционал прямо в IDE. Который работает до сих пор. Что именно Вы хотите доработать в Lazarus'e, чтобы он начал Вам подходить?
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1352
Зарегистрирован: 10.05.2007 00:04:46

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

Сообщение rayanAyar » 03.02.2013 09:15:59

SSerge писал(а):Под Windows у него все относительно нормально, под линукс отображение шрифтов поганенькое, факт. :(

Работаю с Lazarus-ом под Linux несколько лет - никаких проблем с шрифтами для меня нет.

По поводу кодировок. Дети в нашей школе пишут просто:
Код: Выделить всё
write('введите строку:')

И никаких страшных и непонятных для них функций UTF8to... Не знаю как там под виндами, а в Lazarus под linux всё работает и так. И дети фокусируются на изучении алгоритмов, а не особенностей кодировок симоволов.
Аватара пользователя
rayanAyar
новенький
 
Сообщения: 42
Зарегистрирован: 06.01.2011 08:22:52
Откуда: Новоуральск

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

Сообщение debi12345 » 03.02.2013 10:21:19

себе может быть решена в Lazarus'е и тратите своё время на доработку ПО, заброшенного даже своими создателями по причине отсталости

FP-IDE может работать в режиме удаленной консоли (MSE/Lazarus требуют для этого VNC как минимум) - идеально для ремоут-админа по части написания консольных утиллит (хотя лично я чаще пользуюсь MC - но это дело привычки). Это крайне важный нюас - любой опытный линуксоид подтвердит. Так что не надо ля-ля :)
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5638
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

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

Сообщение SSerge » 03.02.2013 10:25:36

debi12345 писал(а):FP-IDE может работать в режиме удаленной консоли (MSE/Lazarus требуют для этого VNC как минимум) - идеально для ремоут-админа п


Скажу вам страшное - на удаленной консоли с текстами fpc гораздо проще манипулировать через редактор Midnight Commander'a. Причем, и синтаксис подсвечен.

Добавлено спустя 3 минуты 22 секунды:
Сквозняк писал(а):Если поставить в консоли произвольную кодировку отличную от системной, UTF8ToConsole не справится с задачей


С подобным извращением не справится ни одна программа вообще то. :mrgreen:

Добавлено спустя 7 минут 25 секунд:
Сквозняк писал(а):Это ж надо привести несколько примеров и старательно обойти удобный и рабочий:

Код: Выделить всё
Writeln(CP866_v_utf8('йцукен'));


Всего-то и нужна одна самописная функция возвращающая значение типа ansistring.


А он ничем не отличается по принципам от приведенного первого примера, наследия социализации :D
SSerge
энтузиаст
 
Сообщения: 896
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

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

Сообщение rayanAyar » 03.02.2013 10:37:17

debi12345 писал(а):FP-IDE может работать в режиме удаленной консоли - идеально для ремоут-админа по части написания консольных утиллит. Это крайне важный нюас - любой опытный линуксоид подтвердит.

Я линуксоид (насколько опытный - решать конечно не мне). Не один раз делал небольшие поделки для нужд системного администрирования, в том числе для рабочих серверов. Ни разу у меня даже мысли не было о том, чтобы разрабатывать и компилировать "утилиту" на продакшн-сервере, тем более подключаясь к нему удаленно.
Аватара пользователя
rayanAyar
новенький
 
Сообщения: 42
Зарегистрирован: 06.01.2011 08:22:52
Откуда: Новоуральск

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

Сообщение Brainenjii » 03.02.2013 10:38:39

идеально для ремоут-админа по части написания консольных утиллит (хотя лично я чаще пользуюсь MC - но это дело привычки). Это крайне важный нюас - любой опытный линуксоид подтвердит. Так что не надо ля-ля

Не Вы занимаетесь доработкой FP IDE, не нужно троллить во всех темах форума. TS нужны 8 битные кодировки -> о Linux'ax речи нет (AFAIK, всё что было в KOI8 уже давно не поддерживается, а держать на боевом сервере не поддерживаемую ОС - сомнительное удовольствие).
В любом случае, если Вам нужно запускать IDE в ssh - хорошенько задумайтесь о техпроцессе разработки. Заявляю как опытный "линуксоид"(с). Откройте для себя VCS, виртуальные машины и lazbuild.
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1352
Зарегистрирован: 10.05.2007 00:04:46

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

Сообщение SSerge » 03.02.2013 10:39:18

Кстати, пока тема еще не перешла в эпический срач о всемирных революциях, автор хотя бы снабдил читающих ссылками на свой проект что ли, а то чего-то все больше похоже на обсуждение сферического коня в вакууме; мне как-то пофиг, у меня есть на это своя точка зрения, но если автор таки желает единомышленников, так пусть даст им точные координаты своего детища.
SSerge
энтузиаст
 
Сообщения: 896
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

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

Сообщение Сквозняк » 03.02.2013 11:08:12

Brainenjii писал(а):Вы подсветку синтаксиса считаете недостатком? Однако... Тем не менее - 8 кликов мышки:

Здрасьте, была в лазарусе кривая подсветка синтаксиса, стала ещё кривее.
Вы считаете поддержку ООП недостатком?

Если она реализована в ущерб процедурщине то такой редактор становится узкоспециализированным и не может нормально заменить собой все остальные.
Можно какой-нибудь конкретный пример? Сейчас поставил кодировку CP1251 (вполне себе однобайтную), надобавлял всяких непотребных символов времён DOS'а - все прекрасно отобразилось.

Окрой несколько файлов в UTF8 и скопипасти в них мышкой кусок текста с комментами в CP866 - они испортятся.
И никаких страшных и непонятных для них функций UTF8to... Не знаю как там под виндами, а в Lazarus под linux всё работает и так. И дети фокусируются на изучении алгоритмов, а не особенностей кодировок симоволов.

То есть изучают сферических коней в вакууме а "откуда байты растут" узнают только при изучении С.
Кстати, пока тема еще не перешла в эпический срач о всемирных революциях, автор хотя бы снабдил читающих ссылками на свой проект

Мой проект пока здесь - инструкции по самостоятельной переделке редактора. У Алекса - его пакет для магейи. С запиливанием патчей для FP IDE в линуксы оное развивается и живёт своей жизнью. Надо полагать именно поэтому сюда тролли и "понабижали".
Сквозняк
энтузиаст
 
Сообщения: 764
Зарегистрирован: 29.06.2006 22:08:32

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

Сообщение Brainenjii » 03.02.2013 11:19:10

Сквозняк: Вы вообще понимаете о чем пишите? Потратьте 5 минут времени, чтобы настроить подсветку синтаксиса как Вам угодно! Я лишь показал что Вы ошибаетесь в двух утверждениях!
У "begin end" и "writeln" толщина линии разная и это в настройках известным мне способом не регулируется
Ваши слова? Одинаковая ширина у Begin и WriteLn на скриншоте?!
А без нормальной регулировки шрифтов и подсветки кода нельзя делать чёрный цвет фона.
Ваши слова? Черный цвет у фона на скриншоте?!
Если она реализована в ущерб процедурщине
Вы издеваетесь?! Я уже несколько раз просил - покажите, что умеет FP, чего не умеет Lazarus! Где ущерб? Продемонстрируйте ХОТЬ ОДИН пример!
Окрой несколько файлов в UTF8 и скопипасти в них мышкой кусок текста с комментами в CP866 - они испортятся.
Откуда, по-вашему, я брал пример с псевдокодом?! Сам, ручками набивал? Хорошо, специально для Вас сделаю видео, как я копирую мышкой кусок текста с комментариями в из UTF8 в редактор с кодировкой CP866!

Ещё раз. Продемонстрируйте ХОТЬ ОДНО преимущество FP IDE против Lazarus'a. И перестаньте убеждать себя, что в Lazarus'е невозможно писать в процедурном подходе.
http://youtu.be/e8s9LXDKp4k
В обратную сторону копирование тоже работает, не догадался на видео записать.

В общем, к чему я. Мне кажется, что вы тратите свое время на, простите модераторы, херню. Морально устаревшую. И называть всех, кто не хочет тратить время на это троллями, бездельниками, не желающими исправлять баги, затыкающими уши, - это безумство. Всё что есть в FP IDE заботливо перенесено в Lazarus - нужно только начать им пользоваться. Если что-то не устраивает в Lazarus'e озвучьте. Буквы одинаковой ширины и копипаст в разные кодировки Lazarus делать умеет. Что ещё? Только на конкретных примерах - "Не умеет процедурщину" не принимается.
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1352
Зарегистрирован: 10.05.2007 00:04:46

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

Сообщение alex_alex_alex1 » 03.02.2013 12:25:04

Ссылки уже давались и не раз.
Репозиторий: ftp://ftp.mageialinux.ru/mageia2/SRPMS/ (пакет называется fp-ide)
Дистрибутив (live): http://forum.mageialinux.ru/viewtopic.p ... 7293#p7293
Это не форк, это официальный fp, опакеченный особым образом.
alex_alex_alex1
постоялец
 
Сообщения: 207
Зарегистрирован: 15.10.2010 14:08:50

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

Сообщение Сквозняк » 03.02.2013 18:43:25

Brainenjii писал(а): Вы вообще понимаете о чем пишите? Потратьте 5 минут времени, чтобы настроить подсветку синтаксиса как Вам угодно! Я лишь показал что Вы ошибаетесь в двух утверждениях!

Сначала настрой в лазарусе отображение кода как в FP с жирным моноширинным шрифтом а потом уже толкай батон в уши но никак не до. И прочие баги своего любимого редактора исправь, а то подсказки работают как не хочу говорить что, тогда и не нужно будет его агрессивно впаривать, ой - заниматься маркетингом. Свойства лазаруса обсуждайте в соответствующих темах, а здесь обсуждаются улучшения и исправления текстовой ИДЕ.
Сквозняк
энтузиаст
 
Сообщения: 764
Зарегистрирован: 29.06.2006 22:08:32

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

Сообщение alex_alex_alex1 » 03.02.2013 19:15:28

Правильно, нечего тут троллить. По лазарусу - в соседние ветки. Если есть патчи к fp - милости просим. В этой теме речь идет о русской версии fp и всему, что связано с ней.
alex_alex_alex1
постоялец
 
Сообщения: 207
Зарегистрирован: 15.10.2010 14:08:50

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

Сообщение Brainenjii » 03.02.2013 19:22:53

Т.е. весь необратимый ущерб процедурщине в Lazarus'e заключается в невозможности сделать жирный моноширинный шрифт? Блин, действительно, вот же какой БАГ в своём любимом редакторе я просмотрел :-( Видимо пришло время посыпать голову каким-нибудь пеплом :cry:
Изображение
Чу! Что это? Не может быть, неужели мне удалось сделать отображение кода "жирным моноширинным шрифтом" в Lazarus'e?! Но стойте-ка. Ведь я мог это делать сколько могу вспомнить! Уф, слава Богу, ещё одним БАГОМ стало меньше! Слава любимому редактору!

Ну а если серьёзно, я полагаю, что никаких адекватных недостатков Lazarus'a в сравнении с FP IDE Вы мне не назовёте. Поскольку их нет. И я Вас настоятельно советую присмотреться к Lazarus'у как основной IDE. Поскольку продуктивность (если Вы не учитель) у Вас только вырастет с переходом на адекватные средства разработки.
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1352
Зарегистрирован: 10.05.2007 00:04:46

Пред.След.

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

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

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

Рейтинг@Mail.ru