Grammalecte  Diff

Differences From Artifact [67b204300b]:

To Artifact [f4fda1f1fa]:


49
50
51
52
53
54
55
56

57
58
59
60
61
62
63
64
65
66

67
68
69
70
71
72
73
49
50
51
52
53
54
55

56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74







-
+










+








!!
!!
!! Options                                                                                        !!
!!
!!

OPTGROUP/basic: typo apos, esp tab, nbsp unit, tu maj, num virg, nf poncfin, ocr chim, liga mapos
OPTGROUP/basic: typo apos eepi, esp tab, nbsp unit, tu maj, num virg, nf 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/eepi:           True        True        True        True        True        True
OPT/esp:            True        True        True        False       False       False
OPT/tab:            False       True        False       False       False       False
OPT/nbsp:           True        True        True        False       False       False
OPT/tu:             True        True        True        True        True        True
OPT/maj:            True        True        True        True        True        True
OPT/num:            True        True        True        True        True        True
OPT/virg:           True        True        True        True        True        True
117
118
119
120
121
122
123

124
125
126
127
128
129
130
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132







+







COLOR/bleu_vif:     210,100,30
COLOR/vert_vif:     120,100,30
COLOR/cyan_vif:     180,100,40

OPTCOLORTHEME:      Default     Writer
OPTCOLOR/typo:      orange      orange_vif
OPTCOLOR/apos:      orange2     orange2_vif
OPTCOLOR/eepi:      orange2     orange2_vif
OPTCOLOR/esp:       orange      orange_vif
OPTCOLOR/tab:       orange      orange_vif
OPTCOLOR/nbsp:      orange      orange_vif
OPTCOLOR/tu:        orange      orange_vif
OPTCOLOR/maj:       orange      orange_vif
OPTCOLOR/num:       orange      orange_vif
OPTCOLOR/virg:      orange      orange_vif
156
157
158
159
160
161
162

163
164
165
166
167
168
169
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172







+







OPTDEFAULTUILANG: fr_FR

# Labels
OPTLANG/fr_FR:      Grammalecte (Français)
OPTLABEL/basic:     Typographie
OPTLABEL/typo:      Signes typographiques
OPTLABEL/apos:      Apostrophe typographique|Correction des apostrophes droites. Automatisme possible dans le menu Outils > Options d’autocorrection > Options linguistiques > Guillemets simples > Remplacer (à cocher)
OPTLABEL/eepi:      Écriture épicène|Normalisation de l’écriture épicène avec points médians.
OPTLABEL/esp:       Espaces surnuméraires|Signale les espaces inutiles entre les mots, en début et en fin de ligne.
OPTLABEL/tab:       Tabulations surnuméraires|Signale les tabulations inutiles en début et en fin de ligne.
OPTLABEL/nbsp:      Espaces insécables|Vérifie les espaces insécables avec les ponctuations « ! ? : ; » (à désactiver si vous utilisez une police Graphite)
OPTLABEL/maj:       Majuscules|Vérifie l’utilisation des majuscules et des minuscules (par exemple, « la raison d’État », « les Européens »).
OPTLABEL/virg:      Virgules|Virgules manquantes avant “mais”, “car” et “etc.”.
OPTLABEL/poncfin:   Ponctuation finale [!]|Vérifie s’il manque une ponctuation finale au paragraphe (seulement pour les paragraphes constitués de plusieurs phrases).
OPTLABEL/tu:        Traits d’union|Cherche les traits d’union manquants ou inutiles.
203
204
205
206
207
208
209

210
211
212
213
214
215
216
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220







+







OPTLABEL/idrule:    Identifiant des règles de contrôle [!]|Affiche l’identifiant de la règle de contrôle dans les messages d’erreur.


