Overview
Comment: | [lo] lexicon editor: update, +tags information, +search |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | lo | multid |
Files: | files | file ages | folders |
SHA3-256: |
5109354c10cc1d13dbd39b712e2d3048 |
User & Date: | olr on 2018-03-26 19:03:06 |
Other Links: | branch diff | manifest | tags |
Context
2018-03-27
| ||
08:53 | [graphspell][py] spellchecker: getSimilarEntries with parameter nSuggLimit check-in: d08f3c473e user: olr tags: graphspell, multid | |
2018-03-26
| ||
19:03 | [lo] lexicon editor: update, +tags information, +search check-in: 5109354c10 user: olr tags: lo, multid | |
2018-03-24
| ||
12:25 | [fr] lexicographe: étiquettes plus descriptives check-in: 8e66560ec8 user: olr tags: fr, multid | |
Changes
Modified gc_lang/fr/config.ini from [757f6b2d2c] to [cac02a5706].
︙ | ︙ | |||
88 89 90 91 92 93 94 95 96 97 98 99 100 101 | oxt/Dictionnaires/DictionarySwitcher.py = pythonpath/DictionarySwitcher.py oxt/Dictionnaires/ds_strings.py = pythonpath/ds_strings.py # Dictionary Options oxt/DictOptions/DictOptions.py = pythonpath/DictOptions.py oxt/DictOptions/do_strings.py = pythonpath/do_strings.py oxt/DictOptions/LexiconEditor.py = pythonpath/LexiconEditor.py oxt/DictOptions/lxe_strings.py = pythonpath/lxe_strings.py # ContextMenu oxt/ContextMenu/ContextMenu.py = ContextMenu.py oxt/ContextMenu/jobs.xcu = config/jobs.xcu # TextFormatter oxt/TextFormatter/TextFormatter.py = pythonpath/TextFormatter.py oxt/TextFormatter/tf_strings.py = pythonpath/tf_strings.py oxt/TextFormatter/tf_options.py = pythonpath/tf_options.py | > > > > | 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | oxt/Dictionnaires/DictionarySwitcher.py = pythonpath/DictionarySwitcher.py oxt/Dictionnaires/ds_strings.py = pythonpath/ds_strings.py # Dictionary Options oxt/DictOptions/DictOptions.py = pythonpath/DictOptions.py oxt/DictOptions/do_strings.py = pythonpath/do_strings.py oxt/DictOptions/LexiconEditor.py = pythonpath/LexiconEditor.py oxt/DictOptions/lxe_strings.py = pythonpath/lxe_strings.py oxt/DictOptions/SearchWords.py = pythonpath/SearchWords.py oxt/DictOptions/sw_strings.py = pythonpath/sw_strings.py oxt/DictOptions/TagsInfo.py = pythonpath/TagsInfo.py oxt/DictOptions/ti_strings.py = pythonpath/ti_strings.py # ContextMenu oxt/ContextMenu/ContextMenu.py = ContextMenu.py oxt/ContextMenu/jobs.xcu = config/jobs.xcu # TextFormatter oxt/TextFormatter/TextFormatter.py = pythonpath/TextFormatter.py oxt/TextFormatter/tf_strings.py = pythonpath/tf_strings.py oxt/TextFormatter/tf_options.py = pythonpath/tf_options.py |
︙ | ︙ |
Modified gc_lang/fr/oxt/DictOptions/LexiconEditor.py from [9c50f96337] to [07ba5d540c].
1 2 | # Lexicon Editor # by Olivier R. | | > > > | 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 | # Lexicon Editor # by Olivier R. # License: MPL 2 import unohelper import uno import json import re import traceback import helpers import lxe_strings import grammalecte.graphspell as sc import grammalecte.graphspell.dawg as dawg import grammalecte.graphspell.ibdawg as ibdawg import grammalecte.fr.conj as conj import grammalecte.fr.conj_generator as conjgen import SearchWords import TagsInfo from com.sun.star.task import XJobExecutor from com.sun.star.awt import XActionListener from com.sun.star.awt import XKeyListener def _waitPointer (funcDecorated): |
︙ | ︙ | |||
89 90 91 92 93 94 95 96 97 98 99 100 101 102 | for k, w in kwargs.items(): setattr(xGridModel, k, w) self.xDialog.insertByName(name, xGridModel) return xGridModel def run (self, sLang): # ui lang self.dUI = lxe_strings.getUI(sLang) # dialog self.xDialog = self.xSvMgr.createInstanceWithContext('com.sun.star.awt.UnoControlDialogModel', self.ctx) self.xDialog.Width = 570 self.xDialog.Height = 305 self.xDialog.Title = self.dUI.get('title', "#title#") | > | 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 | for k, w in kwargs.items(): setattr(xGridModel, k, w) self.xDialog.insertByName(name, xGridModel) return xGridModel def run (self, sLang): # ui lang self.sLang = sLang self.dUI = lxe_strings.getUI(sLang) # dialog self.xDialog = self.xSvMgr.createInstanceWithContext('com.sun.star.awt.UnoControlDialogModel', self.ctx) self.xDialog.Width = 570 self.xDialog.Height = 305 self.xDialog.Title = self.dUI.get('title', "#title#") |
︙ | ︙ | |||
134 135 136 137 138 139 140 | #### Dictionary section self._addWidget("dictionary_section", 'FixedLine', nX1, nY0, 180, nHeight, Label = self.dUI.get("dictionary_section", "#err"), FontDescriptor = xFDTitle, TextColor = 0x000088) self._addWidget("save_date_label", 'FixedText', nXB, nY0+2, 80, nHeight, Label = self.dUI.get("save_date_label", "#err"), FontDescriptor = xFDSubTitle, TextColor = 0x000088) self._addWidget("num_of_entries_label2", 'FixedText', nXC, nY0+2, 65, nHeight, Label = self.dUI.get("num_of_entries_label", "#err"), FontDescriptor = xFDSubTitle, TextColor = 0x000088) self.xDateDic = self._addWidget("save_date", 'FixedText', nXB+85, nY0+2, 75, nHeight, Label = self.dUI.get("void", "#err"), FontDescriptor = xFDSubTitle, TextColor = 0x000088) self.xNumDic = self._addWidget("num_of_entries2", 'FixedText', nXC+70, nY0+2, 45, nHeight, Label = "0", FontDescriptor = xFDSubTitle, TextColor = 0x000088) | | | > > | 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 | #### Dictionary section self._addWidget("dictionary_section", 'FixedLine', nX1, nY0, 180, nHeight, Label = self.dUI.get("dictionary_section", "#err"), FontDescriptor = xFDTitle, TextColor = 0x000088) self._addWidget("save_date_label", 'FixedText', nXB, nY0+2, 80, nHeight, Label = self.dUI.get("save_date_label", "#err"), FontDescriptor = xFDSubTitle, TextColor = 0x000088) self._addWidget("num_of_entries_label2", 'FixedText', nXC, nY0+2, 65, nHeight, Label = self.dUI.get("num_of_entries_label", "#err"), FontDescriptor = xFDSubTitle, TextColor = 0x000088) self.xDateDic = self._addWidget("save_date", 'FixedText', nXB+85, nY0+2, 75, nHeight, Label = self.dUI.get("void", "#err"), FontDescriptor = xFDSubTitle, TextColor = 0x000088) self.xNumDic = self._addWidget("num_of_entries2", 'FixedText', nXC+70, nY0+2, 45, nHeight, Label = "0", FontDescriptor = xFDSubTitle, TextColor = 0x000088) self.xExport = self._addWidget('export_button', 'Button', nXC+150, nY0, 50, 12, Label = self.dUI.get('export_button', "#err"), FontDescriptor = xFDSubTitle, TextColor = 0x000055) #### Add word self._addWidget("add_section", 'FixedLine', nX1, nY1, 180, nHeight, Label = self.dUI.get("add_section", "#err"), FontDescriptor = xFDTitle) self.xLemma = self._addWidget('lemma', 'Edit', nX1, nY1+10, 110, 14, FontDescriptor = xFDTitle) self._addWidget('search_button', 'Button', nX1+115, nY1+11, 45, 12, Label = self.dUI.get('search_button', "#err"), FontDescriptor = xFDSubTitle, TextColor = 0x555500) self._addWidget('information_button', 'Button', nX1+165, nY1+11, 15, 12, Label = self.dUI.get('information_button', "#err"), FontDescriptor = xFDSubTitle, TextColor = 0x555500) # Radio buttons: main POS tag # Note: the only way to group RadioButtons is to create them successively self.xNA = self._addWidget('nom_adj', 'RadioButton', nX1, nY2+12, 60, nHeight, Label = self.dUI.get("nom_adj", "#err"), HelpText = ":N:A") self.xN = self._addWidget('nom', 'RadioButton', nX1, nY2+22, 60, nHeight, Label = self.dUI.get("nom", "#err"), HelpText = ":N") self.xA = self._addWidget('adj', 'RadioButton', nX1, nY2+32, 60, nHeight, Label = self.dUI.get("adj", "#err"), HelpText = ":A") self.xM1 = self._addWidget('M1', 'RadioButton', nX1, nY3+12, 60, nHeight, Label = self.dUI.get("M1", "#err"), HelpText = ":M1") |
︙ | ︙ | |||
163 164 165 166 167 168 169 | self.xSfem = self._addWidget('Sfem', 'RadioButton', nX1+65, nY2+32, 50, nHeight, Label = self.dUI.get("fem", "#err"), HelpText = ":f") self._addWidget("fl_sep1", 'FixedLine', nX1, nY2, 1, nHeight) self.xSs = self._addWidget('Ss', 'RadioButton', nX1+120, nY2+12, 50, nHeight, Label = self.dUI.get("-s", "#err"), HelpText = "·s") self.xSx = self._addWidget('Sx', 'RadioButton', nX1+120, nY2+22, 50, nHeight, Label = self.dUI.get("-x", "#err"), HelpText = "·x") self.xSinv = self._addWidget('Sinv', 'RadioButton', nX1+120, nY2+32, 50, nHeight, Label = self.dUI.get("inv", "#err"), HelpText = ":i") self._addWidget("alt_lemma_label", 'FixedLine', nX1+10, nY2+42, 170, nHeight, Label = self.dUI.get("alt_lemma", "#err")) | | | 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 | self.xSfem = self._addWidget('Sfem', 'RadioButton', nX1+65, nY2+32, 50, nHeight, Label = self.dUI.get("fem", "#err"), HelpText = ":f") self._addWidget("fl_sep1", 'FixedLine', nX1, nY2, 1, nHeight) self.xSs = self._addWidget('Ss', 'RadioButton', nX1+120, nY2+12, 50, nHeight, Label = self.dUI.get("-s", "#err"), HelpText = "·s") self.xSx = self._addWidget('Sx', 'RadioButton', nX1+120, nY2+22, 50, nHeight, Label = self.dUI.get("-x", "#err"), HelpText = "·x") self.xSinv = self._addWidget('Sinv', 'RadioButton', nX1+120, nY2+32, 50, nHeight, Label = self.dUI.get("inv", "#err"), HelpText = ":i") self._addWidget("alt_lemma_label", 'FixedLine', nX1+10, nY2+42, 170, nHeight, Label = self.dUI.get("alt_lemma", "#err")) self.xAltLemma = self._addWidget('alt_lemma', 'Edit', nX1+10, nY2+52, 110, nHeight) self.xNA2 = self._addWidget('nom_adj2', 'RadioButton', nX1+10, nY2+65, 60, nHeight, Label = self.dUI.get("nom_adj", "#err"), HelpText = ":N:A") self.xN2 = self._addWidget('nom2', 'RadioButton', nX1+10, nY2+75, 60, nHeight, Label = self.dUI.get("nom", "#err"), HelpText = ":N") self.xA2 = self._addWidget('adj2', 'RadioButton', nX1+10, nY2+85, 60, nHeight, Label = self.dUI.get("adj", "#err"), HelpText = ":A") self._addWidget("fl_sep2", 'FixedLine', nX1, nY2, 1, nHeight) self.xSepi2 = self._addWidget('Sepi2', 'RadioButton', nX1+75, nY2+65, 50, nHeight, Label = self.dUI.get("epi", "#err"), HelpText = ":e") self.xSmas2 = self._addWidget('Smas2', 'RadioButton', nX1+75, nY2+75, 50, nHeight, Label = self.dUI.get("mas", "#err"), HelpText = ":m") self.xSfem2 = self._addWidget('Sfem2', 'RadioButton', nX1+75, nY2+85, 50, nHeight, Label = self.dUI.get("fem", "#err"), HelpText = ":f") |
︙ | ︙ | |||
243 244 245 246 247 248 249 250 251 252 253 254 255 256 | self.xGridControlLex = self.xContainer.getControl('list_grid_lexicon') #helpers.xray(self.xContainer.getControl('lemma')) self._createKeyListeners(['lemma', 'alt_lemma', "v_pattern", 'flexion', 'tags'], "Update") self._createActionListeners(['nom_adj', 'nom', 'adj', 'M1', 'M2', 'MP', 'verb', 'adv', 'other', \ 'Sepi', 'Smas', 'Sfem', 'Ss', 'Sx', 'Sinv', 'nom_adj2', 'nom2', 'adj2', \ 'Sepi2', 'Smas2', 'Sfem2', 'Ss2', 'Sx2', 'Sinv2', 'Mepi', 'Mmas', 'Mfem', \ 'v_i', 'v_t', 'v_n', 'v_p', 'v_m', 'v_ae', 'v_aa', 'v_pp'], "Update") self.xContainer.getControl('add_button').addActionListener(self) self.xContainer.getControl('add_button').setActionCommand('Add') self.xContainer.getControl('delete_button').addActionListener(self) self.xContainer.getControl('delete_button').setActionCommand('Delete') self.xContainer.getControl('save_button').addActionListener(self) self.xContainer.getControl('save_button').setActionCommand('Save') self.xContainer.getControl('close_button').addActionListener(self) | > > > > | 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 | self.xGridControlLex = self.xContainer.getControl('list_grid_lexicon') #helpers.xray(self.xContainer.getControl('lemma')) self._createKeyListeners(['lemma', 'alt_lemma', "v_pattern", 'flexion', 'tags'], "Update") self._createActionListeners(['nom_adj', 'nom', 'adj', 'M1', 'M2', 'MP', 'verb', 'adv', 'other', \ 'Sepi', 'Smas', 'Sfem', 'Ss', 'Sx', 'Sinv', 'nom_adj2', 'nom2', 'adj2', \ 'Sepi2', 'Smas2', 'Sfem2', 'Ss2', 'Sx2', 'Sinv2', 'Mepi', 'Mmas', 'Mfem', \ 'v_i', 'v_t', 'v_n', 'v_p', 'v_m', 'v_ae', 'v_aa', 'v_pp'], "Update") self.xContainer.getControl('search_button').addActionListener(self) self.xContainer.getControl('search_button').setActionCommand('SearchWords') self.xContainer.getControl('information_button').addActionListener(self) self.xContainer.getControl('information_button').setActionCommand('TagsInfo') self.xContainer.getControl('add_button').addActionListener(self) self.xContainer.getControl('add_button').setActionCommand('Add') self.xContainer.getControl('delete_button').addActionListener(self) self.xContainer.getControl('delete_button').setActionCommand('Delete') self.xContainer.getControl('save_button').addActionListener(self) self.xContainer.getControl('save_button').setActionCommand('Save') self.xContainer.getControl('close_button').addActionListener(self) |
︙ | ︙ | |||
270 271 272 273 274 275 276 277 278 279 280 281 282 283 | self.xContainer.getControl(sName).setActionCommand(sAction) # XActionListener def actionPerformed (self, xActionEvent): try: if xActionEvent.ActionCommand == "Update": self.updateGenWords() elif xActionEvent.ActionCommand == "Add": self.addToLexicon() elif xActionEvent.ActionCommand == "Delete": self.deleteSelectedEntries() elif xActionEvent.ActionCommand == "Save": self.saveLexicon() elif xActionEvent.ActionCommand == "Import": | > > > > | 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 | self.xContainer.getControl(sName).setActionCommand(sAction) # XActionListener def actionPerformed (self, xActionEvent): try: if xActionEvent.ActionCommand == "Update": self.updateGenWords() elif xActionEvent.ActionCommand == "SearchWords": self.launchSearchWords() elif xActionEvent.ActionCommand == "TagsInfo": self.launchTagsInfo() elif xActionEvent.ActionCommand == "Add": self.addToLexicon() elif xActionEvent.ActionCommand == "Delete": self.deleteSelectedEntries() elif xActionEvent.ActionCommand == "Save": self.saveLexicon() elif xActionEvent.ActionCommand == "Import": |
︙ | ︙ | |||
301 302 303 304 305 306 307 308 309 310 311 312 313 314 | try: xDialog = LexiconEditor(self.ctx) xDialog.run() except: traceback.print_exc() # Code #@_waitPointer (don’t: strange behavior) def loadLexicon (self): xChild = self.xSettingNode.getByName("o_fr") sJSON = xChild.getPropertyValue("personal_dic") if sJSON != "": oIBDAWG = ibdawg.IBDAWG(json.loads(sJSON)) xGridDataModel = self.xGridModelLex.GridDataModel | > > > > > > > > | < | | 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 340 341 342 343 344 345 | try: xDialog = LexiconEditor(self.ctx) xDialog.run() except: traceback.print_exc() # Code def launchSearchWords (self): xDialog = SearchWords.SearchWords(self.ctx) xDialog.run(self.sLang) def launchTagsInfo (self): xDialog = TagsInfo.TagsInfo(self.ctx) xDialog.run(self.sLang) #@_waitPointer (don’t: strange behavior) def loadLexicon (self): xChild = self.xSettingNode.getByName("o_fr") sJSON = xChild.getPropertyValue("personal_dic") if sJSON != "": oIBDAWG = ibdawg.IBDAWG(json.loads(sJSON)) xGridDataModel = self.xGridModelLex.GridDataModel for i, aEntry in enumerate(oIBDAWG.select()): xGridDataModel.addRow(i, aEntry) self.xNumLex.Label = str(i) self.xNumDic.Label = str(i) self.xDateDic.Label = oIBDAWG.sDate @_waitPointer def saveLexicon (self): xGridDataModel = self.xGridModelLex.GridDataModel |
︙ | ︙ |
Added gc_lang/fr/oxt/DictOptions/SearchWords.py version [996d15698b].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 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 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | # Search and informations about tags # by Olivier R. # License: MPL 2 import unohelper import uno import traceback import helpers import sw_strings import grammalecte.graphspell as sc import grammalecte.graphspell.ibdawg as ibdawg from com.sun.star.task import XJobExecutor from com.sun.star.awt import XActionListener def _waitPointer (funcDecorated): def wrapper (*args, **kwargs): # self is the first parameter if the decorator is applied on a object self = args[0] # before xPointer = self.xSvMgr.createInstanceWithContext("com.sun.star.awt.Pointer", self.ctx) xPointer.setType(uno.getConstantByName("com.sun.star.awt.SystemPointer.WAIT")) xWindowPeer = self.xContainer.getPeer() xWindowPeer.setPointer(xPointer) for x in xWindowPeer.Windows: x.setPointer(xPointer) # processing result = funcDecorated(*args, **kwargs) # after xPointer.setType(uno.getConstantByName("com.sun.star.awt.SystemPointer.ARROW")) xWindowPeer.setPointer(xPointer) for x in xWindowPeer.Windows: x.setPointer(xPointer) self.xContainer.setVisible(True) # seems necessary to refresh the dialog box and text widgets (why?) # return return result return wrapper class SearchWords (unohelper.Base, XActionListener): def __init__ (self, ctx): self.ctx = ctx self.xSvMgr = self.ctx.ServiceManager self.xDesktop = self.xSvMgr.createInstanceWithContext("com.sun.star.frame.Desktop", self.ctx) self.xDocument = self.xDesktop.getCurrentComponent() self.xContainer = None self.xDialog = None self.oSpellChecker = None # options node self.xSettingNode = helpers.getConfigSetting("/org.openoffice.Lightproof_grammalecte/Other/", True) def _addWidget (self, name, wtype, x, y, w, h, **kwargs): xWidget = self.xDialog.createInstance('com.sun.star.awt.UnoControl%sModel' % wtype) xWidget.Name = name xWidget.PositionX = x xWidget.PositionY = y xWidget.Width = w xWidget.Height = h for k, w in kwargs.items(): setattr(xWidget, k, w) self.xDialog.insertByName(name, xWidget) return xWidget def _addGrid (self, name, x, y, w, h, columns, **kwargs): xGridModel = self.xDialog.createInstance('com.sun.star.awt.grid.UnoControlGridModel') xGridModel.Name = name xGridModel.PositionX = x xGridModel.PositionY = y xGridModel.Width = w xGridModel.Height = h xColumnModel = xGridModel.ColumnModel for e in columns: xCol = xColumnModel.createColumn() for k, w in e.items(): setattr(xCol, k, w) xColumnModel.addColumn(xCol) for k, w in kwargs.items(): setattr(xGridModel, k, w) self.xDialog.insertByName(name, xGridModel) return xGridModel def run (self, sLang): # ui lang self.dUI = sw_strings.getUI(sLang) # dialog self.xDialog = self.xSvMgr.createInstanceWithContext('com.sun.star.awt.UnoControlDialogModel', self.ctx) self.xDialog.Width = 350 self.xDialog.Height = 305 self.xDialog.Title = self.dUI.get('title', "#title#") #xWindowSize = helpers.getWindowSize() #self.xDialog.PositionX = int((xWindowSize.Width / 2) - (self.xDialog.Width / 2)) #self.xDialog.PositionY = int((xWindowSize.Height / 2) - (self.xDialog.Height / 2)) # fonts xFDTitle = uno.createUnoStruct("com.sun.star.awt.FontDescriptor") xFDTitle.Height = 9 xFDTitle.Weight = uno.getConstantByName("com.sun.star.awt.FontWeight.BOLD") xFDTitle.Name = "Verdana" xFDSubTitle = uno.createUnoStruct("com.sun.star.awt.FontDescriptor") xFDSubTitle.Height = 8 xFDSubTitle.Weight = uno.getConstantByName("com.sun.star.awt.FontWeight.BOLD") xFDSubTitle.Name = "Verdana" # widget nX1 = 10 nX2 = nX1 + 130 nY0 = 5 nY1 = nY0 + 20 nY2 = nY1 + 60 nY3 = nY2 + 95 nHeight = 10 #### Search self._addWidget("search_section", 'FixedLine', nX1, nY0, 120, nHeight, Label = self.dUI.get("search_section", "#err"), FontDescriptor = xFDTitle) self._addWidget("similar_search_section", 'FixedLine', nX1, nY1, 120, nHeight, Label = self.dUI.get("similar_search_section", "#err"), FontDescriptor = xFDTitle) self.xWord = self._addWidget('word', 'Edit', nX1, nY1+10, 100, nHeight) self._addWidget('similar_search_button', 'Button', nX1, nY1+22, 55, 12, Label = self.dUI.get('similar_search_button', "#err"), FontDescriptor = xFDSubTitle, TextColor = 0x005500) self._addWidget("regex_search_section", 'FixedLine', nX1, nY2, 120, nHeight, Label = self.dUI.get("regex_search_section", "#err"), FontDescriptor = xFDSubTitle) self._addWidget('flexion_label', 'FixedText', nX1, nY2+10, 30, nHeight, Label = self.dUI.get('flexion', "#err")) self.xFlexion = self._addWidget('flexion', 'Edit', nX1+35, nY2+10, 85, nHeight) self._addWidget('tags_label', 'FixedText', nX1, nY2+22, 30, nHeight, Label = self.dUI.get('tags', "#err")) self.xTags = self._addWidget('tags', 'Edit', nX1+35, nY2+22, 85, nHeight) self._addWidget('regex_search_button', 'Button', nX1, nY2+34, 55, 12, Label = self.dUI.get('regex_search_button', "#err"), FontDescriptor = xFDSubTitle, TextColor = 0x005500) #### Results self._addWidget("result_section", 'FixedLine', nX2, nY0, 200, nHeight, Label = self.dUI.get("result_section", "#err"), FontDescriptor = xFDTitle) self.xGridModel = self._addGrid("list_grid_search", nX2, nY0+10, 200, 265, [ {"Title": self.dUI.get("res_flexion", "#err"), "ColumnWidth": 70}, {"Title": self.dUI.get("res_lemma", "#err"), "ColumnWidth": 60}, {"Title": self.dUI.get("res_tags", "#err"), "ColumnWidth": 70} ]) self._addWidget('close_button', 'Button', self.xDialog.Width-50, self.xDialog.Height-20, 40, 12, Label = self.dUI.get('close_button', "#err"), FontDescriptor = xFDSubTitle, TextColor = 0x550000) # container self.xContainer = self.xSvMgr.createInstanceWithContext('com.sun.star.awt.UnoControlDialog', self.ctx) self.xContainer.setModel(self.xDialog) self.xGridControlSearch = self.xContainer.getControl('list_grid_search') self.xGridControlInfo = self.xContainer.getControl('list_grid_info') self.xContainer.getControl('similar_search_button').addActionListener(self) self.xContainer.getControl('similar_search_button').setActionCommand('SearchSimilar') self.xContainer.getControl('regex_search_button').addActionListener(self) self.xContainer.getControl('regex_search_button').setActionCommand('SearchRegex') self.xContainer.getControl('close_button').addActionListener(self) self.xContainer.getControl('close_button').setActionCommand('Close') self.xContainer.setVisible(False) xToolkit = self.xSvMgr.createInstanceWithContext('com.sun.star.awt.ExtToolkit', self.ctx) self.xContainer.createPeer(xToolkit, None) self.xContainer.execute() # XActionListener def actionPerformed (self, xActionEvent): try: if xActionEvent.ActionCommand == "SearchSimilar": self.searchSimilar() elif xActionEvent.ActionCommand == "SearchRegex": self.searchRegex() elif xActionEvent.ActionCommand == "Close": self.xContainer.endExecute() except: traceback.print_exc() def searchSimilar (self): pass def searchRegex (self): pass |
Added gc_lang/fr/oxt/DictOptions/TagsInfo.py version [c0dafbb224].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 | # Lexicon editor: Information # by Olivier R. # License: MPL 2 import unohelper import uno import traceback import helpers import ti_strings import grammalecte.fr.lexicographe as lxg from com.sun.star.task import XJobExecutor from com.sun.star.awt import XActionListener class TagsInfo (unohelper.Base, XActionListener): def __init__ (self, ctx): self.ctx = ctx self.xSvMgr = self.ctx.ServiceManager self.xDesktop = self.xSvMgr.createInstanceWithContext("com.sun.star.frame.Desktop", self.ctx) self.xDocument = self.xDesktop.getCurrentComponent() self.xContainer = None self.xDialog = None def _addWidget (self, name, wtype, x, y, w, h, **kwargs): xWidget = self.xDialog.createInstance('com.sun.star.awt.UnoControl%sModel' % wtype) xWidget.Name = name xWidget.PositionX = x xWidget.PositionY = y xWidget.Width = w xWidget.Height = h for k, w in kwargs.items(): setattr(xWidget, k, w) self.xDialog.insertByName(name, xWidget) return xWidget def _addGrid (self, name, x, y, w, h, columns, **kwargs): xGridModel = self.xDialog.createInstance('com.sun.star.awt.grid.UnoControlGridModel') xGridModel.Name = name xGridModel.PositionX = x xGridModel.PositionY = y xGridModel.Width = w xGridModel.Height = h xColumnModel = xGridModel.ColumnModel for e in columns: xCol = xColumnModel.createColumn() for k, w in e.items(): setattr(xCol, k, w) xColumnModel.addColumn(xCol) for k, w in kwargs.items(): setattr(xGridModel, k, w) self.xDialog.insertByName(name, xGridModel) return xGridModel def run (self, sLang): # ui lang self.dUI = ti_strings.getUI(sLang) # dialog self.xDialog = self.xSvMgr.createInstanceWithContext('com.sun.star.awt.UnoControlDialogModel', self.ctx) self.xDialog.Width = 360 self.xDialog.Height = 305 self.xDialog.Title = self.dUI.get('title', "#title#") #xWindowSize = helpers.getWindowSize() #self.xDialog.PositionX = int((xWindowSize.Width / 2) - (self.xDialog.Width / 2)) #self.xDialog.PositionY = int((xWindowSize.Height / 2) - (self.xDialog.Height / 2)) # fonts xFDTitle = uno.createUnoStruct("com.sun.star.awt.FontDescriptor") xFDTitle.Height = 9 xFDTitle.Weight = uno.getConstantByName("com.sun.star.awt.FontWeight.BOLD") xFDTitle.Name = "Verdana" xFDSubTitle = uno.createUnoStruct("com.sun.star.awt.FontDescriptor") xFDSubTitle.Height = 8 xFDSubTitle.Weight = uno.getConstantByName("com.sun.star.awt.FontWeight.BOLD") xFDSubTitle.Name = "Verdana" # widget nX1 = 10 nX2 = 20 nX3 = 120 nY0 = 5 nY1 = nY0 + 13 nY2 = nY1 + 60 nY3 = nY2 + 60 nY4 = nY3 + 80 nXB = nX1 + 110 nHeight = 10 #### Add word self._addWidget("add_section", 'FixedLine', nX1, nY0, 100, nHeight, Label = self.dUI.get("information_section", "#err"), FontDescriptor = xFDTitle) self._addWidget('save_label', 'FixedText', nX1, nY1, 100, nHeight, Label = self.dUI.get('save', "#err"), FontDescriptor = xFDTitle) self._addWidget('save_desc_label', 'FixedText', nX1, nY1+10, 100, nHeight*5, Label = self.dUI.get('save_desc', "#err"), MultiLine=True) self._addWidget('duplicates_label', 'FixedText', nX1, nY2, 100, nHeight, Label = self.dUI.get('duplicates', "#err"), FontDescriptor = xFDTitle) self._addWidget('duplicates_desc_label', 'FixedText', nX1, nY2+10, 100, nHeight*5, Label = self.dUI.get('duplicates_desc', "#err"), MultiLine=True) self._addWidget('compilation_label', 'FixedText', nX1, nY3, 100, nHeight, Label = self.dUI.get('compilation', "#err"), FontDescriptor = xFDTitle) self._addWidget('compilation_desc_label', 'FixedText', nX1, nY3+10, 100, nHeight*7, Label = self.dUI.get('compilation_desc', "#err"), MultiLine=True) self._addWidget('warning_label', 'FixedText', nX1, nY4, 100, nHeight, Label = self.dUI.get('warning', "#err"), FontDescriptor = xFDTitle) self._addWidget('warning_desc_label', 'FixedText', nX1, nY4+10, 100, nHeight*7, Label = self.dUI.get('warning_desc', "#err"), MultiLine=True) #### Tags self._addWidget("tags_section", 'FixedLine', nXB, nY0, 230, nHeight, Label = self.dUI.get("tags_section", "#err"), FontDescriptor = xFDTitle) self.xGridModel = self._addGrid("list_grid_tags", nXB, nY0+10, 230, 265, [ {"Title": self.dUI.get("tags", "#err"), "ColumnWidth": 40}, {"Title": self.dUI.get("meaning", "#err"), "ColumnWidth": 190} ]) self._addWidget('close_button', 'Button', self.xDialog.Width-50, self.xDialog.Height-20, 40, 12, Label = self.dUI.get('close_button', "#err"), FontDescriptor = xFDSubTitle, TextColor = 0x550000) self.loadData() # container self.xContainer = self.xSvMgr.createInstanceWithContext('com.sun.star.awt.UnoControlDialog', self.ctx) self.xContainer.setModel(self.xDialog) self.xGridControlInfo = self.xContainer.getControl('list_grid_tags') self.xContainer.getControl('close_button').addActionListener(self) self.xContainer.getControl('close_button').setActionCommand('Close') self.xContainer.setVisible(False) xToolkit = self.xSvMgr.createInstanceWithContext('com.sun.star.awt.ExtToolkit', self.ctx) self.xContainer.createPeer(xToolkit, None) self.xContainer.execute() # XActionListener def actionPerformed (self, xActionEvent): try: if xActionEvent.ActionCommand == "Close": self.xContainer.endExecute() except: traceback.print_exc() def loadData (self): xGridDataModel = self.xGridModel.GridDataModel for i, sKey in enumerate(lxg._dTAGS): xGridDataModel.addRow(i, [sKey, lxg._dTAGS[sKey][1]]) |
Modified gc_lang/fr/oxt/DictOptions/lxe_strings.py from [d7a0d062ca] to [95dfd605af].
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | def getUI (sLang): if sLang in dStrings: return dStrings[sLang] return dStrings["fr"] dStrings = { "fr": { "title": "Grammalecte · Éditeur lexical", # Ajout "add_section": "Nouveau mot (lemme)", "lemma": "Lemme", # catégories "common_name": "Nom commun", "nom_adj": "Nom et adjectif", "nom": "Nom", "adj": "Adjectif", "alt_lemma": "[optionnel] Autre forme (masculine, féminine, variante, etc.)", | > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | def getUI (sLang): if sLang in dStrings: return dStrings[sLang] return dStrings["fr"] dStrings = { "fr": { "title": "Grammalecte · Éditeur lexical", # Ajout "add_section": "Nouveau mot (lemme)", "lemma": "Lemme", "search_button": "Recherche", "information_button": "<i>", # catégories "common_name": "Nom commun", "nom_adj": "Nom et adjectif", "nom": "Nom", "adj": "Adjectif", "alt_lemma": "[optionnel] Autre forme (masculine, féminine, variante, etc.)", |
︙ | ︙ |
Added gc_lang/fr/oxt/DictOptions/sw_strings.py version [60c13c015b].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | def getUI (sLang): if sLang in dStrings: return dStrings[sLang] return dStrings["fr"] dStrings = { "fr": { "title": "Grammalecte · Recherche et informations", "search_section": "Recherche", "similar_search_section": "Graphies similaires", "similar_search_button": "Chercher", "regex_search_section": "Expression régulières", "flexion": "Flexion", "tags": "Étiquettes", "regex_search_button": "Chercher", "result_section": "Résultats", "res_flexion": "Flexions", "res_lemma": "Lemmes", "res_tags": "Étiquettes", "close_button": "Fermer", }, "en": { "title": "Grammalecte · Search and informations", "close_button": "Close", }, } |
Added gc_lang/fr/oxt/DictOptions/ti_strings.py version [bdcc06a6c3].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | def getUI (sLang): if sLang in dStrings: return dStrings[sLang] return dStrings["fr"] dStrings = { "fr": { "title": "Grammalecte · Informations", "information_section": "Informations", "save": "Enregistrement", "save_desc": "Les modifications apportées au lexique ne sont enregistrées dans le dictionnaire qu’au moment où vous cliquez sur ‹Enregistrer› dans l’onglet ‹Lexique›.", "duplicates": "Doublons", "duplicates_desc": "Il est inutile de purger votre lexique des doublons éventuels. Les doublons sont automatiquement supprimés lors de la création du dictionnaire.", "compilation": "Compilation du dictionnaire", "compilation_desc": "Le dictionnaire est compilé comme un graphe de mots sous la forme d’une chaîne binaire dans un fichier JSON. Cette opération peut prendre du temps et consommer beaucoup de mémoire si votre lexique contient plusieurs dizaines de milliers d’entrées.", "warning": "Avertissement", "warning_desc": "Il est déconseillé d’utiliser la catégorie ‹Autre› pour générer autre chose que des noms, des adjectifs, des noms propres, des verbes et des adverbes. Il n’y a aucune garantie que les étiquettes pour les autres catégories, notamment les mots grammaticaux, ne changeront pas.", "tags_section": "Signification des étiquettes", "tags": "Étiquettes", "meaning": "Signification", "close_button": "Fermer", }, "en": { "title": "Grammalecte · Informations", "close_button": "Close", }, } |