Index: gc_lang/fr/webext/panel/lex_editor.css ================================================================== --- gc_lang/fr/webext/panel/lex_editor.css +++ gc_lang/fr/webext/panel/lex_editor.css @@ -24,13 +24,10 @@ font: normal 16px "Trebuchet MS", "Fira Sans", "Liberation Sans", sans-serif; color: #505050; } - -/* MAIN ====================================================================== */ - .inbox { width: 600px; margin: 20px auto 10px auto; padding: 10px 30px 30px 30px; background: hsl(0, 0%, 100%); @@ -59,11 +56,11 @@ display: flex; padding: 10px 0; } #another_word_section { - opacity: .2; + opacity: .33; } .category { padding: 10px; border-radius: 3px; @@ -134,18 +131,19 @@ border: 2px solid hsl(0, 0%, 80%); border-radius: 3px; height: 24px; background: transparent; font: normal 20px Tahoma, "Ubuntu Condensed"; - color: hsl(0, 0%, 30%); + color: hsl(0, 0%, 20%); } input[placeholder] { color: hsl(0, 0%, 80%); } -#generated_words { +#actions { + display: none; padding: 10px; } #buttonline { text-align: right; Index: gc_lang/fr/webext/panel/lex_editor.html ================================================================== --- gc_lang/fr/webext/panel/lex_editor.html +++ gc_lang/fr/webext/panel/lex_editor.html @@ -25,11 +25,11 @@
Patronyme
Nom propre
-
Autre
+
Autre
@@ -38,111 +38,125 @@

Nom, adjectif

- - - + + +

Genre

-

-

-

+

+

+

Pluriel

-

-

-

+

+

+

[optionnel] Autre forme (masculine, féminine, variante, etc.)

- - - + + +

Genre

-

-

-

+

+

+

Pluriel

-

-

-

+

+

+

Verbe

-

-
Cochez cette case si ce verbe peut s’utiliser sans complément d’objet.
-
-
Je dors.
Tu pars.
Elle pense.
Nous écrivons.
Vous manifestez.
Ils viennent.
-
J’appartiens à ce groupe…
-
-
-
-

-
Cochez cette case si ce verbe peut s’utiliser avec un complément d’objet direct (COD).
-
-
Je mange une pomme.
Tu donnes une bonne impression.
Elle écrit un livre.
Nous fabriquons une œuvre.
-
Je pars.
J’appartiens à…
-
-
-
-

-
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 de temps ou de lieu.
-
-
Je donne un cadeau à sa femme.
Elle appartient à ce groupe.
-
-
-
-
-

-
Cochez cette case si ce verbe peut s’utiliser pronominalement.
-
-
Je me suis trompé.
Tu t’es étonné toi-même.
Elle s’est souvenu de ses études.
Nous nous sommes égarés.
Vous vous êtes retrouvées.
Ils se sont rappelé leur enfance.
-
Je me suis venu.
-
-
-
-

-
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.
-
-
Il pleut.
-
Je pleus.
-
-
-
-

-
Cochez cette case, si ce verbe s’emploie au passé composé avec l’auxilaire “être”.
-
-
Je suis venu.
Je suis parti.
-
J’ai venu.
J’ai parti.
-
-
-
-

-
Cochez cette case, si ce verbe s’emploie au passé composé avec l’auxilaire “avoir”.
-
-
J’ai mangé.
J’ai prié.
-
Je suis mangé.
Je suis prié.
-
+

+
Cochez cette case si ce verbe peut s’utiliser sans complément d’objet.
+
+
+
Je dors.
Tu pars.
Elle pense.
Nous écrivons.
Vous manifestez.
Ils viennent.
+
J’appartiens à ce groupe…
+
+
+
+
+

+
Cochez cette case si ce verbe peut s’utiliser avec un complément d’objet direct (COD).
+
+
+
Je mange une pomme.
Tu donnes une bonne impression.
Elle écrit un livre.
Nous fabriquons une œuvre.
+
Je pars.
J’appartiens à…
+
+
+
+
+

+
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 de temps ou de lieu.
+
+
+
Je donne un cadeau à sa femme.
Elle appartient à ce groupe.
+
+
+
+
+
+

