Javascript 使用micorosoft translator api翻译后,如何恢复原始文本
当用户单击我网页上的按钮时,我可以使用Microsoft translator API和AJAX调用将一个段落从英语翻译成西班牙语。我想让他们能够切换回原始文本,而不必将西班牙语文本翻译回英语。当我查看页面源代码时,我可以看到原始文本,但我不确定如何将其显示回用户Javascript 使用micorosoft translator api翻译后,如何恢复原始文本,javascript,html,microsoft-translator,Javascript,Html,Microsoft Translator,当用户单击我网页上的按钮时,我可以使用Microsoft translator API和AJAX调用将一个段落从英语翻译成西班牙语。我想让他们能够切换回原始文本,而不必将西班牙语文本翻译回英语。当我查看页面源代码时,我可以看到原始文本,但我不确定如何将其显示回用户 函数翻译() { var from=“en”,to=“es”,text=$('.Translate').text(); var s=document.createElement(“脚本”); s、 src=”http://api.m
函数翻译()
{
var from=“en”,to=“es”,text=$('.Translate').text();
var s=document.createElement(“脚本”);
s、 src=”http://api.microsofttranslator.com/V2/Ajax.svc/Translate" +
“?appId=承载”+编码组件(window.accessToken)+
“&from=“+encodeURIComponent(from))+
“&to=“+encodeURIComponent(to))+
“&text=“+encodeURIComponent(文本)+
“&oncomplete=MyCallback”;
文件。正文。附录子项;
}
函数MyCallback(响应)
{
$('.Translate')。文本(响应);
}
翻译
恢复
生存还是毁灭:这是一个问题:
受苦是否更高尚
凶残命运的投石器和箭,
或是拿起武器对抗浩瀚的麻烦,
通过反对结束他们?
查看页面源代码不会显示页面的当前HTML。问题是您的行$('.Translate').text(响应)代码>销毁页面上的原始文本
如果您希望能够切换回,则需要将翻译后的文本放入新的div。然后,您只需显示和隐藏div即可在显示的版本之间切换。您可以在翻译前通过将原始文本存储在变量中,然后在restore()中记住原始文本
函数您可以使用此变量的内容替换文本。但是因为这个临时变量应该在不同的函数中设置并获取它的值,所以它应该在更高的范围内。在您的情况下,这将是一个全球性的,但请记住,这是不推荐的
var originalText;
function Translate()
{
var from = "en", to = "es", text = $('.Translate').text();
originalText = text;
var s = document.createElement("script");
s.src = "http://api.microsofttranslator.com/V2/Ajax.svc/Translate" +
"?appId=Bearer " + encodeURIComponent(window.accessToken) +
"&from=" + encodeURIComponent(from) +
"&to=" + encodeURIComponent(to) +
"&text=" + encodeURIComponent(text) +
"&oncomplete=MyCallback";
document.body.appendChild(s);
}
function restore(){
$('.Translate').text(originalText);
}
你能换个方向翻译吗?是的,但我相信这会计入我每月能翻译的字符数,我希望有更好的方法。另外,重新翻译的文本与原文不太一样。我不知道这个限制。David的解决方案似乎更加灵活,因为您可以附加多种语言的翻译。最终,您可以将翻译后的消息保存在一个单独的文件中(每种语言一个),只需在这些文件中查询具有给定密钥的消息即可。