Grammalecte  Check-in [2be81f7ac3]

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:[fr] règles d’euphonie: ajustements + nouvelle option
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk | fr
Files: files | file ages | folders
SHA3-256: 2be81f7ac37d3d42cdc30a4397cb5cefd48df3b92c095d039f0517b193967c5d
User & Date: olr 2020-06-01 10:14:35
Context
2020-06-01
15:10
[core][js] isupper() -> false if only digits check-in: cb10add01f user: olr tags: core, trunk
10:14
[fr] règles d’euphonie: ajustements + nouvelle option check-in: 2be81f7ac3 user: olr tags: fr, trunk
2020-05-31
08:38
[fr] reconstruction des dictionnaires check-in: b96893d572 user: olr tags: fr, trunk, v1.10.0
Changes

Changes to gc_lang/fr/rules.grx.

35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
..
70
71
72
73
74
75
76

77
78
79
80
81
82
83
84
85
86
...
132
133
134
135
136
137
138


139
140
141
142
143
144
145
146
147
148
...
184
185
186
187
188
189
190

191
192
193
194
195
196
197
...
233
234
235
236
237
238
239

240
241
242
243
244
245
246
....
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
....
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025



2026
2027
2028
2029
2030
2031
2032
....
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
....
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557

3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579

3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590



























































3591
3592
3593
3594
3595
3596
3597
....
5602
5603
5604
5605
5606
5607
5608
5609
5610
5611
5612
5613
5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
....
9568
9569
9570
9571
9572
9573
9574
9575
9576
9577
9578
9579




9580
9581
9582
9583
9584
9585
9586
9587
9588
9589







9590
9591
9592

9593



9594
9595
9596
9597
9598
9599
9600




9601
9602
9603
9604
9605

9606
9607
9608
9609
9610
9611
9612
....
9677
9678
9679
9680
9681
9682
9683
9684
9685
9686
9687
9688
9689
9690
9691
9692
9693
9694
9695
9696
9697
9698
9699
9700
9701
9702
.....
11492
11493
11494
11495
11496
11497
11498
11499
11500
11501
11502
11503
11504
11505
11506
11507
11508
11509
11510
11511
11512
11513
11514
11515
11516
11517
11518
!! Options                                                                                        !!
!!
!!

OPTGROUP/basic: typo apos eepi, esp tab, nbsp unit, tu maj, num nf, virg poncfin, ocr chim, liga mapos
OPTGROUP/gramm: conf sgpl gn
OPTGROUP/verbs: infi conj ppas, imp inte vmode
OPTGROUP/style: bs pleo, redon1 redon2, neg
OPTGROUP/misc: date mc
OPTGROUP/debug: idrule

# Names of options is used in dictionaries keys: dOptPython, dOptJavaScript, etc.
OPTSOFTWARE:        Python      Server      Writer      JavaScript  Firefox     Thunderbird
OPT/typo:           True        True        True        True        True        True
OPT/apos:           True        True        True        True        True        True
................................................................................
OPT/conj:           True        True        True        True        True        True
OPT/ppas:           True        True        True        True        True        True
OPT/imp:            True        True        True        True        True        True
OPT/inte:           True        True        True        True        True        True
OPT/vmode:          True        True        True        True        True        True
OPT/bs:             True        True        True        True        True        True
OPT/pleo:           True        True        True        True        True        True

OPT/redon1:         False       False       False       False       False       False
OPT/redon2:         False       False       False       False       False       False
OPT/neg:            False       False       False       False       False       False
OPT/date:           True        True        True        True        True        True
OPT/mc:             False       False       False       False       False       False
OPT/idrule:         False       False       False       False       False       False
OPT/html:           False       False       False       True        True        True
OPT/latex:          True        False       False       False       False       False
OPT/md:             True        True        False       True        True        False

................................................................................
OPTCOLOR/conj:      fuschia     vert_vif
OPTCOLOR/ppas:      fuschia     vert_vif
OPTCOLOR/imp:       fuschia     vert_vif
OPTCOLOR/inte:      fuschia     vert_vif
OPTCOLOR/vmode:     fuschia     vert_vif
OPTCOLOR/bs:        cyan        cyan_vif
OPTCOLOR/pleo:      cyan        cyan_vif


OPTCOLOR/redon1:    cyan        cyan_vif
OPTCOLOR/redon2:    cyan        cyan_vif
OPTCOLOR/neg:       cyan        cyan_vif
OPTCOLOR/date:      cyan        cyan_vif
OPTCOLOR/mc:        cyan        cyan_vif

# Texte pour voir toutes les erreurs.
# Mardi, 26 janvier 2019. Lorsqu'il arrivas, et il      arriva épuisé, la journées était terminées, et et il n’y avais plus rien à mangé, hormis des baigner.         Quel décepption ce fut !
# [OCR] 11 faut être plus organisé, oui ?
# D'habitude, c'est l'organisateur qui s'occupe de ça.
................................................................................
OPTLABEL/inte:      Interrogatif|Vérifie les formes interrogatives et suggère de lier les pronoms personnels avec les verbes.
OPTLABEL/ppas:      Participes passés, adjectifs
OPTLABEL/vmode:     Modes verbaux

OPTLABEL/style:     Style
OPTLABEL/bs:        Populaire|Souligne un langage courant considéré comme erroné, comme « malgré que ».
OPTLABEL/pleo:      Pléonasmes|Repère des redondances sémantiques, comme « au jour d’aujourd’hui », « monter en haut », etc.

OPTLABEL/neg:       Adverbe de négation [!]|Ne … pas, ne … jamais, etc.
OPTLABEL/redon1:    Répétitions dans le paragraphe [!]|Sont exclus les mots grammaticaux, ceux commençant par une majuscule, ainsi que “être” et “avoir”.
OPTLABEL/redon2:    Répétitions dans la phrase [!]|Sont exclus les mots grammaticaux, ainsi que “être” et “avoir”.