OPTLANG/en_US:      Grammar checking (French)
OPTLABEL/basic:     Typography
OPTLABEL/typo:      Typographical glyphs
OPTLABEL/apos:      Typographical apostrophe|Detects typewriter apostrophes. You may get automatically typographical apostrophes in Tools > Autocorrect options > Localized options > Single quote > Replace (checkbox).
OPTLABEL/eepi:      Epicene writing|Normalization of epicene writing (usage of middle dots).
OPTLABEL/esp:       Useless spaces|Checks spaces within words and at the beginning and the end of lines.
OPTLABEL/tab:       Useless tabulations|Checks tabulations at the beginning and the end of lines.
OPTLABEL/nbsp:      Non-breakable spaces|Checks the use of non-breakable spaces with the following punctuation marks: « ! ? : ; » (deactivate it if you use a Graphite font).
OPTLABEL/maj:       Capitals|Checks the use of uppercase and lowercase letters (i.e. « la raison d’État », « les Européens »).
OPTLABEL/virg:      Commas|Missing commas before “mais”, “car” and “etc.”.
OPTLABEL/poncfin:   Ending punctuation [!]|Checks if an ending punctuation is missing on paragraphs (only for multi-sentences paragraphs).
OPTLABEL/tu:        Hyphens|Checks missing or useless hyphens.
614
615
616
617
618
619
620
621
622
623



624
625
626
627
628
629
630
631



632
633
634
635
636
637
638
639
640




641
642
643
644
645
646
647
648
649



650
651
652
653
654
655
656
657



658
659
660
661
662
663
664
665



666
667
668
669
670
671
672
673



674
675
676
677
678
679
680
681


682
683

684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704




705
706
707
708
709
710
711
618
619
620
621
622
623
624



625
626
627
628
629
630
631
632



633
634
635
636
637
638
639
640




641
642
643
644
645
646
647
648
649
650



651
652
653
654
655
656
657
658



659
660
661
662
663
664
665
666



667
668
669
670
671
672
673
674



675
676
677
678
679
680
681
682
683


684
685
686

687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704




705
706
707
708
709
710
711
712
713
714
715







-
-
-
+
+
+





-
-
-
+
+
+





-
-
-
-
+
+
+
+






-
-
-
+
+
+





-
-
-
+
+
+





-
-
-
+
+
+





-
-
-
+
+
+






-
-
+
+

-
+

















-
-
-
-
+
+
+
+







!!!! Écritures épicènes dystypographiques                                                         !!
!!
!!

# (attention aux modifs: brainfuck d’intensité non négligeable)
# La désambiguïsation est faite lors de la deuxième passe

__[i](typo_écriture_épicène_tous_toutes)__
    tous?[.(/·⋅–—-]te[.)/·⋅–—-]?s
    <<- option("typo") ->> tous et toutes|toutes et tous                                            # Écriture épicène dystypographique et imprononçable.
__[i](eepi_écriture_épicène_tous_toutes)__
    tous?[.(/·⋅–—-]te[.)/·⋅–—-]?s
    <<- option("eepi") ->> tous et toutes|toutes et tous                                            # Écriture épicène dystypographique et imprononçable.
    <<- ~>> =normalizeInclusiveWriting(\0)

TEST: {{tou.tes}} sont là.                                              ->> tous et toutes|toutes et tous


__[i](typo_écriture_épicène_ceux_celles)__
    c[./·⋅–—-]?eux?[./·⋅–—-]elles
    <<- option("typo") ->> ceux et celles|celles et ceux                                            # Écriture épicène dystypographique et imprononçable.
__[i](eepi_écriture_épicène_ceux_celles)__
    c[./·⋅–—-]?eux?[./·⋅–—-]elles
    <<- option("eepi") ->> ceux et celles|celles et ceux                                            # Écriture épicène dystypographique et imprononçable.
    <<- ~>> =normalizeInclusiveWriting(\0)

TEST: avec {{ceux.elles}} qui viendront                                 ->> ceux et celles|celles et ceux


__[u](typo_écriture_épicène_pluriel_eur_divers)__
    ({w_2})eurs?[.(/·⋅–—-][tdp]?(rice|euse|se|[oe]resse)[.)/·⋅–—-]?s  @@0,**
    <<- option("typo") and \2 != "se" ->> \1eurs et \1\2s|\1\2s et \1eurs                           # Écriture épicène dystypographique et imprononçable.
    <<- option("typo") and \2 == "se" ->> \1eurs et \1euses|\1euses et \1eurs                       # Écriture épicène dystypographique et imprononçable.
__[u](eepi_écriture_épicène_pluriel_eur_divers)__
    ({w_2})eurs?[.(/·⋅–—-][tdp]?(rice|euse|se|[oe]resse)[.)/·⋅–—-]?s  @@0,**
    <<- option("eepi") and \2 != "se" ->> \1eurs et \1\2s|\1\2s et \1eurs                           # Écriture épicène dystypographique et imprononçable.
    <<- option("eepi") and \2 == "se" ->> \1eurs et \1euses|\1euses et \1eurs                       # Écriture épicène dystypographique et imprononçable.
    <<- ~>> =normalizeInclusiveWriting(\0)

