Мне не очень повезло с решением только для ColdFusion, потому что многие языки (например, Spani sh) используют латинские символы. Я использовал логи c из этого Java сценария с диапазонами символов для обнаружения арабского c, бенгальского, бирманского / мьянманского, кириллицы c, девангари, эфиопского c / амхари c, грузинский, греческий, гуджарати, гурмухи, хангыль, иврит, каннада, кхмерский, малаялам, монгольский, ория, сингальский, тамильский, телугу, тайский и тибетский.
@ Виктор упомянул Полиглот библиотека , и она утверждает, что обнаружила 165 языков, используя несколько методов, но она написана на Python. Проект OpenNLP Apache поддерживает определение языка, и вот несколько примеров java для выполнения обнаружения. Lingua - это выделенная Java библиотека для определения языка, которая утверждает, что работает быстро при работе с короткими текстовыми фразами. (Также, вот список других NLP Java библиотек .)
В случае смайликов они очень разные и могут вызвать проблемы с анализатором; особенно при передаче данных сторонним процессам. Для обнаружения и дезинфекции смайликов я рекомендую использовать библиотеку emoji- java java. (Я написал ColdFusion CF C в качестве оболочки для библиотеки Java.)
При дальнейшем исследовании я нашел совместимую с ColdFusion библиотеку Java, которая хорошо работает и обнаруживает 68 языков. Это kju2-разветвленный языковой детектор . Я написал CF-язык-детектор CF C.
languageDetector = new languageDetector();
languageDetector("Quel est votre nom?") // CATALAN (French?)
languageDetector("Wie heißen Sie?") // GERMAN
languageDetector("¿Cuál es tu nombre?") // SPANISH
languageDetector("Πως σε λένε?") // GREEK
languageDetector("Как Вас зовут?") // BELARUSIAN (Russian)
languageDetector("คุณชื่ออะไร?") // THAI