OPTLABEL/misc:      Divers
OPTLABEL/mc:        Mots composés [!]|Vérifie si les mots composés à trait d’union existent dans le dictionnaire (hormis ceux commençant par ex-, mi-, quasi-, semi-, non-, demi- et d’autres préfixes communs).
OPTLABEL/date:      Validité des dates
................................................................................
OPTLABEL/inte:      Interrogative mood|Checks interrogative forms and suggests linking the personal pronouns with verbs.
OPTLABEL/ppas:      Past participles, adjectives|Checks subject agreement with past participles and adjectives.
OPTLABEL/vmode:     Verbal modes

OPTLABEL/style:     Style
OPTLABEL/bs:        Popular style|Underlines misuse of language though informal and commonly used.
OPTLABEL/pleo:      Pleonasms|Semantic replications, like « au jour d’aujourd’hui », « monter en haut », etc.

OPTLABEL/neg:       Negation adverb [!]|Ne … pas, ne … jamais, etc.
OPTLABEL/redon1:    Duplicates in paragraph [!]|Are excluded grammatical words, words beginning by a capital letter, and also “être” and “avoir”.
OPTLABEL/redon2:    Duplicates in sentence [!]|Are excluded grammatical words, and also “être” and “avoir”.

OPTLABEL/misc:      Miscellaneous
OPTLABEL/mc:        Compound words [!]|Check if words with hyphen exist in the dictionary (except those beginning by ex-, mi-, quasi-, semi-, non-, demi- and other common prefixes).
OPTLABEL/date:      Date validity.
................................................................................

__<i]/tu(tu_t_euphonique_incorrect)__
    ([-–—− ]t(?:[’' ][-–—−]?|[-–—−][’' ]?))(ie?ls?|elles?|on|tu)  @@0,$
        <<- re.search("(?i)^(?:ie?ls|elles|tu)$", \2) -1>> -    && Le “t” euphonique n’est pas nécessaire avec “\2”.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?T1=t+euphonique&id=2513
        <<- __else__ and \1 != "-t-" and \1 != "-T-" -1>> -t-   && Pour le “t” euphonique, il faut deux traits d’union. Pas d’apostrophe. Pas d’espace.
        <<- \1 != "-t-" ~1>> -t-
