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: fr, trunk
12:19
[fr] gestion de l’écriture dite “inclusive” (brainfuck) check-in: d46b63623e user: olr tags: fr, trunk
2017-10-12
09:28
[fr] faux positif: à tu et à toi check-in: a0bf5ea111 user: olr tags: fr, trunk
Changes

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

   591    591       } else if (c == "ſt") {
   592    592           return "ft";
   593    593       } else if (c == "st") {
   594    594           return "st";
   595    595       }
   596    596       return "_";
   597    597   }
          598  +
          599  +
          600  +const _dNormalizedCharsForInclusiveWriting = new Map([
          601  +    ['(', '_'],  [')', '_'],
          602  +    ['.', '_'],  ['·', '_'],
          603  +    ['–', '_'],  ['—', '_'],
          604  +    ['/', '_']
          605  +]);
          606  +
          607  +function normalizeInclusiveWriting (sToken) {
          608  +    let sRes = "";
          609  +    console.log("==== " + sToken);
          610  +    for (let c of sToken) {
          611  +        if (_dNormalizedCharsForInclusiveWriting.has(c)) {
          612  +            sRes += _dNormalizedCharsForInclusiveWriting.get(c);
          613  +        } else {
          614  +            sRes += c;
          615  +        }
          616  +    }
          617  +    console.log(">>>> " + sRes);
          618  +    return sRes;
          619  +}

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

   459    459       elif c == "ffl":
   460    460           return "ffl"
   461    461       elif c == "ſt":
   462    462           return "ft"
   463    463       elif c == "st":
   464    464           return "st"
   465    465       return "_"
          466  +
          467  +
          468  +
          469  +
          470  +_xNormalizedCharsForInclusiveWriting = str.maketrans({
          471  +    '(': '_',  ')': '_',
          472  +    '.': '_',  '·': '_',
          473  +    '–': '_',  '—': '_',
          474  +    '/': '_'
          475  + })
          476  +
          477  +
          478  +def normalizeInclusiveWriting (sToken):
          479  +    return sToken.translate(_xNormalizedCharsForInclusiveWriting)

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

   542    542   
   543    543   !!
   544    544   !!
   545    545   !!!! Typographie, virgules, espaces insécables, unités de mesure…                                   
   546    546   !!
   547    547   !!
   548    548   
   549         -### Écritures épicènes invariables
   550         -# Attention, lors de la deuxième passe, on se sert du désambiguïsateur
          549  +### Écritures épicènes (attention aux modifs: brainfuck d’intensité non négligeable)
          550  +# La désambiguïsation est faite lors de la deuxième passe
   551    551   
   552         -__[u](typo_écriture_épicène_pluriel)__
   553         -    ({w_1}[éuitsrn])[-·–—.(/]([nt]|)e[-·–—.)/]s  @@0,**
   554         -    <<- 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.
   555         -    <<- ~>> \1-\2e-s
          552  +__[i](typo_écriture_épicène_tous_toutes)__
          553  +    tous?[.(/·–—-]te[.)/·–—-]?s
          554  +    <<- option("typo") ->> tous et toutes|toutes et tous                                            # Écriture épicène brouillon, dystypographique et imprononçable.
          555  +    <<- ~>> =normalizeInclusiveWriting(\0)
          556  +
          557  +TEST: {{tou.tes}} sont là.                                              ->> tous et toutes|toutes et tous
          558  +
          559  +
          560  +__[i](typo_écriture_épicène_ceux_celles)__
          561  +    c[./·–—-]?eux?[./·–—-]elles
          562  +    <<- option("typo") ->> ceux et celles|celles et ceux                                            # Écriture épicène brouillon, dystypographique et imprononçable.
          563  +    <<- ~>> =normalizeInclusiveWriting(\0)
          564  +
          565  +TEST: avec {{ceux.elles}} qui viendront                                 ->> ceux et celles|celles et ceux
          566  +
          567  +
          568  +__[u](typo_écriture_épicène_pluriel_eur_divers)__
          569  +    ({w_2})eur[.(/·–—-][td]?(rice|euse|[oe]resse)[.)/·–—-]?s  @@0,**
          570  +    <<- option("typo") ->> \1eurs et \1\2s|\1\2s et \1eurs                                          # Écriture épicène brouillon, dystypographique et imprononçable.
          571  +    <<- ~>> =normalizeInclusiveWriting(\0)
          572  +
          573  +TEST: travaillons avec les {{instituteur.trice.s}}                          ->> instituteurs et institutrices|institutrices et instituteurs
          574  +
          575  +
          576  +__[u](typo_écriture_épicène_pluriel_eux_euses)__
          577  +    ({w_2})eux[.(/·–—-](?:[tdsi]?euse|se)[.)/·–—-]?s  @@0
          578  +    <<- option("typo") ->> \1eux et \1euses|\1euses et \1eux                                        # Écriture épicène brouillon, dystypographique et imprononçable.
          579  +    <<- ~>> =normalizeInclusiveWriting(\0)
          580  +
          581  +TEST: {{nombreux·ses}} sont les profs qui s’indignent de cette situation.   ->> nombreux et nombreuses|nombreuses et nombreux
          582  +
          583  +
          584  +__[u](typo_écriture_épicène_pluriel_aux_ales)__
          585  +    ({w_2})aux[.(/·–—-][tnmcpb]?ale[.)/·–—-]?s  @@0
          586  +    <<- 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…
          587  +    <<- ~>> =normalizeInclusiveWriting(\0)
          588  +
          589  +TEST: {{locaux·ales}}                                                   ->> locaux et locales|locales et locaux|local·e·s
          590  +
          591  +
          592  +__[u](typo_écriture_épicène_pluriel_er_ère)__
          593  +    ({w_2})er[.(/·–—-]i?ère[.)/·–—-]?s  @@0
          594  +    <<- option("typo") ->> \1ers et \1ères|\1ères et \1ers                                          # Écriture épicène brouillon, dystypographique et imprononçable.
          595  +    <<- ~>> =normalizeInclusiveWriting(\0)
          596  +
          597  +TEST: les {{conseiller.ière.s}}                                         ->> conseillers et conseillères|conseillères et conseillers
          598  +
          599  +
          600  +__[u](typo_écriture_épicène_pluriel_e)__
          601  +    ({w_1}[éuitsrn])[-·–—.(/]([nt]|)e[-·–—.)/]?s  @@0,**
          602  +    <<- 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.
          603  +    <<- ~>> =normalizeInclusiveWriting(\0)
   556    604   
   557    605   TEST: nous sommes {{déconsidéré-e-s}}.
   558    606   TEST: serons-nous toujours {{perdu.e.s}}.
   559    607   TEST: les illustres {{inconnu(e)s}}.
   560    608   TEST: la situation des {{salarié/e/s}}.
   561    609   TEST: des {{Iranien-ne-s}} sont venues                                  ->> Iraniens et Iraniennes|Iraniennes et Iraniens|Iranien·ne·s
   562    610   TEST: rendez-vous avec des {{écrivain(e)s}}                             ->> écrivains et écrivaines|écrivaines et écrivains|écrivain·e·s
   563    611   TEST: la graphie “{{militant(e)s}}”.
   564    612   TEST: ces militant·e·s {{acharné}}.
   565    613   
   566    614   
   567    615   __[i](typo_écriture_épicène_singulier)__
   568         -    ({w_2}[éuitsrn])(?:[-·–—./]e|[(]e[)])  @@0
   569         -    <<- option("typo") and not \0.endswith("·e") ->> \1·e                                           # Écriture épicène. Utilisez un point médian. (Note : écriture journalistique brouillon.)
          616  +    ({w_1}[éuitsrn])(?:[-·–—./]e|[(]e[)])  @@0
          617  +    <<- option("typo") and (\1 == "un" or \1 == "Un") ->> un ou une                                 # Écriture épicène brouillon et imprononçable. Préférez écrire lisiblement.
          618  +    <<- __else__ and option("typo") and not \0.endswith("·e") ->> \1·e                              # Écriture épicène brouillon. Utilisez un point médian.
   570    619       <<- ~>> \1-e
   571    620   
   572    621   TEST: je suis {{déconsidéré.e}} par ma hiérarchie.
   573    622   TEST: il faut en parler à l’{{auteur(e)}} et à son agent.
   574    623   
   575         -
   576         -#__[i](typo_écriture_nombre_invariable)__
   577         -#    ({w_2})(?:[-·–—./]s|[(]s[)])  @@0
   578         -#    <<- option("typo") and not \0.endswith("·s") ->> \1·s                                           # Utilisez un point médian. (Note : écriture journalistique brouillon.)
   579         -#    <<- ~>> \1-s    
   580         -#
   581         -#TEST: le ou les partis {{appelé(s)}}
   582         -#TEST: Appelé·s, levez-vous.
   583         -
   584    624   
   585    625   # Majuscules après un point
   586    626   __[s]/maj(majuscule_après_point)__
   587    627       ({w_2})[.] ([a-zéàèî]\w*)  @@0,$
   588    628       <<- 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)
   589    629       and morph(\1, ":", False) and morph(\2, ":", False)
   590    630       -2>> =\2.capitalize()                                                                           # Après un point, une majuscule est généralement requise.
................................................................................
  1134   1174   TEST: le {{XXè}} siècle.                        ->> XXᵉ
  1135   1175   
  1136   1176   
  1137   1177   
  1138   1178   !!!! Écritures épicènes invariables                                                                 
  1139   1179   
  1140   1180   __[i](d_typo_écriture_épicène_pluriel)__
  1141         -    ({w_1}[éuitsrn])-(?:[nt]|)e-s  @@0
         1181  +    ({w_1}[éuitsrn])_(?:[nt]|)e_s  @@0
  1142   1182       <<- morphex(\1, ":[NAQ]", ":G") =>> define(\1, [":N:A:Q:e:p"])
  1143   1183   
  1144   1184   __[i](d_typo_écriture_épicène_singulier)__
  1145         -    ({w_2}[éuitsrn])-e  @@0
         1185  +    ({w_2}[éuitsrn])_e  @@0
  1146   1186       <<- morph(\1, ":[NAQ]", False) =>> define(\1, [":N:A:Q:e:s"])
  1147   1187   
  1148   1188   
  1149   1189   !!!! Dates                                                                                          
  1150   1190   
  1151   1191   __[i]/date(date_jour_mois_année)__
  1152   1192       (\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,$