2011-08-12 19 views
1

我試圖製作一個簡單的基於Web的應用程序,它將非英語(非EN)字符串轉換爲英語(EN)語言。翻譯API(V1-JS)。Google API - 將字符串轉換爲EN語言:(

起初我檢測div標籤提供的語言(注意頁面編碼設置爲UTF-8)。

然後我想的文本,如果翻譯它使用非EN語言,然後將它顯示在檢測到的語言標記下方。

我能夠獲取檢測到的語言,但翻譯從未發生!:(

任何幫助將不勝感激..

下面的代碼:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<title>Insert title here</title> 

<script 
    src="http://www.google.com/jsapi?key=mykeyfrxwexdfwezfdhfxcewx" type="text/javascript"></script> 

<script type="text/javascript"> 
    /* 
    * How to detect the language of text. 
    */ 


    google.load("language", "1"); 

    function initialize() { 
     var content = document.getElementById('content'); 
     // Setting the text in the div. 
     content.innerHTML = '<div id="text">Hola, me alegro mucho de verte.<\/div><div id="detected"><\/div><div id="transtext"/>'; 

     // Grabbing the text to translate 
     var text = document.getElementById("text").innerHTML; 

     // Detect the language of the text. 
     google.language.detect(text, function(result) { 
      var detected = document.getElementById("detected"); 
      // If there wasn't an error in the request 
      if (!result.error) { 
       var langCode = result.language; 
       var langName; 

       // Loop through the languages enum so that we can find the actual name of the language. 
       // Learn about the languages enum here: 
       // http://code.google.com/apis/ajaxlanguage/documentation/reference.html#LangNameArray 
       for (var i in google.language.Languages) { 
        var thisLangCode = google.language.Languages[i]; 
        if (thisLangCode == langCode) { 
         // find the language code, store the language name. 
         langName = i; 
         break; 
        } 
       } 

       // See the detected language. 
       detected.innerHTML = 'Detected: "' + result.language 
         + '" - aka "' + langName + '"'; 
      } 
     }); 

     google.language.translate(text, 'es', 'en', function(result) { 
      var translated = document.getElementById("transtext"); 
      if (result.transtext) { 
       translated.innerHTML = result.transtext; 
      } 
     }); 

    } 
    google.setOnLoadCallback(initialize); 
</script> 
</head> 
<body style="font-family: Arial; border: 0 none;"> 
    <div id="content">Loading...</div> 

</body> 
</html> 
+0

到底出了什麼修改後的代碼?你會得到什麼錯誤? –

+0

我能夠檢測到該語言,但我無法看到翻譯的文本。我無法猜測這段代碼有什麼問題。沒有錯誤(S)出現。 :(? – echo9

回答

1

3點要注意。

你實際上並沒有在檢測回調中調用翻譯。 翻譯結果不包含屬性transtext。你需要的是名字翻譯。 我懷疑你想發佈您的API密鑰的公共領域

查找下面

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<title>Insert title here</title> 

<script 
    src="http://www.google.com/jsapi?key=xxxxxxxxxxxxxxx>" type="text/javascript"></script> 

<script type="text/javascript"> 
    /* 
    * How to detect the language of text. 
    */ 


    google.load("language", "1"); 

    function initialize() { 
     var content = document.getElementById('content'); 
     // Setting the text in the div. 
     content.innerHTML = '<div id="text">Hola, me alegro mucho de verte.<\/div><div id="detected"><\/div><div id="transtext"/>'; 

     // Grabbing the text to translate 
     var text = document.getElementById("text").innerHTML; 

     // Detect the language of the text. 
     google.language.detect(text, function(result) { 
      var detected = document.getElementById("detected"); 
      // If there wasn't an error in the request 
      if (!result.error) { 
       var langCode = result.language; 
       var langName; 

       // Loop through the languages enum so that we can find the actual name of the language. 
       // Learn about the languages enum here: 
       // http://code.google.com/apis/ajaxlanguage/documentation/reference.html#LangNameArray 
       for (var i in google.language.Languages) { 
        var thisLangCode = google.language.Languages[i]; 
        if (thisLangCode == langCode) { 
         // find the language code, store the language name. 
         langName = i; 
         break; 
        } 
       } 

       // See the detected language. 
       detected.innerHTML = 'Detected: "' + result.language 
         + '" - aka "' + langName + '"'; 
      google.language.translate(text, result.language, 'en', function(result) { 
      var translated = document.getElementById("transtext"); 
      if (result.translation) { 
       translated.innerHTML = result.translation; 
      } 

     }); 

      } 
     }); 


    } 
    google.setOnLoadCallback(initialize); 
</script> 
</head> 
<body style="font-family: Arial; border: 0 none;"> 
    <div id="content">Loading...</div> 

</body> 
</html> 
+0

thanx的建議:)但仍然無法成功運行它。事實上,語言檢測不再工作:(就API而言,它來自谷歌的幫助。:) – echo9

+0

你在我貼的代碼中替換了你的API密鑰?我將它替換爲xxxxxxxxxxxx – amal

+0

@ echo9,重新閱讀您的原始評論,我覺得您沒有真正閱讀我的評論,只是複製並粘貼了代碼並嘗試運行它。在原始評論中有足夠的信息來知道代碼有什麼問題並糾正它。我發佈更正的代碼是一個不必要的步驟。 – amal