Grammalecte  Check-in [19e588f821]

Overview
Comment:[fx] lexicon editor: update (new draft)
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | fx | multid
Files: files | file ages | folders
SHA3-256: 19e588f82167596daa0b4aee28a2a0ae649903deea893ac0004c37475951dfc8
User & Date: olr on 2018-03-09 08:26:20
Other Links: branch diff | manifest | tags
Context
2018-03-09
17:27
[fx] lexicon editor: code clarification + ui ongoing work check-in: 6ac2cd76c8 user: olr tags: fx, multid
08:26
[fx] lexicon editor: update (new draft) check-in: 19e588f821 user: olr tags: fx, multid
2018-03-07
17:32
merge trunk check-in: a693df4168 user: olr tags: multid
Changes

Modified gc_lang/fr/webext/panel/lex_editor.css from [307d727b83] to [953a945a5b].

    23     23       background: hsl(0, 0%, 100%) url(../img/lines.png);
    24     24       font: normal 16px "Trebuchet MS", "Fira Sans", "Liberation Sans", sans-serif;
    25     25       color: #505050;
    26     26   }
    27     27   
    28     28   
    29     29   .inbox {
    30         -    width: 600px;
           30  +    width: 900px;
    31     31       margin: 20px auto 10px auto;
    32     32       padding: 10px 30px 30px 30px;
    33     33       background: hsl(0, 0%, 100%);
    34     34       border: 2px solid #F0F0F0;
    35     35       border-radius: 20px;
    36     36   }
    37     37   
................................................................................
    67     67       cursor: pointer;
    68     68   }
    69     69   
    70     70   
    71     71   #add_word_page {
    72     72       display: none;
    73     73   }
           74  +
           75  +.columns {
           76  +    display: flex;
           77  +}
    74     78   
    75     79   #editor {
    76     80       display: none;
    77     81   }
    78     82   
    79     83   #categories {
    80     84       display: flex;
................................................................................
    94     98       background-color: hsl(0, 0%, 90%);
    95     99   }
    96    100   
    97    101   .separator {
    98    102       border-left: 1px solid hsl(210, 0%, 90%);
    99    103   }
   100    104   
   101         -#section_vide {
   102         -    padding: 50px;
   103         -    font-size: 24px;
   104         -    text-align: center;
   105         -    background-color: hsl(0, 20%, 90%);
   106         -    color: hsl(0, 20%, 50%);
   107         -    border-radius: 5px;
   108         -}
   109    105   .section {
   110    106       display: none;
   111    107       padding: 10px;
   112    108   }
   113    109   
   114    110   .container {
   115    111       display: flex;
................................................................................
   168    164       color: hsl(0, 0%, 20%);
   169    165   }
   170    166   input[placeholder] {
   171    167       color: hsl(0, 0%, 50%);
   172    168   }
   173    169   
   174    170   
   175         -#actions {
   176         -    display: none;
          171  +#generated_words {
   177    172       padding: 10px;
   178    173   }
   179    174   
   180    175   #results {
   181    176       padding: 10px;
   182    177       background-color: hsl(210, 10%, 90%);
   183    178       border-radius: 3px;

