При регистрации .cat доменов, разрешается использовать до 10 синонимов для зарегистрированного имени. Варианты синонимов генерируются на основе таблицы соответствий символов ICANN:

U+00E0 à 	U+0061 a
U+00E7 ç 	U+0063 c
U+00E8 è 	U+0065 e
U+00E9 é 	U+0065 e
U+00ED í 	U+0068 i
U+00EF ï 	U+0068 i
U+006C l U+00B7 · U+006C l 	U+006C l U+002D — U+006C l
U+00F2 ò 	U+006F o
U+00F3 ó 	U+006F o
U+00FA ú 	U+0075 u
U+00FC ü 	U+0075 u

Задача: встроить в интерфейс регистрации домена блок, который бы позволял регистрировать синонимы домена.

Реализация

Самый простой способ — предоставить пользователю варианты с чекбоксами, чтобы он мог выбрать нужные, которые его заинтересуют. Рядом с доменом в скобках указывается его пуникод версия. Если пользователь ввел для регистрации доменное имя с умлаутами, то регистрироваться будет имя без умлаутов, а чекбокс напротив введенного названия должен быть выделен по умолчанию.

name-variants-1

Небольшая проблема возникает, если введенное имя достаточно длинное. Генерируемое количество вариантов может быть очень большим, что неудобно в использовании, неопрятно выглядит и заставляет тормозить браузер. Логично предположить, что нужно показывать только часть вариантов и добавить еще поле ввода недостающих вариантов. Можно было бы добавить textarea для ввода вариантов, но такой ход потребует сразу скрипт для валидации введенных значений, что будет совершенное излишним. Поэтому можно ограничиться обычным input’ом. Input следует показывать, если вариантов больше 30, большее количество чекбоксов уже тяжело для восприятия.

name-variants-2

Подсказка для вводимого значения находится в placeholder. После нажатия на кнопку Add, значение из input’а добавляется в общий список.

name-variants-3

Введеные варианты имени во время регистрации домена дополнительно будут валидироваться на стороне сервера.

Перенёс сюда из жж