4 разных использования полузвёздочки для представления оценки 3.5
Unicode – компьютерный стандарт, определяющий, какие символы будут использоваться почти любым компьютером. Он позволяет различным компьютерам показывать текст почти на любом языке и почти с любыми необходимыми символами (до Unicode работа с текстами не на английском была ужасно запутанной). Но Unicode не включает всё. В прошлом июне в комментарии на Hacker News пожаловались, что в Unicode нет символа полузвёздочки, необходимого для рейтингов и обзоров фильмов.
Я предложил кому-нибудь написать предложение по добавлению этого символа, но быстро понял, что этим кем-нибудь нужно стать мне. Поскольку ранее я уже с успехом провёл добавление двух символов в Unicode, я был знаком с необходимым процессом.
Несколько лет назад в подробной статье было описано, как два человека добавили символы обозначения питания в Unicode. Добавление нового символа в Unicode легче, чем вы могли бы подумать. Не нужно платить денег, работать в большой компании или присоединяться к комиссии. Нужно всего лишь написать предложение с объяснением необходимости включения символа. Если комитет Unicode согласится с ним, они одобрят добавление в Unicode.
В 2015 году я начал программировать мейнфрейм IBM 1401 из 1960-х в музее компьютерной истории. Но когда я описывал эту систему, у меня возникли трудности. Компьютер использовал 6-битный набор символов (предшественник EBCDIC) с несколькими странными символами. Все они были в Unicode, за исключением одного – метки группы. Я был шокирован тем, что в Unicode, содержащем 128 172 символа, не хватает нужного мне символа. Прочитав об успехах группы, добавившей символы питания, я решил, что было бы интересно посмотреть, смогу ли я добавить символ метки группы в Unicode. Я написал предложение, отправил в комиссию, и на следующей встрече его одобрили.
Описание метки группы из инструкции IBM 705 1959 года
Через несколько месяцев я обнаружил, что в Unicode нет символа для биткоинов. Это было неожиданно, поскольку этот символ широко используется. Его уже отвергали, так что в октябре 2015 года я написал более тщательное предложение, пользуясь активной поддержкой /r/bitcoin и других групп. Это предложение приняли в комитете Unicode в ноябре 2015.
И когда я увидел комментарий по поводу полузвёздочек на Hacker News, я решил, что будет довольно просто обеспечить его принятие в Unicode. После обсуждений на HN и в рассылке Unicode я написал предложение. Комиссия рассматривала его в августе 2016 года, но к моему удивлению они получили ещё одно сходное предложение, и решили подождать единого предложения. Оказалось, что Эндрю Уэст также написал предложение для полузвёздочек, и мы отправили наши предложения независимо. Так что мы объединили усилия и составили комбинированное предложение, которое было принято комиссией 30 сентября 2016 года.
Почему мы предлагали четыре разных вида полузвёздочек? Мы включили как обведённые звёздочки, так и сплошные, потому что оба этих вида используются часто (я не был уверен, сочтёт ли комиссия эти символы достаточно различными, чтобы включить их оба, но так и вышло). В языках с записью справа налево, типа еврейского, рейтинг в звёздочках также пишется справа налево (что меня удивило), так что мы включили и зеркальные версии звёздочек для таких языков. В результате, четыре разных версии покрыли все случаи использования.
Если есть такой символ, который вы бы хотели видеть в Unicode, и он отвечает требованиям, вам необходимо разместить предложение, поскольку процесс этот несложный и интересный. Убедитесь, что символ отвечает требованиям. В частности, необходимо найти довольно много примеров его использования в тексте. Комитет Unicode не будет добавлять символ только оттого, что вы думаете, что он клёвый, так что вам понадобятся примеры его использования. Создание шрифта для демонстрации нового символа – самая сложная часть. Я использовал FontForge. У команды с символами питания было много советчиков, помогавших составить успешное предложение. Я также буду счастлив предложить такие советы вам.
Нужно упомянуть, что для эмодзи процесс сильно различается, так что не нужно говорить, что «раз существует эмодзи для какашки, то и мой символ тоже имеет право на существование» (символ был добавлен для обратной совместимости с японскими мобильниками). Для эмодзи ожидаемая популярность символа – главный фактор, влияющий на одобрение. Но Unicode озабочен не популярностью – исторические свитки Тангутов не будут иметь и миллионной доли популярности нового эмодзи – а использованием в текстах. У меня сложилось ощущение, что многие члены комитета Unicode вообще не хотели бы заниматься эмодзи.
После принятия символа ему предстоит долгий путь до появления в шрифтах и возможности использования. Новая версия Unicode выпускается каждый июнь, поэтому полузвёздочки должны появиться в Unicode 11.0 в середине 2018 года. Сообществу биткоин пришлось ждать очень долго, поскольку символ для биткоин немного упустил выход версии Unicode 9.0, так что он должен будет появиться в Unicode 10.0 в середине 2017 года. Так что, если вы терпеливы, вы в итоге сможете увидеть использование метки группы, символ биткоин и полузвёздочки на веб-страницах вместе с другими символами.
?????
Комментарии (20)
zloydiadia
11.10.2016 08:25+1простите конечно но к чему все эти половинки. если нужно больше градаций рейтинга так сделай не 3,5 из 5, а 7 из 10.
LifeKILLED
11.10.2016 10:03-1Это ваше личное мнение или вы проводили какой-то опрос, в котором выяснилось, что пользователи хотят видеть в два раза больше звёздочек на экране? А может, вообще весь экран заставить звёздочками?
riartem
11.10.2016 10:32-1Один пользователь поставил оценку 4, другой поставил 3. Вам нужно визуализировать общий рейтинг. Вот тут приходят на помощь половинки.
SkidanovAlex
11.10.2016 18:39Потому что это то, что уже активно используется везде. Если я с Амазона или Apple Store накраулил данных и хочу их в терминале вывести, мне надо показывать половинные звездочки, а их в шрифте не было. А теперь есть.
RiseOfDeath
11.10.2016 08:28>В языках с записью справа налево, типа еврейского, рейтинг в звёздочках также пишется справа налево
Я конечно не эксперт, но насколько я знаю юникод сам по себе поддерживает разное (в том числе смешанное) направление письма. В связи с чем у меня вопрос — разве не логичнее было бы сделать 2 звездочки и «зеркалировать» их в зависимости от направления письма?LifeKILLED
11.10.2016 10:03+1Пропагандируйте костыли?
RiseOfDeath
11.10.2016 10:40+1Нет, просто считаю что клиент должен сам решать как ему отображать буквы (крутить, вертеть, зеркалировать), и не нужно для каждой из этих ситуаций рисовать одинаковые (фактически) символы. Я бы и перевернутые вверх ногами буквы из юникода выкинул (по вышеназванной причине)
Xaliuss
11.10.2016 11:13Не уверен, что все устройства, где может использоваться уникод, могут это всё делать. Так что некоторое излишество необходимо для обратной совместимости. Да и при передаче данных чистым текстом (да и просто в отдельном текстовом файле или документе) добавление информации об отображении заметно усложнит задачу.
avost
11.10.2016 14:09Это в том смысле, что вы хотите внести предложение добавить в юникод опции зеркалирования и вращения?
Ну, в общем-то, процедура описана, вы можете попробовать :)
Только, думаю, шрифтовые дизайнеры (да и пользователи шрифтов) не обрадуются. Всё-таки «перевёрнутые» буквы — это не просто перевёрнутые буквы, они слегка по-другому нарисованы.
VEG
11.10.2016 15:36Может быть, стоит написать предложение добавить нормальный отдельный символ для использующейся в русском языке закрывающей кавычки вложенной цитаты?
«„Цыганы“ мои не продаются вовсе», — сетовал Пушкин.
„ — Double Low-9 Quotation Mark
“ — Left Double Quotation Mark
Проблема в том, что для закрывающей вложенной кавычки используется тот же символ, что в других языках является открывающей кавычкой. Поэтому он и называется Left, и у него есть парный Right Double Quotation Mark (”). В многих шрифтах этот Left Double Quotation Mark выглядит так же, как нужно для того, чтобы быть парным Double Low-9 Quotation Mark, но не во всех.
Пример:
„русский вариант“ — “иноязычный вариант”
Если использовать шрифт Tahoma, то оно выглядит вот так:
А вот в шрифте Arial проблема незаметна:
Всё из-за того, что для нас нет отдельного символа, и мы используем чужую открывающую кавычку в качестве своей закрывающей, что плохо. Нужно в дополнение к Double Low-9 Quotation Mark предложить парный символ Double High-6 Quotation Mark. Сейчас у Double Low-9 Quotation Mark нет парного символа вообще.
Что думаете?
we1
Надо было для китайцев горизонтальные половинки звездочек добавить.
Finesse
А ещё не хватает градаций (1/4 звезды, 3/4, 1/8 и т.д.).
jabr
тогда уж 1/5, 2/5…
Kenya-West
Нет, простите, конечно, но это уже к CSS. Хотелок много, а всем не угодишь.