Index: gc_lang/fr/rules.grx ================================================================== --- gc_lang/fr/rules.grx +++ gc_lang/fr/rules.grx @@ -6318,10 +6318,19 @@ TEST: {{hors}}, nous y coryons malgré tout ce qu’on peut en dire. TEST: {{Hors}} il y a tant à faire depuis que nous sommes arrivés en ces lieux. TEST: Hors nous, personne ne sait ce qui s’est passé là-bas. TEST: Le peuple se sent hors jeu. + +# l’issue +__conf_l_issue__ + l’ issu + <<- /conf/ -2>> issue # Confusion. Le nom “issue” est féminin. + +TEST: à l’{{issu}} de la partie. + + # jeune / jeûne __conf_jeune__ très >jeûne <<- /conf/ -2>> =\1.replace("û", "u") # Confusion. Le jeûne est une privation de nourriture.|https://fr.wiktionary.org/wiki/jeune @@ -7352,11 +7361,11 @@ __conf_voir_voire__ voir [grand|petit|rouge] <<- %2>> voir @:A¬:[NGM] - <<- /conf/ not \2.istitle() and not morph(<1, ":O[os]|>(?:[ndmts]e|falloir|pouvoir|savoir|de)/") + <<- /conf/ not \2.istitle() and not morph(<1, ":O[os]|>(?:[ndmts]e|falloir|pouvoir|savoir|de|à)/") and not before("(?i)\\b[ndmts](?:e |’(?:en |y ))(?:pas |jamais |) *$") -1>> voir # Confusion probable : “voir” est un verbe concernant la perception visuelle. Pour signifier “et même possiblement”, écrivez :|https://fr.wiktionary.org/wiki/voire [comme|lorque|puisque|quand|que|quoique|si] (voire) [ni|et|par|pour|sans] (voire) @@ -7380,10 +7389,11 @@ TEST: l’immobilier a été ces dernières années l’investissement le plus rentable (voir graphique ci-dessous) TEST: elles sont pas mal ainsi, voire élégantes pourrait-on dire. TEST: il y en a peu, voire très peu. TEST: car elles pénètrent dans les poumons voire le système sanguin. TEST: des enfants malades, qui préfèrent souvent voir Dark Vador que des vieux clowns un peu flippants. +TEST: les membres de l’équipage commencent à voir flou # vieil / vieux __conf_vieil_vieux_euphonie__ vieux homme @@ -11142,16 +11152,24 @@ [quels|quelles] [est|étais|était|sera|serais|serait|fut|fût|fus] <<- /gn/ not value(<1, "|tels|telles|") -1>> =\1[:-1] # Accord de nombre erroné avec “\2”. __gn_quel_accord_être_sujet__ - quel [est|était|seras|sera|serais|serait|fut|fût|fus] [la|cette|mon|ton|son|ma|ta|sa|notre|votre|leur] *WORD + quel [est|était|seras|sera|serais|serait|fut|fût|fus] [la|cette|ma|ta|sa] *WORD + <<- /gn/ not value(<1, "|tel|telle|") and morph(\4, ":[NA].*:[fe]", ":m") + -1>> quelle # Accord de genre erroné avec « \3 \4 ». + + quel [est|était|seras|sera|serais|serait|fut|fût|fus] [mon|ton|son|notre|votre|leur] *WORD <<- /gn/ not value(<1, "|tel|telle|") and morph(\4, ":[NA].*:f", ":[me]") -1>> quelle # Accord de genre erroné avec « \3 \4 ». __gn_quelle_accord_être_sujet__ - quelle [est|était|seras|sera|serais|serait|fut|fût|fus] [le|ce|cet|mon|ton|son|notre|votre|leur] *WORD + quelle [est|était|seras|sera|serais|serait|fut|fût|fus] [le|ce|cet] *WORD + <<- /gn/ not value(<1, "|tel|telle|") and morph(\4, ":[NA].*:[me]", ":f") + -1>> quel # Accord de genre erroné avec « \3 \4 ». + + quelle [est|était|seras|sera|serais|serait|fut|fût|fus] [mon|ton|son|notre|votre|leur] *WORD <<- /gn/ not value(<1, "|tel|telle|") and morph(\4, ":[NA].*:m", ":[fe]") -1>> quel # Accord de genre erroné avec « \3 \4 ». __gn_quels_accord_être_sujet__ quels [sont|étaient|seront|serons|seraient|furent|fussent] [les|ces|mes|tes|ses|nos|vos|leurs] *WORD @@ -11167,10 +11185,12 @@ TEST: {{Quel}} est cette force ? ->> Quelle TEST: {{Quelle}} est mon animal favori ? ->> Quel TEST: {{Quels}} sont ces femmes ? ->> Quelles TEST: {{Quelles}} est cette imbécillité ? ->> Quelle TEST: {{Quelles}} sont ces hommes ? ->> Quels +TEST: {{Quel}} est la politique ? ->> Quelle +TEST: {{Quelle}} est le politique ? ->> Quel TEST: Il s’agit de définir quelle est notre propre orientation. #### Quel(le) que soit … @@ -12104,12 +12124,16 @@ <<- /conf/ -1>> ère # Confusion. L’aire est une surface. L’air est un gaz, une apparence ou une musique. Pour évoquen une époque, écrivez “ère”. l’ [aire|ère] du temps <<- /conf/ -2>> air # Confusion probable. Locution “l’air du temps”.|https://fr.wiktionary.org/wiki/%C3%AAtre_dans_l%E2%80%99air_du_temps + >avoir l’ [aire|ère] [de|d’] + <<- /conf/ -3>> air # Confusion probable. La locution “avoir l’air de” signifie “sembler”, “paraître”…|https://fr.wiktionary.org/wiki/avoir_l%E2%80%99air + TEST: L’{{aire}} du pétrole n’est pas encore terminée. TEST: Ce sera un jour dans l’{{ère}} du temps +TEST: il a l’{{aire}} d’un plouc. # auspice / hospice __conf_auspices_hospices__ sous [les|de|des|ces] ?*WORD¿ (hospices) @@ -17055,10 +17079,11 @@ TEST: Comment vous expliquez ça ? TEST: Comment vous expliquer ça ? TEST: le général n’en aura cure TEST: n’en avoir cure et faire comme si de rien n’était. TEST: Comme d’habitude, ils ont tout fait à l’arrache. +TEST: tout un système pour justifier que “nous” avons toujours raison et que nous ne pouvons jamais avoir tort. !!! Tests historiques !! ## Version 0.5.14 Index: gc_lang/fr/webext/manifest.json ================================================================== --- gc_lang/fr/webext/manifest.json +++ gc_lang/fr/webext/manifest.json @@ -114,11 +114,13 @@ "description": "Ouvre l’éditeur lexical" } }, "web_accessible_resources": [ - "grammalecte/_dictionaries/French.json", + "grammalecte/graphspell/_dictionaries/fr-allvars.json", + "grammalecte/graphspell/_dictionaries/fr-classic.json", + "grammalecte/graphspell/_dictionaries/fr-reform.json", "grammalecte/fr/conj_data.json", "grammalecte/fr/mfsp_data.json", "grammalecte/fr/phonet_data.json", "grammalecte/fr/tests_data.json", "img/logo-16.png" Index: graphspell-js/ibdawg.js ================================================================== --- graphspell-js/ibdawg.js +++ graphspell-js/ibdawg.js @@ -146,11 +146,11 @@ throw RangeError("# Error. Unknown dictionary compression method: " + this.nCompressionMethod); } // to get the value of an arc, to get the char of an arc with its value this.dChar = helpers.objectToMap(this.dChar); this.dCharVal = this.dChar.gl_reverse(); - this.a2grams = new Set(this.l2grams); + this.a2grams = (this.l2grams) ? new Set(this.l2grams) : null; if (this.cStemming == "S") { this.funcStemming = str_transform.changeWordWithSuffixCode; } else if (this.cStemming == "A") { this.funcStemming = str_transform.changeWordWithAffixCode; @@ -412,10 +412,13 @@ } isNgramsOK (sChars) { if (sChars.length != 2) { return true; + } + if (!this.a2grams) { + return true; } return this.a2grams.has(sChars); } * _getCharArcs (iAddr) { Index: graphspell/ibdawg.py ================================================================== --- graphspell/ibdawg.py +++ graphspell/ibdawg.py @@ -188,11 +188,11 @@ def _initJSON (self, oJSON): "initialize with a JSON text file" self.__dict__.update(oJSON) self.byDic = binascii.unhexlify(self.sByDic) self.dCharVal = { v: k for k, v in self.dChar.items() } - self.a2grams = set(self.l2grams) + self.a2grams = set(self.l2grams) if hasattr(self, 'l2grams') else None def getInfo (self): "return string about the IBDAWG" return " Language: {0.sLangName} Lang code: {0.sLangCode} Dictionary name: {0.sDicName}" \ " Compression method: {0.nCompressionMethod:>2} Date: {0.sDate} Stemming: {0.cStemming}FX\n" \ @@ -356,10 +356,12 @@ for sRepl in cp.dFinal1.get(sRemain, ()): self._suggest(oSuggResult, sRepl, nMaxSwitch, nMaxDel, nMaxHardRepl, nMaxJump, nDist, nDeep+1, iAddr, sNewWord, True) def isNgramsOK (self, sChars): if len(sChars) != 2: + return True + if not self.a2grams: return True return sChars in self.a2grams #@timethis def suggest2 (self, sWord, nSuggLimit=10):