2009-11-24 6 views
0

Je fais une traduction de langue complexe dans jQuery. Je suis en train de copier certaines des méthodes utilisées dans jQuery/Google translate, mais en utilisant nos propres fichiers XML pour obtenir l'anglais original et les langues traduites. Je suis capable de lire facilement l'anglais et l'autre langue dans un tableau. Mais mon problème est que certaines de ces phrases de texte, que nous payons quelqu'un à traduire, vont être à l'intérieur d'autres phrases à l'intérieur de nombreuses pages différentes.jQuery recherche/remplacer tous les problèmes de texte de corps

J'ai essayé, en essayant différentes approches, et toujours pas de chance de trouver une solution utilisable. Dans les efforts précédents, j'ai utilisé le $ ('body'). NodesContainingText() de jQuery-translate, pour analyser chaque noeud de texte, puis rechercher ce texte dans le tableau anglais, saisir cette position, et utiliser que pour obtenir la version traduite dans l'autre tableau de langue.

Et cela fonctionne très bien là où il y a des nœuds de texte séparés, mais pas encore près de travailler de façon constante sur le remplacement partiel.

Semble plus j'essaie de résoudre le problème, moins cela fonctionne.

Alors ce que j'aimerais vraiment, c'est quelques conseils sur ce que je fais mal?

Voici le code que j'utilise, peut-être que cela aidera.

http://crosenblum.pastebin.com/f6468aae8

+0

quelqu'un d'autre a des idées ou des suggestions? – crosenblum

Répondre

0

Il semble que vous voudrez peut-être essayer d'utiliser <span> balises autour de la sous-section du texte. Quelque chose comme ceci:

<!-- 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 -->
De cette façon, vous pouvez non seulement faire le $('body').nodesContainingText(), mais vous pouvez aussi faire $('span.translateMe') pour récupérer les nœuds à traduire.

+0

Malheureusement, nous n'avons tout simplement pas les moyens d'apporter des changements globaux à tout notre contenu, nous devons utiliser la recherche/remplacement global. – crosenblum

Questions connexes