+
Cochez cette case si ce verbe peut s’utiliser pronominalement.
+
+
+
Je me suis trompé.
Tu t’es étonné toi-même.
Elle s’est souvenu de ses études.
Nous nous sommes égarés.
Vous vous êtes retrouvées.
Ils se sont rappelé leur enfance.
+
Je me suis venu.
+
+
+
+
+

+
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.
+
+
+
Il pleut.
+
Je pleus.
+
+
+
+
+

+
Cochez cette case si ce verbe s’emploie au passé composé avec l’auxilaire “être”.
+
+
+
Je suis venu.
Je suis parti.
+
J’ai venu.
J’ai parti.
+
+
+
+
+

+
Cochez cette case si ce verbe s’emploie au passé composé avec l’auxilaire “avoir”.
+
+
+
J’ai mangé.
J’ai prié.
+
Je suis mangé.
Je suis prié.
+
+

Adverbe

@@ -152,13 +166,13 @@

Prénom

Genre

-

-

-

+

+

+

Pluriel

Les prénoms sont invariables en nombre.

@@ -168,13 +182,13 @@

Patronyme

Genre

-

-

-

+

+

+

Pluriel

Les noms de famille sont invariables en nombre.

@@ -184,13 +198,13 @@

Nom propre

Genre

-

-

-

+

+

+

Pluriel

Les noms propres sont invariables en nombre.

@@ -199,23 +213,25 @@

Autre

Indiquez les étiquettes grammaticales que vous voulez appliquer au mot. À utiliser seulement si vous savez ce que vous faites. Dans le cas contraire, tant pis pour vous.

Lemme

-

+

Étiquettes

-

+

- -
+ +

Mots générés

-

