Overview
Comment: | merge trunk |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | multid |
Files: | files | file ages | folders |
SHA3-256: |
a973e9aad8540796bf2cfd8da96bf8fe |
User & Date: | olr on 2018-02-28 07:50:45 |
Other Links: | branch diff | manifest | tags |
Context
2018-02-28
| ||
10:34 | [graphspell][py] ibdawg: init directly from an object (JSON) check-in: efd7bb0171 user: olr tags: graphspell, multid | |
07:50 | merge trunk check-in: a973e9aad8 user: olr tags: multid | |
07:43 | [fx] About panel: add origin to website hyperlink check-in: a890bfa884 user: olr tags: trunk, fx | |
06:03 | [lo] lexicon editor ui: widen space for labels check-in: db28345207 user: olr tags: lo, multid | |
Changes
Modified CHANGELOG.txt from [bdd168ce5d] to [edaa15286b].
︙ | ︙ | |||
13 14 15 16 17 18 19 | Pass 1: paragraph by paragraph Pass 2: sentence by sentence Text preprocessor between the two passes Error positioning (by group selection) ## 0.3 Multi-passes engine | | | | | < > | | > > > > > > > | 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | Pass 1: paragraph by paragraph Pass 2: sentence by sentence Text preprocessor between the two passes Error positioning (by group selection) ## 0.3 Multi-passes engine [fr] Dictionary switcher [fr] Text formatter [fr] Lexicographer [fr] French Conjugueur ## 0.4 Simpler user options writing [fr] Suggestion mechanisms [fr] Application Launcher [fr] Author field edition ## 0.5 Grammalecte is an autonomous package, free from Hunspell and LibreOffice Indexable binary dictionary (DAWG-FSA) generator Disambiguator Multi-actions rules (bi-passes engine again) Simpler options for word boundaries Unit tests New engine written in JavaScript [fr] Extension for Firefox [fr] Extension for Thunderbird ## 0.6 [fr] Extension for Firefox converted to WebExtension [fr] Enumerator of words |
Modified gc_lang/fr/rules.grx from [4b78e905cb] to [d209c32a20].
︙ | ︙ | |||
4221 4222 4223 4224 4225 4226 4227 4228 4229 4230 4231 4232 4233 4234 | # qu’elle / quelle __[i]/conf(conf_quelle_nom_adj)__ (qu elles?) +(?!seule?s?)({w_2}) @@0,$ <<- morphex(\2, ":[NAQ]", ":(?:G|[123][sp]|W)") -1>> =\1.replace(" ", "") # Confusion probable. Ex : Quelle femme ! Je crois qu’elle réussira. TEST: {{qu’elle}} emmerdeuse. # savoir / ignorer __[i]/conf(être_pas_sans_savoir)__ ({etre}) pas sans (ignor(?:e[rz]|ée?s?|ai[st])) @@0,$ <<- morph(\1, ":V0e", False) -2>> savoir # Confusion : vous écrivez l’inverse de ce que vous voulez dire.|http://fr.wiktionary.org/wiki/vous_n%E2%80%99%C3%AAtes_pas_sans_savoir | > > > > > > > > > > > > > > > > > > > > > > > > > > | 4221 4222 4223 4224 4225 4226 4227 4228 4229 4230 4231 4232 4233 4234 4235 4236 4237 4238 4239 4240 4241 4242 4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260 | # qu’elle / quelle __[i]/conf(conf_quelle_nom_adj)__ (qu elles?) +(?!seule?s?)({w_2}) @@0,$ <<- morphex(\2, ":[NAQ]", ":(?:G|[123][sp]|W)") -1>> =\1.replace(" ", "") # Confusion probable. Ex : Quelle femme ! Je crois qu’elle réussira. TEST: {{qu’elle}} emmerdeuse. __[i]/conf(conf_qu_elle_verbe)__ (quelles?) +({w_1}) @@0,$ <<- \2.islower() and (morphex(\2, ":V|>(?:ne?|me?|te?|se?|[nv]ous|l(?:e|a|es|ui|leur|)|en|y) ", ":[NA].*:[fe]") or \2 == "t" or \2 == "s") >>> <<- \1.endswith("e") and not morph(\2, ":V0e", False) -1>> qu’elle # Confusion. Le sujet “elle” doit être séparée de la conjonction “que”. 1 <<- __else__ and \1.endswith("s") and not morph(\2, ":V0e", False) -1>> qu’elles # Confusion. Le sujet “elles” doit être séparée de la conjonction “que”. 2 <<- __else__ and morph(\2, ":V0e", False) and morphex(word(1), ":[QA]", ":G", False) >>> <<- \1.endswith("e") -1>> qu’elle # Confusion. Le sujet “elle” doit être séparée de la conjonction “que”. 3 <<- __else__ and \1.endswith("s") -1>> qu’elles # Confusion. Le sujet “elles” doit être séparée de la conjonction “que”. 4 TEST: Je sais {{quelle}} est partie. TEST: {{Quelle}} partit prendre son repas à la cantine, je n’en avais cure. TEST: Il se plaint {{quelle}} ne nous dit rien. TEST: {{Quelles}} sont intelligentes, ces filles-là. TEST: {{Quelle}} a du répondant, cette gamine ! TEST: {{Quelle}} y vienne, on verra ce qu’elle vaut. TEST: Je veux {{quelles}} s’efforcent à y parvenir. TEST: {{Quelle}} l’apprenne un jour, on n’y peut rien. TEST: Je crois {{quelle}} n’en sait pas assez pour nous nuire. TEST: {{Quelles}} t’arrivent seulement à la cheville, voilà qui serait étonnant. TEST: {{Quelles}} m’engueulent encore une seule fois et elles vont le regretter. TEST: Je crois {{quelle}} est partie. TEST: il pense {{quelles}} sont devenues dangereuses. TEST: Quelle est sa passion ? TEST: Quelles sont leurs principales études ? # savoir / ignorer __[i]/conf(être_pas_sans_savoir)__ ({etre}) pas sans (ignor(?:e[rz]|ée?s?|ai[st])) @@0,$ <<- morph(\1, ":V0e", False) -2>> savoir # Confusion : vous écrivez l’inverse de ce que vous voulez dire.|http://fr.wiktionary.org/wiki/vous_n%E2%80%99%C3%AAtes_pas_sans_savoir |
︙ | ︙ | |||
10360 10361 10362 10363 10364 10365 10366 | # ->> fait \1 # Le participe passé de faire reste au masculin singulier s’il est suivi par un verbe à l’infinitif. __[i](p_les_avoir_fait_vinfi)__ les ({avoir}) +(fait) +(?:[mts](?:e +|’)|)({infi}) @@w,w,$ <<- morph(\1, ">avoir ", False) and morph(\3, ":Y", False) ~2>> _ __[i]/ppas(ppas_pronom_avoir)__ (?:j’|je |tu |ils? |elles? |on |et )(?:ne +|n’|l(?:ui|eur) +|)({avoir}) +({w_2}) @@w,$ | | > | > | > | 10386 10387 10388 10389 10390 10391 10392 10393 10394 10395 10396 10397 10398 10399 10400 10401 10402 10403 10404 10405 10406 10407 10408 10409 10410 10411 10412 10413 10414 10415 10416 10417 10418 10419 10420 10421 10422 10423 10424 10425 10426 10427 10428 10429 10430 10431 10432 10433 10434 10435 10436 | # ->> fait \1 # Le participe passé de faire reste au masculin singulier s’il est suivi par un verbe à l’infinitif. __[i](p_les_avoir_fait_vinfi)__ les ({avoir}) +(fait) +(?:[mts](?:e +|’)|)({infi}) @@w,w,$ <<- morph(\1, ">avoir ", False) and morph(\3, ":Y", False) ~2>> _ __[i]/ppas(ppas_pronom_avoir)__ (?:j’|je |tu |ils? |elles? |on |et )(?:ne +|n’|l(?:ui|eur) +|)({avoir}) +({w_2}) @@w,$ <<- not re.search("(?i)^(?:barre|confiance|cours|envie|peine|prise|crainte|cure|affaire|hâte|force|recours)$", \2) and morph(word(-1), ">(?:comme|et|lorsque?|mais|o[uù]|puisque?|qu(?:oique?|i|and)|si(?:non|)) ", False, True) and morph(\1, ":V0a", False) and not \2.isupper() and morphex(\2, ":(?:[123][sp]|Q.*:[fp])", ":(?:G|W|Q.*:m:[si])") -2>> =suggMasSing(@) # Ce verbe devrait être un participe passé au masculin singulier.|http://fr.wikipedia.org/wiki/Accord_du_participe_pass%C3%A9_en_fran%C3%A7ais TEST: ils leur avaient {{donnés}} du fil à retordre. TEST: il a {{affronte}} une bande de voleurs de bétail TEST: J’ai {{mettrai}} du sel. ->> mis TEST: J’ai {{lut}} son journal. ->> lu TEST: Ils avaient barre sur lui. TEST: Si j’avais {{sut}}. __[i]/ppas(ppas_nous_vous_avoir)__ ([nv]ous) +(?:ne +|n’|l(?:ui|eur) +|)({avoir}) +({w_2}) @@0,w,$ <<- morph(\1, ":Os", False) and not re.search("(?i)^(?:barre|confiance|cours|envie|peine|prise|crainte|cure|affaire|hâte|force|recours)$", \3) and morph(word(-1), ">(?:comme|et|lorsque?|mais|o[uù]|puisque?|qu(?:oique?|i|and)|si(?:non|)) ", False, True) and morph(\2, ":V0a", False) and not \3.isupper() and morphex(\3, ":(?:[123][sp]|Q.*:[fp])", ":(?:G|W|Q.*:m:[si])") -3>> =suggMasSing(@) # Ce verbe devrait être un participe passé au masculin singulier.|http://fr.wikipedia.org/wiki/Accord_du_participe_pass%C3%A9_en_fran%C3%A7ais TEST: Nous avons {{donne}} tout notre potentiel. TEST: mais nous avons {{était}} surpris par cette annonce. TEST: D’un côté, le modèle occidental, […], nous a libérés de […] __[i]/ppas(ppas_det_nom_avoir)__ (l(?:’|es? |a |eurs )|ce(?:s|tte|t|rtaine?s|) |des |quelques |[mts](?:es|on|a) |[nv]o(?:s|tre) ) *({w_2}) +(?:ne +|n’|l(?:ui|eur) +|)({avoir}) +({w_2}) @@0,w,w,$ <<- not re.search("(?i)^(?:barre|confiance|cours|envie|peine|prise|crainte|cure|affaire|hâte|force|recours)$", \4) and morph(word(-1), ">(?:comme|et|lorsque?|mais|o[uù]|puisque?|qu(?:oique?|i|and)|si(?:non|)) ", False, True) and not morph(\2, ":G", False) and morph(\3, ":V0a", False) and not \4.isupper() and morphex(\4, ":(?:[123][sp]|Q.*:[fp])", ":(?:G|W|Q.*:m:[si])") and not (\3 == "avions" and morph(\4, ":3[sp]", False)) -4>> =suggMasSing(@) # Ce verbe devrait être un participe passé au masculin singulier.|http://fr.wikipedia.org/wiki/Accord_du_participe_pass%C3%A9_en_fran%C3%A7ais TEST: Les femmes lui avait {{conseillées}} de se taire. TEST: le mur avait {{était}} détruit TEST: Lorsque les femmes ont {{apprit}} la nouvelle… TEST: Certains les ont d’abord jugés trop lents. __[i]/ppas(ppas_les_avoir)__ les +({avoir}) +({w_1}(?:[éiut]e?|is|se)) @@w,$ <<- morph(\1, ":V0a", False) and morphex(\2, ":V[0-3]..t.*:Q.*:s", ":[GWpi]") -2>> =suggPlur(@) |
︙ | ︙ |
Modified gc_lang/fr/webext/panel/main.html from [2d4092fcfc] to [2f5e7b7df9].
︙ | ︙ | |||
30 31 32 33 34 35 36 | <section id="home_page" class="page"> <div id="mainlogo"> <div class="center"><img src="../img/logo120_text.png" alt="Grammalecte"></div> <p class="underline center"> Version ${version} </p> | | | 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | <section id="home_page" class="page"> <div id="mainlogo"> <div class="center"><img src="../img/logo120_text.png" alt="Grammalecte"></div> <p class="underline center"> Version ${version} </p> <p id="link_website" class="link center" data-url="http://grammalecte.net/?from=grammalecte-fx">Site web</p> <p class="notice center"> Grammalecte est un correcteur grammatical open source sous <span id="link_gpl" class="link" data-url="https://www.gnu.org/licenses/gpl.html">licence GPL 3</span> </p> </div> <div id="thanks"> <p class="center" data-l10n-id="thanks1">Grammalecte remercie</p> |
︙ | ︙ |
Modified graphspell-js/char_player.js from [c171c18615] to [8f9100bd09].
︙ | ︙ | |||
235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 | ["AN", ["AM", "EN", "EM"]], ["au", ["eau", "o", "ô"]], ["AU", ["EAU", "O", "Ô"]], ["em", ["an", "am", "en"]], ["EM", ["AN", "AM", "EN"]], ["en", ["an", "am", "em"]], ["EN", ["AN", "AM", "EM"]], ["ai", ["ei", "é", "è", "ê", "ë"]], ["AI", ["EI", "É", "È", "Ê", "Ë"]], ["ei", ["ai", "é", "è", "ê", "ë"]], ["EI", ["AI", "É", "È", "Ê", "Ë"]], ["ch", ["sh", "c", "ss"]], ["CH", ["SH", "C", "SS"]], ["ct", ["x", "cc"]], ["CT", ["X", "CC"]], ["oa", ["oi",]], ["OA", ["OI",]], ["oi", ["oa", "oie"]], ["OI", ["OA", "OIE"]], ["ph", ["f",]], ["PH", ["F",]], ["qu", ["q", "cq", "ck", "c", "k"]], ["QU", ["Q", "CQ", "CK", "C", "K"]], ["ss", ["c", "ç"]], | > > > > | 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 | ["AN", ["AM", "EN", "EM"]], ["au", ["eau", "o", "ô"]], ["AU", ["EAU", "O", "Ô"]], ["em", ["an", "am", "en"]], ["EM", ["AN", "AM", "EN"]], ["en", ["an", "am", "em"]], ["EN", ["AN", "AM", "EM"]], ["ae", ["æ", "é"]], ["AE", ["Æ", "É"]], ["ai", ["ei", "é", "è", "ê", "ë"]], ["AI", ["EI", "É", "È", "Ê", "Ë"]], ["ei", ["ai", "é", "è", "ê", "ë"]], ["EI", ["AI", "É", "È", "Ê", "Ë"]], ["ch", ["sh", "c", "ss"]], ["CH", ["SH", "C", "SS"]], ["ct", ["x", "cc"]], ["CT", ["X", "CC"]], ["oa", ["oi",]], ["OA", ["OI",]], ["oe", ["œ",]], ["OE", ["Œ",]], ["oi", ["oa", "oie"]], ["OI", ["OA", "OIE"]], ["ph", ["f",]], ["PH", ["F",]], ["qu", ["q", "cq", "ck", "c", "k"]], ["QU", ["Q", "CQ", "CK", "C", "K"]], ["ss", ["c", "ç"]], |
︙ | ︙ |
Modified graphspell/char_player.py from [e841b9211a] to [729262507c].
︙ | ︙ | |||
224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 | "AN": ("AM", "EN", "EM"), "au": ("eau", "o", "ô"), "AU": ("EAU", "O", "Ô"), "em": ("an", "am", "en"), "EM": ("AN", "AM", "EN"), "en": ("an", "am", "em"), "EN": ("AN", "AM", "EM"), "ai": ("ei", "é", "è", "ê", "ë"), "AI": ("EI", "É", "È", "Ê", "Ë"), "ei": ("ai", "é", "è", "ê", "ë"), "EI": ("AI", "É", "È", "Ê", "Ë"), "ch": ("sh", "c", "ss"), "CH": ("SH", "C", "SS"), "ct": ("x", "cc"), "CT": ("X", "CC"), "oa": ("oi",), "OA": ("OI",), "oi": ("oa", "oie"), "OI": ("OA", "OIE"), "ph": ("f",), "PH": ("F",), "qu": ("q", "cq", "ck", "c", "k"), "QU": ("Q", "CQ", "CK", "C", "K"), "ss": ("c", "ç"), | > > > > | 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 | "AN": ("AM", "EN", "EM"), "au": ("eau", "o", "ô"), "AU": ("EAU", "O", "Ô"), "em": ("an", "am", "en"), "EM": ("AN", "AM", "EN"), "en": ("an", "am", "em"), "EN": ("AN", "AM", "EM"), "ae": ("æ", "é"), "AE": ("Æ", "É"), "ai": ("ei", "é", "è", "ê", "ë"), "AI": ("EI", "É", "È", "Ê", "Ë"), "ei": ("ai", "é", "è", "ê", "ë"), "EI": ("AI", "É", "È", "Ê", "Ë"), "ch": ("sh", "c", "ss"), "CH": ("SH", "C", "SS"), "ct": ("x", "cc"), "CT": ("X", "CC"), "oa": ("oi",), "OA": ("OI",), "oe": ("œ",), "OE": ("Œ",), "oi": ("oa", "oie"), "OI": ("OA", "OIE"), "ph": ("f",), "PH": ("F",), "qu": ("q", "cq", "ck", "c", "k"), "QU": ("Q", "CQ", "CK", "C", "K"), "ss": ("c", "ç"), |
︙ | ︙ |