OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Среда, 17 Июль, 2019 03:22

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 42 ]  На страницу 1, 2, 3  След.
Автор Сообщение
СообщениеДобавлено: Воскресенье, 30 Сентябрь, 2018 23:21 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 496
Смысл обратимости состоит в том, что любое слово (идентификатор), содержащее кириллицу и латиницу,
обратимым образом превращается в латиницу без применения знаков пунктуации. Например, сейчас

«моиDocs» превратится в «moijDjojcjs».

Это важно в случае, если мы хотим писать по-русски в тех местах, где РЯ не поддерживается, а именно:
- в именах файлов на файловых системах, не поддерживающих кириллицу (у bitbucket проблемы с кириллицей)
- в URL (поддержка кириллицы плохая)
- в E-mail (по сути поддержки кириллицы нет)
- в именах пользователей Linux
- в бат-файлах Windows, где возникает конфликт кодировок

Обратимость и единый стандарт позволит передавать информацию точно и улучшать общее качество работы.

Этот стандарт уже вовсе не молод и я его уже использовал, но я решил вернуться к паре нерешённых вопросов.
См. http://программирование-по-русски.рф/яролит.яргт/

Основное, чего не могу решить: как будет «красный» - krasnyyyi или krasnyyj.
Ещё я хочу поменять принцип кодировки латиницы, будет так: moixeDocs, но здесь уже решать нечего - нужно просто сделать.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 01 Октябрь, 2018 10:30 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4291
Откуда: Россия, Орёл
Зачем изобретать велосипед, когда есть ГОСТ Р52535.1-2006, применяемый ФМС для загранпаспортов, или ГОСТ 7.79-2000 по правилам транслитерации?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 01 Октябрь, 2018 12:19 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 496
Мне казалось, что потребность именно в обратимом преобразовании, использующем только буквы, очевидна.
Но оказывается, что она совершенно неочевидна для большинства людей. Попытаюсь объяснить.
Чтобы не повторяться, процитирую статью на Хабре, от автора первого (известного мне) обратимого транслита:
Цитата:
Например, и сегодня используются томографы, не допускающие кириллицу в именах пациентов. При том, что информационная система, используемая тем же отделением, прекрасно кириллицу понимает. И оператору томографа нужно не просто позвать пациента на исследование, но и правильно записать его фамилию в какие-нибудь документы. Похожие ситуации могут встретится в разных местах.

То есть, возникает задача как-то передать текстовые данные в унаследованную систему, чтобы:
человек — оператор унаследованной системы смог прочесть полученный текст «по звучанию»
при необходимости можно было бы однозначно восстановить исходный кириллический текст


Источник: https://habr.com/post/265455/

Почитайте дальше - там написано, почему ни один существующий стандарт не годится.

Другие возможные примеры:
  • записать кириллицей имя файла в ФС, не поддерживающей кириллицу.
  • создать в организации имя пользователя Linux для всех пользователей
  • корпоративный E-mail
  • генерация веб-документов с якорями для пунктов оглавления
  • генерация страниц для продуктов в каком-нибудь магазине
  • создать компилятор языка Си с возможностью применения русскоязычных идентификаторов.
Кириллические URL-ы проходят с большим скрипом. Многие хостеры, копировщики файлов FTP, системы контроля версий, веб-фреймворки не поддерживают кириллицу. Тот же git плохо показывает в консоли кириллические имена файлов. Поэтому мотивов использовать латиницу для написания русского текста более чем достаточно.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 01 Октябрь, 2018 12:35 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 496
Конкретно по вашим стандартам.
ГОСТ 52535.1-2006 - E и Э превращаются в одинаковую латиницу, необратимо. Отмечу, что стандарт кодировки загранпаспортов менялся за последние годы несколько раз.
ГОСТ 7.79-2000 (ИСО 9-95) - две системы. Система A использует диакритику (не ASCII, не пролезет во многих местах), система Б использует апостроф - непригодно для идентификаторов.

