Grammalecte  Changes On Branch d7dab42f48f18632

Changes In Branch dicfac Through [d7dab42f48] Excluding Merge-Ins

This is equivalent to a diff from 37ac74a3bb to d7dab42f48

2020-05-30
17:00
[fr] merge dicfac branch: dictionary update and new affixation rules check-in: 33eba8eb3d user: olr tags: trunk, fr
07:50
[fr] nouveau fichier des affixes (v7): drapeaux factorisés et élisions check-in: 221488ee8c user: olr tags: fr, dicfac
2020-05-28
22:40
[fr] dictionnaire orthographique: màj du README check-in: d7dab42f48 user: olr tags: fr, dicfac
19:18
[fr] affixe: permettre les combinaisons pour le drapeau S. -> nécessaire pour Um check-in: 491532d554 user: olr tags: fr, dicfac
18:21
merge trunk check-in: 3ebde2f15f user: olr tags: dicfac
17:28
[graphspell][py] remove deprecated code check-in: 37ac74a3bb user: olr tags: trunk, graphspell
15:20
[graphspell] suggestions: end of experiment -> aborted, too slow check-in: 4cd155b03e user: olr tags: trunk, graphspell

Deleted gc_lang/fr/dictionnaire/_templates/moz/install.rdf version [95b4de5d2f].

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?xml version="1.0"?>
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
     xmlns:em="http://www.mozilla.org/2004/em-rdf#">
  <Description about="urn:mozilla:install-manifest">

    <!-- https://developer.mozilla.org/en-US/docs/Install_Manifests -->
    <em:id>${mozId}@dictionaries.addons.mozilla.org</em:id>
    <em:version>${version}</em:version>
    <em:unpack>true</em:unpack>
    <em:type>64</em:type> <!-- dictionary -->

    <!-- Front End MetaData -->
    <em:name>Dictionnaire français</em:name>
    <em:description>${description}</em:description>
    <em:creator>Olivier R.</em:creator>
    <em:contributor>Olivier R.</em:contributor>
    <em:contributor>Sylvain P.</em:contributor>
    <em:contributor>Jean-Luc T.</em:contributor>
    <em:contributor>Laurent Dubois</em:contributor>
    <em:contributor>Dominique Pellé</em:contributor>
    <em:contributor>Pierre Poisson</em:contributor>
    <em:contributor>Pierre-Yves</em:contributor>
    <em:contributor>Renouvo</em:contributor>
    <em:homepageURL>https://grammalecte.net/</em:homepageURL>

    <em:targetApplication>
        <Description>
            <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> <!-- Firefox -->
            <em:minVersion>14.0</em:minVersion>
            <em:maxVersion>*</em:maxVersion>
        </Description>
    </em:targetApplication>

    <em:targetApplication>
        <Description>
            <em:id>{3550f703-e582-4d05-9a08-453d09bdfdc6}</em:id> <!-- Thunderbird -->
            <em:minVersion>14.0</em:minVersion>
            <em:maxVersion>61.*</em:maxVersion>
        </Description>
    </em:targetApplication>

    <em:targetApplication>
        <Description>
            <em:id>{92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}</em:id> <!-- SeaMonkey -->
            <em:minVersion>2.12</em:minVersion>
            <em:maxVersion>*</em:maxVersion>
        </Description>
    </em:targetApplication>

  </Description>
</RDF>
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<






































































































Added gc_lang/fr/dictionnaire/_templates/moz/manifest.json version [2b859e0ab8].













































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
    "name": "Dictionnaire français",
    "short_name": "French Dict.",

    "version": "${version}",

    "description": "Dictionnaire orthographique pour la langue française.",

    "dictionaries": {
        "fr": "dictionaries/fr-classic.dic"
    },

    "homepage_url": "https://grammalecte.net",

    "browser_specific_settings": {
        "gecko": {
            "id": "fr-dicollecte@dictionaries.addons.mozilla.org"
        }
    },

    "manifest_version": 2
}

