Как стать автором
Обновить

Добавьте ???="????" к полю ввода

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров9.8K
Автор оригинала: mough.xyz

Разработчикам, живущим в пузыре под названием «США» трудно воспринимать остальные страны. Но мне очень часто напоминают, что снаружи тоже есть мир. Это введение может показаться похожим на совершенно необязательную мотивационную речь перед изложением чего-то крайне простого, но одна маленькая деталь может стать разницей между тем, что вашим приложением пользуются люди со всего света, или только люди вроде вас. Разницу между этими мирами я постоянно безуспешно пытаюсь осознать; к счастью, те, кто занимается разработкой качественных веб-браузеров, делают за нас всё самое сложное.

С самого начала разработки Standard Notes я получал просьбы о добавлении поддержки языков с написанием справа налево (RTL; это такие языки, как иврит, арабский и урду). И каждый раз, когда я начинал изучать необходимые для этого действия, это казалось нетривиальной задачей.

Чаще всего в решениях предлагалось добавлять в поля ввода слушатель символов, а при обнаружении символа RTL переключать направление ввода с dir="left" на dir="right". Звучит довольно логично, но вручную реализовывать это страшновато. Для меня Unicode, ASCII и весь мир кодировок не стал тем, в чём бы я хотел разбираться на низком уровне. Поэтому каждый раз, когда я могу избежать написания низкоуровневого парсинга языков, я пользуюсь этой возможностью.

Тема добавления поддержки RTL всплывала каждые несколько месяцев, и каждый раз, когда я изучал этот вопрос, совет всегда был одинаковым: напишите парсер символов, используйте вот такую стороннюю библиотеку или dir="right", но ничем этим я заниматься не хотел. Если вы выполните поисковый запрос "textarea rtl" или "textarea right to left" или другие похожие запросы, то ни в одном из них не будет упоминания dir="auto". Вместо этого вы увидите ответы типа «используйте в теге dir="rtl"», или «возьмите эту стороннюю библиотеку», разработанную Twitter, которая обещает, что сделает всё за вас.

Первая страница результатов Google никогда не лжёт, поэтому я думал, что эта проблема требует прямого вмешательства, и никогда не давал ей высокого приоритета.

И лишь несколько недель назад я решил, что больше медлить нельзя. Проблему нужно решить. Я выполнил ещё несколько поисковых запросов, и наконец нашёл пост на GitHub, в котором какой-то неоценённый герой написал: «Можно просто добавить dir="auto" к textarea.»

Что? Не может быть. Это не может сработать. После года поисков решений всё оказалось так просто?

Ага. Я вставил код, проверил, и всё заработало блестяще.

Ничего себе.

Итак, я должен сделать небольшое, но важное публичное заявление: Google лгал нам о поддержке RTL в полях ввода. Она намного проще, чем можно было представить.

<textarea dir='auto'> שלום, עתיד. </textarea>

И теперь вы это знаете.

Очень сложное демо.

Документация Mozilla по dir.

Теги:
Хабы:
Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку
Всего голосов 27: ↑24 и ↓3+28
Комментарии10

Публикации

Истории

Работа

Swift разработчик
25 вакансий
iOS разработчик
16 вакансий

Ближайшие события