Modified gc_lang/fr/webext/panel/lex_editor.html from [81ed66a201] to [46fac93928].

     1      1   <!DOCTYPE HTML>
     2      2   <html>
     3         -    <head>
     4         -        <link rel="stylesheet" type="text/css" href="lex_editor.css" />
     5         -        <title>Grammalecte · Éditeur lexical</title>
     6         -        <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
     7         -    </head>
     8         -    
     9         -    <body>
    10         -
    11         -        <div class="inbox">
    12         -
    13         -            <h1>Éditeur lexical</h1>
    14         -
    15         -            <div id="buttons" class="container">
    16         -                <div id="lexicon_button" class="main_button">Lexique</div>
    17         -                <div id="add_word_button" class="main_button">Ajout</div>
    18         -            </div>
    19         -
    20         -            <div id="add_word_page">
    21         -                <h2>Nouveau mot (lemme)</h2>
    22         -                <input type="text" id="lemma" name="lemma" maxlength="60" value="" placeholder="votre mot" pattern="^[a-zA-Zà-ö0-9À-Öø-ÿØ-ßĀ-ʯ._-]+$" autofocus />
    23         -
    24         -                <div id="editor">
    25         -
    26         -                    <div id="categories">
    27         -                        <div class="category" id="select_nom" data-tag="N">Nom, adjectif</div>
    28         -                        <div class="category" id="select_verbe" data-tag="V">Verbe</div>
    29         -                        <div class="category" id="select_adverbe" data-tag="W">Adverbe</div>
    30         -                        <div class="category separator" id="select_prenom" data-tag="M1">Prénom</div>
    31         -                        <div class="category" id="select_patronyme" data-tag="M2">Patronyme</div>
    32         -                        <div class="category" id="select_nom_propre" data-tag="MP">Nom propre</div>
    33         -                        <div class="category separator" id="select_autre" data-tag="X">Autre</div>
            3  +  <head>
            4  +    <link rel="stylesheet" type="text/css" href="lex_editor.css" />
            5  +    <title>Grammalecte · Éditeur lexical</title>
            6  +    <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
            7  +  </head>
            8  +  
            9  +  <body>
           10  +
           11  +    <div class="inbox">
           12  +
           13  +      <h1>Éditeur lexical</h1>
           14  +
           15  +      <div id="buttons" class="container">
           16  +        <div id="lexicon_button" class="main_button">Lexique</div>
           17  +        <div id="add_word_button" class="main_button">Ajout</div>
           18  +      </div>
           19  +
           20  +      <div id="add_word_page">
           21  +        <div class="columns">
           22  +          <div id="new_word_generator">
           23  +            <h2>Nouveau mot (lemme)</h2>
           24  +            <input type="text" id="lemma" name="lemma" maxlength="60" value="" placeholder="votre mot" pattern="^[a-zA-Zà-ö0-9À-Öø-ÿØ-ßĀ-ʯ._-]+$" autofocus />
           25  +
           26  +            <div id="editor">
           27  +
           28  +              <div id="categories">
           29  +                <div class="category" id="select_nom" data-tag="N">Nom, adjectif</div>
           30  +                <div class="category" id="select_verbe" data-tag="V">Verbe</div>
           31  +                <div class="category" id="select_adverbe" data-tag="W">Adverbe</div>
           32  +                <div class="category separator" id="select_prenom" data-tag="M1">Prénom</div>
           33  +                <div class="category" id="select_patronyme" data-tag="M2">Patronyme</div>
           34  +                <div class="category" id="select_nom_propre" data-tag="MP">Nom propre</div>
           35  +                <div class="category separator" id="select_autre" data-tag="X">Autre</div>
           36  +              </div>
           37  +
           38  +
           39  +              <div id="sections">
           40  +
           41  +                <div id="section_nom" class="section">
           42  +                  <h2>Nom, adjectif</h2>
           43  +                  <p class="typeline">
           44  +                    <input type="radio" id="up_type_nom" name="POS" value=":N" /> <label class="widelabel" for="up_type_nom">Nom</label>
           45  +                    <input type="radio" id="up_type_adj" name="POS" value=":A" /> <label class="widelabel" for="up_type_adj">Adjectif</label>
           46  +                    <input type="radio" id="up_type_nomadj" name="POS" value=":N:A" /> <label class="widelabel" for="up_type_nomadj">Nom &amp; adjectif</label>
           47  +                  </p>
           48  +                  <div class="container">
           49  +                    <div class="block">
           50  +                      <h3>Genre</h3>
           51  +                      <p><input type="radio" id="up_nom_genre_e" name="genre" value=":e" /><label for="up_nom_genre_e"> épicène</label></p>
           52  +                      <p><input type="radio" id="up_nom_genre_m" name="genre" value=":m" /><label for="up_nom_genre_m"> masculin</label></p>
           53  +                      <p><input type="radio" id="up_nom_genre_f" name="genre" value=":f" /><label for="up_nom_genre_f"> féminin</label></p>
           54  +                    </div>
           55  +                    <div class="block">
           56  +                      <h3>Pluriel</h3>
           57  +                      <p><input type="radio" id="up_nom_pluriel_s" name="pluriel" value="s" /><label for="up_nom_pluriel_s"> pluriel en ·s</label></p>
           58  +                      <p><input type="radio" id="up_nom_pluriel_x" name="pluriel" value="x" /><label for="up_nom_pluriel_x"> pluriel en ·x</label></p>
           59  +                      <p><input type="radio" id="up_nom_pluriel_i" name="pluriel" value="i" /><label for="up_nom_pluriel_i"> invariable</label></p>
           60  +                    </div>
           61  +                  </div>
           62  +
           63  +                  <h2>[optionnel] Autre forme (masculine, féminine, variante, etc.)</h2>
           64  +                  <input type="text" id="lemma2" name="lemma2" maxlength="60" value="" pattern="^[a-zA-Zà-ö0-9À-Öø-ÿØ-ßĀ-ʯ._-]+$" placeholder="votre mot" />
           65  +                  <div id="word_section2">
           66  +                    <p class="typeline">
           67  +                      <input type="radio" id="up_type_nom2" name="POS2" value=":N" /> <label class="widelabel" for="up_type_nom2">Nom</label>
           68  +                      <input type="radio" id="up_type_adj2" name="POS2" value=":A" /> <label class="widelabel" for="up_type_adj2">Adjectif</label>
           69  +                      <input type="radio" id="up_type_nomadj2" name="POS2" value=":N:A" /> <label class="widelabel" for="up_type_nomadj2">Nom &amp; adjectif</label>
           70  +                    </p>
           71  +                    <div class="container">
           72  +                      <div class="block">
           73  +                        <h3>Genre</h3>
           74  +                        <p><input type="radio" id="up_nom2_genre_e" name="genre2" value=":e" /><label for="up_nom2_genre_e"> épicène</label></p>
           75  +                        <p><input type="radio" id="up_nom2_genre_m" name="genre2" value=":m" /><label for="up_nom2_genre_m"> masculin</label></p>
           76  +                        <p><input type="radio" id="up_nom2_genre_f" name="genre2" value=":f" /><label for="up_nom2_genre_f"> féminin</label></p>
           77  +                      </div>
           78  +                      <div class="block">
           79  +                        <h3>Pluriel</h3>
           80  +                        <p><input type="radio" id="up_nom2_pluriel_s" name="pluriel2" value="s" /><label for="up_nom2_pluriel_s"> pluriel en ·s</label></p>
           81  +                        <p><input type="radio" id="up_nom2_pluriel_x" name="pluriel2" value="x" /><label for="up_nom2_pluriel_x"> pluriel en ·x</label></p>
           82  +                        <p><input type="radio" id="up_nom2_pluriel_i" name="pluriel2" value="i" /><label for="up_nom2_pluriel_i"> invariable</label></p>
           83  +                      </div>
    34     84                       </div>
           85  +                  </div>
           86  +                </div>
           87  +
           88  +                <div id="section_verbe" class="section">
           89  +                  <h2>Verbe</h2>
           90  +                  <div class="block">
           91  +                    <h3><input type="checkbox" id="up_v_i" value="i" /><label for="up_v_i"> intransitif</label></h3>
           92  +                    <div class="description">Cochez cette case si ce verbe peut s’utiliser sans complément d’objet.</div>
           93  +                    <details>
           94  +                      <div class="container">
           95  +                        <div class="examples_true">Je dors.<br/>Tu pars.<br/>Elle pense.<br/>Nous écrivons.<br/>Vous manifestez.<br/>Ils viennent.</div>
           96  +                        <div class="examples_false">J’appartiens à ce groupe…</div>
           97  +                      </div>
           98  +                    </details>
           99  +                  </div>
          100  +                  <div class="block">
          101  +                    <h3><input type="checkbox" id="up_v_t" value="t" /><label for="up_v_t"> transitif direct</label></h3>
          102  +                    <div class="description">Cochez cette case si ce verbe peut s’utiliser avec un complément d’objet direct (COD).</div>
          103  +                    <details>
          104  +                      <div class="container">
          105  +                        <div class="examples_true">Je mange <i>une pomme</i>.<br/>Tu donnes <i>une bonne impression</i>.<br/>Elle écrit <i>un livre</i>.<br/>Nous fabriquons <i>une œuvre</i>.</div>
          106  +                        <div class="examples_false">Je pars.<br/>J’appartiens à…</div>
          107  +                      </div>
          108  +                    </details>
          109  +                  </div>
          110  +                  <div class="block">
          111  +                    <h3><input type="checkbox" id="up_v_n" value="n" /><label for="up_v_n"> transitif indirect</label></h3>
          112  +                    <div class="description">Cochez cette case, si ce verbe peut s’utiliser avec un complément d’objet indirect (COI). Attention à ne pas confondre avec un complément circonstanciel de temps, de lieu ou de manière.</div>
          113  +                    <details>
          114  +                      <div class="container">
          115  +                        <div class="examples_true">Je donne un cadeau <i>à sa femme</i>.<br/>Elle appartient <i>à ce groupe</i>.</div>
          116  +                        <div class="examples_false"></div>
          117  +                      </div>
          118  +                    </details>
          119  +                  </div>
          120  +                  <div class="block">
          121  +                    <h3><input type="checkbox" id="up_v_p" value="p" /><label for="up_v_p"> pronominal</label></h3>
          122  +                    <div class="description">Cochez cette case si ce verbe peut s’utiliser pronominalement.</div>
          123  +                    <details>
          124  +                      <div class="container">
          125  +                        <div class="examples_true">Je me suis trompé.<br/>Tu t’es étonné toi-même.<br/>Elle s’est souvenu de ses études.<br/>Nous nous sommes égarés.<br/>Vous vous êtes retrouvées.<br/>Ils se sont rappelé leur enfance.</div>
          126  +                        <div class="examples_false">Je me suis venu.<br/>tu t’es arrivé.<br/>elle s’est marché.<br/>nous nous sommes courus.<br/>vous vous êtes acculés.<br/>Elles se sont capitulées.</div>
          127  +                      </div>
          128  +                    </details>
          129  +                  </div>
          130  +                  <div class="block">
          131  +                    <h3><input type="checkbox" id="up_v_m" value="m" /><label for="up_v_m"> impersonnel</label></h3>
          132  +                    <div class="description">Cochez cette case si ce verbe ne peut s’utiliser à la première personne, mais uniquement à la troisième personne du singulier ou du pluriel.</div>
          133  +                    <details>
          134  +                      <div class="container">
          135  +                        <div class="examples_true">Il pleut.</div>
          136  +                        <div class="examples_false">Je pleus.</div>
          137  +                      </div>
          138  +                    </details>
          139  +                  </div>
          140  +                  <div class="block">
          141  +                    <h3><input type="checkbox" id="up_v_ae" value="e" /><label for="up_v_ae"> passé composé avec l’auxiliaire “être”</label></h3>
          142  +                    <div class="description">Cochez cette case si ce verbe s’emploie au passé composé avec l’auxilaire “être”.</div>
          143  +                    <details>
          144  +                      <div class="container">
          145  +                        <div class="examples_true">Je suis venu.<br/>Je suis parti.</div>
          146  +                        <div class="examples_false">J’ai venu.<br/>J’ai parti.</div>
          147  +                      </div>
          148  +                    </details>
          149  +                  </div>
          150  +                  <div class="block">
          151  +                    <h3><input type="checkbox" id="up_v_aa" value="a" /><label for="up_v_aa"> passé composé avec l’auxiliaire “avoir”</label></h3>
          152  +                    <div class="description">Cochez cette case si ce verbe s’emploie au passé composé avec l’auxilaire “avoir”.</div>
          153  +                    <details>
          154  +                      <div class="container">
          155  +                        <div class="examples_true">J’ai mangé.<br/>J’ai prié.</div>
          156  +                        <div class="examples_false">Je suis mangé.<br/>Je suis prié.</div>
          157  +                      </div>
          158  +                    </details>
          159  +                  </div>
          160  +
          161  +                  <div class="block">
          162  +                    <h3><input type="checkbox" id="up_partpas" checked /><label for="up_partpas"> participes passés variables</label></h3>
          163  +                    <p>Cette option est ignorée si vous utilisez un verbe modèle.</p>
          164  +                  </div>
          165  +
          166  +                  <div class="block">
          167  +                    <h3>Verbe modèle [optionnel]</h3>
          168  +                    <p>Indiquer un verbe qui doit servir de modèle n’est pas nécessaire pour la très grande majorité des verbes du 1ᵉʳ groupe et du 2ᵉ groupe. Failes-le seulement si les formes fléchies engendrées automatiquement ne vous satisfont pas.</p>
          169  +                    <input type="text" id="verb_pattern" name="verb_pattern" maxlength="60" value="" placeholder="verbe modèle" pattern="^[a-zA-Zà-ö0-9À-Öø-ÿØ-ßĀ-ʯ-]+$" />
          170  +                    <details>
          171  +                      <p>Il est fortement recommandé d’appliquer les règles d’un verbe du même groupe que celui que vous créez. Mais aucune restriction n’est imposée.</p>
          172  +                      <p><b>Classification des groupes :</b></p>
          173  +                      <ul>
          174  +                        <li>
          175  +                          <b>1ᵉʳ groupe</b> : verbes finissant par -<i>er</i>. Attention : contrairement au préjugé commun, ce groupe est irrégulier. Beaucoup de verbes voient leur racine modifiée dans certaines formes conjuguées :
          176  +                          <ul>
          177  +                            <li>ajout ou modification de diacritiques (verbes finissant par -<i>cer</i>, -<i>ecer</i>, -<i>emer</i>, -<i>ener</i>, -<i>eper</i>, -<i>erer</i>, -<i>eser</i>, -<i>ever</i>, -<i>evrer</i>, -<i>eler</i>, -<i>eter</i>, -<i>ébrer</i>, -<i>écer</i>, -<i>écher</i>, -<i>écrer</i>, -<i>éder</i>, -<i>éger</i>, -<i>égler</i>, -<i>égner</i>, -<i>égrer</i>, -<i>éguer</i>, -<i>éler</i>, -<i>émer</i>, -<i>éner</i>, -<i>éper</i>, -<i>équer</i>, -<i>érer</i>, -<i>éser</i>, -<i>éter</i>, -<i>étrer</i>, -<i>évrer</i>, -<i>éyer</i>),</li>
          178  +                            <li>un ‹e› euphonique est ajouté sur la plupart des verbes finissant par -<i>ger</i>,</li>
          179  +                            <li>certains verbes finissant par -<i>yer</i> remplacent éventuellement le ‹y› par un ‹i›,</li>
          180  +                            <li>doublement irrégulier de certaines consonnes (<i>geler</i> ne se conjugue pas comme <i>appeler</i>, <i>acheter</i> ne se conjugue pas comme <i>jeter</i>)</li>
          181  +                            <li>irrégularités diverses (<i>aller</i>, <i>envoyer</i>, <i>renvoyer</i>)…</li>
          182  +                          </ul>
          183  +                        </li>
          184  +                        <li><b>2ᵉ groupe</b> : verbes finissant par -<i>ir</i>. Ce groupe est de loin le plus régulier. Mais de nombreux verbes finissant par -<i>ir</i> appartiennent au 3ᵉ groupe.</li>
          185  +                        <li><b>3ᵉ groupe</b>. Autres verbes irréguliers.</li>
          186  +                        <li>Les verbes <i>être</i> et <i>avoir</i> n’appartiennent à aucun groupe. Il est recommandé de ne pas s’en servir comme modèle.</li>
          187  +                      </ul>
          188  +                    </details>
          189  +                  </div>
          190  +                </div>
          191  +
          192  +                <div id="section_adverbe" class="section">
          193  +                  <h2>Adverbe</h2>
          194  +                  <p>Les adverbes sont invariables en genre et en nombre.</p>
          195  +                </div>
    35    196   
    36         -
    37         -                    <div id="sections">
    38         -
    39         -                        <div id="section_vide">
    40         -                            Sélectionnez une catégorie.
    41         -                        </div>
    42         -
    43         -                        <div id="section_nom" class="section">
    44         -                            <h2>Nom, adjectif</h2>
    45         -                            <p class="typeline">
    46         -                                <input type="radio" id="up_type_nom" name="POS" value=":N" /> <label class="widelabel" for="up_type_nom">Nom</label>
    47         -                                <input type="radio" id="up_type_adj" name="POS" value=":A" /> <label class="widelabel" for="up_type_adj">Adjectif</label>
    48         -                                <input type="radio" id="up_type_nomadj" name="POS" value=":N:A" /> <label class="widelabel" for="up_type_nomadj">Nom &amp; adjectif</label>
    49         -                            </p>
    50         -                            <div class="container">
    51         -                                <div class="block">
    52         -                                    <h3>Genre</h3>
    53         -                                    <p><input type="radio" id="up_nom_genre_e" name="genre" value=":e" /><label for="up_nom_genre_e"> épicène</label></p>
    54         -                                    <p><input type="radio" id="up_nom_genre_m" name="genre" value=":m" /><label for="up_nom_genre_m"> masculin</label></p>
    55         -                                    <p><input type="radio" id="up_nom_genre_f" name="genre" value=":f" /><label for="up_nom_genre_f"> féminin</label></p>
    56         -                                </div>
    57         -                                <div class="block">
    58         -                                    <h3>Pluriel</h3>
    59         -                                    <p><input type="radio" id="up_nom_pluriel_s" name="pluriel" value="s" /><label for="up_nom_pluriel_s"> pluriel en ·s</label></p>
    60         -                                    <p><input type="radio" id="up_nom_pluriel_x" name="pluriel" value="x" /><label for="up_nom_pluriel_x"> pluriel en ·x</label></p>
    61         -                                    <p><input type="radio" id="up_nom_pluriel_i" name="pluriel" value="i" /><label for="up_nom_pluriel_i"> invariable</label></p>
    62         -                                </div>
    63         -                            </div>
          197  +                <div id="section_prenom" class="section">
          198  +                  <h2>Prénom</h2>
          199  +                  <div class="container">
          200  +                    <div class="block">
          201  +                      <h3>Genre</h3>
          202  +                      <p><input type="radio" id="up_prenom_genre_e" name="genre_m1" value=":e" /><label for="up_prenom_genre_e"> épicène</label></p>
          203  +                      <p><input type="radio" id="up_prenom_genre_m" name="genre_m1" value=":m" /><label for="up_prenom_genre_m"> masculin</label></p>
          204  +                      <p><input type="radio" id="up_prenom_genre_f" name="genre_m1" value=":f" /><label for="up_prenom_genre_f"> féminin</label></p>
          205  +                    </div>
          206  +                    <div class="block">
          207  +                      <h3>Pluriel</h3>
          208  +                      <p>Les prénoms sont invariables en nombre.</p>
          209  +                    </div>
          210  +                  </div>
          211  +                </div>
    64    212   
    65         -                            <h2>[optionnel] Autre forme (masculine, féminine, variante, etc.)</h2>
    66         -                            <input type="text" id="lemma2" name="lemma2" maxlength="60" value="" pattern="^[a-zA-Zà-ö0-9À-Öø-ÿØ-ßĀ-ʯ._-]+$" placeholder="votre mot" />
    67         -                            <div id="word_section2">
    68         -                                <p class="typeline">
    69         -                                    <input type="radio" id="up_type_nom2" name="POS2" value=":N" /> <label class="widelabel" for="up_type_nom2">Nom</label>
    70         -                                    <input type="radio" id="up_type_adj2" name="POS2" value=":A" /> <label class="widelabel" for="up_type_adj2">Adjectif</label>
    71         -                                    <input type="radio" id="up_type_nomadj2" name="POS2" value=":N:A" /> <label class="widelabel" for="up_type_nomadj2">Nom &amp; adjectif</label>
    72         -                                </p>
    73         -                                <div class="container">
    74         -                                    <div class="block">
    75         -                                        <h3>Genre</h3>
    76         -                                        <p><input type="radio" id="up_nom2_genre_e" name="genre2" value=":e" /><label for="up_nom2_genre_e"> épicène</label></p>
    77         -                                        <p><input type="radio" id="up_nom2_genre_m" name="genre2" value=":m" /><label for="up_nom2_genre_m"> masculin</label></p>
    78         -                                        <p><input type="radio" id="up_nom2_genre_f" name="genre2" value=":f" /><label for="up_nom2_genre_f"> féminin</label></p>
    79         -                                    </div>
    80         -                                    <div class="block">
    81         -                                        <h3>Pluriel</h3>
    82         -                                        <p><input type="radio" id="up_nom2_pluriel_s" name="pluriel2" value="s" /><label for="up_nom2_pluriel_s"> pluriel en ·s</label></p>
    83         -                                        <p><input type="radio" id="up_nom2_pluriel_x" name="pluriel2" value="x" /><label for="up_nom2_pluriel_x"> pluriel en ·x</label></p>
    84         -                                        <p><input type="radio" id="up_nom2_pluriel_i" name="pluriel2" value="i" /><label for="up_nom2_pluriel_i"> invariable</label></p>
    85         -                                    </div>
    86         -                                </div>
    87         -                            </div>
    88         -                        </div>
          213  +                <div id="section_patronyme" class="section">
          214  +                  <h2>Patronyme</h2>
          215  +                  <div class="container">
          216  +                    <div class="block">
          217  +                      <h3>Genre</h3>
          218  +                      <p><input type="radio" id="up_patronyme_genre_e" name="genre_m2" value=":e" /><label for="up_patronyme_genre_e"> épicène</label></p>
          219  +                      <p><input type="radio" id="up_patronyme_genre_m" name="genre_m2" value=":m" /><label for="up_patronyme_genre_m"> masculin</label></p>
          220  +                      <p><input type="radio" id="up_patronyme_genre_f" name="genre_m2" value=":f" /><label for="up_patronyme_genre_f"> féminin</label></p>
          221  +                    </div>
          222  +                    <div class="block">
          223  +                      <h3>Pluriel</h3>
          224  +                      <p>Les noms de famille sont invariables en nombre.</p>
          225  +                    </div>
          226  +                  </div>
          227  +                </div>
    89    228   
    90         -                        <div id="section_verbe" class="section">
    91         -                            <h2>Verbe</h2>
    92         -                            <div class="block">
    93         -                                <h3><input type="checkbox" id="up_v_i" value="i" /><label for="up_v_i"> intransitif</label></h3>
    94         -                                <div class="description">Cochez cette case si ce verbe peut s’utiliser sans complément d’objet.</div>
    95         -                                <details>
    96         -                                    <div class="container">
    97         -                                        <div class="examples_true">Je dors.<br/>Tu pars.<br/>Elle pense.<br/>Nous écrivons.<br/>Vous manifestez.<br/>Ils viennent.</div>
    98         -                                        <div class="examples_false">J’appartiens à ce groupe…</div>
    99         -                                    </div>
   100         -                                </details>
   101         -                            </div>
   102         -                            <div class="block">
   103         -                                <h3><input type="checkbox" id="up_v_t" value="t" /><label for="up_v_t"> transitif direct</label></h3>
   104         -                                <div class="description">Cochez cette case si ce verbe peut s’utiliser avec un complément d’objet direct (COD).</div>
   105         -                                <details>
   106         -                                    <div class="container">
   107         -                                        <div class="examples_true">Je mange <i>une pomme</i>.<br/>Tu donnes <i>une bonne impression</i>.<br/>Elle écrit <i>un livre</i>.<br/>Nous fabriquons <i>une œuvre</i>.</div>
   108         -                                        <div class="examples_false">Je pars.<br/>J’appartiens à…</div>
   109         -                                    </div>
   110         -                                </details>
   111         -                            </div>
   112         -                            <div class="block">
   113         -                                <h3><input type="checkbox" id="up_v_n" value="n" /><label for="up_v_n"> transitif indirect</label></h3>
   114         -                                <div class="description">Cochez cette case, si ce verbe peut s’utiliser avec un complément d’objet indirect (COI). Attention à ne pas confondre avec un complément circonstanciel de temps, de lieu ou de manière.</div>
   115         -                                <details>
   116         -                                    <div class="container">
   117         -                                        <div class="examples_true">Je donne un cadeau <i>à sa femme</i>.<br/>Elle appartient <i>à ce groupe</i>.</div>
   118         -                                        <div class="examples_false"></div>
   119         -                                    </div>
   120         -                                </details>
   121         -                            </div>
   122         -                            <div class="block">
   123         -                                <h3><input type="checkbox" id="up_v_p" value="p" /><label for="up_v_p"> pronominal</label></h3>
   124         -                                <div class="description">Cochez cette case si ce verbe peut s’utiliser pronominalement.</div>
   125         -                                <details>
   126         -                                    <div class="container">
   127         -                                        <div class="examples_true">Je me suis trompé.<br/>Tu t’es étonné toi-même.<br/>Elle s’est souvenu de ses études.<br/>Nous nous sommes égarés.<br/>Vous vous êtes retrouvées.<br/>Ils se sont rappelé leur enfance.</div>
   128         -                                        <div class="examples_false">Je me suis venu.<br/>tu t’es arrivé.<br/>elle s’est marché.<br/>nous nous sommes courus.<br/>vous vous êtes acculés.<br/>Elles se sont capitulées.</div>
   129         -                                    </div>
   130         -                                </details>
   131         -                            </div>
   132         -                            <div class="block">
   133         -                                <h3><input type="checkbox" id="up_v_m" value="m" /><label for="up_v_m"> impersonnel</label></h3>
   134         -                                <div class="description">Cochez cette case si ce verbe ne peut s’utiliser à la première personne, mais uniquement à la troisième personne du singulier ou du pluriel.</div>
   135         -                                <details>
   136         -                                    <div class="container">
   137         -                                        <div class="examples_true">Il pleut.</div>
   138         -                                        <div class="examples_false">Je pleus.</div>
   139         -                                    </div>
   140         -                                </details>
   141         -                            </div>
   142         -                            <div class="block">
   143         -                                <h3><input type="checkbox" id="up_v_ae" value="e" /><label for="up_v_ae"> passé composé avec l’auxiliaire “être”</label></h3>
   144         -                                <div class="description">Cochez cette case si ce verbe s’emploie au passé composé avec l’auxilaire “être”.</div>
   145         -                                <details>
   146         -                                    <div class="container">
   147         -                                        <div class="examples_true">Je suis venu.<br/>Je suis parti.</div>
   148         -                                        <div class="examples_false">J’ai venu.<br/>J’ai parti.</div>
   149         -                                    </div>
   150         -                                </details>
   151         -                            </div>
   152         -                            <div class="block">
   153         -                                <h3><input type="checkbox" id="up_v_aa" value="a" /><label for="up_v_aa"> passé composé avec l’auxiliaire “avoir”</label></h3>
   154         -                                <div class="description">Cochez cette case si ce verbe s’emploie au passé composé avec l’auxilaire “avoir”.</div>
   155         -                                <details>
   156         -                                    <div class="container">
   157         -                                        <div class="examples_true">J’ai mangé.<br/>J’ai prié.</div>
   158         -                                        <div class="examples_false">Je suis mangé.<br/>Je suis prié.</div>
   159         -                                    </div>
   160         -                                </details>
   161         -                            </div>
          229  +                <div id="section_nom_propre" class="section">
          230  +                  <h2>Nom propre</h2>
          231  +                  <div class="container">
          232  +                    <div class="block">
          233  +                      <h3>Genre</h3>
          234  +                      <p><input type="radio" id="up_nom_propre_genre_e" name="genre_mp" value=":e" /><label for="up_nom_propre_genre_e"> épicène</label></p>
          235  +                      <p><input type="radio" id="up_nom_propre_genre_m" name="genre_mp" value=":m" /><label for="up_nom_propre_genre_m"> masculin</label></p>
          236  +                      <p><input type="radio" id="up_nom_propre_genre_f" name="genre_mp" value=":f" /><label for="up_nom_propre_genre_f"> féminin</label></p>
          237  +                    </div>
          238  +                    <div class="block">
          239  +                      <h3>Pluriel</h3>
          240  +                      <p>Les noms propres sont invariables en nombre.</p>
          241  +                    </div>
          242  +                  </div>
          243  +                </div>
   162    244   
   163         -                            <div class="block">
   164         -                                <h3><input type="checkbox" id="up_partpas" checked /><label for="up_partpas"> participes passés variables</label></h3>
   165         -                                <p>Cette option est ignorée si vous utilisez un verbe modèle.</p>
   166         -                            </div>
   167         -
   168         -                            <div class="block">
   169         -                                <h3>Verbe modèle [optionnel]</h3>
   170         -                                <p>Indiquer un verbe qui doit servir de modèle n’est pas nécessaire pour la très grande majorité des verbes du 1ᵉʳ groupe et du 2ᵉ groupe. Failes-le seulement si les formes fléchies engendrées automatiquement ne vous satisfont pas.</p>
   171         -                                <input type="text" id="verb_pattern" name="verb_pattern" maxlength="60" value="" placeholder="verbe modèle" pattern="^[a-zA-Zà-ö0-9À-Öø-ÿØ-ßĀ-ʯ-]+$" />
   172         -                                <details>
   173         -                                    <p>Il est fortement recommandé d’appliquer les règles d’un verbe du même groupe que celui que vous créez. Mais aucune restriction n’est imposée.</p>
   174         -                                    <p><b>Classification des groupes :</b></p>
   175         -                                    <ul>
   176         -                                        <li><b>1ᵉʳ groupe</b> : verbes finissant par -<i>er</i>. Attention : contrairement au préjugé commun, ce groupe est irrégulier. Beaucoup de verbes voient leur racine modifiée dans certaines formes conjuguées :
   177         -                                        <ul>
   178         -                                            <li>ajout ou modification de diacritiques (verbes finissant par -<i>cer</i>, -<i>ecer</i>, -<i>emer</i>, -<i>ener</i>, -<i>eper</i>, -<i>erer</i>, -<i>eser</i>, -<i>ever</i>, -<i>evrer</i>, -<i>eler</i>, -<i>eter</i>, -<i>ébrer</i>, -<i>écer</i>, -<i>écher</i>, -<i>écrer</i>, -<i>éder</i>, -<i>éger</i>, -<i>égler</i>, -<i>égner</i>, -<i>égrer</i>, -<i>éguer</i>, -<i>éler</i>, -<i>émer</i>, -<i>éner</i>, -<i>éper</i>, -<i>équer</i>, -<i>érer</i>, -<i>éser</i>, -<i>éter</i>, -<i>étrer</i>, -<i>évrer</i>, -<i>éyer</i>),</li>
   179         -                                            <li>un ‹e› euphonique est ajouté sur la plupart des verbes finissant par -<i>ger</i>,</li>
   180         -                                            <li>certains verbes finissant par -<i>yer</i> remplacent éventuellement le ‹y› par un ‹i›,</li>
   181         -                                            <li>doublement irrégulier de certaines consonnes (<i>geler</i> ne se conjugue pas comme <i>appeler</i>, <i>acheter</i> ne se conjugue pas comme <i>jeter</i>)</li>
   182         -                                            <li>irrégularités diverses (<i>aller</i>, <i>envoyer</i>, <i>renvoyer</i>)…
   183         -                                        </ul></li>
   184         -                                        <li><b>2ᵉ groupe</b> : verbes finissant par -<i>ir</i>. Ce groupe est de loin le plus régulier. Mais de nombreux verbes finissant par -<i>ir</i> appartiennent au 3ᵉ groupe.</li>
   185         -                                        <li><b>3ᵉ groupe</b>. Autres verbes irréguliers.</li>
   186         -                                        <li>Les verbes <i>être</i> et <i>avoir</i> n’appartiennent à aucun groupe. Il est recommandé de ne pas s’en servir comme modèle.</li>
   187         -                                    </ul>
   188         -                                </details>
   189         -                            </div>
   190         -                        </div>
   191         -
   192         -                        <div id="section_adverbe" class="section">
   193         -                            <h2>Adverbe</h2>
   194         -                            <p>Les adverbes sont invariables en genre et en nombre.</p>
   195         -                        </div>
   196         -
   197         -                        <div id="section_prenom" class="section">
   198         -                            <h2>Prénom</h2>
   199         -                            <div class="container">
   200         -                                <div class="block">
   201         -                                    <h3>Genre</h3>
   202         -                                    <p><input type="radio" id="up_prenom_genre_e" name="genre_m1" value=":e" /><label for="up_prenom_genre_e"> épicène</label></p>
   203         -                                    <p><input type="radio" id="up_prenom_genre_m" name="genre_m1" value=":m" /><label for="up_prenom_genre_m"> masculin</label></p>
   204         -                                    <p><input type="radio" id="up_prenom_genre_f" name="genre_m1" value=":f" /><label for="up_prenom_genre_f"> féminin</label></p>
   205         -                                </div>
   206         -                                <div class="block">
   207         -                                    <h3>Pluriel</h3>
   208         -                                    <p>Les prénoms sont invariables en nombre.</p>
   209         -                                </div>
   210         -                            </div>
   211         -                        </div>
   212         -
   213         -                        <div id="section_patronyme" class="section">
   214         -                            <h2>Patronyme</h2>
   215         -                            <div class="container">
   216         -                                <div class="block">
   217         -                                    <h3>Genre</h3>
   218         -                                    <p><input type="radio" id="up_patronyme_genre_e" name="genre_m2" value=":e" /><label for="up_patronyme_genre_e"> épicène</label></p>
   219         -                                    <p><input type="radio" id="up_patronyme_genre_m" name="genre_m2" value=":m" /><label for="up_patronyme_genre_m"> masculin</label></p>
   220         -                                    <p><input type="radio" id="up_patronyme_genre_f" name="genre_m2" value=":f" /><label for="up_patronyme_genre_f"> féminin</label></p>
   221         -                                </div>
   222         -                                <div class="block">
   223         -                                    <h3>Pluriel</h3>
   224         -                                    <p>Les noms de famille sont invariables en nombre.</p>
   225         -                                </div>
   226         -                            </div>
   227         -                        </div>
   228         -
   229         -                        <div id="section_nom_propre" class="section">
   230         -                            <h2>Nom propre</h2>
   231         -                            <div class="container">
   232         -                                <div class="block">
   233         -                                    <h3>Genre</h3>
   234         -                                    <p><input type="radio" id="up_nom_propre_genre_e" name="genre_mp" value=":e" /><label for="up_nom_propre_genre_e"> épicène</label></p>
   235         -                                    <p><input type="radio" id="up_nom_propre_genre_m" name="genre_mp" value=":m" /><label for="up_nom_propre_genre_m"> masculin</label></p>
   236         -                                    <p><input type="radio" id="up_nom_propre_genre_f" name="genre_mp" value=":f" /><label for="up_nom_propre_genre_f"> féminin</label></p>
   237         -                                </div>
   238         -                                <div class="block">
   239         -                                    <h3>Pluriel</h3>
   240         -                                    <p>Les noms propres sont invariables en nombre.</p>
   241         -                                </div>
   242         -                            </div>
   243         -                        </div>
   244         -
   245         -                        <div id="section_autre" class="section">
   246         -                            <h2>Autre</h2>
   247         -                            <p>Indiquez les étiquettes grammaticales que vous voulez appliquer au mot. À utiliser seulement si vous savez ce que vous faites.</p>
   248         -                            <h3>Flexion</h3>
   249         -                            <p><input type="text" id="flexion" name="flexion" maxlength="20" value="" pattern="^[a-zA-Zà-ö0-9À-Öø-ÿØ-ßĀ-ʯ._-]+$" placeholder="flexion" /></p>
   250         -                            <h3>Étiquettes</h3>
   251         -                            <p><input type="text" id="tags" name="tags" maxlength="20" value="" pattern="^:[a-zA-Zà-ö0-9À-Öø-ÿØ-ßĀ-ʯ:._-]+$" placeholder="étiquettes" /></p>
   252         -                        </div>
   253         -                    </div>
          245  +                <div id="section_autre" class="section">
          246  +                  <h2>Autre</h2>
          247  +                  <p>Indiquez les étiquettes grammaticales que vous voulez appliquer au mot. À utiliser seulement si vous savez ce que vous faites.</p>
          248  +                  <h3>Flexion</h3>
          249  +                  <p><input type="text" id="flexion" name="flexion" maxlength="20" value="" pattern="^[a-zA-Zà-ö0-9À-Öø-ÿØ-ßĀ-ʯ._-]+$" placeholder="flexion" /></p>
          250  +                  <h3>Étiquettes</h3>
          251  +                  <p><input type="text" id="tags" name="tags" maxlength="20" value="" pattern="^:[a-zA-Zà-ö0-9À-Öø-ÿØ-ßĀ-ʯ:._-]+$" placeholder="étiquettes" /></p>
   254    252                   </div>
   255         -                
   256         -                <div id="actions">
   257         -                    <h2>Mots générés</h2>
   258         -                    <h3>Forme fléchie (lemme), étiquettes</h3>
   259         -                    <pre id="results">
   260         -                        
   261         -                    </pre>
   262         -                    
   263         -                    <div id="buttonline">
   264         -                        <div id="add_to_lexicon">Ajouter au dictionnaire</div>
   265         -                    </div>
   266         -                </div>
          253  +              </div>
          254  +            </div>
          255  +          </div> <!-- #new_word_generator -->
          256  +          
          257  +          <div id="generated_words">
          258  +            <h2>Mots générés</h2>
          259  +            <h3>Flexions, étiquettes</h3>
          260  +            <pre id="results">
          261  +              
          262  +            </pre>
          263  +            
          264  +            <div id="buttonline">
          265  +              <div id="add_to_lexicon">Ajouter au dictionnaire</div>
   267    266               </div>
          267  +          </div> <!-- #generated_words -->
          268  +        </div> <!-- .columns -->
          269  +      </div> <!-- #add_word_page -->
          270  +
   268    271   
   269         -            <div id="lexicon_page">
   270         -                
   271         -                <h2>Votre lexique</h2>
          272  +      <div id="lexicon_page">
          273  +        
          274  +        <div class="columns">
          275  +          <div>
          276  +            <h2>Votre lexique</h2>
   272    277   
   273         -                <div class="button_block">
   274         -                    <div id="save_button" class="fright">
   275         -                        Enregistrer
   276         -                    </div>
   277         -                    <h3>Lexique</h3>
   278         -                    <p>Nombre d’entrées ajoutées : <span id="num_added_entries">0</span>.</p>
   279         -                    <p>Nombre d’entrées supprimées : <span id="num_deleted_entries">0</span>.</p>
   280         -                    <p>Nombre d’entrées : <span id="num_entries">0</span>.</p>
   281         -                    <p><progress id="build_progress" value="0"></p>
   282         -                    <div id="export_button" class="fright">
   283         -                        Exporter
   284         -                    </div>
   285         -                    <div id="import_button" class="fright">
   286         -                        Importer
   287         -                    </div>
   288         -                    <h3>Dictionnaire enregistré</h3>
   289         -                    <p>Dernière sauvegarde : <span id="save_date">néant</span>.</p>
   290         -                    <p>Nombre d’entrées : <span id="num_entries_saved">0</span>.</p>
   291         -                </div>
   292         -                
          278  +            <div class="button_block">
          279  +              <div id="save_button" class="fright">
          280  +                Enregistrer
          281  +              </div>
          282  +              <h3>Lexique</h3>
          283  +              <p>Nombre d’entrées ajoutées : <span id="num_added_entries">0</span>.</p>
          284  +              <p>Nombre d’entrées supprimées : <span id="num_deleted_entries">0</span>.</p>
          285  +              <p>Nombre d’entrées : <span id="num_entries">0</span>.</p>
          286  +              <p><progress id="build_progress" value="0"></p>
          287  +              <div id="export_button" class="fright">
          288  +                Exporter
          289  +              </div>
          290  +              <div id="import_button" class="fright">
          291  +                Importer
          292  +              </div>
          293  +              <h3>Dictionnaire enregistré</h3>
          294  +              <p>Dernière sauvegarde : <span id="save_date">néant</span>.</p>
          295  +              <p>Nombre d’entrées : <span id="num_entries_saved">0</span>.</p>
          296  +            </div>  
          297  +          </div>
   293    298   
   294         -                <p id="no_elem_line">Aucun élément.</p>
   295         -                <p><progress id="display_progress" value="0"></p>
   296         -
   297         -                <table id="table">
   298         -                    
   299         -                </table>
   300         -            </div>
          299  +          <div>
          300  +            <p id="no_elem_line">Aucun élément.</p>
          301  +            <p><progress id="display_progress" value="0"></p>
          302  +            <table id="table">
          303  +              
          304  +            </table>
          305  +          </div>
   301    306           </div>
   302    307   
          308  +      </div> <!-- #lexicon_page -->
          309  +
          310  +    </div>
          311  +
   303    312   
   304         -        <script src="../grammalecte/graphspell/helpers.js"></script>
   305         -        <script src="../grammalecte/graphspell/str_transform.js"></script>
   306         -        <script src="../grammalecte/graphspell/dawg.js"></script>
   307         -        <script src="../grammalecte/graphspell/ibdawg.js"></script>
   308         -        <script src="../grammalecte/fr/conj.js"></script>
   309         -        <script src="../grammalecte/fr/conj_generator.js"></script>
   310         -        <script src="lex_editor.js"></script>
   311         -    </body>
   312         -    
          313  +    <script src="../grammalecte/graphspell/helpers.js"></script>
          314  +    <script src="../grammalecte/graphspell/str_transform.js"></script>
          315  +    <script src="../grammalecte/graphspell/dawg.js"></script>
          316  +    <script src="../grammalecte/graphspell/ibdawg.js"></script>
          317  +    <script src="../grammalecte/fr/conj.js"></script>
          318  +    <script src="../grammalecte/fr/conj_generator.js"></script>
          319  +    <script src="lex_editor.js"></script>
          320  +  </body>
          321  +  
   313    322   </html>

