SuperBidiTranslit

Друзья. Перестаньте лениться и посмотрите вот сюда. Расскажите мне, что там не так.

Мнения типа «это нахрен никому не нужно» меня интересуют мало. Пожалуйста, будьте конструктивны.

Спасибо.

Подписаться на блог
Отправить
Запинить
Дальше
9 комментариев
MazeFAQa 2005

||mambo #5||##mambo+@5!##||

Вот такой у тебя там есть пример, после описания того, как скобки работают.
А несколькими строчками ниже ты пишешь, что # передается как слово number в скобочном контексте. Путанница какая-то. А еще есть вот такая таблица:

||мамба №5||##mamba+(number)5!##||

Хотя ты пишешь, что передается как nomer в скобочном контексте.

Примерно вот так, хотя читал я невнимательно, может и пропустил чего — устал я нынче на работе.

Илья Бирман

Да, это мой косяк, поправил. Спасибо. Просто этот пример был написан раньше, до того, как я догадался передавать текстом то, как читаются символы.

MazeFAQa 2005

Блин, как-то криво предыдущий комментарий удался — таблица со словом mambo должна была после предложения со словом number. Чего-то напортачил я в wiki.

Илья Бирман

С wiki-то похоже напортачил я... :-) Похоже на баг, у тебя всё правильно написано.

Update: Fixed in v1053.

MazeFAQa 2005

P.S. Хотя на самом деле это нахрен никому мне не нужно
(Здесь мог бы быть смайлик)

blib 2005
  • зачем вводить конструкцию (5e) если есть %5E ?
  • слишком сложно что бы пользоваться без инструкции, если нужна инструкция то ее никто не будет читать, если ее никто не будет читать то можно вообще все что угодно зафигачить один фиг нужна инструкция (я понятно обясняю?)
Илья Бирман
  • потому, что ##(5e7e5e)## выглядит милее, чем ##%5E%7E%5E##, и потом, используется она только в экстремальных случаях
  • какая нафиг инструкция? для чего?
blib 2005

конечная цель какая?

Илья Бирман
blib 2005

почитал .... не понятно.
Если идея заключается в том что бы пользователь сам набирал в строке браузера www.../search/chto-to то это chto-to должно быть интуитивно понятным догадаться что * это ъ так просто нельзя, это нужно знать, нужно читать инструкцию....
а если читать инструкцию то можно придумать все что угодно но идея убивается.

если же это просто что бы переходить на урл из формы поиска то непонятно зачем это все генерить и с той и с другой стороны компьютеры и им абсолютоно все равно.

blib 2005

а самое главное сейчас можно писать урл спокойно русскими буквами
все новые браузеры шлют его в utf-8 (по стандарту) а
старые браузеры легко ловятся и фиксятся на лету

gray 2005

Буду неконструктивен (это почти что нахрен никому не нужно). Возможно, меня за это обоями обклеят, но это уже издержки.

В своих разработках я решил поступить немного по-другому. Исходная задача, при которой нужен взаимно-однозначный транслит, имеет несколько спорных моментов. Заранее извиняюсь за плохую структурированность и некую сумбурность, это (скорее) поток сознания, чем обоснованная позиция.

  1. Части URLа — это текст. А если это текст, то почему бы не работать с текстом и с URLами одними и теми же методами? Оттуда ВикиСлова, которые не надо каким-то образом отмечать как ссылки. Хорошо для английского, поскольку URLы в ASCII. Для русского нужны костыли. А что делать китайцам?

Не то, чтобы меня волновали китайцы. Меня волнует то, что транслит — костыль по определению. Меня волнует, что ВикиСлова (в первоначальной форме, аки на c2.com) не могут склоняться и вообще «режут глаз» нам куда сильнее, чем Американцам, которые за Многие Годы привыкли к такому Варианту Написания Слов.

