Подтвердить что ты не робот

Как определить язык текста?

У меня есть форма, которая позволяет пользователям вводить текстовые фрагменты. Итак, как определить язык введенного текста?

В частности, эти языки:

Арабский: هذه هي بعض النصوص العربية

Китайский: 这 是 一些 阿拉伯 文字

Японский: こ れ は, い く つ か の ア ラ ビ ア 語 の テ キ ス ト で で

[Изменить]. Обнаружение работает над текстом, который также извлекается через API (без использования браузера)

4b9b3361

Ответ 1

Вы можете выяснить, являются ли символы из арабского, китайского или японского разделов карты Юникода.

Если вы посмотрите на список Wikipedia, вы увидите, что на каждом из этих языков есть много разделов карты. Но вы не выполняете перевод, поэтому вам не нужно беспокоиться о каждом последнем символе.

Например, ваш китайский текст начинается (в шестнадцатеричном формате) 0x8FD9 0x662F 0x4E00 - и все они находятся в разделе "Объединенные идеограммы CJK", который является китайским. Вот несколько диапазонов, чтобы начать работу:

Арабский (0600-06FF)

Японский

  • Хирагана (3040-309F)
  • Катакана (30A0-30FF)
  • Канбун (3190-319F)

китайский

  • Объединенные идеограммы CJK (4E00-9FFF)

(Я получил гексагон для ваших китайцев, используя Chinese to Unicode Converter.)

Ответ 2

Вы можете использовать API Google Ajax для обнаружения языка фрагмента текста.

Ответ 3

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

Ответ 5

Вы можете использовать https://detectlanguage.com/, который представляет собой сборку webservice вокруг CLD2.