Regex de traduction imparfait
Posté : 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:
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.
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);
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.