Modified gc_lang/fr/dictionnaire/genfrdic.py from [9dbea97923] to [284dd6c8e1].

586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
    def createMozillaExtensions (self, spBuild, dTplVars, lDictVars, spDestGL=""):
        # Mozilla extension 1
        echo(" * Dictionnaire >> extension pour Mozilla")
        dTplVars['version'] = self.sVersion
        sExtensionName = EXT_PREFIX_MOZ + self.sVersion
        spExt = spBuild + '/' + sExtensionName
        dir_util.mkpath(spExt+'/dictionaries')
        copyTemplate('_templates/moz', spExt, 'install.rdf', dTplVars)
        spDict = spBuild + '/' + PREFIX_DICT_PATH + self.sVersion
        file_util.copy_file(spDict+'/fr-classique.dic', spExt+'/dictionaries/fr-classic.dic')
        file_util.copy_file(spDict+'/fr-classique.aff', spExt+'/dictionaries/fr-classic.aff')
        copyTemplate('orthographe', spExt, 'README_dict_fr.txt', dTplVars)
        createZipFiles(spExt, spBuild, sExtensionName + '.xpi')
        # Grammalecte
        if spDestGL:







|







586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
    def createMozillaExtensions (self, spBuild, dTplVars, lDictVars, spDestGL=""):
        # Mozilla extension 1
        echo(" * Dictionnaire >> extension pour Mozilla")
        dTplVars['version'] = self.sVersion
        sExtensionName = EXT_PREFIX_MOZ + self.sVersion
        spExt = spBuild + '/' + sExtensionName
        dir_util.mkpath(spExt+'/dictionaries')
        copyTemplate('_templates/moz', spExt, 'manifest.json', dTplVars)
        spDict = spBuild + '/' + PREFIX_DICT_PATH + self.sVersion
        file_util.copy_file(spDict+'/fr-classique.dic', spExt+'/dictionaries/fr-classic.dic')
        file_util.copy_file(spDict+'/fr-classique.aff', spExt+'/dictionaries/fr-classic.aff')
        copyTemplate('orthographe', spExt, 'README_dict_fr.txt', dTplVars)
        createZipFiles(spExt, spBuild, sExtensionName + '.xpi')
        # Grammalecte
        if spDestGL:
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
            sErr += 'lemme vide'
        if re.match(r"^\s", self.lemma):
            sErr += 'premier caractère un espace dans <' + self.lemma + '>'
        if re.search(r"\s$", self.lemma):
            sErr += 'espace en fin de lemme'
        if re.match(r"v[0123]", self.po) and not re.match(r"[eas_][ix_][tx_][nx_][pqreuvx_][mx_][ex_z][ax_z]\b", self.po[2:]):
            sErr += 'verbe inconnu: ' + self.po
        if (re.match(r"S[*.]", self.flags) and re.search("[sxz]$", self.lemma)) or (re.match(r"X[*.]", self.flags) and not re.search("[ul]$", self.lemma)):
            sErr += 'drapeau inutile'
        if self.iz == '' and re.match(r"[SXAI](?!=)", self.flags) and self.po:
            sErr += '[is] vide'
        if re.match(r"pl|sg|inv", self.iz):
            sErr += '[is] incomplet'
        if re.match(r"[FW]", self.flags) and re.search(r"epi|mas|fem|inv|sg|pl", self.iz):
            sErr += '[is] incohérent'
        if re.match(r".\*", self.flags) and re.match(r"[bcdfgjklmnpqrstvwxz]", self.lemma):
            sErr += 'drapeau pour lemme commençant par une voyelle'
        if re.search(r"pl|sg|inv", self.iz) and re.match(r"[SXAIFW](?!=)", self.flags):
            sErr += '[is] incohérent'
        if re.search(r"nom|adj", self.po) and re.match(r"(?i)[aâàäáeéèêëiîïíìoôöóòuûüúù]", self.lemma) and re.match("[SFWXAI][.]", self.flags) \
           and "pel" not in self.lx:
            sErr += 'le drapeau derait finir avec *'
        if self.iz.endswith(("mas", "fem", "epi")) and (not self.flags or not self.flags.startswith(("S", "X", "F", "W", "A", "I", "U"))):
            sErr += '[is] incomplet'
        if self.flags.startswith(("a", "b", "c", "d")) and not self.lemma.endswith("er"):
            sErr += "drapeau pour verbe du 1ᵉʳ groupe sur un lemme non conforme"
        if self.flags.startswith("f") and not self.lemma.endswith(("ir", "ïr")):
            sErr += "drapeau pour verbe du 2ᵉ groupe sur un lemme non conforme"
        if sErr:







