Grammalecte  Check-in [245cd4631d]

Overview
Comment:[core][build] options according to context (applications)
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk | core | new_feature
Files: files | file ages | folders
SHA3-256: 245cd4631d213dd2e856f376f616f19de0fb6959cef53128e61533130ca3a939
User & Date: olr on 2017-06-24 07:35:06
Other Links: manifest | tags
Context
2017-06-24
10:50
[fr] commentaire sur les options check-in: 21ead76aef user: olr tags: trunk, fr
07:35
[core][build] options according to context (applications) check-in: 245cd4631d user: olr tags: trunk, core, new_feature
05:46
[fr] build_data: print() commenté check-in: 20653fa7f3 user: olr tags: trunk, fr
Changes

Modified gc_core/js/lang_core/gc_engine.js from [c712d65b9e] to [e250bfaf63].

31
32
33
34
35
36
37

38
39
40
41
42
43
44
45
46
47
48
49
// commons regexes
const _zEndOfSentence = new RegExp ('([.?!:;…][ .?!… »”")]*|.$)', "g");
const _zBeginOfParagraph = new RegExp ("^[-  –—.,;?!…]*", "ig");
const _zEndOfParagraph = new RegExp ("[-  .,;?!…–—]*$", "ig");

// grammar rules and dictionary
//const _rules = require("./gc_rules.js");

const _rules = require("resource://grammalecte/${lang}/gc_rules.js");
let _dOptions = gc_options.dOpt._shallowCopy();     // duplication necessary, to be able to reset to default
let _aIgnoredRules = new Set();
let _oDict = null;
let _dAnalyses = new Map();                        // cache for data from dictionary


///// Parsing

function parse (sText, sCountry="${country_default}", bDebug=false, bContext=false) {
    // analyses the paragraph sText and returns list of errors
    let dErrors;







>

|


|







31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
// commons regexes
const _zEndOfSentence = new RegExp ('([.?!:;…][ .?!… »”")]*|.$)', "g");
const _zBeginOfParagraph = new RegExp ("^[-  –—.,;?!…]*", "ig");
const _zEndOfParagraph = new RegExp ("[-  .,;?!…–—]*$", "ig");

// grammar rules and dictionary
//const _rules = require("./gc_rules.js");
let _sContext = "";                                 // what software is running
const _rules = require("resource://grammalecte/${lang}/gc_rules.js");
let _dOptions = null;
let _aIgnoredRules = new Set();
let _oDict = null;
let _dAnalyses = new Map();                         // cache for data from dictionary


///// Parsing

function parse (sText, sCountry="${country_default}", bDebug=false, bContext=false) {
    // analyses the paragraph sText and returns list of errors
    let dErrors;
291
292
293
294
295
296
297
298
299
300


301
302
303
304
305
306
307
        helpers.logerror(e);
    }
}


//////// init

function load () {
    try {
        _oDict = new ibdawg.IBDAWG("${dic_name}.json");


    }
    catch (e) {
        helpers.logerror(e);
    }
}

function setOption (sOpt, bVal) {







|


>
>







292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
        helpers.logerror(e);
    }
}


//////// init

function load (sContext="JavaScript") {
    try {
        _oDict = new ibdawg.IBDAWG("${dic_name}.json");
        _sContext = sContext;
        _dOptions = gc_options.getOptions(sContext)._shallowCopy();     // duplication necessary, to be able to reset to default
    }
    catch (e) {
        helpers.logerror(e);
    }
}

function setOption (sOpt, bVal) {
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
}

function getOptions () {
    return _dOptions;
}

function getDefaultOptions () {
    return gc_options.dOpt._shallowCopy();
}

function resetOptions () {
    _dOptions = gc_options.dOpt._shallowCopy();
}

function getDictionary () {
    return _oDict;
}

function _getRules (bParagraph) {







|



|







318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
}

function getOptions () {
    return _dOptions;
}

function getDefaultOptions () {
    return gc_options.getOptions(_sContext)._shallowCopy();
}

function resetOptions () {
    _dOptions = gc_options.getOptions(_sContext)._shallowCopy();
}

function getDictionary () {
    return _oDict;
}

