google-api - 谷歌翻译 API 也在翻译 notranslate 类
问题描述
我在这里有以下代码
<body>
<p id="textField">You can translate the <span class="notranslate" translate="no" >content of this page</span> by selecting a language in the select box.</p>
<h1 id="title">My Web Page</h1>
<p>Hello everybody!</p>
<p>Translate this page:</p>
<form>
<select id="targetLanguage">
<option value="en">English</option>
<option value="hi">Hindi</option>
</select>
<input type="button" id="translateButton" value="Translate" />
</form>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
$("#translateButton").click(function () {
var url = "https://translation.googleapis.com/language/translate/v2";
//Strings requiring translation
url += "?q=" + $("#textField").text();
url += "&q=" + $("#title").text();
//Target language
url += "&target=" + $("#targetLanguage").val();
//Replace with your API key
url += "&key=API_KEY_if You need to test i can share";
$.get(url, function (data, status) {
//Results are returned in an array following the order they were passed.
$("#textField").text(data.data.translations[0].translatedText);
$("#title").text(data.data.translations[1].translatedText);
});
});
</script>
</body>
我想要的只是忽略没有翻译课程的内容,不要触摸或进入这些课程,但谷歌不听。
有什么办法可以解决这个问题吗?
解决方案
您将节点文本内容发送到 Google api,而不是发送 HTML。
将您的代码(第 20-22 行)替换为:
//Strings requiring translation
url += "?q=" + encodeURIComponent($("#textField").html());
url += "&q=" + encodeURIComponent($("#title").html());
.text() jQuery 方法将只检索目标元素的文本内容,删除所有 html。但是您想发送 HTML,因为您需要 Google 检索 translate="no" 属性以避免翻译这部分文本。
另外,我建议使用 encodeURIComponent 函数对您将通过查询字符串发送的 html 进行编码。如果您的 html 包含特殊字符,如 & ,它将防止意外行为
您还必须使用 html() 方法而不是文本来替换您的内容。
$("#textField").html(data.data.translations[0].translatedText);
$("#title").html(data.data.translations[1].translatedText);
推荐阅读
- javascript - 我不断收到 Can't perform a React state update on an unmounted component
- r - 如何将命名列表传递给R中函数(特别是`anova`)的点(`...`)参数?(“do.call”的替代品)
- python - 有没有办法使用不同行上的数据点对数据框进行计算?
- asp.net-mvc - ASP.NET MVC Linq 查询左外连接与 GroupBy 多个表
- point-cloud-library - 如何避免intel d415在2米距离处的点云放弃
- kdb - .Q.trp 和 bt 处理
- java - 获取R2DBC连接Java Spring失败
- flutter - 使用 Flutter for Mediawiki 进行客户端登录
- python - 如何检测价格何时高于先前的高点
- c# - Serilog 属性解构不能始终如一地工作?