Overview
Comment: | [lo][fr] main dictionary selection: classic / reform / all variants |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk | fr | lo |
Files: | files | file ages | folders |
SHA3-256: |
711e61cc237ab75f7afa1f34c9f448b8 |
User & Date: | olr on 2018-05-04 15:11:16 |
Other Links: | manifest | tags |
Context
2018-05-04
| ||
16:09 | [graphspell][py][lo] remove trailing dot when asking for suggestions (useful for LibreOffice) check-in: e967615c1a user: olr tags: trunk, lo, graphspell | |
15:11 | [lo][fr] main dictionary selection: classic / reform / all variants check-in: 711e61cc23 user: olr tags: trunk, fr, lo | |
11:37 | [lo] load selected dictionary from saved options check-in: 7c4223d402 user: olr tags: trunk, lo | |
Changes
Modified gc_lang/fr/oxt/DictOptions/DictOptions.py from [0f31926e7e] to [8c7306c3e6].
︙ | ︙ | |||
10 11 12 13 14 15 16 17 18 19 20 21 22 23 | import helpers import do_strings from com.sun.star.task import XJobExecutor from com.sun.star.awt import XActionListener from com.sun.star.beans import PropertyValue class DictOptions (unohelper.Base, XActionListener, XJobExecutor): def __init__ (self, ctx): self.ctx = ctx self.xSvMgr = self.ctx.ServiceManager self.xContainer = None | > > > > > > > > > > > > | 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 | import helpers import do_strings from com.sun.star.task import XJobExecutor from com.sun.star.awt import XActionListener from com.sun.star.beans import PropertyValue from com.sun.star.awt.MessageBoxButtons import BUTTONS_OK # BUTTONS_OK, BUTTONS_OK_CANCEL, BUTTONS_YES_NO, BUTTONS_YES_NO_CANCEL, BUTTONS_RETRY_CANCEL, BUTTONS_ABORT_IGNORE_RETRY # DEFAULT_BUTTON_OK, DEFAULT_BUTTON_CANCEL, DEFAULT_BUTTON_RETRY, DEFAULT_BUTTON_YES, DEFAULT_BUTTON_NO, DEFAULT_BUTTON_IGNORE from com.sun.star.awt.MessageBoxType import INFOBOX, ERRORBOX # MESSAGEBOX, INFOBOX, WARNINGBOX, ERRORBOX, QUERYBOX def MessageBox (xDocument, sMsg, sTitle, nBoxType=INFOBOX, nBoxButtons=BUTTONS_OK): xParentWin = xDocument.CurrentController.Frame.ContainerWindow ctx = uno.getComponentContext() xToolkit = ctx.ServiceManager.createInstanceWithContext("com.sun.star.awt.Toolkit", ctx) xMsgBox = xToolkit.createMessageBox(xParentWin, nBoxType, nBoxButtons, sTitle, sMsg) return xMsgBox.execute() class DictOptions (unohelper.Base, XActionListener, XJobExecutor): def __init__ (self, ctx): self.ctx = ctx self.xSvMgr = self.ctx.ServiceManager self.xContainer = None |
︙ | ︙ | |||
32 33 34 35 36 37 38 | xWidget.Height = h for k, w in kwargs.items(): setattr(xWidget, k, w) self.xDialog.insertByName(name, xWidget) return xWidget def run (self, sLang): | | > > | | | | | | < < < < < | | | > > > > > | | | | | | | | | | | | > > | < < > > > > > > > > > | > > > < | | > > > > > > > > > | 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 177 178 179 180 181 182 183 184 185 186 187 188 189 | xWidget.Height = h for k, w in kwargs.items(): setattr(xWidget, k, w) self.xDialog.insertByName(name, xWidget) return xWidget def run (self, sLang): self.dUI = do_strings.getUI(sLang) self.xDesktop = self.xSvMgr.createInstanceWithContext("com.sun.star.frame.Desktop", self.ctx) self.xDocument = self.xDesktop.getCurrentComponent() self.xOptionNode = helpers.getConfigSetting("/org.openoffice.Lightproof_grammalecte/Other/", True) # dialog self.xDialog = self.xSvMgr.createInstanceWithContext('com.sun.star.awt.UnoControlDialogModel', self.ctx) self.xDialog.Width = 200 self.xDialog.Height = 310 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 = 10 xFDSubTitle.Weight = uno.getConstantByName("com.sun.star.awt.FontWeight.BOLD") xFDSubTitle.Name = "Verdana" # widget nX = 10 nY1 = 10 nY2 = nY1 + 55 nY3 = nY2 + 30 nY4 = nY3 + 30 nY5 = nY4 + 45 nY6 = nY5 + 95 nWidth = self.xDialog.Width - 20 nHeight = 10 # Graphspell dictionary section self._addWidget("graphspell_section", 'FixedLine', nX, nY1, nWidth, nHeight, Label = self.dUI.get("graphspell_section", "#err"), FontDescriptor = xFDTitle) self.xMainDic = self._addWidget('activate_main', 'CheckBox', nX, nY1+15, nWidth, nHeight, Label = self.dUI.get('activate_main', "#err"), FontDescriptor = xFDSubTitle, TextColor = 0x000088, State = True) self._addWidget('activate_main_descr', 'FixedText', nX+10, nY1+25, nWidth-10, nHeight*2, Label = self.dUI.get('activate_main_descr', "#err"), MultiLine = True) self._addWidget('spelling', 'FixedText', nX+10, nY1+45, nWidth-80, nHeight, Label = self.dUI.get('spelling', "#err"), FontDescriptor = xFDSubTitle) self.xInfoDicButton = self._addWidget('info_dic_button', 'Button', nX+160, nY1+45, 12, 9, Label = "‹i›") self.xSelClassic = self._addWidget('classic', 'RadioButton', nX+10, nY1+55, 50, nHeight, Label = self.dUI.get('classic', "#err")) self.xSelReform = self._addWidget('reform', 'RadioButton', nX+65, nY1+55, 55, nHeight, Label = self.dUI.get('reform', "#err")) self.xSelAllvars = self._addWidget('allvars', 'RadioButton', nX+120, nY1+55, 60, nHeight, Label = self.dUI.get('allvars', "#err")) self.xExtendedDic = self._addWidget('activate_extended', 'CheckBox', nX, nY2+15, nWidth, nHeight, Label = self.dUI.get('activate_extended', "#err"), FontDescriptor = xFDSubTitle, TextColor = 0x000088, Enabled = False) self._addWidget('activate_extended_descr', 'FixedText', nX+10, nY2+25, nWidth-10, nHeight*2, Label = self.dUI.get('activate_extended_descr', "#err"), MultiLine = True) self.xCommunityDic = self._addWidget('activate_community', 'CheckBox', nX, nY3+15, nWidth, nHeight, Label = self.dUI.get('activate_community', "#err"), FontDescriptor = xFDSubTitle, TextColor = 0x000088, Enabled = False) self._addWidget('activate_community_descr', 'FixedText', nX+10, nY3+25, nWidth-10, nHeight*2, Label = self.dUI.get('activate_community_descr', "#err"), MultiLine = True) self.xPersonalDic = self._addWidget('activate_personal', 'CheckBox', nX, nY4+15, nWidth, nHeight, Label = self.dUI.get('activate_personal', "#err"), FontDescriptor = xFDSubTitle, TextColor = 0x000088) self._addWidget('activate_personal_descr', 'FixedText', nX+10, nY4+25, nWidth-10, nHeight*2, Label = self.dUI.get('activate_personal_descr', "#err"), MultiLine = True) # Spell suggestion engine section self._addWidget("suggestion_section", 'FixedLine', nX, nY5, nWidth, nHeight, Label = self.dUI.get("suggestion_section", "#err"), FontDescriptor = xFDTitle) self.xGraphspellSugg = self._addWidget('activate_spell_sugg', 'CheckBox', nX, nY5+15, nWidth, nHeight, Label = self.dUI.get('activate_spell_sugg', "#err")) self._addWidget('activate_spell_sugg_descr', 'FixedText', nX, nY5+25, nWidth, nHeight*6, Label = self.dUI.get('activate_spell_sugg_descr', "#err"), MultiLine = True) # Restart message self._addWidget('restart', 'FixedText', nX, nY6, nWidth, nHeight*2, Label = self.dUI.get('restart', "#err"), FontDescriptor = xFDTitle, MultiLine = True, TextColor = 0x880000) # Button self._addWidget('apply_button', 'Button', self.xDialog.Width-115, self.xDialog.Height-20, 50, 14, Label = self.dUI.get('apply_button', "#err"), FontDescriptor = xFDTitle, TextColor = 0x005500) self._addWidget('cancel_button', 'Button', self.xDialog.Width-60, self.xDialog.Height-20, 50, 14, Label = self.dUI.get('cancel_button', "#err"), FontDescriptor = xFDTitle, TextColor = 0x550000) self._loadOptions() # container self.xContainer = self.xSvMgr.createInstanceWithContext('com.sun.star.awt.UnoControlDialog', self.ctx) self.xContainer.setModel(self.xDialog) self.xContainer.getControl('info_dic_button').addActionListener(self) self.xContainer.getControl('info_dic_button').setActionCommand('InfoDic') self.xContainer.getControl('apply_button').addActionListener(self) self.xContainer.getControl('apply_button').setActionCommand('Apply') self.xContainer.getControl('cancel_button').addActionListener(self) self.xContainer.getControl('cancel_button').setActionCommand('Cancel') self.xContainer.setVisible(False) toolkit = self.xSvMgr.createInstanceWithContext('com.sun.star.awt.ExtToolkit', self.ctx) self.xContainer.createPeer(toolkit, None) self.xContainer.execute() # XActionListener def actionPerformed (self, xActionEvent): try: if xActionEvent.ActionCommand == 'Apply': xChild = self.xOptionNode.getByName("o_fr") #xChild.setPropertyValue("use_extended_dic", self.xExtendedDic.State) #xChild.setPropertyValue("use_community_dic", self.xCommunityDic.State) xChild.setPropertyValue("use_personal_dic", self.xPersonalDic.State) xChild.setPropertyValue("use_graphspell_sugg", self.xGraphspellSugg.State) sMainDicName = "classic" if self.xSelClassic.State: sMainDicName = "classic" elif self.xSelReform.State: sMainDicName = "reform" elif self.xSelAllvars.State: sMainDicName = "allvars" xChild.setPropertyValue("main_dic_name", sMainDicName) self.xOptionNode.commitChanges() self.xContainer.endExecute() elif xActionEvent.ActionCommand == 'InfoDic': MessageBox(self.xDocument, self.dUI.get('spelling_descr', "#err"), "Orthographe du français", nBoxType=INFOBOX, nBoxButtons=BUTTONS_OK) else: self.xContainer.endExecute() except: traceback.print_exc() # XJobExecutor def trigger (self, args): try: dialog = DictOptions(self.ctx) dialog.run() except: traceback.print_exc() def _loadOptions (self): try: xChild = self.xOptionNode.getByName("o_fr") #self.xGraphspell.State = xChild.getPropertyValue("use_graphspell") self.xGraphspellSugg.State = xChild.getPropertyValue("use_graphspell_sugg") #self.xExtendedDic.State = xChild.getPropertyValue("use_extended_dic") #self.xCommunityDic.State = xChild.getPropertyValue("use_community_dic") self.xPersonalDic.State = xChild.getPropertyValue("use_personal_dic") sMainDicName = xChild.getPropertyValue("main_dic_name") if sMainDicName == "classic": self.xSelClassic.State = 1 elif sMainDicName == "reform": self.xSelReform.State = 1 elif sMainDicName == "allvars": self.xSelAllvars.State = 1 else: print("Error. Unknown dictionary: " + sMainDicName) except: traceback.print_exc() #g_ImplementationHelper = unohelper.ImplementationHelper() #g_ImplementationHelper.addImplementation(DictOptions, 'net.grammalecte.graphspell.DictOptions', ('com.sun.star.task.Job',)) |
Modified gc_lang/fr/oxt/DictOptions/do_strings.py from [a4c5493269] to [f0ab576ba3].
︙ | ︙ | |||
11 12 13 14 15 16 17 | "activate_main": "Activer le correcteur orthographique de Grammalecte", "activate_main_descr": "Supplante le correcteur orthographique inclus dans LibreOffice (Hunspell).", "suggestion_section": "Moteur de suggestion orthographique", "activate_spell_sugg": "Moteur de suggestion de Grammalecte", "activate_spell_sugg_descr": "Les suggestions orthographiques des mots non reconnus par le correcteur sont fournies par Grammalecte. Si ces suggestions ne vous satisfont pas (ou si c’est trop lent), vous pouvez désactiver cette option : les suggestions orthographiques seront alors fournies par le correcteur de LibreOffice. Mais, dans ce cas, les mots que vous avez ajoutés au dictionnaire personnel de Grammalecte ne pourront pas être inclus aux suggestions.", | | > > > > > | 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | "activate_main": "Activer le correcteur orthographique de Grammalecte", "activate_main_descr": "Supplante le correcteur orthographique inclus dans LibreOffice (Hunspell).", "suggestion_section": "Moteur de suggestion orthographique", "activate_spell_sugg": "Moteur de suggestion de Grammalecte", "activate_spell_sugg_descr": "Les suggestions orthographiques des mots non reconnus par le correcteur sont fournies par Grammalecte. Si ces suggestions ne vous satisfont pas (ou si c’est trop lent), vous pouvez désactiver cette option : les suggestions orthographiques seront alors fournies par le correcteur de LibreOffice. Mais, dans ce cas, les mots que vous avez ajoutés au dictionnaire personnel de Grammalecte ne pourront pas être inclus aux suggestions.", "graphspell_section": "Dictionnaires actifs", "activate_main": "Dictionnaire principal", "activate_main_descr": "Environ 83 000 entrées, 500 000 flexions.\nNi éditable, ni désactivable.", "spelling": "Orthographe", "spelling_descr": "Le dictionnaire “Classique” propose l’orthographe telle qu’elle est écrite aujourd’hui le plus couramment. C’est le dictionnaire recommandé. Il contient les graphies usuelles et classiques, certaines encore communément utilisées, d’autres désuètes.\n\nAvec le dictionnaire “Réforme 1990”, seule l’orthographe réformée est reconnue. Attendu que bon nombre de graphies réformées sont considérées comme erronées par beaucoup, ce dictionnaire est déconseillé. Les graphies passées dans l’usage sont déjà incluses dans le dictionnaire “Classique”.\n\nLe dictionnaire “Toutes variantes” contient toutes les graphies, classiques ou réformées, ainsi que d’autres plus rares encore. Ce dictionnaire est déconseillé à ceux qui ne connaissent pas très bien la langue française.", "allvars": "Toutes variantes", "classic": "Classique", "reform": "Réforme 1990", "activate_extended": "Dictionnaire étendu", "activate_extended_descr": "Fonctionnalité à venir", "activate_community": "Dictionnaire communautaire", "activate_community_descr": "Fonctionnalité à venir", "activate_personal": "Dictionnaire personnel", "activate_personal_descr": "Le dictionnaire personnel est créé et édité via l’éditeur lexical.", |
︙ | ︙ | |||
37 38 39 40 41 42 43 | "activate_main": "Activate the spell checker from Grammalecte", "activate_main_descr": "Overrides the spell checker included in LibreOffice (Hunspell)", "suggestion_section": "Spell suggestion engine", "activate_spell_sugg": "Suggestion engine of Grammalecte", "activate_spell_sugg_descr": "Spelling suggestions for words unrecognized by the spellchecker are provided by Grammalecte. If you aren’t satisfied by these suggestions (or if it’s too slow), you can disable this option: spelling suggestions will then be provided by the LibreOffice proofreader. In this case, words you have added in your Grammalecte’s custom dictionary won’t be included in suggestions.", | | > > > > > | 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 | "activate_main": "Activate the spell checker from Grammalecte", "activate_main_descr": "Overrides the spell checker included in LibreOffice (Hunspell)", "suggestion_section": "Spell suggestion engine", "activate_spell_sugg": "Suggestion engine of Grammalecte", "activate_spell_sugg_descr": "Spelling suggestions for words unrecognized by the spellchecker are provided by Grammalecte. If you aren’t satisfied by these suggestions (or if it’s too slow), you can disable this option: spelling suggestions will then be provided by the LibreOffice proofreader. In this case, words you have added in your Grammalecte’s custom dictionary won’t be included in suggestions.", "graphspell_section": "Active dictionaries", "activate_main": "Main dictionary", "activate_main_descr": "About 83 000 entries, 500 000 flexions.\nNot editable, not deactivable.", "spelling": "Spelling", "spelling_descr": "The dictionary “Classic” offers the French spelling as it is written nowadays most often. This is the recommended dictionary. It contains usual and classical spellings, some of them still widely used, others obsolete.\n\nWith the dictionary “Reform 1990”, only the reformed spelling is recognized. As many of reformed spellings are considered erroneous by many people, this dictionary is unadvised. Reformed spellings commonly used are already included in the “Classic” dictionary.\n\nThe dictionary “All variants” contains all spelling variants, classical and reformed, and some others even rarer. This dictionary is unadvised for those who don’t know very well the French language.", "allvars": "All variants", "classic": "Classic", "reform": "Reform 1990", "activate_extended": "Extended dictionary", "activate_extended_descr": "Feature to come.", "activate_community": "Community dictionary", "activate_community_descr": "Feature to come.", "activate_personal": "Personal dictionary", "activate_personal_descr": "The personal dictionary is created and edited via the lexicon editor.", "restart": "The modification will be effective only after restarting the software.", "apply_button": "Apply", "cancel_button": "Cancel", }, } |