Overview
Comment: | [core][js] mfsp as object |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | core | webext2 |
Files: | files | file ages | folders |
SHA3-256: |
47815bc2dc8d23ca92335ad9e5484865 |
User & Date: | olr on 2017-07-31 16:35:43 |
Other Links: | branch diff | manifest | tags |
Context
2017-07-31
| ||
17:00 | [core][js] helpers: funcOutput as private attribute check-in: 4f87f76619 user: olr tags: core, webext2 | |
16:35 | [core][js] mfsp as object check-in: 47815bc2dc user: olr tags: core, webext2 | |
15:56 | [core][js] phonet as object check-in: 455f677793 user: olr tags: core, webext2 | |
Changes
Modified gc_lang/fr/modules-js/mfsp.js from [404b1b695d] to [6dafeac5dd].
1 2 3 4 5 | // Grammalecte "use strict"; const helpers = require("resource://grammalecte/helpers.js"); | < | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > | | | | > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | // Grammalecte "use strict"; const helpers = require("resource://grammalecte/helpers.js"); const _oData = JSON.parse(helpers.loadFile("resource://grammalecte/fr/mfsp_data.json")); // list of affix codes const _lTagMiscPlur = _oData.lTagMiscPlur; const _lTagMasForm = _oData.lTagMasForm; // dictionary of words with uncommon plurals (-x, -ux, english, latin and italian plurals) and tags to generate them const _dMiscPlur = helpers.objectToMap(_oData.dMiscPlur); // dictionary of feminine forms and tags to generate masculine forms (singular and plural) const _dMasForm = helpers.objectToMap(_oData.dMasForm); var mfsp = { isFemForm: function (sWord) { // returns True if sWord exists in _dMasForm return _dMasForm.has(sWord); }, getMasForm: function (sWord, bPlur) { // returns masculine form with feminine form if (_dMasForm.has(sWord)) { return [ for (sTag of this._whatSuffixCode(sWord, bPlur)) this._modifyStringWithSuffixCode(sWord, sTag) ]; } return []; }, hasMiscPlural: function (sWord) { // returns True if sWord exists in dMiscPlur return _dMiscPlur.has(sWord); }, getMiscPlural: function (sWord) { // returns plural form with singular form if (_dMiscPlur.has(sWord)) { return [ for (sTag of _lTagMiscPlur[_dMiscPlur.get(sWord)].split("|")) this._modifyStringWithSuffixCode(sWord, sTag) ]; } return []; }, _whatSuffixCode: function (sWord, bPlur) { // necessary only for dMasFW let sSfx = _lTagMasForm[_dMasForm.get(sWord)]; if (sSfx.includes("/")) { if (bPlur) { return sSfx.slice(sSfx.indexOf("/")+1).split("|"); } return sSfx.slice(0, sSfx.indexOf("/")).split("|"); } return sSfx.split("|"); }, _modifyStringWithSuffixCode: function (sWord, sSfx) { // returns sWord modified by sSfx if (!sWord) { return ""; } if (sSfx === "0") { return sWord; } try { if (sSfx[0] !== '0') { return sWord.slice(0, -(sSfx.charCodeAt(0)-48)) + sSfx.slice(1); // 48 is the ASCII code for "0" } else { return sWord + sSfx.slice(1); } } catch (e) { console.log(e); return "## erreur, code : " + sSfx + " ##"; } } } if (typeof(exports) !== 'undefined') { exports.isFemForm = mfsp.isFemForm; exports.getMasForm = mfsp.getMasForm; exports.hasMiscPlural = mfsp.hasMiscPlural; exports.getMiscPlural = mfsp.getMiscPlural; exports._whatSuffixCode = mfsp._whatSuffixCode; exports._modifyStringWithSuffixCode = mfsp._modifyStringWithSuffixCode; } |