Что получилось из изначально хорошей и простой идеи, можно видеть хоть в Wacko, хоть в MediaWiki — изначально задуманные для того, чтобы не запоминать URLы, ВикиСлова превратились в особую форму URLов. Которые надо запоминать.

  1. ЧПУ не отменяет символа «?» в URLе. Лично я не вижу ничего плохого, когда адрес «/news» превращается в «/news?skip=10» или «/news?skip=20». Более того, я считаю, что «/search?q=foo+bar» выглядит куда пристойнее, чем, допустим, «/search/foo%20bar» (sic!) или, что ещё хуже, «/search/foo%20bar/page2».
  1. ЧПУ — это ЧеловекоПонятный URL (с) Смирнов, так ведь? Изначально — «понятный» и ничего более. Но предпосылки, по которым появился этот термин, годятся и для того, чтобы объявить «плохими» и длинные (даже если они написаны чистейшим транслитом) URLы. Как определить, URL соответствует ЧПУ или нет?
  • посмотреть на URL «свежим взглядом» и попытаться построить предположения, что там лежит.

А теперь — бонус-трек. Дополнительный чек-лист:

  • попробовать записать URL на sticky note 76 x 76 мм
  • попробовать продиктовать URL по телефону
  • попробовать 10 «соседних» адресов записать через пробел и оценить длину строки

Поэтому адреса вида «/articles/2005/06/24/why-I-dislike-translit» в ряде случаев проигрывают менее понятным, но более коротким. Вроде «/1321» или «/translit-sux».

Ладно, я тут дофига туфты написал, и всё на ровном месте. Думаю, для SuperBidiTranslit’а есть ещё одна интересная фигня: пожертвовать регистрозависимостью. Предположим, что аглицкие слова набраны в lowercase, а русские в Capitalize, и получается что-то вроде «/articles/Birman/Translit/comments», что соответствует «Articles / Бирман / Транслит / comments». Если честно, то мне восклицательный знак в URLе чем-то не нравится.

Илья Бирман
  1. Какое это всё имеет отношение к рассматриваемой задаче?
  2. Отменяет, потому, что «?» — это техническая фигня, которую человек видеть не должен.
  3. Согласен, что названия заметок писать в транслите — это бред, должны быть просто номера, но, снова, какое это имеет отношение к рассматриваемой задаче?

По последнему абзацу:

  • Меня тошнит от заглавных букв в урлах (я знаю, что это моя проблема, но ведь e2 — тоже мой движок)
  • Как в вашей системе затранслитить строку «Бirмan»?
gray 2005

1 — мысли вслух.
2 — спорно.
3 — тоже мысли вслух.

По поводу того, как написать «Бirмan». Задача (BidiTranslit) в том, чтобы нечто некрасивое (%E5%D0%C3...) заменить на нечто более «читабельное»? То есть, чтобы глаза не резало, чтобы в этом можно было разобраться, чтобы (хотя бы относительно) соответствовало нормам литературного текста.

Но как, пардон, назвать читабельным слова «Бirмan», «ВИD» или «Яndex»? Смесь кириллицы и латиницы уместна, разве что, на биг-борде с дурной рекламой. Думаю, в таком случае можно сделать fallback в %E5irman (для «смешанных» слов). По крайней мере, мне это кажется не таким странным, как !B!irman.

Контрвопрос: а что делать с буквами кириллицы, которых нет русском? Белорусское «у с птичкой», украинские «i с двумя точками», и куча других символов. Менять таблицу транслитерации? Заранее ограничить возможное употребление только русским языком? Ну так в русском языке слова пишутся кириллицей без каких-то примесей латиницы, можно считать это таким же граничным условием, как и то, что SuperBidiTranslit китайцам вряд ли подойдёт.

Да, предложенный мной вариант тоже имеет свои граничные условия, и даже более жёсткие: регистр не сохраняется. Нехорошо. Но, по крайней мере, есть над чем подумать.

P.S. Я не забываю, что e2 — ваш движок, и я не собираюсь рассказывать, что, по моему мнению, вам следует делать, а что не следует делать. Всё вышесказанное — моё IMHO, ведь разве не это спрашивается в вопросе?

P.S.#2 Мне тоже не нравятся Большие Буквы в URLах, но они (в отличие от восклицательного знака) не начинают занимать больше места от своего регистра. Соответственно, URL будет короче на пару символов.

Илья Бирман

!!Контрвопрос: а что делать с буквами кириллицы, которых нет русском?!!

Во-первых, у нас гора неиспользуемых сочетаний вида jx и xh, поэтому украинские буквы можно разделить на i и ji, например (я не знаток украинского, я вообще говорю). Во-вторых, у нас всегда есть скобочный контекст в запасе, чтобы передать любую чепуху. В-третьих, задачи передать «красиво» какие-либо буквы, кроме русских и английских, не стоит.

Мои книги