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

Я боролся с этим вопросом в течение двух дней, но все еще не мог найти ничего полезного.

Может кто-нибудь посоветовать мне что-нибудь, что будет эффективно определять язык, на котором была отправлена ​​форма, любой плагин или API, которые я мог бы использовать в своем приложении php.

Следующие методы хорошо подошли бы мне, если бы у них не было ограничений на количество запросов, которые вы можете сделать.

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

Существуют ли эффективные методы определения языка ввода пользователя (короткого текста) на лету? Или, может быть, кто-то может помочь мне понять, как использовать библиотеку Google Detection с PHP?

(В моем приложении разные сценарии выполняются для каждого языка, поэтому мне нужно определить язык, на котором была отправлена ​​форма, чтобы определить, какой сценарий нужно выполнить)

1 ответ

Решение

Использование Text_LanguageDetect от груши

Монтаж:

sudo pear install Text_LanguageDetect

использование

Пример:

<?php
require_once 'Text/LanguageDetect.php';
$l = new Text_LanguageDetect();

echo "Supported languages:\n";
try {
    $langs = $l->getLanguages();
    sort($langs);
    echo implode(', ', $langs) . "\n\n";
} catch (Text_LanguageDetect_Exception $e) {
    die($e->getMessage());
}

$text = <<<EOD
Hallo! Das ist ein Text in deutscher Sprache.
Mal sehen, ob die Klasse erkennt, welche Sprache das hier ist.
EOD;

try {
    //return 2-letter language codes only
    $l->setNameMode(2);

    $result = $l->detect($text, 4);
    print_r($result);
} catch (Text_LanguageDetect_Exception $e) {
    die($e->getMessage());
}
?>  

Выход:

Supported languages:
albanian, arabic, azeri, bengali, bulgarian, cebuano, croatian, czech,
danish, dutch, english, estonian, farsi, finnish, french, german, hausa,
hawaiian, hindi, hungarian, icelandic, indonesian, italian, kazakh, kyrgyz,
latin, latvian, lithuanian, macedonian, mongolian, nepali, norwegian, pashto,
pidgin, polish, portuguese, romanian, russian, serbian, slovak, slovene, somali,
spanish, swahili, swedish, tagalog, turkish, ukrainian, urdu, uzbek, vietnamese,
welsh

Array
(
    [de] => 0.40703703703704
    [nl] => 0.2880658436214
    [en] => 0.28333333333333
    [da] => 0.23452674897119
)

Примечание: этот пакет не поддерживается. Прочитайте больше


Еще один пример детектора языка PHP:

https://github.com/crodas/LanguageDetector

Другие вопросы по тегам