-            
- -
-
Ajouter au dictionnaire
+
+ +
+ +
+
Ajouter au dictionnaire
+
Index: gc_lang/fr/webext/panel/lex_editor.js ================================================================== --- gc_lang/fr/webext/panel/lex_editor.js +++ gc_lang/fr/webext/panel/lex_editor.js @@ -12,12 +12,15 @@ try { let xElem = xEvent.target; if (xElem.id) { if (xElem.id.startsWith("select_")) { oPage.showSection("section_" + xElem.id.slice(7)); - } else { - + oFlex.getLemma(); + oFlex.setMainTag(xElem.dataset.tag); + oFlex.update(); + } else if (xElem.id.startsWith("up_")) { + oFlex.update(); } } else { } } @@ -26,10 +29,11 @@ } } document.getElementById("categories").addEventListener("click", onSelectionClick, false); +document.getElementById("editor").addEventListener("click", onSelectionClick, false); /* @@ -67,21 +71,27 @@ xElem.checked = false; } for (let xElem of document.getElementsByName("genre")) { xElem.checked = false; } + for (let xElem of document.getElementsByName("pluriel2")) { + xElem.checked = false; + } + for (let xElem of document.getElementsByName("genre2")) { + xElem.checked = false; + } // verbe - document.getElementById("v_i").checked = false; - document.getElementById("v_t").checked = false; - document.getElementById("v_n").checked = false; - document.getElementById("v_p").checked = false; - document.getElementById("v_m").checked = false; - document.getElementById("v_ae").checked = false; - document.getElementById("v_aa").checked = false; + document.getElementById("up_v_i").checked = false; + document.getElementById("up_v_t").checked = false; + document.getElementById("up_v_n").checked = false; + document.getElementById("up_v_p").checked = false; + document.getElementById("up_v_m").checked = false; + document.getElementById("up_v_ae").checked = false; + document.getElementById("up_v_aa").checked = false; // autre - document.getElementById("lemma").value = ""; - document.getElementById("tags").value = ""; + document.getElementById("up_lemma").value = ""; + document.getElementById("up_tags").value = ""; } catch (e) { showError(e); } } @@ -89,24 +99,138 @@ const oFlex = { - sLemma: "", + sWord: "", + cMainTag: "", + lFlexion: [], + + clear: function () { + this.lFlexion = []; + document.getElementById("actions").style.display = "none"; + }, getLemma: function () { - this.sLemma = document.getElementById("lemma").value; + this.sWord = document.getElementById("word").value.trim(); + }, + + setMainTag: function (sValue) { + this.cMainTag = sValue; + }, + + addFlexion: function (sFlexion, sLemma, sTag) { + this.lFlexion.push( [sFlexion, sLemma, sTag] ); + }, + + update: function () { + try { + this.clear(); + let sGenderTag = ""; + if (this.sWord.length > 0) { + switch (this.cMainTag) { + case "N": + let sTag = this.getRadioValue("POS") + this.getRadioValue("genre"); + switch (this.getRadioValue("pluriel")) { + case "s": + this.addFlexion(this.sWord, this.sWord, sTag+":s"); + this.addFlexion(this.sWord+"s", this.sWord, sTag+":p"); + break; + case "x": + this.addFlexion(this.sWord, this.sWord, sTag+":s"); + this.addFlexion(this.sWord+"x", this.sWord, sTag+":p"); + break; + case "i": + this.addFlexion(this.sWord, this.sWord, sTag+":i"); + break; + } + let sWord2 = document.getElementById("word2").value.trim(); + if (sWord2.length > 0) { + let sTag2 = this.getRadioValue("POS2") + this.getRadioValue("genre2"); + switch (this.getRadioValue("pluriel2")) { + case "s": + this.addFlexion(sWord2, sWord2, sTag2+":s"); + this.addFlexion(sWord2+"s", sWord2, sTag2+":p"); + break; + case "x": + this.addFlexion(sWord2, sWord2, sTag2+":s"); + this.addFlexion(sWord2+"x", sWord2, sTag2+":p"); + break; + case "i": + this.addFlexion(sWord2, sWord2, sTag2+":i"); + break; + } + } + break; + case "V": + if (!this.sWord.endsWith("er") && !this.sWord.endsWith("ir")) { + break; + } + let c_g = (this.sWord.endsWith("er")) ? "1" : "2"; + let c_i = (document.getElementById("up_v_i").checked) ? "i" : "_"; + let c_t = (document.getElementById("up_v_t").checked) ? "t" : "_"; + let c_n = (document.getElementById("up_v_n").checked) ? "n" : "_"; + let c_p = (document.getElementById("up_v_p").checked) ? "p" : "_"; + let c_m = (document.getElementById("up_v_m").checked) ? "m" : "_"; + let c_ae = (document.getElementById("up_v_ae").checked) ? "e" : "_"; + let c_aa = (document.getElementById("up_v_aa").checked) ? "a" : "_"; + let sVerbTag = c_i + c_t + c_n + c_p + c_m + c_ae + c_aa; + if (!sVerbTag.endsWith("__") && !sVerbTag.startsWith("____")) { + this.addFlexion(this.sWord, this.sWord, ":V" + c_g + "_" + sVerbTag); + } + break; + case "W": + this.addFlexion(this.sWord, this.sWord, ":W"); + break; + case "M1": + sGenderTag = this.getRadioValue("genre_m1"); + if (sGenderTag) { + this.addFlexion(this.sWord, this.sWord, ":M1"+sGenderTag+":i"); + } + break; + case "M2": + sGenderTag = this.getRadioValue("genre_m2"); + if (sGenderTag) { + this.addFlexion(this.sWord, this.sWord, ":M2"+sGenderTag+":i"); + } + break; + case "MP": + sGenderTag = this.getRadioValue("genre_mp"); + if (sGenderTag) { + this.addFlexion(this.sWord, this.sWord, ":MP"+sGenderTag+":i"); + } + break; + } + } + this.show(); + } + catch (e) { + showError(e); + } }, - create: function () { - + getRadioValue: function (sName) { + if (document.querySelector('input[name="' + sName + '"]:checked')) { + return document.querySelector('input[name="' + sName + '"]:checked').value; + } + return null; }, show: function () { - + let sText = ""; + for (let [sFlexion, sLemma, sTag] of this.lFlexion) { + sText += sFlexion + " (" + sLemma + ") " + sTag + "
\n"; + } + if (sText) { + document.getElementById("results").innerHTML = sText; + document.getElementById("actions").style.display = "block"; + } else { + document.getElementById("actions").style.display = "none"; + } + }, addToDictionary: function () { } }