Как обычный вопрос на форуме привёл к добавлению 4½ символов в Юникод

Несколько гиков добились своего


0be8462b240f48e88593699ce83636ca.png

Оказывается, добавить символы в Юникод вполне реально, если потратить достаточно сил и времени. Следует только строго соблюдать процедуру и все правила.

Вчера произошло важное событие: консорциум Unicode опубликовал официальные спецификации нового стандарта Unicode 9.0. Наверное, больше всех радовался этому событию программист Теренс Иден (Terence Eden). Два с половиной года назад (3 декабря 2013 года) он опубликовал вопрос на популярном форуме для разработчиков Hacker News.

Каких полезных символов не хватает в Юникоде?


Теренс высказал идею, что наиболее очевидным кажется отсутствие знака «Питание». Знакомый всем символ b2deb7e02c5f43ab9ca0e9a0bc204642.png определён в стандарте Международной электротехнической комиссии IEC 60417–5009 и примерно с середины 1970-х используется практически на каждом электронном устройстве, где имеется кнопка питания.
4d1cbf71bb3b4b1a99e11d7c9c0ee47f.jpg

Единственным ответившим на вопрос был Джо Лоури (Joe Loughry), докторант Оксфордского университета, специалист по тестированию и оценке на соответствие сертификации компьютерных систем безопасности.

Джо Лоури согласился с топикстартером. Он указал на то, что в консорциуме Unicode существует установленная процедура по рассмотрению и стандартизации новых символов, и он хотел бы помочь в этом деле.

Джо Лоури создал репозиторий на Github, где публиковались и редактировались документы для подачи в консорциум Unicode. Он предположил, что этот репозиторий может стать примером для других энтузиастов, которые хотят корректно оформить заявку на добавление символов в Юникод.

Итак, Теренс Иден и Джо Лоури приступили к оформлению заявки (предложения) в Unocode и разработали шрифт. Активное участие в проекте принял Брюс Нордман (Bruce Nordman), один из авторов оригинального стандарта IEEE 1621.

Кроме упомянутого символа «Питание», Джо Лоури предложил объединить в общей заявке группу символов, определённых в стандарте IEC 60417 (он же ISO 7000:2012).

Это следующие символы:

  • U+23FB POWER — b2deb7e02c5f43ab9ca0e9a0bc204642.png
  • U+23FC POWER ON-OFF — 4841d0cf297049f1b65901ceef0fab3d.png
  • U+23FD POWER ON — 0f21624431344a31b7ece5d5da1b893b.png
  • U+23FE POWER SLEEP — e6e4477eadbb4023b6bb14d21c3cba20.png


К ним решили добавить ещё один символ из стандарта IEEE 1621.

  • U+2B58 POWER OFF — d9aa140cab56400aafa44e489a5cc576.png


После месяца тяжёлой работы и заполнения множества форм предложение всё-таки удалось отправить в консорциум Unicode, и его приняли к рассмотрению.

Чтобы поддержать своё предложение, активисты открыли сайт UnicodePowerSymbol.com, где тоже опубликовали предложение, аргументацию и выкладывали новости кампании по включению символов в Юникод.

После этого начался период почтовой переписки, консультаций, телефонных переговоров, конференций, технических обсуждений. Авторы предложения убеждали коллег, что новые символы соответствуют всем необходимым правилам: 1) это действительно корректные общепринятые символы; 2) есть убедительные доказательства их реального использования; 3) они не обременены ограничениями копирайта; 4) члены консорциума Unicode считают, что они будут полезным добавлением к стандартному набору.

Насчёт четвёртого пункта всё-таки выявились разногласия. Только два символа b2deb7e02c5f43ab9ca0e9a0bc204642.png и 4841d0cf297049f1b65901ceef0fab3d.png всем нравились.

Насчёт символа e6e4477eadbb4023b6bb14d21c3cba20.png развернулась дискуссия, потому что в Юникоде уже были несколько символов для «луны». Правда, ни один из них в точности не соответствовал предложенному: или угол неправильный, или отсутствовала семантика «Спящего режима». Так что e6e4477eadbb4023b6bb14d21c3cba20.png в итоге приняли.

Оставались только 0f21624431344a31b7ece5d5da1b893b.png и d9aa140cab56400aafa44e489a5cc576.png. В Юникоде по-настоящему много символов для прямой линии и круга.

После многочисленных дискуссий и голосования всё-таки решили, что ни один из существующих символов не подходит для знака «Включенное питание», так что 0f21624431344a31b7ece5d5da1b893b.png стал новым символом.

А вот для d9aa140cab56400aafa44e489a5cc576.png как знака выключенного питания нашли подходящую альтернативу — круг (U+2B58)

4bfccd6cf76543868585b296f281f8b4.png

Новое значение просто добавили к существующему символу — это то, что авторы называют »½ символа» в своём предложении.

В феврале 2014 года символы одобрила рабочая группа ISO 10646 Working Group 2 (JTC 1/SC 2/WG 2) на заседании WG2 #62 и рекомендовала Поправку 2 к стандарту ISO/IEC 10646:2014.

Прошло два томительных года ожидания с редкими звонками и запросами от заинтересованных сторон. Активисты вели переговоры с разработчиками свободных шрифтов, чтобы уговорить их добавить новые символы, когда их примут. Редактировали Википедию.

И вот наконец наступило счастливое утро 22 июня 2016 года.

Проснувшись с утра, Теренес Иден услышал о выходе новых спецификаций Unicode 9.0. И вот они — наши родные символы. Два с половиной года работы завершились успехом!

OMG! We did it!
I helped get new characters into Unicode 9!
Will update https://t.co/lYZDjMoQR1 when I stop dancing! pic.twitter.com/E6FnAT4xEm

 — Terence Eden ⏻ (@edent) 22 июня 2016 г.


Счастливые разработчики предлагают использовать открытое руководство, если кто-то хочет повторить этот путь и включить в стандарт Юникод другие символы.

Для разработчики шрифтов есть образцовые шрифты с новыми символами, которые разработаны во время подготовки заявки в консорциум Unicode.


Все пользователи имеют право требовать от разработчиков своих операционных систем и программного обеспечения поддержки новых символов b2deb7e02c5f43ab9ca0e9a0bc204642.png, 4841d0cf297049f1b65901ceef0fab3d.png, d9aa140cab56400aafa44e489a5cc576.png, 0f21624431344a31b7ece5d5da1b893b.png и e6e4477eadbb4023b6bb14d21c3cba20.png из стандарта Unocode 9.0!

В таблице указаны коды HTML Escape для 4½ новых символов.


22 июня 2016 года они стали частью Юникода и теперь могут свободно использоваться везде.

© Geektimes