--- a/eric7/i18n/eric7_empty.ts Tue Mar 15 17:35:35 2022 +0100 +++ b/eric7/i18n/eric7_empty.ts Tue Mar 15 17:49:51 2022 +0100 @@ -51011,113 +51011,113 @@ <context> <name>Pip</name> <message> - <location filename="../PipInterface/Pip.py" line="111" /> + <location filename="../PipInterface/Pip.py" line="123" /> <source>python exited with an error ({0}).</source> <translation type="unfinished" /> </message> <message> - <location filename="../PipInterface/Pip.py" line="118" /> + <location filename="../PipInterface/Pip.py" line="130" /> <source>python did not finish within 30 seconds.</source> <translation type="unfinished" /> </message> <message> - <location filename="../PipInterface/Pip.py" line="121" /> + <location filename="../PipInterface/Pip.py" line="133" /> <source>python could not be started.</source> <translation type="unfinished" /> </message> <message> - <location filename="../PipInterface/Pip.py" line="181" /> + <location filename="../PipInterface/Pip.py" line="193" /> <source><project></source> <translation type="unfinished" /> </message> <message> - <location filename="../PipInterface/Pip.py" line="210" /> + <location filename="../PipInterface/Pip.py" line="222" /> <source>Interpreter for Virtual Environment</source> <translation type="unfinished" /> </message> <message> - <location filename="../PipInterface/Pip.py" line="211" /> + <location filename="../PipInterface/Pip.py" line="223" /> <source>No interpreter configured for the selected virtual environment.</source> <translation type="unfinished" /> </message> <message> - <location filename="../PipInterface/Pip.py" line="246" /> + <location filename="../PipInterface/Pip.py" line="258" /> <source>Install PIP</source> <translation type="unfinished" /> </message> <message> - <location filename="../PipInterface/Pip.py" line="288" /> + <location filename="../PipInterface/Pip.py" line="300" /> <source>Repair PIP</source> <translation type="unfinished" /> </message> <message> - <location filename="../PipInterface/Pip.py" line="371" /> + <location filename="../PipInterface/Pip.py" line="383" /> <source>Upgrade Packages</source> <translation type="unfinished" /> </message> <message> - <location filename="../PipInterface/Pip.py" line="411" /> + <location filename="../PipInterface/Pip.py" line="423" /> <source>Install Packages</source> <translation type="unfinished" /> </message> <message> - <location filename="../PipInterface/Pip.py" line="440" /> + <location filename="../PipInterface/Pip.py" line="452" /> <source>Install Packages from Requirements</source> <translation type="unfinished" /> </message> <message> - <location filename="../PipInterface/Pip.py" line="503" /> - <location filename="../PipInterface/Pip.py" line="472" /> - <location filename="../PipInterface/Pip.py" line="463" /> - <source>Uninstall Packages</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../PipInterface/Pip.py" line="504" /> - <location filename="../PipInterface/Pip.py" line="464" /> - <source>Do you really want to uninstall these packages?</source> - <translation type="unfinished" /> - </message> - <message> <location filename="../PipInterface/Pip.py" line="515" /> + <location filename="../PipInterface/Pip.py" line="484" /> + <location filename="../PipInterface/Pip.py" line="475" /> + <source>Uninstall Packages</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../PipInterface/Pip.py" line="516" /> + <location filename="../PipInterface/Pip.py" line="476" /> + <source>Do you really want to uninstall these packages?</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../PipInterface/Pip.py" line="527" /> <source>Uninstall Packages from Requirements</source> <translation type="unfinished" /> </message> <message> - <location filename="../PipInterface/Pip.py" line="832" /> + <location filename="../PipInterface/Pip.py" line="844" /> <source>Cache Info</source> <translation type="unfinished" /> </message> <message> - <location filename="../PipInterface/Pip.py" line="857" /> - <location filename="../PipInterface/Pip.py" line="849" /> + <location filename="../PipInterface/Pip.py" line="869" /> + <location filename="../PipInterface/Pip.py" line="861" /> <source>List Cached Files</source> <translation type="unfinished" /> </message> <message> - <location filename="../PipInterface/Pip.py" line="850" /> + <location filename="../PipInterface/Pip.py" line="862" /> <source>Enter a file pattern (empty for all):</source> <translation type="unfinished" /> </message> <message> - <location filename="../PipInterface/Pip.py" line="881" /> - <location filename="../PipInterface/Pip.py" line="875" /> + <location filename="../PipInterface/Pip.py" line="893" /> + <location filename="../PipInterface/Pip.py" line="887" /> <source>Remove Cached Files</source> <translation type="unfinished" /> </message> <message> - <location filename="../PipInterface/Pip.py" line="876" /> + <location filename="../PipInterface/Pip.py" line="888" /> <source>Enter a file pattern:</source> <translation type="unfinished" /> </message> <message> - <location filename="../PipInterface/Pip.py" line="904" /> - <location filename="../PipInterface/Pip.py" line="899" /> + <location filename="../PipInterface/Pip.py" line="916" /> + <location filename="../PipInterface/Pip.py" line="911" /> <source>Purge Cache</source> <translation type="unfinished" /> </message> <message> - <location filename="../PipInterface/Pip.py" line="900" /> + <location filename="../PipInterface/Pip.py" line="912" /> <source>Do you really want to purge the pip cache? All files need to be downloaded again.</source> <translation type="unfinished" /> </message> @@ -51629,6 +51629,16 @@ </message> <message> <location filename="../PipInterface/PipPackagesWidget.ui" line="0" /> + <source>Perform vulnerability checks based on "Safety DB".</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../PipInterface/PipPackagesWidget.ui" line="0" /> + <source>Vulnerability Check</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../PipInterface/PipPackagesWidget.ui" line="0" /> <location filename="../PipInterface/PipPackagesWidget.ui" line="0" /> <location filename="../PipInterface/PipPackagesWidget.ui" line="0" /> <source>Package</source> @@ -51646,6 +51656,11 @@ </message> <message> <location filename="../PipInterface/PipPackagesWidget.ui" line="0" /> + <source>Affected Version</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../PipInterface/PipPackagesWidget.ui" line="0" /> <source>Select to show verbose package information</source> <translation type="unfinished" /> </message> @@ -51736,220 +51751,246 @@ <translation type="unfinished" /> </message> <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="169" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="177" /> <source>pip Menu</source> <translation type="unfinished" /> </message> <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="195" /> - <source>Name:</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="196" /> - <source>Version:</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="197" /> - <source>Location:</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="198" /> - <source>Requires:</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="199" /> - <source>Summary:</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="200" /> - <source>Homepage:</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="201" /> - <source>Author:</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="202" /> - <source>Author Email:</source> - <translation type="unfinished" /> - </message> - <message> <location filename="../PipInterface/PipPackagesWidget.py" line="203" /> - <source>License:</source> + <source>Name:</source> <translation type="unfinished" /> </message> <message> <location filename="../PipInterface/PipPackagesWidget.py" line="204" /> - <source>Metadata Version:</source> + <source>Version:</source> <translation type="unfinished" /> </message> <message> <location filename="../PipInterface/PipPackagesWidget.py" line="205" /> - <source>Installer:</source> + <source>Location:</source> <translation type="unfinished" /> </message> <message> <location filename="../PipInterface/PipPackagesWidget.py" line="206" /> - <source>Classifiers:</source> + <source>Requires:</source> <translation type="unfinished" /> </message> <message> <location filename="../PipInterface/PipPackagesWidget.py" line="207" /> - <source>Entry Points:</source> + <source>Summary:</source> <translation type="unfinished" /> </message> <message> <location filename="../PipInterface/PipPackagesWidget.py" line="208" /> + <source>Homepage:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../PipInterface/PipPackagesWidget.py" line="209" /> + <source>Author:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../PipInterface/PipPackagesWidget.py" line="210" /> + <source>Author Email:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../PipInterface/PipPackagesWidget.py" line="211" /> + <source>License:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../PipInterface/PipPackagesWidget.py" line="212" /> + <source>Metadata Version:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../PipInterface/PipPackagesWidget.py" line="213" /> + <source>Installer:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../PipInterface/PipPackagesWidget.py" line="214" /> + <source>Classifiers:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../PipInterface/PipPackagesWidget.py" line="215" /> + <source>Entry Points:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../PipInterface/PipPackagesWidget.py" line="216" /> <source>Files:</source> <translation type="unfinished" /> </message> <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="375" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="384" /> <source>Getting installed packages...</source> <translation type="unfinished" /> </message> <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="390" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="400" /> <source>Getting outdated packages...</source> <translation type="unfinished" /> </message> <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="975" /> - <location filename="../PipInterface/PipPackagesWidget.py" line="812" /> - <location filename="../PipInterface/PipPackagesWidget.py" line="790" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="1019" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="856" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="834" /> <source>Search PyPI</source> <translation type="unfinished" /> </message> <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="791" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="835" /> <source><p>Received an error while searching for <b>{0}</b>.</p><p>Error: {1}</p></source> <translation type="unfinished" /> </message> <message numerus="yes"> - <location filename="../PipInterface/PipPackagesWidget.py" line="805" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="849" /> <source>%n package(s) found.</source> <translation type="unfinished"> <numerusform /> </translation> </message> <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="807" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="851" /> <source>Showing first 20 packages found.</source> <translation type="unfinished" /> </message> <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="815" /> - <location filename="../PipInterface/PipPackagesWidget.py" line="813" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="859" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="857" /> <source><p>There were no results for <b>{0}</b>.</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="976" /> - <source><p>No package details info for <b>{0}</b> available.</p></source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="990" /> - <source>Install Pip</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="993" /> - <source>Install Pip to User-Site</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="996" /> - <source>Repair Pip</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="1116" /> - <location filename="../PipInterface/PipPackagesWidget.py" line="1000" /> - <source>Install Packages</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="1003" /> - <source>Install Local Package</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="1007" /> - <source>Install Requirements</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="1010" /> - <source>Re-Install Selected Packages</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="1013" /> - <source>Uninstall Requirements</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="1016" /> - <source>Generate Requirements...</source> - <translation type="unfinished" /> - </message> - <message> <location filename="../PipInterface/PipPackagesWidget.py" line="1020" /> - <source>Show Cache Info...</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="1023" /> - <source>Show Cached Files...</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="1026" /> - <source>Remove Cached Files...</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="1029" /> - <source>Purge Cache...</source> + <source><p>No package details info for <b>{0}</b> available.</p></source> <translation type="unfinished" /> </message> <message> <location filename="../PipInterface/PipPackagesWidget.py" line="1034" /> - <source>Edit User Configuration...</source> + <source>Install Pip</source> <translation type="unfinished" /> </message> <message> <location filename="../PipInterface/PipPackagesWidget.py" line="1037" /> + <source>Install Pip to User-Site</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../PipInterface/PipPackagesWidget.py" line="1040" /> + <source>Repair Pip</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../PipInterface/PipPackagesWidget.py" line="1170" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="1044" /> + <source>Install Packages</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../PipInterface/PipPackagesWidget.py" line="1047" /> + <source>Install Local Package</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../PipInterface/PipPackagesWidget.py" line="1051" /> + <source>Install Requirements</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../PipInterface/PipPackagesWidget.py" line="1054" /> + <source>Re-Install Selected Packages</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../PipInterface/PipPackagesWidget.py" line="1057" /> + <source>Uninstall Requirements</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../PipInterface/PipPackagesWidget.py" line="1060" /> + <source>Generate Requirements...</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../PipInterface/PipPackagesWidget.py" line="1064" /> + <source>Check Vulnerabilities</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../PipInterface/PipPackagesWidget.py" line="1068" /> + <source>Update Vulnerability Database</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../PipInterface/PipPackagesWidget.py" line="1072" /> + <source>Show Cache Info...</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../PipInterface/PipPackagesWidget.py" line="1075" /> + <source>Show Cached Files...</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../PipInterface/PipPackagesWidget.py" line="1078" /> + <source>Remove Cached Files...</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../PipInterface/PipPackagesWidget.py" line="1081" /> + <source>Purge Cache...</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../PipInterface/PipPackagesWidget.py" line="1086" /> + <source>Edit User Configuration...</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../PipInterface/PipPackagesWidget.py" line="1089" /> <source>Edit Environment Configuration...</source> <translation type="unfinished" /> </message> <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="1042" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="1094" /> <source>Configure...</source> <translation type="unfinished" /> </message> <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="1237" /> - <location filename="../PipInterface/PipPackagesWidget.py" line="1224" /> - <location filename="../PipInterface/PipPackagesWidget.py" line="1213" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="1292" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="1279" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="1268" /> <source>Edit Configuration</source> <translation type="unfinished" /> </message> <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="1238" /> - <location filename="../PipInterface/PipPackagesWidget.py" line="1225" /> - <location filename="../PipInterface/PipPackagesWidget.py" line="1214" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="1293" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="1280" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="1269" /> <source>No valid configuration path determined. Aborting</source> <translation type="unfinished" /> </message> + <message> + <location filename="../PipInterface/PipPackagesWidget.py" line="1447" /> + <source>{0} {1}</source> + <comment>package name, package version</comment> + <translation type="unfinished" /> + </message> + <message> + <location filename="../PipInterface/PipPackagesWidget.py" line="1469" /> + <source>Affected Version:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../PipInterface/PipPackagesWidget.py" line="1472" /> + <source>Advisory:</source> + <translation type="unfinished" /> + </message> </context> <context> <name>PipPage</name> @@ -51959,6 +52000,11 @@ <translation type="unfinished" /> </message> <message> + <location filename="../Preferences/ConfigurationPages/PipPage.py" line="34" /> + <source><b>Note:</b> Leave empty to use the default Safety DB URL ({0}).</source> + <translation type="unfinished" /> + </message> + <message> <location filename="../Preferences/ConfigurationPages/PipPage.ui" line="0" /> <source><b>Configure pip</b></source> <translation type="unfinished" /> @@ -51975,6 +52021,36 @@ </message> <message> <location filename="../Preferences/ConfigurationPages/PipPage.ui" line="0" /> + <source>Vulnerability Checks</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/PipPage.ui" line="0" /> + <source>Safety DB URL:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/PipPage.ui" line="0" /> + <source>Enter the base URL for the Safety DB mirror to be used</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/PipPage.ui" line="0" /> + <source>Cache Validity:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/PipPage.ui" line="0" /> + <source>Enter the Safety DB cache validity time in hours (2 hours up to 7 days)</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/PipPage.ui" line="0" /> + <source> hours</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/PipPage.ui" line="0" /> <source>Environment</source> <translation type="unfinished" /> </message> @@ -51990,6 +52066,19 @@ </message> </context> <context> + <name>PipVulnerabilityChecker</name> + <message> + <location filename="../PipInterface/PipVulnerabilityChecker.py" line="218" /> + <source>Fetching Vulnerability Database</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../PipInterface/PipVulnerabilityChecker.py" line="219" /> + <source><p>The vulnerability database <b>{0}</b> could not be loaded from <b>{1}</b>.</p><p>The vulnerability check is not available.</p></source> + <translation type="unfinished" /> + </message> + </context> + <context> <name>PixmapDiagram</name> <message> <location filename="../Graphics/PixmapDiagram.py" line="164" /> @@ -53248,18 +53337,18 @@ <context> <name>Preferences</name> <message> - <location filename="../Preferences/__init__.py" line="1651" /> + <location filename="../Preferences/__init__.py" line="1656" /> <source>Export Preferences</source> <translation type="unfinished" /> </message> <message> - <location filename="../Preferences/__init__.py" line="1679" /> - <location filename="../Preferences/__init__.py" line="1653" /> + <location filename="../Preferences/__init__.py" line="1684" /> + <location filename="../Preferences/__init__.py" line="1658" /> <source>Properties File (*.ini);;All Files (*)</source> <translation type="unfinished" /> </message> <message> - <location filename="../Preferences/__init__.py" line="1677" /> + <location filename="../Preferences/__init__.py" line="1682" /> <source>Import Preferences</source> <translation type="unfinished" /> </message> @@ -87546,27 +87635,27 @@ <context> <name>VirtualenvAddEditDialog</name> <message> - <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="63" /> + <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="64" /> <source>Edit Virtual Environment</source> <translation type="unfinished" /> </message> <message> - <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="65" /> + <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="66" /> <source>Add Virtual Environment</source> <translation type="unfinished" /> </message> <message> - <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="73" /> + <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="74" /> <source>Virtualenv Target Directory</source> <translation type="unfinished" /> </message> <message> - <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="78" /> + <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="79" /> <source>Python Interpreter</source> <translation type="unfinished" /> </message> <message> - <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="82" /> + <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="83" /> <source>Enter the executable search path to be prepended to the PATH environment variable. Use '{0}' as the separator.</source> <translation type="unfinished" /> </message> @@ -88140,7 +88229,7 @@ <context> <name>VirtualenvInterpreterSelectionDialog</name> <message> - <location filename="../VirtualEnv/VirtualenvInterpreterSelectionDialog.py" line="45" /> + <location filename="../VirtualEnv/VirtualenvInterpreterSelectionDialog.py" line="46" /> <source>Python Interpreter</source> <translation type="unfinished" /> </message>