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

时间:2015-01-20 09:47:31

标签: javascript

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

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

2 个答案:

答案 0 :(得分:5)

这是一个没有真正检测语言的解决方案,但只检查用户输入是否只包含英文字母。如果确实如此,它会写出&#34;英语&#34;在div中,否则它会写出#34; Persian&#34;。代码:

&#13;
&#13;
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";
  }
});
&#13;
<input type="text" id="give_me_the_lang">
<div id="show_lang_in_here"></div>
&#13;
&#13;
&#13;

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

答案 1 :(得分:1)

检测语言是一个简单的if else或switch case无法解决的任务......你有一个计算机学习问题需要在这里解决我的朋友。

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

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

  1. 注册Google云端平台
  2. 激活对Google翻译API的访问
  3. 获取API的浏览器访问令牌。您需要此令牌才能在JavaScript中使用它。
  4. 现在连接你的用户界面,让他们发挥魔力。
  5. 您的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
               }
             ]
           ]
        }
    }
    

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