Index: gc_lang/fr/config.ini ================================================================== --- gc_lang/fr/config.ini +++ gc_lang/fr/config.ini @@ -85,10 +85,11 @@ oxt/Dictionnaires/ds_strings.py = pythonpath/ds_strings.py # Dictionary Options oxt/DictOptions/DictOptions.py = pythonpath/DictOptions.py oxt/DictOptions/do_strings.py = pythonpath/do_strings.py oxt/DictOptions/LexiconEditor.py = pythonpath/LexiconEditor.py +oxt/DictOptions/lxe_conj_data.py = pythonpath/lxe_conj_data.py oxt/DictOptions/lxe_strings.py = pythonpath/lxe_strings.py # ContextMenu oxt/ContextMenu/ContextMenu.py = ContextMenu.py oxt/ContextMenu/jobs.xcu = config/jobs.xcu # TextFormatter Index: gc_lang/fr/oxt/DictOptions/LexiconEditor.py ================================================================== --- gc_lang/fr/oxt/DictOptions/LexiconEditor.py +++ gc_lang/fr/oxt/DictOptions/LexiconEditor.py @@ -2,15 +2,18 @@ # by Olivier R. # License: GPL 3 import unohelper import uno +import re import traceback import helpers import lxe_strings +import lxe_conj_data import grammalecte.graphspell as sc +import grammalecte.fr.conj as conj from com.sun.star.task import XJobExecutor from com.sun.star.awt import XActionListener @@ -46,10 +49,12 @@ self.xDesktop = self.xSvMgr.createInstanceWithContext("com.sun.star.frame.Desktop", self.ctx) self.xDocument = self.xDesktop.getCurrentComponent() self.xContainer = None self.xDialog = None self.oSpellChecker = None + # data + self.lGeneratedFlex = [] def _addWidget (self, name, wtype, x, y, w, h, **kwargs): xWidget = self.xDialog.createInstance('com.sun.star.awt.UnoControl%sModel' % wtype) xWidget.Name = name xWidget.PositionX = x @@ -120,50 +125,53 @@ #### Add word self._addWidget("add_section", 'FixedLine', nX1, nY1, 190, nHeight, Label = self.dUI.get("add_section", "#err"), FontDescriptor = xFDTitle) #self._addWidget('main_lemma_label', 'FixedText', nX1, nY1+10, 30, nHeight, Label = self.dUI.get('lemma', "#err")) self.xLemma = self._addWidget('main_lemma', 'Edit', nX1, nY1+10, 120, 14, FontDescriptor = xFDTitle) - self._addWidget('close_button', 'Button', nX1+130, nY1+10, 60, 14, Label = self.dUI.get('close_button', "#err"), FontDescriptor = xFDTitle, TextColor = 0x550000) + self._addWidget('generate_button', 'Button', nX1+130, nY1+10, 60, 14, Label = self.dUI.get('generate_button', "#err"), FontDescriptor = xFDTitle, TextColor = 0x550000) # Radio buttons: main POS tag # Note: the only way to group RadioButtons is to create them successively - self.xNA = self._addWidget('nom_adj', 'RadioButton', nX1, nY2+12, 60, nHeight, Label = self.dUI.get("nom_adj", "#err")) - self.xN = self._addWidget('nom', 'RadioButton', nX1, nY2+22, 60, nHeight, Label = self.dUI.get("nom", "#err")) - self.xA = self._addWidget('adj', 'RadioButton', nX1, nY2+32, 60, nHeight, Label = self.dUI.get("adj", "#err")) - self.xM1 = self._addWidget('M1', 'RadioButton', nX1, nY3+12, 60, nHeight, Label = self.dUI.get("M1", "#err")) - self.xM2 = self._addWidget('M2', 'RadioButton', nX1, nY3+22, 60, nHeight, Label = self.dUI.get("M2", "#err")) - self.xMP = self._addWidget('MP', 'RadioButton', nX1, nY3+32, 60, nHeight, Label = self.dUI.get("MP", "#err")) - self.xV = self._addWidget('verb', 'RadioButton', nX1, nY4+2, 10, nHeight) - self.xW = self._addWidget('adv', 'RadioButton', nX1, nY5+2, 10, nHeight) - self.xX = self._addWidget('other', 'RadioButton', nX1, nY6+2, 10, nHeight) + self.xNA = self._addWidget('nom_adj', 'RadioButton', nX1, nY2+12, 60, nHeight, Label = self.dUI.get("nom_adj", "#err"), HelpText = ":N:A") + self.xN = self._addWidget('nom', 'RadioButton', nX1, nY2+22, 60, nHeight, Label = self.dUI.get("nom", "#err"), HelpText = ":N") + self.xA = self._addWidget('adj', 'RadioButton', nX1, nY2+32, 60, nHeight, Label = self.dUI.get("adj", "#err"), HelpText = ":A") + self.xM1 = self._addWidget('M1', 'RadioButton', nX1, nY3+12, 60, nHeight, Label = self.dUI.get("M1", "#err"), HelpText = ":M1") + self.xM2 = self._addWidget('M2', 'RadioButton', nX1, nY3+22, 60, nHeight, Label = self.dUI.get("M2", "#err"), HelpText = ":M2") + self.xMP = self._addWidget('MP', 'RadioButton', nX1, nY3+32, 60, nHeight, Label = self.dUI.get("MP", "#err"), HelpText = ":MP") + self.xV = self._addWidget('verb', 'RadioButton', nX1, nY4+2, 10, nHeight, HelpText = ":V") + self.xW = self._addWidget('adv', 'RadioButton', nX1, nY5+2, 10, nHeight, HelpText = ":W") + self.xX = self._addWidget('other', 'RadioButton', nX1, nY6+2, 10, nHeight, HelpText = ":X") # Nom, adjectif self._addWidget("fl_nom_adj", 'FixedLine', nX1, nY2, 190, nHeight, Label = self.dUI.get("common_name", "#err"), FontDescriptor = xFDSubTitle) - self.xSepi = self._addWidget('Sepi', 'RadioButton', nX1+65, nY2+12, 50, nHeight, Label = self.dUI.get("epi", "#err")) - self.xSmas = self._addWidget('Smas', 'RadioButton', nX1+65, nY2+22, 50, nHeight, Label = self.dUI.get("mas", "#err")) - self.xSfem = self._addWidget('Sfem', 'RadioButton', nX1+65, nY2+32, 50, nHeight, Label = self.dUI.get("fem", "#err")) - self.xSs = self._addWidget('S-s', 'RadioButton', nX1+120, nY2+12, 50, nHeight, Label = self.dUI.get("-s", "#err")) - self.xSx = self._addWidget('S-x', 'RadioButton', nX1+120, nY2+22, 50, nHeight, Label = self.dUI.get("-x", "#err")) - self.xSinv = self._addWidget('Sinv', 'RadioButton', nX1+120, nY2+32, 50, nHeight, Label = self.dUI.get("inv", "#err")) + self.xSepi = self._addWidget('Sepi', 'RadioButton', nX1+65, nY2+12, 50, nHeight, Label = self.dUI.get("epi", "#err"), HelpText = ":e") + self.xSmas = self._addWidget('Smas', 'RadioButton', nX1+65, nY2+22, 50, nHeight, Label = self.dUI.get("mas", "#err"), HelpText = ":m") + self.xSfem = self._addWidget('Sfem', 'RadioButton', nX1+65, nY2+32, 50, nHeight, Label = self.dUI.get("fem", "#err"), HelpText = ":f") + self._addWidget("fl_sep1", 'FixedLine', nX1, nY2, 1, nHeight) + self.xSs = self._addWidget('S-s', 'RadioButton', nX1+120, nY2+12, 50, nHeight, Label = self.dUI.get("-s", "#err"), HelpText = "·s") + self.xSx = self._addWidget('S-x', 'RadioButton', nX1+120, nY2+22, 50, nHeight, Label = self.dUI.get("-x", "#err"), HelpText = "·x") + self.xSinv = self._addWidget('Sinv', 'RadioButton', nX1+120, nY2+32, 50, nHeight, Label = self.dUI.get("inv", "#err"), HelpText = ":i") self._addWidget("alt_lemma_label", 'FixedLine', nX1+10, nY2+42, 180, nHeight, Label = self.dUI.get("alt_lemma", "#err")) self.xAltLemma = self._addWidget('alt_lemma', 'Edit', nX1+10, nY2+52, 120, nHeight) - self.xNA2 = self._addWidget('nom_adj2', 'RadioButton', nX1+10, nY2+65, 60, nHeight, Label = self.dUI.get("nom_adj", "#err")) - self.xN2 = self._addWidget('nom2', 'RadioButton', nX1+10, nY2+75, 60, nHeight, Label = self.dUI.get("nom", "#err")) - self.xA2 = self._addWidget('adj2', 'RadioButton', nX1+10, nY2+85, 60, nHeight, Label = self.dUI.get("adj", "#err")) - self.xSepi2 = self._addWidget('Sepi2', 'RadioButton', nX1+75, nY2+65, 50, nHeight, Label = self.dUI.get("epi", "#err")) - self.xSmas2 = self._addWidget('Smas2', 'RadioButton', nX1+75, nY2+75, 50, nHeight, Label = self.dUI.get("mas", "#err")) - self.xSfem2 = self._addWidget('Sfem2', 'RadioButton', nX1+75, nY2+85, 50, nHeight, Label = self.dUI.get("fem", "#err")) - self.xSs2 = self._addWidget('S-s2', 'RadioButton', nX1+130, nY2+65, 50, nHeight, Label = self.dUI.get("-s", "#err")) - self.xSx2 = self._addWidget('S-x2', 'RadioButton', nX1+130, nY2+75, 50, nHeight, Label = self.dUI.get("-x", "#err")) - self.xSinv2 = self._addWidget('Sinv2', 'RadioButton', nX1+130, nY2+85, 50, nHeight, Label = self.dUI.get("inv", "#err")) + self.xNA2 = self._addWidget('nom_adj2', 'RadioButton', nX1+10, nY2+65, 60, nHeight, Label = self.dUI.get("nom_adj", "#err"), HelpText = ":N:A") + self.xN2 = self._addWidget('nom2', 'RadioButton', nX1+10, nY2+75, 60, nHeight, Label = self.dUI.get("nom", "#err"), HelpText = ":N") + self.xA2 = self._addWidget('adj2', 'RadioButton', nX1+10, nY2+85, 60, nHeight, Label = self.dUI.get("adj", "#err"), HelpText = ":A") + self._addWidget("fl_sep2", 'FixedLine', nX1, nY2, 1, nHeight) + self.xSepi2 = self._addWidget('Sepi2', 'RadioButton', nX1+75, nY2+65, 50, nHeight, Label = self.dUI.get("epi", "#err"), HelpText = ":e") + self.xSmas2 = self._addWidget('Smas2', 'RadioButton', nX1+75, nY2+75, 50, nHeight, Label = self.dUI.get("mas", "#err"), HelpText = ":m") + self.xSfem2 = self._addWidget('Sfem2', 'RadioButton', nX1+75, nY2+85, 50, nHeight, Label = self.dUI.get("fem", "#err"), HelpText = ":f") + self._addWidget("fl_sep3", 'FixedLine', nX1, nY2, 1, nHeight) + self.xSs2 = self._addWidget('S-s2', 'RadioButton', nX1+130, nY2+65, 50, nHeight, Label = self.dUI.get("-s", "#err"), HelpText = "·s") + self.xSx2 = self._addWidget('S-x2', 'RadioButton', nX1+130, nY2+75, 50, nHeight, Label = self.dUI.get("-x", "#err"), HelpText = "·x") + self.xSinv2 = self._addWidget('Sinv2', 'RadioButton', nX1+130, nY2+85, 50, nHeight, Label = self.dUI.get("inv", "#err"), HelpText = ":i") # Nom propre self._addWidget("fl_M", 'FixedLine', nX1, nY3, 190, nHeight, Label = self.dUI.get("proper_name", "#err"), FontDescriptor = xFDSubTitle) - self.xMepi = self._addWidget('Mepi', 'RadioButton', nX1+65, nY3+12, 50, nHeight, Label = self.dUI.get("epi", "#err")) - self.xMmas = self._addWidget('Mmas', 'RadioButton', nX1+65, nY3+22, 50, nHeight, Label = self.dUI.get("mas", "#err")) - self.xMfem = self._addWidget('Mfem', 'RadioButton', nX1+65, nY3+32, 50, nHeight, Label = self.dUI.get("fem", "#err")) + self.xMepi = self._addWidget('Mepi', 'RadioButton', nX1+65, nY3+12, 50, nHeight, Label = self.dUI.get("epi", "#err"), HelpText = ":e") + self.xMmas = self._addWidget('Mmas', 'RadioButton', nX1+65, nY3+22, 50, nHeight, Label = self.dUI.get("mas", "#err"), HelpText = ":m") + self.xMfem = self._addWidget('Mfem', 'RadioButton', nX1+65, nY3+32, 50, nHeight, Label = self.dUI.get("fem", "#err"), HelpText = ":f") # Verbe self._addWidget("fl_verb", 'FixedLine', nX2, nY4, 180, nHeight, Label = self.dUI.get("verb", "#err"), FontDescriptor = xFDSubTitle) self.xV_i = self._addWidget('v_i', 'CheckBox', nX2, nY4+12, 60, nHeight, Label = self.dUI.get("v_i", "#err")) self.xV_t = self._addWidget('v_t', 'CheckBox', nX2, nY4+20, 60, nHeight, Label = self.dUI.get("v_t", "#err")) @@ -195,25 +203,25 @@ self.xGridModelNew = self._addGrid("list_grid_gwords", nXB, nY1+10, 200, 175, [ {"Title": self.dUI.get("lex_flex", "#err"), "ColumnWidth": 65}, {"Title": self.dUI.get("lex_lemma", "#err"), "ColumnWidth": 50}, {"Title": self.dUI.get("lex_tags", "#err"), "ColumnWidth": 65} ]) - self._addWidget('add_button', 'Button', nXB, nY1+190, 95, 12, Label = self.dUI.get('add_button', "#err"), FontDescriptor = xFDTitle, TextColor = 0x005500) - self._addWidget('delete_button', 'Button', nXB+100, nY1+190, 100, 12, Label = self.dUI.get('delete_button', "#err"), FontDescriptor = xFDTitle, TextColor = 0x550000) + self.xAdd = self._addWidget('add_button', 'Button', nXB, nY1+190, 95, 12, Label = self.dUI.get('add_button', "#err"), FontDescriptor = xFDTitle, TextColor = 0x005500, Enabled = False) + self.xDelete = self._addWidget('delete_button', 'Button', nXB+100, nY1+190, 100, 12, Label = self.dUI.get('delete_button', "#err"), FontDescriptor = xFDTitle, TextColor = 0x550000) nY2b = nY1 + 205 # lexicon info section self._addWidget("lexicon_info_section", 'FixedLine', nXB, nY2b, 200, nHeight, Label = self.dUI.get("lexicon_info_section", "#err"), FontDescriptor = xFDTitle) self._addWidget("added_entries_label", 'FixedText', nXB, nY2b+10, 90, nHeight, Label = self.dUI.get("added_entries_label", "#err")) self._addWidget("deleted_entries_label", 'FixedText', nXB, nY2b+20, 90, nHeight, Label = self.dUI.get("deleted_entries_label", "#err")) self._addWidget("num_of_entries_label1", 'FixedText', nXB, nY2b+30, 90, nHeight, Label = self.dUI.get("num_of_entries_label", "#err")) - self._addWidget('save_button', 'Button', nXB+150, nY2b+10, 50, 12, Label = self.dUI.get('save_button', "#err"), FontDescriptor = xFDSubTitle, TextColor = 0x005500) + self.xSave = self._addWidget('save_button', 'Button', nXB+150, nY2b+10, 50, 12, Label = self.dUI.get('save_button', "#err"), FontDescriptor = xFDSubTitle, TextColor = 0x005500) # dictionary section self._addWidget("dictionary_section", 'FixedLine', nXB, nY2b+45, 200, nHeight, Label = self.dUI.get("dictionary_section", "#err"), FontDescriptor = xFDTitle) self._addWidget("save_date_label", 'FixedText', nXB, nY2b+55, 90, nHeight, Label = self.dUI.get("save_date_label", "#err")) self._addWidget("num_of_entries_label2", 'FixedText', nXB, nY2b+65, 90, nHeight, Label = self.dUI.get("num_of_entries_label", "#err")) - self._addWidget('export_button', 'Button', nXB+150, nY2b+55, 50, 12, Label = self.dUI.get('export_button', "#err"), FontDescriptor = xFDSubTitle, TextColor = 0x005500) + self.xExport = self._addWidget('export_button', 'Button', nXB+150, nY2b+55, 50, 12, Label = self.dUI.get('export_button', "#err"), FontDescriptor = xFDSubTitle, TextColor = 0x005500) #### Lexicon section self._addWidget("lexicon_section", 'FixedLine', nXC, nY1, 200, nHeight, Label = self.dUI.get("lexicon_section", "#err"), FontDescriptor = xFDTitle) self.xGridModelLex = self._addGrid("list_grid_lexicon", nXC, nY1+10, 200, 270, [ {"Title": self.dUI.get("lex_flex", "#err"), "ColumnWidth": 65}, @@ -230,12 +238,12 @@ self.xContainer.getControl('add_button').setActionCommand('Add') self.xContainer.getControl('delete_button').addActionListener(self) self.xContainer.getControl('delete_button').setActionCommand('Delete') self.xContainer.getControl('save_button').addActionListener(self) self.xContainer.getControl('save_button').setActionCommand('Save') - self.xContainer.getControl('close_button').addActionListener(self) - self.xContainer.getControl('close_button').setActionCommand('Close') + self.xContainer.getControl('generate_button').addActionListener(self) + self.xContainer.getControl('generate_button').setActionCommand('Update') self.xContainer.setVisible(False) xToolkit = self.xSvMgr.createInstanceWithContext('com.sun.star.awt.ExtToolkit', self.ctx) self.xContainer.createPeer(xToolkit, None) self.xContainer.execute() @@ -246,10 +254,12 @@ pass elif xActionEvent.ActionCommand == "Delete": pass elif xActionEvent.ActionCommand == "Save": pass + elif xActionEvent.ActionCommand == "Update": + self.updateGenWords() elif xActionEvent.ActionCommand == "Close": self.xContainer.endExecute() except: traceback.print_exc() @@ -260,17 +270,188 @@ xDialog.run() except: traceback.print_exc() # Code + def getRadioValue (self, *args): + for x in args: + if x.State: + return x.HelpText + return None + + def updateGenWords (self): + self.lGeneratedFlex = [] + sLemma = self.xLemma.Text.strip() + if sLemma: + if self.getRadioValue(self.xNA, self.xN, self.xA): + # Substantif + sPOS = self.getRadioValue(self.xNA, self.xN, self.xA) + sGenderTag = self.getRadioValue(self.xSepi, self.xSmas, self.xSfem) + if sGenderTag: + if self.xSs.State: + self.lGeneratedFlex.append((sLemma, sLemma, sPOS+sGenderTag+":s/*")) + self.lGeneratedFlex.append((sLemma+"s", sLemma, sPOS+sGenderTag+":p/*")) + elif self.xSx.State: + self.lGeneratedFlex.append((sLemma, sLemma, sPOS+sGenderTag+":s/*")) + self.lGeneratedFlex.append((sLemma+"x", sLemma, sPOS+sGenderTag+":p/*")) + elif self.xSinv.State: + self.lGeneratedFlex.append((sLemma, sLemma, sPOS+sGenderTag+":i/*")) + sLemma2 = self.xAltLemma.Text.strip() + if sLemma2 and self.getRadioValue(self.xNA2, self.xN2, self.xA2) and self.getRadioValue(self.xSepi2, self.xSmas2, self.xSfem2): + sTag2 = self.getRadioValue(self.xNA2, self.xN2, self.xA2) + self.getRadioValue(self.xSepi2, self.xSmas2, self.xSfem2) + if self.xSs2.State: + self.lGeneratedFlex.append((sLemma2, sLemma, sTag2+":s/*")) + self.lGeneratedFlex.append((sLemma2+"s", sLemma, sTag2+":p/*")) + elif self.xSx2.State: + self.lGeneratedFlex.append((sLemma2, sLemma, sTag2+":s/*")) + self.lGeneratedFlex.append((sLemma2+"x", sLemma, sTag2+":p/*")) + elif self.xSinv2.State: + self.lGeneratedFlex.append((sLemma2, sLemma, sTag2+":i/*")) + elif self.getRadioValue(self.xM1, self.xM2, self.xMP): + # Nom propre + sPOS = self.getRadioValue(self.xM1, self.xM2, self.xMP) + sLemma = sLemma[0:1].upper() + sLemma[1:]; + sGenderTag = self.getRadioValue(self.xMepi, self.xMmas, self.xMfem) + if sGenderTag: + self.lGeneratedFlex.append((sLemma, sLemma, sPOS+sGenderTag+":i/*")) + elif self.xV.State: + # Verbe + if sLemma.endswith(("er", "ir", "re")): + sLemma = sLemma.lower() + c_i = "i" if self.xV_i.State else "_" + c_t = "t" if self.xV_t.State else "_" + c_n = "n" if self.xV_n.State else "_" + c_p = "p" if self.xV_p.State else "_" + c_m = "m" if self.xV_m.State else "_" + c_ae = "e" if self.xV_ae.State else "_" + c_aa = "a" if self.xV_aa.State else "_" + sVerbTag = c_i + c_t + c_n + c_p + c_m + c_ae + c_aa + if not sVerbTag.endswith("__") and not sVerbTag.startswith("____"): + sVerbPattern = self.xVpattern.Text.strip() + if not sVerbPattern: + if sLemma.endswith("er") or sLemma.endswith("ir"): + # tables de conjugaison du 1er et du 2e groupe + cGroup = "1" if sLemma.endswith("er") else "2" + for nCut, sAdd, sFlexTags, sPattern in self._getConjRules(sLemma): + if not sPattern or re.search(sPattern, sLemma): + self.lGeneratedFlex.append((sLemma[0:-nCut]+sAdd, sLemma, ":V" + cGroup + "_" + sVerbTag + sFlexTags)) + # participes passés + bPpasVar = "var" if self.xV_pp.State else "invar" + lPpasRules = lxe_conj_data.oConj["V1_ppas"][bPpasVar] if sLemma.endswith("er") else lxe_conj_data.oConj["V2_ppas"][bPpasVar] + for nCut, sAdd, sFlexTags, sPattern in lPpasRules: + if not sPattern or re.search(sPattern, sLemma): + self.lGeneratedFlex.append((sLemma[0:-nCut]+sAdd, sLemma, ":V" + cGroup + "_" + sVerbTag + sFlexTags)) + else: + # copie du motif d’un autre verbe : utilisation du conjugueur + if conj.isVerb(sVerbPattern): + oVerb = conj.Verb(sLemma, sVerbPattern) + for sTag1, dFlex in oVerb.dConj.items(): + if sTag1 != ":Q": + for sTag2, sConj in dFlex.items(): + if sTag2.startswith(":") and sConj: + self.lGeneratedFlex.append((sConj, sLemma, ":V" + oVerb.cGroup + "_" + sVerbTag + sTag1 + sTag2)) + else: + # participes passés + if dFlex[":Q3"]: + if dFlex[":Q2"]: + self.lGeneratedFlex.append((dFlex[":Q1"], sLemma, ":V" + oVerb.cGroup + "_" + sVerbTag + ":Q:A:m:s/*")) + self.lGeneratedFlex.append((dFlex[":Q2"], sLemma, ":V" + oVerb.cGroup + "_" + sVerbTag + ":Q:A:m:p/*")) + else: + self.lGeneratedFlex.append((dFlex[":Q1"], sLemma, ":V" + oVerb.cGroup + "_" + sVerbTag + ":Q:A:m:i/*")) + self.lGeneratedFlex.append((dFlex[":Q3"], sLemma, ":V" + oVerb.cGroup + "_" + sVerbTag + ":Q:A:f:s/*")) + self.lGeneratedFlex.append((dFlex[":Q4"], sLemma, ":V" + oVerb.cGroup + "_" + sVerbTag + ":Q:A:f:p/*")) + else: + self.lGeneratedFlex.append((dFlex[":Q1"], sLemma, ":V" + oVerb.cGroup + "_" + sVerbTag + ":Q:e:i/*")) + elif self.xW.State: + # Adverbe + sLemma = sLemma.lower(); + self.lGeneratedFlex.append((sLemma, sLemma, ":W/*")) + elif self.xX.State: + # Autre + sFlexion = self.xFlexion.Text.strip() + sTags = self.xTags.Text.strip() + if sFlexion and sTags.startswith(":"): + self.lGeneratedFlex.append((sFlexion, sLemma, sTags)) + self.showGenWords() + + def _getConjRules (self, sVerb): + if sVerb.endswith("ir"): + # deuxième groupe + return lxe_conj_data.oConj["V2"] + elif sVerb.endswith("er"): + # premier groupe, conjugaison en fonction de la terminaison du lemme + # 5 lettres + if sVerb[-5:] in lxe_conj_data.oConj["V1"]: + return lxe_conj_data.oConj["V1"][sVerb[-5:]] + # 4 lettres + if sVerb[-4:] in lxe_conj_data.oConj["V1"]: + if sVerb.endswith(("eler", "eter")): + return lxe_conj_data.oConj["V1"][sVerb[-4:]]["1"] + return lxe_conj_data.oConj["V1"][sVerb[-4:]] + # 3 lettres + if sVerb[-3:] in lxe_conj_data.oConj["V1"]: + return lxe_conj_data.oConj["V1"][sVerb[-3:]] + return lxe_conj_data.oConj["V1"]["er"] + else: + # troisième groupe + return [ [0, "", ":Y/*", false] ] + + def showGenWords (self): + xGridDataModel = self.xGridModelNew.GridDataModel + xGridDataModel.removeAllRows() + if not self.lGeneratedFlex: + self.xAdd.Enabled = False + return + for i, (sFlexion, sLemma, sTag) in enumerate(self.lGeneratedFlex): + xGridDataModel.addRow(i, (sFlexion, sLemma, sTag)) + self.xAdd.Enabled = True + @_waitPointer def add (self): pass + + @_waitPointer + def delete (self): + pass @_waitPointer def loadLexicon (self): pass + @_waitPointer + def saveLexicon (self): + pass #g_ImplementationHelper = unohelper.ImplementationHelper() #g_ImplementationHelper.addImplementation(LexiconEditor, 'net.grammalecte.LexiconEditor', ('com.sun.star.task.Job',)) + + +# const oFlexGen = { + +# cMainTag: "", + +# lFlexion: [], + +# clear: function () { +# this.lFlexion = []; +# oWidgets.hideElement("actions"); +# }, + +# addToLexicon: function () { +# try { +# oLexicon.addFlexions(this.lFlexion); +# document.getElementById("lemma").value = ""; +# document.getElementById("lemma").focus(); +# oWidgets.showSection("section_vide"); +# oWidgets.hideElement("editor"); +# oWidgets.hideElement("actions"); +# oWidgets.clear(); +# oWidgets.showElement("save_button"); +# this.clear(); +# this.cMainTag = ""; +# } +# catch (e) { +# showError(e); +# } +# } +# } ADDED gc_lang/fr/oxt/DictOptions/lxe_conj_data.py Index: gc_lang/fr/oxt/DictOptions/lxe_conj_data.py ================================================================== --- gc_lang/fr/oxt/DictOptions/lxe_conj_data.py +++ gc_lang/fr/oxt/DictOptions/lxe_conj_data.py @@ -0,0 +1,1948 @@ +# Conjugation data + +# beta stage, unfinished, may be useless or the root for a new way to generate flexions… + +# Règles de conjugaison + +oConj = { + "V1_ppas": { + "var": [ + [2, "é", ":Q:A:1ŝ:m:s/*", False], + [2, "és", ":Q:A:m:p/*", False], + [2, "ée", ":Q:A:f:s/*", False], + [2, "ées", ":Q:A:f:p/*", False], + ], + "invar": [ + [2, "é", ":Q:e:i/*", False], + ] + }, + + "V2_ppas": { + "var": [ + [2, "i", ":Q:A:m:s/*", False], + [2, "is", ":Q:A:m:p/*", False], + [2, "ie", ":Q:A:f:s/*", False], + [2, "ies", ":Q:A:f:p/*", False], + ], + "invar": [ + [2, "i", ":Q:e:i/*", False], + ] + }, + + # deuxième groupe (le seul groupe régulier) + "V2": [ + [2, "ir", ":Y/*", False], + [2, "issant", ":P/*", False], + [2, "is", ":Ip:Is:1s:2s/*", False], + [2, "it", ":Ip:Is:3s/*", False], + [2, "issons", ":Ip:1p/*", False], + [2, "issez", ":Ip:2p/*", False], + [2, "issent", ":Ip:Sp:Sq:3p/*", False], + [2, "issais", ":Iq:1s:2s/*", False], + [2, "issait", ":Iq:3s/*", False], + [2, "issions", ":Iq:Sp:Sq:1p/*", False], + [2, "issiez", ":Iq:Sp:Sq:2p/*", False], + [2, "issaient", ":Iq:3p/*", False], + [2, "îmes", ":Is:1p/*", False], + [2, "îtes", ":Is:2p/*", False], + [2, "irent", ":Is:3p!/*", False], + [2, "irai", ":If:1s/*", False], + [2, "iras", ":If:2s/*", False], + [2, "ira", ":If:3s/*", False], + [2, "irons", ":If:1p/*", False], + [2, "irez", ":If:2p/*", False], + [2, "iront", ":If:3p!/*", False], + [2, "irais", ":K:1s:2s/*", False], + [2, "irait", ":K:3s/*", False], + [2, "irions", ":K:1p/*", False], + [2, "iriez", ":K:2p/*", False], + [2, "iraient", ":K:3p/*", False], + [2, "isse", ":Sp:Sq:1s/*", False], + [2, "isses", ":Sp:Sq:2s/*", False], + [2, "isse", ":Sp:3s/*", False], + [2, "ît", ":Sq:3s/*", False], + [2, "is", ":E:2s/*", False], + [2, "issons", ":E:1p/*", False], + [2, "issez", ":E:2p/*", False] + ], + + # premier groupe (bien plus irrégulier que prétendu) + "V1": { + # a + # verbes en -er, -ger, -yer, -cer + "er": [ + [2, "er", ":Y/*", False], + [2, "ant", ":P/*", False], + [2, "e", ":Ip:Sp:1s:3s/*", False], + [2, "è", ":Ip:1ś/*", False], + [2, "es", ":Ip:Sp:2s/*", False], + [2, "ons", ":Ip:1p/*", False], + [2, "ez", ":Ip:2p/*", False], + [2, "ent", ":Ip:Sp:3p/*", False], + [2, "ais", ":Iq:1s:2s/*", False], + [2, "ait", ":Iq:3s/*", False], + [2, "ions", ":Iq:Sp:1p/*", False], + [2, "iez", ":Iq:Sp:2p/*", False], + [2, "aient", ":Iq:3p/*", False], + [2, "ai", ":Is:1s/*", False], + [2, "as", ":Is:2s/*", False], + [2, "a", ":Is:3s/*", False], + [2, "âmes", ":Is:1p/*", False], + [2, "âtes", ":Is:2p/*", False], + [2, "èrent", ":Is:3p!/*", False], + [2, "erai", ":If:1s/*", False], + [2, "eras", ":If:2s/*", False], + [2, "era", ":If:3s/*", False], + [2, "erons", ":If:1p/*", False], + [2, "erez", ":If:2p/*", False], + [2, "eront", ":If:3p!/*", False], + [2, "erais", ":K:1s:2s/*", False], + [2, "erait", ":K:3s/*", False], + [2, "erions", ":K:1p/*", False], + [2, "eriez", ":K:2p/*", False], + [2, "eraient", ":K:3p/*", False], + [2, "asse", ":Sq:1s/*", False], + [2, "asses", ":Sq:2s/*", False], + [2, "ât", ":Sq:3s/*", False], + [2, "assions", ":Sq:1p/*", False], + [2, "assiez", ":Sq:2p/*", False], + [2, "assent", ":Sq:3p/*", False], + [2, "e", ":E:2s/*", False], + [2, "ons", ":E:1p/*", False], + [2, "ez", ":E:2p/*", False] + ], + + "ger": [ + [2, "er", ":Y/*", False], + [2, "eant", ":P/*", False], + [2, "e", ":Ip:Sp:1s:3s/*", False], + [2, "è", ":Ip:1ś/*", False], + [2, "es", ":Ip:Sp:2s/*", False], + [2, "eons", ":Ip:1p/*", False], + [2, "ez", ":Ip:2p/*", False], + [2, "ent", ":Ip:Sp:3p/*", False], + [2, "eais", ":Iq:1s:2s/*", False], + [2, "eait", ":Iq:3s/*", False], + [2, "ions", ":Iq:Sp:1p/*", False], + [2, "iez", ":Iq:Sp:2p/*", False], + [2, "eaient", ":Iq:3p/*", False], + [2, "eai", ":Is:1s/*", False], + [2, "eas", ":Is:2s/*", False], + [2, "ea", ":Is:3s/*", False], + [2, "eâmes", ":Is:1p/*", False], + [2, "eâtes", ":Is:2p/*", False], + [2, "èrent", ":Is:3p!/*", False], + [2, "erai", ":If:1s/*", False], + [2, "eras", ":If:2s/*", False], + [2, "era", ":If:3s/*", False], + [2, "erons", ":If:1p/*", False], + [2, "erez", ":If:2p/*", False], + [2, "eront", ":If:3p!/*", False], + [2, "erais", ":K:1s:2s/*", False], + [2, "erait", ":K:3s/*", False], + [2, "erions", ":K:1p/*", False], + [2, "eriez", ":K:2p/*", False], + [2, "eraient", ":K:3p/*", False], + [2, "easse", ":Sq:1s/*", False], + [2, "easses", ":Sq:2s/*", False], + [2, "eât", ":Sq:3s/*", False], + [2, "eassions", ":Sq:1p/*", False], + [2, "eassiez", ":Sq:2p/*", False], + [2, "eassent", ":Sq:3p/*", False], + [2, "e", ":E:2s/*", False], + [2, "eons", ":E:1p/*", False], + [2, "ez", ":E:2p/*", False] + ], + + "cer": [ + [2, "er", ":Y/*", False], + [3, "çant", ":P/*", False], + [2, "e", ":Ip:Sp:1s:3s/*", False], + [2, "è", ":Ip:1ś/*", False], + [2, "es", ":Ip:Sp:2s/*", False], + [3, "çons", ":Ip:1p/*", False], + [2, "ez", ":Ip:2p/*", False], + [2, "ent", ":Ip:Sp:3p/*", False], + [3, "çais", ":Iq:1s:2s/*", False], + [3, "çait", ":Iq:3s/*", False], + [2, "ions", ":Iq:Sp:1p/*", False], + [2, "iez", ":Iq:Sp:2p/*", False], + [3, "çaient", ":Iq:3p/*", False], + [3, "çai", ":Is:1s/*", False], + [3, "ças", ":Is:2s/*", False], + [3, "ça", ":Is:3s/*", False], + [3, "çâmes", ":Is:1p/*", False], + [3, "çâtes", ":Is:2p/*", False], + [2, "èrent", ":Is:3p!/*", False], + [2, "erai", ":If:1s/*", False], + [2, "eras", ":If:2s/*", False], + [2, "era", ":If:3s/*", False], + [2, "erons", ":If:1p/*", False], + [2, "erez", ":If:2p/*", False], + [2, "eront", ":If:3p!/*", False], + [2, "erais", ":K:1s:2s/*", False], + [2, "erait", ":K:3s/*", False], + [2, "erions", ":K:1p/*", False], + [2, "eriez", ":K:2p/*", False], + [2, "eraient", ":K:3p/*", False], + [3, "çasse", ":Sq:1s/*", False], + [3, "çasses", ":Sq:2s/*", False], + [3, "çât", ":Sq:3s/*", False], + [3, "çassions", ":Sq:1p/*", False], + [3, "çassiez", ":Sq:2p/*", False], + [3, "çassent", ":Sq:3p/*", False], + [2, "e", ":E:2s/*", False], + [3, "çons", ":E:1p/*", False], + [2, "ez", ":E:2p/*", False] + ], + + "yer": [ + [2, "er", ":Y/*", False], + [2, "ant", ":P/*", False], + [3, "ye", ":Ip:Sp:1s:3s/*", "[^ou]yer$"], + [3, "ie", ":Ip:Sp:1s:3s/*", "[aou]yer$"], + [2, "è", ":Ip:1ś/*", False], + [3, "yes", ":Ip:Sp:2s/*", "[^ou]yer$"], + [3, "ies", ":Ip:Sp:2s/*", "[aou]yer$"], + [2, "ons", ":Ip:1p/*", False], + [2, "ez", ":Ip:2p/*", False], + [3, "yent", ":Ip:Sp:3p/*", "[^ou]yer$"], + [3, "ient", ":Ip:Sp:3p/*", "[aou]yer$"], + [2, "ais", ":Iq:1s:2s/*", False], + [2, "ait", ":Iq:3s/*", False], + [2, "ions", ":Iq:Sp:1p/*", False], + [2, "iez", ":Iq:Sp:2p/*", False], + [2, "aient", ":Iq:3p/*", False], + [2, "ai", ":Is:1s/*", False], + [2, "as", ":Is:2s/*", False], + [2, "a", ":Is:3s/*", False], + [2, "âmes", ":Is:1p/*", False], + [2, "âtes", ":Is:2p/*", False], + [2, "èrent", ":Is:3p!/*", False], + [3, "yerai", ":If:1s/*", "[^ou]yer$"], + [3, "ierai", ":If:1s/*", "[aou]yer$"], + [3, "yeras", ":If:2s/*", "[^ou]yer$"], + [3, "ieras", ":If:2s/*", "[aou]yer$"], + [3, "yera", ":If:3s/*", "[^ou]yer$"], + [3, "iera", ":If:3s/*", "[aou]yer$"], + [3, "yerons", ":If:1p/*", "[^ou]yer$"], + [3, "ierons", ":If:1p/*", "[aou]yer$"], + [3, "yerez", ":If:2p/*", "[^ou]yer$"], + [3, "ierez", ":If:2p/*", "[aou]yer$"], + [3, "yeront", ":If:3p!/*", "[^ou]yer$"], + [3, "ieront", ":If:3p!/*", "[aou]yer$"], + [3, "yerais", ":K:1s:2s/*", "[^ou]yer$"], + [3, "ierais", ":K:1s:2s/*", "[aou]yer$"], + [3, "yerait", ":K:3s/*", "[^ou]yer$"], + [3, "ierait", ":K:3s/*", "[aou]yer$"], + [3, "yerions", ":K:1p/*", "[^ou]yer$"], + [3, "ierions", ":K:1p/*", "[aou]yer$"], + [3, "yeriez", ":K:2p/*", "[^ou]yer$"], + [3, "ieriez", ":K:2p/*", "[aou]yer$"], + [3, "yeraient", ":K:3p/*", "[^ou]yer$"], + [3, "ieraient", ":K:3p/*", "[aou]yer$"], + [2, "asse", ":Sq:1s/*", False], + [2, "asses", ":Sq:2s/*", False], + [2, "ât", ":Sq:3s/*", False], + [2, "assions", ":Sq:1p/*", False], + [2, "assiez", ":Sq:2p/*", False], + [2, "assent", ":Sq:3p/*", False], + [3, "ye", ":E:2s/*", "[^ou]yer$"], + [3, "ie", ":E:2s/*", "[aou]yer$"], + [2, "ons", ":E:1p/*", False], + [2, "ez", ":E:2p/*", False] + ], + + # b + # verbes en -ecer, -emer, -ener, -eper, -erer, -eser, -ever, -evrer + # verbes en -eler, -eter (pas de doublement de la consonne: acheter, celer, déceler, receler, ciseler, démanteler, + # écarteler, encasteler, geler, dégeler, congeler, surgeler, marteler, modeler, peler, acheter, racheter, + # bégueter, corseter, crocheter, fileter, fureter, haleter) + # changement du e en è avant syllabe muette + "ecer": [ + [2, "er", ":Y/*", False], + [3, "çant", ":P/*", False], + [4, "èce", ":Ip:Sp:1s:3s/*", False], + [2, "è", ":Ip:1ś/R", False], + [4, "èces", ":Ip:Sp:2s/*", False], + [3, "çons", ":Ip:1p/*", False], + [2, "ez", ":Ip:2p/*", False], + [4, "ècent", ":Ip:Sp:3p/*", False], + [3, "çais", ":Iq:1s:2s/*", False], + [3, "çait", ":Iq:3s/*", False], + [2, "ions", ":Iq:Sp:1p/*", False], + [2, "iez", ":Iq:Sp:2p/*", False], + [3, "çaient", ":Iq:3p/*", False], + [3, "çai", ":Is:1s/*", False], + [3, "ças", ":Is:2s/*", False], + [3, "ça", ":Is:3s/*", False], + [3, "çâmes", ":Is:1p/*", False], + [3, "çâtes", ":Is:2p/*", False], + [2, "èrent", ":Is:3p!/*", False], + [4, "ècerai", ":If:1s/*", False], + [4, "èceras", ":If:2s/*", False], + [4, "ècera", ":If:3s/*", False], + [4, "ècerons", ":If:1p/*", False], + [4, "ècerez", ":If:2p/*", False], + [4, "èceront", ":If:3p!/*", False], + [4, "ècerais", ":K:1s:2s/*", False], + [4, "ècerait", ":K:3s/*", False], + [4, "ècerions", ":K:1p/*", False], + [4, "èceriez", ":K:2p/*", False], + [4, "èceraient", ":K:3p/*", False], + [3, "çasse", ":Sq:1s/*", False], + [3, "çasses", ":Sq:2s/*", False], + [3, "çât", ":Sq:3s/*", False], + [3, "çassions", ":Sq:1p/*", False], + [3, "çassiez", ":Sq:2p/*", False], + [3, "çassent", ":Sq:3p/*", False], + [4, "èce", ":E:2s/*", False], + [3, "çons", ":E:1p/*", False], + [2, "ez", ":E:2p/*", False] + ], + + "eler": { + "1": [ + [2, "er", ":Y/*", False], + [2, "ant", ":P/*", False], + [4, "èle", ":Ip:Sp:1s:3s/*", False], + [2, "è", ":Ip:1ś/R", False], + [4, "èles", ":Ip:Sp:2s/*", False], + [2, "ons", ":Ip:1p/*", False], + [2, "ez", ":Ip:2p/*", False], + [4, "èlent", ":Ip:Sp:3p/*", False], + [2, "ais", ":Iq:1s:2s/*", False], + [2, "ait", ":Iq:3s/*", False], + [2, "ions", ":Iq:Sp:1p/*", False], + [2, "iez", ":Iq:Sp:2p/*", False], + [2, "aient", ":Iq:3p/*", False], + [2, "ai", ":Is:1s/*", False], + [2, "as", ":Is:2s/*", False], + [2, "a", ":Is:3s/*", False], + [2, "âmes", ":Is:1p/*", False], + [2, "âtes", ":Is:2p/*", False], + [2, "èrent", ":Is:3p!/*", False], + [4, "èlerai", ":If:1s/*", False], + [4, "èleras", ":If:2s/*", False], + [4, "èlera", ":If:3s/*", False], + [4, "èlerons", ":If:1p/*", False], + [4, "èlerez", ":If:2p/*", False], + [4, "èleront", ":If:3p!/*", False], + [4, "èlerais", ":K:1s:2s/*", False], + [4, "èlerait", ":K:3s/*", False], + [4, "èlerions", ":K:1p/*", False], + [4, "èleriez", ":K:2p/*", False], + [4, "èleraient", ":K:3p/*", False], + [2, "asse", ":Sq:1s/*", False], + [2, "asses", ":Sq:2s/*", False], + [2, "ât", ":Sq:3s/*", False], + [2, "assions", ":Sq:1p/*", False], + [2, "assiez", ":Sq:2p/*", False], + [2, "assent", ":Sq:3p/*", False], + [4, "èle", ":E:2s/*", False], + [2, "ons", ":E:1p/*", False], + [2, "ez", ":E:2p/*", False] + ], + "2": [ + # d. verbes en -eler : doublement de la consonne l. + [2, "er", ":Y/*", False], + [2, "ant", ":P/*", False], + [4, "elle", ":Ip:Sp:1s:3s/*", "ppeler$"], + [4, "elle", ":Ip:Sp:1s:3s/M", "[^p].eler$"], + [4, "èle", ":Ip:Sp:1s:3s/R", "[^p].eler$"], + [2, "è", ":Ip:1ś/R", False], + [4, "elles", ":Ip:Sp:2s/*", "ppeler$"], + [4, "elles", ":Ip:Sp:2s/M", "[^p].eler$"], + [4, "èles", ":Ip:Sp:2s/R", "[^p].eler$"], + [2, "ons", ":Ip:1p/*", False], + [2, "ez", ":Ip:2p/*", False], + [4, "ellent", ":Ip:Sp:3p/*", "ppeler$"], + [4, "ellent", ":Ip:Sp:3p/M", "[^p].eler$"], + [4, "èlent", ":Ip:Sp:3p/R", "[^p].eler$"], + [2, "ais", ":Iq:1s:2s/*", False], + [2, "ait", ":Iq:3s/*", False], + [2, "ions", ":Iq:Sp:1p/*", False], + [2, "iez", ":Iq:Sp:2p/*", False], + [2, "aient", ":Iq:3p/*", False], + [2, "ai", ":Is:1s/*", False], + [2, "as", ":Is:2s/*", False], + [2, "a", ":Is:3s/*", False], + [2, "âmes", ":Is:1p/*", False], + [2, "âtes", ":Is:2p/*", False], + [2, "èrent", ":Is:3p!/*", False], + [4, "ellerai", ":If:1s/*", "ppeler$"], + [4, "ellerai", ":If:1s/M", "[^p].eler$"], + [4, "èlerai", ":If:1s/R", "[^p].eler$"], + [4, "elleras", ":If:2s/*", "ppeler$"], + [4, "elleras", ":If:2s/M", "[^p].eler$"], + [4, "èleras", ":If:2s/R", "[^p].eler$"], + [4, "ellera", ":If:3s/*", "ppeler$"], + [4, "ellera", ":If:3s/M", "[^p].eler$"], + [4, "èlera", ":If:3s/R", "[^p].eler$"], + [4, "ellerons", ":If:1p/*", "ppeler$"], + [4, "ellerons", ":If:1p/M", "[^p].eler$"], + [4, "èlerons", ":If:1p/R", "[^p].eler$"], + [4, "ellerez", ":If:2p/*", "ppeler$"], + [4, "ellerez", ":If:2p/M", "[^p].eler$"], + [4, "èlerez", ":If:2p/R", "[^p].eler$"], + [4, "elleront", ":If:3p!/*", "ppeler$"], + [4, "elleront", ":If:3p!/M", "[^p].eler$"], + [4, "èleront", ":If:3p!/R", "[^p].eler$"], + [4, "ellerais", ":K:1s:2s/*", "ppeler$"], + [4, "ellerais", ":K:1s:2s/M", "[^p].eler$"], + [4, "èlerais", ":K:1s:2s/R", "[^p].eler$"], + [4, "ellerait", ":K:3s/*", "ppeler$"], + [4, "ellerait", ":K:3s/M", "[^p].eler$"], + [4, "èlerait", ":K:3s/R", "[^p].eler$"], + [4, "ellerions", ":K:1p/*", "ppeler$"], + [4, "ellerions", ":K:1p/M", "[^p].eler$"], + [4, "èlerions", ":K:1p/R", "[^p].eler$"], + [4, "elleriez", ":K:2p/*", "ppeler$"], + [4, "elleriez", ":K:2p/M", "[^p].eler$"], + [4, "èleriez", ":K:2p/R", "[^p].eler$"], + [4, "elleraient", ":K:3p/*", "ppeler$"], + [4, "elleraient", ":K:3p/M", "[^p].eler$"], + [4, "èleraient", ":K:3p/R", "[^p].eler$"], + [2, "asse", ":Sq:1s/*", False], + [2, "asses", ":Sq:2s/*", False], + [2, "ât", ":Sq:3s/*", False], + [2, "assions", ":Sq:1p/*", False], + [2, "assiez", ":Sq:2p/*", False], + [2, "assent", ":Sq:3p/*", False], + [4, "elle", ":E:2s/*", "ppeler$"], + [4, "elle", ":E:2s/M", "[^p].eler$"], + [4, "èle", ":E:2s/R", "[^p].eler$"], + [2, "ons", ":E:1p/*", False], + [2, "ez", ":E:2p/*", False] + ], + }, + + "emer": [ + [2, "er", ":Y/*", False], + [2, "ant", ":P/*", False], + [4, "ème", ":Ip:Sp:1s:3s/*", False], + [2, "è", ":Ip:1ś/R", False], + [4, "èmes", ":Ip:Sp:2s/*", False], + [2, "ons", ":Ip:1p/*", False], + [2, "ez", ":Ip:2p/*", False], + [4, "èment", ":Ip:Sp:3p/*", False], + [2, "ais", ":Iq:1s:2s/*", False], + [2, "ait", ":Iq:3s/*", False], + [2, "ions", ":Iq:Sp:1p/*", False], + [2, "iez", ":Iq:Sp:2p/*", False], + [2, "aient", ":Iq:3p/*", False], + [2, "ai", ":Is:1s/*", False], + [2, "as", ":Is:2s/*", False], + [2, "a", ":Is:3s/*", False], + [2, "âmes", ":Is:1p/*", False], + [2, "âtes", ":Is:2p/*", False], + [2, "èrent", ":Is:3p!/*", False], + [4, "èmerai", ":If:1s/*", False], + [4, "èmeras", ":If:2s/*", False], + [4, "èmera", ":If:3s/*", False], + [4, "èmerons", ":If:1p/*", False], + [4, "èmerez", ":If:2p/*", False], + [4, "èmeront", ":If:3p!/*", False], + [4, "èmerais", ":K:1s:2s/*", False], + [4, "èmerait", ":K:3s/*", False], + [4, "èmerions", ":K:1p/*", False], + [4, "èmeriez", ":K:2p/*", False], + [4, "èmeraient", ":K:3p/*", False], + [2, "asse", ":Sq:1s/*", False], + [2, "asses", ":Sq:2s/*", False], + [2, "ât", ":Sq:3s/*", False], + [2, "assions", ":Sq:1p/*", False], + [2, "assiez", ":Sq:2p/*", False], + [2, "assent", ":Sq:3p/*", False], + [4, "ème", ":E:2s/*", False], + [2, "ons", ":E:1p/*", False], + [2, "ez", ":E:2p/*", False] + ], + + "ener": [ + [2, "er", ":Y/*", False], + [2, "ant", ":P/*", False], + [4, "ène", ":Ip:Sp:1s:3s/*", False], + [2, "è", ":Ip:1ś/R", False], + [4, "ènes", ":Ip:Sp:2s/*", False], + [2, "ons", ":Ip:1p/*", False], + [2, "ez", ":Ip:2p/*", False], + [4, "ènent", ":Ip:Sp:3p/*", False], + [2, "ais", ":Iq:1s:2s/*", False], + [2, "ait", ":Iq:3s/*", False], + [2, "ions", ":Iq:Sp:1p/*", False], + [2, "iez", ":Iq:Sp:2p/*", False], + [2, "aient", ":Iq:3p/*", False], + [2, "ai", ":Is:1s/*", False], + [2, "as", ":Is:2s/*", False], + [2, "a", ":Is:3s/*", False], + [2, "âmes", ":Is:1p/*", False], + [2, "âtes", ":Is:2p/*", False], + [2, "èrent", ":Is:3p!/*", False], + [4, "ènerai", ":If:1s/*", False], + [4, "èneras", ":If:2s/*", False], + [4, "ènera", ":If:3s/*", False], + [4, "ènerons", ":If:1p/*", False], + [4, "ènerez", ":If:2p/*", False], + [4, "èneront", ":If:3p!/*", False], + [4, "ènerais", ":K:1s:2s/*", False], + [4, "ènerait", ":K:3s/*", False], + [4, "ènerions", ":K:1p/*", False], + [4, "èneriez", ":K:2p/*", False], + [4, "èneraient", ":K:3p/*", False], + [2, "asse", ":Sq:1s/*", False], + [2, "asses", ":Sq:2s/*", False], + [2, "ât", ":Sq:3s/*", False], + [2, "assions", ":Sq:1p/*", False], + [2, "assiez", ":Sq:2p/*", False], + [2, "assent", ":Sq:3p/*", False], + [4, "ène", ":E:2s/*", False], + [2, "ons", ":E:1p/*", False], + [2, "ez", ":E:2p/*", False] + ], + + "eper": [ + [2, "er", ":Y/*", False], + [2, "ant", ":P/*", False], + [4, "èpe", ":Ip:Sp:1s:3s/*", False], + [2, "è", ":Ip:1ś/R", False], + [4, "èpes", ":Ip:Sp:2s/*", False], + [2, "ons", ":Ip:1p/*", False], + [2, "ez", ":Ip:2p/*", False], + [4, "èpent", ":Ip:Sp:3p/*", False], + [2, "ais", ":Iq:1s:2s/*", False], + [2, "ait", ":Iq:3s/*", False], + [2, "ions", ":Iq:Sp:1p/*", False], + [2, "iez", ":Iq:Sp:2p/*", False], + [2, "aient", ":Iq:3p/*", False], + [2, "ai", ":Is:1s/*", False], + [2, "as", ":Is:2s/*", False], + [2, "a", ":Is:3s/*", False], + [2, "âmes", ":Is:1p/*", False], + [2, "âtes", ":Is:2p/*", False], + [2, "èrent", ":Is:3p!/*", False], + [4, "èperai", ":If:1s/*", False], + [4, "èperas", ":If:2s/*", False], + [4, "èpera", ":If:3s/*", False], + [4, "èperons", ":If:1p/*", False], + [4, "èperez", ":If:2p/*", False], + [4, "èperont", ":If:3p!/*", False], + [4, "èperais", ":K:1s:2s/*", False], + [4, "èperait", ":K:3s/*", False], + [4, "èperions", ":K:1p/*", False], + [4, "èperiez", ":K:2p/*", False], + [4, "èperaient", ":K:3p/*", False], + [2, "asse", ":Sq:1s/*", False], + [2, "asses", ":Sq:2s/*", False], + [2, "ât", ":Sq:3s/*", False], + [2, "assions", ":Sq:1p/*", False], + [2, "assiez", ":Sq:2p/*", False], + [2, "assent", ":Sq:3p/*", False], + [4, "èpe", ":E:2s/*", False], + [2, "ons", ":E:1p/*", False], + [2, "ez", ":E:2p/*", False] + ], + + "erer": [ + [2, "er", ":Y/*", False], + [2, "ant", ":P/*", False], + [4, "ère", ":Ip:Sp:1s:3s/*", False], + [2, "è", ":Ip:1ś/R", False], + [4, "ères", ":Ip:Sp:2s/*", False], + [2, "ons", ":Ip:1p/*", False], + [2, "ez", ":Ip:2p/*", False], + [4, "èrent", ":Ip:Sp:3p/*", False], + [2, "ais", ":Iq:1s:2s/*", False], + [2, "ait", ":Iq:3s/*", False], + [2, "ions", ":Iq:Sp:1p/*", False], + [2, "iez", ":Iq:Sp:2p/*", False], + [2, "aient", ":Iq:3p/*", False], + [2, "ai", ":Is:1s/*", False], + [2, "as", ":Is:2s/*", False], + [2, "a", ":Is:3s/*", False], + [2, "âmes", ":Is:1p/*", False], + [2, "âtes", ":Is:2p/*", False], + [2, "èrent", ":Is:3p!/*", False], + [4, "èrerai", ":If:1s/*", False], + [4, "èreras", ":If:2s/*", False], + [4, "èrera", ":If:3s/*", False], + [4, "èrerons", ":If:1p/*", False], + [4, "èrerez", ":If:2p/*", False], + [4, "èreront", ":If:3p!/*", False], + [4, "èrerais", ":K:1s:2s/*", False], + [4, "èrerait", ":K:3s/*", False], + [4, "èrerions", ":K:1p/*", False], + [4, "èreriez", ":K:2p/*", False], + [4, "èreraient", ":K:3p/*", False], + [2, "asse", ":Sq:1s/*", False], + [2, "asses", ":Sq:2s/*", False], + [2, "ât", ":Sq:3s/*", False], + [2, "assions", ":Sq:1p/*", False], + [2, "assiez", ":Sq:2p/*", False], + [2, "assent", ":Sq:3p/*", False], + [4, "ère", ":E:2s/*", False], + [2, "ons", ":E:1p/*", False], + [2, "ez", ":E:2p/*", False] + ], + + "eser": [ + [2, "er", ":Y/*", False], + [2, "ant", ":P/*", False], + [4, "èse", ":Ip:Sp:1s:3s/*", False], + [2, "è", ":Ip:1ś/R", False], + [4, "èses", ":Ip:Sp:2s/*", False], + [2, "ons", ":Ip:1p/*", False], + [2, "ez", ":Ip:2p/*", False], + [4, "èsent", ":Ip:Sp:3p/*", False], + [2, "ais", ":Iq:1s:2s/*", False], + [2, "ait", ":Iq:3s/*", False], + [2, "ions", ":Iq:Sp:1p/*", False], + [2, "iez", ":Iq:Sp:2p/*", False], + [2, "aient", ":Iq:3p/*", False], + [2, "ai", ":Is:1s/*", False], + [2, "as", ":Is:2s/*", False], + [2, "a", ":Is:3s/*", False], + [2, "âmes", ":Is:1p/*", False], + [2, "âtes", ":Is:2p/*", False], + [2, "èrent", ":Is:3p!/*", False], + [4, "èserai", ":If:1s/*", False], + [4, "èseras", ":If:2s/*", False], + [4, "èsera", ":If:3s/*", False], + [4, "èserons", ":If:1p/*", False], + [4, "èserez", ":If:2p/*", False], + [4, "èseront", ":If:3p!/*", False], + [4, "èserais", ":K:1s:2s/*", False], + [4, "èserait", ":K:3s/*", False], + [4, "èserions", ":K:1p/*", False], + [4, "èseriez", ":K:2p/*", False], + [4, "èseraient", ":K:3p/*", False], + [2, "asse", ":Sq:1s/*", False], + [2, "asses", ":Sq:2s/*", False], + [2, "ât", ":Sq:3s/*", False], + [2, "assions", ":Sq:1p/*", False], + [2, "assiez", ":Sq:2p/*", False], + [2, "assent", ":Sq:3p/*", False], + [4, "èse", ":E:2s/*", False], + [2, "ons", ":E:1p/*", False], + [2, "ez", ":E:2p/*", False] + ], + + "eter": { + "1": [ + [2, "er", ":Y/*", False], + [2, "ant", ":P/*", False], + [4, "ète", ":Ip:Sp:1s:3s/*", False], + [2, "è", ":Ip:1ś/R", False], + [4, "ètes", ":Ip:Sp:2s/*", False], + [2, "ons", ":Ip:1p/*", False], + [2, "ez", ":Ip:2p/*", False], + [4, "ètent", ":Ip:Sp:3p/*", False], + [2, "ais", ":Iq:1s:2s/*", False], + [2, "ait", ":Iq:3s/*", False], + [2, "ions", ":Iq:Sp:1p/*", False], + [2, "iez", ":Iq:Sp:2p/*", False], + [2, "aient", ":Iq:3p/*", False], + [2, "ai", ":Is:1s/*", False], + [2, "as", ":Is:2s/*", False], + [2, "a", ":Is:3s/*", False], + [2, "âmes", ":Is:1p/*", False], + [2, "âtes", ":Is:2p/*", False], + [2, "èrent", ":Is:3p!/*", False], + [4, "èterai", ":If:1s/*", False], + [4, "èteras", ":If:2s/*", False], + [4, "ètera", ":If:3s/*", False], + [4, "èterons", ":If:1p/*", False], + [4, "èterez", ":If:2p/*", False], + [4, "èteront", ":If:3p!/*", False], + [4, "èterais", ":K:1s:2s/*", False], + [4, "èterait", ":K:3s/*", False], + [4, "èterions", ":K:1p/*", False], + [4, "èteriez", ":K:2p/*", False], + [4, "èteraient", ":K:3p/*", False], + [2, "asse", ":Sq:1s/*", False], + [2, "asses", ":Sq:2s/*", False], + [2, "ât", ":Sq:3s/*", False], + [2, "assions", ":Sq:1p/*", False], + [2, "assiez", ":Sq:2p/*", False], + [2, "assent", ":Sq:3p/*", False], + [4, "ète", ":E:2s/*", False], + [2, "ons", ":E:1p/*", False], + [2, "ez", ":E:2p/*", False] + ], + "2": [ + # d. verbes en -eter : doublement de la consonne t + [2, "er", ":Y/*", False], + [2, "ant", ":P/*", False], + [4, "ette", ":Ip:Sp:1s:3s/*", "jeter$"], + [4, "ette", ":Ip:Sp:1s:3s/M", "[^j]eter$"], + [4, "ète", ":Ip:Sp:1s:3s/R", "[^j]eter$"], + [2, "è", ":Ip:1ś/R", False], + [4, "ettes", ":Ip:Sp:2s/*", "jeter$"], + [4, "ettes", ":Ip:Sp:2s/M", "[^j]eter$"], + [4, "ètes", ":Ip:Sp:2s/R", "[^j]eter$"], + [2, "ons", ":Ip:1p/*", False], + [2, "ez", ":Ip:2p/*", False], + [4, "ettent", ":Ip:Sp:3p/*", "jeter$"], + [4, "ettent", ":Ip:Sp:3p/M", "[^j]eter$"], + [4, "ètent", ":Ip:Sp:3p/R", "[^j]eter$"], + [2, "ais", ":Iq:1s:2s/*", False], + [2, "ait", ":Iq:3s/*", False], + [2, "ions", ":Iq:Sp:1p/*", False], + [2, "iez", ":Iq:Sp:2p/*", False], + [2, "aient", ":Iq:3p/*", False], + [2, "ai", ":Is:1s/*", False], + [2, "as", ":Is:2s/*", False], + [2, "a", ":Is:3s/*", False], + [2, "âmes", ":Is:1p/*", False], + [2, "âtes", ":Is:2p/*", False], + [2, "èrent", ":Is:3p!/*", False], + [4, "etterai", ":If:1s/*", "jeter$"], + [4, "etterai", ":If:1s/M", "[^j]eter$"], + [4, "èterai", ":If:1s/R", "[^j]eter$"], + [4, "etteras", ":If:2s/*", "jeter$"], + [4, "etteras", ":If:2s/M", "[^j]eter$"], + [4, "èteras", ":If:2s/R", "[^j]eter$"], + [4, "ettera", ":If:3s/*", "jeter$"], + [4, "ettera", ":If:3s/M", "[^j]eter$"], + [4, "ètera", ":If:3s/R", "[^j]eter$"], + [4, "etterons", ":If:1p/*", "jeter$"], + [4, "etterons", ":If:1p/M", "[^j]eter$"], + [4, "èterons", ":If:1p/R", "[^j]eter$"], + [4, "etterez", ":If:2p/*", "jeter$"], + [4, "etterez", ":If:2p/M", "[^j]eter$"], + [4, "èterez", ":If:2p/R", "[^j]eter$"], + [4, "etteront", ":If:3p!/*", "jeter$"], + [4, "etteront", ":If:3p!/M", "[^j]eter$"], + [4, "èteront", ":If:3p!/R", "[^j]eter$"], + [4, "etterais", ":K:1s:2s/*", "jeter$"], + [4, "etterais", ":K:1s:2s/M", "[^j]eter$"], + [4, "èterais", ":K:1s:2s/R", "[^j]eter$"], + [4, "etterait", ":K:3s/*", "jeter$"], + [4, "etterait", ":K:3s/M", "[^j]eter$"], + [4, "èterait", ":K:3s/R", "[^j]eter$"], + [4, "etterions", ":K:1p/*", "jeter$"], + [4, "etterions", ":K:1p/M", "[^j]eter$"], + [4, "èterions", ":K:1p/R", "[^j]eter$"], + [4, "etteriez", ":K:2p/*", "jeter$"], + [4, "etteriez", ":K:2p/M", "[^j]eter$"], + [4, "èteriez", ":K:2p/R", "[^j]eter$"], + [4, "etteraient", ":K:3p/*", "jeter$"], + [4, "etteraient", ":K:3p/M", "[^j]eter$"], + [4, "èteraient", ":K:3p/R", "[^j]eter$"], + [2, "asse", ":Sq:1s/*", False], + [2, "asses", ":Sq:2s/*", False], + [2, "ât", ":Sq:3s/*", False], + [2, "assions", ":Sq:1p/*", False], + [2, "assiez", ":Sq:2p/*", False], + [2, "assent", ":Sq:3p/*", False], + [4, "ette", ":E:2s/*", "jeter$"], + [4, "ette", ":E:2s/M", "[^j]eter$"], + [4, "ète", ":E:2s/R", "[^j]eter$"], + [2, "ons", ":E:1p/*", False], + [2, "ez", ":E:2p/*", False] + ] + }, + + "ever": [ + [2, "er", ":Y/*", False], + [2, "ant", ":P/*", False], + [4, "ève", ":Ip:Sp:1s:3s/*", False], + [2, "è", ":Ip:1ś/R", False], + [4, "èves", ":Ip:Sp:2s/*", False], + [2, "ons", ":Ip:1p/*", False], + [2, "ez", ":Ip:2p/*", False], + [4, "èvent", ":Ip:Sp:3p/*", False], + [2, "ais", ":Iq:1s:2s/*", False], + [2, "ait", ":Iq:3s/*", False], + [2, "ions", ":Iq:Sp:1p/*", False], + [2, "iez", ":Iq:Sp:2p/*", False], + [2, "aient", ":Iq:3p/*", False], + [2, "ai", ":Is:1s/*", False], + [2, "as", ":Is:2s/*", False], + [2, "a", ":Is:3s/*", False], + [2, "âmes", ":Is:1p/*", False], + [2, "âtes", ":Is:2p/*", False], + [2, "èrent", ":Is:3p!/*", False], + [4, "èverai", ":If:1s/*", False], + [4, "èveras", ":If:2s/*", False], + [4, "èvera", ":If:3s/*", False], + [4, "èverons", ":If:1p/*", False], + [4, "èverez", ":If:2p/*", False], + [4, "èveront", ":If:3p!/*", False], + [4, "èverais", ":K:1s:2s/*", False], + [4, "èverait", ":K:3s/*", False], + [4, "èverions", ":K:1p/*", False], + [4, "èveriez", ":K:2p/*", False], + [4, "èveraient", ":K:3p/*", False], + [2, "asse", ":Sq:1s/*", False], + [2, "asses", ":Sq:2s/*", False], + [2, "ât", ":Sq:3s/*", False], + [2, "assions", ":Sq:1p/*", False], + [2, "assiez", ":Sq:2p/*", False], + [2, "assent", ":Sq:3p/*", False], + [4, "ève", ":E:2s/*", False], + [2, "ons", ":E:1p/*", False], + [2, "ez", ":E:2p/*", False] + ], + + "evrer": [ + [2, "er", ":Y/*", False], + [2, "ant", ":P/*", False], + [5, "èvre", ":Ip:Sp:1s:3s/*", False], + [2, "è", ":Ip:1ś/R", False], + [5, "èvres", ":Ip:Sp:2s/*", False], + [2, "ons", ":Ip:1p/*", False], + [2, "ez", ":Ip:2p/*", False], + [5, "èvrent", ":Ip:Sp:3p/*", False], + [2, "ais", ":Iq:1s:2s/*", False], + [2, "ait", ":Iq:3s/*", False], + [2, "ions", ":Iq:Sp:1p/*", False], + [2, "iez", ":Iq:Sp:2p/*", False], + [2, "aient", ":Iq:3p/*", False], + [2, "ai", ":Is:1s/*", False], + [2, "as", ":Is:2s/*", False], + [2, "a", ":Is:3s/*", False], + [2, "âmes", ":Is:1p/*", False], + [2, "âtes", ":Is:2p/*", False], + [2, "èrent", ":Is:3p!/*", False], + [5, "èvrerai", ":If:1s/*", False], + [5, "èvreras", ":If:2s/*", False], + [5, "èvrera", ":If:3s/*", False], + [5, "èvrerons", ":If:1p/*", False], + [5, "èvrerez", ":If:2p/*", False], + [5, "èvreront", ":If:3p!/*", False], + [5, "èvrerais", ":K:1s:2s/*", False], + [5, "èvrerait", ":K:3s/*", False], + [5, "èvrerions", ":K:1p/*", False], + [5, "èvreriez", ":K:2p/*", False], + [5, "èvreraient", ":K:3p/*", False], + [2, "asse", ":Sq:1s/*", False], + [2, "asses", ":Sq:2s/*", False], + [2, "ât", ":Sq:3s/*", False], + [2, "assions", ":Sq:1p/*", False], + [2, "assiez", ":Sq:2p/*", False], + [2, "assent", ":Sq:3p/*", False], + [5, "èvre", ":E:2s/*", False], + [2, "ons", ":E:1p/*", False], + [2, "ez", ":E:2p/*", False] + ], + + # c + # verbes en -ébrer, -écer, -écher, -écrer, -éder, -éger, -égler, -égner, -égrer, -éguer, + # -éler, -émer, -éner, -éper, -équer, -érer, -éser, -éter, -étrer, -évrer, -éyer + # changement du é en è + + "écer": [ + [2, "er", ":Y/*", False], + [4, "éçant", ":P/*", False], + [4, "èce", ":Ip:Sp:1s:3s/*", False], + [2, "è", ":Ip:1ś/R", False], + [4, "èces", ":Ip:Sp:2s/*", False], + [4, "éçons", ":Ip:1p/*", False], + [2, "ez", ":Ip:2p/*", False], + [4, "ècent", ":Ip:Sp:3p/*", False], + [4, "éçais", ":Iq:1s:2s/*", False], + [4, "éçait", ":Iq:3s/*", False], + [2, "ions", ":Iq:Sp:1p/*", False], + [2, "iez", ":Iq:Sp:2p/*", False], + [4, "éçaient", ":Iq:3p/*", False], + [4, "éçai", ":Is:1s/*", False], + [4, "éças", ":Is:2s/*", False], + [4, "éça", ":Is:3s/*", False], + [4, "éçâmes", ":Is:1p/*", False], + [4, "éçâtes", ":Is:2p/*", False], + [2, "èrent", ":Is:3p!/*", False], + [2, "erai", ":If:1s/M", False], + [4, "ècerai", ":If:1s/R", False], + [2, "eras", ":If:2s/M", False], + [4, "èceras", ":If:2s/R", False], + [2, "era", ":If:3s/M", False], + [4, "ècera", ":If:3s/R", False], + [2, "erons", ":If:1p/M", False], + [4, "ècerons", ":If:1p/R", False], + [2, "erez", ":If:2p/M", False], + [4, "ècerez", ":If:2p/R", False], + [2, "eront", ":If:3p!/M", False], + [4, "èceront", ":If:3p!/R", False], + [2, "erais", ":K:1s:2s/M", False], + [4, "ècerais", ":K:1s:2s/R", False], + [2, "erait", ":K:3s/M", False], + [4, "ècerait", ":K:3s/R", False], + [2, "erions", ":K:1p/M", False], + [4, "ècerions", ":K:1p/R", False], + [2, "eriez", ":K:2p/M", False], + [4, "èceriez", ":K:2p/R", False], + [2, "eraient", ":K:3p/M", False], + [4, "èceraient", ":K:3p/R", False], + [4, "éçasse", ":Sq:1s/*", False], + [4, "éçasses", ":Sq:2s/*", False], + [4, "éçât", ":Sq:3s/*", False], + [4, "éçassions", ":Sq:1p/*", False], + [4, "éçassiez", ":Sq:2p/*", False], + [4, "éçassent", ":Sq:3p/*", False], + [4, "èce", ":E:2s/*", False], + [4, "éçons", ":E:1p/*", False], + [2, "ez", ":E:2p/*", False] + ], + + "éger": [ + [2, "er", ":Y/*", False], + [4, "égeant", ":P/*", False], + [4, "ège", ":Ip:Sp:1s:3s/*", False], + [2, "è", ":Ip:1ś/R", False], + [4, "èges", ":Ip:Sp:2s/*", False], + [4, "égeons", ":Ip:1p/*", False], + [2, "ez", ":Ip:2p/*", False], + [4, "ègent", ":Ip:Sp:3p/*", False], + [4, "égeais", ":Iq:1s:2s/*", False], + [4, "égeait", ":Iq:3s/*", False], + [2, "ions", ":Iq:Sp:1p/*", False], + [2, "iez", ":Iq:Sp:2p/*", False], + [4, "égeaient", ":Iq:3p/*", False], + [4, "égeai", ":Is:1s/*", False], + [4, "égeas", ":Is:2s/*", False], + [4, "égea", ":Is:3s/*", False], + [4, "égeâmes", ":Is:1p/*", False], + [4, "égeâtes", ":Is:2p/*", False], + [2, "èrent", ":Is:3p!/*", False], + [2, "erai", ":If:1s/M", False], + [4, "ègerai", ":If:1s/R", False], + [2, "eras", ":If:2s/M", False], + [4, "ègeras", ":If:2s/R", False], + [2, "era", ":If:3s/M", False], + [4, "ègera", ":If:3s/R", False], + [2, "erons", ":If:1p/M", False], + [4, "ègerons", ":If:1p/R", False], + [2, "erez", ":If:2p/M", False], + [4, "ègerez", ":If:2p/R", False], + [2, "eront", ":If:3p!/M", False], + [4, "ègeront", ":If:3p!/R", False], + [2, "erais", ":K:1s:2s/M", False], + [4, "ègerais", ":K:1s:2s/R", False], + [2, "erait", ":K:3s/M", False], + [4, "ègerait", ":K:3s/R", False], + [2, "erions", ":K:1p/M", False], + [4, "ègerions", ":K:1p/R", False], + [2, "eriez", ":K:2p/M", False], + [4, "ègeriez", ":K:2p/R", False], + [2, "eraient", ":K:3p/M", False], + [4, "ègeraient", ":K:3p/R", False], + [4, "égeasse", ":Sq:1s/*", False], + [4, "égeasses", ":Sq:2s/*", False], + [4, "égeât", ":Sq:3s/*", False], + [4, "égeassions", ":Sq:1p/*", False], + [4, "égeassiez", ":Sq:2p/*", False], + [4, "égeassent", ":Sq:3p/*", False], + [4, "ège", ":E:2s/*", False], + [4, "égeons", ":E:1p/*", False], + [2, "ez", ":E:2p/*", False] + ], + + "ébrer": [ + [2, "er", ":Y/*", False], + [2, "ant", ":P/*", False], + [5, "èbre", ":Ip:Sp:1s:3s/*", False], + [2, "è", ":Ip:1ś/R", False], + [5, "èbres", ":Ip:Sp:2s/*", False], + [2, "ons", ":Ip:1p/*", False], + [2, "ez", ":Ip:2p/*", False], + [5, "èbrent", ":Ip:Sp:3p/*", False], + [2, "ais", ":Iq:1s:2s/*", False], + [2, "ait", ":Iq:3s/*", False], + [2, "ions", ":Iq:Sp:1p/*", False], + [2, "iez", ":Iq:Sp:2p/*", False], + [2, "aient", ":Iq:3p/*", False], + [2, "ai", ":Is:1s/*", False], + [2, "as", ":Is:2s/*", False], + [2, "a", ":Is:3s/*", False], + [2, "âmes", ":Is:1p/*", False], + [2, "âtes", ":Is:2p/*", False], + [2, "èrent", ":Is:3p!/*", False], + [2, "erai", ":If:1s/M", False], + [5, "èbrerai", ":If:1s/R", False], + [2, "eras", ":If:2s/M", False], + [5, "èbreras", ":If:2s/R", False], + [2, "era", ":If:3s/M", False], + [5, "èbrera", ":If:3s/R", False], + [2, "erons", ":If:1p/M", False], + [5, "èbrerons", ":If:1p/R", False], + [2, "erez", ":If:2p/M", False], + [5, "èbrerez", ":If:2p/R", False], + [2, "eront", ":If:3p!/M", False], + [5, "èbreront", ":If:3p!/R", False], + [2, "erais", ":K:1s:2s/M", False], + [5, "èbrerais", ":K:1s:2s/R", False], + [2, "erait", ":K:3s/M", False], + [5, "èbrerait", ":K:3s/R", False], + [2, "erions", ":K:1p/M", False], + [5, "èbrerions", ":K:1p/R", False], + [2, "eriez", ":K:2p/M", False], + [5, "èbreriez", ":K:2p/R", False], + [2, "eraient", ":K:3p/M", False], + [5, "èbreraient", ":K:3p/R", False], + [2, "asse", ":Sq:1s/*", False], + [2, "asses", ":Sq:2s/*", False], + [2, "ât", ":Sq:3s/*", False], + [2, "assions", ":Sq:1p/*", False], + [2, "assiez", ":Sq:2p/*", False], + [2, "assent", ":Sq:3p/*", False], + [5, "èbre", ":E:2s/*", False], + [2, "ons", ":E:1p/*", False], + [2, "ez", ":E:2p/*", False] + ], + + "écher": [ + [2, "er", ":Y/*", False], + [2, "ant", ":P/*", False], + [5, "èche", ":Ip:Sp:1s:3s/*", False], + [2, "è", ":Ip:1ś/R", False], + [5, "èches", ":Ip:Sp:2s/*", False], + [2, "ons", ":Ip:1p/*", False], + [2, "ez", ":Ip:2p/*", False], + [5, "èchent", ":Ip:Sp:3p/*", False], + [2, "ais", ":Iq:1s:2s/*", False], + [2, "ait", ":Iq:3s/*", False], + [2, "ions", ":Iq:Sp:1p/*", False], + [2, "iez", ":Iq:Sp:2p/*", False], + [2, "aient", ":Iq:3p/*", False], + [2, "ai", ":Is:1s/*", False], + [2, "as", ":Is:2s/*", False], + [2, "a", ":Is:3s/*", False], + [2, "âmes", ":Is:1p/*", False], + [2, "âtes", ":Is:2p/*", False], + [2, "èrent", ":Is:3p!/*", False], + [2, "erai", ":If:1s/M", False], + [5, "ècherai", ":If:1s/R", False], + [2, "eras", ":If:2s/M", False], + [5, "ècheras", ":If:2s/R", False], + [2, "era", ":If:3s/M", False], + [5, "èchera", ":If:3s/R", False], + [2, "erons", ":If:1p/M", False], + [5, "ècherons", ":If:1p/R", False], + [2, "erez", ":If:2p/M", False], + [5, "ècherez", ":If:2p/R", False], + [2, "eront", ":If:3p!/M", False], + [5, "ècheront", ":If:3p!/R", False], + [2, "erais", ":K:1s:2s/M", False], + [5, "ècherais", ":K:1s:2s/R", False], + [2, "erait", ":K:3s/M", False], + [5, "ècherait", ":K:3s/R", False], + [2, "erions", ":K:1p/M", False], + [5, "ècherions", ":K:1p/R", False], + [2, "eriez", ":K:2p/M", False], + [5, "ècheriez", ":K:2p/R", False], + [2, "eraient", ":K:3p/M", False], + [5, "ècheraient", ":K:3p/R", False], + [2, "asse", ":Sq:1s/*", False], + [2, "asses", ":Sq:2s/*", False], + [2, "ât", ":Sq:3s/*", False], + [2, "assions", ":Sq:1p/*", False], + [2, "assiez", ":Sq:2p/*", False], + [2, "assent", ":Sq:3p/*", False], + [5, "èche", ":E:2s/*", False], + [2, "ons", ":E:1p/*", False], + [2, "ez", ":E:2p/*", False] + ], + + "écrer": [ + [2, "er", ":Y/*", False], + [2, "ant", ":P/*", False], + [5, "ècre", ":Ip:Sp:1s:3s/*", False], + [2, "è", ":Ip:1ś/R", False], + [5, "ècres", ":Ip:Sp:2s/*", False], + [2, "ons", ":Ip:1p/*", False], + [2, "ez", ":Ip:2p/*", False], + [5, "ècrent", ":Ip:Sp:3p/*", False], + [2, "ais", ":Iq:1s:2s/*", False], + [2, "ait", ":Iq:3s/*", False], + [2, "ions", ":Iq:Sp:1p/*", False], + [2, "iez", ":Iq:Sp:2p/*", False], + [2, "aient", ":Iq:3p/*", False], + [2, "ai", ":Is:1s/*", False], + [2, "as", ":Is:2s/*", False], + [2, "a", ":Is:3s/*", False], + [2, "âmes", ":Is:1p/*", False], + [2, "âtes", ":Is:2p/*", False], + [2, "èrent", ":Is:3p!/*", False], + [2, "erai", ":If:1s/M", False], + [5, "ècrerai", ":If:1s/R", False], + [2, "eras", ":If:2s/M", False], + [5, "ècreras", ":If:2s/R", False], + [2, "era", ":If:3s/M", False], + [5, "ècrera", ":If:3s/R", False], + [2, "erons", ":If:1p/M", False], + [5, "ècrerons", ":If:1p/R", False], + [2, "erez", ":If:2p/M", False], + [5, "ècrerez", ":If:2p/R", False], + [2, "eront", ":If:3p!/M", False], + [5, "ècreront", ":If:3p!/R", False], + [2, "erais", ":K:1s:2s/M", False], + [5, "ècrerais", ":K:1s:2s/R", False], + [2, "erait", ":K:3s/M", False], + [5, "ècrerait", ":K:3s/R", False], + [2, "erions", ":K:1p/M", False], + [5, "ècrerions", ":K:1p/R", False], + [2, "eriez", ":K:2p/M", False], + [5, "ècreriez", ":K:2p/R", False], + [2, "eraient", ":K:3p/M", False], + [5, "ècreraient", ":K:3p/R", False], + [2, "asse", ":Sq:1s/*", False], + [2, "asses", ":Sq:2s/*", False], + [2, "ât", ":Sq:3s/*", False], + [2, "assions", ":Sq:1p/*", False], + [2, "assiez", ":Sq:2p/*", False], + [2, "assent", ":Sq:3p/*", False], + [5, "ècre", ":E:2s/*", False], + [2, "ons", ":E:1p/*", False], + [2, "ez", ":E:2p/*", False] + ], + + "éder": [ + [2, "er", ":Y/*", False], + [2, "ant", ":P/*", False], + [4, "ède", ":Ip:Sp:1s:3s/*", False], + [2, "è", ":Ip:1ś/R", False], + [4, "èdes", ":Ip:Sp:2s/*", False], + [2, "ons", ":Ip:1p/*", False], + [2, "ez", ":Ip:2p/*", False], + [4, "èdent", ":Ip:Sp:3p/*", False], + [2, "ais", ":Iq:1s:2s/*", False], + [2, "ait", ":Iq:3s/*", False], + [2, "ions", ":Iq:Sp:1p/*", False], + [2, "iez", ":Iq:Sp:2p/*", False], + [2, "aient", ":Iq:3p/*", False], + [2, "ai", ":Is:1s/*", False], + [2, "as", ":Is:2s/*", False], + [2, "a", ":Is:3s/*", False], + [2, "âmes", ":Is:1p/*", False], + [2, "âtes", ":Is:2p/*", False], + [2, "èrent", ":Is:3p!/*", False], + [2, "erai", ":If:1s/M", False], + [4, "èderai", ":If:1s/R", False], + [2, "eras", ":If:2s/M", False], + [4, "èderas", ":If:2s/R", False], + [2, "era", ":If:3s/M", False], + [4, "èdera", ":If:3s/R", False], + [2, "erons", ":If:1p/M", False], + [4, "èderons", ":If:1p/R", False], + [2, "erez", ":If:2p/M", False], + [4, "èderez", ":If:2p/R", False], + [2, "eront", ":If:3p!/M", False], + [4, "èderont", ":If:3p!/R", False], + [2, "erais", ":K:1s:2s/M", False], + [4, "èderais", ":K:1s:2s/R", False], + [2, "erait", ":K:3s/M", False], + [4, "èderait", ":K:3s/R", False], + [2, "erions", ":K:1p/M", False], + [4, "èderions", ":K:1p/R", False], + [2, "eriez", ":K:2p/M", False], + [4, "èderiez", ":K:2p/R", False], + [2, "eraient", ":K:3p/M", False], + [4, "èderaient", ":K:3p/R", False], + [2, "asse", ":Sq:1s/*", False], + [2, "asses", ":Sq:2s/*", False], + [2, "ât", ":Sq:3s/*", False], + [2, "assions", ":Sq:1p/*", False], + [2, "assiez", ":Sq:2p/*", False], + [2, "assent", ":Sq:3p/*", False], + [4, "ède", ":E:2s/*", False], + [2, "ons", ":E:1p/*", False], + [2, "ez", ":E:2p/*", False] + ], + + "égler": [ + [2, "er", ":Y/*", False], + [2, "ant", ":P/*", False], + [5, "ègle", ":Ip:Sp:1s:3s/*", False], + [2, "è", ":Ip:1ś/R", False], + [5, "ègles", ":Ip:Sp:2s/*", False], + [2, "ons", ":Ip:1p/*", False], + [2, "ez", ":Ip:2p/*", False], + [5, "èglent", ":Ip:Sp:3p/*", False], + [2, "ais", ":Iq:1s:2s/*", False], + [2, "ait", ":Iq:3s/*", False], + [2, "ions", ":Iq:Sp:1p/*", False], + [2, "iez", ":Iq:Sp:2p/*", False], + [2, "aient", ":Iq:3p/*", False], + [2, "ai", ":Is:1s/*", False], + [2, "as", ":Is:2s/*", False], + [2, "a", ":Is:3s/*", False], + [2, "âmes", ":Is:1p/*", False], + [2, "âtes", ":Is:2p/*", False], + [2, "èrent", ":Is:3p!/*", False], + [2, "erai", ":If:1s/M", False], + [5, "èglerai", ":If:1s/R", False], + [2, "eras", ":If:2s/M", False], + [5, "ègleras", ":If:2s/R", False], + [2, "era", ":If:3s/M", False], + [5, "èglera", ":If:3s/R", False], + [2, "erons", ":If:1p/M", False], + [5, "èglerons", ":If:1p/R", False], + [2, "erez", ":If:2p/M", False], + [5, "èglerez", ":If:2p/R", False], + [2, "eront", ":If:3p!/M", False], + [5, "ègleront", ":If:3p!/R", False], + [2, "erais", ":K:1s:2s/M", False], + [5, "èglerais", ":K:1s:2s/R", False], + [2, "erait", ":K:3s/M", False], + [5, "èglerait", ":K:3s/R", False], + [2, "erions", ":K:1p/M", False], + [5, "èglerions", ":K:1p/R", False], + [2, "eriez", ":K:2p/M", False], + [5, "ègleriez", ":K:2p/R", False], + [2, "eraient", ":K:3p/M", False], + [5, "ègleraient", ":K:3p/R", False], + [2, "asse", ":Sq:1s/*", False], + [2, "asses", ":Sq:2s/*", False], + [2, "ât", ":Sq:3s/*", False], + [2, "assions", ":Sq:1p/*", False], + [2, "assiez", ":Sq:2p/*", False], + [2, "assent", ":Sq:3p/*", False], + [5, "ègle", ":E:2s/*", False], + [2, "ons", ":E:1p/*", False], + [2, "ez", ":E:2p/*", False] + ], + + "égner": [ + [2, "er", ":Y/*", False], + [2, "ant", ":P/*", False], + [5, "ègne", ":Ip:Sp:1s:3s/*", False], + [2, "è", ":Ip:1ś/R", False], + [5, "ègnes", ":Ip:Sp:2s/*", False], + [2, "ons", ":Ip:1p/*", False], + [2, "ez", ":Ip:2p/*", False], + [5, "ègnent", ":Ip:Sp:3p/*", False], + [2, "ais", ":Iq:1s:2s/*", False], + [2, "ait", ":Iq:3s/*", False], + [2, "ions", ":Iq:Sp:1p/*", False], + [2, "iez", ":Iq:Sp:2p/*", False], + [2, "aient", ":Iq:3p/*", False], + [2, "ai", ":Is:1s/*", False], + [2, "as", ":Is:2s/*", False], + [2, "a", ":Is:3s/*", False], + [2, "âmes", ":Is:1p/*", False], + [2, "âtes", ":Is:2p/*", False], + [2, "èrent", ":Is:3p!/*", False], + [2, "erai", ":If:1s/M", False], + [5, "ègnerai", ":If:1s/R", False], + [2, "eras", ":If:2s/M", False], + [5, "ègneras", ":If:2s/R", False], + [2, "era", ":If:3s/M", False], + [5, "ègnera", ":If:3s/R", False], + [2, "erons", ":If:1p/M", False], + [5, "ègnerons", ":If:1p/R", False], + [2, "erez", ":If:2p/M", False], + [5, "ègnerez", ":If:2p/R", False], + [2, "eront", ":If:3p!/M", False], + [5, "ègneront", ":If:3p!/R", False], + [2, "erais", ":K:1s:2s/M", False], + [5, "ègnerais", ":K:1s:2s/R", False], + [2, "erait", ":K:3s/M", False], + [5, "ègnerait", ":K:3s/R", False], + [2, "erions", ":K:1p/M", False], + [5, "ègnerions", ":K:1p/R", False], + [2, "eriez", ":K:2p/M", False], + [5, "ègneriez", ":K:2p/R", False], + [2, "eraient", ":K:3p/M", False], + [5, "ègneraient", ":K:3p/R", False], + [2, "asse", ":Sq:1s/*", False], + [2, "asses", ":Sq:2s/*", False], + [2, "ât", ":Sq:3s/*", False], + [2, "assions", ":Sq:1p/*", False], + [2, "assiez", ":Sq:2p/*", False], + [2, "assent", ":Sq:3p/*", False], + [5, "ègne", ":E:2s/*", False], + [2, "ons", ":E:1p/*", False], + [2, "ez", ":E:2p/*", False] + ], + + "égrer": [ + [2, "er", ":Y/*", False], + [2, "ant", ":P/*", False], + [5, "ègre", ":Ip:Sp:1s:3s/*", False], + [2, "è", ":Ip:1ś/R", False], + [5, "ègres", ":Ip:Sp:2s/*", False], + [2, "ons", ":Ip:1p/*", False], + [2, "ez", ":Ip:2p/*", False], + [5, "ègrent", ":Ip:Sp:3p/*", False], + [2, "ais", ":Iq:1s:2s/*", False], + [2, "ait", ":Iq:3s/*", False], + [2, "ions", ":Iq:Sp:1p/*", False], + [2, "iez", ":Iq:Sp:2p/*", False], + [2, "aient", ":Iq:3p/*", False], + [2, "ai", ":Is:1s/*", False], + [2, "as", ":Is:2s/*", False], + [2, "a", ":Is:3s/*", False], + [2, "âmes", ":Is:1p/*", False], + [2, "âtes", ":Is:2p/*", False], + [2, "èrent", ":Is:3p!/*", False], + [2, "erai", ":If:1s/M", False], + [5, "ègrerai", ":If:1s/R", False], + [2, "eras", ":If:2s/M", False], + [5, "ègreras", ":If:2s/R", False], + [2, "era", ":If:3s/M", False], + [5, "ègrera", ":If:3s/R", False], + [2, "erons", ":If:1p/M", False], + [5, "ègrerons", ":If:1p/R", False], + [2, "erez", ":If:2p/M", False], + [5, "ègrerez", ":If:2p/R", False], + [2, "eront", ":If:3p!/M", False], + [5, "ègreront", ":If:3p!/R", False], + [2, "erais", ":K:1s:2s/M", False], + [5, "ègrerais", ":K:1s:2s/R", False], + [2, "erait", ":K:3s/M", False], + [5, "ègrerait", ":K:3s/R", False], + [2, "erions", ":K:1p/M", False], + [5, "ègrerions", ":K:1p/R", False], + [2, "eriez", ":K:2p/M", False], + [5, "ègreriez", ":K:2p/R", False], + [2, "eraient", ":K:3p/M", False], + [5, "ègreraient", ":K:3p/R", False], + [2, "asse", ":Sq:1s/*", False], + [2, "asses", ":Sq:2s/*", False], + [2, "ât", ":Sq:3s/*", False], + [2, "assions", ":Sq:1p/*", False], + [2, "assiez", ":Sq:2p/*", False], + [2, "assent", ":Sq:3p/*", False], + [5, "ègre", ":E:2s/*", False], + [2, "ons", ":E:1p/*", False], + [2, "ez", ":E:2p/*", False] + ], + + "éguer": [ + [2, "er", ":Y/*", False], + [2, "ant", ":P/*", False], + [5, "ègue", ":Ip:Sp:1s:3s/*", False], + [2, "è", ":Ip:1ś/R", False], + [5, "ègues", ":Ip:Sp:2s/*", False], + [2, "ons", ":Ip:1p/*", False], + [2, "ez", ":Ip:2p/*", False], + [5, "èguent", ":Ip:Sp:3p/*", False], + [2, "ais", ":Iq:1s:2s/*", False], + [2, "ait", ":Iq:3s/*", False], + [2, "ions", ":Iq:Sp:1p/*", False], + [2, "iez", ":Iq:Sp:2p/*", False], + [2, "aient", ":Iq:3p/*", False], + [2, "ai", ":Is:1s/*", False], + [2, "as", ":Is:2s/*", False], + [2, "a", ":Is:3s/*", False], + [2, "âmes", ":Is:1p/*", False], + [2, "âtes", ":Is:2p/*", False], + [2, "èrent", ":Is:3p!/*", False], + [2, "erai", ":If:1s/M", False], + [5, "èguerai", ":If:1s/R", False], + [2, "eras", ":If:2s/M", False], + [5, "ègueras", ":If:2s/R", False], + [2, "era", ":If:3s/M", False], + [5, "èguera", ":If:3s/R", False], + [2, "erons", ":If:1p/M", False], + [5, "èguerons", ":If:1p/R", False], + [2, "erez", ":If:2p/M", False], + [5, "èguerez", ":If:2p/R", False], + [2, "eront", ":If:3p!/M", False], + [5, "ègueront", ":If:3p!/R", False], + [2, "erais", ":K:1s:2s/M", False], + [5, "èguerais", ":K:1s:2s/R", False], + [2, "erait", ":K:3s/M", False], + [5, "èguerait", ":K:3s/R", False], + [2, "erions", ":K:1p/M", False], + [5, "èguerions", ":K:1p/R", False], + [2, "eriez", ":K:2p/M", False], + [5, "ègueriez", ":K:2p/R", False], + [2, "eraient", ":K:3p/M", False], + [5, "ègueraient", ":K:3p/R", False], + [2, "asse", ":Sq:1s/*", False], + [2, "asses", ":Sq:2s/*", False], + [2, "ât", ":Sq:3s/*", False], + [2, "assions", ":Sq:1p/*", False], + [2, "assiez", ":Sq:2p/*", False], + [2, "assent", ":Sq:3p/*", False], + [5, "ègue", ":E:2s/*", False], + [2, "ons", ":E:1p/*", False], + [2, "ez", ":E:2p/*", False] + ], + + "éler": [ + [2, "er", ":Y/*", False], + [2, "ant", ":P/*", False], + [4, "èle", ":Ip:Sp:1s:3s/*", False], + [2, "è", ":Ip:1ś/R", False], + [4, "èles", ":Ip:Sp:2s/*", False], + [2, "ons", ":Ip:1p/*", False], + [2, "ez", ":Ip:2p/*", False], + [4, "èlent", ":Ip:Sp:3p/*", False], + [2, "ais", ":Iq:1s:2s/*", False], + [2, "ait", ":Iq:3s/*", False], + [2, "ions", ":Iq:Sp:1p/*", False], + [2, "iez", ":Iq:Sp:2p/*", False], + [2, "aient", ":Iq:3p/*", False], + [2, "ai", ":Is:1s/*", False], + [2, "as", ":Is:2s/*", False], + [2, "a", ":Is:3s/*", False], + [2, "âmes", ":Is:1p/*", False], + [2, "âtes", ":Is:2p/*", False], + [2, "èrent", ":Is:3p!/*", False], + [2, "erai", ":If:1s/M", False], + [4, "èlerai", ":If:1s/R", False], + [2, "eras", ":If:2s/M", False], + [4, "èleras", ":If:2s/R", False], + [2, "era", ":If:3s/M", False], + [4, "èlera", ":If:3s/R", False], + [2, "erons", ":If:1p/M", False], + [4, "èlerons", ":If:1p/R", False], + [2, "erez", ":If:2p/M", False], + [4, "èlerez", ":If:2p/R", False], + [2, "eront", ":If:3p!/M", False], + [4, "èleront", ":If:3p!/R", False], + [2, "erais", ":K:1s:2s/M", False], + [4, "èlerais", ":K:1s:2s/R", False], + [2, "erait", ":K:3s/M", False], + [4, "èlerait", ":K:3s/R", False], + [2, "erions", ":K:1p/M", False], + [4, "èlerions", ":K:1p/R", False], + [2, "eriez", ":K:2p/M", False], + [4, "èleriez", ":K:2p/R", False], + [2, "eraient", ":K:3p/M", False], + [4, "èleraient", ":K:3p/R", False], + [2, "asse", ":Sq:1s/*", False], + [2, "asses", ":Sq:2s/*", False], + [2, "ât", ":Sq:3s/*", False], + [2, "assions", ":Sq:1p/*", False], + [2, "assiez", ":Sq:2p/*", False], + [2, "assent", ":Sq:3p/*", False], + [4, "èle", ":E:2s/*", False], + [2, "ons", ":E:1p/*", False], + [2, "ez", ":E:2p/*", False] + ], + + "émer": [ + [2, "er", ":Y/*", False], + [2, "ant", ":P/*", False], + [4, "ème", ":Ip:Sp:1s:3s/*", False], + [2, "è", ":Ip:1ś/R", False], + [4, "èmes", ":Ip:Sp:2s/*", False], + [2, "ons", ":Ip:1p/*", False], + [2, "ez", ":Ip:2p/*", False], + [4, "èment", ":Ip:Sp:3p/*", False], + [2, "ais", ":Iq:1s:2s/*", False], + [2, "ait", ":Iq:3s/*", False], + [2, "ions", ":Iq:Sp:1p/*", False], + [2, "iez", ":Iq:Sp:2p/*", False], + [2, "aient", ":Iq:3p/*", False], + [2, "ai", ":Is:1s/*", False], + [2, "as", ":Is:2s/*", False], + [2, "a", ":Is:3s/*", False], + [2, "âmes", ":Is:1p/*", False], + [2, "âtes", ":Is:2p/*", False], + [2, "èrent", ":Is:3p!/*", False], + [2, "erai", ":If:1s/M", False], + [4, "èmerai", ":If:1s/R", False], + [2, "eras", ":If:2s/M", False], + [4, "èmeras", ":If:2s/R", False], + [2, "era", ":If:3s/M", False], + [4, "èmera", ":If:3s/R", False], + [2, "erons", ":If:1p/M", False], + [4, "èmerons", ":If:1p/R", False], + [2, "erez", ":If:2p/M", False], + [4, "èmerez", ":If:2p/R", False], + [2, "eront", ":If:3p!/M", False], + [4, "èmeront", ":If:3p!/R", False], + [2, "erais", ":K:1s:2s/M", False], + [4, "èmerais", ":K:1s:2s/R", False], + [2, "erait", ":K:3s/M", False], + [4, "èmerait", ":K:3s/R", False], + [2, "erions", ":K:1p/M", False], + [4, "èmerions", ":K:1p/R", False], + [2, "eriez", ":K:2p/M", False], + [4, "èmeriez", ":K:2p/R", False], + [2, "eraient", ":K:3p/M", False], + [4, "èmeraient", ":K:3p/R", False], + [2, "asse", ":Sq:1s/*", False], + [2, "asses", ":Sq:2s/*", False], + [2, "ât", ":Sq:3s/*", False], + [2, "assions", ":Sq:1p/*", False], + [2, "assiez", ":Sq:2p/*", False], + [2, "assent", ":Sq:3p/*", False], + [4, "ème", ":E:2s/*", False], + [2, "ons", ":E:1p/*", False], + [2, "ez", ":E:2p/*", False] + ], + + "éner": [ + [2, "er", ":Y/*", False], + [2, "ant", ":P/*", False], + [4, "ène", ":Ip:Sp:1s:3s/*", False], + [2, "è", ":Ip:1ś/R", False], + [4, "ènes", ":Ip:Sp:2s/*", False], + [2, "ons", ":Ip:1p/*", False], + [2, "ez", ":Ip:2p/*", False], + [4, "ènent", ":Ip:Sp:3p/*", False], + [2, "ais", ":Iq:1s:2s/*", False], + [2, "ait", ":Iq:3s/*", False], + [2, "ions", ":Iq:Sp:1p/*", False], + [2, "iez", ":Iq:Sp:2p/*", False], + [2, "aient", ":Iq:3p/*", False], + [2, "ai", ":Is:1s/*", False], + [2, "as", ":Is:2s/*", False], + [2, "a", ":Is:3s/*", False], + [2, "âmes", ":Is:1p/*", False], + [2, "âtes", ":Is:2p/*", False], + [2, "èrent", ":Is:3p!/*", False], + [2, "erai", ":If:1s/M", False], + [4, "ènerai", ":If:1s/R", False], + [2, "eras", ":If:2s/M", False], + [4, "èneras", ":If:2s/R", False], + [2, "era", ":If:3s/M", False], + [4, "ènera", ":If:3s/R", False], + [2, "erons", ":If:1p/M", False], + [4, "ènerons", ":If:1p/R", False], + [2, "erez", ":If:2p/M", False], + [4, "ènerez", ":If:2p/R", False], + [2, "eront", ":If:3p!/M", False], + [4, "èneront", ":If:3p!/R", False], + [2, "erais", ":K:1s:2s/M", False], + [4, "ènerais", ":K:1s:2s/R", False], + [2, "erait", ":K:3s/M", False], + [4, "ènerait", ":K:3s/R", False], + [2, "erions", ":K:1p/M", False], + [4, "ènerions", ":K:1p/R", False], + [2, "eriez", ":K:2p/M", False], + [4, "èneriez", ":K:2p/R", False], + [2, "eraient", ":K:3p/M", False], + [4, "èneraient", ":K:3p/R", False], + [2, "asse", ":Sq:1s/*", False], + [2, "asses", ":Sq:2s/*", False], + [2, "ât", ":Sq:3s/*", False], + [2, "assions", ":Sq:1p/*", False], + [2, "assiez", ":Sq:2p/*", False], + [2, "assent", ":Sq:3p/*", False], + [4, "ène", ":E:2s/*", False], + [2, "ons", ":E:1p/*", False], + [2, "ez", ":E:2p/*", False] + ], + + "éper": [ + [2, "er", ":Y/*", False], + [2, "ant", ":P/*", False], + [4, "èpe", ":Ip:Sp:1s:3s/*", False], + [2, "è", ":Ip:1ś/R", False], + [4, "èpes", ":Ip:Sp:2s/*", False], + [2, "ons", ":Ip:1p/*", False], + [2, "ez", ":Ip:2p/*", False], + [4, "èpent", ":Ip:Sp:3p/*", False], + [2, "ais", ":Iq:1s:2s/*", False], + [2, "ait", ":Iq:3s/*", False], + [2, "ions", ":Iq:Sp:1p/*", False], + [2, "iez", ":Iq:Sp:2p/*", False], + [2, "aient", ":Iq:3p/*", False], + [2, "ai", ":Is:1s/*", False], + [2, "as", ":Is:2s/*", False], + [2, "a", ":Is:3s/*", False], + [2, "âmes", ":Is:1p/*", False], + [2, "âtes", ":Is:2p/*", False], + [2, "èrent", ":Is:3p!/*", False], + [2, "erai", ":If:1s/M", False], + [4, "èperai", ":If:1s/R", False], + [2, "eras", ":If:2s/M", False], + [4, "èperas", ":If:2s/R", False], + [2, "era", ":If:3s/M", False], + [4, "èpera", ":If:3s/R", False], + [2, "erons", ":If:1p/M", False], + [4, "èperons", ":If:1p/R", False], + [2, "erez", ":If:2p/M", False], + [4, "èperez", ":If:2p/R", False], + [2, "eront", ":If:3p!/M", False], + [4, "èperont", ":If:3p!/R", False], + [2, "erais", ":K:1s:2s/M", False], + [4, "èperais", ":K:1s:2s/R", False], + [2, "erait", ":K:3s/M", False], + [4, "èperait", ":K:3s/R", False], + [2, "erions", ":K:1p/M", False], + [4, "èperions", ":K:1p/R", False], + [2, "eriez", ":K:2p/M", False], + [4, "èperiez", ":K:2p/R", False], + [2, "eraient", ":K:3p/M", False], + [4, "èperaient", ":K:3p/R", False], + [2, "asse", ":Sq:1s/*", False], + [2, "asses", ":Sq:2s/*", False], + [2, "ât", ":Sq:3s/*", False], + [2, "assions", ":Sq:1p/*", False], + [2, "assiez", ":Sq:2p/*", False], + [2, "assent", ":Sq:3p/*", False], + [4, "èpe", ":E:2s/*", False], + [2, "ons", ":E:1p/*", False], + [2, "ez", ":E:2p/*", False] + ], + + "équer": [ + [2, "er", ":Y/*", False], + [2, "ant", ":P/*", False], + [5, "èque", ":Ip:Sp:1s:3s/*", False], + [2, "è", ":Ip:1ś/R", False], + [5, "èques", ":Ip:Sp:2s/*", False], + [2, "ons", ":Ip:1p/*", False], + [2, "ez", ":Ip:2p/*", False], + [5, "èquent", ":Ip:Sp:3p/*", False], + [2, "ais", ":Iq:1s:2s/*", False], + [2, "ait", ":Iq:3s/*", False], + [2, "ions", ":Iq:Sp:1p/*", False], + [2, "iez", ":Iq:Sp:2p/*", False], + [2, "aient", ":Iq:3p/*", False], + [2, "ai", ":Is:1s/*", False], + [2, "as", ":Is:2s/*", False], + [2, "a", ":Is:3s/*", False], + [2, "âmes", ":Is:1p/*", False], + [2, "âtes", ":Is:2p/*", False], + [2, "èrent", ":Is:3p!/*", False], + [2, "erai", ":If:1s/M", False], + [5, "èquerai", ":If:1s/R", False], + [2, "eras", ":If:2s/M", False], + [5, "èqueras", ":If:2s/R", False], + [2, "era", ":If:3s/M", False], + [5, "èquera", ":If:3s/R", False], + [2, "erons", ":If:1p/M", False], + [5, "èquerons", ":If:1p/R", False], + [2, "erez", ":If:2p/M", False], + [5, "èquerez", ":If:2p/R", False], + [2, "eront", ":If:3p!/M", False], + [5, "èqueront", ":If:3p!/R", False], + [2, "erais", ":K:1s:2s/M", False], + [5, "èquerais", ":K:1s:2s/R", False], + [2, "erait", ":K:3s/M", False], + [5, "èquerait", ":K:3s/R", False], + [2, "erions", ":K:1p/M", False], + [5, "èquerions", ":K:1p/R", False], + [2, "eriez", ":K:2p/M", False], + [5, "èqueriez", ":K:2p/R", False], + [2, "eraient", ":K:3p/M", False], + [5, "èqueraient", ":K:3p/R", False], + [2, "asse", ":Sq:1s/*", False], + [2, "asses", ":Sq:2s/*", False], + [2, "ât", ":Sq:3s/*", False], + [2, "assions", ":Sq:1p/*", False], + [2, "assiez", ":Sq:2p/*", False], + [2, "assent", ":Sq:3p/*", False], + [5, "èque", ":E:2s/*", False], + [2, "ons", ":E:1p/*", False], + [2, "ez", ":E:2p/*", False] + ], + + "érer": [ + [2, "er", ":Y/*", False], + [2, "ant", ":P/*", False], + [4, "ère", ":Ip:Sp:1s:3s/*", False], + [2, "è", ":Ip:1ś/R", False], + [4, "ères", ":Ip:Sp:2s/*", False], + [2, "ons", ":Ip:1p/*", False], + [2, "ez", ":Ip:2p/*", False], + [4, "èrent", ":Ip:Sp:3p/*", False], + [2, "ais", ":Iq:1s:2s/*", False], + [2, "ait", ":Iq:3s/*", False], + [2, "ions", ":Iq:Sp:1p/*", False], + [2, "iez", ":Iq:Sp:2p/*", False], + [2, "aient", ":Iq:3p/*", False], + [2, "ai", ":Is:1s/*", False], + [2, "as", ":Is:2s/*", False], + [2, "a", ":Is:3s/*", False], + [2, "âmes", ":Is:1p/*", False], + [2, "âtes", ":Is:2p/*", False], + [2, "èrent", ":Is:3p!/*", False], + [2, "erai", ":If:1s/M", False], + [4, "èrerai", ":If:1s/R", False], + [2, "eras", ":If:2s/M", False], + [4, "èreras", ":If:2s/R", False], + [2, "era", ":If:3s/M", False], + [4, "èrera", ":If:3s/R", False], + [2, "erons", ":If:1p/M", False], + [4, "èrerons", ":If:1p/R", False], + [2, "erez", ":If:2p/M", False], + [4, "èrerez", ":If:2p/R", False], + [2, "eront", ":If:3p!/M", False], + [4, "èreront", ":If:3p!/R", False], + [2, "erais", ":K:1s:2s/M", False], + [4, "èrerais", ":K:1s:2s/R", False], + [2, "erait", ":K:3s/M", False], + [4, "èrerait", ":K:3s/R", False], + [2, "erions", ":K:1p/M", False], + [4, "èrerions", ":K:1p/R", False], + [2, "eriez", ":K:2p/M", False], + [4, "èreriez", ":K:2p/R", False], + [2, "eraient", ":K:3p/M", False], + [4, "èreraient", ":K:3p/R", False], + [2, "asse", ":Sq:1s/*", False], + [2, "asses", ":Sq:2s/*", False], + [2, "ât", ":Sq:3s/*", False], + [2, "assions", ":Sq:1p/*", False], + [2, "assiez", ":Sq:2p/*", False], + [2, "assent", ":Sq:3p/*", False], + [4, "ère", ":E:2s/*", False], + [2, "ons", ":E:1p/*", False], + [2, "ez", ":E:2p/*", False] + ], + + "éser": [ + [2, "er", ":Y/*", False], + [2, "ant", ":P/*", False], + [4, "èse", ":Ip:Sp:1s:3s/*", False], + [2, "è", ":Ip:1ś/R", False], + [4, "èses", ":Ip:Sp:2s/*", False], + [2, "ons", ":Ip:1p/*", False], + [2, "ez", ":Ip:2p/*", False], + [4, "èsent", ":Ip:Sp:3p/*", False], + [2, "ais", ":Iq:1s:2s/*", False], + [2, "ait", ":Iq:3s/*", False], + [2, "ions", ":Iq:Sp:1p/*", False], + [2, "iez", ":Iq:Sp:2p/*", False], + [2, "aient", ":Iq:3p/*", False], + [2, "ai", ":Is:1s/*", False], + [2, "as", ":Is:2s/*", False], + [2, "a", ":Is:3s/*", False], + [2, "âmes", ":Is:1p/*", False], + [2, "âtes", ":Is:2p/*", False], + [2, "èrent", ":Is:3p!/*", False], + [2, "erai", ":If:1s/M", False], + [4, "èserai", ":If:1s/R", False], + [2, "eras", ":If:2s/M", False], + [4, "èseras", ":If:2s/R", False], + [2, "era", ":If:3s/M", False], + [4, "èsera", ":If:3s/R", False], + [2, "erons", ":If:1p/M", False], + [4, "èserons", ":If:1p/R", False], + [2, "erez", ":If:2p/M", False], + [4, "èserez", ":If:2p/R", False], + [2, "eront", ":If:3p!/M", False], + [4, "èseront", ":If:3p!/R", False], + [2, "erais", ":K:1s:2s/M", False], + [4, "èserais", ":K:1s:2s/R", False], + [2, "erait", ":K:3s/M", False], + [4, "èserait", ":K:3s/R", False], + [2, "erions", ":K:1p/M", False], + [4, "èserions", ":K:1p/R", False], + [2, "eriez", ":K:2p/M", False], + [4, "èseriez", ":K:2p/R", False], + [2, "eraient", ":K:3p/M", False], + [4, "èseraient", ":K:3p/R", False], + [2, "asse", ":Sq:1s/*", False], + [2, "asses", ":Sq:2s/*", False], + [2, "ât", ":Sq:3s/*", False], + [2, "assions", ":Sq:1p/*", False], + [2, "assiez", ":Sq:2p/*", False], + [2, "assent", ":Sq:3p/*", False], + [4, "èse", ":E:2s/*", False], + [2, "ons", ":E:1p/*", False], + [2, "ez", ":E:2p/*", False] + ], + + "éter": [ + [2, "er", ":Y/*", False], + [2, "ant", ":P/*", False], + [4, "ète", ":Ip:Sp:1s:3s/*", False], + [2, "è", ":Ip:1ś/R", False], + [4, "ètes", ":Ip:Sp:2s/*", False], + [2, "ons", ":Ip:1p/*", False], + [2, "ez", ":Ip:2p/*", False], + [4, "ètent", ":Ip:Sp:3p/*", False], + [2, "ais", ":Iq:1s:2s/*", False], + [2, "ait", ":Iq:3s/*", False], + [2, "ions", ":Iq:Sp:1p/*", False], + [2, "iez", ":Iq:Sp:2p/*", False], + [2, "aient", ":Iq:3p/*", False], + [2, "ai", ":Is:1s/*", False], + [2, "as", ":Is:2s/*", False], + [2, "a", ":Is:3s/*", False], + [2, "âmes", ":Is:1p/*", False], + [2, "âtes", ":Is:2p/*", False], + [2, "èrent", ":Is:3p!/*", False], + [2, "erai", ":If:1s/M", False], + [4, "èterai", ":If:1s/R", False], + [2, "eras", ":If:2s/M", False], + [4, "èteras", ":If:2s/R", False], + [2, "era", ":If:3s/M", False], + [4, "ètera", ":If:3s/R", False], + [2, "erons", ":If:1p/M", False], + [4, "èterons", ":If:1p/R", False], + [2, "erez", ":If:2p/M", False], + [4, "èterez", ":If:2p/R", False], + [2, "eront", ":If:3p!/M", False], + [4, "èteront", ":If:3p!/R", False], + [2, "erais", ":K:1s:2s/M", False], + [4, "èterais", ":K:1s:2s/R", False], + [2, "erait", ":K:3s/M", False], + [4, "èterait", ":K:3s/R", False], + [2, "erions", ":K:1p/M", False], + [4, "èterions", ":K:1p/R", False], + [2, "eriez", ":K:2p/M", False], + [4, "èteriez", ":K:2p/R", False], + [2, "eraient", ":K:3p/M", False], + [4, "èteraient", ":K:3p/R", False], + [2, "asse", ":Sq:1s/*", False], + [2, "asses", ":Sq:2s/*", False], + [2, "ât", ":Sq:3s/*", False], + [2, "assions", ":Sq:1p/*", False], + [2, "assiez", ":Sq:2p/*", False], + [2, "assent", ":Sq:3p/*", False], + [4, "ète", ":E:2s/*", False], + [2, "ons", ":E:1p/*", False], + [2, "ez", ":E:2p/*", False] + ], + + "étrer": [ + [2, "er", ":Y/*", False], + [2, "ant", ":P/*", False], + [5, "ètre", ":Ip:Sp:1s:3s/*", False], + [2, "è", ":Ip:1ś/R", False], + [5, "ètres", ":Ip:Sp:2s/*", False], + [2, "ons", ":Ip:1p/*", False], + [2, "ez", ":Ip:2p/*", False], + [5, "ètrent", ":Ip:Sp:3p/*", False], + [2, "ais", ":Iq:1s:2s/*", False], + [2, "ait", ":Iq:3s/*", False], + [2, "ions", ":Iq:Sp:1p/*", False], + [2, "iez", ":Iq:Sp:2p/*", False], + [2, "aient", ":Iq:3p/*", False], + [2, "ai", ":Is:1s/*", False], + [2, "as", ":Is:2s/*", False], + [2, "a", ":Is:3s/*", False], + [2, "âmes", ":Is:1p/*", False], + [2, "âtes", ":Is:2p/*", False], + [2, "èrent", ":Is:3p!/*", False], + [2, "erai", ":If:1s/M", False], + [5, "ètrerai", ":If:1s/R", False], + [2, "eras", ":If:2s/M", False], + [5, "ètreras", ":If:2s/R", False], + [2, "era", ":If:3s/M", False], + [5, "ètrera", ":If:3s/R", False], + [2, "erons", ":If:1p/M", False], + [5, "ètrerons", ":If:1p/R", False], + [2, "erez", ":If:2p/M", False], + [5, "ètrerez", ":If:2p/R", False], + [2, "eront", ":If:3p!/M", False], + [5, "ètreront", ":If:3p!/R", False], + [2, "erais", ":K:1s:2s/M", False], + [5, "ètrerais", ":K:1s:2s/R", False], + [2, "erait", ":K:3s/M", False], + [5, "ètrerait", ":K:3s/R", False], + [2, "erions", ":K:1p/M", False], + [5, "ètrerions", ":K:1p/R", False], + [2, "eriez", ":K:2p/M", False], + [5, "ètreriez", ":K:2p/R", False], + [2, "eraient", ":K:3p/M", False], + [5, "ètreraient", ":K:3p/R", False], + [2, "asse", ":Sq:1s/*", False], + [2, "asses", ":Sq:2s/*", False], + [2, "ât", ":Sq:3s/*", False], + [2, "assions", ":Sq:1p/*", False], + [2, "assiez", ":Sq:2p/*", False], + [2, "assent", ":Sq:3p/*", False], + [5, "ètre", ":E:2s/*", False], + [2, "ons", ":E:1p/*", False], + [2, "ez", ":E:2p/*", False] + ], + + "évrer": [ + [2, "er", ":Y/*", False], + [2, "ant", ":P/*", False], + [5, "èvre", ":Ip:Sp:1s:3s/*", False], + [2, "è", ":Ip:1ś/R", False], + [5, "èvres", ":Ip:Sp:2s/*", False], + [2, "ons", ":Ip:1p/*", False], + [2, "ez", ":Ip:2p/*", False], + [5, "èvrent", ":Ip:Sp:3p/*", False], + [2, "ais", ":Iq:1s:2s/*", False], + [2, "ait", ":Iq:3s/*", False], + [2, "ions", ":Iq:Sp:1p/*", False], + [2, "iez", ":Iq:Sp:2p/*", False], + [2, "aient", ":Iq:3p/*", False], + [2, "ai", ":Is:1s/*", False], + [2, "as", ":Is:2s/*", False], + [2, "a", ":Is:3s/*", False], + [2, "âmes", ":Is:1p/*", False], + [2, "âtes", ":Is:2p/*", False], + [2, "èrent", ":Is:3p!/*", False], + [2, "erai", ":If:1s/M", False], + [5, "èvrerai", ":If:1s/R", False], + [2, "eras", ":If:2s/M", False], + [5, "èvreras", ":If:2s/R", False], + [2, "era", ":If:3s/M", False], + [5, "èvrera", ":If:3s/R", False], + [2, "erons", ":If:1p/M", False], + [5, "èvrerons", ":If:1p/R", False], + [2, "erez", ":If:2p/M", False], + [5, "èvrerez", ":If:2p/R", False], + [2, "eront", ":If:3p!/M", False], + [5, "èvreront", ":If:3p!/R", False], + [2, "erais", ":K:1s:2s/M", False], + [5, "èvrerais", ":K:1s:2s/R", False], + [2, "erait", ":K:3s/M", False], + [5, "èvrerait", ":K:3s/R", False], + [2, "erions", ":K:1p/M", False], + [5, "èvrerions", ":K:1p/R", False], + [2, "eriez", ":K:2p/M", False], + [5, "èvreriez", ":K:2p/R", False], + [2, "eraient", ":K:3p/M", False], + [5, "èvreraient", ":K:3p/R", False], + [2, "asse", ":Sq:1s/*", False], + [2, "asses", ":Sq:2s/*", False], + [2, "ât", ":Sq:3s/*", False], + [2, "assions", ":Sq:1p/*", False], + [2, "assiez", ":Sq:2p/*", False], + [2, "assent", ":Sq:3p/*", False], + [5, "èvre", ":E:2s/*", False], + [2, "ons", ":E:1p/*", False], + [2, "ez", ":E:2p/*", False] + ], + + "éyer": [ + [2, "er", ":Y/*", False], + [2, "ant", ":P/*", False], + [4, "èye", ":Ip:Sp:1s:3s/*", False], + [2, "è", ":Ip:1ś/R", False], + [4, "èyes", ":Ip:Sp:2s/*", False], + [2, "ons", ":Ip:1p/*", False], + [2, "ez", ":Ip:2p/*", False], + [4, "èyent", ":Ip:Sp:3p/*", False], + [2, "ais", ":Iq:1s:2s/*", False], + [2, "ait", ":Iq:3s/*", False], + [2, "ions", ":Iq:Sp:1p/*", False], + [2, "iez", ":Iq:Sp:2p/*", False], + [2, "aient", ":Iq:3p/*", False], + [2, "ai", ":Is:1s/*", False], + [2, "as", ":Is:2s/*", False], + [2, "a", ":Is:3s/*", False], + [2, "âmes", ":Is:1p/*", False], + [2, "âtes", ":Is:2p/*", False], + [2, "èrent", ":Is:3p!/*", False], + [2, "erai", ":If:1s/M", False], + [4, "èyerai", ":If:1s/R", False], + [2, "eras", ":If:2s/M", False], + [4, "èyeras", ":If:2s/R", False], + [2, "era", ":If:3s/M", False], + [4, "èyera", ":If:3s/R", False], + [2, "erons", ":If:1p/M", False], + [4, "èyerons", ":If:1p/R", False], + [2, "erez", ":If:2p/M", False], + [4, "èyerez", ":If:2p/R", False], + [2, "eront", ":If:3p!/M", False], + [4, "èyeront", ":If:3p!/R", False], + [2, "erais", ":K:1s:2s/M", False], + [4, "èyerais", ":K:1s:2s/R", False], + [2, "erait", ":K:3s/M", False], + [4, "èyerait", ":K:3s/R", False], + [2, "erions", ":K:1p/M", False], + [4, "èyerions", ":K:1p/R", False], + [2, "eriez", ":K:2p/M", False], + [4, "èyeriez", ":K:2p/R", False], + [2, "eraient", ":K:3p/M", False], + [4, "èyeraient", ":K:3p/R", False], + [2, "asse", ":Sq:1s/*", False], + [2, "asses", ":Sq:2s/*", False], + [2, "ât", ":Sq:3s/*", False], + [2, "assions", ":Sq:1p/*", False], + [2, "assiez", ":Sq:2p/*", False], + [2, "assent", ":Sq:3p/*", False], + [4, "èye", ":E:2s/*", False], + [2, "ons", ":E:1p/*", False], + [2, "ez", ":E:2p/*", False] + ] + } +} Index: gc_lang/fr/oxt/DictOptions/lxe_strings.py ================================================================== --- gc_lang/fr/oxt/DictOptions/lxe_strings.py +++ gc_lang/fr/oxt/DictOptions/lxe_strings.py @@ -8,10 +8,11 @@ "title": "Grammalecte · Éditeur lexical", # Ajout "add_section": "Nouveau mot (lemme)", "lemma": "Lemme", + "generate_button": "Créer", # catégories "common_name": "Nom commun", "nom_adj": "Nom et adjectif", "nom": "Nom",