Index: gc_lang/fr/modules-js/gce_suggestions.js ================================================================== --- gc_lang/fr/modules-js/gce_suggestions.js +++ gc_lang/fr/modules-js/gce_suggestions.js @@ -523,13 +523,15 @@ let sSfx; if (bVC) { [sWord, sSfx] = splitVerb(sWord); } let aSugg = phonet.selectSimil(sWord, sPattern); - for (let sMorph of _oSpellChecker.getMorph(sWord)) { - for (let e of conj.getSimil(sWord, sMorph, bSubst)) { - aSugg.add(e); + if (aSugg.size === 0 || !bSubst) { + for (let sMorph of _oSpellChecker.getMorph(sWord)) { + for (let e of conj.getSimil(sWord, sMorph, bSubst)) { + aSugg.add(e); + } } } if (aSugg.size > 0) { if (bVC) { return Array.from(aSugg).map((sSugg) => { return sSugg + sSfx; }).join("|"); Index: gc_lang/fr/modules/gce_suggestions.py ================================================================== --- gc_lang/fr/modules/gce_suggestions.py +++ gc_lang/fr/modules/gce_suggestions.py @@ -402,13 +402,14 @@ def suggSimil (sWord, sPattern=None, bSubst=False, bVC=False): "return list of words phonetically similar to sWord and whom POS is matching sPattern" if bVC: sWord, sSfx = splitVerb(sWord) aSugg = phonet.selectSimil(sWord, sPattern) - for sMorph in _oSpellChecker.getMorph(sWord): - aSugg.update(conj.getSimil(sWord, sMorph, bSubst)) - break + if not aSugg or not bSubst: + for sMorph in _oSpellChecker.getMorph(sWord): + aSugg.update(conj.getSimil(sWord, sMorph, bSubst)) + break if aSugg: if bVC: aSugg = list(map(lambda sSug: sSug + sSfx, aSugg)) return "|".join(aSugg) return ""