Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 谷歌翻译,输入类型中的占位符文本=';文本';_Javascript_Html_Translation_Placeholder_Google Translate - Fatal编程技术网

Javascript 谷歌翻译,输入类型中的占位符文本=';文本';

Javascript 谷歌翻译,输入类型中的占位符文本=';文本';,javascript,html,translation,placeholder,google-translate,Javascript,Html,Translation,Placeholder,Google Translate,翻译input type=“text” 这是我的示例代码: Html: <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=“text”

这是我的示例代码:

Html:

<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>
<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>

JavaScipt:

<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>
<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>

函数googleTranslateElementInit(){
新的google.translate.TranslateElement({pageLanguage:'en',包括语言:'ca,da,de,el,en,es,fr,it,ja,ko,nl,pl,pt,ru,sv,tl',布局:google.translate.TranslateElement.InlineLayout.SIMPLE},'google_translate_元素');
}
CSS:

<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>
<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>

div#google(谷歌翻译)元素div.goog-te-gadget-simple{背景色:绿色;}
div#google_translate_元素div.goog-te-gadget-simple a.goog-te-menu-value span{color:yellow}
div#google#translate(元素div.goog-te-gadget-simple a.goog-te-menu-value span:hover{color:#ffffffff}
翻译程序示例位于中

JSFiddle:

<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>
<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>


请提及使用google translate翻译占位符文本的任何其他方法,只要google translate不想翻译
占位符
属性(他们建议没有办法要求),答案是“你不能”

作为一种解决方法,您可以将占位符文本放入普通元素,例如
标签
元素,然后使用JavaScript在翻译后将其内容复制到
占位符
属性并删除普通元素

但是,最好避免产生问题,只需使用
标签
元素而不是
占位符
属性,如果您将在标签的标签中使用后者,那么HTML5 CR明确规定:“占位符属性不应被用作标签的替代品。”。因此,只需使用普通标记,并由谷歌进行正常(错误)翻译:

<label for=name>Your name:</label> <input type="text" id=name>
您的姓名:

函数googleTranslateElementInit(){
新的google.translate.TranslateElement({
页面语言:“en”
,布局:google.translate.TranslateElement.InlineLayout.SIMPLE}
“谷歌翻译元素”);
}

如前面的回答所述,谷歌翻译不会翻译占位符

我找到了这个javascript解决方案,它确实有效

JSFIDLE演示:

//查找所有占位符
var placeholder=document.querySelectorAll('input[placeholder]');
if(占位符.长度){
//转换为数组
占位符=Array.prototype.slice.call(占位符);
//将占位符文本复制到隐藏的div
var div=$('');
占位符.forEach(函数(输入){
var text=input.placeholder;
div.append(“”+文本+“”);
});
$('body')。追加(div);
//在闭包中保存第一个占位符
var originalPH=占位符[0]。占位符;
//检查更改并根据需要进行更新
setInterval(函数(){
if(isTranslated()){
updatePlaceholders();
originalPH=占位符[0]。占位符;
}
}, 500);
//悬挂---------------------------
函数isTranslated(){//如果文本已翻译,则为true
var currentPH=$($('#占位符>div')[0]).text();
返回!(originalPH==currentPH);
}
函数updatePlaceholders(){
$('#占位符>div')。每个(函数(i,div){
占位符[i]。占位符=$(div).text();
});
}
}

函数googleTranslateElementInit(){
新的google.translate.TranslateElement({
页面语言:'en',
包括语言:“ar”,
布局:google.translate.TranslateElement.InlineLayout.SIMPLE
}“谷歌翻译元素”);
}

jsiddle不包含任何
输入
元素。你说的其他方式是什么意思?你找到方法了吗?JSFIDLE示例只包含翻译功能,我测试了添加功能,这对我不起作用,我的实际实现也使用相同的方法。请在您的帖子中添加一些解释性说明,说明您的代码如何解决问题,以及OP遗漏了什么或出错了什么。这只是谷歌翻译示例。。占位符文本翻译没有帮助相同的代码在IE9中不起作用会有什么问题。分享你的想法。这是什么,真的?