如何检测用户输入的语言

时间:2014-07-02 10:46:53

标签: php input language-detection

我已经在这件事上挣扎了两天,但仍然找不到任何有用的东西。

有人可以向我建议任何可以有效检测提交表单的语言,无论是任何插件或API,我都可以在我的php应用程序中使用。

如果他们对您可以提出的许多请求没有限制,以下方法对我很有帮助。

Google提供language detection library,这似乎适合我,但我完全不知道如何使用它。

是否有任何有效的方法可以即时检测用户输入的语言(短文本)? 或者也许有人可以帮我弄清楚如何在PHP中使用Google Detection库?

(在我的应用程序中,为每种语言执行不同的脚本,因此我需要检测提交表单的语言,以确定要执行的脚本)

1 个答案:

答案 0 :(得分:2)

使用Pear的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
)

注意:不保留此包。 Read more


PHP语言检测器的另一个例子:

crodas/LanguageDetector