Android在Edittext中查找输入的文本语言?

时间:2014-01-18 12:55:35

标签: android

在EditText中输入数据后,我们如何知道英文,中文或其他语言的数据。谢谢。

注意: EditText应该允许多种语言。我们不限制用户以默认语言输入数据

3 个答案:

答案 0 :(得分:1)

为此你不需要等待用户输入文字..

Locale.getDefault().getDisplayLanguage();

将返回设备的当前设置语言。

另外

您可以使用Locale.getDefault()。getLanguage();获得通常的语言代码(例如“de”,“en”)。

答案 1 :(得分:0)

使用二元分析算法自动检测文本的自然语言相对容易。您可以自己实现它,也可以只使用一些现有的库,例如语言检测项目。 Auto detection

答案 2 :(得分:0)

我觉得这很有帮助:

LangDetector detector = new LangDetector();
detector.register("fr", frenchTree);
detector.register("en", englishTree);

给出这样的结果:

JLangDetect,与之前的语料库一起,在短文本和长文本方面都做得很好。但是,对于较长的文本,它会做得更好(如果有人能告诉我用哪种语言写成“巧克力”......)。

这是JLangDetect的简单输出。 OK表示已正确检测到语言。错误意味着没有。

langof("un texte en français") = fr : OK
langof("a text in english") = en : OK
langof("un texto en español") = es : OK
langof("un texte un peu plus long en français") = fr : OK
langof("a text a little longer in english") = en : OK
langof("a little longer text in english") = en : OK
langof("un texto un poco mas longo en español") = es : OK
langof("J'aime les bisounours !") = fr : OK
langof("Bienvenue à Montmartre !") = fr : OK
langof("Welcome to London !") = en : OK
langof("un piccolo testo in italiano") = it : OK
langof("een kleine Nederlandse tekst") = nl : OK
langof("Matching sur des lexiques") = fr : OK
langof("Matching on lexicons") = en : OK
langof("Une première optimisation consiste à ne tester que les sous-chaînes de taille compatibles avec le lexique.") = fr : OK
langof("A otimização é a primeira prova de que não sub-canais compatível com o tamanho do léxico.") = pt : OK
langof("Ensimmäinen optimointi ei pidä testata, että osa-kanavien kanssa koko sanakirja.") = fi : OK
langof("chocolate") = es : Error
langof("some chocolate") = it : Error
langof("eating some chocolate") = en : OK

完整参考资料为here