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() |