2013-12-13 3 views
5

समस्या का अनुवाद प्लेसहोल्डर पाठ में प्लेसहोल्डर पाठ यह मेरा नमूना कोड है:गूगल अनुवाद, <code>input type="text"</code></p> <p>में इनपुट प्रकार = 'पाठ'

एचटीएमएल:

<div id="google_translate_element" style="float:left; padding-left:15px"></div> 


<!-- Need to translate this placeholder text --> 

<form><input type="text" placeholder= "Enter your name" /> 
<input type="submit" value="Submit" /> 
</form> 

JavaScipt:

<script type="text/javascript"> 
function googleTranslateElementInit() { 
     new google.translate.TranslateElement({pageLanguage: 'en', includedLanguages: 'ca,da,de,el,en,es,fr,it,ja,ko,nl,pl,pt,ru,sv,tl', layout: google.translate.TranslateElement.InlineLayout.SIMPLE}, 'google_translate_element'); 
} 
</script> 
<script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script> 

सीएसएस:

<style> 
div#google_translate_element div.goog-te-gadget-simple{background-color:green;} 
    div#google_translate_element div.goog-te-gadget-simple a.goog-te-menu-value span{color:yellow} 

    div#google_translate_element div.goog-te-gadget-simple a.goog-te-menu-value span:hover{color:#ffffff} 
</style> 

translater उदाहरण

JSFiddle में है:

http://jsfiddle.net/ulak/zDUYL/

Google अनुवाद का उपयोग प्लेसहोल्डर पाठ का अनुवाद करने में किसी अन्य तरीके का उल्लेख कृपया

+0

jsfiddle में jsfiddle किसी भी 'input' तत्व शामिल नहीं है। और किसी भी * अन्य * तरीके से आपका क्या मतलब है? क्या आपको कोई रास्ता मिला है? –

+0

jsfiddle उदाहरण containe केवल फ़ंक्शन का अनुवाद करता है, मैंने <इनपुट प्रकार = "टेक्स्ट" प्लेसहोल्डर = "अपना नाम दर्ज करें" /> जोड़ने के साथ परीक्षण किया है, जो मेरे लिए काम नहीं कर रहा है, मेरा असली कार्यान्वयन भी उसी तरह उपयोग करता है – UdayaLakmal

उत्तर

0

जब तक Google अनुवाद placeholder विशेषता का अनुवाद नहीं करना चाहता (और वे इसके लिए पूछने का कोई तरीका नहीं सुझाते हैं), तो जवाब "आप नहीं कर सकते"।

वर्कअराउंड के रूप में, आप प्लेसहोल्डर टेक्स्ट को सामान्य तत्व में डाल सकते हैं, label तत्व कहें, और उसके बाद, जावास्क्रिप्ट के साथ, अनुवाद के बाद इसकी सामग्री को placeholder विशेषता दें और सामान्य तत्व को हटा दें।

हालांकि, यह समस्या पैदा कर से बचने के लिए और बस एक स्थिति है जहाँ आप एक लेबल की भूमिका में उत्तरार्द्ध का प्रयोग करेंगे में placeholder विशेषता के बजाय एक label तत्व का उपयोग बेहतर है - एचटीएमएल 5 सीआर के खिलाफ जो स्पष्ट रूप से says: "प्लेसहोल्डर विशेषता को लेबल के प्रतिस्थापन के रूप में उपयोग नहीं किया जाना चाहिए।" तो बस सामान्य मार्कअप उपयोग करें और यह सामान्य रूप से (गलत) है गूगल द्वारा अनुवादित:

<label for=name>Your name:</label> <input type="text" id=name> 
-3
<div id="google_translate_element"></div><script type="text/javascript"> 
    function googleTranslateElementInit() { 
     new google.translate.TranslateElement({ 
      pageLanguage: 'en' 
      , layout: google.translate.TranslateElement.InlineLayout.SIMPLE} 
      , 'google_translate_element'); 
    } 
</script> 
<script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"> 
</script> 
+0

कृपया कुछ जोड़ें आपकी पोस्ट में स्पष्टीकरण नोट्स, यह दिखाते हुए कि आपका कोड समस्या को कैसे हल करता है और ओपी क्या खो रहा था या गलत हो रहा है –

+0

यह सिर्फ Google अनुवाद उदाहरण है .. – UdayaLakmal

+0

का अनुवाद करने वाले प्लेसहोल्डर टेक्स्ट के साथ मदद नहीं की गई है। क्या समस्या समस्या होगी I9 में क्या समस्या होगी ।अपने विचारों को साझा करें। – sridhar

5

पिछले जवाब के रूप में, गूगल अनुवादक प्लेसहोल्डर

googling जबकि अनुवाद नहीं करता है, इस जावास्क्रिप्ट समाधान मिल गया है और यह करता है काम। http://gamon.org/blog/2015/03/12/translate-placeholders-with-google-translate-widget/

here

// Find all placeholders 
var placeholders = document.querySelectorAll('input[placeholder]'); 

if (placeholders.length) { 
    // convert to array 
    placeholders = Array.prototype.slice.call(placeholders); 

    // copy placeholder text to a hidden div 
    var div = $('<div id="placeholders" style="display:none;"></div>'); 

    placeholders.forEach(function(input){ 
     var text = input.placeholder; 
     div.append('<div>' + text + '</div>');  
    }); 

    $('body').append(div); 

    // save the first placeholder in a closure 
    var originalPH = placeholders[0].placeholder; 

    // check for changes and update as needed 
    setInterval(function(){ 
     if (isTranslated()) { 
     updatePlaceholders(); 
     originalPH = placeholders[0].placeholder; 
     } 
    }, 500); 

    // hoisted --------------------------- 
    function isTranslated() { // true if the text has been translated 
     var currentPH = $($('#placeholders > div')[0]).text(); 
     return !(originalPH == currentPH); 
    } 

    function updatePlaceholders() { 
     $('#placeholders > div').each(function(i, div){ 
     placeholders[i].placeholder = $(div).text(); 
     }); 
    } 
} 
-3
<div id="google_translate_element"></div> 
<script type="text/javascript"> 
    function googleTranslateElementInit() { 
     new google.translate.TranslateElement({ 
      pageLanguage: 'en', 
      includedLanguages: 'ar', 
      layout: google.translate.TranslateElement.InlineLayout.SIMPLE 
     }, 'google_translate_element'); 
    } 
</script> 
<script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script> 
संबंधित मुद्दे