Автоматическая подсветка символов из другого языка в тексте

    Когда кто-то при написании текста пользуется одновременно русской и английской раскладкой, это в некоторых случаях может приводить к тому, что в, например, русских словах текста появляются английские буквы. Поскольку вид некоторых букв в английском и русском пересекается, подобное может остаться незамеченным.

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

    Скриншот

    Очевидное развлечение (не претендующее, впрочем, на практическую ценность) — проверять тексты, написанные разными людьми. В зависимости от того, насколько внимательным был автор, выделение будет чаще или реже встречаться в русских словах (где могут присутствовать английские буквы).

    Практическое же применение может быть, например, если есть какой-то код авторизации, и имеется подозрение, что часть символов в нём может быть на русском (и поэтому код не работает). Эта веб-страница, соответственно, позволяет проверить, так ли это.
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 39

      +6
      Bы в тeкcте дaже кусочек текста не пpивели, чтoбы cкопировать и провеpить вaш сервиc =)
        +13
        Кому лень писать, можете скопировать первый мой комментарий )
          +3
          А можете сам заголовок (Layоut Highlight) скопировать. Там ведь буква тоже не просто так выделена. :)
          +11
          Замечательный плагин для госзакупок :)
            +3
            Странно, что это ещё не сделали. А ведь идея была на Хабре аж полтора года тому назад habrahabr.ru/blogs/spam/86303/
              +2
              Согласен. Было бы актуально сделать сервис, проверяющий сайты гос. закупок:
              1) Проверять все страницы с лотами на предмет наличия «особых» символов, цифр внутри слов, правильности написания слов (синтаксических ошибок) и т.д.
              2) Выкладывать исправленные описания на страницах этого сервиса со ссылками на источник (на радость Яндексу и тем, кто хочет поучаствовать в таких лотах)
              0
              Не очень понятно, зачем выбор языка. Какого больше — тот основной.
                0
                уууу, вы наверно плохо знаете наших чиновников, чтобы скрыться от поиска они вам и букву Ы напишут как bl (B&L)
                  0
                  Вы, кажется, немного зациклились на чиновниках.
                  Тулза-то для людей, а не для них. И тулза предлагает сделать выбор, который могла бы сделать самостоятельно. Очевидно, что при смене языка подсветка букв инвертируется, и, на мой взгляд, очевидно, что лучше подсвечивать ошибочной меньшую часть текста. Сделанный выбор, тем не менее, стоит явно отображать.
                    +1
                    причем тут это? вообще-то не для чиновников — а для людей, потому что они маскируют, а люди — разоблачать могут с помощью таких тулз

                    выбор языка — здесь правилен я считаю, всегда должен быть мануал, не всегда стоит полагаться на автоматику
                      0
                      // всегда должен быть мануал, не всегда стоит полагаться на автоматику
                      Зачем? И так понятен алгоритм.

                      jsfiddle.net/gsVbK/
                +1
                А зачем выбор языка? Берете слово, если есть символы из чужого языка — неверно.
                А то у меня и Samsung подсвечивается и Hp, хотя русских символов в этих словах нет. И ломай голову.
                  0
                  Мну не просто говорит, мну написал:
                  jsfiddle.net/gsVbK/
                  После копирования текста ткнуть в произвольное место вне textarea.
                    +2
                    Тогда будут пропущены и предлоги типа «с», «о», и другие слова, написанные исключительно из омографов.
                      +1
                      Да, вы правы. В этом случае нам нужно указание исходного языка.
                  +1
                  Потрясающий способ найти c на англ. языке :) спасибо
                    0
                    Проще всего это — по Ctrl-F.
                      +1
                      Ага, полезно, когда пишешь имя переменной, отвлекаясь на комментарии, и случайно вместо английской c пишешь русскую и потом думаешь, почему нельзя к ней обратится.
                      +1
                      Это можно сделать юзерскриптом или аддоном, так будет удобнее: кликнул кнопочку — выделились все относительно редкие символы другого языка. Правда, выделятся и греческие буквы, например, и латинские сокращения и переменные в формулах. Нужно продумать, для чего это, чтобы исключить лишние выделения.
                        +2
                        Я обычно слово пихаю в гугол — есть в урле закодировался символ — значит русский))
                          +1
                          Это должно быть юзер-скриптом под greasemonkey.
                            0
                            Замечание по юзабилити: выбор языка излишен. Выше в комментах уже упоминали этот аспект. Можно попробовать ориентироваться на то, что язык, букв которого больше — основной.
                              0
                              Лучше брать последовательность буквенных символов. К примеру в тексте на русском языке может встречаться слово на ином языке. В этом случае это слово подсвечивать не нужно (разве что исключение для слов из 1-2 букв, т.к. предлог «с» состоит из 1 буквы, аль даже составить таблицу подобных слов). А вот если в тексте встречается последовательность из букв разных языков, то подчеркнуть каждый язык в этом слове своим, уникальным цветом. Такой вариант видится полезнее.
                                0
                                Иностранные слова надо тоже контролировать на предмет наличия инородных включений. Госзакупщики легко объявят тендер, например, на установку Linuх или Windоws.
                                  0
                                  Я в комментарии на это и указал, что нужно контролировать не иностранную букву в слове на русском языке, а именно месиво из подряд идущих букв в разных языках. Нет смысла вообще знать то, на каком языке текст, аль слово.
                              +1
                              А можно ещё в блокнот поставить шрифт Inconsolata (где-то на хабре ссылку давали, писали что удобный шрифт) у него русские буквы отличаются от латинских
                                0
                                Нужно массовое решение, для пользователей.
                                +1
                                Было бы практичнее, если бы был плагин (js-закладка) к браузеру или было поле для ввода URL.
                                  +1
                                  Вообще-то достаточно включить проверку правописания и в форме слово с чужим символом сразу виднo. :)
                                    0
                                    Они, к сожалению, не указывают, в чём ошибка в слове «202сb962ac59075b964b07152d234b70». :)

                                    А так да, тоже решение. :)
                                    0
                                    Очень знакомая тема. Мне как то раз пришлось обрабатывать данные о товарах полученные из 1С. Вводом данных занимались десятки разных операторов. Я был в ужасе! Весьма частое явление в этой базе было перемешивание русских и латинских символов в одном слове. Например русское название бренда могло иногда содержать латинские символы, а английское название бренда могло содержать русские символы. Пришлось писать умную процедуру, которая разбивает весь текст по отдельным словам, дальше оценивать количество русских и латинских символов в каждом слове. Если обнаружена мешанина, то проверяется, имеют ли подозрительные символы схожее начертание в другой раскладке… В общем на выходе получается текст в котором каждое слово, по возможности, написано или только по русски или только по английски.

                                    Конечный алгоритм, правда получился более сложным, и в итоге он даже начал даже преобразовывать тексты типа «Автошина нокия» в «Автомобильная шина Nokian». Но это уже другая история.

                                    А «Операторам ПК» очень часто хочется руки оторвать.
                                    • UFO just landed and posted this here
                                        0
                                        Помню раньше, ввели программу проверки дипломов, курсовых, рефератов на плагиат. Но студенты как раз это и делали — заменяли кирилические буквы на латинские аналоги.
                                          +1
                                          а когда это спалили — стали в ворде вместо пробелов буквы белым шрифтом писать.
                                            0
                                            Да-да, как раз так и делали у нас. :)
                                          +1
                                          Описанная проблема, думаю, практически не встречается в текстах на русском языке (за исключением случаев умышленного внедрения, например как в Фидо по техническим причинам заменяли русскую 'Н' на латинскую 'H', а фанаты ещё и русскую 'р' на латинскую 'p'), но очень напрягает когда пишешь в каком-нибудь «ворде» на чешском. Привыкши к английской раскладке я всегда переключаюсь на неё когда надо вводить знаки препинания или набирать на ноуте (без кипада) много цифр (верхний цифровой ряд в чешской раскладке занят буквами с диакритикой: ě, š, č, ř, ž, ý, í, é) и обратно на чешский когда надо вводить эти самые мягкие/шипящие/долгие буквы. Так вот навороченные редакторы типа того же Ворда различают, к примеру, «английскую» 'a' и «чешскую» 'a' (в то время как это именно один и тот же символ по кодировке) в зависимости от того, какая раскладка стояла когда символ был введён. В результате часто оказывается что половина букв в слове введены как «английские», остальные как «чешские», что убивает проверку орфографии и замусоривает файл.
                                            +1
                                            Да, Вы правы. С аналогичными проблемами я сталкиваюсь, когда работают с польской раскладкой клавиатуры.
                                            +1
                                            Было бы ещё круто написать скриптлет, чтобы не копипастить текст на ваш сайт. Да, увы, не во всех браузерах скриптлеты умеют делать кроссайтовые запросы, но тем не менее.
                                              0
                                              А тут и запросы-то делать не надо, на самом деле. Если посмотрите исходник страницы, то увидите, что это одна страница на HTML5, которая не делает вообще никаких запросов куда-либо (кроме, разве что, подгрузки jQuery). :)

                                            Only users with full accounts can post comments. Log in, please.