TEST: travaillons avec les {{instituteur.trice.s}}                          ->> instituteurs et institutrices|institutrices et instituteurs
TEST: La communauté des {{développeur·se·s}} open source                    ->> développeurs et développeuses|développeuses et développeurs


__[u](typo_écriture_épicène_pluriel_eux_euses)__
    ({w_2})eux[.(/·⋅–—-](?:[tdsi]?euse|se)[.)/·⋅–—-]?s  @@0
    <<- option("typo") ->> \1eux et \1euses|\1euses et \1eux                                        # Écriture épicène dystypographique et imprononçable.
__[u](eepi_écriture_épicène_pluriel_eux_euses)__
    ({w_2})eux[.(/·⋅–—-](?:[tdsi]?euse|se)[.)/·⋅–—-]?s  @@0
    <<- option("eepi") ->> \1eux et \1euses|\1euses et \1eux                                        # Écriture épicène dystypographique et imprononçable.
    <<- ~>> =normalizeInclusiveWriting(\0)

TEST: {{nombreux·ses}} sont les profs qui s’indignent de cette situation.   ->> nombreux et nombreuses|nombreuses et nombreux


__[u](typo_écriture_épicène_pluriel_aux_ales)__
    ({w_2})aux[.(/·⋅–—-][tnmcpbd]?ale[.)/·⋅–—-]?s  @@0
    <<- option("typo") ->> \1aux et \1ales|\1ales et \1aux|\1al·e·s                                 # Écriture épicène dystypographique et imprononçable. Pour ce cas, il peut être intéressant de faire comme si le pluriel masculin était régulier, ce qui rend l’ensemble prononçable…
__[u](eepi_écriture_épicène_pluriel_aux_ales)__
    ({w_2})aux[.(/·⋅–—-][tnmcpbd]?ale[.)/·⋅–—-]?s  @@0
    <<- option("eepi") ->> \1aux et \1ales|\1ales et \1aux|\1al·e·s                                 # Écriture épicène dystypographique et imprononçable. Pour ce cas, il peut être intéressant de faire comme si le pluriel masculin était régulier, ce qui rend l’ensemble prononçable…
    <<- ~>> =normalizeInclusiveWriting(\0)

TEST: {{locaux·ales}}                                                   ->> locaux et locales|locales et locaux|local·e·s


__[u](typo_écriture_épicène_pluriel_er_ère)__
    ({w_2})ers?[.(/·⋅–—-]i?è?re[.)/·⋅–—-]?s  @@0
    <<- option("typo") ->> \1ers et \1ères|\1ères et \1ers                                          # Écriture épicène dystypographique et imprononçable.
__[u](eepi_écriture_épicène_pluriel_er_ère)__
    ({w_2})ers?[.(/·⋅–—-]i?è?re[.)/·⋅–—-]?s  @@0
    <<- option("eepi") ->> \1ers et \1ères|\1ères et \1ers                                          # Écriture épicène dystypographique et imprononçable.
    <<- ~>> =normalizeInclusiveWriting(\0)

TEST: les {{conseiller.ière.s}}                                         ->> conseillers et conseillères|conseillères et conseillers


__[u](typo_écriture_épicène_pluriel_if_ive)__
    ({w_2})ifs?[.(/·⋅–—-][std]?i?ve[.)/·⋅–—-]?s  @@0
    <<- option("typo") ->> \1ifs et \1ives|\1ives et \1ifs                                          # Écriture épicène dystypographique et imprononçable.
__[u](eepi_écriture_épicène_pluriel_if_ive)__
    ({w_2})ifs?[.(/·⋅–—-][std]?i?ve[.)/·⋅–—-]?s  @@0
    <<- option("eepi") ->> \1ifs et \1ives|\1ives et \1ifs                                          # Écriture épicène dystypographique et imprononçable.
    <<- ~>> =normalizeInclusiveWriting(\0)

TEST: {{inclusif.ive.s}}                                                ->> inclusifs et inclusives|inclusives et inclusifs
TEST: {{offensif.ve.s}}                                                 ->> offensifs et offensives|offensives et offensifs


