Как определить язык пользовательского ввода
Я боролся с этим вопросом в течение двух дней, но все еще не мог найти ничего полезного.
Может кто-нибудь посоветовать мне что-нибудь, что будет эффективно определять язык, на котором была отправлена форма, любой плагин или 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
)
Примечание: этот пакет не поддерживается. Прочитайте больше