jQuery搜索/替换所有正文文本问题

时间:2009-11-24 20:49:12

标签: jquery

我正在jQuery进行复杂的语言翻译。我正在复制jQuery / Google翻译中使用的一些方法,但使用我们自己的XML文件来获取原始英语和翻译语言。

我能够轻松地将英语和其他语言翻译成阵列。

但我的问题是,我们付给某人翻译的这些短语中的一些将会出现在许多不同页面内的其他句子中。

我一直在爆炸,尝试不同的方法,但仍然没有真正的运气找到一个有用的解决方案。

在过去的努力中,我使用jQuery-translate中的$('body')。nodesContainingText()来解析每个文本节点,然后在英语数组中搜索该文本,抓住该位置,然后使用在其他语言数组中获取翻译版本。

在有单独的文本节点的情况下,这种方法很有效,但仍然不能始终如一地处理部分替换。

似乎我尝试解决问题越多,它的工作就越少。

所以我真正喜欢的是关于我做错了什么的指导?

这是我正在使用的代码,也许这会有所帮助。

http://crosenblum.pastebin.com/f6468aae8

1 个答案:

答案 0 :(得分:0)

您似乎可能想尝试在文本的子部分周围使用<span>标记。像这样的东西:

<!-- Header up to Here -->
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque lacinia 
vehicula interdum. Nam aliquet auctor mollis. Suspendisse non orci arcu, id 
commodo augue. Aliquam quam enim, mollis in lacinia quis, pretium scelerisque 
leo. Cras volutpat arcu sit amet purus malesuada non bibendum sem euismod. 
Fusce ut augue in eros imperdiet <span class="translateMe">interdum. Mauris 
eleifend rhoncus lacinia. Vivamus auctor scelerisque nulla</span>, sed 
consectetur velit sodales porttitor. Nullam a neque eget mauris blandit facilisis. 
Nunc bibendum enim vel est venenatis ac posuere ligula condimentum. Nullam tortor 
neque, bibendum eget vestibulum at, interdum in diam.</p>
<!-- Rest of HTML after Here -->
这样您不仅可以执行$('body').nodesContainingText(),还可以执行$('span.translateMe')来检索要翻译的节点。