Index: gc_lang/fr/modules-js/conj_generator.js ================================================================== --- gc_lang/fr/modules-js/conj_generator.js +++ gc_lang/fr/modules-js/conj_generator.js @@ -37,42 +37,43 @@ } return "4"; }, getConjRules: function (sVerb, bVarPpas=true, nGroup=2) { + // .slice(0): clone an Array let lConj = null; let sVarPpas = (bVarPpas) ? "true" : "false"; if (sVerb.endsWith("er")) { // premier groupe, conjugaison en fonction de la terminaison du lemme // 5 lettres if (sVerb.slice(-5) in this.oConj["V1"]) { - lConj = this.oConj["V1"][sVerb.slice(-5)]; + lConj = this.oConj["V1"][sVerb.slice(-5)].slice(0); } // 4 lettres else if (sVerb.slice(-4) in this.oConj["V1"]) { if (sVerb.endsWith("eler") || sVerb.endsWith("eter")) { - lConj = this.oConj["V1"][sVerb.slice(-4)]["1"]; + lConj = this.oConj["V1"][sVerb.slice(-4)]["1"].slice(0); } else { - lConj = this.oConj["V1"][sVerb.slice(-4)]; + lConj = this.oConj["V1"][sVerb.slice(-4)].slice(0); } } // 3 lettres else if (sVerb.slice(-3) in this.oConj["V1"]) { - lConj = this.oConj["V1"][sVerb.slice(-3)]; + lConj = this.oConj["V1"][sVerb.slice(-3)].slice(0); } // 2 lettres else { - lConj = this.oConj["V1"]["er"]; + lConj = this.oConj["V1"]["er"].slice(0); } - //console.log(lConj); - //console.log(this.oConj["V1_ppas"][sVarPpas]); lConj.push(...this.oConj["V1_ppas"][sVarPpas]); - } else if (sVerb.endsWith("ir") && nGroup <= 2) { + } + else if (sVerb.endsWith("ir") && nGroup <= 2) { // deuxième groupe - lConj = this.oConj["V2"]; + lConj = this.oConj["V2"].slice(0); lConj.push(...this.oConj["V2_ppas"][sVarPpas]); - } else { + } + else { // TODO: troisième groupe lConj = [ [0, "", ":Y/*", false] ]; } return lConj; }, Index: gc_lang/fr/modules/conj_generator.py ================================================================== --- gc_lang/fr/modules/conj_generator.py +++ gc_lang/fr/modules/conj_generator.py @@ -29,27 +29,27 @@ def getConjRules (sVerb, bVarPpas=True, nGroup=2): if sVerb.endswith("er"): # premier groupe, conjugaison en fonction de la terminaison du lemme # 5 lettres if sVerb[-5:] in oConj["V1"]: - lConj = oConj["V1"][sVerb[-5:]] + lConj = list(oConj["V1"][sVerb[-5:]]) # 4 lettres elif sVerb[-4:] in oConj["V1"]: if sVerb.endswith(("eler", "eter")): - lConj = oConj["V1"][sVerb[-4:]]["1"] + lConj = list(oConj["V1"][sVerb[-4:]]["1"]) else: - lConj = oConj["V1"][sVerb[-4:]] + lConj = list(oConj["V1"][sVerb[-4:]]) # 3 lettres elif sVerb[-3:] in oConj["V1"]: - lConj = oConj["V1"][sVerb[-3:]] + lConj = list(oConj["V1"][sVerb[-3:]]) # 2 lettres else: - lConj = oConj["V1"]["er"] + lConj = list(oConj["V1"]["er"]) lConj.extend(oConj["V1_ppas"][bVarPpas]) elif sVerb.endswith("ir") and nGroup <= 2: # deuxième groupe - lConj = oConj["V2"] + lConj = list(oConj["V2"]) lConj.extend(oConj["V2_ppas"][bVarPpas]) else: # TODO: troisième groupe lConj = [ [0, "", ":Y/*", False] ] return lConj