И давайте дальше не обсуждать нужность. Мне лично такой транслит нужен, я знаю, куда его применить, и уже много раз применял. Есть и другие люди, которым он нужен. Сейчас я хочу решить конкретный вопрос - заменять ли кодирование й c yi на j, хочу услышать глас народа.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 01 Октябрь, 2018 12:52 

Зарегистрирован: Пятница, 13 Март, 2009 16:36
Сообщения: 798
Откуда: Казань
budden писал(а):
Система A использует диакритику (не ASCII, не пролезет во многих местах), система Б использует апостроф - непригодно для идентификаторов.

А надо ли в 21-м веке закладываться на ASCII? Может быть изначально лучше на UNICODE ориентироваться?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 01 Октябрь, 2018 12:58 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 496
"Тему не читай, сразу отвечай"


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 01 Октябрь, 2018 23:13 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4291
Откуда: Россия, Орёл
URL в принципе не поддерживает не-ASCII, там используется суррогат, который преобразуют, в общем-то, браузеры. Остальное -- частные случаи. Более того, сейчас всё более редкие. В остальных местах повсеместный юникод. Либо в варианте винды, либо UTF-8.

Что касается ГОСТа, то я по нему прекрасно генерировал идентификаторы пользователей на базе их ФИО (для ~1,5 тыс. сотрудников). Никто не жаловался. Обратное преобразование не требовалось ни разу за всю мою практику (которая далеко не вчера началась).

Касательно генерации в кириллических идентификаторов в какой-нибудь, не к ночи помянутый, Си, то там всё равно в одну сторону. Можно по тому же ГОСТу.

И вообще. ГОСТ он на то и ГОСТ. А то наплодить можно сколько угодно "новых стандартов" несовместимых с другими "новыми стандартами", которые сами по себе никому не нужны.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 01 Октябрь, 2018 23:31 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 496
Т.е., я так понял, что здесь будет обсуждаться только нужность (точнее, говоря, ненужность), а заданный мной вопрос никто не собирается обсуждать.

Ну, тогда всем спасибо за мнения.

Единственное, если вдруг, кто-то захочет высказаться, то я уточню, почему вопрос о замене yi на j не так тривиален. Потому что у меня остались запасные буквы. Я уже израсходовал одну из них на переключение языка (пример, когда это нужно, приводится на странице, упомянутой в посте). Остаётся ещё одна - w. Возможные применения буквы w - это, например, нерусские буквы кириллицы. И на этом буквы заканчиваются. Если j осталось бы в запасе, было бы как-то спокойнее за будущее расширение. В целом пока из 3 опрошенных 2 высказались за замену yi на j и один (я) воздержался.

P.S. Борис, ваш ответ фактически и доказуемо неверен. Я уже объяснял почему, и я это объяснил как минимум дважды перед тем, как вы написали последний комментарий с логической ошибкой. Причина достаточно простая и легко постижимая. Но вы мои объяснения проигнорировали и поэтому я не вижу способа донести до вас элементарную вещь. Если вам не хватает внимания или времени подумать о теме и не ошибаться, то лучше, наверное, вообще не участвовать. Хотя, конечно, я тут фрик, а вы - администратор, можете мне и ножницами врезать. Но от этого фактически верным ваш ответ не станет. Знаете-ли, логика, такая вот наука, в которой не так уж важно, кто администратор, а кто нет.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 01 Октябрь, 2018 23:40 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2595
Откуда: Россия, Ярославль
Самое важное в т.н. "логике" это вспомнить о ней первее, чем оппонент.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 01 Октябрь, 2018 23:48 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 874
Откуда: Киев
Борис Рюмшин писал(а):
Касательно генерации в кириллических идентификаторов в какой-нибудь, не к ночи помянутый, Си, то там всё равно в одну сторону.
Вы будете смеяться, но Си поддерживает кириллицу на уровне стандарта ISO C99. Правда, поддержка на уровне компиляторов не блестящая. Из используемых мною, лучшая поддержка в Clang, но и в gcc она тоже есть.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 02 Октябрь, 2018 14:11 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 496
Вот тут я разжевал, как мог, для 5-летних детей, почему транслит необходим. https://budden73.livejournal.com/37189.html

