Как я добавил 6 символов в Unicode

в 15:38, , рубрики: ASCII, Unicode, Дизайн в IT, звёздочки, рейтинги, символы

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

Как я добавил 6 символов в Unicode - 1

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. Я написал предложение, отправил в комиссию, и на следующей встрече его одобрили.

Как я добавил 6 символов в Unicode - 2

Описание метки группы из инструкции IBM 705 1959 года

Через несколько месяцев я обнаружил, что в Unicode нет символа для биткоинов. Это было неожиданно, поскольку этот символ широко используется. Его уже отвергали, так что в октябре 2015 года я написал более тщательное предложение, пользуясь активной поддержкой /r/bitcoin и других групп. Это предложение приняли в комитете Unicode в ноябре 2015.

Как я добавил 6 символов в Unicode - 3

И когда я увидел комментарий по поводу полузвёздочек на Hacker News, я решил, что будет довольно просто обеспечить его принятие в Unicode. После обсуждений на HN и в рассылке Unicode я написал предложение. Комиссия рассматривала его в августе 2016 года, но к моему удивлению они получили ещё одно сходное предложение, и решили подождать единого предложения. Оказалось, что Эндрю Уэст также написал предложение для полузвёздочек, и мы отправили наши предложения независимо. Так что мы объединили усилия и составили комбинированное предложение, которое было принято комиссией 30 сентября 2016 года.

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

Как я добавил 6 символов в Unicode - 4

Если есть такой символ, который вы бы хотели видеть в Unicode, и он отвечает требованиям, вам необходимо разместить предложение, поскольку процесс этот несложный и интересный. Убедитесь, что символ отвечает требованиям. В частности, необходимо найти довольно много примеров его использования в тексте. Комитет Unicode не будет добавлять символ только оттого, что вы думаете, что он клёвый, так что вам понадобятся примеры его использования. Создание шрифта для демонстрации нового символа – самая сложная часть. Я использовал FontForge. У команды с символами питания было много советчиков, помогавших составить успешное предложение. Я также буду счастлив предложить такие советы вам.

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

После принятия символа ему предстоит долгий путь до появления в шрифтах и возможности использования. Новая версия Unicode выпускается каждый июнь, поэтому полузвёздочки должны появиться в Unicode 11.0 в середине 2018 года. Сообществу биткоин пришлось ждать очень долго, поскольку символ для биткоин немного упустил выход версии Unicode 9.0, так что он должен будет появиться в Unicode 10.0 в середине 2017 года. Так что, если вы терпеливы, вы в итоге сможете увидеть использование метки группы, символ биткоин и полузвёздочки на веб-страницах вместе с другими символами.

★★★★★

Автор: SLY_G

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js