Mon, 24 Apr 2023 17:51:11 +0200
Merged with branch 'eric7' in order to get the latest changes and bug fixes.
--- a/docs/changelog.md Sat Apr 15 18:22:09 2023 +0200 +++ b/docs/changelog.md Mon Apr 24 17:51:11 2023 +0200 @@ -13,9 +13,15 @@ page of the configuration dialog. - Added a package installer for devices lacking network connectivity and the `mip` package manager. +- Plugin Repository + - Added the capability to enforce the download of plugin packages using the + `http://` protocol (in case of missing/non-functional system `SSL` libraries). - Translator - Added support for the LibreTranslate translator (see https://github.com/LibreTranslate/LibreTranslate). +- Web Browser + - Added the capability to enforce the download of spell check dictionaries using + the `http://` protocol (in case of missing/non-functional system `SSL` libraries). ### Version 23.4.2 - bug fixes
--- a/scripts/compileUiFiles.py Sat Apr 15 18:22:09 2023 +0200 +++ b/scripts/compileUiFiles.py Mon Apr 24 17:51:11 2023 +0200 @@ -11,7 +11,9 @@ import os import sys -from PyQt6.uic import compileUiDir +from functools import partial + +from PyQt6.uic import compileUi def __pyName(py_dir, py_file): @@ -26,16 +28,104 @@ return py_dir, "Ui_{0}".format(py_file) +def __compileOneUi(ui_path, mapFunc=None, execute=False, indent=4): + """ + Function to compile a single form file to Python code. + + @param ui_path path of the Qt form file + @type str + @param mapFunc function to change directory and/or name of the resulting Python file + (defaults to None) + @type func (optional) + @param execute flag indicating to generate code to execute the form in standalone + mode (defaults to False) + @type bool (optional) + @param indent indentation width using spaces (defaults to 4) + @type int (optional) + """ + py_dir, py_file = os.path.split(ui_path[:-3] + ".py") + + # Allow the caller to change the name of the .py file or generate + # it in a different directory. + if mapFunc is not None: + py_dir, py_file = mapFunc(py_dir, py_file) + + # Make sure the destination directory exists. + os.makedirs(py_dir, exist_ok=True) + + py_path = os.path.join(py_dir, py_file) + + with open(py_path, "w", encoding="utf-8") as py_file: + compileUi(ui_path, py_file, execute=execute, indent=indent) + + +def compileUiDir(root, recurse=False, mapFunc=None, workers=1, execute=False, indent=4): + """ + Function to compile all Qt form files of a directory or directory tree + to Python code. + + @param root directory to scan for Qt form files (i.e. files ending with '.ui' + @type str + @param recurse flag indicating to recurse into sub-directories (defaults to False) + @type bool (optional) + @param mapFunc function to change directory and/or name of the resulting Python file + (defaults to None) + @type func (optional) + @param workers number of worker processes to be used to compile (defaults to 1) + @type int (optional) + @param execute flag indicating to generate code to execute the form in standalone + mode (defaults to False) + @type bool (optional) + @param indent indentation width using spaces (defaults to 4) + @type int (optional) + """ + if recurse: + ui_files = [] + for rootDir, _, files in os.walk(root): + ui_files.extend( + os.path.join(rootDir, ui) for ui in files if ui.endswith(".ui") + ) + else: + ui_files = [ + os.path.join(root, ui) + for ui in os.listdir(root) + if os.path.isfile(os.path.join(root, ui) and ui.endswith(".ui")) + ] + + ProcessPoolExecutor = None + if workers != 1: + try: + from concurrent.futures import ProcessPoolExecutor # __IGNORE_WARNING__ + except NotImplementedError: + workers = 1 + + if workers != 1 and ProcessPoolExecutor is not None: + # If workers == 0, let ProcessPoolExecutor determine worker count. + workers = workers or None + with ProcessPoolExecutor(max_workers=workers) as executor: + executor.map( + partial( + __compileOneUi, mapFunc=mapFunc, execute=execute, indent=indent + ), + ui_files, + ) + else: + for ui_file in ui_files: + __compileOneUi(ui_file, mapFunc=mapFunc, execute=execute, indent=indent) + + def compileUiFiles(): """ Compile the .ui files to Python sources. """ if os.path.exists("src"): # eric7 with 'src' layout - compileUiDir(os.path.join("src", "eric7"), recurse=True, map=__pyName) + compileUiDir( + os.path.join("src", "eric7"), recurse=True, mapFunc=__pyName, workers=0 + ) elif os.path.exists("eric7"): # old layout or invoked from within 'src' - compileUiDir("eric7", recurse=True, map=__pyName) + compileUiDir("eric7", recurse=True, mapFunc=__pyName, workers=0) else: print("No valid 'eric7' source layout could be found. Aborting...")
--- a/scripts/install.py Sat Apr 15 18:22:09 2023 +0200 +++ b/scripts/install.py Mon Apr 24 17:51:11 2023 +0200 @@ -29,6 +29,8 @@ import sysconfig import time +from functools import partial + # Define the globals. progName = None currDir = os.getcwd() @@ -1923,13 +1925,80 @@ return py_dir, "Ui_{0}".format(py_file) -def compileUiFiles(): +def __compileOneUi(ui_path, mapFunc=None): + """ + Function to compile a single form file to Python code. + + @param ui_path path of the Qt form file + @type str + @param mapFunc function to change directory and/or name of the resulting Python file + (defaults to None) + @type func (optional) """ - Compile the .ui files to Python sources. + from PyQt6.uic import compileUi + + py_dir, py_file = os.path.split(ui_path[:-3] + ".py") + + # Allow the caller to change the name of the .py file or generate + # it in a different directory. + if mapFunc is not None: + py_dir, py_file = mapFunc(py_dir, py_file) + + # Make sure the destination directory exists. + os.makedirs(py_dir, exist_ok=True) + + py_path = os.path.join(py_dir, py_file) + + with open(py_path, "w", encoding="utf-8") as py_file: + compileUi(ui_path, py_file, execute=False, indent=4) + + +def compileUiDir(root, recurse=False, mapFunc=None, workers=1): """ - from PyQt6.uic import compileUiDir + Function to compile all Qt form files of a directory or directory tree + to Python code. - compileUiDir(eric7SourceDir, True, __pyName) + @param root directory to scan for Qt form files (i.e. files ending with '.ui' + @type str + @param recurse flag indicating to recurse into sub-directories (defaults to False) + @type bool (optional) + @param mapFunc function to change directory and/or name of the resulting Python file + (defaults to None) + @type func (optional) + @param workers number of worker processes to be used to compile (defaults to 1) + @type int (optional) + """ + if recurse: + ui_files = [] + for rootDir, _, files in os.walk(root): + ui_files.extend( + os.path.join(rootDir, ui) for ui in files if ui.endswith(".ui") + ) + else: + ui_files = [ + os.path.join(root, ui) + for ui in os.listdir(root) + if os.path.isfile(os.path.join(root, ui) and ui.endswith(".ui")) + ] + + ProcessPoolExecutor = None + if workers != 1: + try: + from concurrent.futures import ProcessPoolExecutor # __IGNORE_WARNING__ + except NotImplementedError: + workers = 1 + + if workers != 1 and ProcessPoolExecutor is not None: + # If workers == 0, let ProcessPoolExecutor determine worker count. + workers = workers or None + with ProcessPoolExecutor(max_workers=workers) as executor: + executor.map( + partial(__compileOneUi, mapFunc=mapFunc), + ui_files, + ) + else: + for ui_file in ui_files: + __compileOneUi(ui_file, mapFunc=mapFunc) def prepareInfoFile(fileName): @@ -2274,7 +2343,7 @@ for file in [f for f in files if fnmatch.fnmatch(f, "Ui_*.py")]: os.remove(os.path.join(root, file)) # step 2: compile the forms - compileUiFiles() + compileUiDir(eric7SourceDir, recurse=True, mapFunc=__pyName, workers=0) print(" Done") if doCompile:
--- a/src/eric7/APIs/Python3/eric7.api Sat Apr 15 18:22:09 2023 +0200 +++ b/src/eric7/APIs/Python3/eric7.api Mon Apr 24 17:51:11 2023 +0200 @@ -12545,7 +12545,7 @@ eric7.WebBrowser.SpellCheck.ManageDictionariesDialog.ManageDictionariesDialog.on_dictionariesList_itemSelectionChanged?4() eric7.WebBrowser.SpellCheck.ManageDictionariesDialog.ManageDictionariesDialog.on_dictionariesUrlEditButton_toggled?4(checked) eric7.WebBrowser.SpellCheck.ManageDictionariesDialog.ManageDictionariesDialog.on_locationComboBox_currentTextChanged?4(txt) -eric7.WebBrowser.SpellCheck.ManageDictionariesDialog.ManageDictionariesDialog?1(writeableDirectories, parent=None) +eric7.WebBrowser.SpellCheck.ManageDictionariesDialog.ManageDictionariesDialog?1(writeableDirectories, enforceUnencryptedDownloads=False, parent=None, ) eric7.WebBrowser.StatusBar.ImagesIcon.ImagesIcon.preferencesChanged?4() eric7.WebBrowser.StatusBar.ImagesIcon.ImagesIcon?1(window) eric7.WebBrowser.StatusBar.JavaScriptIcon.JavaScriptIcon.preferencesChanged?4()
--- a/src/eric7/Documentation/Source/eric7.WebBrowser.SpellCheck.ManageDictionariesDialog.html Sat Apr 15 18:22:09 2023 +0200 +++ b/src/eric7/Documentation/Source/eric7.WebBrowser.SpellCheck.ManageDictionariesDialog.html Mon Apr 24 17:51:11 2023 +0200 @@ -131,7 +131,7 @@ <a NAME="ManageDictionariesDialog.__init__" ID="ManageDictionariesDialog.__init__"></a> <h4>ManageDictionariesDialog (Constructor)</h4> -<b>ManageDictionariesDialog</b>(<i>writeableDirectories, parent=None</i>) +<b>ManageDictionariesDialog</b>(<i>writeableDirectories, enforceUnencryptedDownloads=False, parent=None, </i>) <p> Constructor @@ -142,9 +142,14 @@ <dd> list of writable directories </dd> -<dt><i>parent</i> (QWidget)</dt> +<dt><i>enforceUnencryptedDownloads</i> (bool (optional))</dt> <dd> -reference to the parent widget +flag indicating to perform unencrypted + downloads (defaults to False) +</dd> +<dt><i>parent</i> (QWidget (optional))</dt> +<dd> +reference to the parent widget (defaults to None) </dd> </dl> <a NAME="ManageDictionariesDialog.__checkInstalledDictionaries" ID="ManageDictionariesDialog.__checkInstalledDictionaries"></a>
--- a/src/eric7/PluginManager/PluginManager.py Sat Apr 15 18:22:09 2023 +0200 +++ b/src/eric7/PluginManager/PluginManager.py Mon Apr 24 17:51:11 2023 +0200 @@ -1280,6 +1280,8 @@ if url is None: url = Preferences.getUI("PluginRepositoryUrl7") + if Preferences.getPluginManager("ForceHttpPluginDownload"): + url = url.replace("https://", "http://") request = QNetworkRequest(QUrl(url)) request.setAttribute( QNetworkRequest.Attribute.CacheLoadControlAttribute,
--- a/src/eric7/PluginManager/PluginRepositoryDialog.py Sat Apr 15 18:22:09 2023 +0200 +++ b/src/eric7/PluginManager/PluginRepositoryDialog.py Mon Apr 24 17:51:11 2023 +0200 @@ -337,7 +337,11 @@ @rtype str """ if not newScheme: - newScheme = self.repositoryUrlEdit.text().split("//", 1)[0] + newScheme = ( + "http:" + if Preferences.getPluginManager("ForceHttpPluginDownload") + else self.repositoryUrlEdit.text().split("//", 1)[0] + ) return newScheme + "//" + url.split("//", 1)[1] @@ -418,6 +422,8 @@ Private slot to download a new list and display the contents. """ url = self.repositoryUrlEdit.text() + if Preferences.getPluginManager("ForceHttpPluginDownload"): + url = url.replace("https://", "http://") self.__pluginManager.downLoadRepositoryFile(url=url) def __downloadRepositoryFileDone(self, status, filename): @@ -469,7 +475,11 @@ self.__downloadInstallButton.setEnabled(False) self.__installButton.setEnabled(False) - newScheme = self.repositoryUrlEdit.text().split("//", 1)[0] + newScheme = ( + "http:" + if Preferences.getPluginManager("ForceHttpPluginDownload") + else self.repositoryUrlEdit.text().split("//", 1)[0] + ) for itm in self.repositoryList.selectedItems(): if itm not in [ self.__stableItem, @@ -606,6 +616,9 @@ self.__closeButton.setEnabled(False) self.__downloadCancelButton.setEnabled(True) + if Preferences.getPluginManager("ForceHttpPluginDownload"): + url = url.replace("https://", "http://") + self.statusLabel.setText(url) request = QNetworkRequest(QUrl(url))
--- a/src/eric7/Preferences/ConfigurationPages/PluginManagerPage.py Sat Apr 15 18:22:09 2023 +0200 +++ b/src/eric7/Preferences/ConfigurationPages/PluginManagerPage.py Mon Apr 24 17:51:11 2023 +0200 @@ -43,6 +43,9 @@ self.startupCleanupCheckBox.setChecked( Preferences.getPluginManager("StartupCleanup") ) + self.unencryptedCheckBox.setChecked( + Preferences.getPluginManager("ForceHttpPluginDownload") + ) period = Preferences.getPluginManager("UpdatesCheckInterval") if period == 0: @@ -83,6 +86,9 @@ Preferences.setPluginManager( "StartupCleanup", self.startupCleanupCheckBox.isChecked() ) + Preferences.setPluginManager( + "ForceHttpPluginDownload", self.unencryptedCheckBox.isChecked() + ) if self.noCheckRadioButton.isChecked(): period = 0
--- a/src/eric7/Preferences/ConfigurationPages/PluginManagerPage.ui Sat Apr 15 18:22:09 2023 +0200 +++ b/src/eric7/Preferences/ConfigurationPages/PluginManagerPage.ui Mon Apr 24 17:51:11 2023 +0200 @@ -7,7 +7,7 @@ <x>0</x> <y>0</y> <width>528</width> - <height>520</height> + <height>608</height> </rect> </property> <layout class="QVBoxLayout" name="verticalLayout_3"> @@ -125,6 +125,16 @@ </widget> </item> <item> + <widget class="QCheckBox" name="unencryptedCheckBox"> + <property name="toolTip"> + <string><p>Select to force the use of <b>http://</b> instead of <b>https://</b>.</p></string> + </property> + <property name="text"> + <string>Enforce unencrypted downloads</string> + </property> + </widget> + </item> + <item> <widget class="QLabel" name="TextLabel1_2_2_2_3"> <property name="text"> <string><font color="#FF0000"><b>Note:</b> The following settings are activated at the next startup of the application.</font></string> @@ -291,6 +301,7 @@ <tabstop>generationsSpinBox</tabstop> <tabstop>keepHiddenCheckBox</tabstop> <tabstop>startupCleanupCheckBox</tabstop> + <tabstop>unencryptedCheckBox</tabstop> <tabstop>activateExternalPluginsCheckBox</tabstop> <tabstop>noCheckRadioButton</tabstop> <tabstop>alwaysCheckRadioButton</tabstop> @@ -300,6 +311,7 @@ <tabstop>downloadedOnlyCheckBox</tabstop> <tabstop>repositoryUrlEdit</tabstop> <tabstop>repositoryUrlEditButton</tabstop> + <tabstop>autoInstallCheckBox</tabstop> </tabstops> <resources/> <connections/>
--- a/src/eric7/Preferences/ConfigurationPages/WebBrowserSpellCheckingPage.py Sat Apr 15 18:22:09 2023 +0200 +++ b/src/eric7/Preferences/ConfigurationPages/WebBrowserSpellCheckingPage.py Mon Apr 24 17:51:11 2023 +0200 @@ -40,6 +40,9 @@ Preferences.getWebBrowser("SpellCheckEnabled") ) self.on_spellCheckEnabledCheckBox_clicked() + self.unencryptedCheckBox.setChecked( + Preferences.getWebBrowser("ForceHttpDictionaryDownload") + ) if OSUtilities.isMacPlatform(): self.__dictionaryDirectories = { @@ -140,6 +143,9 @@ Preferences.setWebBrowser( "SpellCheckEnabled", self.spellCheckEnabledCheckBox.isChecked() ) + Preferences.setWebBrowser( + "ForceHttpDictionaryDownload", self.unencryptedCheckBox.isChecked() + ) Preferences.setWebBrowser("SpellCheckLanguages", languages) @pyqtSlot() @@ -179,7 +185,10 @@ ManageDictionariesDialog, ) - dlg = ManageDictionariesDialog(self.__writeableDirectories, self) + dlg = ManageDictionariesDialog( + self.__writeableDirectories, + enforceUnencryptedDownloads=self.unencryptedCheckBox.isChecked(), + parent=self) dlg.exec() self.__populateDictionariesList()
--- a/src/eric7/Preferences/ConfigurationPages/WebBrowserSpellCheckingPage.ui Sat Apr 15 18:22:09 2023 +0200 +++ b/src/eric7/Preferences/ConfigurationPages/WebBrowserSpellCheckingPage.ui Mon Apr 24 17:51:11 2023 +0200 @@ -7,7 +7,7 @@ <x>0</x> <y>0</y> <width>499</width> - <height>519</height> + <height>608</height> </rect> </property> <layout class="QVBoxLayout" name="verticalLayout_3"> @@ -102,6 +102,16 @@ </widget> </item> <item> + <widget class="QCheckBox" name="unencryptedCheckBox"> + <property name="toolTip"> + <string><p>Select to force the use of <b>http://</b> instead of <b>https://</b>.</p></string> + </property> + <property name="text"> + <string>Enforce unencrypted downloads</string> + </property> + </widget> + </item> + <item> <layout class="QHBoxLayout" name="horizontalLayout"> <item> <spacer name="horizontalSpacer"> @@ -160,6 +170,8 @@ <tabstop>spellCheckEnabledCheckBox</tabstop> <tabstop>spellCheckLanguagesList</tabstop> <tabstop>spellCheckDictionaryDirectoriesEdit</tabstop> + <tabstop>unencryptedCheckBox</tabstop> + <tabstop>manageDictionariesButton</tabstop> </tabstops> <resources/> <connections/>
--- a/src/eric7/Preferences/__init__.py Sat Apr 15 18:22:09 2023 +0200 +++ b/src/eric7/Preferences/__init__.py Mon Apr 24 17:51:11 2023 +0200 @@ -1098,6 +1098,7 @@ "https://eric-ide.python-projects.org/qwebengine_dictionaries/" "dictionaries.xml" ), + "ForceHttpDictionaryDownload": False, # Sync "SyncEnabled": False, "SyncBookmarks": True, @@ -1424,6 +1425,7 @@ "KeepHidden": False, "StartupCleanup": True, "AutoInstallDependencies": True, + "ForceHttpPluginDownload": False, } # defaults for the printer settings @@ -3117,6 +3119,7 @@ "PrintElementBackgrounds", "AllowRunningInsecureContent", "SpellCheckEnabled", + "ForceHttpDictionaryDownload", "ShowToolbars", "MenuBarVisible", "BookmarksToolBarVisible",
--- a/src/eric7/Project/CreateDialogCodeDialog.py Sat Apr 15 18:22:09 2023 +0200 +++ b/src/eric7/Project/CreateDialogCodeDialog.py Mon Apr 24 17:51:11 2023 +0200 @@ -35,10 +35,9 @@ pyqtSignatureRole = Qt.ItemDataRole.UserRole + 1 pythonSignatureRole = Qt.ItemDataRole.UserRole + 2 -rubySignatureRole = Qt.ItemDataRole.UserRole + 3 -returnTypeRole = Qt.ItemDataRole.UserRole + 4 -parameterTypesListRole = Qt.ItemDataRole.UserRole + 5 -parameterNamesListRole = Qt.ItemDataRole.UserRole + 6 +returnTypeRole = Qt.ItemDataRole.UserRole + 3 +parameterTypesListRole = Qt.ItemDataRole.UserRole + 4 +parameterNamesListRole = Qt.ItemDataRole.UserRole + 5 class CreateDialogCodeDialog(QDialog, Ui_CreateDialogCodeDialog): @@ -218,11 +217,20 @@ if started and finished: output = proc.readAllStandardError() outText = str(output, "utf-8", "replace") - if "@@eric_start@@" in outText and "@@eric_end@@" in outText: + if "@@eric_start@@" in outText: + # it is something we sent via UicLoadUi[56].py + outText = outText.split("@@eric_start@@")[1] + ok = True + elif "@@eric_error@@" in outText: # it is something we sent via UicLoadUi[56].py - outText = outText.split("@@eric_start@@")[1].split("@@eric_end@@")[0] - if proc.exitCode() == 0: - ok = True + outText = outText.split("@@eric_error@@")[1] + ok = False + else: + ok = False + if "@@eric_end@@" in outText: + # it is something we sent via UicLoadUi[56].py + outText = outText.split("@@eric_end@@")[0] + if ok: uicText = outText.strip() else: EricMessageBox.critical( @@ -395,20 +403,6 @@ def __generateCode(self): """ - Private slot to generate the code as requested by the user. - """ - if ( - self.filenameEdit.text().endswith(".rb") - or self.project.getProjectLanguage() == "Ruby" - ): - # Ruby code generation is not supported - pass - else: - # assume Python (our global default) - self.__generatePythonCode() - - def __generatePythonCode(self): - """ Private slot to generate Python code as requested by the user. """ if self.project.getProjectLanguage() != "Python3":
--- a/src/eric7/Project/ProjectFormsBrowser.py Sat Apr 15 18:22:09 2023 +0200 +++ b/src/eric7/Project/ProjectFormsBrowser.py Mon Apr 24 17:51:11 2023 +0200 @@ -930,9 +930,6 @@ self.project.getProjectData(dataKey="UICPARAMS")["RcSuffix"] ) ) - elif self.project.getProjectLanguage() == "Ruby": - self.compiledFile = ofn + ".rb" - args.append("-x") args.append(fn) self.compileProc.finished.connect(self.__compileUIDone) @@ -1116,8 +1113,6 @@ if self.project.getProjectLanguage() == "Python3": dirname, filename = os.path.split(os.path.splitext(ifn)[0]) ofn = os.path.join(dirname, "Ui_" + filename + ".py") - elif self.project.getProjectLanguage() == "Ruby": - ofn = os.path.splitext(ifn)[0] + ".rb" if ( not os.path.exists(ofn) or os.stat(ifn).st_mtime > os.stat(ofn).st_mtime
--- a/src/eric7/Project/ProjectResourcesBrowser.py Sat Apr 15 18:22:09 2023 +0200 +++ b/src/eric7/Project/ProjectResourcesBrowser.py Mon Apr 24 17:51:11 2023 +0200 @@ -47,7 +47,6 @@ showMenu = pyqtSignal(str, QMenu) RCFilenameFormatPython = "{0}_rc.py" - RCFilenameFormatRuby = "{0}_rc.rb" def __init__(self, project, projectBrowser, parent=None): """ @@ -775,10 +774,6 @@ self.compiledFile = os.path.join( dirname, self.RCFilenameFormatPython.format(filename) ) - elif self.project.getProjectLanguage() == "Ruby": - self.compiledFile = os.path.join( - dirname, self.RCFilenameFormatRuby.format(filename) - ) args.append(fn) self.compileProc.finished.connect(self.__compileQRCDone) @@ -964,11 +959,6 @@ ofn = os.path.join( dirname, self.RCFilenameFormatPython.format(filename) ) - elif self.project.getProjectLanguage() == "Ruby": - dirname, filename = os.path.split(os.path.splitext(ifn)[0]) - ofn = os.path.join( - dirname, self.RCFilenameFormatRuby.format(filename) - ) else: return if (
--- a/src/eric7/Project/ProjectTranslationsBrowser.py Sat Apr 15 18:22:09 2023 +0200 +++ b/src/eric7/Project/ProjectTranslationsBrowser.py Mon Apr 24 17:51:11 2023 +0200 @@ -1188,14 +1188,7 @@ self.hooks["generateSelectedWithObsolete"](li) return - # generate a minimal temporary project file suitable for pylupdate - self.__tmpProjects = [] - if self.project.getProjectLanguage() in ["Python", "Python3"]: - if self.project.getProjectType() not in ["PyQt6", "PyQt6C", "E7Plugin"]: - ok = self.__writeTempProjectFile(langs, [".py"]) - if not ok: - return - else: + if self.project.getProjectLanguage() not in ["Python", "Python3"]: return if self.project.getProjectType() in ["PyQt5", "PyQt5C"]: @@ -1297,6 +1290,12 @@ ).format(self.pylupdate), ) else: + # generate a minimal temporary project file suitable for pylupdate + self.__tmpProjects = [] + ok = self.__writeTempProjectFile(langs, [".py"]) + if not ok: + return + QGuiApplication.setOverrideCursor(QCursor(Qt.CursorShape.WaitCursor)) QGuiApplication.processEvents( QEventLoop.ProcessEventsFlag.ExcludeUserInputEvents
--- a/src/eric7/Project/UicLoadUi5.py Sat Apr 15 18:22:09 2023 +0200 +++ b/src/eric7/Project/UicLoadUi5.py Mon Apr 24 17:51:11 2023 +0200 @@ -15,7 +15,7 @@ def _printout(dataString): """ - Function to print the given string to sys.stdout with a guard string. + Function to print the given string as output to sys.stderr with a guard string. @param dataString string to be printed @type str @@ -23,6 +23,16 @@ print("@@eric_start@@{0}@@eric_end@@".format(dataString), file=sys.stderr) +def _printerr(dataString): + """ + Function to print the given string as error to sys.stdoerr with a guard string. + + @param dataString string to be printed + @type str + """ + print("@@eric_error@@{0}@@eric_end@@".format(dataString), file=sys.stderr) + + try: from PyQt5 import uic from PyQt5.QtCore import QByteArray, QMetaMethod @@ -31,7 +41,7 @@ _printout("PyQt5 could not be found.") sys.exit(1) except ImportError as err: - _printout("PyQt5 could not be imported. Issue: {0}".format(str(err))) + _printerr("PyQt5 could not be imported. Issue: {0}".format(str(err))) sys.exit(1) with contextlib.suppress(ImportError): @@ -55,7 +65,7 @@ _printout(dlg.objectName()) sys.exit(0) except (AttributeError, ImportError, xml.etree.ElementTree.ParseError) as err: - _printout(str(err)) + _printerr(str(err)) sys.exit(1) @@ -76,7 +86,7 @@ _printout(dlg.metaObject().className()) sys.exit(0) except (AttributeError, ImportError, xml.etree.ElementTree.ParseError) as err: - _printout(str(err)) + _printerr(str(err)) sys.exit(1) @@ -204,13 +214,13 @@ _printout(json.dumps(objectsList)) sys.exit(0) except (AttributeError, ImportError, xml.etree.ElementTree.ParseError) as err: - _printout(str(err)) + _printerr(str(err)) sys.exit(1) if __name__ == "__main__": if len(sys.argv) != 4: - _printout("Wrong number of arguments.") + _printerr("Wrong number of arguments.") sys.exit(1) if sys.argv[1] == "object_name": @@ -220,7 +230,7 @@ elif sys.argv[1] == "signatures": signatures(sys.argv[2], sys.argv[3]) else: - _printout("Unknow operation given.") + _printerr("Unknow operation given.") sys.exit(1) #
--- a/src/eric7/Project/UicLoadUi6.py Sat Apr 15 18:22:09 2023 +0200 +++ b/src/eric7/Project/UicLoadUi6.py Mon Apr 24 17:51:11 2023 +0200 @@ -16,7 +16,7 @@ def _printout(dataString): """ - Function to print the given string to sys.stdout with a guard string. + Function to print the given string as output to sys.stderr with a guard string. @param dataString string to be printed @type str @@ -24,6 +24,16 @@ print("@@eric_start@@{0}@@eric_end@@".format(dataString), file=sys.stderr) +def _printerr(dataString): + """ + Function to print the given string as error to sys.stdoerr with a guard string. + + @param dataString string to be printed + @type str + """ + print("@@eric_error@@{0}@@eric_end@@".format(dataString), file=sys.stderr) + + try: from PyQt6 import uic from PyQt6.QtCore import QByteArray, QMetaMethod @@ -33,7 +43,7 @@ _printout("PyQt6 could not be found.") sys.exit(1) except ImportError as err: - _printout("PyQt6 could not be imported. Issue: {0}".format(str(err))) + _printerr("PyQt6 could not be imported. Issue: {0}".format(str(err))) sys.exit(1) with contextlib.suppress(ImportError): @@ -60,7 +70,7 @@ _printout(dlg.objectName()) sys.exit(0) except (AttributeError, ImportError, xml.etree.ElementTree.ParseError) as err: - _printout(str(err)) + _printerr(str(err)) sys.exit(1) @@ -81,7 +91,7 @@ _printout(dlg.metaObject().className()) sys.exit(0) except (AttributeError, ImportError, xml.etree.ElementTree.ParseError) as err: - _printout(str(err)) + _printerr(str(err)) sys.exit(1) @@ -209,13 +219,13 @@ _printout(json.dumps(objectsList)) sys.exit(0) except (AttributeError, ImportError, xml.etree.ElementTree.ParseError) as err: - _printout(str(err)) + _printerr(str(err)) sys.exit(1) if __name__ == "__main__": if len(sys.argv) != 4: - _printout("Wrong number of arguments.") + _printerr("Wrong number of arguments.") sys.exit(1) if sys.argv[1] == "object_name": @@ -225,7 +235,7 @@ elif sys.argv[1] == "signatures": signatures(sys.argv[2], sys.argv[3]) else: - _printout("Unknow operation given.") + _printerr("Unknow operation given.") sys.exit(1) #
--- a/src/eric7/QScintilla/SearchReplaceWidget.py Sat Apr 15 18:22:09 2023 +0200 +++ b/src/eric7/QScintilla/SearchReplaceWidget.py Mon Apr 24 17:51:11 2023 +0200 @@ -1464,9 +1464,7 @@ self.__searchReplaceWidget.setMaximumHeight( self.__searchReplaceWidget.sizeHint().height() ) - self.setMaximumHeight(self.__searchReplaceWidget.sizeHint().height()) - self.adjustSize() self.__enableScrollerButtons()
--- a/src/eric7/WebBrowser/SpellCheck/ManageDictionariesDialog.py Sat Apr 15 18:22:09 2023 +0200 +++ b/src/eric7/WebBrowser/SpellCheck/ManageDictionariesDialog.py Mon Apr 24 17:51:11 2023 +0200 @@ -36,18 +36,28 @@ DocumentationDirRole = Qt.ItemDataRole.UserRole + 2 LocalesRole = Qt.ItemDataRole.UserRole + 3 - def __init__(self, writeableDirectories, parent=None): + def __init__( + self, + writeableDirectories, + enforceUnencryptedDownloads=False, + parent=None, + ): """ Constructor @param writeableDirectories list of writable directories @type list of str - @param parent reference to the parent widget - @type QWidget + @param enforceUnencryptedDownloads flag indicating to perform unencrypted + downloads (defaults to False) + @type bool (optional) + @param parent reference to the parent widget (defaults to None) + @type QWidget (optional) """ super().__init__(parent) self.setupUi(self) + self.__enforceUnencryptedDownloads = enforceUnencryptedDownloads + self.__refreshButton = self.buttonBox.addButton( self.tr("Refresh"), QDialogButtonBox.ButtonRole.ActionRole ) @@ -176,6 +186,11 @@ self.downloadProgress.setValue(0) url = self.dictionariesUrlEdit.text() + if ( + self.__enforceUnencryptedDownloads + or Preferences.getWebBrowser("ForceHttpDictionaryDownload") + ): + url = url.replace("https://", "http://") if self.__online: self.__refreshButton.setEnabled(False) @@ -371,6 +386,11 @@ if self.__online: if self.__dictionariesToDownload: url = self.__dictionariesToDownload.pop(0) + if ( + self.__enforceUnencryptedDownloads + or Preferences.getWebBrowser("ForceHttpDictionaryDownload") + ): + url = url.replace("https://", "http://") self.statusLabel.setText(url) self.__downloadCancelled = False
--- a/src/eric7/i18n/eric7_cs.ts Sat Apr 15 18:22:09 2023 +0200 +++ b/src/eric7/i18n/eric7_cs.ts Mon Apr 24 17:51:11 2023 +0200 @@ -49392,71 +49392,71 @@ <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="202" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="204" /> <source>Error populating list of dictionaries</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="231" /> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="203" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="233" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="205" /> <source><p>Could not download the dictionaries list from {0}.</p><p>Error: {1}</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="396" /> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="206" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="400" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="208" /> <source>No connection to Internet.</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="230" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="232" /> <source>Error downloading dictionaries list</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="249" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="251" /> <source>Dictionaries URL Changed</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="250" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="252" /> <source>The URL of the spell check dictionaries has changed. Select the "Refresh" button to get the new dictionaries list.</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="261" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="263" /> <source>Error installing dictionaries</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="262" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="264" /> <source><p>None of the dictionary locations is writable by you. Please download required dictionaries manually and install them as administrator.</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="311" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="313" /> <source>{0} ({1})</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="416" /> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="392" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="420" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="396" /> <source>Error downloading dictionary file</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="417" /> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="393" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="421" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="397" /> <source><p>Could not download the requested dictionary file from {0}.</p><p>Error: {1}</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="431" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="435" /> <source>Error downloading dictionary</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="432" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="436" /> <source><p>The downloaded dictionary archive is invalid. Skipping it.</p></source> <translation type="unfinished" /> </message> @@ -57925,12 +57925,12 @@ <translation><p>Download plugin adresář <b>{0}</b> se nepodařilo vytvořit. Prosím, upravte nastavení přes konfigurační dialog.</p><p>Důvod: {1}</p></translation> </message> <message> - <location filename="../PluginManager/PluginManager.py" line="1305" /> + <location filename="../PluginManager/PluginManager.py" line="1307" /> <source>Error downloading file</source> <translation type="unfinished">Chyba při stahování souboru</translation> </message> <message> - <location filename="../PluginManager/PluginManager.py" line="1306" /> + <location filename="../PluginManager/PluginManager.py" line="1308" /> <source><p>Could not download the requested file from {0}.</p><p>Error: {1}</p></source> <translation type="unfinished"><p>Nelze stáhnout požadovaný soubor z {0}.</p><p>Chyba: {1}</p></translation> </message> @@ -57989,6 +57989,16 @@ </message> <message> <location filename="../Preferences/ConfigurationPages/PluginManagerPage.ui" line="0" /> + <source><p>Select to force the use of <b>http://</b> instead of <b>https://</b>.</p></source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/PluginManagerPage.ui" line="0" /> + <source>Enforce unencrypted downloads</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/PluginManagerPage.ui" line="0" /> <source><font color="#FF0000"><b>Note:</b> The following settings are activated at the next startup of the application.</font></source> <translation type="unfinished" /> </message> @@ -58326,76 +58336,76 @@ <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="657" /> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="625" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="660" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="628" /> <source>Error downloading file</source> <translation>Chyba při stahování souboru</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="658" /> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="626" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="661" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="629" /> <source><p>Could not download the requested file from {0}.</p><p>Error: {1}</p></source> <translation><p>Nelze stáhnout požadovaný soubor z {0}.</p><p>Chyba: {1}</p></translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="629" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="632" /> <source>No connection to Internet.</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="739" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="742" /> <source>Stable</source> <translation>Stabilní</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="746" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="749" /> <source>Unstable</source> <translation>Nestabilní</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="753" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="756" /> <source>Obsolete</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="760" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="763" /> <source>Unknown</source> <translation>Neznámý</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="783" /> - <source>up-to-date</source> - <translation type="unfinished" /> - </message> - <message> <location filename="../PluginManager/PluginRepositoryDialog.py" line="786" /> + <source>up-to-date</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="789" /> <source>new download available</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="790" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="793" /> <source>update installable</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="794" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="797" /> <source>updated download available</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="798" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="801" /> <source>error determining status</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1168" /> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1140" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1171" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1143" /> <source>Cleanup of Plugin Downloads</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1172" /> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1143" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1175" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1146" /> <source><p>The plugin download <b>{0}</b> could not be deleted.</p><p>Reason: {1}</p></source> <translation type="unfinished" /> </message> @@ -58403,17 +58413,17 @@ <context> <name>PluginRepositoryWindow</name> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1045" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1048" /> <source>Process Generation Error</source> <translation>Chyba v procesu generování</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1046" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1049" /> <source><p>Could not start the process.<br>Ensure that it is available as <b>{0}</b>.</p></source> <translation><p>Nemohu spustit zveřejnění.<br>Ověřte jestli je dostupný jako <b>{0}</b>.</p></translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1050" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1053" /> <source>OK</source> <translation>OK</translation> </message> @@ -58760,18 +58770,18 @@ <context> <name>Preferences</name> <message> - <location filename="../Preferences/__init__.py" line="1813" /> + <location filename="../Preferences/__init__.py" line="1815" /> <source>Export Preferences</source> <translation>Předvolby exportu</translation> </message> <message> + <location filename="../Preferences/__init__.py" line="1844" /> + <location filename="../Preferences/__init__.py" line="1817" /> + <source>Properties File (*.ini);;All Files (*)</source> + <translation type="unfinished" /> + </message> + <message> <location filename="../Preferences/__init__.py" line="1842" /> - <location filename="../Preferences/__init__.py" line="1815" /> - <source>Properties File (*.ini);;All Files (*)</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../Preferences/__init__.py" line="1840" /> <source>Import Preferences</source> <translation>Předvolby importu</translation> </message> @@ -97429,6 +97439,16 @@ </message> <message> <location filename="../Preferences/ConfigurationPages/WebBrowserSpellCheckingPage.ui" line="0" /> + <source><p>Select to force the use of <b>http://</b> instead of <b>https://</b>.</p></source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/WebBrowserSpellCheckingPage.ui" line="0" /> + <source>Enforce unencrypted downloads</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/WebBrowserSpellCheckingPage.ui" line="0" /> <source>Press to open a dialog to manage spell checking dictionaries</source> <translation type="unfinished" /> </message>
--- a/src/eric7/i18n/eric7_de.ts Sat Apr 15 18:22:09 2023 +0200 +++ b/src/eric7/i18n/eric7_de.ts Mon Apr 24 17:51:11 2023 +0200 @@ -49270,71 +49270,71 @@ <translation>Interneterreichbarkeitsstatus: nicht erreichbar</translation> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="202" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="204" /> <source>Error populating list of dictionaries</source> <translation>Fehler beim Laden der Wörterbuchliste</translation> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="231" /> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="203" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="233" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="205" /> <source><p>Could not download the dictionaries list from {0}.</p><p>Error: {1}</p></source> <translation><p>Die Wörterbuchliste konnte nicht von {0} heruntergeladen werden.</p><p>Fehler: {1}</p></translation> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="396" /> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="206" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="400" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="208" /> <source>No connection to Internet.</source> <translation>Keine Verbindung zum Internet.</translation> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="230" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="232" /> <source>Error downloading dictionaries list</source> <translation>Fehler beim Herunterladen der Wörterbuchliste</translation> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="249" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="251" /> <source>Dictionaries URL Changed</source> <translation>URL der Wörterbücher geändert</translation> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="250" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="252" /> <source>The URL of the spell check dictionaries has changed. Select the "Refresh" button to get the new dictionaries list.</source> <translation>Die URL für die Rechtschreibwörterbücher hat sich geändert. Wählen Sie den „Aktualisieren“-Knopf, um die neue Liste zu erhalten.</translation> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="261" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="263" /> <source>Error installing dictionaries</source> <translation>Fehler beid er Installation von Wörterbücher</translation> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="262" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="264" /> <source><p>None of the dictionary locations is writable by you. Please download required dictionaries manually and install them as administrator.</p></source> <translation><p>Keines der Wörterbuchverzeichnisse ist durch sie veränderbar. Bitte laden sie die benötigten Wörterbücher manuell herunter und installieren sie sie als Administrator.</p></translation> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="311" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="313" /> <source>{0} ({1})</source> <translation>{0} ({1})</translation> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="416" /> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="392" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="420" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="396" /> <source>Error downloading dictionary file</source> <translation>Fehler beim Herunterladen der Wörterbuchdatei</translation> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="417" /> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="393" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="421" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="397" /> <source><p>Could not download the requested dictionary file from {0}.</p><p>Error: {1}</p></source> <translation><p>Die angefragte Wörterbuchdatei konnte nicht von {0} heruntergeladen werden.</p><p>Fehler: {1}</p></translation> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="431" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="435" /> <source>Error downloading dictionary</source> <translation>Fehler beim Herunterladen der Wörterbuchdatei</translation> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="432" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="436" /> <source><p>The downloaded dictionary archive is invalid. Skipping it.</p></source> <translation><p>Das heruntergeladene Wörterbucharchiv ist fehlerhaft. Überspringe es.</p></translation> </message> @@ -57807,12 +57807,12 @@ <translation><p>Das Downloadverzeichnis für Plugins <b>{0}</b> konnte nicht erzeugt werden. Bitte über den Konfigurationsdialog einstellen.</p><p>Ursache: {1}</p></translation> </message> <message> - <location filename="../PluginManager/PluginManager.py" line="1305" /> + <location filename="../PluginManager/PluginManager.py" line="1307" /> <source>Error downloading file</source> <translation>Fehler beim Herunterladen der Datei</translation> </message> <message> - <location filename="../PluginManager/PluginManager.py" line="1306" /> + <location filename="../PluginManager/PluginManager.py" line="1308" /> <source><p>Could not download the requested file from {0}.</p><p>Error: {1}</p></source> <translation><p>Die angefragte Datei konnte nicht von {0} gedownloaded werden.</p><p>Fehler: {1}</p></translation> </message> @@ -57871,6 +57871,16 @@ </message> <message> <location filename="../Preferences/ConfigurationPages/PluginManagerPage.ui" line="0" /> + <source><p>Select to force the use of <b>http://</b> instead of <b>https://</b>.</p></source> + <translation><p>Auswählen, um die Verwendung von <b>http://</b> anstelle <b>https://</b> zu erzwingen.</p></translation> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/PluginManagerPage.ui" line="0" /> + <source>Enforce unencrypted downloads</source> + <translation>Unverschlüsselte Downloads erzwingen</translation> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/PluginManagerPage.ui" line="0" /> <source><font color="#FF0000"><b>Note:</b> The following settings are activated at the next startup of the application.</font></source> <translation><font color="#FF0000"><b>Hinweis:</b> Alle folgenden Einstellungen werden erst beim nächsten Programmstart aktiv.</font></translation> </message> @@ -58208,76 +58218,76 @@ <translation>Entfernte Aktualisierungen: <b>{0}</b></translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="657" /> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="625" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="660" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="628" /> <source>Error downloading file</source> <translation>Fehler beim Herunterladen der Datei</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="658" /> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="626" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="661" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="629" /> <source><p>Could not download the requested file from {0}.</p><p>Error: {1}</p></source> <translation><p>Die angefragte Datei konnte nicht von {0} gedownloaded werden.</p><p>Fehler: {1}</p></translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="629" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="632" /> <source>No connection to Internet.</source> <translation>Keine Verbindung zum Internet.</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="739" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="742" /> <source>Stable</source> <translation>Stabil</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="746" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="749" /> <source>Unstable</source> <translation>Instabil</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="753" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="756" /> <source>Obsolete</source> <translation>Überholt</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="760" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="763" /> <source>Unknown</source> <translation>Unbekannt</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="783" /> - <source>up-to-date</source> - <translation>aktuell</translation> - </message> - <message> <location filename="../PluginManager/PluginRepositoryDialog.py" line="786" /> + <source>up-to-date</source> + <translation>aktuell</translation> + </message> + <message> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="789" /> <source>new download available</source> <translation>neuer Download verfügbar</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="790" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="793" /> <source>update installable</source> <translation>Aktualisierung installierbar</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="794" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="797" /> <source>updated download available</source> <translation>aktualisiertes Download verfügbar</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="798" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="801" /> <source>error determining status</source> <translation>Fehler bei der Ermittlung des Status</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1168" /> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1140" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1171" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1143" /> <source>Cleanup of Plugin Downloads</source> <translation>Wartung der Plugin Downloads</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1172" /> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1143" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1175" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1146" /> <source><p>The plugin download <b>{0}</b> could not be deleted.</p><p>Reason: {1}</p></source> <translation><p>Die Plugindatei <b>{0}</b> konnte nicht gelöscht werden.</p><p>Ursache: {1}</p></translation> </message> @@ -58285,17 +58295,17 @@ <context> <name>PluginRepositoryWindow</name> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1045" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1048" /> <source>Process Generation Error</source> <translation>Fehler beim Prozessstart</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1046" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1049" /> <source><p>Could not start the process.<br>Ensure that it is available as <b>{0}</b>.</p></source> <translation><p>Der Prozess konnte nicht gestartet werden.<br>Stellen Sie sicher, dass er als <b>{0}</b> verfügbar ist.</p></translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1050" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1053" /> <source>OK</source> <translation>OK</translation> </message> @@ -58642,18 +58652,18 @@ <context> <name>Preferences</name> <message> - <location filename="../Preferences/__init__.py" line="1813" /> + <location filename="../Preferences/__init__.py" line="1815" /> <source>Export Preferences</source> <translation>Einstellungen exportieren</translation> </message> <message> + <location filename="../Preferences/__init__.py" line="1844" /> + <location filename="../Preferences/__init__.py" line="1817" /> + <source>Properties File (*.ini);;All Files (*)</source> + <translation>Properties-Dateien (*.ini);;Alle Dateien (*)</translation> + </message> + <message> <location filename="../Preferences/__init__.py" line="1842" /> - <location filename="../Preferences/__init__.py" line="1815" /> - <source>Properties File (*.ini);;All Files (*)</source> - <translation>Properties-Dateien (*.ini);;Alle Dateien (*)</translation> - </message> - <message> - <location filename="../Preferences/__init__.py" line="1840" /> <source>Import Preferences</source> <translation>Einstellungen importieren</translation> </message> @@ -97227,6 +97237,16 @@ </message> <message> <location filename="../Preferences/ConfigurationPages/WebBrowserSpellCheckingPage.ui" line="0" /> + <source><p>Select to force the use of <b>http://</b> instead of <b>https://</b>.</p></source> + <translation><p>Auswählen, um die Verwendung von <b>http://</b> anstelle <b>https://</b> zu erzwingen.</p></translation> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/WebBrowserSpellCheckingPage.ui" line="0" /> + <source>Enforce unencrypted downloads</source> + <translation>Unverschlüsselte Downloads erzwingen</translation> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/WebBrowserSpellCheckingPage.ui" line="0" /> <source>Press to open a dialog to manage spell checking dictionaries</source> <translation>Drücken, um einen Dialog zur Verwaltung der Rechtschreibwörterbücher zu öffnen</translation> </message>
--- a/src/eric7/i18n/eric7_empty.ts Sat Apr 15 18:22:09 2023 +0200 +++ b/src/eric7/i18n/eric7_empty.ts Mon Apr 24 17:51:11 2023 +0200 @@ -49034,71 +49034,71 @@ <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="202" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="204" /> <source>Error populating list of dictionaries</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="231" /> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="203" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="233" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="205" /> <source><p>Could not download the dictionaries list from {0}.</p><p>Error: {1}</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="396" /> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="206" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="400" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="208" /> <source>No connection to Internet.</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="230" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="232" /> <source>Error downloading dictionaries list</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="249" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="251" /> <source>Dictionaries URL Changed</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="250" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="252" /> <source>The URL of the spell check dictionaries has changed. Select the "Refresh" button to get the new dictionaries list.</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="261" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="263" /> <source>Error installing dictionaries</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="262" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="264" /> <source><p>None of the dictionary locations is writable by you. Please download required dictionaries manually and install them as administrator.</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="311" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="313" /> <source>{0} ({1})</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="416" /> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="392" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="420" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="396" /> <source>Error downloading dictionary file</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="417" /> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="393" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="421" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="397" /> <source><p>Could not download the requested dictionary file from {0}.</p><p>Error: {1}</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="431" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="435" /> <source>Error downloading dictionary</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="432" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="436" /> <source><p>The downloaded dictionary archive is invalid. Skipping it.</p></source> <translation type="unfinished" /> </message> @@ -57543,12 +57543,12 @@ <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginManager.py" line="1305" /> + <location filename="../PluginManager/PluginManager.py" line="1307" /> <source>Error downloading file</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginManager.py" line="1306" /> + <location filename="../PluginManager/PluginManager.py" line="1308" /> <source><p>Could not download the requested file from {0}.</p><p>Error: {1}</p></source> <translation type="unfinished" /> </message> @@ -57607,6 +57607,16 @@ </message> <message> <location filename="../Preferences/ConfigurationPages/PluginManagerPage.ui" line="0" /> + <source><p>Select to force the use of <b>http://</b> instead of <b>https://</b>.</p></source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/PluginManagerPage.ui" line="0" /> + <source>Enforce unencrypted downloads</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/PluginManagerPage.ui" line="0" /> <source><font color="#FF0000"><b>Note:</b> The following settings are activated at the next startup of the application.</font></source> <translation type="unfinished" /> </message> @@ -57943,76 +57953,76 @@ <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="657" /> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="625" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="660" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="628" /> <source>Error downloading file</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="658" /> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="626" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="661" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="629" /> <source><p>Could not download the requested file from {0}.</p><p>Error: {1}</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="629" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="632" /> <source>No connection to Internet.</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="739" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="742" /> <source>Stable</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="746" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="749" /> <source>Unstable</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="753" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="756" /> <source>Obsolete</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="760" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="763" /> <source>Unknown</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="783" /> - <source>up-to-date</source> - <translation type="unfinished" /> - </message> - <message> <location filename="../PluginManager/PluginRepositoryDialog.py" line="786" /> + <source>up-to-date</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="789" /> <source>new download available</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="790" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="793" /> <source>update installable</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="794" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="797" /> <source>updated download available</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="798" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="801" /> <source>error determining status</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1168" /> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1140" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1171" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1143" /> <source>Cleanup of Plugin Downloads</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1172" /> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1143" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1175" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1146" /> <source><p>The plugin download <b>{0}</b> could not be deleted.</p><p>Reason: {1}</p></source> <translation type="unfinished" /> </message> @@ -58020,17 +58030,17 @@ <context> <name>PluginRepositoryWindow</name> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1045" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1048" /> <source>Process Generation Error</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1046" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1049" /> <source><p>Could not start the process.<br>Ensure that it is available as <b>{0}</b>.</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1050" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1053" /> <source>OK</source> <translation type="unfinished" /> </message> @@ -58377,18 +58387,18 @@ <context> <name>Preferences</name> <message> - <location filename="../Preferences/__init__.py" line="1813" /> + <location filename="../Preferences/__init__.py" line="1815" /> <source>Export Preferences</source> <translation type="unfinished" /> </message> <message> + <location filename="../Preferences/__init__.py" line="1844" /> + <location filename="../Preferences/__init__.py" line="1817" /> + <source>Properties File (*.ini);;All Files (*)</source> + <translation type="unfinished" /> + </message> + <message> <location filename="../Preferences/__init__.py" line="1842" /> - <location filename="../Preferences/__init__.py" line="1815" /> - <source>Properties File (*.ini);;All Files (*)</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../Preferences/__init__.py" line="1840" /> <source>Import Preferences</source> <translation type="unfinished" /> </message> @@ -96564,6 +96574,16 @@ </message> <message> <location filename="../Preferences/ConfigurationPages/WebBrowserSpellCheckingPage.ui" line="0" /> + <source><p>Select to force the use of <b>http://</b> instead of <b>https://</b>.</p></source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/WebBrowserSpellCheckingPage.ui" line="0" /> + <source>Enforce unencrypted downloads</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/WebBrowserSpellCheckingPage.ui" line="0" /> <source>Press to open a dialog to manage spell checking dictionaries</source> <translation type="unfinished" /> </message>
--- a/src/eric7/i18n/eric7_en.ts Sat Apr 15 18:22:09 2023 +0200 +++ b/src/eric7/i18n/eric7_en.ts Mon Apr 24 17:51:11 2023 +0200 @@ -49076,71 +49076,71 @@ <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="202" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="204" /> <source>Error populating list of dictionaries</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="231" /> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="203" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="233" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="205" /> <source><p>Could not download the dictionaries list from {0}.</p><p>Error: {1}</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="396" /> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="206" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="400" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="208" /> <source>No connection to Internet.</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="230" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="232" /> <source>Error downloading dictionaries list</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="249" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="251" /> <source>Dictionaries URL Changed</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="250" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="252" /> <source>The URL of the spell check dictionaries has changed. Select the "Refresh" button to get the new dictionaries list.</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="261" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="263" /> <source>Error installing dictionaries</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="262" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="264" /> <source><p>None of the dictionary locations is writable by you. Please download required dictionaries manually and install them as administrator.</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="311" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="313" /> <source>{0} ({1})</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="416" /> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="392" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="420" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="396" /> <source>Error downloading dictionary file</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="417" /> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="393" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="421" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="397" /> <source><p>Could not download the requested dictionary file from {0}.</p><p>Error: {1}</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="431" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="435" /> <source>Error downloading dictionary</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="432" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="436" /> <source><p>The downloaded dictionary archive is invalid. Skipping it.</p></source> <translation type="unfinished" /> </message> @@ -57592,12 +57592,12 @@ <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginManager.py" line="1305" /> + <location filename="../PluginManager/PluginManager.py" line="1307" /> <source>Error downloading file</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginManager.py" line="1306" /> + <location filename="../PluginManager/PluginManager.py" line="1308" /> <source><p>Could not download the requested file from {0}.</p><p>Error: {1}</p></source> <translation type="unfinished" /> </message> @@ -57656,6 +57656,16 @@ </message> <message> <location filename="../Preferences/ConfigurationPages/PluginManagerPage.ui" line="0" /> + <source><p>Select to force the use of <b>http://</b> instead of <b>https://</b>.</p></source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/PluginManagerPage.ui" line="0" /> + <source>Enforce unencrypted downloads</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/PluginManagerPage.ui" line="0" /> <source><font color="#FF0000"><b>Note:</b> The following settings are activated at the next startup of the application.</font></source> <translation type="unfinished" /> </message> @@ -57992,76 +58002,76 @@ <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="657" /> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="625" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="660" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="628" /> <source>Error downloading file</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="658" /> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="626" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="661" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="629" /> <source><p>Could not download the requested file from {0}.</p><p>Error: {1}</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="629" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="632" /> <source>No connection to Internet.</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="739" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="742" /> <source>Stable</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="746" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="749" /> <source>Unstable</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="753" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="756" /> <source>Obsolete</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="760" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="763" /> <source>Unknown</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="783" /> - <source>up-to-date</source> - <translation type="unfinished" /> - </message> - <message> <location filename="../PluginManager/PluginRepositoryDialog.py" line="786" /> + <source>up-to-date</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="789" /> <source>new download available</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="790" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="793" /> <source>update installable</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="794" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="797" /> <source>updated download available</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="798" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="801" /> <source>error determining status</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1168" /> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1140" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1171" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1143" /> <source>Cleanup of Plugin Downloads</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1172" /> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1143" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1175" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1146" /> <source><p>The plugin download <b>{0}</b> could not be deleted.</p><p>Reason: {1}</p></source> <translation type="unfinished" /> </message> @@ -58069,17 +58079,17 @@ <context> <name>PluginRepositoryWindow</name> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1045" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1048" /> <source>Process Generation Error</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1046" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1049" /> <source><p>Could not start the process.<br>Ensure that it is available as <b>{0}</b>.</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1050" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1053" /> <source>OK</source> <translation type="unfinished" /> </message> @@ -58426,18 +58436,18 @@ <context> <name>Preferences</name> <message> - <location filename="../Preferences/__init__.py" line="1813" /> + <location filename="../Preferences/__init__.py" line="1815" /> <source>Export Preferences</source> <translation type="unfinished" /> </message> <message> + <location filename="../Preferences/__init__.py" line="1844" /> + <location filename="../Preferences/__init__.py" line="1817" /> + <source>Properties File (*.ini);;All Files (*)</source> + <translation type="unfinished" /> + </message> + <message> <location filename="../Preferences/__init__.py" line="1842" /> - <location filename="../Preferences/__init__.py" line="1815" /> - <source>Properties File (*.ini);;All Files (*)</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../Preferences/__init__.py" line="1840" /> <source>Import Preferences</source> <translation type="unfinished" /> </message> @@ -96620,6 +96630,16 @@ </message> <message> <location filename="../Preferences/ConfigurationPages/WebBrowserSpellCheckingPage.ui" line="0" /> + <source><p>Select to force the use of <b>http://</b> instead of <b>https://</b>.</p></source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/WebBrowserSpellCheckingPage.ui" line="0" /> + <source>Enforce unencrypted downloads</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/WebBrowserSpellCheckingPage.ui" line="0" /> <source>Press to open a dialog to manage spell checking dictionaries</source> <translation type="unfinished" /> </message>
--- a/src/eric7/i18n/eric7_es.ts Sat Apr 15 18:22:09 2023 +0200 +++ b/src/eric7/i18n/eric7_es.ts Mon Apr 24 17:51:11 2023 +0200 @@ -49289,71 +49289,71 @@ <translation>Estado de Alcance de Internet: No Alcanzable</translation> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="202" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="204" /> <source>Error populating list of dictionaries</source> <translation>Error populando lista de diccionarios</translation> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="231" /> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="203" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="233" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="205" /> <source><p>Could not download the dictionaries list from {0}.</p><p>Error: {1}</p></source> <translation><p>No se ha podido descargar la lista de diccionarios desde {0}.</p><p>Error: {1}</p></translation> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="396" /> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="206" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="400" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="208" /> <source>No connection to Internet.</source> <translation>Sin conexión a Internet.</translation> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="230" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="232" /> <source>Error downloading dictionaries list</source> <translation>Error descargando la lista de diccionarios</translation> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="249" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="251" /> <source>Dictionaries URL Changed</source> <translation>URL de Diccionarios Cambiada</translation> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="250" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="252" /> <source>The URL of the spell check dictionaries has changed. Select the "Refresh" button to get the new dictionaries list.</source> <translation>La URL de los diccionarios de corrección ortográfica ha cambiado. Seleccionar el botón de "Actualizar" para obtener la nueva lista de diccionarios.</translation> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="261" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="263" /> <source>Error installing dictionaries</source> <translation>Error instalando los diccionarios</translation> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="262" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="264" /> <source><p>None of the dictionary locations is writable by you. Please download required dictionaries manually and install them as administrator.</p></source> <translation><p>Ninguna de las ubicaciones para diccionarios tiene permisos de escritura. Por favor, descargue manualmente los diccionarios requeridos e instálelos como administrador.</p></translation> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="311" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="313" /> <source>{0} ({1})</source> <translation>{0} ({1})</translation> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="416" /> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="392" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="420" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="396" /> <source>Error downloading dictionary file</source> <translation>Error descargando archivo de diccionario</translation> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="417" /> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="393" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="421" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="397" /> <source><p>Could not download the requested dictionary file from {0}.</p><p>Error: {1}</p></source> <translation><p>No se ha podido descargar el archivo de diccionario requerido de {0}.</p><p>Error: {1}</p></translation> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="431" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="435" /> <source>Error downloading dictionary</source> <translation>Error descargando diccionario</translation> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="432" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="436" /> <source><p>The downloaded dictionary archive is invalid. Skipping it.</p></source> <translation><p>El archivo de diccionario que se ha descargado no es válido. Cancelando.</p></translation> </message> @@ -57893,12 +57893,12 @@ <translation><p>El directorio de descaga del plugin <b>{0}</b> no ha podido ser creado. Por favor, configúrelo a través del diálogo de configuración.</p><p>Razón: {1}</p></translation> </message> <message> - <location filename="../PluginManager/PluginManager.py" line="1305" /> + <location filename="../PluginManager/PluginManager.py" line="1307" /> <source>Error downloading file</source> <translation>Error al descargar el fichero</translation> </message> <message> - <location filename="../PluginManager/PluginManager.py" line="1306" /> + <location filename="../PluginManager/PluginManager.py" line="1308" /> <source><p>Could not download the requested file from {0}.</p><p>Error: {1}</p></source> <translation><p>No se pudo descargar el archivo solicitado desde {0}.</p><p>Error: {1}</p></translation> </message> @@ -57957,6 +57957,16 @@ </message> <message> <location filename="../Preferences/ConfigurationPages/PluginManagerPage.ui" line="0" /> + <source><p>Select to force the use of <b>http://</b> instead of <b>https://</b>.</p></source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/PluginManagerPage.ui" line="0" /> + <source>Enforce unencrypted downloads</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/PluginManagerPage.ui" line="0" /> <source><font color="#FF0000"><b>Note:</b> The following settings are activated at the next startup of the application.</font></source> <translation><font color="#FF0000"><b>Nota:</b> Estos ajustes se activarán la siguiente vez que se ejecute la aplicacion.</font></translation> </message> @@ -58294,76 +58304,76 @@ <translation>Actualizaciones Remotas: <b>{0}</b></translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="657" /> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="625" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="660" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="628" /> <source>Error downloading file</source> <translation>Error al descargar el fichero</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="658" /> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="626" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="661" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="629" /> <source><p>Could not download the requested file from {0}.</p><p>Error: {1}</p></source> <translation><p>No se pudo descargar el archivo solicitado desde {0}.</p><p>Error: {1}</p></translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="629" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="632" /> <source>No connection to Internet.</source> <translation>Sin conexión a Internet.</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="739" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="742" /> <source>Stable</source> <translation>Estable</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="746" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="749" /> <source>Unstable</source> <translation>Inestable</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="753" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="756" /> <source>Obsolete</source> <translation>Obsoleto</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="760" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="763" /> <source>Unknown</source> <translation>Desconocido</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="783" /> - <source>up-to-date</source> - <translation>al dia</translation> - </message> - <message> <location filename="../PluginManager/PluginRepositoryDialog.py" line="786" /> + <source>up-to-date</source> + <translation>al dia</translation> + </message> + <message> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="789" /> <source>new download available</source> <translation>mueva descarga disponible</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="790" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="793" /> <source>update installable</source> <translation>actualización instalable</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="794" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="797" /> <source>updated download available</source> <translation>descarga actualizada disponible</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="798" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="801" /> <source>error determining status</source> <translation>Error al determinar el estado</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1168" /> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1140" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1171" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1143" /> <source>Cleanup of Plugin Downloads</source> <translation>Limpieza de Descargas de Plugins</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1172" /> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1143" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1175" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1146" /> <source><p>The plugin download <b>{0}</b> could not be deleted.</p><p>Reason: {1}</p></source> <translation><p>La descarga del plugin <b>{0}</b> no se ha podido borrar.</p><p>Razón: {1}</p></translation> </message> @@ -58371,17 +58381,17 @@ <context> <name>PluginRepositoryWindow</name> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1045" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1048" /> <source>Process Generation Error</source> <translation>Error de Generación de Proceso</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1046" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1049" /> <source><p>Could not start the process.<br>Ensure that it is available as <b>{0}</b>.</p></source> <translation><p>No se ha podido ejecutar el proceso.<br>Asegúrese de que esta disponible como <b>{0}</b>.</p></translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1050" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1053" /> <source>OK</source> <translation>Aceptar</translation> </message> @@ -58728,18 +58738,18 @@ <context> <name>Preferences</name> <message> - <location filename="../Preferences/__init__.py" line="1813" /> + <location filename="../Preferences/__init__.py" line="1815" /> <source>Export Preferences</source> <translation>Exportar Preferencias</translation> </message> <message> + <location filename="../Preferences/__init__.py" line="1844" /> + <location filename="../Preferences/__init__.py" line="1817" /> + <source>Properties File (*.ini);;All Files (*)</source> + <translation>Archivo de Propiedades (*.ini);;Todos los archivos (*)</translation> + </message> + <message> <location filename="../Preferences/__init__.py" line="1842" /> - <location filename="../Preferences/__init__.py" line="1815" /> - <source>Properties File (*.ini);;All Files (*)</source> - <translation>Archivo de Propiedades (*.ini);;Todos los archivos (*)</translation> - </message> - <message> - <location filename="../Preferences/__init__.py" line="1840" /> <source>Import Preferences</source> <translation>Importar Preferencias</translation> </message> @@ -97302,6 +97312,16 @@ </message> <message> <location filename="../Preferences/ConfigurationPages/WebBrowserSpellCheckingPage.ui" line="0" /> + <source><p>Select to force the use of <b>http://</b> instead of <b>https://</b>.</p></source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/WebBrowserSpellCheckingPage.ui" line="0" /> + <source>Enforce unencrypted downloads</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/WebBrowserSpellCheckingPage.ui" line="0" /> <source>Press to open a dialog to manage spell checking dictionaries</source> <translation>Pulsar para abrir un diálogo para gestionar diccionarios de corrección ortográfica</translation> </message>
--- a/src/eric7/i18n/eric7_fr.ts Sat Apr 15 18:22:09 2023 +0200 +++ b/src/eric7/i18n/eric7_fr.ts Mon Apr 24 17:51:11 2023 +0200 @@ -49516,71 +49516,71 @@ <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="202" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="204" /> <source>Error populating list of dictionaries</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="231" /> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="203" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="233" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="205" /> <source><p>Could not download the dictionaries list from {0}.</p><p>Error: {1}</p></source> <translation><p>Ne peut télécharger la liste des dictionnaires depuis {0}.</p><p>Erreur : {1}</p></translation> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="396" /> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="206" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="400" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="208" /> <source>No connection to Internet.</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="230" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="232" /> <source>Error downloading dictionaries list</source> <translation>Erreur lors du téléchargement de la liste des dictionnaire</translation> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="249" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="251" /> <source>Dictionaries URL Changed</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="250" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="252" /> <source>The URL of the spell check dictionaries has changed. Select the "Refresh" button to get the new dictionaries list.</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="261" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="263" /> <source>Error installing dictionaries</source> <translation>Erreur lors de l'installation des dictionnaires</translation> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="262" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="264" /> <source><p>None of the dictionary locations is writable by you. Please download required dictionaries manually and install them as administrator.</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="311" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="313" /> <source>{0} ({1})</source> <translation>{0} ({1})</translation> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="416" /> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="392" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="420" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="396" /> <source>Error downloading dictionary file</source> <translation>Erreur lors du téléchargement du fichier du dictionnaire</translation> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="417" /> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="393" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="421" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="397" /> <source><p>Could not download the requested dictionary file from {0}.</p><p>Error: {1}</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="431" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="435" /> <source>Error downloading dictionary</source> <translation>Erreur lors du téléchargement du dictionnaire</translation> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="432" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="436" /> <source><p>The downloaded dictionary archive is invalid. Skipping it.</p></source> <translation><p>L'archive de dictionnaire téléchargée est non valide. Passer.</p></translation> </message> @@ -58174,12 +58174,12 @@ <translation><p>Le répertoire de téléchargement de plugin<b>{0}</b> n'a pas pu être créé. Veuillez le reconfigurer.</p><p>Raison : {1}</p></translation> </message> <message> - <location filename="../PluginManager/PluginManager.py" line="1305" /> + <location filename="../PluginManager/PluginManager.py" line="1307" /> <source>Error downloading file</source> <translation>Erreur de téléchargement du fichier</translation> </message> <message> - <location filename="../PluginManager/PluginManager.py" line="1306" /> + <location filename="../PluginManager/PluginManager.py" line="1308" /> <source><p>Could not download the requested file from {0}.</p><p>Error: {1}</p></source> <translation><p>Ne peut télécharger le fichier demandé depuis {0}.</p><p>Erreur : {1}</p></translation> </message> @@ -58238,6 +58238,16 @@ </message> <message> <location filename="../Preferences/ConfigurationPages/PluginManagerPage.ui" line="0" /> + <source><p>Select to force the use of <b>http://</b> instead of <b>https://</b>.</p></source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/PluginManagerPage.ui" line="0" /> + <source>Enforce unencrypted downloads</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/PluginManagerPage.ui" line="0" /> <source><font color="#FF0000"><b>Note:</b> The following settings are activated at the next startup of the application.</font></source> <translation><font color="#FF0000"><b>Note :</b> Les paramètres suivants seront activés au prochain démarrage de l'application.</font></translation> </message> @@ -58575,76 +58585,76 @@ <translation>Mises à jour distantes: <b>{0}</b></translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="657" /> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="625" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="660" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="628" /> <source>Error downloading file</source> <translation>Erreur de téléchargement</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="658" /> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="626" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="661" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="629" /> <source><p>Could not download the requested file from {0}.</p><p>Error: {1}</p></source> <translation><p>Ne peut télécharger le fichier demandé depuis {0}.</p><p>Erreur : {1}</p></translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="629" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="632" /> <source>No connection to Internet.</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="739" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="742" /> <source>Stable</source> <translation>Stable</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="746" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="749" /> <source>Unstable</source> <translation>Instable</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="753" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="756" /> <source>Obsolete</source> <translation>Obsolète</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="760" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="763" /> <source>Unknown</source> <translation>Inconnu</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="783" /> - <source>up-to-date</source> - <translation>à jour</translation> - </message> - <message> <location filename="../PluginManager/PluginRepositoryDialog.py" line="786" /> + <source>up-to-date</source> + <translation>à jour</translation> + </message> + <message> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="789" /> <source>new download available</source> <translation>nouveau téléchargement disponible</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="790" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="793" /> <source>update installable</source> <translation>mise à jour installable</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="794" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="797" /> <source>updated download available</source> <translation>téléchargement à jour disponible</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="798" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="801" /> <source>error determining status</source> <translation>erreur lors de la détermination du statu</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1168" /> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1140" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1171" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1143" /> <source>Cleanup of Plugin Downloads</source> <translation>Nettoyer les téléchargements de plugin</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1172" /> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1143" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1175" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1146" /> <source><p>The plugin download <b>{0}</b> could not be deleted.</p><p>Reason: {1}</p></source> <translation><p>Le téléchargement de plugin<b>{0}</b> ne peut être supprimé.</p><p>Raison : {1}</p></translation> </message> @@ -58652,17 +58662,17 @@ <context> <name>PluginRepositoryWindow</name> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1045" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1048" /> <source>Process Generation Error</source> <translation>Erreur du processus</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1046" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1049" /> <source><p>Could not start the process.<br>Ensure that it is available as <b>{0}</b>.</p></source> <translation><p>Ne peut démarrer le processus.<br>Vérifier qu'il est disponible en tant que<b>{0}</b>.</p></translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1050" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1053" /> <source>OK</source> <translation>OK</translation> </message> @@ -59017,18 +59027,18 @@ <context> <name>Preferences</name> <message> - <location filename="../Preferences/__init__.py" line="1813" /> + <location filename="../Preferences/__init__.py" line="1815" /> <source>Export Preferences</source> <translation>Export des préférences</translation> </message> <message> + <location filename="../Preferences/__init__.py" line="1844" /> + <location filename="../Preferences/__init__.py" line="1817" /> + <source>Properties File (*.ini);;All Files (*)</source> + <translation>Fichier propriétés (*.ini);;Tous les fichiers (*)</translation> + </message> + <message> <location filename="../Preferences/__init__.py" line="1842" /> - <location filename="../Preferences/__init__.py" line="1815" /> - <source>Properties File (*.ini);;All Files (*)</source> - <translation>Fichier propriétés (*.ini);;Tous les fichiers (*)</translation> - </message> - <message> - <location filename="../Preferences/__init__.py" line="1840" /> <source>Import Preferences</source> <translation>Import des préférences</translation> </message> @@ -97903,6 +97913,16 @@ </message> <message> <location filename="../Preferences/ConfigurationPages/WebBrowserSpellCheckingPage.ui" line="0" /> + <source><p>Select to force the use of <b>http://</b> instead of <b>https://</b>.</p></source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/WebBrowserSpellCheckingPage.ui" line="0" /> + <source>Enforce unencrypted downloads</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/WebBrowserSpellCheckingPage.ui" line="0" /> <source>Press to open a dialog to manage spell checking dictionaries</source> <translation type="unfinished" /> </message>
--- a/src/eric7/i18n/eric7_it.ts Sat Apr 15 18:22:09 2023 +0200 +++ b/src/eric7/i18n/eric7_it.ts Mon Apr 24 17:51:11 2023 +0200 @@ -49454,71 +49454,71 @@ <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="202" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="204" /> <source>Error populating list of dictionaries</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="231" /> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="203" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="233" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="205" /> <source><p>Could not download the dictionaries list from {0}.</p><p>Error: {1}</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="396" /> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="206" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="400" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="208" /> <source>No connection to Internet.</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="230" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="232" /> <source>Error downloading dictionaries list</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="249" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="251" /> <source>Dictionaries URL Changed</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="250" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="252" /> <source>The URL of the spell check dictionaries has changed. Select the "Refresh" button to get the new dictionaries list.</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="261" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="263" /> <source>Error installing dictionaries</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="262" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="264" /> <source><p>None of the dictionary locations is writable by you. Please download required dictionaries manually and install them as administrator.</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="311" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="313" /> <source>{0} ({1})</source> <translation type="unfinished">{0} ({1})</translation> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="416" /> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="392" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="420" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="396" /> <source>Error downloading dictionary file</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="417" /> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="393" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="421" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="397" /> <source><p>Could not download the requested dictionary file from {0}.</p><p>Error: {1}</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="431" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="435" /> <source>Error downloading dictionary</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="432" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="436" /> <source><p>The downloaded dictionary archive is invalid. Skipping it.</p></source> <translation type="unfinished" /> </message> @@ -58048,12 +58048,12 @@ <translation><p>La directory di download dei plugin <b>{0}</b> non può essere creata. Per favore configurarla con il dialogo di configurazione.</p><p>Motivo: {1}</p></translation> </message> <message> - <location filename="../PluginManager/PluginManager.py" line="1305" /> + <location filename="../PluginManager/PluginManager.py" line="1307" /> <source>Error downloading file</source> <translation>Errone nello scaricamento del file</translation> </message> <message> - <location filename="../PluginManager/PluginManager.py" line="1306" /> + <location filename="../PluginManager/PluginManager.py" line="1308" /> <source><p>Could not download the requested file from {0}.</p><p>Error: {1}</p></source> <translation><p>Non posso scaricare il file richiesto da {0}</p><p>Errore: {1}</p></translation> </message> @@ -58112,6 +58112,16 @@ </message> <message> <location filename="../Preferences/ConfigurationPages/PluginManagerPage.ui" line="0" /> + <source><p>Select to force the use of <b>http://</b> instead of <b>https://</b>.</p></source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/PluginManagerPage.ui" line="0" /> + <source>Enforce unencrypted downloads</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/PluginManagerPage.ui" line="0" /> <source><font color="#FF0000"><b>Note:</b> The following settings are activated at the next startup of the application.</font></source> <translation type="unfinished" /> </message> @@ -58449,76 +58459,76 @@ <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="657" /> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="625" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="660" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="628" /> <source>Error downloading file</source> <translation>Errone nello scaricamento del file</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="658" /> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="626" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="661" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="629" /> <source><p>Could not download the requested file from {0}.</p><p>Error: {1}</p></source> <translation><p>Non posso scaricare il file richiesto da {0}</p><p>Errore: {1}</p></translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="629" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="632" /> <source>No connection to Internet.</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="739" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="742" /> <source>Stable</source> <translation>Stabile</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="746" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="749" /> <source>Unstable</source> <translation>Instabile</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="753" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="756" /> <source>Obsolete</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="760" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="763" /> <source>Unknown</source> <translation>Sconosciuto</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="783" /> - <source>up-to-date</source> - <translation type="unfinished" /> - </message> - <message> <location filename="../PluginManager/PluginRepositoryDialog.py" line="786" /> + <source>up-to-date</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="789" /> <source>new download available</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="790" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="793" /> <source>update installable</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="794" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="797" /> <source>updated download available</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="798" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="801" /> <source>error determining status</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1168" /> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1140" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1171" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1143" /> <source>Cleanup of Plugin Downloads</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1172" /> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1143" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1175" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1146" /> <source><p>The plugin download <b>{0}</b> could not be deleted.</p><p>Reason: {1}</p></source> <translation type="unfinished" /> </message> @@ -58526,17 +58536,17 @@ <context> <name>PluginRepositoryWindow</name> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1045" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1048" /> <source>Process Generation Error</source> <translation>Errore Generazione Processo</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1046" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1049" /> <source><p>Could not start the process.<br>Ensure that it is available as <b>{0}</b>.</p></source> <translation><p>Non posso avviare il processo.<br>Assicurarsi sia disponibile come <b>{0}</b>.</p></translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1050" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1053" /> <source>OK</source> <translation>OK</translation> </message> @@ -58883,18 +58893,18 @@ <context> <name>Preferences</name> <message> - <location filename="../Preferences/__init__.py" line="1813" /> + <location filename="../Preferences/__init__.py" line="1815" /> <source>Export Preferences</source> <translation>Esporta Preferenze</translation> </message> <message> + <location filename="../Preferences/__init__.py" line="1844" /> + <location filename="../Preferences/__init__.py" line="1817" /> + <source>Properties File (*.ini);;All Files (*)</source> + <translation>File proprietà (*.ini);;Tutti i file(*)</translation> + </message> + <message> <location filename="../Preferences/__init__.py" line="1842" /> - <location filename="../Preferences/__init__.py" line="1815" /> - <source>Properties File (*.ini);;All Files (*)</source> - <translation>File proprietà (*.ini);;Tutti i file(*)</translation> - </message> - <message> - <location filename="../Preferences/__init__.py" line="1840" /> <source>Import Preferences</source> <translation>Importa Preferenze</translation> </message> @@ -97588,6 +97598,16 @@ </message> <message> <location filename="../Preferences/ConfigurationPages/WebBrowserSpellCheckingPage.ui" line="0" /> + <source><p>Select to force the use of <b>http://</b> instead of <b>https://</b>.</p></source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/WebBrowserSpellCheckingPage.ui" line="0" /> + <source>Enforce unencrypted downloads</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/WebBrowserSpellCheckingPage.ui" line="0" /> <source>Press to open a dialog to manage spell checking dictionaries</source> <translation type="unfinished" /> </message>
--- a/src/eric7/i18n/eric7_pt.ts Sat Apr 15 18:22:09 2023 +0200 +++ b/src/eric7/i18n/eric7_pt.ts Mon Apr 24 17:51:11 2023 +0200 @@ -49447,71 +49447,71 @@ <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="202" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="204" /> <source>Error populating list of dictionaries</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="231" /> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="203" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="233" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="205" /> <source><p>Could not download the dictionaries list from {0}.</p><p>Error: {1}</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="396" /> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="206" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="400" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="208" /> <source>No connection to Internet.</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="230" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="232" /> <source>Error downloading dictionaries list</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="249" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="251" /> <source>Dictionaries URL Changed</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="250" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="252" /> <source>The URL of the spell check dictionaries has changed. Select the "Refresh" button to get the new dictionaries list.</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="261" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="263" /> <source>Error installing dictionaries</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="262" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="264" /> <source><p>None of the dictionary locations is writable by you. Please download required dictionaries manually and install them as administrator.</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="311" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="313" /> <source>{0} ({1})</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="416" /> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="392" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="420" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="396" /> <source>Error downloading dictionary file</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="417" /> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="393" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="421" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="397" /> <source><p>Could not download the requested dictionary file from {0}.</p><p>Error: {1}</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="431" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="435" /> <source>Error downloading dictionary</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="432" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="436" /> <source><p>The downloaded dictionary archive is invalid. Skipping it.</p></source> <translation type="unfinished" /> </message> @@ -58027,12 +58027,12 @@ <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginManager.py" line="1305" /> + <location filename="../PluginManager/PluginManager.py" line="1307" /> <source>Error downloading file</source> <translation>Erro ao descarregar ficheiro</translation> </message> <message> - <location filename="../PluginManager/PluginManager.py" line="1306" /> + <location filename="../PluginManager/PluginManager.py" line="1308" /> <source><p>Could not download the requested file from {0}.</p><p>Error: {1}</p></source> <translation type="unfinished" /> </message> @@ -58091,6 +58091,16 @@ </message> <message> <location filename="../Preferences/ConfigurationPages/PluginManagerPage.ui" line="0" /> + <source><p>Select to force the use of <b>http://</b> instead of <b>https://</b>.</p></source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/PluginManagerPage.ui" line="0" /> + <source>Enforce unencrypted downloads</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/PluginManagerPage.ui" line="0" /> <source><font color="#FF0000"><b>Note:</b> The following settings are activated at the next startup of the application.</font></source> <translation><font color="#FF0000"><b>Nota:</b> As definições seguintes serão ativadas no próximo arranque da aplicação.</font></translation> </message> @@ -58427,76 +58437,76 @@ <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="657" /> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="625" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="660" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="628" /> <source>Error downloading file</source> <translation type="unfinished">Erro ao descarregar ficheiro</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="658" /> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="626" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="661" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="629" /> <source><p>Could not download the requested file from {0}.</p><p>Error: {1}</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="629" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="632" /> <source>No connection to Internet.</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="739" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="742" /> <source>Stable</source> <translation type="unfinished">Estável</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="746" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="749" /> <source>Unstable</source> <translation type="unfinished">Instável</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="753" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="756" /> <source>Obsolete</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="760" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="763" /> <source>Unknown</source> <translation>Desconhecido</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="783" /> - <source>up-to-date</source> - <translation type="unfinished" /> - </message> - <message> <location filename="../PluginManager/PluginRepositoryDialog.py" line="786" /> + <source>up-to-date</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="789" /> <source>new download available</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="790" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="793" /> <source>update installable</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="794" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="797" /> <source>updated download available</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="798" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="801" /> <source>error determining status</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1168" /> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1140" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1171" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1143" /> <source>Cleanup of Plugin Downloads</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1172" /> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1143" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1175" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1146" /> <source><p>The plugin download <b>{0}</b> could not be deleted.</p><p>Reason: {1}</p></source> <translation type="unfinished" /> </message> @@ -58504,17 +58514,17 @@ <context> <name>PluginRepositoryWindow</name> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1045" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1048" /> <source>Process Generation Error</source> <translation>Erro na Criação de Processo</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1046" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1049" /> <source><p>Could not start the process.<br>Ensure that it is available as <b>{0}</b>.</p></source> <translation><p>Não pode começar o processo. <br> Assegurar de que está disponível como <b>{0}</b>.</p></translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1050" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1053" /> <source>OK</source> <translation /> </message> @@ -58869,18 +58879,18 @@ <context> <name>Preferences</name> <message> - <location filename="../Preferences/__init__.py" line="1813" /> + <location filename="../Preferences/__init__.py" line="1815" /> <source>Export Preferences</source> <translation>Exportar Preferências</translation> </message> <message> + <location filename="../Preferences/__init__.py" line="1844" /> + <location filename="../Preferences/__init__.py" line="1817" /> + <source>Properties File (*.ini);;All Files (*)</source> + <translation>Ficheiro de Propriedades (*.ini);;Ficheiros Todos (*)</translation> + </message> + <message> <location filename="../Preferences/__init__.py" line="1842" /> - <location filename="../Preferences/__init__.py" line="1815" /> - <source>Properties File (*.ini);;All Files (*)</source> - <translation>Ficheiro de Propriedades (*.ini);;Ficheiros Todos (*)</translation> - </message> - <message> - <location filename="../Preferences/__init__.py" line="1840" /> <source>Import Preferences</source> <translation>Importar Preferências</translation> </message> @@ -97378,6 +97388,16 @@ </message> <message> <location filename="../Preferences/ConfigurationPages/WebBrowserSpellCheckingPage.ui" line="0" /> + <source><p>Select to force the use of <b>http://</b> instead of <b>https://</b>.</p></source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/WebBrowserSpellCheckingPage.ui" line="0" /> + <source>Enforce unencrypted downloads</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/WebBrowserSpellCheckingPage.ui" line="0" /> <source>Press to open a dialog to manage spell checking dictionaries</source> <translation type="unfinished" /> </message>
--- a/src/eric7/i18n/eric7_ru.ts Sat Apr 15 18:22:09 2023 +0200 +++ b/src/eric7/i18n/eric7_ru.ts Mon Apr 24 17:51:11 2023 +0200 @@ -49356,71 +49356,71 @@ <translation>Статус доступности Интернета: Не доступен</translation> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="202" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="204" /> <source>Error populating list of dictionaries</source> <translation>Ошибка заполнения списка словарей</translation> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="231" /> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="203" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="233" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="205" /> <source><p>Could not download the dictionaries list from {0}.</p><p>Error: {1}</p></source> <translation><p>Не удалось загрузить список словарей из {0}.</p><p> Ошибка: {1}</p></translation> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="396" /> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="206" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="400" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="208" /> <source>No connection to Internet.</source> <translation>Нет подключения к Интернету.</translation> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="230" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="232" /> <source>Error downloading dictionaries list</source> <translation>Ошибка загрузки списка словарей</translation> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="249" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="251" /> <source>Dictionaries URL Changed</source> <translation>URL-адрес словарей изменен</translation> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="250" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="252" /> <source>The URL of the spell check dictionaries has changed. Select the "Refresh" button to get the new dictionaries list.</source> <translation>URL-адрес словарей проверки орфографии изменился. Выберите кнопку «Обновить», чтобы получить список новых словарей.</translation> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="261" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="263" /> <source>Error installing dictionaries</source> <translation>Ошибка установки словарей</translation> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="262" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="264" /> <source><p>None of the dictionary locations is writable by you. Please download required dictionaries manually and install them as administrator.</p></source> <translation><p> Ни одно из мест размещения в словаре не доступно для записи. Загрузите необходимые словари вручную и установите их как администратор.</p></translation> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="311" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="313" /> <source>{0} ({1})</source> <translation>{0} ({1})</translation> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="416" /> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="392" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="420" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="396" /> <source>Error downloading dictionary file</source> <translation>Ошибка загрузки файла словаря</translation> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="417" /> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="393" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="421" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="397" /> <source><p>Could not download the requested dictionary file from {0}.</p><p>Error: {1}</p></source> <translation><p>Не удалось загрузить запрошенный файл слова из {0}.</p><p> Ошибка: {1}</p></translation> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="431" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="435" /> <source>Error downloading dictionary</source> <translation>Ошибка загрузки словаря</translation> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="432" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="436" /> <source><p>The downloaded dictionary archive is invalid. Skipping it.</p></source> <translation><p>Загруженный архив словаря недействителен. Пропущен.</p></translation> </message> @@ -57984,12 +57984,12 @@ <translation><p>Директория для загрузки плагинов <b>{0}</b> не может быть создана. Задайте её посредством диалога конфигурации.</p><p>Причина:{1}</p></translation> </message> <message> - <location filename="../PluginManager/PluginManager.py" line="1305" /> + <location filename="../PluginManager/PluginManager.py" line="1307" /> <source>Error downloading file</source> <translation>Ошибка загрузки файла</translation> </message> <message> - <location filename="../PluginManager/PluginManager.py" line="1306" /> + <location filename="../PluginManager/PluginManager.py" line="1308" /> <source><p>Could not download the requested file from {0}.</p><p>Error: {1}</p></source> <translation><p>Не удалось загрузить запрашиваемый файл из {0}.</p><p>Ошибка: {1}</p></translation> </message> @@ -58048,6 +58048,16 @@ </message> <message> <location filename="../Preferences/ConfigurationPages/PluginManagerPage.ui" line="0" /> + <source><p>Select to force the use of <b>http://</b> instead of <b>https://</b>.</p></source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/PluginManagerPage.ui" line="0" /> + <source>Enforce unencrypted downloads</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/PluginManagerPage.ui" line="0" /> <source><font color="#FF0000"><b>Note:</b> The following settings are activated at the next startup of the application.</font></source> <translation><font color="#FF0000"><b>Примечание:</b> Эти изменения вступят в силу при следующем запуске приложения.</font></translation> </message> @@ -58386,76 +58396,76 @@ <translation>Удаленные обновления: <b>{0}</b></translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="657" /> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="625" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="660" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="628" /> <source>Error downloading file</source> <translation>Ошибка загрузки файла</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="658" /> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="626" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="661" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="629" /> <source><p>Could not download the requested file from {0}.</p><p>Error: {1}</p></source> <translation><p>Не удалось загрузить запрашиваемый файл из {0}.</p><p>Ошибка: {1}</p></translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="629" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="632" /> <source>No connection to Internet.</source> <translation>Нет подключения к интернету.</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="739" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="742" /> <source>Stable</source> <translation>Стабильные</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="746" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="749" /> <source>Unstable</source> <translation>Нестабильные</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="753" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="756" /> <source>Obsolete</source> <translation>Устаревшие</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="760" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="763" /> <source>Unknown</source> <translation>Неизвестный</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="783" /> - <source>up-to-date</source> - <translation>новейший</translation> - </message> - <message> <location filename="../PluginManager/PluginRepositoryDialog.py" line="786" /> + <source>up-to-date</source> + <translation>новейший</translation> + </message> + <message> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="789" /> <source>new download available</source> <translation>имеются обновления для загрузки</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="790" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="793" /> <source>update installable</source> <translation>обновления готовы к установке</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="794" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="797" /> <source>updated download available</source> <translation>имеется обновление</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="798" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="801" /> <source>error determining status</source> <translation>статус определения ошибки</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1168" /> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1140" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1171" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1143" /> <source>Cleanup of Plugin Downloads</source> <translation>Очистить загруженные плагины</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1172" /> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1143" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1175" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1146" /> <source><p>The plugin download <b>{0}</b> could not be deleted.</p><p>Reason: {1}</p></source> <translation><p>Невозможно удалить обновление для плагина <b>{0}</b>.</p><p>Причина: {1}</p></translation> </message> @@ -58463,17 +58473,17 @@ <context> <name>PluginRepositoryWindow</name> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1045" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1048" /> <source>Process Generation Error</source> <translation>Ошибка при запуске процесса</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1046" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1049" /> <source><p>Could not start the process.<br>Ensure that it is available as <b>{0}</b>.</p></source> <translation><p>Невозможно запустить процесс.<br>Убедитесь, что он доступен как <b>{0}</b>.</p></translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1050" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1053" /> <source>OK</source> <translation>ОК</translation> </message> @@ -58820,18 +58830,18 @@ <context> <name>Preferences</name> <message> - <location filename="../Preferences/__init__.py" line="1813" /> + <location filename="../Preferences/__init__.py" line="1815" /> <source>Export Preferences</source> <translation>Экспорт Preferences</translation> </message> <message> + <location filename="../Preferences/__init__.py" line="1844" /> + <location filename="../Preferences/__init__.py" line="1817" /> + <source>Properties File (*.ini);;All Files (*)</source> + <translation>Файлы Preferences (*.ini);;Все файлы (*)</translation> + </message> + <message> <location filename="../Preferences/__init__.py" line="1842" /> - <location filename="../Preferences/__init__.py" line="1815" /> - <source>Properties File (*.ini);;All Files (*)</source> - <translation>Файлы Preferences (*.ini);;Все файлы (*)</translation> - </message> - <message> - <location filename="../Preferences/__init__.py" line="1840" /> <source>Import Preferences</source> <translation>Импорт Preferences</translation> </message> @@ -97537,6 +97547,16 @@ </message> <message> <location filename="../Preferences/ConfigurationPages/WebBrowserSpellCheckingPage.ui" line="0" /> + <source><p>Select to force the use of <b>http://</b> instead of <b>https://</b>.</p></source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/WebBrowserSpellCheckingPage.ui" line="0" /> + <source>Enforce unencrypted downloads</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/WebBrowserSpellCheckingPage.ui" line="0" /> <source>Press to open a dialog to manage spell checking dictionaries</source> <translation>Открыть диалог управления словарями проверки орфографии</translation> </message>
--- a/src/eric7/i18n/eric7_tr.ts Sat Apr 15 18:22:09 2023 +0200 +++ b/src/eric7/i18n/eric7_tr.ts Mon Apr 24 17:51:11 2023 +0200 @@ -49379,71 +49379,71 @@ <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="202" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="204" /> <source>Error populating list of dictionaries</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="231" /> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="203" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="233" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="205" /> <source><p>Could not download the dictionaries list from {0}.</p><p>Error: {1}</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="396" /> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="206" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="400" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="208" /> <source>No connection to Internet.</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="230" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="232" /> <source>Error downloading dictionaries list</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="249" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="251" /> <source>Dictionaries URL Changed</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="250" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="252" /> <source>The URL of the spell check dictionaries has changed. Select the "Refresh" button to get the new dictionaries list.</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="261" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="263" /> <source>Error installing dictionaries</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="262" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="264" /> <source><p>None of the dictionary locations is writable by you. Please download required dictionaries manually and install them as administrator.</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="311" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="313" /> <source>{0} ({1})</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="416" /> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="392" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="420" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="396" /> <source>Error downloading dictionary file</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="417" /> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="393" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="421" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="397" /> <source><p>Could not download the requested dictionary file from {0}.</p><p>Error: {1}</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="431" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="435" /> <source>Error downloading dictionary</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="432" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="436" /> <source><p>The downloaded dictionary archive is invalid. Skipping it.</p></source> <translation type="unfinished" /> </message> @@ -57905,12 +57905,12 @@ <translation><p>eklenti dizini <b>{0}</b> oluşturulamıyor. Lütfen ayarlama diyaloğu aracılığı ile düzenleyin.</p><p>Sebep: {1}</p></translation> </message> <message> - <location filename="../PluginManager/PluginManager.py" line="1305" /> + <location filename="../PluginManager/PluginManager.py" line="1307" /> <source>Error downloading file</source> <translation type="unfinished">Dosya yüklenirken hata</translation> </message> <message> - <location filename="../PluginManager/PluginManager.py" line="1306" /> + <location filename="../PluginManager/PluginManager.py" line="1308" /> <source><p>Could not download the requested file from {0}.</p><p>Error: {1}</p></source> <translation type="unfinished" /> </message> @@ -57969,6 +57969,16 @@ </message> <message> <location filename="../Preferences/ConfigurationPages/PluginManagerPage.ui" line="0" /> + <source><p>Select to force the use of <b>http://</b> instead of <b>https://</b>.</p></source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/PluginManagerPage.ui" line="0" /> + <source>Enforce unencrypted downloads</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/PluginManagerPage.ui" line="0" /> <source><font color="#FF0000"><b>Note:</b> The following settings are activated at the next startup of the application.</font></source> <translation type="unfinished" /> </message> @@ -58305,76 +58315,76 @@ <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="657" /> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="625" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="660" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="628" /> <source>Error downloading file</source> <translation>Dosya yüklenirken hata</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="658" /> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="626" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="661" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="629" /> <source><p>Could not download the requested file from {0}.</p><p>Error: {1}</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="629" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="632" /> <source>No connection to Internet.</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="739" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="742" /> <source>Stable</source> <translation>Dengeli</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="746" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="749" /> <source>Unstable</source> <translation>Dengesiz</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="753" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="756" /> <source>Obsolete</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="760" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="763" /> <source>Unknown</source> <translation>Bilinmeyen</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="783" /> - <source>up-to-date</source> - <translation type="unfinished" /> - </message> - <message> <location filename="../PluginManager/PluginRepositoryDialog.py" line="786" /> + <source>up-to-date</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="789" /> <source>new download available</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="790" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="793" /> <source>update installable</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="794" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="797" /> <source>updated download available</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="798" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="801" /> <source>error determining status</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1168" /> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1140" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1171" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1143" /> <source>Cleanup of Plugin Downloads</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1172" /> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1143" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1175" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1146" /> <source><p>The plugin download <b>{0}</b> could not be deleted.</p><p>Reason: {1}</p></source> <translation type="unfinished" /> </message> @@ -58382,17 +58392,17 @@ <context> <name>PluginRepositoryWindow</name> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1045" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1048" /> <source>Process Generation Error</source> <translation>İşlem Üretecinde Hata</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1046" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1049" /> <source><p>Could not start the process.<br>Ensure that it is available as <b>{0}</b>.</p></source> <translation><p>İşlem başlatılamıyor.<br>Bu durum büyük olasılıkla şundan kaynaklanıyto <b>{0}</b>.</p></translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1050" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1053" /> <source>OK</source> <translation>TAMAM</translation> </message> @@ -58739,18 +58749,18 @@ <context> <name>Preferences</name> <message> - <location filename="../Preferences/__init__.py" line="1813" /> + <location filename="../Preferences/__init__.py" line="1815" /> <source>Export Preferences</source> <translation>Seçenekleri Dışa Aktar</translation> </message> <message> + <location filename="../Preferences/__init__.py" line="1844" /> + <location filename="../Preferences/__init__.py" line="1817" /> + <source>Properties File (*.ini);;All Files (*)</source> + <translation type="unfinished" /> + </message> + <message> <location filename="../Preferences/__init__.py" line="1842" /> - <location filename="../Preferences/__init__.py" line="1815" /> - <source>Properties File (*.ini);;All Files (*)</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../Preferences/__init__.py" line="1840" /> <source>Import Preferences</source> <translation>Seçenekleri İçe Aktar</translation> </message> @@ -97286,6 +97296,16 @@ </message> <message> <location filename="../Preferences/ConfigurationPages/WebBrowserSpellCheckingPage.ui" line="0" /> + <source><p>Select to force the use of <b>http://</b> instead of <b>https://</b>.</p></source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/WebBrowserSpellCheckingPage.ui" line="0" /> + <source>Enforce unencrypted downloads</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/WebBrowserSpellCheckingPage.ui" line="0" /> <source>Press to open a dialog to manage spell checking dictionaries</source> <translation type="unfinished" /> </message>
--- a/src/eric7/i18n/eric7_zh_CN.ts Sat Apr 15 18:22:09 2023 +0200 +++ b/src/eric7/i18n/eric7_zh_CN.ts Mon Apr 24 17:51:11 2023 +0200 @@ -49426,71 +49426,71 @@ <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="202" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="204" /> <source>Error populating list of dictionaries</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="231" /> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="203" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="233" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="205" /> <source><p>Could not download the dictionaries list from {0}.</p><p>Error: {1}</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="396" /> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="206" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="400" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="208" /> <source>No connection to Internet.</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="230" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="232" /> <source>Error downloading dictionaries list</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="249" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="251" /> <source>Dictionaries URL Changed</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="250" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="252" /> <source>The URL of the spell check dictionaries has changed. Select the "Refresh" button to get the new dictionaries list.</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="261" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="263" /> <source>Error installing dictionaries</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="262" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="264" /> <source><p>None of the dictionary locations is writable by you. Please download required dictionaries manually and install them as administrator.</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="311" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="313" /> <source>{0} ({1})</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="416" /> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="392" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="420" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="396" /> <source>Error downloading dictionary file</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="417" /> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="393" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="421" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="397" /> <source><p>Could not download the requested dictionary file from {0}.</p><p>Error: {1}</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="431" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="435" /> <source>Error downloading dictionary</source> <translation type="unfinished" /> </message> <message> - <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="432" /> + <location filename="../WebBrowser/SpellCheck/ManageDictionariesDialog.py" line="436" /> <source><p>The downloaded dictionary archive is invalid. Skipping it.</p></source> <translation type="unfinished" /> </message> @@ -58033,12 +58033,12 @@ <translation><p>插件下载目录 <b>{0}</b> 无法创建。请使用配置对话框进行配置。</p><p>原因:{1}</p></translation> </message> <message> - <location filename="../PluginManager/PluginManager.py" line="1305" /> + <location filename="../PluginManager/PluginManager.py" line="1307" /> <source>Error downloading file</source> <translation>下载文件出错</translation> </message> <message> - <location filename="../PluginManager/PluginManager.py" line="1306" /> + <location filename="../PluginManager/PluginManager.py" line="1308" /> <source><p>Could not download the requested file from {0}.</p><p>Error: {1}</p></source> <translation><p>无法从 {0} 下载指定文件。</p><p>错误:{1}</p></translation> </message> @@ -58097,6 +58097,16 @@ </message> <message> <location filename="../Preferences/ConfigurationPages/PluginManagerPage.ui" line="0" /> + <source><p>Select to force the use of <b>http://</b> instead of <b>https://</b>.</p></source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/PluginManagerPage.ui" line="0" /> + <source>Enforce unencrypted downloads</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/PluginManagerPage.ui" line="0" /> <source><font color="#FF0000"><b>Note:</b> The following settings are activated at the next startup of the application.</font></source> <translation><font color="#FF0000"><b>注意:</b> 以下设置将在下次启动应用程序时生效。</font></translation> </message> @@ -58434,76 +58444,76 @@ <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="657" /> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="625" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="660" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="628" /> <source>Error downloading file</source> <translation>下载文件出错</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="658" /> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="626" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="661" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="629" /> <source><p>Could not download the requested file from {0}.</p><p>Error: {1}</p></source> <translation><p>无法从 {0} 下载指定文件。</p><p>错误:{1}</p></translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="629" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="632" /> <source>No connection to Internet.</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="739" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="742" /> <source>Stable</source> <translation>稳定</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="746" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="749" /> <source>Unstable</source> <translation>不稳定</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="753" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="756" /> <source>Obsolete</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="760" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="763" /> <source>Unknown</source> <translation>未知</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="783" /> - <source>up-to-date</source> - <translation>最新</translation> - </message> - <message> <location filename="../PluginManager/PluginRepositoryDialog.py" line="786" /> + <source>up-to-date</source> + <translation>最新</translation> + </message> + <message> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="789" /> <source>new download available</source> <translation>新的下载可用</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="790" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="793" /> <source>update installable</source> <translation>更新可安装</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="794" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="797" /> <source>updated download available</source> <translation>更新下载可用</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="798" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="801" /> <source>error determining status</source> <translation type="unfinished" /> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1168" /> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1140" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1171" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1143" /> <source>Cleanup of Plugin Downloads</source> <translation>清理插件安装</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1172" /> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1143" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1175" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1146" /> <source><p>The plugin download <b>{0}</b> could not be deleted.</p><p>Reason: {1}</p></source> <translation><p>插件下载 <b>{0}</b> 无法删除。</p><p>原因:{1}</p></translation> </message> @@ -58511,17 +58521,17 @@ <context> <name>PluginRepositoryWindow</name> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1045" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1048" /> <source>Process Generation Error</source> <translation>进程生成错误</translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1046" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1049" /> <source><p>Could not start the process.<br>Ensure that it is available as <b>{0}</b>.</p></source> <translation><p>无法启动进程。<br>请确保它作为 <b>{0}</b> 可用。</p></translation> </message> <message> - <location filename="../PluginManager/PluginRepositoryDialog.py" line="1050" /> + <location filename="../PluginManager/PluginRepositoryDialog.py" line="1053" /> <source>OK</source> <translation>确定</translation> </message> @@ -58868,18 +58878,18 @@ <context> <name>Preferences</name> <message> - <location filename="../Preferences/__init__.py" line="1813" /> + <location filename="../Preferences/__init__.py" line="1815" /> <source>Export Preferences</source> <translation>导出首选项</translation> </message> <message> + <location filename="../Preferences/__init__.py" line="1844" /> + <location filename="../Preferences/__init__.py" line="1817" /> + <source>Properties File (*.ini);;All Files (*)</source> + <translation>属性文件 (*.ini);;所有文件 (*)</translation> + </message> + <message> <location filename="../Preferences/__init__.py" line="1842" /> - <location filename="../Preferences/__init__.py" line="1815" /> - <source>Properties File (*.ini);;All Files (*)</source> - <translation>属性文件 (*.ini);;所有文件 (*)</translation> - </message> - <message> - <location filename="../Preferences/__init__.py" line="1840" /> <source>Import Preferences</source> <translation>导入首选项</translation> </message> @@ -97632,6 +97642,16 @@ </message> <message> <location filename="../Preferences/ConfigurationPages/WebBrowserSpellCheckingPage.ui" line="0" /> + <source><p>Select to force the use of <b>http://</b> instead of <b>https://</b>.</p></source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/WebBrowserSpellCheckingPage.ui" line="0" /> + <source>Enforce unencrypted downloads</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/WebBrowserSpellCheckingPage.ui" line="0" /> <source>Press to open a dialog to manage spell checking dictionaries</source> <translation type="unfinished" /> </message>