function _getRules (bParagraph) {

Modified gc_core/js/lang_core/gc_options.js from [3105c2862f] to [a6bfab9180].

1
2
3







4
5
6
7




8
9
10

11
12
13
// Options for Grammalecte

${map}








const lStructOpt = ${lStructOpt};

const dOpt = new Map (${dOptJavaScript});





const dOptLabel = ${dOptLabel};


exports.lStructOpt = lStructOpt;
exports.dOpt = dOpt;
exports.dOptLabel = dOptLabel;



>
>
>
>
>
>
>



|
>
>
>
>



>

<

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

24
// Options for Grammalecte

${map}

function getOptions (sContext="JavaScript") {
    if (dOpt.hasOwnProperty(sContext)) {
        return dOpt[sContext];
    }
    return dOpt["JavaScript"];
}

const lStructOpt = ${lStructOpt};

const dOpt = {
    "JavaScript": new Map (${dOptJavaScript}),
    "Firefox": new Map (${dOptFirefox}),
    "Thunderbird": new Map (${dOptThunderbird}),
}

const dOptLabel = ${dOptLabel};

exports.getOptions = getOptions;
exports.lStructOpt = lStructOpt;

exports.dOptLabel = dOptLabel;

Modified gc_core/py/lang_core/gc_engine.py from [25f4682d72] to [4742310603].

25
26
27
28
29
30
31

32
33
34
35
36
37
38
39
40
locales = ${loc}
pkg = "${implname}"
name = "${name}"
version = "${version}"
author = "${author}"

# grammar rules and dictionary

_rules = None
_dOptions = dict(gc_options.dOpt)       # duplication necessary, to be able to reset to default
_aIgnoredRules = set()
_oDict = None
_dAnalyses = {}                         # cache for data from dictionary



#### Parsing







>
|
|







25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
locales = ${loc}
pkg = "${implname}"
name = "${name}"
version = "${version}"
author = "${author}"

# grammar rules and dictionary
_sContext = ""                          # what software is running
_rules = None                           # module gc_rules
_dOptions = None
_aIgnoredRules = set()
_oDict = None
_dAnalyses = {}                         # cache for data from dictionary



#### Parsing
281
282
283
284
285
286
287
288
289


290
291


292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
    from com.sun.star.beans import PropertyValue
    #import lightproof_handler_${implname} as opt
    _createError = _createWriterError
except ImportError:
    _createError = _createDictError


def load ():
    global _oDict


    try:
        _oDict = IBDAWG("${dic_name}.bdic")


    except:
        traceback.print_exc()


def setOption (sOpt, bVal):
    if sOpt in _dOptions:
        _dOptions[sOpt] = bVal


def setOptions (dOpt):
    for sKey, bVal in dOpt.items():
        if sKey in _dOptions:
            _dOptions[sKey] = bVal


def getOptions ():
    return _dOptions


def getDefaultOptions ():
    return dict(gc_options.dOpt)


def getOptionsLabels (sLang):
    return gc_options.getUI(sLang)


def displayOptions (sLang):
    echo("List of options")
    echo("\n".join( [ k+":\t"+str(v)+"\t"+gc_options.getUI(sLang).get(k, ("?", ""))[0]  for k, v  in sorted(_dOptions.items()) ] ))
    echo("")


def resetOptions ():
    global _dOptions
    _dOptions = dict(gc_options.dOpt)


def getDictionary ():
    return _oDict


def _getRules (bParagraph):







|

>
>


>
>




















|














|







282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
    from com.sun.star.beans import PropertyValue
    #import lightproof_handler_${implname} as opt
    _createError = _createWriterError
except ImportError:
    _createError = _createDictError


def load (sContext="Python"):
    global _oDict
    global _sContext
    global _dOptions
    try:
        _oDict = IBDAWG("${dic_name}.bdic")
        _sContext = sContext
        _dOptions = dict(gc_options.getOptions(sContext))   # duplication necessary, to be able to reset to default
    except:
        traceback.print_exc()


def setOption (sOpt, bVal):
    if sOpt in _dOptions:
        _dOptions[sOpt] = bVal


def setOptions (dOpt):
    for sKey, bVal in dOpt.items():
        if sKey in _dOptions:
            _dOptions[sKey] = bVal


def getOptions ():
    return _dOptions


def getDefaultOptions ():
    return dict(gc_options.getOptions(_sContext))


def getOptionsLabels (sLang):
    return gc_options.getUI(sLang)


def displayOptions (sLang):
    echo("List of options")
    echo("\n".join( [ k+":\t"+str(v)+"\t"+gc_options.getUI(sLang).get(k, ("?", ""))[0]  for k, v  in sorted(_dOptions.items()) ] ))
    echo("")


def resetOptions ():
    global _dOptions
    _dOptions = dict(gc_options.getOptions(_sContext))


def getDictionary ():
    return _oDict


def _getRules (bParagraph):

Modified gc_core/py/lang_core/gc_options.py from [383a99acb3] to [871c8d4b8f].

1
2
3
4
5
6







7
8
9

10





11
12
# generated code, do not edit

def getUI (sLang):
    if sLang in _dOptLabel:
        return _dOptLabel[sLang]
    return _dOptLabel["fr"]








lStructOpt = ${lStructOpt}


dOpt = ${dOptPython}






_dOptLabel = ${dOptLabel}






>
>
>
>
>
>
>



>
|
>
>
>
>
>


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
# generated code, do not edit

def getUI (sLang):
    if sLang in _dOptLabel:
        return _dOptLabel[sLang]
    return _dOptLabel["fr"]


def getOptions (sContext="Python"):
    if sContext in dOpt:
        return dOpt[sContext]
    return dOpt["Python"]


lStructOpt = ${lStructOpt}


dOpt = {
    "Python": ${dOptPython},
    "Server": ${dOptServer},
    "Writer": ${dOptWriter}
}


_dOptLabel = ${dOptLabel}

Modified gc_core/py/oxt/Grammalecte.py from [f962117745] to [0f730fb3f5].

29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
        self.locales = []
        for i in gce.locales:
            l = gce.locales[i]
            self.locales.append(Locale(l[0], l[1], l[2]))
        self.locales = tuple(self.locales)
        xCurCtx = uno.getComponentContext()
        # init
        gce.load()
        # GC options
        # opt_handler.load(xCurCtx)
        dOpt = Options.load(xCurCtx)
        gce.setOptions(dOpt)
        # store for results of big paragraphs
        self.dResult = {}
        self.nMaxRes = 1500







|







29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
        self.locales = []
        for i in gce.locales:
            l = gce.locales[i]
            self.locales.append(Locale(l[0], l[1], l[2]))
        self.locales = tuple(self.locales)
        xCurCtx = uno.getComponentContext()
        # init
        gce.load("Writer")
        # GC options
        # opt_handler.load(xCurCtx)
        dOpt = Options.load(xCurCtx)
        gce.setOptions(dOpt)
        # store for results of big paragraphs
        self.dResult = {}
        self.nMaxRes = 1500

Modified gc_core/py/oxt/Options.py from [f3a8765730] to [e0f5ecd431].

137
138
139
140
141
142
143

144
145
146
147
148
149

150
151
152
153
154
155
156
157
158
159
160
                self.xContainer.endExecute()
            else:
                print("Wrong command: " + xActionEvent.ActionCommand)
        except:
            traceback.print_exc()

    def _setDefault (self):

        for w in self.lxOptions:
            w.State = gce.gc_options.dOpt.get(w.Name, False)

    def load (self, sLang):
        try:
            xChild = self.xNode.getByName(sLang)

            for sKey in gce.gc_options.dOpt:
                sValue = xChild.getPropertyValue(sKey)
                if sValue == '':
                    if gce.gc_options.dOpt[sKey]:
                        sValue = 1
                    else:
                        sValue = 0
                options[sKey] = bool(int(sValue))
        except:
            traceback.print_exc()








>

|




>
|


|







137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
                self.xContainer.endExecute()
            else:
                print("Wrong command: " + xActionEvent.ActionCommand)
        except:
            traceback.print_exc()

    def _setDefault (self):
        dOpt = gce.gc_options.getOptions("Writer")
        for w in self.lxOptions:
            w.State = dOpt.get(w.Name, False)

    def load (self, sLang):
        try:
            xChild = self.xNode.getByName(sLang)
            dOpt = gce.gc_options.getOptions("Writer")
            for sKey in dOpt:
                sValue = xChild.getPropertyValue(sKey)
                if sValue == '':
                    if dOpt[sKey]:
                        sValue = 1
                    else:
                        sValue = 0
                options[sKey] = bool(int(sValue))
        except:
            traceback.print_exc()

Modified gc_lang/fr/rules.grx from [1834cd53b7] to [233237795c].

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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
OPTGROUP/verbs: infi conj ppas, imp inte vmode
OPTGROUP/style: bs pleo, redon1 redon2, neg
OPTGROUP/misc: date mc
OPTGROUP/debug: idrule

# pour l’instant, seuls les colonnes Python et JavaScript sont utiles

OPTSOFTWARE:        Python      JavaScript  Writer      Firefox     Thunderbird
OPT/typo:           True        True        True        True        True
OPT/apos:           True        True        True        True        True
OPT/esp:            True        False       True        False       False
OPT/tab:            False       False       True        False       False
OPT/nbsp:           True        False       True        False       False
OPT/tu:             True        True        True        True        True
OPT/maj:            True        True        True        True        True
OPT/num:            True        True        True        True        True
OPT/virg:           True        True        True        True        True
OPT/unit:           True        False       True        False       False
OPT/nf:             True        True        True        True        True
OPT/liga:           False       False       False       False       False
OPT/mapos:          False       False       False       False       False
OPT/chim:           False       False       False       False       False
OPT/ocr:            False       False       False       False       False
OPT/conf:           True        True        True        True        True
OPT/sgpl:           True        True        True        True        True
OPT/gn:             True        True        True        True        True
OPT/infi:           True        True        True        True        True
OPT/conj:           True        True        True        True        True
OPT/ppas:           True        True        True        True        True
OPT/imp:            True        True        True        True        True
OPT/inte:           True        True        True        True        True
OPT/vmode:          True        True        True        True        True
OPT/bs:             True        True        True        True        True
OPT/pleo:           True        True        True        True        True
OPT/redon1:         False       False       False       False       False
OPT/redon2:         False       False       False       False       False
OPT/neg:            False       False       False       False       False
OPT/date:           True        True        True        True        True
OPT/mc:             False       False       False       False       False
OPT/idrule:         False       False       False       False       False
OPT/html:           False       True        False       True        True
OPT/latex:          False       False       False       False       False

# Priority: from 0 to 9. Default priority is 4.
OPTPRIORITY/tu:     6
OPTPRIORITY/conf:   5
OPTPRIORITY/ocr:    3









|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|







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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
OPTGROUP/verbs: infi conj ppas, imp inte vmode
OPTGROUP/style: bs pleo, redon1 redon2, neg
OPTGROUP/misc: date mc
OPTGROUP/debug: idrule

# pour l’instant, seuls les colonnes Python et JavaScript sont utiles

OPTSOFTWARE:        Python      Server      Writer      JavaScript  Firefox     Thunderbird
OPT/typo:           True        True        True        True        True        True
OPT/apos:           True        True        True        True        True        True
OPT/esp:            True        True        True        False       False       False
OPT/tab:            False       True        False       False       False       False
OPT/nbsp:           True        True        True        False       False       False
OPT/tu:             True        True        True        True        True        True
OPT/maj:            True        True        True        True        True        True
OPT/num:            True        True        True        True        True        True
OPT/virg:           True        True        True        True        True        True
OPT/unit:           True        True        True        False       False       False
OPT/nf:             True        True        True        True        True        True
OPT/liga:           False       False       False       False       False       False
OPT/mapos:          False       False       False       False       False       False
OPT/chim:           False       False       False       False       False       False
OPT/ocr:            False       False       False       False       False       False
OPT/conf:           True        True        True        True        True        True
OPT/sgpl:           True        True        True        True        True        True
OPT/gn:             True        True        True        True        True        True
OPT/infi:           True        True        True        True        True        True
OPT/conj:           True        True        False       True        True        True
OPT/ppas:           True        True        True        True        True        True
OPT/imp:            True        True        True        True        True        True
OPT/inte:           True        True        True        True        True        True
OPT/vmode:          True        True        True        True        True        True
OPT/bs:             True        True        True        True        True        True
OPT/pleo:           True        True        True        True        True        True
OPT/redon1:         False       False       False       False       False       False
OPT/redon2:         False       False       False       False       False       False
OPT/neg:            False       False       False       False       False       False
OPT/date:           True        True        True        True        True        True
OPT/mc:             False       False       False       False       False       False
OPT/idrule:         False       False       False       False       False       False
OPT/html:           False       False       False       True        True        True
OPT/latex:          False       False       False       False       False       False

# Priority: from 0 to 9. Default priority is 4.
OPTPRIORITY/tu:     6
OPTPRIORITY/conf:   5
OPTPRIORITY/ocr:    3


Modified gc_lang/fr/tb/content/overlay.js from [3429b110d8] to [31d038a91d].

45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
    xGCEWorker: null,
    bDictActive: null,
    loadGC: function () {
        if (this.xGCEWorker === null) {
            // Grammar checker
            echo('Loading Grammalecte');
            this.xGCEWorker = new BasePromiseWorker('chrome://promiseworker/content/gce_worker.js');
            let xPromise = this.xGCEWorker.post('loadGrammarChecker', [prefs.getCharPref("sGCOptions")]);
            xPromise.then(
                function (aVal) {
                    echo(aVal);
                    prefs.setCharPref("sGCOptions", aVal);
                },
                function (aReason) { echo('Promise rejected - ', aReason); }
            ).catch(







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
    xGCEWorker: null,
    bDictActive: null,
    loadGC: function () {
        if (this.xGCEWorker === null) {
            // Grammar checker
            echo('Loading Grammalecte');
            this.xGCEWorker = new BasePromiseWorker('chrome://promiseworker/content/gce_worker.js');
            let xPromise = this.xGCEWorker.post('loadGrammarChecker', [prefs.getCharPref("sGCOptions"), "Thunderbird"]);
            xPromise.then(
                function (aVal) {
                    echo(aVal);
                    prefs.setCharPref("sGCOptions", aVal);
                },
                function (aReason) { echo('Promise rejected - ', aReason); }
            ).catch(

Modified gc_lang/fr/xpi/gce_worker.js from [779e66492e] to [378b08526d].

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
let lxg = null; // module: lexicographer
let helpers = null;

let oTokenizer = null;
let oDict = null;
let oLxg = null;

function loadGrammarChecker (sGCOptions="") {
    if (gce === null) {

        gce = require("resource://grammalecte/fr/gc_engine.js");
        helpers = require("resource://grammalecte/helpers.js");
        text = require("resource://grammalecte/text.js");
        tkz = require("resource://grammalecte/tokenizer.js");
        lxg = require("resource://grammalecte/fr/lexicographe.js");
        oTokenizer = new tkz.Tokenizer("fr");
        helpers.setLogOutput(worker.log);
        gce.load();
        oDict = gce.getDictionary();
        oLxg = new lxg.Lexicographe(oDict);
        if (sGCOptions !== "") {
            gce.setOptions(helpers.objectToMap(JSON.parse(sGCOptions)));
        }
        // we always retrieve options from the gce, for setOptions filters obsolete options
        return gce.getOptions()._toString();




    }
}

function parse (sText, sLang, bDebug, bContext) {
    let aGrammErr = gce.parse(sText, sLang, bDebug, bContext);
    return JSON.stringify(aGrammErr);
}







|

>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
>
>
>
>







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
let lxg = null; // module: lexicographer
let helpers = null;

let oTokenizer = null;
let oDict = null;
let oLxg = null;

function loadGrammarChecker (sGCOptions="", sContext="JavaScript") {
    if (gce === null) {
        try {
            gce = require("resource://grammalecte/fr/gc_engine.js");
            helpers = require("resource://grammalecte/helpers.js");
            text = require("resource://grammalecte/text.js");
            tkz = require("resource://grammalecte/tokenizer.js");
            lxg = require("resource://grammalecte/fr/lexicographe.js");
            oTokenizer = new tkz.Tokenizer("fr");
            helpers.setLogOutput(worker.log);
            gce.load(sContext);
            oDict = gce.getDictionary();
            oLxg = new lxg.Lexicographe(oDict);
            if (sGCOptions !== "") {
                gce.setOptions(helpers.objectToMap(JSON.parse(sGCOptions)));
            }
            // we always retrieve options from the gce, for setOptions filters obsolete options
            return gce.getOptions()._toString();
        }
        catch (e) {
            worker.log("# Error: " + e.fileName + "\n" + e.name + "\nline: " + e.lineNumber + "\n" + e.message);
        }
    }
}

function parse (sText, sLang, bDebug, bContext) {
    let aGrammErr = gce.parse(sText, sLang, bDebug, bContext);
    return JSON.stringify(aGrammErr);
}

Modified gc_lang/fr/xpi/ui.js from [e0ebb525c4] to [d81c939773].

77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
let oTF = null;


function loadGrammarChecker (bSetPanelOptions=false) {
    if (xGCEWorker === null) {
        // Grammar checker
        xGCEWorker = new BasePromiseWorker('chrome://promiseworker/content/gce_worker.js');
        let xPromise = xGCEWorker.post('loadGrammarChecker', [sp.prefs["sGCOptions"]]);
        xPromise.then(
            function (aVal) {
                sp.prefs["sGCOptions"] = aVal;
                if (bSetPanelOptions) {
                    xAboutPanel.port.emit("sendGrammarOptionsToPanel", aVal);
                }
            },







|







77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
let oTF = null;


function loadGrammarChecker (bSetPanelOptions=false) {
    if (xGCEWorker === null) {
        // Grammar checker
        xGCEWorker = new BasePromiseWorker('chrome://promiseworker/content/gce_worker.js');
        let xPromise = xGCEWorker.post('loadGrammarChecker', [sp.prefs["sGCOptions"], "Firefox"]);
        xPromise.then(
            function (aVal) {
                sp.prefs["sGCOptions"] = aVal;
                if (bSetPanelOptions) {
                    xAboutPanel.port.emit("sendGrammarOptionsToPanel", aVal);
                }
            },

Modified make.py from [73e3038349] to [78de6b4826].

142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
    with open("server_options."+sLang+".ini", "w", encoding="utf-8", newline="\n") as hDst:
        hDst.write("# Server options. Lang: " + sLang + "\n\n[gc_options]\n")
        for sSection, lOpt in dOptData["lStructOpt"]:
            hDst.write("\n########## " + dOptData["dOptLabel"][sLang].get(sSection, sSection + "[no label found]")[0] + " ##########\n")
            for lLineOpt in lOpt:
                for sOpt in lLineOpt:
                    hDst.write("# " + dOptData["dOptLabel"][sLang].get(sOpt, "[no label found]")[0] + "\n")
                    hDst.write(sOpt + " = " + ("1" if dOptData["dOptPython"].get(sOpt, None) else "0") + "\n")
        hDst.write("html = 1\n")


def createServerZip (sLang, dVars, spLangPack):
    "create server zip"
    spfZip = "_build/" + dVars['name'] + "-"+ dVars['lang'] +"-v" + dVars['version'] + '.zip'
    hZip = zipfile.ZipFile(spfZip, mode='w', compression=zipfile.ZIP_DEFLATED)







|







142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
    with open("server_options."+sLang+".ini", "w", encoding="utf-8", newline="\n") as hDst:
        hDst.write("# Server options. Lang: " + sLang + "\n\n[gc_options]\n")
        for sSection, lOpt in dOptData["lStructOpt"]:
            hDst.write("\n########## " + dOptData["dOptLabel"][sLang].get(sSection, sSection + "[no label found]")[0] + " ##########\n")
            for lLineOpt in lOpt:
                for sOpt in lLineOpt:
                    hDst.write("# " + dOptData["dOptLabel"][sLang].get(sOpt, "[no label found]")[0] + "\n")
                    hDst.write(sOpt + " = " + ("1" if dOptData["dOptServer"].get(sOpt, None) else "0") + "\n")
        hDst.write("html = 1\n")


def createServerZip (sLang, dVars, spLangPack):
    "create server zip"
    spfZip = "_build/" + dVars['name'] + "-"+ dVars['lang'] +"-v" + dVars['version'] + '.zip'
    hZip = zipfile.ZipFile(spfZip, mode='w', compression=zipfile.ZIP_DEFLATED)
236
237
238
239
240
241
242


243
244
245
246
247
248
249
                sCodePlugins += "\n\n" + open(spLang+'/modules-js/'+sf, "r", encoding="utf-8").read()
                print(sf, end=", ")
        print()
        dVars["pluginsJS"] = sCodePlugins

        # options data struct
        dVars["dOptJavaScript"] = json.dumps(list(dVars["dOptJavaScript"].items()))


        
        # create folder
        spLangPack = "grammalecte-js/"+sLang
        helpers.createCleanFolder(spLangPack)

        # create files
        for sf in os.listdir("gc_core/js"):







>
>







236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
                sCodePlugins += "\n\n" + open(spLang+'/modules-js/'+sf, "r", encoding="utf-8").read()
                print(sf, end=", ")
        print()
        dVars["pluginsJS"] = sCodePlugins

        # options data struct
        dVars["dOptJavaScript"] = json.dumps(list(dVars["dOptJavaScript"].items()))
        dVars["dOptFirefox"] = json.dumps(list(dVars["dOptFirefox"].items()))
        dVars["dOptThunderbird"] = json.dumps(list(dVars["dOptThunderbird"].items()))
        
        # create folder
        spLangPack = "grammalecte-js/"+sLang
        helpers.createCleanFolder(spLangPack)

        # create files
        for sf in os.listdir("gc_core/js"):

Modified server.py from [f2aebf4d47] to [f6702400a5].

139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
    if bEmptyIfNoErrors and not aGrammErrs and not aSpellErrs:
        return ""
    return "  " + json.dumps({ "iParagraph": iParagraph, "lGrammarErrors": aGrammErrs, "lSpellingErrors": aSpellErrs }, ensure_ascii=False)
    

if __name__ == '__main__':

    gce.load()
    echo("Grammalecte v{}".format(gce.version))
    dServerOptions = getServerOptions()
    dGCOptions = getConfigOptions("fr")
    if dGCOptions:
        gce.setOptions(dGCOptions)
    dServerGCOptions = gce.getOptions()
    echo("Grammar options:\n" + " | ".join([ k + ": " + str(v)  for k, v in sorted(dServerGCOptions.items()) ]))







|







139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
    if bEmptyIfNoErrors and not aGrammErrs and not aSpellErrs:
        return ""
    return "  " + json.dumps({ "iParagraph": iParagraph, "lGrammarErrors": aGrammErrs, "lSpellingErrors": aSpellErrs }, ensure_ascii=False)
    

if __name__ == '__main__':

    gce.load("Server")
    echo("Grammalecte v{}".format(gce.version))
    dServerOptions = getServerOptions()
    dGCOptions = getConfigOptions("fr")
    if dGCOptions:
        gce.setOptions(dGCOptions)
    dServerGCOptions = gce.getOptions()
    echo("Grammar options:\n" + " | ".join([ k + ": " + str(v)  for k, v in sorted(dServerGCOptions.items()) ]))

Modified server_options.fr.ini from [9838e78202] to [d739170097].

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# Server options. Lang: fr

[gc_options]

########## Typographie ##########
# Signes typographiques
typo = 1
# Apostrophe typographique
apos = 1
# Espaces surnuméraires
esp = 1
# Tabulations surnuméraires
tab = 0
# Espaces insécables
nbsp = 1
# Espaces insécables avant unités de mesure
unit = 1
# Traits d’union
tu = 1
# Majuscules












|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# Server options. Lang: fr

[gc_options]

########## Typographie ##########
# Signes typographiques
typo = 1
# Apostrophe typographique
apos = 1
# Espaces surnuméraires
esp = 1
# Tabulations surnuméraires
tab = 1
# Espaces insécables
nbsp = 1
# Espaces insécables avant unités de mesure
unit = 1
# Traits d’union
tu = 1
# Majuscules