eric7/Plugins/PluginTranslator.py

branch
eric7
changeset 9148
b31f0d894b55
parent 8881
54e42bc2437a
equal deleted inserted replaced
9147:bbf3af40c223 9148:b31f0d894b55
7 Module implementing the Translator plugin. 7 Module implementing the Translator plugin.
8 """ 8 """
9 9
10 import os 10 import os
11 11
12 from PyQt6.QtCore import pyqtSignal, QObject, QCoreApplication, QDateTime, Qt 12 from PyQt6.QtCore import pyqtSignal, QObject, QCoreApplication
13 13
14 from EricWidgets.EricApplication import ericApp 14 from EricWidgets.EricApplication import ericApp
15 15
16 import Preferences 16 import Preferences
17 17
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 @return reference to the configuration page 50 @return reference to the configuration page
51 @rtype TranslatorPage
50 """ 52 """
51 from UiExtensionPlugins.Translator.ConfigurationPage import TranslatorPage 53 from UiExtensionPlugins.Translator.ConfigurationPage import TranslatorPage
52 page = TranslatorPage.TranslatorPage(translatorPluginObject) 54 page = TranslatorPage.TranslatorPage(translatorPluginObject)
53 return page 55 return page
54 56
56 def getConfigData(): 58 def getConfigData():
57 """ 59 """
58 Module function returning data as required by the configuration dialog. 60 Module function returning data as required by the configuration dialog.
59 61
60 @return dictionary containing the relevant data 62 @return dictionary containing the relevant data
63 @rtype dict
61 """ 64 """
62 icon = ( 65 icon = (
63 os.path.join("UiExtensionPlugins", "Translator", "icons", "flag-dark") 66 os.path.join("UiExtensionPlugins", "Translator", "icons", "flag-dark")
64 if ericApp().usesDarkPalette() else 67 if ericApp().usesDarkPalette() else
65 os.path.join("UiExtensionPlugins", "Translator", "icons", "flag-light") 68 os.path.join("UiExtensionPlugins", "Translator", "icons", "flag-light")
91 94
92 def __init__(self, ui): 95 def __init__(self, ui):
93 """ 96 """
94 Constructor 97 Constructor
95 98
96 @param ui reference to the user interface object (UI.UserInterface) 99 @param ui reference to the user interface object
100 @type UI.UserInterface
97 """ 101 """
98 super().__init__(ui) 102 super().__init__(ui)
99 self.__ui = ui 103 self.__ui = ui
100 self.__initialize() 104 self.__initialize()
101 105
106 "EnabledLanguages": ["en", "de", "fr", "cs", "es", "pt", 110 "EnabledLanguages": ["en", "de", "fr", "cs", "es", "pt",
107 "ru", "tr", "zh-CN", "zh-TW"], 111 "ru", "tr", "zh-CN", "zh-TW"],
108 # service specific settings below 112 # service specific settings below
109 # DeepL 113 # DeepL
110 "DeeplKey": "", 114 "DeeplKey": "",
111 # Google 115 # Google V1
112 "GoogleEnableDictionary": False, 116 "GoogleEnableDictionary": False,
117 # Google V2
113 "GoogleV2Key": "", 118 "GoogleV2Key": "",
114 # IBM Watson Language Translator 119 # IBM Watson
115 "IbmUrl": "", 120 "IbmUrl": "",
116 "IbmKey": "", 121 "IbmKey": "",
117 # Microsoft 122 # Microsoft
118 "MsTranslatorKey": "", 123 "MsTranslatorKey": "",
119 "MsAuthToken": "", 124 "MsTranslatorRegion": "",
120 "MsAuthTokenExpire": QDateTime(),
121 # MyMemory 125 # MyMemory
122 "MyMemoryKey": "", 126 "MyMemoryKey": "",
123 "MyMemoryEmail": "", 127 "MyMemoryEmail": "",
124 # Yandex 128 # Yandex
125 "YandexKey": "", 129 "YandexKey": "",
133 137
134 def activate(self): 138 def activate(self):
135 """ 139 """
136 Public method to activate this plugin. 140 Public method to activate this plugin.
137 141
138 @return tuple of None and activation status (boolean) 142 @return tuple of None and activation status
143 @rtype tuple of (None, bool)
139 """ 144 """
140 global error 145 global error
141 error = "" # clear previous error 146 error = "" # clear previous error
142 147
143 global translatorPluginObject 148 global translatorPluginObject
162 def getPreferencesDefault(self, key): 167 def getPreferencesDefault(self, key):
163 """ 168 """
164 Public method to retrieve the various default settings. 169 Public method to retrieve the various default settings.
165 170
166 @param key the key of the value to get 171 @param key the key of the value to get
172 @type str
167 @return the requested setting 173 @return the requested setting
174 @rtype any
168 """ 175 """
169 return self.__defaults[key] 176 return self.__defaults[key]
170 177
171 def getPreferences(self, key): 178 def getPreferences(self, key):
172 """ 179 """
173 Public method to retrieve the various settings. 180 Public method to retrieve the various settings.
174 181
175 @param key the key of the value to get 182 @param key the key of the value to get
183 @type str
176 @return the requested setting 184 @return the requested setting
185 @rtype any
177 """ 186 """
178 if key in ["EnabledLanguages"]: 187 if key in ["EnabledLanguages"]:
179 return Preferences.toList( 188 return Preferences.toList(
180 Preferences.getSettings().value( 189 Preferences.getSettings().value(
181 self.PreferencesKey + "/" + key, self.__defaults[key])) 190 self.PreferencesKey + "/" + key, self.__defaults[key]))
182 elif key in ["GoogleEnableDictionary"]: 191 elif key in ["GoogleEnableDictionary"]:
183 return Preferences.toBool( 192 return Preferences.toBool(
184 Preferences.getSettings().value( 193 Preferences.getSettings().value(
185 self.PreferencesKey + "/" + key, self.__defaults[key])) 194 self.PreferencesKey + "/" + key, self.__defaults[key]))
186 elif key in ["MsAuthTokenExpire"]:
187 value = Preferences.getSettings().value(
188 self.PreferencesKey + "/" + key, self.__defaults[key])
189 if isinstance(value, str):
190 if value.startswith("@QDateTime"):
191 # old value, replace with default
192 value = self.__defaults[key]
193 else:
194 value = QDateTime.fromString(value, Qt.DateFormat.ISODate)
195 return value
196 else: 195 else:
197 return Preferences.getSettings().value( 196 return Preferences.getSettings().value(
198 self.PreferencesKey + "/" + key, self.__defaults[key]) 197 self.PreferencesKey + "/" + key, self.__defaults[key])
199 198
200 def setPreferences(self, key, value): 199 def setPreferences(self, key, value):
201 """ 200 """
202 Public method to store the various settings. 201 Public method to store the various settings.
203 202
204 @param key the key of the setting to be set (string) 203 @param key the key of the setting to be set
204 @type str
205 @param value the value to be set 205 @param value the value to be set
206 """ 206 @type any
207 if key in ["MsAuthTokenExpire"]: 207 """
208 Preferences.getSettings().setValue( 208 Preferences.getSettings().setValue(
209 self.PreferencesKey + "/" + key, 209 self.PreferencesKey + "/" + key, value)
210 value.toString(Qt.DateFormat.ISODate))
211 else:
212 Preferences.getSettings().setValue(
213 self.PreferencesKey + "/" + key, value)
214 210
215 if key in ["EnabledLanguages"]: 211 if key in ["EnabledLanguages"]:
216 self.updateLanguages.emit() 212 self.updateLanguages.emit()
217
218 #
219 # eflag: noqa = M801

eric ide

mercurial