问题描述
我的网站上有通过翻译代理的页面。我需要某些链接中显示的文本不被翻译。我可以将 class="notranslate"
添加到链接中,翻译人员会跳过它没问题。但是,在实现翻译器之前,我已经创建了数百个页面,并且随着我的继续,我还会创建数百个页面 - 手动添加类并不是一个真正的选择。
我特别关注的链接是显示文本为文字 URL 或电子邮件地址的链接。翻译器不会触及 href
属性,因此链接仍按预期工作,但显示的字符串会被破坏。例如,在越南语中,“organization@domain.com”显示为“tổ chức@domain.com”,并且显示文本应为“domain.com/committees”的链接被转换为“domain.com/commitaries”。 "
因此,我正在寻找一种解决方案来查找 a
元素,其显示文本包含“@”或“/”并添加 class="notranslate"
。我认为我不需要太强大的解决方案,否则我不会经常在链接显示文本中使用“@”或“/”,如果有的话,除非在这些情况下。我猜这可以用 Javascript 来完成,但我充其量只是一个 JS 初学者。通过 wordpress 在后端过滤内容的选项也可能是一个不错的解决方案。
解决方法
使用 jquery 很简单,理想情况下需要在翻译插件之前加载。
注意:如果你已经像大多数 wordpress 主题一样加载了 jquery,那么你可以从这段代码中删除第一行,其中包括 jquery 库。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script type="text/javascript">
$( document ).ready(function() {
$("a").each(function() {
let text = $(this).text();
if(text.includes("@")) {
$(this).addClass('notranslate');
}
if(text.includes("/")) {
$(this).addClass('notranslate');
}
})
});
</script>