Насчёт загранпаспортов могу добавить, что упомянутый вами ГОСТ
[url=https://ru.wikipedia.org/wiki/Транслитерация_русского_алфавита_латиницей#Сравнительная_таблица_систем_транслитерации]не применяется[/url] для кодирования паспортов с 2012 года, и его наследник тоже нас покинул. Так что говорить о том, что загранпаспорта как-то стандартно кодируются, нельзя. Там царит полнейшая анархия.

Иллюстрацию на высказывание «везде поддерживается юникод, кроме редеющих частных случаев» можно видеть прямо в моём комментарии. Движок вашего форума не переварил ссылку на википедию. А вот ссылку на Яндекс вполне переваривает. Так что ваш форум тоже почему-то оказался таким редеющим частным случаем.

Когда я делал «Яр» и сайт [url=http://программирование-по-русски.рф]программирование по-русски[/url], я честно попытался использовать кириллицу везде. На самом деле, каждый новый вариант использования кириллицы - это битва. Мне приходилось дебажить разные библиотеки и делать к ним частные патчи (не стоит ждать, что такой патч у вас примут - проблемы индейцев шерифа сами знаете что - будете поддерживать его самостоятельно). И даже пришлось удалить историю своего проекта в Mercurial за год и перевести проект на git только по той причине, что связка mercurial+bitbucket не поддерживает кириллицу в именах директорий. Во многих случаях я проиграл битву и пришлось использовать латиницу. Вот тут-то мне и пригодился обратимый транслит. Так что про юникод - это либо пропаганда, либо розовые мечты, но никак уж не реальность.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 02 Октябрь, 2018 15:27 

Зарегистрирован: Пятница, 13 Март, 2009 16:36
Сообщения: 798
Откуда: Казань
budden писал(а):
Так что про юникод - это либо пропаганда, либо розовые мечты, но никак уж не реальность.

Это не пропаганда :) Это просто тренд. Все больше и больше систем поддерживают юникод. Да, 100%, возможно, не будет никогда, будет 99%. Всё к этому идёт.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 02 Октябрь, 2018 17:57 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4291
Откуда: Россия, Орёл
budden писал(а):
Иллюстрацию на высказывание «везде поддерживается юникод, кроме редеющих частных случаев» можно видеть прямо в моём комментарии. Движок вашего форума не переварил ссылку на википедию.

Да, форум старый. Но имена пользователей, внезапно, в юникоде. И никакого транслита.

Своё мнение я высказал: проблема транслита сейчас не проблема. А вы можете отстаивать своё мнение, кто же вам мешать будет.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 02 Октябрь, 2018 19:07 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 496
Назвать проблему не проблемой можно, но я могу это назвать схоластикой. Вы просто упираетесь, и всё. В реальности не проблемой оно станет не ранее, чем E-Mail и загранпаспорта станут в кириллице. А так можно вообще сказать, что русский язык не нужен и не проблема говорить на английском. Далее не проблема заменить русскоговорящее население данной территории на англоговорящее.

Моя ценностная установка состоит в том, что Россия вообще и русский язык в частности нуждаются сегодня в защите. Государство это понимает и пытается защищать РЯ за границей. Но оно проглядело такую зияющую брешь, как экспансию английского в профессиональное общение. Просто попробуйте выйти с любым предложением по кириллизации на Хабр, и с вами будет вот так: https://habr.com/post/108846/ или вот так: https://www.linux.org.ru/forum/developm ... d=14508247 Транслит Зайцева на Хабре не в минусе, но посмотрите, сколько плюсов собрал саркастический комментарий: https://habr.com/post/265455/#comment_8550443

Нужно дать тем, кто хочет использовать РЯ в ИТ, возможность сделать это. Этому препятствуют как гуманитарные, так и технические препятствия. На сегодня на этом пути столько граблей, что он практически непроходим. То, что делаю я (транслит, раскладка клавиатуры, и ранее неудавшаяся попытка создания технически передового русскоязычного языка программирования) - это попытка убрать грабли и сделать путь проходимым. Когда мне приходится писать примеры кода, я пишу их с идентификаторами на русском - это уже вызов сложившемуся положению вещей, хотя это прокатывает.

А для вас, видимо, главное, чтобы вы остались правы. Это печально.

Ну ладно, я сделал без вашей драгоценной помощи очередную версию транслита - теперь он стал ещё лучше, надеюсь, в таком виде и останется.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 02 Октябрь, 2018 19:30 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4291
Откуда: Россия, Орёл
budden писал(а):
Моя ценностная установка состоит в том, что Россия вообще и русский язык в частности нуждаются сегодня в защите.

Зачем тогда вообще транслит, когда надо кириллицу продвигать? (аргументы ниже читал, но они больше похожи на попытку игры с противником по его правилам)
Цитата:
А для вас, видимо, главное, чтобы вы остались правы. Это печально.

Что для меня главное, вам всё равно не ведомо. А в рамках форума, важно, чтобы по теме и по существу. Поэтому тема ушла в "Творческие идеи". К BlackBox она отношения не имеет.
Цитата:
Ну ладно, я сделал без вашей драгоценной помощи очередную версию транслита - теперь он стал ещё лучше, надеюсь, в таком виде и останется.

Могу за вас только порадоваться.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 02 Октябрь, 2018 20:40 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 496
Ну ладно, не в помойку - и на том спасибо. Теперь кодировка приведена в соответствие с частотами (ы = y, й = jj). Добавил кодировку дореформенных букв, пример теперь умеет кодировать переключение между языками по xe/xr, а не j перед каждой буквой. Также юникодные символы не-кириллицы кодируются как jКОДБУКВЫj.

Надеюсь, обратимость не сломалась. Пример по адресу
[url]http://программирование-по-русски.рф/яролит.яргт/[/url] обновлён. Жаль, он пока умеет только кодировать, декодирование сложнее и его некогда делать.

Единственный возможный косяк - нотация jNNNNj применяется для кодов >255, а может быть, надо было для >128. Но это в другой раз обдумаю.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 03 Октябрь, 2018 00:57 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 874
Откуда: Киев
budden писал(а):
Обратимость и единый стандарт
Обратимости достичь легко, а единственности, скорее всего, невозможно. Тут, действительно, уместна картинка про 14 стандартов. Причина лежит в той же области, что и причины, побудившие создать кириллицу вместо более ранних попыток использовать латиницу для славянский языков.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 03 Октябрь, 2018 01:13 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 496
Да, проблема будет. Есть ей, эй и есть пришедшие из англоязычного исходника ejj и ehjj - между ними конфликт. Даже если мы сочтём, что мы изначально в английском режиме и закодируем ей как xrejj, но тогда конфликт будет с англоязычным xrejj, а англоязычный ejj мы не можем превратить в xeejj, поскольку будут проблемы связывания. Вы это имеете в виду?

Ответа на это я не знаю (можно сделать какое-то соглашение об именах, включить вместо xr что-то, чего заведомо нет в других именах). В любом случае, это не повод отказаться от той части стандарта, которая определяет транслитерацию собственно слов. «Ей» от «эй» всё равно отличать нужно. Нет причин использовать разные способы для этого, если можно использовать всегда один. Оттого, что мы придумаем любой другой транслит в рамках синтаксиса идентификатора Си, проблема конфликтов между транслитерированными и изначально англоязычными символами не изменится. Даже если мы откажемся от такого русскоязычного Си, у нас всё равно останутся томографы и E-mail-ы.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 03 Октябрь, 2018 13:06 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 496
Борис Рюмшин писал(а):
аргументы ниже читал, но они больше похожи на попытку игры с противником по его правилам

Я играю по тем правилам, которые есть. США доминируют и им, на самом деле, не нужно, чтобы нам было удобно работать на родном языке. Они прекрасно понимают роль языка в борьбе цивилизаций. Поэтому приходится изворачиваться, применять ассиметричные ответы и искать обходные пути.

Кириллические ULRы вроде поддерживаются, а вы зайдите на форум по сайтам и узнайте мнения публики о том, нужно ли их использовать. Узнайте динамику этих мнений. Вы увидите, что кириллические URLы хорошо стартовали, но потом были заблокированы рядом "технических" проблем. Вы ожидаете, что эти проблемы со временем сами рассосутся? Зря. Вот цитата, обратите внимание на год:
Цитата:
Осенью 1999 года основной владелец «МедиаЛингвы» Олег Серебренников решил сменить стратегию её развития, отказавшись от ряда направлений, что не нашло понимания у Ашманова, совладельца[19]. Разногласия касались одного из продуктов компании — «Национальной службы имён», имевшей тогда около 15 тыс. пользователей. Она позволяла при помощи бесплатного плагина-переадресатора вводить в строке браузера доменные имена прямо на естественном языке (например, русском — сейчас подобная функция реализована в виде русскоязычного домена .рф)[7].

Можно было сделать кириллические URLы нормально работающими уже 19 лет назад, и были люди, которые за это боролись, ставя на кон свой бизнес, и даже подавая в суды на Microsoft, но итог - большинство URL по сей день в латинице. Вот что думает интернет на тему кириллических URL.

https://toster.ru/q/372789
https://pixelplus.ru/samostoyatelno/otv ... 97004.html


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 03 Октябрь, 2018 13:18 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 496
Comdiv писал(а):
budden писал(а):
В частности, предложенный Вами способ плох тем, что портит слова, записанные латиницей.

Окончательный ответ: яролит не предназначен для обработки англоязычных идентификаторов. Он предназначен для точного отображения в латиницу текстов, содержащих русские и латинские буквы, и эту задачу он действительно решает. Здесь проблема в том, что должно быть ясно из контекста, подлежит ли текст транслитерации, а в случае Си это не ясно (мы имеем символы и нелегко понять, откуда они). Вариант решения для Си: программа-конвертер не должна менять идентификаторы, которые записаны полностью в латинице. Если в идентификаторе есть кириллица, то к нему добавляется префикс, который нужно сделать как можно более глобальным (может быть, отдельно стандартизировать). Он не должен пересекаться ни с чем и в идеале он должен быть общим для всех программ, использующих транслитерацию. Эта проблема аналогична проблеме конфликта имён между разными объектными файлами Си и она решается как раз комплексом из префиксов и договорённостей. К проблеме транслита эта проблема всё же более-менее ортогональна.

Здесь возникнет ещё проблема из за препроцессора (English ## Русский == EnglishPREFIXRusskijj, а в другом месте будет PREFIXEnglishRusskijj). Но я не претендовал на то, чтобы решить все проблемы в мире. Если мы хотим писать в кириллице там, где это не подразумевалось, проблемы можно ожидать. Вопрос лишь в цене.

И похоже, что эта проблема носит довольно глобальный характер - там, где смешиваются в одном пр-ве имён изначально заданные английские слова и транслит. Я вообще-то за полную кириллизацию, когда мы контролируем все слова и такой проблемы не существует. Или нужен какой-то другой способ узнать из контекста, о каком языке идёт речь в данный момент. Например, в списке пользователей организации, находящейся в России, можно предположить русский языком по умолчанию. Если придёт иностранец, придётся ему потерпеть префикс xe в своём имени пользователя. В модульном языке можно назначить язык модуля. В Си некоторая помойка, поэтому там возникают трудности.


Последний раз редактировалось budden Среда, 03 Октябрь, 2018 13:27, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 42 ]  На страницу 1, 2, 3  След.

Часовой пояс: UTC + 3 часа


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

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


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

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2019, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB