2011-08-12 23 views
1

英語以外の文字列を英語(EN)の言語に翻訳する簡単なWebベースのアプリケーションを作成しようとしています。翻訳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

言語を検出できましたが、翻訳されたテキストは表示されません。私はこのコードの何が間違っているのか推測できません。エラーは発生しません。 :(? – echo9

答えて

1

3点を注意する:

すべてのヘルプははるかに高く評価されるだろう。..

は、ここでは、コードです。

あなたは実際にdetectのコールバック内でtranslateを呼び出すわけではありません。 変換結果にはプロパティトランスフォームが含まれていません。必要なのは翻訳という名前です。私はあなたがパブリックドメインに

をあなたの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に関する限り、それはGoogleの助けによるものです:) – echo9

+0

投稿したコードでAPIキーを置き換えましたか?私はそれをxxxxxxxxxxxxに置き換えました。 – amal

+0

@ echo9、あなたの元のコメントを読んで、私はあなたが実際に私のコメントを読んでいないと感じて、ちょうどコピーし、コードを貼り付け、それを実行しようとしました。オリジナルのコメントには、コードに何が間違っているかを知り、それを修正するための十分な情報がありました。私が訂正したコードを投稿することは、不必要なステップでした。 – amal

関連する問題