У меня есть форма, которая позволяет пользователям вводить текстовые фрагменты. Итак, как определить язык введенного текста?
В частности, эти языки на данный момент:
Арабский: هذه هي بعض النصوص العربية
Китайский: 这 是 一些 阿拉伯 文字
Японский: こ れ は, い く つ か の ア ラ ビ ア の テ テ す す す す
[Изменить] Обнаружение работает над текстом, который извлекается через API тоже (не используется браузер)
Вы можете выяснить, являются ли символы из арабской, китайской или японской частей карты Юникода.
Если вы посмотрите на список в Википедии , вы увидите, что на каждом из этих языков есть много разделов карты. Но вы не выполняете перевод, поэтому вам не нужно беспокоиться о каждом последнем глифе.
Например, ваш китайский текст начинается (в шестнадцатеричном формате) 0x8FD9 0x662F 0x4E00 – и все они находятся в разделе «Объединенные идеографы CJK», который является китайским. Вот несколько диапазонов, чтобы вы начали:
Арабский (0600-06FF)
Японский
Китайский
(Я получил гексагон для ваших китайцев, используя конвертер для китайцев в Unicode .)
Вы можете использовать API Ajax Google для обнаружения языка фрагмента текста.
Предположительно, угадать язык пользователя – отображать ответы на соответствующем языке. Как насчет изучения настроек браузера для предпочитаемых языков? Получите это из заголовка HTTP Accept-Language . См. Раздел 14.4.
Я изучаю то же самое, для серверной части. До сих пор я нашел https://code.google.com/p/language-detection/ . Надеюсь, это поможет кому-то.
Вы можете использовать https://detectlanguage.com/, который представляет собой создание веб-службы вокруг CLD2.