我正在使用I18N的网站。
我有一个翻译团队,负责检查网站上的翻译。
如果他们想要,他们可以通过将鼠标放在他们想要翻译的字符串上来提供新的翻译。
我需要检测我的PO文件中当前页面上使用的所有字符串,并在字符串的直接父级上添加一个类,以便我可以添加文本输入以提交新的翻译。
所以我创建了一个函数,用于存储当前页面中使用的每个翻译(PO文件中的基本字符串和PHP注入的数据的最终翻译),并将它们作为JSON对象传递给JavaScript。
现在,我必须在页面中找到所有这些翻译。
我的问题是在它们包含html标记时匹配它们。
在我的PO文件中:
msgid "Bonjour <strong>%s</strong>"
msgstr "Hi <strong>%s</strong>"
我的网页来源:
<div>Hi <strong>Tristan</strong></div>
我需要
Hi <strong>Tristan</strong>
我该如何匹配?我想我需要使用翻译的字符串作为选择器。
我想避免在PHP处理过程中使用元素包装i18n字符串(因为它会以某种方式更改DOM,因此会对网站的设计产生影响),但另一方面,使用来自PO文件的字符串在浏览器端看起来也很重要。
任何提示?
答案 0 :(得分:0)
在@lonesomeday之后,我也会使用span。这就是他们的目的。 这是跨度应该是:
msgid "Bonjour <strong>%s</strong>"
msgstr "Hi <strong>%s</strong>"
变为:
<span class='I18N'>Bonjour <strong>Tristan</strong></span>
<span class='I18N'>Hi <strong>Tristan</strong></span>
javascript然后变成:
$(document).ready(function(){
$('.I18N').closest('*').addClass('inputI18N');
});