2013-03-13 4 views
8

क्या आपकी वेबसाइट के लिए असीमित रूप से Google अनुवाद विजेट लोड करने का कोई तरीका है?आपकी वेबसाइट के लिए असीमित रूप से Google अनुवाद विजेट लोड करने का तरीका?

मैंने इसे अपने पृष्ठ के नीचे डालने की कोशिश की, लेकिन #google_translate_element कंटेनर अभी भी खाली था।

<!-- Asynchronous Google Translate --> 
<script type="text/javascript"> 
function googleTranslateElementInit() { 
    new google.translate.TranslateElement({pageLanguage: 'en', includedLanguages: 'ar,bg,bn,de,el,eo,es,en,fr,hi,id,it,iw,ja,ko,pl,pt,ru,th,tr,vi,zh-CN', layout: google.translate.TranslateElement.InlineLayout.SIMPLE, gaTrack: true, gaId: 'UA-1234-1'}, 'google_translate_element'); 
} 

(function() { 
    var googleTranslateScript = document.createElement('script'); 
    googleTranslateScript.type = 'text/javascript'; 
    googleTranslateScript.async = true; 
    googleTranslateScript.src = '//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit'; 
    (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(googleTranslateScript); 
})(); 
</script> 

उत्तर

7

ऐसा लगता है कि आपको अपने कोड में कई समस्याएं हैं। लेकिन आपका मूल विचार ध्वनि है।

यह मानते हुए कि <div id="google_translate_element"></div> स्क्रिप्ट टैग से पहले परिभाषित किया गया है, निम्नलिखित काम करना चाहिए:

<!-- Asynchronous Google Translate --> 
<script type="text/javascript"> 
    function googleTranslateElementInit() { 
    new google.translate.TranslateElement({pageLanguage: 'en', 
     includedLanguages: 'ar,bg,bn,de,el,eo,es,en,fr,hi,id,it,iw,ja,ko,pl,pt,ru,th,tr,vi,zh-CN', 
     layout: google.translate.TranslateElement.InlineLayout.SIMPLE, 
     gaTrack: true, gaId: 'UA-37652767-1'}, 'google_translate_element'); 
    } 

    var googleTranslateScript = document.createElement('script'); 
    googleTranslateScript.type = 'text/javascript'; 
    googleTranslateScript.async = true; 
    googleTranslateScript.src = 'http://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit'; 
    (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(googleTranslateScript); 
</script> 

कम से कम यह मेरे लिए काम किया जब मैं यह सब एक HTML फ़ाइल में रखा और क्रोम में लोड।

बेशक var घोषणा और $(document).ready फ़ंक्शन में निम्नलिखित पंक्तियां (या यदि आप jQuery का उपयोग नहीं करते हैं तो कुछ अन्य तरीकों से) रखना संभव होगा। फिर div और script के बीच का आदेश अब परिणाम नहीं होगा।

+1

धन्यवाद। क्या आप मेरे संपादन की "सहकर्मी समीक्षा" कर सकते हैं? मैंने http: // के बजाय बस // // होना चाहिए। इस तरह यह एचटीटीपीएस के साथ भी काम करता है। यह एक साफ चाल है। – Geoff

+0

मेरे पास अभी तक समीक्षा करने के लिए प्रतिनिधि नहीं है, अन्यथा मैं चाहता हूं। आह - '//' मेरे लिए काम नहीं किया, लेकिन शायद यह इसलिए था क्योंकि मेरे पास सर्वर पर नहीं था। – fredrik

+0

यह वास्तव में अच्छा लग रहा है! आईई समर्थन के कारण हालांकि मैं async के बजाय defer का उपयोग करने की सलाह दूंगा। – Parris

संबंधित मुद्दे