src/eric7/Plugins/PluginTranslator.py

branch
eric7
changeset 9221
bf71ee032bb4
parent 9209
b99e7fd55fd3
child 9413
80c06d472826
equal deleted inserted replaced
9220:e9e7eca7efee 9221:bf71ee032bb4
37 # End-Of-Header 37 # End-Of-Header
38 38
39 error = "" 39 error = ""
40 40
41 translatorPluginObject = None 41 translatorPluginObject = None
42 42
43 43
44 def createTranslatorPage(configDlg): 44 def createTranslatorPage(configDlg):
45 """ 45 """
46 Module function to create the Translator configuration page. 46 Module function to create the Translator configuration page.
47 47
48 @param configDlg reference to the configuration dialog 48 @param configDlg reference to the configuration dialog
49 @type ConfigurationWidget 49 @type ConfigurationWidget
50 @return reference to the configuration page 50 @return reference to the configuration page
51 @rtype TranslatorPage 51 @rtype TranslatorPage
52 """ 52 """
53 from UiExtensionPlugins.Translator.ConfigurationPage import TranslatorPage 53 from UiExtensionPlugins.Translator.ConfigurationPage import TranslatorPage
54
54 page = TranslatorPage.TranslatorPage(translatorPluginObject) 55 page = TranslatorPage.TranslatorPage(translatorPluginObject)
55 return page 56 return page
56 57
57 58
58 def getConfigData(): 59 def getConfigData():
59 """ 60 """
60 Module function returning data as required by the configuration dialog. 61 Module function returning data as required by the configuration dialog.
61 62
62 @return dictionary containing the relevant data 63 @return dictionary containing the relevant data
63 @rtype dict 64 @rtype dict
64 """ 65 """
65 icon = ( 66 icon = (
66 os.path.join("UiExtensionPlugins", "Translator", "icons", "flag-dark") 67 os.path.join("UiExtensionPlugins", "Translator", "icons", "flag-dark")
67 if ericApp().usesDarkPalette() else 68 if ericApp().usesDarkPalette()
68 os.path.join("UiExtensionPlugins", "Translator", "icons", "flag-light") 69 else os.path.join("UiExtensionPlugins", "Translator", "icons", "flag-light")
69 ) 70 )
70 return { 71 return {
71 "translatorPage": [ 72 "translatorPage": [
72 QCoreApplication.translate("TranslatorPlugin", 73 QCoreApplication.translate("TranslatorPlugin", "Translator"),
73 "Translator"), 74 icon,
74 icon, createTranslatorPage, None, None], 75 createTranslatorPage,
76 None,
77 None,
78 ],
75 } 79 }
76 80
77 81
78 def prepareUninstall(): 82 def prepareUninstall():
79 """ 83 """
83 87
84 88
85 class TranslatorPlugin(QObject): 89 class TranslatorPlugin(QObject):
86 """ 90 """
87 Class implementing the Translator plug-in. 91 Class implementing the Translator plug-in.
88 92
89 @signal updateLanguages() emitted to indicate a languages update 93 @signal updateLanguages() emitted to indicate a languages update
90 """ 94 """
95
91 PreferencesKey = "Translator" 96 PreferencesKey = "Translator"
92 97
93 updateLanguages = pyqtSignal() 98 updateLanguages = pyqtSignal()
94 99
95 def __init__(self, ui): 100 def __init__(self, ui):
96 """ 101 """
97 Constructor 102 Constructor
98 103
99 @param ui reference to the user interface object 104 @param ui reference to the user interface object
100 @type UI.UserInterface 105 @type UI.UserInterface
101 """ 106 """
102 super().__init__(ui) 107 super().__init__(ui)
103 self.__ui = ui 108 self.__ui = ui
104 self.__initialize() 109 self.__initialize()
105 110
106 self.__defaults = { 111 self.__defaults = {
107 "OriginalLanguage": "en", 112 "OriginalLanguage": "en",
108 "TranslationLanguage": "de", 113 "TranslationLanguage": "de",
109 "SelectedEngine": "deepl", 114 "SelectedEngine": "deepl",
110 "EnabledLanguages": ["en", "de", "fr", "cs", "es", "pt", 115 "EnabledLanguages": [
111 "ru", "tr", "zh-CN", "zh-TW"], 116 "en",
117 "de",
118 "fr",
119 "cs",
120 "es",
121 "pt",
122 "ru",
123 "tr",
124 "zh-CN",
125 "zh-TW",
126 ],
112 # service specific settings below 127 # service specific settings below
113 # DeepL 128 # DeepL
114 "DeeplKey": "", 129 "DeeplKey": "",
115 # Google V1 130 # Google V1
116 "GoogleEnableDictionary": False, 131 "GoogleEnableDictionary": False,
126 "MyMemoryKey": "", 141 "MyMemoryKey": "",
127 "MyMemoryEmail": "", 142 "MyMemoryEmail": "",
128 # Yandex 143 # Yandex
129 "YandexKey": "", 144 "YandexKey": "",
130 } 145 }
131 146
132 def __initialize(self): 147 def __initialize(self):
133 """ 148 """
134 Private slot to (re)initialize the plugin. 149 Private slot to (re)initialize the plugin.
135 """ 150 """
136 self.__object = None 151 self.__object = None
137 152
138 def activate(self): 153 def activate(self):
139 """ 154 """
140 Public method to activate this plugin. 155 Public method to activate this plugin.
141 156
142 @return tuple of None and activation status 157 @return tuple of None and activation status
143 @rtype tuple of (None, bool) 158 @rtype tuple of (None, bool)
144 """ 159 """
145 global error 160 global error
146 error = "" # clear previous error 161 error = "" # clear previous error
147 162
148 global translatorPluginObject 163 global translatorPluginObject
149 translatorPluginObject = self 164 translatorPluginObject = self
150 165
151 self.__object = Translator( 166 self.__object = Translator(self, ericApp().usesDarkPalette(), self.__ui)
152 self, ericApp().usesDarkPalette(), self.__ui)
153 self.__object.activate() 167 self.__object.activate()
154 ericApp().registerPluginObject("Translator", self.__object) 168 ericApp().registerPluginObject("Translator", self.__object)
155 169
156 return None, True 170 return None, True
157 171
158 def deactivate(self): 172 def deactivate(self):
159 """ 173 """
160 Public method to deactivate this plugin. 174 Public method to deactivate this plugin.
161 """ 175 """
162 ericApp().unregisterPluginObject("Translator") 176 ericApp().unregisterPluginObject("Translator")
163 self.__object.deactivate() 177 self.__object.deactivate()
164 178
165 self.__initialize() 179 self.__initialize()
166 180
167 def getPreferencesDefault(self, key): 181 def getPreferencesDefault(self, key):
168 """ 182 """
169 Public method to retrieve the various default settings. 183 Public method to retrieve the various default settings.
170 184
171 @param key the key of the value to get 185 @param key the key of the value to get
172 @type str 186 @type str
173 @return the requested setting 187 @return the requested setting
174 @rtype any 188 @rtype any
175 """ 189 """
176 return self.__defaults[key] 190 return self.__defaults[key]
177 191
178 def getPreferences(self, key): 192 def getPreferences(self, key):
179 """ 193 """
180 Public method to retrieve the various settings. 194 Public method to retrieve the various settings.
181 195
182 @param key the key of the value to get 196 @param key the key of the value to get
183 @type str 197 @type str
184 @return the requested setting 198 @return the requested setting
185 @rtype any 199 @rtype any
186 """ 200 """
187 if key in ["EnabledLanguages"]: 201 if key in ["EnabledLanguages"]:
188 return Preferences.toList( 202 return Preferences.toList(
189 Preferences.getSettings().value( 203 Preferences.getSettings().value(
190 self.PreferencesKey + "/" + key, self.__defaults[key])) 204 self.PreferencesKey + "/" + key, self.__defaults[key]
205 )
206 )
191 elif key in ["GoogleEnableDictionary"]: 207 elif key in ["GoogleEnableDictionary"]:
192 return Preferences.toBool( 208 return Preferences.toBool(
193 Preferences.getSettings().value( 209 Preferences.getSettings().value(
194 self.PreferencesKey + "/" + key, self.__defaults[key])) 210 self.PreferencesKey + "/" + key, self.__defaults[key]
211 )
212 )
195 else: 213 else:
196 return Preferences.getSettings().value( 214 return Preferences.getSettings().value(
197 self.PreferencesKey + "/" + key, self.__defaults[key]) 215 self.PreferencesKey + "/" + key, self.__defaults[key]
198 216 )
217
199 def setPreferences(self, key, value): 218 def setPreferences(self, key, value):
200 """ 219 """
201 Public method to store the various settings. 220 Public method to store the various settings.
202 221
203 @param key the key of the setting to be set 222 @param key the key of the setting to be set
204 @type str 223 @type str
205 @param value the value to be set 224 @param value the value to be set
206 @type any 225 @type any
207 """ 226 """
208 Preferences.getSettings().setValue( 227 Preferences.getSettings().setValue(self.PreferencesKey + "/" + key, value)
209 self.PreferencesKey + "/" + key, value) 228
210
211 if key in ["EnabledLanguages"]: 229 if key in ["EnabledLanguages"]:
212 self.updateLanguages.emit() 230 self.updateLanguages.emit()

eric ide

mercurial