Символы-звёздочки (??) давно уже входят в Unicode, и потому могут в качестве символов появляться на веб-страницах, в текстах и почте. Но полузвёздочек не было, поэтому для них требовались особые картинки или шрифты. Недавно я участвовал в написании предложения по добавлению полузвёздочек в Unicode, и вот только что наше предложение приняли. В следующем релизе Unicode полузвёздочки можно будет использовать наравне с любыми символами. В статье я расскажу, как я добился добавления полузвёздочек и двух других символов в Unicode.


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)


  1. we1
    10.10.2016 21:09
    +3

    Надо было для китайцев горизонтальные половинки звездочек добавить.


    1. Finesse
      11.10.2016 03:17
      +3

      А ещё не хватает градаций (1/4 звезды, 3/4, 1/8 и т.д.).


      1. jabr
        11.10.2016 05:22

        тогда уж 1/5, 2/5…


        1. Kenya-West
          11.10.2016 06:10

          Нет, простите, конечно, но это уже к CSS. Хотелок много, а всем не угодишь.


  1. zloydiadia
    11.10.2016 08:25
    +1

    простите конечно но к чему все эти половинки. если нужно больше градаций рейтинга так сделай не 3,5 из 5, а 7 из 10.


    1. LifeKILLED
      11.10.2016 10:03
      -1

      Это ваше личное мнение или вы проводили какой-то опрос, в котором выяснилось, что пользователи хотят видеть в два раза больше звёздочек на экране? А может, вообще весь экран заставить звёздочками?


    1. riartem
      11.10.2016 10:32
      -1

      Один пользователь поставил оценку 4, другой поставил 3. Вам нужно визуализировать общий рейтинг. Вот тут приходят на помощь половинки.


      1. vintage
        11.10.2016 10:44
        +2

        Два поставили 4, один — 3. Как визуализировать будем?


        1. SamDark
          11.10.2016 14:07
          +1

          ~3.5


          1. vintage
            11.10.2016 23:23

            Чем ~3.5 принципиально отличается от ~3 или ~4?


            1. SamDark
              11.10.2016 23:44

              0.5? :)


    1. SkidanovAlex
      11.10.2016 18:39

      Потому что это то, что уже активно используется везде. Если я с Амазона или Apple Store накраулил данных и хочу их в терминале вывести, мне надо показывать половинные звездочки, а их в шрифте не было. А теперь есть.


  1. RiseOfDeath
    11.10.2016 08:28

    >В языках с записью справа налево, типа еврейского, рейтинг в звёздочках также пишется справа налево

    Я конечно не эксперт, но насколько я знаю юникод сам по себе поддерживает разное (в том числе смешанное) направление письма. В связи с чем у меня вопрос — разве не логичнее было бы сделать 2 звездочки и «зеркалировать» их в зависимости от направления письма?


    1. LifeKILLED
      11.10.2016 10:03
      +1

      Пропагандируйте костыли?


      1. RiseOfDeath
        11.10.2016 10:40
        +1

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


        1. Xaliuss
          11.10.2016 11:13

          Не уверен, что все устройства, где может использоваться уникод, могут это всё делать. Так что некоторое излишество необходимо для обратной совместимости. Да и при передаче данных чистым текстом (да и просто в отдельном текстовом файле или документе) добавление информации об отображении заметно усложнит задачу.


    1. avost
      11.10.2016 14:09

      Это в том смысле, что вы хотите внести предложение добавить в юникод опции зеркалирования и вращения?
      Ну, в общем-то, процедура описана, вы можете попробовать :)
      Только, думаю, шрифтовые дизайнеры (да и пользователи шрифтов) не обрадуются. Всё-таки «перевёрнутые» буквы — это не просто перевёрнутые буквы, они слегка по-другому нарисованы.


  1. 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, то оно выглядит вот так:
    image
    А вот в шрифте Arial проблема незаметна:
    image

    Всё из-за того, что для нас нет отдельного символа, и мы используем чужую открывающую кавычку в качестве своей закрывающей, что плохо. Нужно в дополнение к Double Low-9 Quotation Mark предложить парный символ Double High-6 Quotation Mark. Сейчас у Double Low-9 Quotation Mark нет парного символа вообще.

    Что думаете?


    1. inoyakaigor
      11.10.2016 16:31

      Голосую за.


  1. batja84
    12.10.2016 00:57

    «Еврейский язык» принято называть иврит на русском языке.