__<i]/tu(tu_t_euphonique_superflu)__
    [td]([- ]t[-’' ])(?:il|elle|on)  @@1
        <<- -1>> -                                              && Le “t” euphonique est superflu quand le verbe se termine par “t” ou “d”.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?T1=t+euphonique&id=2513
        <<- \1 != "-t-" ~1>> -t-
__<i]/tu(tu_t_euphonique_manquant)__
    [aec](-(il|elle|on))  @@1,2  <<- -1>> -t-\2                 && Il faut un “t” euphonique.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?T1=t+euphonique&id=2513

TEST: va{{ t’}}il y parvenir ?                          ->> -t-
TEST: A{{ t’}}elle soif ?                               ->> -t-
TEST: A{{ t-}}elle faim ?                               ->> -t-
TEST: a{{ t'}}elle                                      ->> -t-
TEST: a{{-t'}}il                                        ->> -t-
TEST: a{{-t }}il.                                       ->> -t-
................................................................................
        <<- ~>> ␣
        <<- =>> define(\1, ":LN:m:p")

    l’ une comme l’ autre
        <<- ~>> ␣
        <<- =>> define(\1, ":LN:f:p")

    [des|chaque|quelque|quelques|cet|cette|ces|mon|ma|ta|sa|mes|tes|ses|au|aux|notre|votre|nos|vos|leurs|aucun|aucune]  *WORD
        <<- not morph(\-1, ":V0") =>> exclude(\2, ":V")




    les  ~.es$
        <<- not value(<1, "|tu|ne|n’|me|m’|te|t’|se|s’|nous|vous|") and morph(\2, ":V1.*Ip.*:2s") and not tag_before(\1, "_2s_") and not value(>1, "|tu|pas|jamais|")
        =>> exclude(\2, ":V")

    [un|une]  *WORD
        <<- not value(<1, "|l’|quelqu’|quelqu|") and not value(\2, "|a|fut|fût|est|fait|") and not morph(\2, ":P") =>> exclude(\2, ":V")

................................................................................
__inte_verbes_composés_interrogatifs__
    ~\w-[jJ]e$
        <<- /inte/ morphVC(\1, ":V", ":1[sśŝ]") ->> =suggVerb(\1, ":1ś", None, True)                && Forme interrogative. Désaccord avec “je”. Le verbe n’est pas à la 1ʳᵉ personne du singulier.
        <<- /inte/ __else__ and not morphVC(\1, ":V") ->> =suggSimil(\1, ":1[sśŝ]", False, True)    && Forme interrogative. Désaccord avec “je”. Le verbe n’est pas à la 1ʳᵉ personne du singulier.
        <<- />> -je|_VCint_

    aie-je
        <<- /conj/ ->> ai-je                                                                        && Forme interrogative. N’employez pas le subjonctif présent.

    ~\w-[tT]u$
        <<- /inte/ morphVC(\1, ":V", ":[ISK].*:2s") ->> =suggVerb(\1, ":2s", None, True)            && Forme interrogative. Désaccord avec “tu”. Le verbe n’est pas à la 2ᵉ personne du singulier.
        <<- /inte/ __else__ and not morphVC(\1, ":V") ->> =suggSimil(\1, ":2s", False, True)        && Forme interrogative. Désaccord avec “tu”. Le verbe n’est pas à la 2ᵉ personne du singulier.
        <<- />> -tu|_VCint_

    ~\w-[iI]l$
................................................................................
#    ->> \1                                                                                          && Doublon.
#
#TEST: Il y a un {{doublon doublon}}.


!!
!!
!!!! Élisions                                                                                     !!
!!
!!


__typo_élisions_manquantes__
    [le|la|de]  ~^[aâeéêiîoôu].
        <<- /typo/ space_after(\1, 1, 1) and not re.search("(?i)^(?:onz[ei]|énième|iourte|ouistiti|ouate|one-?step|ouf|Ouagadougou|I(?:I|V|X|er|ᵉʳ|ʳᵉ|è?re))", \2) and not morph(\2, ":G")
        -1:.2>> =\1[0:1]+"’"                                                && Élision de l’article devant un mot commençant par une voyelle.|http://fr.wikipedia.org/wiki/Élision

    si [il|ils]
        <<- /typo/ space_after(\1, 1, 1) -1:.2>> s’                         && Il faut élider “si” et l’accoler au pronom.|http://fr.wikipedia.org/wiki/Élision

    que [il|ils|elle|elles|on|iel|iels]
        <<- /typo/ space_after(\1, 1, 1) -1:.2>> qu’                        && Il faut élider “que” et l’accoler au pronom.|http://fr.wikipedia.org/wiki/Élision

    se  ~^[aâeéêiîoôu].
        <<- /typo/ \1 != "SE" and space_after(\1, 1, 1) and morph(\2, ":V", ":Q")
        -1:.2>> s’                                                          && Il faut élider le pronom “se” et l’accoler au verbe.|http://fr.wikipedia.org/wiki/Élision

TEST: {{le }}amour                                                        ->> l’
TEST: {{la }}imagination                                                  ->> l’
TEST: {{de }}amour                                                        ->> d’
TEST: {{de }}est                                                          ->> d’
TEST: je crois que {{si }}ils viennent, ils seront mécontents
TEST: {{Que }}ils soient heureux
TEST: Il {{se }}avançait parmi eux.

TEST: J’ai passé une journée de ouf.


# ce -> cet
__typo_euphonie_cet__
    ce  ~^[aâeéêiîoôu]
        <<- /typo/ not re.search("(?i)^(?:onz|énième|ouf|énième|ouistiti|one-?step|I(?:I|V|X|er|ᵉʳ))", \2) and morph(\2, ":[NA].*:[me]")
        -1>> cet                                                                && Euphonie : “ce” devient “cet” devant un mot commençant par une voyelle.

TEST: {{ce}} animal est dangereux






























































!!
!!
!!!! Nombres ordinaux                                                                             !!
!!
!!
................................................................................
    [>ajourner|>différer|>reporter] à une date ultérieure
        <<- /pleo/ ->> \1                                                                           && Pléonasme.

TEST: {{Ajourner à une date ultérieure}}        ->> Ajourner
TEST: {{différer à une date ultérieure}}        ->> différer
TEST: {{reporter à plus tard}}                  ->> reporter



!!
!!
!!!! Tournures de langage                                                                         !!
!!
!!

# Mon, ton, son : euphonie
__gn_mon_ton_son_euphonie__
    [ma|ta|sa]  @>[aâeéèêiîoôuûyœæ].+:[NAQ].*:f¬:[eGW]
        <<- /gn/ -1>> =\1.replace("a", "on")                                && Même si « \2 » est féminin, on utilise « mon/ton/son » pour faire la liaison.|http://fr.wikipedia.org/wiki/Euphonie

TEST: {{ta}} aimée                                            ->> ton
TEST: {{ma}} obligée                                          ->> mon
TEST: Ce couple va donner à la France sa très importante collection qui rejoindra le musée d’Orsay



!!!
!!!
!!! Conjugaison                                                                                   !!
!!!
!!!
................................................................................
        <<- /conf/ ->> loin s’en faut               && Confusion probable. Cette locution s’écrit “loin s’en faut”.|https://fr.wiktionary.org/wiki/loin_s%E2%80%99en_faut

TEST: Ils n’étaient guère prêts à ça, {{loins sans faux}}.
TEST: Et les intellectuels ? En France comme ailleurs, tous n’ont pas, loin s’en faut, une pleine lucidité sur cette précarité galopante.


# m’a / ma
__conf_m_a_ma!6__
    [<start>|,|(]  tu  ma
        <<- /conf/ --1>> m’as                       && Confusion : “ma” est un déterminant possessif féminin. Pour le verbe “avoir” à la 2ᵉ personne précédé du pronom personnel ”me”, écrivez “m’as”.

    [il|ils|on]  ma




        <<- /conf/ morph(<1, "<start>|:C|>,/")
        --1>> m’a                                   && Confusion : “ma” est un déterminant possessif féminin. Pour le verbe “avoir” à la 3ᵉ personne précédé du pronom personnel ”me”, écrivez “m’a”.

    [ne|n’]  ma
        <<- /conf/ --1>> m’a                        && Confusion : “ma” est un déterminant possessif féminin. Pour le verbe “avoir” à la 3ᵉ personne précédé du pronom personnel ”me”, écrivez “m’a”.

    ça  ma  *WORD
        <<- /conf/ morph(<1, "<start>|:C|>,/") and analyse(\-1, ":(?:Q|V1.*:Y)", ":N.*:[fe]")
        -2>> m’a                                    && Confusion : “ma” est un déterminant possessif féminin. Pour le verbe “avoir” à la 3ᵉ personne précédé du pronom personnel ”me”, écrivez “m’a”.








TEST: tu {{ma}} prise par surprise                          ->> m’as
TEST: il {{ma}} tuée                                        ->> m’a
TEST: cette femme ne {{ma}} prise que deux fois             ->> m’a

TEST: ça {{ma}} {{foutu}} en l’air



TEST: ça ma grande, c’est mon secret


# m’ont / mon
__conf_m_ont!6__
    [il|ils]  mon
        <<- /conf/ morph(<1, "<start>|:C|>,/")




        --1>> m’ont                                 && Confusion : “mon” est un déterminant possessif. Pour le verbe “avoir” à la 3ᵉ personne du pluriel précédé du pronom personnel ”me”, écrivez “m’ont”.

    ne  mon
        <<- /conf/ --1>> m’ont                      && Confusion : “mon” est un déterminant possessif. Pour le verbe “avoir” à la 3ᵉ personne du pluriel précédé du pronom personnel ”me”, écrivez “m’ont”.


TEST: ils {{mon}} donné du fil à retordre, ces cons.        ->> m’ont
TEST: ces écarts ne {{mon}} posé aucun problème             ->> m’ont


# mai / mais
__conf_mai_mais_mes__
    [<start>|,|(]  mai  @:(?:Os|M)¬:3s
................................................................................
TEST: C’est la {{votre}} ?
TEST: {{nôtre}} père est si âgé.
TEST: {{vôtre}} chien a du mordant
TEST: nous vous proposons de faire vôtre une autre volonté
TEST: Elle récitait sans cesse des Notre Père.


# nouvel / nouveaux
__conf_nouvel_nouveau_euphonie__
    [un|le|ce|du|mon|ton|son|notre|votre|leur|quel]  nouveau  homme
        <<- /conf/ -2>> nouvel                                  && Euphonie. Utilisez “nouvel” pour un nom masculin singulier commençant par une voyelle ou un h.|https://fr.wikipedia.org/wiki/Euphonie

    [un|le|ce|du|mon|ton|son|notre|votre|leur|quel]  nouveau  ~^[aâeéiîou]
        <<- /conf/ morph(\3, ":[NA].*:[me]:s") -2>> nouvel      && Euphonie. Utilisez “nouvel” pour un nom masculin singulier commençant par une voyelle ou un h.|https://fr.wikipedia.org/wiki/Euphonie

TEST: ce {{nouveau}} homme
TEST: un {{nouveau}} élément relance l’enquête
TEST: il se sentait de nouveau homme
TEST: il se sentait à nouveau homme


# nulle part
__conf_nulle_part__
    nul part
        <<- /conf/ not morph(<1, ":D.*:m:[si]") ->> nulle part      && Confusion : pour dire “en aucun lieu”, écrivez “nulle part”.

................................................................................
TEST: ce pouvoir politique de décision que le mouvement souhaitait voir restauré
TEST: les groupes anti-avortement cherchant à faire adopter des lois qu’ils espèrent voir confirmées par la Cour suprême
TEST: à côté de nous voire avec nous
TEST: sans lui voire sans rien
TEST: il fait ça pour nous voire pour tout le monde


# vieil / vieux
__conf_vieil_vieux_euphonie__
    vieux  homme
        <<- /conf/ -1>> vieil                                   && Euphonie. Utilisez “vieil” pour un nom masculin singulier commençant par une voyelle ou un h.|https://fr.wikipedia.org/wiki/Euphonie

    vieux  ~^[aeéiîou]
        <<- /conf/ morph(\2, ":[NA].*:[me]:s", ":[123][sp]")
        -1>> vieil                                              && Euphonie. Utilisez “vieil” pour un nom masculin singulier commençant par une voyelle ou un h.|https://fr.wikipedia.org/wiki/Euphonie

TEST: ce {{vieux}} homme
TEST: c’est un {{vieux}} imbécile.
TEST: Le {{vieux}} homme était parti.                         ->> vieil
TEST: Diviser les jeunes et les vieux est un peu son fonds de commerce



!!!! Confusions de vocabulaire                                                                    !!

__conf_vocabulaire!5__
    [con+s] [>cul|cu|que] >pisse >anse







|







 







>
|
|
|







 







>
>


<







 







>







 







>







 







|


|
|







 







|


>
>
>







 







|







 







|



>
|
|
|



|


|

|
|
|








>




|
|
|
|



>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







 







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







 







|
|


|
>
>
>
>



|


|



>
>
>
>
>
>
>



>

>
>
>





|

>
>
>
>





>







 







<
<
<
<

<
<
<
<
<
<
<







 







<
<
<
<

<
<
<
<
<
<
<
<







35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
..
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
...
133
134
135
136
137
138
139
140
141
142
143

144
145
146
147
148
149
150
...
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
...
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
....
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
....
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
....
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
....
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
....
5670
5671
5672
5673
5674
5675
5676

















5677
5678
5679
5680
5681
5682
5683
....
9619
9620
9621
9622
9623
9624
9625
9626
9627
9628
9629
9630
9631
9632
9633
9634
9635
9636
9637
9638
9639
9640
9641
9642
9643
9644
9645
9646
9647
9648
9649
9650
9651
9652
9653
9654
9655
9656
9657
9658
9659
9660
9661
9662
9663
9664
9665
9666
9667
9668
9669
9670
9671
9672
9673
9674
9675
9676
9677
9678
9679
9680
9681
9682
9683
....
9748
9749
9750
9751
9752
9753
9754




9755







9756
9757
9758
9759
9760
9761
9762
.....
11552
11553
11554
11555
11556
11557
11558




11559








11560
11561
11562
11563
11564
11565
11566
!! Options                                                                                        !!
!!
!!

OPTGROUP/basic: typo apos eepi, esp tab, nbsp unit, tu maj, num nf, virg poncfin, ocr chim, liga mapos
OPTGROUP/gramm: conf sgpl gn
OPTGROUP/verbs: infi conj ppas, imp inte vmode
OPTGROUP/style: bs pleo, eleu neg, redon1 redon2
OPTGROUP/misc: date mc
OPTGROUP/debug: idrule

# Names of options is used in dictionaries keys: dOptPython, dOptJavaScript, etc.
OPTSOFTWARE:        Python      Server      Writer      JavaScript  Firefox     Thunderbird
OPT/typo:           True        True        True        True        True        True
OPT/apos:           True        True        True        True        True        True
................................................................................
OPT/conj:           True        True        True        True        True        True
OPT/ppas:           True        True        True        True        True        True
OPT/imp:            True        True        True        True        True        True
OPT/inte:           True        True        True        True        True        True
OPT/vmode:          True        True        True        True        True        True
OPT/bs:             True        True        True        True        True        True
OPT/pleo:           True        True        True        True        True        True
OPT/eleu:           True        True        True        True        True        True
OPT/neg:            False       False       False       False       False       False
OPT/redon1:         False       False       False       False       False       False
OPT/redon2:         False       False       False       False       False       False
OPT/date:           True        True        True        True        True        True
OPT/mc:             False       False       False       False       False       False
OPT/idrule:         False       False       False       False       False       False
OPT/html:           False       False       False       True        True        True
OPT/latex:          True        False       False       False       False       False
OPT/md:             True        True        False       True        True        False

................................................................................
OPTCOLOR/conj:      fuschia     vert_vif
OPTCOLOR/ppas:      fuschia     vert_vif
OPTCOLOR/imp:       fuschia     vert_vif
OPTCOLOR/inte:      fuschia     vert_vif
OPTCOLOR/vmode:     fuschia     vert_vif
OPTCOLOR/bs:        cyan        cyan_vif
OPTCOLOR/pleo:      cyan        cyan_vif
OPTCOLOR/eleu:      cyan        cyan_vif
OPTCOLOR/neg:       cyan        cyan_vif
OPTCOLOR/redon1:    cyan        cyan_vif
OPTCOLOR/redon2:    cyan        cyan_vif

OPTCOLOR/date:      cyan        cyan_vif
OPTCOLOR/mc:        cyan        cyan_vif

# Texte pour voir toutes les erreurs.
# Mardi, 26 janvier 2019. Lorsqu'il arrivas, et il      arriva épuisé, la journées était terminées, et et il n’y avais plus rien à mangé, hormis des baigner.         Quel décepption ce fut !
# [OCR] 11 faut être plus organisé, oui ?
# D'habitude, c'est l'organisateur qui s'occupe de ça.
................................................................................
OPTLABEL/inte:      Interrogatif|Vérifie les formes interrogatives et suggère de lier les pronoms personnels avec les verbes.
OPTLABEL/ppas:      Participes passés, adjectifs
OPTLABEL/vmode:     Modes verbaux

OPTLABEL/style:     Style
OPTLABEL/bs:        Populaire|Souligne un langage courant considéré comme erroné, comme « malgré que ».
OPTLABEL/pleo:      Pléonasmes|Repère des redondances sémantiques, comme « au jour d’aujourd’hui », « monter en haut », etc.
OPTLABEL/eleu:      Élisions et euphonies|Signale les élisions incorrectes et les tournures dysphoniques.
OPTLABEL/neg:       Adverbe de négation [!]|Ne … pas, ne … jamais, etc.
OPTLABEL/redon1:    Répétitions dans le paragraphe [!]|Sont exclus les mots grammaticaux, ceux commençant par une majuscule, ainsi que “être” et “avoir”.
OPTLABEL/redon2:    Répétitions dans la phrase [!]|Sont exclus les mots grammaticaux, ainsi que “être” et “avoir”.

OPTLABEL/misc:      Divers
OPTLABEL/mc:        Mots composés [!]|Vérifie si les mots composés à trait d’union existent dans le dictionnaire (hormis ceux commençant par ex-, mi-, quasi-, semi-, non-, demi- et d’autres préfixes communs).
OPTLABEL/date:      Validité des dates
................................................................................
OPTLABEL/inte:      Interrogative mood|Checks interrogative forms and suggests linking the personal pronouns with verbs.
OPTLABEL/ppas:      Past participles, adjectives|Checks subject agreement with past participles and adjectives.
OPTLABEL/vmode:     Verbal modes

OPTLABEL/style:     Style
OPTLABEL/bs:        Popular style|Underlines misuse of language though informal and commonly used.
OPTLABEL/pleo:      Pleonasms|Semantic replications, like « au jour d’aujourd’hui », « monter en haut », etc.
OPTLABEL/eleu:      Élisions et euphonies|Signale les élisions incorrectes et les tournures dysphoniques.
OPTLABEL/neg:       Negation adverb [!]|Ne … pas, ne … jamais, etc.
OPTLABEL/redon1:    Duplicates in paragraph [!]|Are excluded grammatical words, words beginning by a capital letter, and also “être” and “avoir”.
OPTLABEL/redon2:    Duplicates in sentence [!]|Are excluded grammatical words, and also “être” and “avoir”.

OPTLABEL/misc:      Miscellaneous
OPTLABEL/mc:        Compound words [!]|Check if words with hyphen exist in the dictionary (except those beginning by ex-, mi-, quasi-, semi-, non-, demi- and other common prefixes).
OPTLABEL/date:      Date validity.
................................................................................

__<i]/tu(tu_t_euphonique_incorrect)__
    ([-–—− ]t(?:[’' ][-–—−]?|[-–—−][’' ]?))(ie?ls?|elles?|on|tu)  @@0,$
        <<- re.search("(?i)^(?:ie?ls|elles|tu)$", \2) -1>> -    && Le “t” euphonique n’est pas nécessaire avec “\2”.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?T1=t+euphonique&id=2513
        <<- __else__ and \1 != "-t-" and \1 != "-T-" -1>> -t-   && Pour le “t” euphonique, il faut deux traits d’union. Pas d’apostrophe. Pas d’espace.
        <<- \1 != "-t-" ~1>> -t-
__<i]/tu(tu_t_euphonique_superflu)__
    [td]([- ]t[-’' ])(?:ie?l|elle|on)  @@1
        <<- -1>> -                                              && Le “t” euphonique est superflu quand le verbe se termine par “t” ou “d”.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?T1=t+euphonique&id=2513
        <<- \1 != "-t-" ~1>> -t-
__<i]/eleu(eleu_t_euphonique_manquant)__
    [aec](-(ie?l|elle|on))  @@1,2  <<- -1>> -t-\2               && Euphonie. Il faut un “t” euphonique.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?T1=t+euphonique&id=2513

TEST: va{{ t’}}il y parvenir ?                          ->> -t-
TEST: A{{ t’}}elle soif ?                               ->> -t-
TEST: A{{ t-}}elle faim ?                               ->> -t-
TEST: a{{ t'}}elle                                      ->> -t-
TEST: a{{-t'}}il                                        ->> -t-
TEST: a{{-t }}il.                                       ->> -t-
................................................................................
        <<- ~>> ␣
        <<- =>> define(\1, ":LN:m:p")

    l’ une comme l’ autre
        <<- ~>> ␣
        <<- =>> define(\1, ":LN:f:p")

    [des|chaque|quelque|quelques|cet|cette|ces|mon|ma|ta|mes|tes|ses|au|aux|notre|votre|nos|vos|leurs|aucun|aucune]  *WORD
        <<- not morph(\-1, ":V0") =>> exclude(\2, ":V")

    sa  *WORD
        <<- not morph(\-1, ":V0") and not morph(\-1, ":3s") =>> exclude(\2, ":V")

    les  ~.es$
        <<- not value(<1, "|tu|ne|n’|me|m’|te|t’|se|s’|nous|vous|") and morph(\2, ":V1.*Ip.*:2s") and not tag_before(\1, "_2s_") and not value(>1, "|tu|pas|jamais|")
        =>> exclude(\2, ":V")

    [un|une]  *WORD
        <<- not value(<1, "|l’|quelqu’|quelqu|") and not value(\2, "|a|fut|fût|est|fait|") and not morph(\2, ":P") =>> exclude(\2, ":V")

................................................................................
__inte_verbes_composés_interrogatifs__
    ~\w-[jJ]e$
        <<- /inte/ morphVC(\1, ":V", ":1[sśŝ]") ->> =suggVerb(\1, ":1ś", None, True)                && Forme interrogative. Désaccord avec “je”. Le verbe n’est pas à la 1ʳᵉ personne du singulier.
        <<- /inte/ __else__ and not morphVC(\1, ":V") ->> =suggSimil(\1, ":1[sśŝ]", False, True)    && Forme interrogative. Désaccord avec “je”. Le verbe n’est pas à la 1ʳᵉ personne du singulier.
        <<- />> -je|_VCint_

    aie-je
        <<- /vmode/ ->> ai-je                                                                       && Forme interrogative. N’employez pas le subjonctif présent.

    ~\w-[tT]u$
        <<- /inte/ morphVC(\1, ":V", ":[ISK].*:2s") ->> =suggVerb(\1, ":2s", None, True)            && Forme interrogative. Désaccord avec “tu”. Le verbe n’est pas à la 2ᵉ personne du singulier.
        <<- /inte/ __else__ and not morphVC(\1, ":V") ->> =suggSimil(\1, ":2s", False, True)        && Forme interrogative. Désaccord avec “tu”. Le verbe n’est pas à la 2ᵉ personne du singulier.
        <<- />> -tu|_VCint_

    ~\w-[iI]l$
................................................................................
#    ->> \1                                                                                          && Doublon.
#
#TEST: Il y a un {{doublon doublon}}.


!!
!!
!!!! Élisions & euphonie                                                                          !!
!!
!!

# élisions
__eleu_élisions_manquantes__
    [le|la|de]  ~^[aâeéèêiîoôuûyœæ].
        <<- /eleu/ space_after(\1, 1, 1) and not re.search("(?i)^(?:onz[ei]|énième|iourte|ouistiti|ouate|one-?step|ouf|Ouagadougou|I(?:I|V|X|er|ᵉʳ|ʳᵉ|è?re))", \2) and not morph(\2, ":G")
        -1:.2>> =\1[0:1]+"’"                                                && Élision de l’article devant un mot commençant par une voyelle.|http://fr.wikipedia.org/wiki/Élision

    si [il|ils]
        <<- /eleu/ space_after(\1, 1, 1) -1:.2>> s’                         && Il faut élider “si” et l’accoler au pronom.|http://fr.wikipedia.org/wiki/Élision

    que [il|ils|elle|elles|on|iel|iels]
        <<- /eleu/ space_after(\1, 1, 1) -1:.2>> qu’                        && Il faut élider “que” et l’accoler au pronom.|http://fr.wikipedia.org/wiki/Élision

    [me|te|se]  ~^[aâeéèêiîoôuûyœæ].
        <<- /eleu/ not \1.isupper() and space_after(\1, 1, 1) and morph(\2, ":V", ":Q")
        -1:.2>> =\1[0:1]+"’"                                                && Il faut élider le pronom “\1” et l’accoler au verbe.|http://fr.wikipedia.org/wiki/Élision

TEST: {{le }}amour                                                        ->> l’
TEST: {{la }}imagination                                                  ->> l’
TEST: {{de }}amour                                                        ->> d’
TEST: {{de }}est                                                          ->> d’
TEST: je crois que {{si }}ils viennent, ils seront mécontents
TEST: {{Que }}ils soient heureux
TEST: Il {{se }}avançait parmi eux.
TEST: il {{me }}oublie souvent
TEST: J’ai passé une journée de ouf.


# ce -> cet
__eleu_euphonie_cet__
    ce  ~^[aâeéèêiîoôuûyœæ]
        <<- /eleu/ not re.search("(?i)^(?:onz|énième|ouf|énième|ouistiti|one-?step|I(?:I|V|X|er|ᵉʳ))", \2) and morph(\2, ":[NA].*:[me]")
        -1>> cet                                                                && Euphonie : “ce” devient “cet” devant un mot commençant par une voyelle.|https://fr.wikipedia.org/wiki/Euphonie

TEST: {{ce}} animal est dangereux


# Verbe 1ʳᵉ personne du singulier, interrogatif… xxxé-je
__eleu_é_je__
    /-je
        <<- /eleu/ morphVC(\1, "V1.*:1s") and \1.endswith("e-je") ->> =\1.replace("e-je", "é-je")+"|"+\1.replace("e-je", "è-je")
        && Euphonie. Pour les verbes finissant par “e” à l’interrogatif à la 1ʳᵉ personne du singulier, mettez un accent aigu ou grave sur le “e” final. Exemple : “pensé-je” (présent), à ne pas confondre avec “pensais-je” (imparfait).|https://fr.wikipedia.org/wiki/Euphonie

TEST: {{pense-je}}                                                                      ->> pensé-je|pensè-je
TEST: pensé-je
TEST: souhaitè-je


# ma, ta, sa / mon, ton, son
__eleu_euphonie_ma_ta_sa__
    [ma|ta]  ~^[aâeéèêiîoôuûyœæ].
        <<- /eleu/ morph(\2, ":[NA]") and not re.search("(?i)^(?:onz|énième|ouf|énième|I(?:I|V|X|i?[eè]?re|ʳᵉ))", \2)
        -1>> =\1[0:1]+"on"                                                      && Euphonie : lorsque le déterminant “\1” est suivi d’un nom ou d’un adjectif commençant par une voyelle, il est d’usage d’utiliser le pronom  “mon”, “ton” ou “son” pour respecter l’euphonie. Exemple : mon étoile (féminin).|https://fr.wikipedia.org/wiki/Euphonie

    sa  ~^[aâeéèêiîoôuûyœæ].
        <<- /eleu/ not \1.isupper() and morph(\2, ":[NA]") and not re.search("(?i)^(?:onz|énième|ouf|énième|I(?:I|V|X|i?[eè]?re|ʳᵉ))", \2) >>>
        <<- /eleu/ morph(\2, ":[123][sp]") -1>> =\1[0:1]+"on|ça"                && Euphonie : lorsque le déterminant “\1” est suivi d’un nom ou d’un adjectif commençant par une voyelle, il est d’usage d’utiliser le pronom  “mon”, “ton” ou “son” pour respecter l’euphonie. (À moins que vous ne confondiez “sa” et “ça”.) Exemple : son étoile (féminin), ça existe.|https://fr.wikipedia.org/wiki/Euphonie
        <<- /eleu/ __else__ -1>> =\1[0:1]+"on"                                  && Euphonie : lorsque le déterminant “\1” est suivi d’un nom ou d’un adjectif commençant par une voyelle, il est d’usage d’utiliser le pronom  “mon”, “ton” ou “son” pour respecter l’euphonie. Exemple : son étoile (féminin).|https://fr.wikipedia.org/wiki/Euphonie

TEST: {{ta}} aimée                                              ->> ton
TEST: {{ma}} obligée                                            ->> mon
TEST: {{sa}} œuvre                                              ->> son|ça
TEST: {{sa}} existence                                          ->> son
TEST: SA déchue aux yeux du Fuhrer
TEST: Ce couple va donner à la France sa très importante collection qui rejoindra le musée d’Orsay


# nouvel / nouveaux
__eleu_nouvel_nouveau_euphonie__
    [un|le|ce|du|mon|ton|son|notre|votre|leur|quel]  nouveau  homme
        <<- /eleu/ -2>> nouvel                                              && Euphonie. Utilisez “nouvel” pour un nom masculin singulier commençant par une voyelle ou un h.|https://fr.wikipedia.org/wiki/Euphonie

    [un|le|ce|du|mon|ton|son|notre|votre|leur|quel]  nouveau  ~^[aâeéèêiîoôuûyœæ]
        <<- /eleu/ morph(\3, ":[NA].*:[me]:s", ":[123][sp]") -2>> nouvel    && Euphonie. Utilisez “nouvel” pour un nom masculin singulier commençant par une voyelle ou un h.|https://fr.wikipedia.org/wiki/Euphonie

TEST: ce {{nouveau}} homme
TEST: un {{nouveau}} élément relance l’enquête
TEST: il se sentait de nouveau homme
TEST: il se sentait à nouveau homme


# vieil / vieux
__eleu_vieil_vieux_euphonie__
    vieux  homme
        <<- /eleu/ -1>> vieil                                   && Euphonie. Utilisez “vieil” s’il précède un nom masculin singulier commençant par une voyelle ou un h.|https://fr.wikipedia.org/wiki/Euphonie

    vieux  ~^[aâeéèêiîoôuûyœæ]
        <<- /eleu/ morph(\2, ":[NA].*:[me]:s", ":[123][sp]")
        -1>> vieil                                              && Euphonie. Utilisez “vieil” s’il précède un nom masculin singulier commençant par une voyelle ou un h.|https://fr.wikipedia.org/wiki/Euphonie

TEST: ce {{vieux}} homme
TEST: c’est un {{vieux}} imbécile.
TEST: Le {{vieux}} homme était parti.                         ->> vieil
TEST: Diviser les jeunes et les vieux est un peu son fonds de commerce



!!
!!
!!!! Nombres ordinaux                                                                             !!
!!
!!
................................................................................
    [>ajourner|>différer|>reporter] à une date ultérieure
        <<- /pleo/ ->> \1                                                                           && Pléonasme.

TEST: {{Ajourner à une date ultérieure}}        ->> Ajourner
TEST: {{différer à une date ultérieure}}        ->> différer
TEST: {{reporter à plus tard}}                  ->> reporter




















!!!
!!!
!!! Conjugaison                                                                                   !!
!!!
!!!
................................................................................
        <<- /conf/ ->> loin s’en faut               && Confusion probable. Cette locution s’écrit “loin s’en faut”.|https://fr.wiktionary.org/wiki/loin_s%E2%80%99en_faut

TEST: Ils n’étaient guère prêts à ça, {{loins sans faux}}.
TEST: Et les intellectuels ? En France comme ailleurs, tous n’ont pas, loin s’en faut, une pleine lucidité sur cette précarité galopante.


# m’a / ma
__conf_m_a_ma!7__
    [<start>|,|(]  tu  [ma|mas]
        <<- /conf/ --1>> m’as                       && Confusion : “ma” est un déterminant possessif féminin. Pour le verbe “avoir” à la 2ᵉ personne précédé du pronom personnel ”me”, écrivez “m’as”.

    [il|ils]  [ma|mas]
        <<- /conf/ not morph(<1, ":3s")
        --1>> m’a                                   && Confusion : “ma” est un déterminant possessif féminin. Pour le verbe “avoir” à la 3ᵉ personne précédé du pronom personnel ”me”, écrivez “m’a”.

    on  [ma|mas]
        <<- /conf/ morph(<1, "<start>|:C|>,/")
        --1>> m’a                                   && Confusion : “ma” est un déterminant possessif féminin. Pour le verbe “avoir” à la 3ᵉ personne précédé du pronom personnel ”me”, écrivez “m’a”.

    [ne|n’]  [ma|mas]
        <<- /conf/ --1>> m’a                        && Confusion : “ma” est un déterminant possessif féminin. Pour le verbe “avoir” à la 3ᵉ personne précédé du pronom personnel ”me”, écrivez “m’a”.

    ça  [ma|mas]  *WORD
        <<- /conf/ morph(<1, "<start>|:C|>,/") and analyse(\-1, ":(?:Q|V1.*:Y)", ":N.*:[fe]")
        -2>> m’a                                    && Confusion : “ma” est un déterminant possessif féminin. Pour le verbe “avoir” à la 3ᵉ personne précédé du pronom personnel ”me”, écrivez “m’a”.

    qui ma  *WORD
        <<- /conf/ analyse(\-1, ":(?:Q|V1.*:Y)", ":N.*:[fe]")
        -2>> m’a                                    && Confusion : “ma” est un déterminant possessif féminin. Pour le verbe “avoir” à la 3ᵉ personne précédé du pronom personnel ”me”, écrivez “m’a”.

    ma  @:(?:Q.*:e:i|V1.*:Y)¬:f:s
        <<- /conf/ -1>> m’a                         && Confusion probable : “\-2“ est un participe passé. Vous confondez probablement “ma” et “m’a” (contraction de “me” suivi du verbe avoir “a”).

TEST: tu {{ma}} prise par surprise                          ->> m’as
TEST: il {{ma}} tuée                                        ->> m’a
TEST: cette femme ne {{ma}} prise que deux fois             ->> m’a
TEST: {{on}} {{ma}} dézinguée                               ->> m’a|||ont
TEST: ça {{ma}} {{foutu}} en l’air
TEST: cet homme {{ma}} succédé à ce poste                   ->> m’a
TEST: {{ma}} {{donner}} la nausée, ce con
TEST: c’est ça qui {{ma}} forcée à poursuivre               ->> m’a
TEST: ça ma grande, c’est mon secret


# m’ont / mon
__conf_m_ont!6__
    il  mon
        <<- /conf/ morph(<1, "<start>|:C|>,/")
        --1>> m’ont                                 && Confusion probable : “mon” est un déterminant possessif. Pour le verbe “avoir” à la 3ᵉ personne du pluriel précédé du pronom personnel ”me”, écrivez “m’ont”.

    ils  mon
        <<- /conf/ not morph(<1, ":(?:3p|D)")
        --1>> m’ont                                 && Confusion : “mon” est un déterminant possessif. Pour le verbe “avoir” à la 3ᵉ personne du pluriel précédé du pronom personnel ”me”, écrivez “m’ont”.

    ne  mon
        <<- /conf/ --1>> m’ont                      && Confusion : “mon” est un déterminant possessif. Pour le verbe “avoir” à la 3ᵉ personne du pluriel précédé du pronom personnel ”me”, écrivez “m’ont”.

TEST: il {{mon}} détruit                                    ->> m’ont
TEST: ils {{mon}} donné du fil à retordre, ces cons.        ->> m’ont
TEST: ces écarts ne {{mon}} posé aucun problème             ->> m’ont


# mai / mais
__conf_mai_mais_mes__
    [<start>|,|(]  mai  @:(?:Os|M)¬:3s
................................................................................
TEST: C’est la {{votre}} ?
TEST: {{nôtre}} père est si âgé.
TEST: {{vôtre}} chien a du mordant
TEST: nous vous proposons de faire vôtre une autre volonté
TEST: Elle récitait sans cesse des Notre Père.
















# nulle part
__conf_nulle_part__
    nul part
        <<- /conf/ not morph(<1, ":D.*:m:[si]") ->> nulle part      && Confusion : pour dire “en aucun lieu”, écrivez “nulle part”.

................................................................................
TEST: ce pouvoir politique de décision que le mouvement souhaitait voir restauré
TEST: les groupes anti-avortement cherchant à faire adopter des lois qu’ils espèrent voir confirmées par la Cour suprême
TEST: à côté de nous voire avec nous
TEST: sans lui voire sans rien
TEST: il fait ça pour nous voire pour tout le monde


















!!!! Confusions de vocabulaire                                                                    !!

__conf_vocabulaire!5__
    [con+s] [>cul|cu|que] >pisse >anse