Modified gc_lang/fr/webext/panel/lex_editor.js from [acda1aa76b] to [8d106a1ae2].

   157    157       },
   158    158   
   159    159       onWrite: function () {
   160    160           if (document.getElementById("lemma").value.trim() !== "") {
   161    161               this.showElement("editor");
   162    162               oFlexGen.update();
   163    163           } else {
   164         -            this.showSection("section_vide");
   165    164               this.hideElement("editor");
   166         -            this.hideElement("actions");
   167    165           }
   168    166       },
   169    167   
   170    168       onWrite2: function () {
   171    169           if (document.getElementById("lemma2").value.trim() !== "") {
   172    170               this.showElement("word_section2");
   173    171               oFlexGen.update();
   174    172           } else {
   175    173               this.hideElement("word_section2");
   176    174           }
   177    175       },
   178    176   
   179         -    createTableHeader: function () {
          177  +    createLexiconHeader: function () {
   180    178           let xRowNode = createNode("tr");
   181    179           xRowNode.appendChild(createNode("th", { textContent: "·" }));
   182    180           xRowNode.appendChild(createNode("th", { textContent: "#" }));
   183    181           xRowNode.appendChild(createNode("th", { textContent: "Forme fléchie" }));
   184    182           xRowNode.appendChild(createNode("th", { textContent: "Lemme" }));
   185    183           xRowNode.appendChild(createNode("th", { textContent: "Étiquettes" }));
   186    184           return xRowNode;
   187    185       },
   188    186   
   189         -    createRowNode: function (n, sFlexion, sLemma, sTags) {
          187  +    createLexiconRow: function (n, sFlexion, sLemma, sTags) {
   190    188           let xRowNode = createNode("tr", { id: "row_" + n });
   191    189           xRowNode.appendChild(createNode("td", { textContent: "×", className: "delete_entry", title: "Effacer cette entrée" }, { id_entry: n }));
   192    190           xRowNode.appendChild(createNode("td", { textContent: n }));
   193    191           xRowNode.appendChild(createNode("td", { textContent: sFlexion }));
   194    192           xRowNode.appendChild(createNode("td", { textContent: sLemma }));
   195    193           xRowNode.appendChild(createNode("td", { textContent: sTags }));
   196    194           return xRowNode;
   197    195       },
   198    196   
   199         -    displayTable: function (lFlex) {
   200         -        this.clearTable();
          197  +    fillLexiconTable: function (lFlex) {
          198  +        this.clearTable("table");
   201    199           if (lFlex.length > 0) {
   202    200               this.showElement("display_progress");
   203    201               let xDisplayProgress = document.getElementById("display_progress");
   204    202               let xTable = document.getElementById("table");
   205    203               let n = 0;
   206    204               xDisplayProgress.max = lFlex.length;
   207    205               xDisplayProgress.value = 1;
   208    206               this.hideElement("no_elem_line");
   209         -            xTable.appendChild(this.createTableHeader());
          207  +            xTable.appendChild(this.createLexiconHeader());
   210    208               for (let [sFlexion, sLemma, sTags] of lFlex) {
   211         -                xTable.appendChild(this.createRowNode(n, sFlexion, sLemma, sTags));
          209  +                xTable.appendChild(this.createLexiconRow(n, sFlexion, sLemma, sTags));
   212    210                   n += 1;
   213    211                   xDisplayProgress.value += 1;
   214    212               }
   215    213               xDisplayProgress.value = xDisplayProgress.max;
   216    214               this.hideElement("display_progress");
   217    215           } else {
   218    216               this.showElement("no_elem_line");
   219    217           }
   220    218           this.updateData();
   221    219       },
   222    220   
   223         -    clearTable: function () {
   224         -        let xTable = document.getElementById("table");
          221  +    clearTable: function (sNodeId) {
          222  +        let xTable = document.getElementById(sNodeId);
   225    223           while (xTable.firstChild) {
   226    224               xTable.removeChild(xTable.firstChild);
   227    225           }
   228    226       },
   229    227   
   230    228       onTableClick: function (xEvent) {
   231    229           try {
................................................................................
   242    240       },
   243    241   
   244    242       addEntriesToTable: function (iStart, lFlex) {
   245    243           let xTable = document.getElementById("table");
   246    244           if (lFlex.length > 0) {
   247    245               if (document.getElementById("no_elem_line").style.display !== "none") {
   248    246                   this.hideElement("no_elem_line");
   249         -                xTable.appendChild(this.createTableHeader());
          247  +                xTable.appendChild(this.createLexiconHeader());
   250    248               }
   251    249               for (let [sFlexion, sLemma, sTags] of lFlex) {
   252         -                xTable.appendChild(this.createRowNode(iStart, sFlexion, sLemma, sTags));
          250  +                xTable.appendChild(this.createLexiconRow(iStart, sFlexion, sLemma, sTags));
   253    251                   iStart += 1;
   254    252               }
   255    253           }
   256    254           this.updateData();
   257    255       },
   258    256   
   259    257       deleteEntry: function (iEntry) {
................................................................................
   281    279   
   282    280       cMainTag: "",
   283    281   
   284    282       lFlexion: [],
   285    283   
   286    284       clear: function () {
   287    285           this.lFlexion = [];
   288         -        oWidgets.hideElement("actions");
   289    286       },
   290    287   
   291    288       setMainTag: function (sValue) {
   292    289           this.cMainTag = sValue;
   293    290       },
   294    291   
   295    292       addFlexion: function (sFlexion, sLemma, sTag) {
................................................................................
   439    436           }
   440    437           return null;
   441    438       },
   442    439   
   443    440       show: function () {
   444    441           let sText = "";
   445    442           for (let [sFlexion, sLemma, sTag] of this.lFlexion) {
   446         -            sText += sFlexion + " (" + sLemma + ") " + sTag + "\n";
          443  +            sText += sFlexion + "\t" + sTag + "\n";
   447    444           }
   448         -        if (sText) {
   449         -            document.getElementById("results").textContent = sText;
   450         -            oWidgets.showElement("actions");
   451         -        } else {
   452         -            oWidgets.hideElement("actions");
   453         -        }
          445  +        document.getElementById("results").textContent = sText;
   454    446       },
   455    447   
   456    448       addToLexicon: function () {
   457    449           try {
   458    450               oLexicon.addFlexions(this.lFlexion);
   459    451               document.getElementById("lemma").value = "";
   460    452               document.getElementById("lemma").focus();
   461         -            oWidgets.showSection("section_vide");
   462    453               oWidgets.hideElement("editor");
   463         -            oWidgets.hideElement("actions");
   464    454               oWidgets.clear();
   465    455               oWidgets.showElement("save_button");
   466    456               this.clear();
   467    457               this.cMainTag = "";
   468    458           }
   469    459           catch (e) {
   470    460               showError(e);
................................................................................
   480    470       nEntries: 0,
   481    471       nDeletedEntries: 0,
   482    472       nAddedEntries: 0,
   483    473   
   484    474       set: function (lFlexion) {
   485    475           this.lFlexion = lFlexion;
   486    476           this.resetModif();
   487         -        oWidgets.displayTable(this.lFlexion);
          477  +        oWidgets.fillLexiconTable(this.lFlexion);
   488    478           if (this.lFlexion.length > 0) {
   489    479               oWidgets.showElement("export_button");
   490    480           } else {
   491    481               oWidgets.hideElement("export_button");
   492    482           }
   493    483       },
   494    484   
................................................................................
   515    505       },
   516    506   
   517    507       save: function () {
   518    508           oWidgets.hideElement("save_button");
   519    509           this.lFlexion = this.lFlexion.filter((e) => e !== null);
   520    510           oBinaryDict.build(this.lFlexion);
   521    511           this.resetModif();
   522         -        oWidgets.displayTable(this.lFlexion);
          512  +        oWidgets.fillLexiconTable(this.lFlexion);
   523    513           oWidgets.updateData();
   524    514       }
   525    515   }
   526    516   
   527    517   
   528    518   const oBinaryDict = {
   529    519