Overview
Comment: | [lo] Hunspell as a fallback spellchecker |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk | lo |
Files: | files | file ages | folders |
SHA3-256: |
3f0d501d268523807ad214074d8dfed4 |
User & Date: | olr on 2018-04-11 09:52:04 |
Other Links: | manifest | tags |
Context
2018-04-11
| ||
10:28 | [lo] ui for choosing spellchecker suggestion engine check-in: b093fd512b user: olr tags: trunk, lo | |
09:52 | [lo] Hunspell as a fallback spellchecker check-in: 3f0d501d26 user: olr tags: trunk, lo | |
06:43 | [fr] faux positif: confusion <quel/qu’elle> check-in: f148dd52e5 user: olr tags: trunk, fr | |
Changes
Modified gc_core/py/oxt/OptionsDialog.xcs from [3732fcdcec] to [6ddcee836f].
︙ | ︙ | |||
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | <group oor:name="o_${lang}"> <info> <desc>The data for one leaf.</desc> </info> <prop oor:name="use_graphspell" oor:type="xs:int"><value>1</value></prop> <prop oor:name="use_graphspell_sugg" oor:type="xs:int"><value>1</value></prop> <prop oor:name="use_extended_dic" oor:type="xs:int"><value>0</value></prop> <prop oor:name="use_personal_dic" oor:type="xs:int"><value>1</value></prop> <prop oor:name="extended_dic" oor:type="xs:string"><value></value></prop> <prop oor:name="personal_dic" oor:type="xs:string"><value></value></prop> </group> </templates> <component> <group oor:name="Leaves"> <node-ref oor:name="${lang}" oor:node-type="${lang}" /> | > > | 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | <group oor:name="o_${lang}"> <info> <desc>The data for one leaf.</desc> </info> <prop oor:name="use_graphspell" oor:type="xs:int"><value>1</value></prop> <prop oor:name="use_graphspell_sugg" oor:type="xs:int"><value>1</value></prop> <prop oor:name="use_extended_dic" oor:type="xs:int"><value>0</value></prop> <prop oor:name="use_community_dic" oor:type="xs:int"><value>0</value></prop> <prop oor:name="use_personal_dic" oor:type="xs:int"><value>1</value></prop> <prop oor:name="extended_dic" oor:type="xs:string"><value></value></prop> <prop oor:name="community_dic" oor:type="xs:string"><value></value></prop> <prop oor:name="personal_dic" oor:type="xs:string"><value></value></prop> </group> </templates> <component> <group oor:name="Leaves"> <node-ref oor:name="${lang}" oor:node-type="${lang}" /> |
︙ | ︙ |
Modified gc_lang/fr/oxt/Graphspell.py from [37463449be] to [46a0993dea].
︙ | ︙ | |||
51 52 53 54 55 56 57 | self.ctx = ctx self.sServiceName = "com.sun.star.linguistic2.SpellChecker" self.sImplementationName = "net.grammalecte.graphspell" self.tSupportedServiceNames = (self.sServiceName, ) self.xSvMgr = ctx.ServiceManager self.locales = tuple([ Locale(t[0], t[1], t[2]) for t in lLocale ]) self.xSettingNode = helpers.getConfigSetting("/org.openoffice.Lightproof_grammalecte/Other/", False) | | | | < < < | < > > > > > > > > > > > > > | 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 | self.ctx = ctx self.sServiceName = "com.sun.star.linguistic2.SpellChecker" self.sImplementationName = "net.grammalecte.graphspell" self.tSupportedServiceNames = (self.sServiceName, ) self.xSvMgr = ctx.ServiceManager self.locales = tuple([ Locale(t[0], t[1], t[2]) for t in lLocale ]) self.xSettingNode = helpers.getConfigSetting("/org.openoffice.Lightproof_grammalecte/Other/", False) self.xOptionNode = self.xSettingNode.getByName("o_fr") personal_dic = "" if (self.xOptionNode.getPropertyValue("use_personal_dic")): sPersonalDicJSON = self.xOptionNode.getPropertyValue("personal_dic") if sPersonalDicJSON: try: personal_dic = json.loads(sPersonalDicJSON) except: print("Graphspell: wrong personal_dic") traceback.print_exc() self.oGraphspell = SpellChecker("fr", "fr.bdic", "", "", personal_dic) self.loadHunspell() # print("Graphspell: init done") except: print("Graphspell: init failed") traceback.print_exc() def loadHunspell (self): # Hunspell is a fallback spellchecker try: self.xHunspell = self.xSvMgr.createInstance("org.openoffice.lingu.MySpellSpellChecker") except: print("Hunspell: init failed") traceback.print_exc() self.xHunspell = False self.bHunspell = False else: self.xHunspellLocale = Locale('fr', 'MC', '') self.bHunspell = not bool(self.xOptionNode.getPropertyValue("use_graphspell_sugg")) # XServiceName def getServiceName (self): return self.sImplementationName #self.sServiceName # XServiceInfo def getImplementationName (self): return self.sImplementationName |
︙ | ︙ | |||
104 105 106 107 108 109 110 111 112 113 | # XSpellChecker # http://www.openoffice.org/api/docs/common/ref/com/sun/star/linguistic2/XSpellChecker.html def isValid (self, aWord, rLocale, aProperties): try: aWord = zElidedWords.sub("", aWord.rstrip("."), count=1) return self.oGraphspell.isValidToken(aWord) except: traceback.print_exc() return False | > < < < < < < > | | | | | < > | | | | | < < | | | | | | > | 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 | # XSpellChecker # http://www.openoffice.org/api/docs/common/ref/com/sun/star/linguistic2/XSpellChecker.html def isValid (self, aWord, rLocale, aProperties): try: aWord = zElidedWords.sub("", aWord.rstrip("."), count=1) return self.oGraphspell.isValidToken(aWord) # return self.xHunspell.isValid(aWord, self.xHunspellLocale, aProperties) except: traceback.print_exc() return False def spell (self, aWord, aLocale, aProperties): "returns an object SpellAlternatives" try: if not self.bHunspell: lSugg = [] for l in self.oGraphspell.suggest(aWord): lSugg.extend(l) return SpellAlternatives(aWord, tuple(lSugg)) else: # fallback dictionary suggestions (Hunspell) return self.xHunspell.spell(aWord, self.xHunspellLocale, aProperties) except: traceback.print_exc() return None # XServiceDisplayName def getServiceDisplayName(self, aLocale): return "Graphspell (fr)" # Other def listSpellChecker (self): xLinguServiceManager = self.xSvMgr.createInstance("com.sun.star.linguistic2.LinguServiceManager") lService = xLinguServiceManager.getAvailableServices('com.sun.star.linguistic2.SpellChecker', Locale("fr", "MC", "")) for sSpellchecker in lService: print(repr(sSpellchecker)) #if sSpellchecker == self.ImplementationName: # continue #self.xFallbackSpellChecker = self.xSvMgr.createInstance(sSpellchecker) #if self.xFallbackSpellChecker: # print("Spell checker: %s" % xSpellChecker) # break class SpellAlternatives (unohelper.Base, XSpellAlternatives): def __init__ (self, sWord, lSugg): try: self.sWord = sWord self.lSugg = lSugg |
︙ | ︙ |