__[u](typo_écriture_épicène_pluriel_e)__
    ({w_1}[éuitsrnldf])[-·–—.⋅(/]([ntlf]?e)[-·–—.⋅)/]?s  @@0,**
__[u](eepi_écriture_épicène_pluriel_e)__
    ({w_1}[éuitsrnldf])[-·–—.⋅(/]([ntlf]?e)[-·–—.⋅)/]?s  @@0,**
    <<- ~>> =normalizeInclusiveWriting(\0)
    <<- option("typo") and not \0.endswith("les") >>>
    <<- option("eepi") and not \0.endswith("les") >>>
    <<- \1.endswith("s") and not \0.endswith("·e·s")
    ->> \1 et \1\2s|\1\2s et \1|\1·\2·s                                                             # Écriture épicène dystypographique. Préférez écrire lisiblement. Sinon, utilisez les points médians.
    <<- __else__ and not \0.endswith("e·s")
    ->> \1s et \1\2s|\1\2s et \1s|\1·\2·s                                                           # Écriture épicène dystypographique. Préférez écrire lisiblement. Sinon, utilisez les points médians.

TEST: nous sommes {{déconsidéré-e-s}}.
TEST: serons-nous toujours {{perdu.e.s}}.
TEST: les illustres {{inconnu(e)s}}.
TEST: la situation des {{salarié/e/s}}.
TEST: des {{Iranien-ne-s}} sont venues                                  ->> Iraniens et Iraniennes|Iraniennes et Iraniens|Iranien·ne·s
TEST: rendez-vous avec des {{écrivain(e)s}}                             ->> écrivains et écrivaines|écrivaines et écrivains|écrivain·e·s
TEST: Avec les {{Berlinois.e.s}}                                        ->> Berlinois et Berlinoises|Berlinoises et Berlinois|Berlinois·e·s
TEST: la graphie “{{militant(e)s}}”.
TEST: ces militant·e·s {{acharné}}.
TEST: chez les {{immortel.le.s}}


__[i](typo_écriture_épicène_singulier)__
    ({w_1}[éuitsrnldf])(?:[-·–—.⋅/]e|[(]e[)])  @@0
    <<- option("typo") and (\1 == "un" or \1 == "Un") ->> un ou une|une ou un                       # Écriture épicène imprononçable. Préférez écrire lisiblement.
    <<- __else__ and option("typo") and not \0.endswith("·e") ->> \1·e                              # Écriture épicène. Utilisez un point médian.
__[i](eepi_écriture_épicène_singulier)__
    ({w_1}[éuitsrnldf])(?:[-·–—.⋅/]e|[(]e[)])  @@0
    <<- option("eepi") and (\1 == "un" or \1 == "Un") ->> un ou une|une ou un                       # Écriture épicène imprononçable. Préférez écrire lisiblement.
    <<- __else__ and option("eepi") and not \0.endswith("·e") ->> \1·e                              # Écriture épicène. Utilisez un point médian.
    <<- ~>> \1-e

TEST: je suis {{déconsidéré.e}} par ma hiérarchie.
TEST: il faut en parler à l’{{auteur(e)}} et à son agent.


!!
1509
1510
1511
1512
1513
1514
1515
1516

1517
1518
1519
1520

1521
1522
1523
1524
1525
1526
1527
1513
1514
1515
1516
1517
1518
1519

1520
1521
1522
1523

1524
1525
1526
1527
1528
1529
1530
1531







-
+



-
+








TEST: année {{2O11}}                                                      ->> 2011
TEST: {{3O}} (chiffre avec un O).                                         ->> 30


!!!! Écritures épicènes invariables                                                               !!

__[i](d_typo_écriture_épicène_pluriel)__
__[i](d_eepi_écriture_épicène_pluriel)__
    ({w_1}[éuitsrn])_(?:[nt]|)e_s  @@0
    <<- morph(\1, ":[NAQ]", ":G") =>> define(\1, [":N:A:Q:e:p"])

__[i](d_typo_écriture_épicène_singulier)__
__[i](d_eepi_écriture_épicène_singulier)__
    ({w_2}[éuitsrn])_e  @@0
    <<- morph(\1, ":[NAQ]") =>> define(\1, [":N:A:Q:e:s"])


!!!
!!!
!!! Processeur: épuration des signes inutiles et quelques simplifications                         !!