|







<
<


<
<
<







808
809
810
811
812
813
814
815
816
817
818
819
820
821
822


823
824



825
826
827
828
829
830
831
            sErr += 'lemme vide'
        if re.match(r"^\s", self.lemma):
            sErr += 'premier caractère un espace dans <' + self.lemma + '>'
        if re.search(r"\s$", self.lemma):
            sErr += 'espace en fin de lemme'
        if re.match(r"v[0123]", self.po) and not re.match(r"[eas_][ix_][tx_][nx_][pqreuvx_][mx_][ex_z][ax_z]\b", self.po[2:]):
            sErr += 'verbe inconnu: ' + self.po
        if (re.match(r"S[.]", self.flags) and re.search("[sxz]$", self.lemma)) or (re.match(r"X[.]", self.flags) and not re.search("[ul]$", self.lemma)):
            sErr += 'drapeau inutile'
        if self.iz == '' and re.match(r"[SXAI](?!=)", self.flags) and self.po:
            sErr += '[is] vide'
        if re.match(r"pl|sg|inv", self.iz):
            sErr += '[is] incomplet'
        if re.match(r"[FW]", self.flags) and re.search(r"epi|mas|fem|inv|sg|pl", self.iz):
            sErr += '[is] incohérent'


        if re.search(r"pl|sg|inv", self.iz) and re.match(r"[SXAIFW](?!=)", self.flags):
            sErr += '[is] incohérent'



        if self.iz.endswith(("mas", "fem", "epi")) and (not self.flags or not self.flags.startswith(("S", "X", "F", "W", "A", "I", "U"))):
            sErr += '[is] incomplet'
        if self.flags.startswith(("a", "b", "c", "d")) and not self.lemma.endswith("er"):
            sErr += "drapeau pour verbe du 1ᵉʳ groupe sur un lemme non conforme"
        if self.flags.startswith("f") and not self.lemma.endswith(("ir", "ïr")):
            sErr += "drapeau pour verbe du 2ᵉ groupe sur un lemme non conforme"
        if sErr:
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
            morph = self.lexMorph()
        lFlexions = [(self.lemma, morph, self.di)]  if iPR == 0 and not self.flags.endswith('()')  else []
        lFlexPrefix = []
        lFlexSuffix = []
        for sFlag in makeLongFlags(self.flags):
            if sFlag not in dFlags:
                if sFlag not in ['**', '()', '||', '--']:
                    lFlexions.append( (self.lemma, '[unknown flag: {}]'.format(sFlag)) )
                    echo("ERROR: "  + self.lemma + ' - unknown flag: ' + sFlag)
            else:
                oFlag = dFlags[sFlag]
                if not oFlag.bSfx:
                    # cas des préfixes
                    for oRule in oFlag.lRules:
                        if oRule.motif.search(self.lemma):







|







