Index: gc_lang/fr/data/locutions.txt ================================================================== --- gc_lang/fr/data/locutions.txt +++ gc_lang/fr/data/locutions.txt @@ -1,14 +1,14 @@ -à califourchon :Ŵ -à contrecœur :Ŵ -à cœur joie :Ŵ -à cœur ouvert :Ŵ -à corps perdu :Ŵ -à bâtons rompus :Ŵ -à perte de vue :Ŵ -à visage découvert :Ŵ -à vue d’œil :Ŵ -à l’aveuglette :Ŵ -ad hominem :Ŵ -en tout et pour tout :Ŵ -par ailleurs :Ŵ -par acquit de conscience :Ŵ +à califourchon :LW +à contrecœur :LW +à cœur joie :LW +à cœur ouvert :LW +à corps perdu :LW +à bâtons rompus :LW +à perte de vue :LW +à visage découvert :LW +à vue d’œil :LW +à l’aveuglette :LW +ad hominem :LW +en tout et pour tout :LW +par ailleurs :LW +par acquit de conscience :LW Index: gc_lang/fr/modules-js/lexicographe.js ================================================================== --- gc_lang/fr/modules-js/lexicographe.js +++ gc_lang/fr/modules-js/lexicographe.js @@ -41,23 +41,21 @@ [':Ot', " pronom interrogatif,"], [':Or', " pronom relatif,"], [':Ow', " pronom adverbial,"], [':Os', " pronom personnel sujet,"], [':Oo', " pronom personnel objet,"], - [':C', " conjonction,"], + [':C', " conjonction,"], + [':Ĉ', " conjonction (él.),"], [':Cc', " conjonction de coordination,"], [':Cs', " conjonction de subordination,"], + [':Ĉs', " conjonction de subordination (él.),"], - [':Ĺ', " locution,"], - [':Ĉ', " locution conjonctivale (él.),"], - [':Ĉs', " locution conjonctivale de subordination (él.),"], [':Ŵ', " locution adverbiale (él.),"], [':Ñ', " locution nominale (él.),"], [':Â', " locution adjectivale (él.),"], [':Ṽ', " locution verbale (él.),"], [':Ŕ', " locution prépositive (él.),"], - [':Ô', " locution pronominales (él.),"], [':Ĵ', " locution interjective (él.),"], [':Zp', " préfixe,"], [':Zs', " suffixe,"], @@ -106,12 +104,38 @@ ['/*', ""], ['/C', " {classique}"], ['/M', ""], ['/R', " {réforme}"], ['/A', ""], - ['/X', ""], + ['/X', ""] +]); + +const _dLocTAGS = new Map([ + [':LN', "locution nominale"], + [':LA', "locution adjectivale"], + [':LV', "locution verbale"], + [':LW', "locution adverbiale"], + [':LR', "locution prépositive"], + [':LO', "locution pronominale"], + [':LC', "locution conjonctive"], + [':LJ', "locution interjective"], + + [':B', " cardinal"], + [':e', " épicène"], + [':m', " masculin"], + [':f', " féminin"], + [':s', " singulier"], + [':p', " pluriel"], + [':i', " invariable"], ['/L', " {latin}"] +]); +const _dLocVERB = new Map([ + ['i', " intransitif"], + ['n', " transitif indirect"], + ['t', " transitif direct"], + ['p', " pronominal"], + ['m', " impersonnel"], ]); const _dPFX = new Map([ ['d', "(de), déterminant épicène invariable"], ['l', "(le/la), déterminant masculin/féminin singulier"], @@ -316,10 +340,34 @@ helpers.echo(sRes); return sRes; } return sRes.gl_trimRight(","); } + + _formatTagsLoc (sTags) { + let sRes = ""; + let sTagsVerb = sTags.replace(/(:LV)([a-z].?)(.*)/, '$2'); + sTags = sTags.replace(/(:LV)([a-z].?)(.*)/, "V$1"); + let m; + while ((m = this._zTag.exec(sTags)) !== null) { + sRes += _dLocTAGS.get(m[0]); + if (m[0] == ':LV'){ + for (let sKey of sTagsVerb.split('')) { + sRes += _dLocVERB.get(sKey); + }; + } + if (sRes.length > 100) { + break; + } + } + if (!sRes) { + sRes = "#Erreur. Étiquette inconnue : [" + sTags + "]"; + helpers.echo(sRes); + return sRes; + } + return sRes.gl_trimRight(","); + } _formatSuffix (s) { if (s.startsWith("t-")) { return "“t” euphonique +" + _dAD.get(s.slice(2)); } @@ -400,11 +448,11 @@ 'aSubToken': aTokenTempList }; if (bInfo) { let aFormatedTag = []; for (let sTagLoc of sMorphLoc.split('|') ){ - aFormatedTag.push( this._formatTags(sTagLoc).replace(/( \(él.\))/g,'') ); + aFormatedTag.push( this._formatTagsLoc(sTagLoc) ); } aElem.push({ sType: oTokenLocution.sType, sValue: oTokenLocution.sValue, aLabel: aFormatedTag,