par
kodjo » 07 oct. 2022, 13:27
Bonjour à tous,
J'ai créé une petite appli javascript qui parse un document HTML et traduit les mots trouvés d'une langue à une autre.
Le script charge des fichiers JSON et fait la traduction avec une expression régulière.
Voici l'expression régulière que j'utilise:
Code : Tout sélectionner
let html = "...mon code HTML...";
let k = "motARemplacer";
let v = "motDeRemplacement";
let regex = new RegExp(`\\b${k}\\b`, 'g');
html = html.replace(regex, v);
Ca marche très bien pour les mots isolés et me transforme par exemple "Red" en "Rouge" pour une traduction anglais vers français. Le problème survient pour la traduction de phrases. Par exemple, "Red car" est transformé en "Rouge car".
Dans mon fichier JSON français, j'ai bien sûr "Voiture rouge". Mais ceci n'est pas utilisé car "Red car" a précédemment été transformé en "Rouge car".
Comment puis-je ajuster mon regex pour prendre en compte la différence entre "Red" et "Red car"? A savoir, traduire "Red" en "Rouge", mais ne pas traduire (ignorer) "Red car"?
En vous remerciant pour vos réponses.