Index: gc_lang/fr/rules.grx ================================================================== --- gc_lang/fr/rules.grx +++ gc_lang/fr/rules.grx @@ -51,11 +51,11 @@ !! !! 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 @@ -62,10 +62,11 @@ # 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 @@ -119,10 +120,11 @@ 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 @@ -158,10 +160,11 @@ # 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.”. @@ -205,10 +208,11 @@ 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.”. @@ -616,73 +620,73 @@ !! # (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. @@ -696,14 +700,14 @@ 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. @@ -1511,15 +1515,15 @@ 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"]) !!!