933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
            morph = self.lexMorph()
        lFlexions = [(self.lemma, morph, self.di)]  if iPR == 0 and not self.flags.endswith('()')  else []
        lFlexPrefix = []
        lFlexSuffix = []
        for sFlag in makeLongFlags(self.flags):
            if sFlag not in dFlags:
                if sFlag not in ['**', '()', '||', '--']:
                    lFlexions.append( (self.lemma, '[unknown flag: {}]'.format(sFlag), self.di) )
                    echo("ERROR: "  + self.lemma + ' - unknown flag: ' + sFlag)
            else:
                oFlag = dFlags[sFlag]
                if not oFlag.bSfx:
                    # cas des préfixes
                    for oRule in oFlag.lRules:
                        if oRule.motif.search(self.lemma):

Modified gc_lang/fr/dictionnaire/orthographe/FRANCAIS.dic from [3ea594acba] to [76f883f0c7].

more than 10,000 changes

Modified gc_lang/fr/dictionnaire/orthographe/FRANCAIS_5.aff from [72dbf0e245] to [433d8bd2f8].

more than 10,000 changes

Modified gc_lang/fr/dictionnaire/orthographe/README_dict_fr.txt from [52986d6030] to [af3abd1734].

1
2
3
4
5
6
7
8
9
10
11
12
13
_______________________________________________________________________________

   DICTIONNAIRES ORTHOGRAPHIQUES FRANÇAIS
   version ${version}

   Olivier R. - olivier<at>grammalecte<dot>net
   https://grammalecte.net/

   Licence :
     MPL : Mozilla Public License
     version 2.0  --  http://www.mozilla.org/MPL/2.0/

   Ce dictionnaire ne peut fonctionner qu’avec un logiciel utilisant le





|







1
2
3
4
5
6
7
8
9
10
11
12
13
_______________________________________________________________________________

   DICTIONNAIRES ORTHOGRAPHIQUES FRANÇAIS
   version ${version}

   Olivier R.
   https://grammalecte.net/

   Licence :
     MPL : Mozilla Public License
     version 2.0  --  http://www.mozilla.org/MPL/2.0/

   Ce dictionnaire ne peut fonctionner qu’avec un logiciel utilisant le
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
   http://www.orthographe-recommandee.info/

   Malgré les rectifications modestes apportées par cette réforme, la nouvelle
   orthographe suscite beaucoup de polémiques. Afin de satisfaire les exigences
   de chacun, quatre dictionnaires existent, respectant différemment cette
   réforme.

    Dictionnaire “Moderne”
        Ce dictionnaire propose une sélection des graphies classiques et
        réformées, suivant la lente évolution de l’orthographe actuelle. Ce
        dictionnaire contient les graphies les moins polémiques de la réforme.

    Dictionnaire “Classique”  [recommandé]
        Ce dictionnaire est une extension du dictionnaire «Moderne» et propose
        en sus des graphies alternatives, parfois encore très usitées, parfois
        tombées en désuétude.

    Dictionnaire “Réforme 1990”
        Ce dictionnaire ne connaît que les graphies nouvelles des mots concernés
        par la réforme de 1990.

    Dictionnaire “Toutes variantes”
        Ce dictionnaire contient les nouvelles et les anciennes graphies des
        mots concernés par la réforme de 1990.







<
<
<
<
<

|
|
<








50
51
52
53
54
55
56





57
58
59

60
61
62
63
64
65
66
67
   http://www.orthographe-recommandee.info/

   Malgré les rectifications modestes apportées par cette réforme, la nouvelle
   orthographe suscite beaucoup de polémiques. Afin de satisfaire les exigences
   de chacun, quatre dictionnaires existent, respectant différemment cette
   réforme.






    Dictionnaire “Classique”  [recommandé]
        Ce dictionnaire propose l’orthographe usuelle du français, avec en sus
        quelques graphies nouvelles rectifiant les incohérences passées.


    Dictionnaire “Réforme 1990”
        Ce dictionnaire ne connaît que les graphies nouvelles des mots concernés
        par la réforme de 1990.

    Dictionnaire “Toutes variantes”
        Ce dictionnaire contient les nouvelles et les anciennes graphies des
        mots concernés par la réforme de 1990.