繁体   English   中英

如何在用户输入时检测用户的语言

[英]how to detect user's language while he/she is typing

伙计们,我有这个问题的问题,我必须知道用户在输入文字时使用哪种语言来处理一些不良形状的东西,我甚至在这里看了这个,但它没有帮助我,你们可以帮助吗我有正确的代码?
我必须知道的语言是英语和波斯语:| 谢谢:) i need some javascript helps

<input type="text" id="give_me_the_lang">
<div id="show_lang_in_here"></div>

这是一个没有真正检测语言的解决方案,只是检查用户输入是否只包含英文字母。 如果是,它在div中写“英语”,否则写“波斯语”。 码:

 document.getElementById("give_me_the_lang").addEventListener("keyup", function() { if (/^[a-zA-Z]+$/.test(this.value)) { document.getElementById("show_lang_in_here").innerHTML = "English"; } else { document.getElementById("show_lang_in_here").innerHTML = "Persian"; } }); 
 <input type="text" id="give_me_the_lang"> <div id="show_lang_in_here"></div> 

表达式^[a-zA-Z]+$只检查英文字母的字母,如果你用数字或任何其他字符书写,结果将是“波斯语”。

检测语言是一个普通的if或switch案例无法解决的任务......你有一个计算机学习问题要在这里解决我的朋友。

好消息是,已经有疯狂的天才已经解决了你的问题,为什么不使用他们的可用解决方案呢?

https://cloud.google.com/translate/v2/getting_started#language_detect

  1. 注册Google云端平台
  2. 激活对Google Translate API的访问权限
  3. 获取API的浏览器访问令牌。 您需要此令牌才能在JavaScript中使用它。
  4. 现在连接你的用户界面,让他们发挥魔力。

您的HTML将保持不变。 只要确保你也包含jQuery。

<input type="text" id="give_me_the_lang" />
<div id="show_lang_in_here"></div>

现在让我们连接UI

$(function(){

    /* We want to listen to the keypress events from the user 
    *  Each time the user stops typing we wait a few milliseconds and then
    *  we ask Google to detect the language for us */
    var timeoutID;

    /* Replace this with your Google Translate API key */
    var myKey = 'XXXX';

    var detectLanguage = function(){

        $.ajax({
            method: 'GET',
            url: 'https://www.googleapis.com/language/translate/v2/detect',
            data: {
               key: myKey,
               q: $('#give_me_the_lang').val()
            }           
        }).done(function(response){

           /* Push the response to the UI */
           $('#show_lang_in_here').text(JSON.stringify(response.data.detections));
        });        
    };

    $('#give_me_the_lang').on('keyup, keypress, change', function(){
        clearTimeout(timeoutID);

        /* Lets wait half a second */
        setTimeout(detectLanguage, 500);
    });
});

要在解析中解析的是Google将发回的一系列检测。

{
    "data": {
       "detections": [
         [
           {
            "language": "de",
            "isReliable": false,
            "confidence": 0.049747143
           }
         ]
       ]
    }
}

这是一个过于复杂的计算结果的完美例子...所以,我想说,如果这个人给你一个猜测,使用它,如果这个人给你更多,那么选择你认为最适合你的用户的那个基地(你没有在朝鲜或玻利维亚盖丘亚地区有客户吗?)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM