Grammalecte  Check-in [d46b63623e]

Overview
Comment:[fr] gestion de l’écriture dite “inclusive” (brainfuck)
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk | fr
Files: files | file ages | folders
SHA3-256: d46b63623e2e0d1905a15aeb9bb86f6c0ebe14958d8edc4815cb5bcad94efd07
User & Date: olr on 2017-10-15 12:19:00
Other Links: manifest | tags
Context
2017-10-15
19:05
[fr][js] delete console.log() for debugging check-in: 6342f17067 user: olr tags: trunk, fr
12:19
[fr] gestion de l’écriture dite “inclusive” (brainfuck) check-in: d46b63623e user: olr tags: trunk, fr
2017-10-12
09:28
[fr] faux positif: à tu et à toi check-in: a0bf5ea111 user: olr tags: trunk, fr
Changes

Modified gc_lang/fr/modules-js/gce_suggestions.js from [a844f36535] to [de987074ad].

591
592
593
594
595
596
597






















591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619







+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
    } else if (c == "ſt") {
        return "ft";
    } else if (c == "st") {
        return "st";
    }
    return "_";
}


const _dNormalizedCharsForInclusiveWriting = new Map([
    ['(', '_'],  [')', '_'],
    ['.', '_'],  ['·', '_'],
    ['–', '_'],  ['—', '_'],
    ['/', '_']
]);

function normalizeInclusiveWriting (sToken) {
    let sRes = "";
    console.log("==== " + sToken);
    for (let c of sToken) {
        if (_dNormalizedCharsForInclusiveWriting.has(c)) {
            sRes += _dNormalizedCharsForInclusiveWriting.get(c);
        } else {
            sRes += c;
        }
    }
    console.log(">>>> " + sRes);
    return sRes;
}

Modified gc_lang/fr/modules/gce_suggestions.py from [37d0c398ac] to [50fbeb414d].

459
460
461
462
463
464
465














459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479







+
+
+
+
+
+
+
+
+
+
+
+
+
+
    elif c == "ffl":
        return "ffl"
    elif c == "ſt":
        return "ft"
    elif c == "st":
        return "st"
    return "_"




_xNormalizedCharsForInclusiveWriting = str.maketrans({
    '(': '_',  ')': '_',
    '.': '_',  '·': '_',
    '–': '_',  '—': '_',
    '/': '_'
 })


def normalizeInclusiveWriting (sToken):
    return sToken.translate(_xNormalizedCharsForInclusiveWriting)

Modified gc_lang/fr/rules.grx from [d8363ea9fd] to [9041a1c843].

542
543
544
545
546
547
548
549
550


551
















552
553
554
555




































556
557
558
559
560
561
562
563
564
565
566
567
568
569



570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
542
543
544
545
546
547
548


549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567




568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615


616
617
618
619
620
621
622
623









624
625
626
627
628
629
630







-
-
+
+

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+












-
-
+
+
+





-
-
-
-
-
-
-
-
-








!!
!!
!!!! Typographie, virgules, espaces insécables, unités de mesure…                                   
!!
!!

### Écritures épicènes invariables
# Attention, lors de la deuxième passe, on se sert du désambiguïsateur
### Écritures épicènes (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 brouillon, 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 brouillon, dystypographique et imprononçable.
    <<- ~>> =normalizeInclusiveWriting(\0)

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


__[u](typo_écriture_épicène_pluriel)__
    ({w_1}[éuitsrn])[-·–—.(/]([nt]|)e[-·–—.)/]s  @@0,**
    <<- option("typo") and not \0.endswith("·e·s") ->> \1s et \1\2es|\1\2es et \1s|\1·\2e·s         # Écriture épicène brouillon. Préférez écrire lisiblement. Sinon, utilisez les points médians.
    <<- ~>> \1-\2e-s
__[u](typo_écriture_épicène_pluriel_eur_divers)__
    ({w_2})eur[.(/·–—-][td]?(rice|euse|[oe]resse)[.)/·–—-]?s  @@0,**
    <<- option("typo") ->> \1eurs et \1\2s|\1\2s et \1eurs                                          # Écriture épicène brouillon, dystypographique et imprononçable.
    <<- ~>> =normalizeInclusiveWriting(\0)

TEST: travaillons avec les {{instituteur.trice.s}}                          ->> instituteurs et institutrices|institutrices et instituteurs


__[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 brouillon, 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[.(/·–—-][tnmcpb]?ale[.)/·–—-]?s  @@0
    <<- option("typo") ->> \1aux et \1ales|\1ales et \1aux|\1al·e·s                                 # Écriture épicène brouillon, 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})er[.(/·–—-]i?ère[.)/·–—-]?s  @@0
    <<- option("typo") ->> \1ers et \1ères|\1ères et \1ers                                          # Écriture épicène brouillon, 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_e)__
    ({w_1}[éuitsrn])[-·–—.(/]([nt]|)e[-·–—.)/]?s  @@0,**
    <<- option("typo") and not \0.endswith("·e·s") ->> \1s et \1\2es|\1\2es et \1s|\1·\2e·s         # Écriture épicène brouillon et dystypographique. Préférez écrire lisiblement. Sinon, utilisez les points médians.
    <<- ~>> =normalizeInclusiveWriting(\0)

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: la graphie “{{militant(e)s}}”.
TEST: ces militant·e·s {{acharné}}.


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


#__[i](typo_écriture_nombre_invariable)__
#    ({w_2})(?:[-·–—./]s|[(]s[)])  @@0
#    <<- option("typo") and not \0.endswith("·s") ->> \1·s                                           # Utilisez un point médian. (Note : écriture journalistique brouillon.)
#    <<- ~>> \1-s    
#
#TEST: le ou les partis {{appelé(s)}}
#TEST: Appelé·s, levez-vous.


# Majuscules après un point
__[s]/maj(majuscule_après_point)__
    ({w_2})[.] ([a-zéàèî]\w*)  @@0,$
    <<- not re.search("(?i)^(?:etc|[A-Z]|chap|cf|fig|hab|litt|circ|coll|r[eé]f|étym|suppl|bibl|bibliogr|cit|op|vol|déc|nov|oct|janv|juil|avr|sept)$", \1)
    and morph(\1, ":", False) and morph(\2, ":", False)
    -2>> =\2.capitalize()                                                                           # Après un point, une majuscule est généralement requise.
1134
1135
1136
1137
1138
1139
1140
1141

1142
1143
1144
1145

1146
1147
1148
1149
1150
1151
1152
1174
1175
1176
1177
1178
1179
1180

1181
1182
1183
1184

1185
1186
1187
1188
1189
1190
1191
1192







-
+



-
+







TEST: le {{XXè}} siècle.                        ->> XXᵉ



!!!! Écritures épicènes invariables                                                                 

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

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


!!!! Dates                                                                                          

__[i]/date(date_jour_mois_année)__
    (\d\d?) (janvier|février|ma(?:rs|i)|a(?:vril|o[ûu]t)|jui(?:n|llet)|septembre|octobre|novembre|décembre) (\d\d\d+)  @@0,w,$