Updated translations. eric7

Tue, 15 Mar 2022 17:49:51 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 15 Mar 2022 17:49:51 +0100
branch
eric7
changeset 8982
afec1a04aed9
parent 8981
fa03fe1fd672
child 8983
46eaed7bf3cb

Updated translations.

eric7/Preferences/ConfigurationPages/PipPage.ui file | annotate | diff | comparison | revisions
eric7/i18n/eric7_cs.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_de.qm file | annotate | diff | comparison | revisions
eric7/i18n/eric7_de.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_empty.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_en.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_es.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_fr.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_it.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_pt.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_ru.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_tr.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_zh_CN.ts file | annotate | diff | comparison | revisions
--- a/eric7/Preferences/ConfigurationPages/PipPage.ui	Tue Mar 15 17:35:35 2022 +0100
+++ b/eric7/Preferences/ConfigurationPages/PipPage.ui	Tue Mar 15 17:49:51 2022 +0100
@@ -106,7 +106,7 @@
       <item row="2" column="1">
        <widget class="QSpinBox" name="validitySpinBox">
         <property name="toolTip">
-         <string>Enter the Safetty DB cache validity time in hours (2 hours up to 7 days)</string>
+         <string>Enter the Safety DB cache validity time in hours (2 hours up to 7 days)</string>
         </property>
         <property name="alignment">
          <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
--- a/eric7/i18n/eric7_cs.ts	Tue Mar 15 17:35:35 2022 +0100
+++ b/eric7/i18n/eric7_cs.ts	Tue Mar 15 17:49:51 2022 +0100
@@ -54800,113 +54800,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>&lt;project&gt;</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>
@@ -55449,6 +55449,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>
@@ -55466,6 +55476,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>
@@ -55556,104 +55571,104 @@
       <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">Jméno:</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="196" />
-      <source>Version:</source>
-      <translation type="unfinished">Verze:</translation>
-    </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">Autor:</translation>
-    </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>
-      <translation type="unfinished" />
+      <source>Name:</source>
+      <translation type="unfinished">Jméno:</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="204" />
-      <source>Metadata Version:</source>
-      <translation type="unfinished" />
+      <source>Version:</source>
+      <translation type="unfinished">Verze:</translation>
     </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">Autor:</translation>
+    </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>&lt;p&gt;Received an error while searching for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</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 />
@@ -55662,117 +55677,143 @@
       </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>&lt;p&gt;There were no results for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="976" />
-      <source>&lt;p&gt;No package details info for &lt;b&gt;{0}&lt;/b&gt; available.&lt;/p&gt;</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>&lt;p&gt;No package details info for &lt;b&gt;{0}&lt;/b&gt; available.&lt;/p&gt;</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">Konfigurovat...</translation>
     </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>
+    <message>
       <source>Error: {0}</source>
       <translation type="vanished">Chyby: {0}</translation>
     </message>
@@ -55785,6 +55826,11 @@
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../Preferences/ConfigurationPages/PipPage.py" line="34" />
+      <source>&lt;b&gt;Note:&lt;/b&gt; 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>&lt;b&gt;Configure pip&lt;/b&gt;</source>
       <translation type="unfinished" />
@@ -55801,6 +55847,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>
@@ -55827,6 +55903,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>&lt;p&gt;The vulnerability database &lt;b&gt;{0}&lt;/b&gt; could not be loaded from &lt;b&gt;{1}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;The vulnerability check is not available.&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+  </context>
+  <context>
     <name>PixmapDiagram</name>
     <message>
       <location filename="../Graphics/PixmapDiagram.py" line="164" />
@@ -57094,18 +57183,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>Předvolby exportu</translation>
     </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>Předvolby importu</translation>
     </message>
@@ -92963,27 +93052,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>
@@ -93557,7 +93646,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>
Binary file eric7/i18n/eric7_de.qm has changed
--- a/eric7/i18n/eric7_de.ts	Tue Mar 15 17:35:35 2022 +0100
+++ b/eric7/i18n/eric7_de.ts	Tue Mar 15 17:49:51 2022 +0100
@@ -51269,113 +51269,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>python endete mit einem Fehler ({0}).</translation>
     </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>python endete nicht innerhalb 30 Sekunden.</translation>
     </message>
     <message>
-      <location filename="../PipInterface/Pip.py" line="121" />
+      <location filename="../PipInterface/Pip.py" line="133" />
       <source>python could not be started.</source>
       <translation>python konnte nicht gestarted werden.</translation>
     </message>
     <message>
-      <location filename="../PipInterface/Pip.py" line="181" />
+      <location filename="../PipInterface/Pip.py" line="193" />
       <source>&lt;project&gt;</source>
       <translation>&lt;Projekt&gt;</translation>
     </message>
     <message>
-      <location filename="../PipInterface/Pip.py" line="210" />
+      <location filename="../PipInterface/Pip.py" line="222" />
       <source>Interpreter for Virtual Environment</source>
       <translation>Interpreter für virtuelle Umgebung</translation>
     </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>Für die gewählte virtuelle Umgebung ist kein Interpreter konfiguriert.</translation>
     </message>
     <message>
-      <location filename="../PipInterface/Pip.py" line="246" />
+      <location filename="../PipInterface/Pip.py" line="258" />
       <source>Install PIP</source>
       <translation>PIP installieren</translation>
     </message>
     <message>
-      <location filename="../PipInterface/Pip.py" line="288" />
+      <location filename="../PipInterface/Pip.py" line="300" />
       <source>Repair PIP</source>
       <translation>PIP reparieren</translation>
     </message>
     <message>
-      <location filename="../PipInterface/Pip.py" line="371" />
+      <location filename="../PipInterface/Pip.py" line="383" />
       <source>Upgrade Packages</source>
       <translation>Pakete aktualisieren</translation>
     </message>
     <message>
-      <location filename="../PipInterface/Pip.py" line="411" />
+      <location filename="../PipInterface/Pip.py" line="423" />
       <source>Install Packages</source>
       <translation>Pakete installieren</translation>
     </message>
     <message>
-      <location filename="../PipInterface/Pip.py" line="440" />
+      <location filename="../PipInterface/Pip.py" line="452" />
       <source>Install Packages from Requirements</source>
       <translation>Pakete gem. Anforderungen installieren</translation>
     </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>Pakete deinstallieren</translation>
-    </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>Sollen diese Pakete wirklich deinstalliert werden?</translation>
-    </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>Pakete deinstallieren</translation>
+    </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>Sollen diese Pakete wirklich deinstalliert werden?</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/Pip.py" line="527" />
       <source>Uninstall Packages from Requirements</source>
       <translation>Pakete gem. Anforderungen deinstallieren</translation>
     </message>
     <message>
-      <location filename="../PipInterface/Pip.py" line="832" />
+      <location filename="../PipInterface/Pip.py" line="844" />
       <source>Cache Info</source>
       <translation>Zwischenspeicherinformationen</translation>
     </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>Liste zwischengespeicherte Dateien</translation>
     </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>Gib ein Dateinamenmuster ein (leer für alle):</translation>
     </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>Zwischengespeicherte Dateien Löschen</translation>
     </message>
     <message>
-      <location filename="../PipInterface/Pip.py" line="876" />
+      <location filename="../PipInterface/Pip.py" line="888" />
       <source>Enter a file pattern:</source>
       <translation>Gib ein Dateinamenmuster ein:</translation>
     </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>Zwischenspeicher Leeren</translation>
     </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>Soll der pip Zwischenspeicher wirklich geleert werden? Alle Dateien müssen neu heruntergeladen werden.</translation>
     </message>
@@ -51887,6 +51887,16 @@
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Perform vulnerability checks based on "Safety DB".</source>
+      <translation>Verwundbarkeitsprüfungen basierend auf "Safety DB" durchführen.</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Vulnerability Check</source>
+      <translation>Verwundbarkeitsprüfung</translation>
+    </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>
@@ -51904,6 +51914,11 @@
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Affected Version</source>
+      <translation>Betroffene Version</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Select to show verbose package information</source>
       <translation>Auswählen, um ausführlichere Informationen anzuzeigen</translation>
     </message>
@@ -51994,104 +52009,104 @@
       <translation>Drücken, um die ausgewählten Pakete in das Python Nutzerverzeichnis zu installieren</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="169" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="177" />
       <source>pip Menu</source>
       <translation>pip Menü</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="195" />
-      <source>Name:</source>
-      <translation>Name:</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="196" />
-      <source>Version:</source>
-      <translation>Version:</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="197" />
-      <source>Location:</source>
-      <translation>Speicherort:</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="198" />
-      <source>Requires:</source>
-      <translation>Erfordert:</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="199" />
-      <source>Summary:</source>
-      <translation>Kurzbeschreibung:</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="200" />
-      <source>Homepage:</source>
-      <translation>Homepage:</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="201" />
-      <source>Author:</source>
-      <translation>Autor:</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="202" />
-      <source>Author Email:</source>
-      <translation>Autor Email:</translation>
-    </message>
-    <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="203" />
-      <source>License:</source>
-      <translation>Lizenz:</translation>
+      <source>Name:</source>
+      <translation>Name:</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="204" />
-      <source>Metadata Version:</source>
-      <translation>Metadaten Version:</translation>
+      <source>Version:</source>
+      <translation>Version:</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="205" />
-      <source>Installer:</source>
-      <translation>Installer:</translation>
+      <source>Location:</source>
+      <translation>Speicherort:</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="206" />
-      <source>Classifiers:</source>
-      <translation>Klassifizierungen:</translation>
+      <source>Requires:</source>
+      <translation>Erfordert:</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="207" />
-      <source>Entry Points:</source>
-      <translation>Einsprungpunkte:</translation>
+      <source>Summary:</source>
+      <translation>Kurzbeschreibung:</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="208" />
+      <source>Homepage:</source>
+      <translation>Homepage:</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="209" />
+      <source>Author:</source>
+      <translation>Autor:</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="210" />
+      <source>Author Email:</source>
+      <translation>Autor Email:</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="211" />
+      <source>License:</source>
+      <translation>Lizenz:</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="212" />
+      <source>Metadata Version:</source>
+      <translation>Metadaten Version:</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="213" />
+      <source>Installer:</source>
+      <translation>Installer:</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="214" />
+      <source>Classifiers:</source>
+      <translation>Klassifizierungen:</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="215" />
+      <source>Entry Points:</source>
+      <translation>Einsprungpunkte:</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="216" />
       <source>Files:</source>
       <translation>Dateien:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="375" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="384" />
       <source>Getting installed packages...</source>
       <translation>Ermittle installierte Pakete...</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="390" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="400" />
       <source>Getting outdated packages...</source>
       <translation>Ermittle veraltete Pakete...</translation>
     </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>PyPI durchsuchen</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="791" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="835" />
       <source>&lt;p&gt;Received an error while searching for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Fehler während der Suche nach &lt;b&gt;{0}&lt;/b&gt; empfangen.&lt;/p&gt;&lt;p&gt;Fehler: {1}&lt;/p&gt;</translation>
     </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>
         <numerusform>%n Paket gefunden.</numerusform>
@@ -52099,116 +52114,142 @@
       </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>Zeige die ersten 20 gefundenen Pakete.</translation>
     </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>&lt;p&gt;There were no results for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation>&lt;p&gt;Es gab keine Ergebnisse für &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="976" />
-      <source>&lt;p&gt;No package details info for &lt;b&gt;{0}&lt;/b&gt; available.&lt;/p&gt;</source>
-      <translation>&lt;p&gt;Keine detaillierten Paketinformationen für &lt;b&gt;{0}&lt;/b&gt; verfügbar.&lt;/p&gt;</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="990" />
-      <source>Install Pip</source>
-      <translation>Pip installieren</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="993" />
-      <source>Install Pip to User-Site</source>
-      <translation>Pip in Nutzerverzeichnis installieren</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="996" />
-      <source>Repair Pip</source>
-      <translation>Pip reparieren</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1116" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1000" />
-      <source>Install Packages</source>
-      <translation>Pakete installieren</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1003" />
-      <source>Install Local Package</source>
-      <translation>Lokales Paket installieren</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1007" />
-      <source>Install Requirements</source>
-      <translation>Paketanforderungen installieren</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1010" />
-      <source>Re-Install Selected Packages</source>
-      <translation>Ausgewählte Pakete neu installieren</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1013" />
-      <source>Uninstall Requirements</source>
-      <translation>Paketanforderungen deinstallieren</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1016" />
-      <source>Generate Requirements...</source>
-      <translation>Anforderungen erzeugen...</translation>
-    </message>
-    <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1020" />
-      <source>Show Cache Info...</source>
-      <translation>Zwischenspeicherinfo...</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1023" />
-      <source>Show Cached Files...</source>
-      <translation>Zwischengespeicherte Dateien...</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1026" />
-      <source>Remove Cached Files...</source>
-      <translation>Zwischengespeicherte Dateien löschen...</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1029" />
-      <source>Purge Cache...</source>
-      <translation>Zwischenspeicher leeren...</translation>
+      <source>&lt;p&gt;No package details info for &lt;b&gt;{0}&lt;/b&gt; available.&lt;/p&gt;</source>
+      <translation>&lt;p&gt;Keine detaillierten Paketinformationen für &lt;b&gt;{0}&lt;/b&gt; verfügbar.&lt;/p&gt;</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1034" />
-      <source>Edit User Configuration...</source>
-      <translation>Nutzerkonfiguration bearbeiten...</translation>
+      <source>Install Pip</source>
+      <translation>Pip installieren</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1037" />
+      <source>Install Pip to User-Site</source>
+      <translation>Pip in Nutzerverzeichnis installieren</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1040" />
+      <source>Repair Pip</source>
+      <translation>Pip reparieren</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1170" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1044" />
+      <source>Install Packages</source>
+      <translation>Pakete installieren</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1047" />
+      <source>Install Local Package</source>
+      <translation>Lokales Paket installieren</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1051" />
+      <source>Install Requirements</source>
+      <translation>Paketanforderungen installieren</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1054" />
+      <source>Re-Install Selected Packages</source>
+      <translation>Ausgewählte Pakete neu installieren</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1057" />
+      <source>Uninstall Requirements</source>
+      <translation>Paketanforderungen deinstallieren</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1060" />
+      <source>Generate Requirements...</source>
+      <translation>Anforderungen erzeugen...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1064" />
+      <source>Check Vulnerabilities</source>
+      <translation>Verwundbarkeiten prüfen</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1068" />
+      <source>Update Vulnerability Database</source>
+      <translation>Verwundbarkeitsdatenbank aktualisieren</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1072" />
+      <source>Show Cache Info...</source>
+      <translation>Zwischenspeicherinfo...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1075" />
+      <source>Show Cached Files...</source>
+      <translation>Zwischengespeicherte Dateien...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1078" />
+      <source>Remove Cached Files...</source>
+      <translation>Zwischengespeicherte Dateien löschen...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1081" />
+      <source>Purge Cache...</source>
+      <translation>Zwischenspeicher leeren...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1086" />
+      <source>Edit User Configuration...</source>
+      <translation>Nutzerkonfiguration bearbeiten...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1089" />
       <source>Edit Environment Configuration...</source>
       <translation>Umgebungskonfiguration bearbeiten...</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1042" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1094" />
       <source>Configure...</source>
       <translation>Einstellungen...</translation>
     </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>Konfiguration bearbeiten</translation>
     </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>Es konnte kein gültiger Konfigurationspfad ermittelt werden. Abbruch</translation>
     </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1447" />
+      <source>{0} {1}</source>
+      <comment>package name, package version</comment>
+      <translation>{0} {1}</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1469" />
+      <source>Affected Version:</source>
+      <translation>Betroffene Version:</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1472" />
+      <source>Advisory:</source>
+      <translation>Advisory:</translation>
+    </message>
   </context>
   <context>
     <name>PipPage</name>
@@ -52218,6 +52259,11 @@
       <translation>&lt;b&gt;Hinweis:&lt;/b&gt; Leer lassen, um den Standardwert für die Index-URL (&lt;a href="{0}"&gt;{0}&lt;/a&gt;) zu verwenden.</translation>
     </message>
     <message>
+      <location filename="../Preferences/ConfigurationPages/PipPage.py" line="34" />
+      <source>&lt;b&gt;Note:&lt;/b&gt; Leave empty to use the default Safety DB URL ({0}).</source>
+      <translation>&lt;b&gt;Hinweis:&lt;/b&gt; Leer lassen, um die Standard Safety DB URL ({0}) zu verwenden.</translation>
+    </message>
+    <message>
       <location filename="../Preferences/ConfigurationPages/PipPage.ui" line="0" />
       <source>&lt;b&gt;Configure pip&lt;/b&gt;</source>
       <translation>&lt;b&gt;pip Einstellungen&lt;/p&gt;</translation>
@@ -52234,6 +52280,36 @@
     </message>
     <message>
       <location filename="../Preferences/ConfigurationPages/PipPage.ui" line="0" />
+      <source>Vulnerability Checks</source>
+      <translation>Verwundbarkeitsprüfungen</translation>
+    </message>
+    <message>
+      <location filename="../Preferences/ConfigurationPages/PipPage.ui" line="0" />
+      <source>Safety DB URL:</source>
+      <translation>Safety DB URL:</translation>
+    </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>Gib den Basis-URL für den zu verwendenden Safety DB Spiegelserver ein</translation>
+    </message>
+    <message>
+      <location filename="../Preferences/ConfigurationPages/PipPage.ui" line="0" />
+      <source>Cache Validity:</source>
+      <translation>Cache Gültigkeit:</translation>
+    </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>Gib die Safety DB Cache Gültigkeitsdauer in Stunden ein (2 Stunden bis 7 Tage)</translation>
+    </message>
+    <message>
+      <location filename="../Preferences/ConfigurationPages/PipPage.ui" line="0" />
+      <source> hours</source>
+      <translation> Stunden</translation>
+    </message>
+    <message>
+      <location filename="../Preferences/ConfigurationPages/PipPage.ui" line="0" />
       <source>Environment</source>
       <translation>Umgebung</translation>
     </message>
@@ -52249,6 +52325,19 @@
     </message>
   </context>
   <context>
+    <name>PipVulnerabilityChecker</name>
+    <message>
+      <location filename="../PipInterface/PipVulnerabilityChecker.py" line="218" />
+      <source>Fetching Vulnerability Database</source>
+      <translation>Verwundbarkeitsdatenbank holen</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipVulnerabilityChecker.py" line="219" />
+      <source>&lt;p&gt;The vulnerability database &lt;b&gt;{0}&lt;/b&gt; could not be loaded from &lt;b&gt;{1}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;The vulnerability check is not available.&lt;/p&gt;</source>
+      <translation>&lt;p&gt;Die Verwundbarkeitsdatenbank &lt;b&gt;{0}&lt;/b&gt; konnte nicht von &lt;b&gt;{1}&lt;/b&gt; geladen werden.&lt;/p&gt;&lt;p&gt;Die Verwundbarkeitsprüfung ist nicht verfügbar.&lt;/p&gt;</translation>
+    </message>
+  </context>
+  <context>
     <name>PixmapDiagram</name>
     <message>
       <location filename="../Graphics/PixmapDiagram.py" line="164" />
@@ -53512,18 +53601,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>Einstellungen exportieren</translation>
     </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>Properties-Dateien (*.ini);;Alle Dateien (*)</translation>
     </message>
     <message>
-      <location filename="../Preferences/__init__.py" line="1677" />
+      <location filename="../Preferences/__init__.py" line="1682" />
       <source>Import Preferences</source>
       <translation>Einstellungen importieren</translation>
     </message>
@@ -88156,27 +88245,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>Virtuelle Umgebung Bearbeiten</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="65" />
+      <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="66" />
       <source>Add Virtual Environment</source>
       <translation>Virtuelle Umgebung Hinzufügen</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="73" />
+      <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="74" />
       <source>Virtualenv Target Directory</source>
       <translation>Zielverzeichnis der virtullen Umgebung</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="78" />
+      <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="79" />
       <source>Python Interpreter</source>
       <translation>Python Interpreter</translation>
     </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>Gib den Suchpfad ein, der der PATH Umgebungsvariablen vorangestellt werden soll. Verwende '{0}' als Trenner.</translation>
     </message>
@@ -88773,7 +88862,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>Python Interpreter</translation>
     </message>
--- 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>&lt;project&gt;</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>&lt;p&gt;Received an error while searching for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</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>&lt;p&gt;There were no results for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="976" />
-      <source>&lt;p&gt;No package details info for &lt;b&gt;{0}&lt;/b&gt; available.&lt;/p&gt;</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>&lt;p&gt;No package details info for &lt;b&gt;{0}&lt;/b&gt; available.&lt;/p&gt;</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>&lt;b&gt;Note:&lt;/b&gt; 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>&lt;b&gt;Configure pip&lt;/b&gt;</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>&lt;p&gt;The vulnerability database &lt;b&gt;{0}&lt;/b&gt; could not be loaded from &lt;b&gt;{1}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;The vulnerability check is not available.&lt;/p&gt;</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>
--- a/eric7/i18n/eric7_en.ts	Tue Mar 15 17:35:35 2022 +0100
+++ b/eric7/i18n/eric7_en.ts	Tue Mar 15 17:49:51 2022 +0100
@@ -51056,113 +51056,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>&lt;project&gt;</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>
@@ -51674,6 +51674,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>
@@ -51691,6 +51701,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>
@@ -51781,104 +51796,104 @@
       <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>&lt;p&gt;Received an error while searching for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</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>
         <numerusform>%n package found.</numerusform>
@@ -51886,116 +51901,142 @@
       </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>&lt;p&gt;There were no results for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="976" />
-      <source>&lt;p&gt;No package details info for &lt;b&gt;{0}&lt;/b&gt; available.&lt;/p&gt;</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>&lt;p&gt;No package details info for &lt;b&gt;{0}&lt;/b&gt; available.&lt;/p&gt;</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>
@@ -52005,6 +52046,11 @@
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../Preferences/ConfigurationPages/PipPage.py" line="34" />
+      <source>&lt;b&gt;Note:&lt;/b&gt; 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>&lt;b&gt;Configure pip&lt;/b&gt;</source>
       <translation type="unfinished" />
@@ -52021,6 +52067,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>
@@ -52036,6 +52112,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>&lt;p&gt;The vulnerability database &lt;b&gt;{0}&lt;/b&gt; could not be loaded from &lt;b&gt;{1}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;The vulnerability check is not available.&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+  </context>
+  <context>
     <name>PixmapDiagram</name>
     <message>
       <location filename="../Graphics/PixmapDiagram.py" line="164" />
@@ -53294,18 +53383,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>
@@ -87597,27 +87686,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>
@@ -88191,7 +88280,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>
--- a/eric7/i18n/eric7_es.ts	Tue Mar 15 17:35:35 2022 +0100
+++ b/eric7/i18n/eric7_es.ts	Tue Mar 15 17:49:51 2022 +0100
@@ -51271,113 +51271,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>python ha salido con un error ({0}).</translation>
     </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>python no ha terminado en 30 segundos.</translation>
     </message>
     <message>
-      <location filename="../PipInterface/Pip.py" line="121" />
+      <location filename="../PipInterface/Pip.py" line="133" />
       <source>python could not be started.</source>
       <translation>No se ha podido iniciar python.</translation>
     </message>
     <message>
-      <location filename="../PipInterface/Pip.py" line="181" />
+      <location filename="../PipInterface/Pip.py" line="193" />
       <source>&lt;project&gt;</source>
       <translation>&lt;project&gt;</translation>
     </message>
     <message>
-      <location filename="../PipInterface/Pip.py" line="210" />
+      <location filename="../PipInterface/Pip.py" line="222" />
       <source>Interpreter for Virtual Environment</source>
       <translation>Intérprete para el Entorno Virtual</translation>
     </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>No se ha configurado ningún intérprete para el entorno virtual seleccionado.</translation>
     </message>
     <message>
-      <location filename="../PipInterface/Pip.py" line="246" />
+      <location filename="../PipInterface/Pip.py" line="258" />
       <source>Install PIP</source>
       <translation>Instalar PIP</translation>
     </message>
     <message>
-      <location filename="../PipInterface/Pip.py" line="288" />
+      <location filename="../PipInterface/Pip.py" line="300" />
       <source>Repair PIP</source>
       <translation>Reparar PIP</translation>
     </message>
     <message>
-      <location filename="../PipInterface/Pip.py" line="371" />
+      <location filename="../PipInterface/Pip.py" line="383" />
       <source>Upgrade Packages</source>
       <translation>Actualizar Packages</translation>
     </message>
     <message>
-      <location filename="../PipInterface/Pip.py" line="411" />
+      <location filename="../PipInterface/Pip.py" line="423" />
       <source>Install Packages</source>
       <translation>Instalar Packages</translation>
     </message>
     <message>
-      <location filename="../PipInterface/Pip.py" line="440" />
+      <location filename="../PipInterface/Pip.py" line="452" />
       <source>Install Packages from Requirements</source>
       <translation>Instalar Packages a partir de Requisitos</translation>
     </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>Desinstalar Packages</translation>
-    </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>¿Realmente desea desinstalar estos packages?</translation>
-    </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>Desinstalar Packages</translation>
+    </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>¿Realmente desea desinstalar estos packages?</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/Pip.py" line="527" />
       <source>Uninstall Packages from Requirements</source>
       <translation>Desinstalar Packages a partir de Requisitos</translation>
     </message>
     <message>
-      <location filename="../PipInterface/Pip.py" line="832" />
+      <location filename="../PipInterface/Pip.py" line="844" />
       <source>Cache Info</source>
       <translation>Info de Cache</translation>
     </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>Listar Archivos en Cache</translation>
     </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>Introducir un patrón de archivo (dejar en blanco para todos):</translation>
     </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>Eliminar Archivos en Cache</translation>
     </message>
     <message>
-      <location filename="../PipInterface/Pip.py" line="876" />
+      <location filename="../PipInterface/Pip.py" line="888" />
       <source>Enter a file pattern:</source>
       <translation>Introducir un patrón de archivo:</translation>
     </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>Purgar Cache</translation>
     </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>Desear realmente purgar la cache de pip? Todos los archivos necesitarán descargarse de nuevo.</translation>
     </message>
@@ -51897,6 +51897,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>
@@ -51914,6 +51924,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>Seleccionar para mostrar información minuciosa de package</translation>
     </message>
@@ -52004,104 +52019,104 @@
       <translation>Seleccionar para instalar el package seleccionado en el site de usuario</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="169" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="177" />
       <source>pip Menu</source>
       <translation>Menu pip</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="195" />
-      <source>Name:</source>
-      <translation>Nombre:</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="196" />
-      <source>Version:</source>
-      <translation>Versión:</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="197" />
-      <source>Location:</source>
-      <translation>Ubicación:</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="198" />
-      <source>Requires:</source>
-      <translation>Requiere:</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="199" />
-      <source>Summary:</source>
-      <translation>Resumen:</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="200" />
-      <source>Homepage:</source>
-      <translation>Página Home:</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="201" />
-      <source>Author:</source>
-      <translation>Autor:</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="202" />
-      <source>Author Email:</source>
-      <translation>Correo electrónico del Autor:</translation>
-    </message>
-    <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="203" />
-      <source>License:</source>
-      <translation>Licencia:</translation>
+      <source>Name:</source>
+      <translation>Nombre:</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="204" />
-      <source>Metadata Version:</source>
-      <translation>Versión de Metadatos:</translation>
+      <source>Version:</source>
+      <translation>Versión:</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="205" />
-      <source>Installer:</source>
-      <translation>Instalador:</translation>
+      <source>Location:</source>
+      <translation>Ubicación:</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="206" />
-      <source>Classifiers:</source>
-      <translation>Clasificadores:</translation>
+      <source>Requires:</source>
+      <translation>Requiere:</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="207" />
-      <source>Entry Points:</source>
-      <translation>Puntos de Entrada:</translation>
+      <source>Summary:</source>
+      <translation>Resumen:</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="208" />
+      <source>Homepage:</source>
+      <translation>Página Home:</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="209" />
+      <source>Author:</source>
+      <translation>Autor:</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="210" />
+      <source>Author Email:</source>
+      <translation>Correo electrónico del Autor:</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="211" />
+      <source>License:</source>
+      <translation>Licencia:</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="212" />
+      <source>Metadata Version:</source>
+      <translation>Versión de Metadatos:</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="213" />
+      <source>Installer:</source>
+      <translation>Instalador:</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="214" />
+      <source>Classifiers:</source>
+      <translation>Clasificadores:</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="215" />
+      <source>Entry Points:</source>
+      <translation>Puntos de Entrada:</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="216" />
       <source>Files:</source>
       <translation>Archivos:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="375" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="384" />
       <source>Getting installed packages...</source>
       <translation>Obteniendo packages instalados...</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="390" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="400" />
       <source>Getting outdated packages...</source>
       <translation>Obteniendo packages antiguos...</translation>
     </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>Buscar PyPI</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="791" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="835" />
       <source>&lt;p&gt;Received an error while searching for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Recibido error mientras se buscaba  &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</translation>
     </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>
         <numerusform>%n package encontrado.</numerusform>
@@ -52109,116 +52124,142 @@
       </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>Mostrando los primeros 20 packages encontrados.</translation>
     </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>&lt;p&gt;There were no results for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation>&lt;p&gt;Sin resultados para &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="976" />
-      <source>&lt;p&gt;No package details info for &lt;b&gt;{0}&lt;/b&gt; available.&lt;/p&gt;</source>
-      <translation>&lt;p&gt;No hay info de detalles de package disponible para &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="990" />
-      <source>Install Pip</source>
-      <translation>Instalar Pip</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="993" />
-      <source>Install Pip to User-Site</source>
-      <translation>Instalar Pip en el Sitio de Usuario</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="996" />
-      <source>Repair Pip</source>
-      <translation>Reparar Pip</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1116" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1000" />
-      <source>Install Packages</source>
-      <translation>Instalar Packages</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1003" />
-      <source>Install Local Package</source>
-      <translation>Instalar Package Local</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1007" />
-      <source>Install Requirements</source>
-      <translation>Instalar Requisitos</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1010" />
-      <source>Re-Install Selected Packages</source>
-      <translation>Reinstalar los Packages Seleccionados</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1013" />
-      <source>Uninstall Requirements</source>
-      <translation>Desinstalar Requisitos</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1016" />
-      <source>Generate Requirements...</source>
-      <translation>Generar Requisitos...</translation>
-    </message>
-    <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1020" />
-      <source>Show Cache Info...</source>
-      <translation>Mostrar info de Cache...</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1023" />
-      <source>Show Cached Files...</source>
-      <translation>Mostrar Archivos en Cache...</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1026" />
-      <source>Remove Cached Files...</source>
-      <translation>Eliminar Archivos en Cache...</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1029" />
-      <source>Purge Cache...</source>
-      <translation>Purgar Cache...</translation>
+      <source>&lt;p&gt;No package details info for &lt;b&gt;{0}&lt;/b&gt; available.&lt;/p&gt;</source>
+      <translation>&lt;p&gt;No hay info de detalles de package disponible para &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1034" />
-      <source>Edit User Configuration...</source>
-      <translation>Editar Configuración de Usuario...</translation>
+      <source>Install Pip</source>
+      <translation>Instalar Pip</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1037" />
+      <source>Install Pip to User-Site</source>
+      <translation>Instalar Pip en el Sitio de Usuario</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1040" />
+      <source>Repair Pip</source>
+      <translation>Reparar Pip</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1170" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1044" />
+      <source>Install Packages</source>
+      <translation>Instalar Packages</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1047" />
+      <source>Install Local Package</source>
+      <translation>Instalar Package Local</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1051" />
+      <source>Install Requirements</source>
+      <translation>Instalar Requisitos</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1054" />
+      <source>Re-Install Selected Packages</source>
+      <translation>Reinstalar los Packages Seleccionados</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1057" />
+      <source>Uninstall Requirements</source>
+      <translation>Desinstalar Requisitos</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1060" />
+      <source>Generate Requirements...</source>
+      <translation>Generar Requisitos...</translation>
+    </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>Mostrar info de Cache...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1075" />
+      <source>Show Cached Files...</source>
+      <translation>Mostrar Archivos en Cache...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1078" />
+      <source>Remove Cached Files...</source>
+      <translation>Eliminar Archivos en Cache...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1081" />
+      <source>Purge Cache...</source>
+      <translation>Purgar Cache...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1086" />
+      <source>Edit User Configuration...</source>
+      <translation>Editar Configuración de Usuario...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1089" />
       <source>Edit Environment Configuration...</source>
       <translation>Editar Configuración de Entorno...</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1042" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1094" />
       <source>Configure...</source>
       <translation>Configurar...</translation>
     </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>Editar Configuración</translation>
     </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>No hay una ruta válida de configuración determinada. Abortando</translation>
     </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>
@@ -52228,6 +52269,11 @@
       <translation>&lt;b&gt;Nota:&lt;/b&gt; Dejar vacío para utilizar la URL de índice por defecto (&lt;a href="{0}"&gt;{0}&lt;/a&gt;).</translation>
     </message>
     <message>
+      <location filename="../Preferences/ConfigurationPages/PipPage.py" line="34" />
+      <source>&lt;b&gt;Note:&lt;/b&gt; 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>&lt;b&gt;Configure pip&lt;/b&gt;</source>
       <translation>&lt;b&gt;Configurar pip&lt;/b&gt;</translation>
@@ -52244,6 +52290,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>Entorno</translation>
     </message>
@@ -52259,6 +52335,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>&lt;p&gt;The vulnerability database &lt;b&gt;{0}&lt;/b&gt; could not be loaded from &lt;b&gt;{1}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;The vulnerability check is not available.&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+  </context>
+  <context>
     <name>PixmapDiagram</name>
     <message>
       <location filename="../Graphics/PixmapDiagram.py" line="164" />
@@ -53521,18 +53610,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>Exportar Preferencias</translation>
     </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>Archivo de Propiedades (*.ini);;Todos los archivos (*)</translation>
     </message>
     <message>
-      <location filename="../Preferences/__init__.py" line="1677" />
+      <location filename="../Preferences/__init__.py" line="1682" />
       <source>Import Preferences</source>
       <translation>Importar Preferencias</translation>
     </message>
@@ -88231,27 +88320,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>Editar Entorno Virtual</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="65" />
+      <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="66" />
       <source>Add Virtual Environment</source>
       <translation>Añadir Entorno Virtual</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="73" />
+      <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="74" />
       <source>Virtualenv Target Directory</source>
       <translation>Directorio de Destino para el Virtualenv</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="78" />
+      <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="79" />
       <source>Python Interpreter</source>
       <translation>Intérprete de Python</translation>
     </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>Introducir la ruta de búsqueda del ejecutable a anteponer a la variable de entorno PATH. Usar '{0}' como separador.</translation>
     </message>
@@ -88848,7 +88937,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>Intérprete de Python</translation>
     </message>
--- a/eric7/i18n/eric7_fr.ts	Tue Mar 15 17:35:35 2022 +0100
+++ b/eric7/i18n/eric7_fr.ts	Tue Mar 15 17:49:51 2022 +0100
@@ -55075,113 +55075,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>python a quitté avec l'erreur ({0}).</translation>
     </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>python n'a pas terminé dans les 30 secondes.</translation>
     </message>
     <message>
-      <location filename="../PipInterface/Pip.py" line="121" />
+      <location filename="../PipInterface/Pip.py" line="133" />
       <source>python could not be started.</source>
       <translation>python n'a pas pu être démarré.</translation>
     </message>
     <message>
-      <location filename="../PipInterface/Pip.py" line="181" />
+      <location filename="../PipInterface/Pip.py" line="193" />
       <source>&lt;project&gt;</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>Installer PIP</translation>
     </message>
     <message>
-      <location filename="../PipInterface/Pip.py" line="288" />
+      <location filename="../PipInterface/Pip.py" line="300" />
       <source>Repair PIP</source>
       <translation>Réparer PIP</translation>
     </message>
     <message>
-      <location filename="../PipInterface/Pip.py" line="371" />
+      <location filename="../PipInterface/Pip.py" line="383" />
       <source>Upgrade Packages</source>
       <translation>Mise à jour des packages</translation>
     </message>
     <message>
-      <location filename="../PipInterface/Pip.py" line="411" />
+      <location filename="../PipInterface/Pip.py" line="423" />
       <source>Install Packages</source>
       <translation>Installer des packages</translation>
     </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>Désinstaller les packages</translation>
-    </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>Voulez-vous vraiment désinstaller ces packages ?</translation>
-    </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>Désinstaller les packages</translation>
+    </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>Voulez-vous vraiment désinstaller ces packages ?</translation>
+    </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>
@@ -55748,6 +55748,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>
@@ -55765,6 +55775,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>
@@ -55855,104 +55870,104 @@
       <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>Nom :</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="196" />
-      <source>Version:</source>
-      <translation>Version :</translation>
-    </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>Nécessite :</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="199" />
-      <source>Summary:</source>
-      <translation>Bilan :</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="200" />
-      <source>Homepage:</source>
-      <translation>Page d'accueil :</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="201" />
-      <source>Author:</source>
-      <translation>Auteur :</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="202" />
-      <source>Author Email:</source>
-      <translation>Courreil de l'auteur :</translation>
-    </message>
-    <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="203" />
-      <source>License:</source>
-      <translation>Licence :</translation>
+      <source>Name:</source>
+      <translation>Nom :</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="204" />
-      <source>Metadata Version:</source>
-      <translation type="unfinished" />
+      <source>Version:</source>
+      <translation>Version :</translation>
     </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>
-      <translation type="unfinished" />
+      <source>Requires:</source>
+      <translation>Nécessite :</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="207" />
-      <source>Entry Points:</source>
-      <translation type="unfinished" />
+      <source>Summary:</source>
+      <translation>Bilan :</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="208" />
+      <source>Homepage:</source>
+      <translation>Page d'accueil :</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="209" />
+      <source>Author:</source>
+      <translation>Auteur :</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="210" />
+      <source>Author Email:</source>
+      <translation>Courreil de l'auteur :</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="211" />
+      <source>License:</source>
+      <translation>Licence :</translation>
+    </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>Fichiers :</translation>
     </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>&lt;p&gt;Received an error while searching for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</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>
         <numerusform>%n package trouvé.</numerusform>
@@ -55960,117 +55975,143 @@
       </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>&lt;p&gt;There were no results for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="976" />
-      <source>&lt;p&gt;No package details info for &lt;b&gt;{0}&lt;/b&gt; available.&lt;/p&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="990" />
-      <source>Install Pip</source>
-      <translation>Installer pip</translation>
-    </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>Réparer Pip</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1116" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1000" />
-      <source>Install Packages</source>
-      <translation>Installer des packages</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1003" />
-      <source>Install Local Package</source>
-      <translation>Installer un package local</translation>
-    </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>&lt;p&gt;No package details info for &lt;b&gt;{0}&lt;/b&gt; available.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1034" />
-      <source>Edit User Configuration...</source>
-      <translation>Éditer la configuration utilisateur...</translation>
+      <source>Install Pip</source>
+      <translation>Installer pip</translation>
     </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>Réparer Pip</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1170" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1044" />
+      <source>Install Packages</source>
+      <translation>Installer des packages</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1047" />
+      <source>Install Local Package</source>
+      <translation>Installer un package local</translation>
+    </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>Éditer la configuration utilisateur...</translation>
+    </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>Configuration...</translation>
     </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>Éditer la configuration</translation>
     </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>Pas de chemin de configuration déterminé. Annulation</translation>
     </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>
+    <message>
       <source>&lt;p&gt;The package search did not return anything.&lt;/p&gt;</source>
       <translation type="vanished">&lt;p&gt;La recherche de package n'a rien retourné.&lt;/p&gt;</translation>
     </message>
@@ -56099,6 +56140,11 @@
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../Preferences/ConfigurationPages/PipPage.py" line="34" />
+      <source>&lt;b&gt;Note:&lt;/b&gt; 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>&lt;b&gt;Configure pip&lt;/b&gt;</source>
       <translation>&lt;b&gt;Configuration pip&lt;/b&gt;</translation>
@@ -56115,6 +56161,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">Environment</translation>
     </message>
@@ -56141,6 +56217,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>&lt;p&gt;The vulnerability database &lt;b&gt;{0}&lt;/b&gt; could not be loaded from &lt;b&gt;{1}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;The vulnerability check is not available.&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+  </context>
+  <context>
     <name>PixmapDiagram</name>
     <message>
       <location filename="../Graphics/PixmapDiagram.py" line="164" />
@@ -57424,18 +57513,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>Export des préférences</translation>
     </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>Fichier propriétés (*.ini);;Tous les fichiers (*)</translation>
     </message>
     <message>
-      <location filename="../Preferences/__init__.py" line="1677" />
+      <location filename="../Preferences/__init__.py" line="1682" />
       <source>Import Preferences</source>
       <translation>Import des préférences</translation>
     </message>
@@ -93583,27 +93672,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">Ajouter environnement virtuel</translation>
     </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>Interpréteur Python</translation>
     </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>
@@ -94209,7 +94298,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>Interpréteur Python</translation>
     </message>
--- a/eric7/i18n/eric7_it.ts	Tue Mar 15 17:35:35 2022 +0100
+++ b/eric7/i18n/eric7_it.ts	Tue Mar 15 17:49:51 2022 +0100
@@ -56905,113 +56905,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>&lt;project&gt;</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>
@@ -57558,6 +57558,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>
@@ -57575,6 +57585,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>
@@ -57665,104 +57680,104 @@
       <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">Nome:</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="196" />
-      <source>Version:</source>
-      <translation type="unfinished">Versione:</translation>
-    </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">Autore:</translation>
-    </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>
-      <translation type="unfinished" />
+      <source>Name:</source>
+      <translation type="unfinished">Nome:</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="204" />
-      <source>Metadata Version:</source>
-      <translation type="unfinished" />
+      <source>Version:</source>
+      <translation type="unfinished">Versione:</translation>
     </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">Autore:</translation>
+    </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>&lt;p&gt;Received an error while searching for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</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 />
@@ -57770,116 +57785,142 @@
       </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>&lt;p&gt;There were no results for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="976" />
-      <source>&lt;p&gt;No package details info for &lt;b&gt;{0}&lt;/b&gt; available.&lt;/p&gt;</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>&lt;p&gt;No package details info for &lt;b&gt;{0}&lt;/b&gt; available.&lt;/p&gt;</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">Configura...</translation>
     </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">{0} {1}</translation>
+    </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>
@@ -57889,6 +57930,11 @@
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../Preferences/ConfigurationPages/PipPage.py" line="34" />
+      <source>&lt;b&gt;Note:&lt;/b&gt; 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>&lt;b&gt;Configure pip&lt;/b&gt;</source>
       <translation type="unfinished" />
@@ -57905,6 +57951,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>
@@ -57931,6 +58007,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>&lt;p&gt;The vulnerability database &lt;b&gt;{0}&lt;/b&gt; could not be loaded from &lt;b&gt;{1}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;The vulnerability check is not available.&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+  </context>
+  <context>
     <name>PixmapDiagram</name>
     <message>
       <location filename="../Graphics/PixmapDiagram.py" line="164" />
@@ -59210,18 +59299,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>Esporta Preferenze</translation>
     </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>File proprietà (*.ini);;Tutti i file(*)</translation>
     </message>
     <message>
-      <location filename="../Preferences/__init__.py" line="1677" />
+      <location filename="../Preferences/__init__.py" line="1682" />
       <source>Import Preferences</source>
       <translation>Importa Preferenze</translation>
     </message>
@@ -95590,27 +95679,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>
@@ -96184,7 +96273,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>
--- a/eric7/i18n/eric7_pt.ts	Tue Mar 15 17:35:35 2022 +0100
+++ b/eric7/i18n/eric7_pt.ts	Tue Mar 15 17:49:51 2022 +0100
@@ -56394,113 +56394,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>&lt;project&gt;</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>
@@ -57055,6 +57055,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>
@@ -57072,6 +57082,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>
@@ -57162,104 +57177,104 @@
       <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">Nome:</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="196" />
-      <source>Version:</source>
-      <translation type="unfinished">Versão:</translation>
-    </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">Autor:</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="202" />
-      <source>Author Email:</source>
-      <translation type="unfinished">Correio Eletrónico do Autor:</translation>
-    </message>
-    <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="203" />
-      <source>License:</source>
-      <translation type="unfinished" />
+      <source>Name:</source>
+      <translation type="unfinished">Nome:</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="204" />
-      <source>Metadata Version:</source>
-      <translation type="unfinished" />
+      <source>Version:</source>
+      <translation type="unfinished">Versão:</translation>
     </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">Autor:</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="210" />
+      <source>Author Email:</source>
+      <translation type="unfinished">Correio Eletrónico do Autor:</translation>
+    </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>&lt;p&gt;Received an error while searching for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</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 />
@@ -57267,117 +57282,143 @@
       </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>&lt;p&gt;There were no results for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="976" />
-      <source>&lt;p&gt;No package details info for &lt;b&gt;{0}&lt;/b&gt; available.&lt;/p&gt;</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>&lt;p&gt;No package details info for &lt;b&gt;{0}&lt;/b&gt; available.&lt;/p&gt;</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">Configurar...</translation>
     </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>
+    <message>
       <source>Error: {0}</source>
       <translation type="vanished">Erro: {0}</translation>
     </message>
@@ -57390,6 +57431,11 @@
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../Preferences/ConfigurationPages/PipPage.py" line="34" />
+      <source>&lt;b&gt;Note:&lt;/b&gt; 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>&lt;b&gt;Configure pip&lt;/b&gt;</source>
       <translation type="unfinished" />
@@ -57406,6 +57452,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>
@@ -57436,6 +57512,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>&lt;p&gt;The vulnerability database &lt;b&gt;{0}&lt;/b&gt; could not be loaded from &lt;b&gt;{1}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;The vulnerability check is not available.&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+  </context>
+  <context>
     <name>PixmapDiagram</name>
     <message>
       <location filename="../Graphics/PixmapDiagram.py" line="164" />
@@ -58714,18 +58803,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>Exportar Preferências</translation>
     </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>Ficheiro de Propriedades (*.ini);;Ficheiros Todos (*)</translation>
     </message>
     <message>
-      <location filename="../Preferences/__init__.py" line="1677" />
+      <location filename="../Preferences/__init__.py" line="1682" />
       <source>Import Preferences</source>
       <translation>Importar Preferências</translation>
     </message>
@@ -94082,27 +94171,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">Intérprete de Python</translation>
     </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>
@@ -94676,7 +94765,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">Intérprete de Python</translation>
     </message>
--- a/eric7/i18n/eric7_ru.ts	Tue Mar 15 17:35:35 2022 +0100
+++ b/eric7/i18n/eric7_ru.ts	Tue Mar 15 17:49:51 2022 +0100
@@ -51351,113 +51351,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>python завершен с ошибкой ({0}).</translation>
     </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>python не завершился в течение 30 секунд.</translation>
     </message>
     <message>
-      <location filename="../PipInterface/Pip.py" line="121" />
+      <location filename="../PipInterface/Pip.py" line="133" />
       <source>python could not be started.</source>
       <translation>невозможно запустить python.</translation>
     </message>
     <message>
-      <location filename="../PipInterface/Pip.py" line="181" />
+      <location filename="../PipInterface/Pip.py" line="193" />
       <source>&lt;project&gt;</source>
       <translation>&lt;project&gt;</translation>
     </message>
     <message>
-      <location filename="../PipInterface/Pip.py" line="210" />
+      <location filename="../PipInterface/Pip.py" line="222" />
       <source>Interpreter for Virtual Environment</source>
       <translation>Интерпретатор для виртуального окружения</translation>
     </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>Для выбранного виртуального окружения не настроен интерпретатор.</translation>
     </message>
     <message>
-      <location filename="../PipInterface/Pip.py" line="246" />
+      <location filename="../PipInterface/Pip.py" line="258" />
       <source>Install PIP</source>
       <translation>Установка PIP</translation>
     </message>
     <message>
-      <location filename="../PipInterface/Pip.py" line="288" />
+      <location filename="../PipInterface/Pip.py" line="300" />
       <source>Repair PIP</source>
       <translation>Восстановление PIP</translation>
     </message>
     <message>
-      <location filename="../PipInterface/Pip.py" line="371" />
+      <location filename="../PipInterface/Pip.py" line="383" />
       <source>Upgrade Packages</source>
       <translation>Обновление пакетов</translation>
     </message>
     <message>
-      <location filename="../PipInterface/Pip.py" line="411" />
+      <location filename="../PipInterface/Pip.py" line="423" />
       <source>Install Packages</source>
       <translation>Установка пакетов</translation>
     </message>
     <message>
-      <location filename="../PipInterface/Pip.py" line="440" />
+      <location filename="../PipInterface/Pip.py" line="452" />
       <source>Install Packages from Requirements</source>
       <translation>Установка пакетов, перечисленных в зависимостях</translation>
     </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>Деинсталяция пакетов</translation>
-    </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>Вы действительно хотите деинсталировать эти пакеты?</translation>
-    </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>Деинсталяция пакетов</translation>
+    </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>Вы действительно хотите деинсталировать эти пакеты?</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/Pip.py" line="527" />
       <source>Uninstall Packages from Requirements</source>
       <translation>Деинсталяция пакетов, перечисленных в зависимостях</translation>
     </message>
     <message>
-      <location filename="../PipInterface/Pip.py" line="832" />
+      <location filename="../PipInterface/Pip.py" line="844" />
       <source>Cache Info</source>
       <translation>Информация о кэше</translation>
     </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>Список кэшированных файлов</translation>
     </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>Задайте шаблон файлов (пустая строка - все файлы):</translation>
     </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>Удалить кэшированные файлы</translation>
     </message>
     <message>
-      <location filename="../PipInterface/Pip.py" line="876" />
+      <location filename="../PipInterface/Pip.py" line="888" />
       <source>Enter a file pattern:</source>
       <translation>Задайте шаблон файла:</translation>
     </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>Очистить кэш</translation>
     </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>Вы действительно хотите очистить pip-кэш? Все файлы должны быть загружены снова.</translation>
     </message>
@@ -51977,6 +51977,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>
@@ -51994,6 +52004,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>Разрешить отображение подробной информации о пакете</translation>
     </message>
@@ -52084,104 +52099,104 @@
       <translation>Установить выбранный пакет в user site</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="169" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="177" />
       <source>pip Menu</source>
       <translation>Меню pip</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="195" />
-      <source>Name:</source>
-      <translation>Имя:</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="196" />
-      <source>Version:</source>
-      <translation>Версия:</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="197" />
-      <source>Location:</source>
-      <translation>Расположение:</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="198" />
-      <source>Requires:</source>
-      <translation>Зависимости:</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="199" />
-      <source>Summary:</source>
-      <translation>Аннотация:</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="200" />
-      <source>Homepage:</source>
-      <translation>Домашняя страница:</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="201" />
-      <source>Author:</source>
-      <translation>Автор:</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="202" />
-      <source>Author Email:</source>
-      <translation>Email автора:</translation>
-    </message>
-    <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="203" />
-      <source>License:</source>
-      <translation>Лицензия:</translation>
+      <source>Name:</source>
+      <translation>Имя:</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="204" />
-      <source>Metadata Version:</source>
-      <translation>Версия Metadata:</translation>
+      <source>Version:</source>
+      <translation>Версия:</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="205" />
-      <source>Installer:</source>
-      <translation>Установщик:</translation>
+      <source>Location:</source>
+      <translation>Расположение:</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="206" />
-      <source>Classifiers:</source>
-      <translation>Классификаторы:</translation>
+      <source>Requires:</source>
+      <translation>Зависимости:</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="207" />
-      <source>Entry Points:</source>
-      <translation>Точки входа:</translation>
+      <source>Summary:</source>
+      <translation>Аннотация:</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="208" />
+      <source>Homepage:</source>
+      <translation>Домашняя страница:</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="209" />
+      <source>Author:</source>
+      <translation>Автор:</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="210" />
+      <source>Author Email:</source>
+      <translation>Email автора:</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="211" />
+      <source>License:</source>
+      <translation>Лицензия:</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="212" />
+      <source>Metadata Version:</source>
+      <translation>Версия Metadata:</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="213" />
+      <source>Installer:</source>
+      <translation>Установщик:</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="214" />
+      <source>Classifiers:</source>
+      <translation>Классификаторы:</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="215" />
+      <source>Entry Points:</source>
+      <translation>Точки входа:</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="216" />
       <source>Files:</source>
       <translation>Файлы:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="375" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="384" />
       <source>Getting installed packages...</source>
       <translation>Получение списка установленных пакетов...</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="390" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="400" />
       <source>Getting outdated packages...</source>
       <translation>Получение списка обновленных пакетов...</translation>
     </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>Поиск в PyPI</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="791" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="835" />
       <source>&lt;p&gt;Received an error while searching for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Получена ошибка при поиске &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;Ошибка: {1}&lt;/p&gt;</translation>
     </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>
         <numerusform>Найден %n пакет.</numerusform>
@@ -52190,116 +52205,142 @@
       </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>Показаны первые 20 найденных пакетов.</translation>
     </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>&lt;p&gt;There were no results for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation>&lt;p&gt;Нет результатов по запросу &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="976" />
-      <source>&lt;p&gt;No package details info for &lt;b&gt;{0}&lt;/b&gt; available.&lt;/p&gt;</source>
-      <translation>&lt;p&gt;Недоступна подробная информация о пакете &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="990" />
-      <source>Install Pip</source>
-      <translation>Инсталировать Pip</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="993" />
-      <source>Install Pip to User-Site</source>
-      <translation>Инсталировать Pip в User-Site</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="996" />
-      <source>Repair Pip</source>
-      <translation>Восстановить Pip</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1116" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1000" />
-      <source>Install Packages</source>
-      <translation>Установить пакеты</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1003" />
-      <source>Install Local Package</source>
-      <translation>Установить локальный пакет</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1007" />
-      <source>Install Requirements</source>
-      <translation>Установить зависимости</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1010" />
-      <source>Re-Install Selected Packages</source>
-      <translation>Переинсталировать выбранные пакеты</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1013" />
-      <source>Uninstall Requirements</source>
-      <translation>Деинсталировать зависимости</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1016" />
-      <source>Generate Requirements...</source>
-      <translation>Генерация зависимостей...</translation>
-    </message>
-    <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1020" />
-      <source>Show Cache Info...</source>
-      <translation>Показать информацию о кэше...</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1023" />
-      <source>Show Cached Files...</source>
-      <translation>Показать кэшированные файлы...</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1026" />
-      <source>Remove Cached Files...</source>
-      <translation>Удалить кэшированные файлы...</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1029" />
-      <source>Purge Cache...</source>
-      <translation>Очистить кэш...</translation>
+      <source>&lt;p&gt;No package details info for &lt;b&gt;{0}&lt;/b&gt; available.&lt;/p&gt;</source>
+      <translation>&lt;p&gt;Недоступна подробная информация о пакете &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1034" />
-      <source>Edit User Configuration...</source>
-      <translation>Правка конфигурации пользователя...</translation>
+      <source>Install Pip</source>
+      <translation>Инсталировать Pip</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="1037" />
+      <source>Install Pip to User-Site</source>
+      <translation>Инсталировать Pip в User-Site</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1040" />
+      <source>Repair Pip</source>
+      <translation>Восстановить Pip</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1170" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1044" />
+      <source>Install Packages</source>
+      <translation>Установить пакеты</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1047" />
+      <source>Install Local Package</source>
+      <translation>Установить локальный пакет</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1051" />
+      <source>Install Requirements</source>
+      <translation>Установить зависимости</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1054" />
+      <source>Re-Install Selected Packages</source>
+      <translation>Переинсталировать выбранные пакеты</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1057" />
+      <source>Uninstall Requirements</source>
+      <translation>Деинсталировать зависимости</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1060" />
+      <source>Generate Requirements...</source>
+      <translation>Генерация зависимостей...</translation>
+    </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>Показать информацию о кэше...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1075" />
+      <source>Show Cached Files...</source>
+      <translation>Показать кэшированные файлы...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1078" />
+      <source>Remove Cached Files...</source>
+      <translation>Удалить кэшированные файлы...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1081" />
+      <source>Purge Cache...</source>
+      <translation>Очистить кэш...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1086" />
+      <source>Edit User Configuration...</source>
+      <translation>Правка конфигурации пользователя...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1089" />
       <source>Edit Environment Configuration...</source>
       <translation>Правка конфигурации среды окружения...</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1042" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1094" />
       <source>Configure...</source>
       <translation>Настроить...</translation>
     </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>Правка конфигурации</translation>
     </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>Не определен допустимый путь конфигурации. Прерывание</translation>
     </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>
@@ -52309,6 +52350,11 @@
       <translation>&lt;b&gt;Примечание:&lt;/b&gt; Не заполняйте строку если используете PyPI по умолчанию (&lt;a href="{0}"&gt;{0}&lt;/a&gt;).</translation>
     </message>
     <message>
+      <location filename="../Preferences/ConfigurationPages/PipPage.py" line="34" />
+      <source>&lt;b&gt;Note:&lt;/b&gt; 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>&lt;b&gt;Configure pip&lt;/b&gt;</source>
       <translation>&lt;b&gt;Настройка менеджера пакетов pip&lt;/b&gt;</translation>
@@ -52325,6 +52371,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>Среда окружения</translation>
     </message>
@@ -52340,6 +52416,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>&lt;p&gt;The vulnerability database &lt;b&gt;{0}&lt;/b&gt; could not be loaded from &lt;b&gt;{1}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;The vulnerability check is not available.&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+  </context>
+  <context>
     <name>PixmapDiagram</name>
     <message>
       <location filename="../Graphics/PixmapDiagram.py" line="164" />
@@ -53604,18 +53693,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>Экспорт Preferences</translation>
     </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>Файлы Preferences (*.ini);;Все файлы (*)</translation>
     </message>
     <message>
-      <location filename="../Preferences/__init__.py" line="1677" />
+      <location filename="../Preferences/__init__.py" line="1682" />
       <source>Import Preferences</source>
       <translation>Импорт Preferences</translation>
     </message>
@@ -88459,27 +88548,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>Редактировать виртуальное окружение</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="65" />
+      <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="66" />
       <source>Add Virtual Environment</source>
       <translation>Добавить виртуальное окружение</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="73" />
+      <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="74" />
       <source>Virtualenv Target Directory</source>
       <translation>Целевая директория Virtualenv</translation>
     </message>
     <message>
-      <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="78" />
+      <location filename="../VirtualEnv/VirtualenvAddEditDialog.py" line="79" />
       <source>Python Interpreter</source>
       <translation>Интерпретатор Python</translation>
     </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>Задайте выполнимый путь поиска, который будет добавлен к переменной среды окружения PATH. Используйте '{0}' в качестве разделителя.</translation>
     </message>
@@ -89077,7 +89166,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>Интерпретатор Python</translation>
     </message>
--- a/eric7/i18n/eric7_tr.ts	Tue Mar 15 17:35:35 2022 +0100
+++ b/eric7/i18n/eric7_tr.ts	Tue Mar 15 17:49:51 2022 +0100
@@ -55110,113 +55110,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>&lt;project&gt;</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>
@@ -55759,6 +55759,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>
@@ -55776,6 +55786,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>
@@ -55866,104 +55881,104 @@
       <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">Adı:</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="196" />
-      <source>Version:</source>
-      <translation type="unfinished">Sürüm:</translation>
-    </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">Yazar:</translation>
-    </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>
-      <translation type="unfinished" />
+      <source>Name:</source>
+      <translation type="unfinished">Adı:</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="204" />
-      <source>Metadata Version:</source>
-      <translation type="unfinished" />
+      <source>Version:</source>
+      <translation type="unfinished">Sürüm:</translation>
     </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">Yazar:</translation>
+    </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>&lt;p&gt;Received an error while searching for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</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 />
@@ -55971,117 +55986,143 @@
       </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>&lt;p&gt;There were no results for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="976" />
-      <source>&lt;p&gt;No package details info for &lt;b&gt;{0}&lt;/b&gt; available.&lt;/p&gt;</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>&lt;p&gt;No package details info for &lt;b&gt;{0}&lt;/b&gt; available.&lt;/p&gt;</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">Ayarlanıyor...</translation>
     </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>
+    <message>
       <source>Error: {0}</source>
       <translation type="vanished">Hata: {0}</translation>
     </message>
@@ -56094,6 +56135,11 @@
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../Preferences/ConfigurationPages/PipPage.py" line="34" />
+      <source>&lt;b&gt;Note:&lt;/b&gt; 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>&lt;b&gt;Configure pip&lt;/b&gt;</source>
       <translation type="unfinished" />
@@ -56110,6 +56156,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>
@@ -56140,6 +56216,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>&lt;p&gt;The vulnerability database &lt;b&gt;{0}&lt;/b&gt; could not be loaded from &lt;b&gt;{1}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;The vulnerability check is not available.&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+  </context>
+  <context>
     <name>PixmapDiagram</name>
     <message>
       <location filename="../Graphics/PixmapDiagram.py" line="164" />
@@ -57406,18 +57495,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>Seçenekleri Dışa Aktar</translation>
     </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>Seçenekleri İçe Aktar</translation>
     </message>
@@ -92848,27 +92937,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>
@@ -93442,7 +93531,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>
--- a/eric7/i18n/eric7_zh_CN.ts	Tue Mar 15 17:35:35 2022 +0100
+++ b/eric7/i18n/eric7_zh_CN.ts	Tue Mar 15 17:49:51 2022 +0100
@@ -55975,113 +55975,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>&lt;project&gt;</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">卸载包</translation>
-    </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">卸载包</translation>
+    </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>
@@ -56632,6 +56632,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>
@@ -56649,6 +56659,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>
@@ -56739,221 +56754,247 @@
       <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">名称:</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="196" />
-      <source>Version:</source>
-      <translation type="unfinished">版本:</translation>
-    </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">作者:</translation>
-    </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>
-      <translation type="unfinished" />
+      <source>Name:</source>
+      <translation type="unfinished">名称:</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.py" line="204" />
-      <source>Metadata Version:</source>
-      <translation type="unfinished" />
+      <source>Version:</source>
+      <translation type="unfinished">版本:</translation>
     </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">作者:</translation>
+    </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>&lt;p&gt;Received an error while searching for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</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>&lt;p&gt;There were no results for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="976" />
-      <source>&lt;p&gt;No package details info for &lt;b&gt;{0}&lt;/b&gt; available.&lt;/p&gt;</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>&lt;p&gt;No package details info for &lt;b&gt;{0}&lt;/b&gt; available.&lt;/p&gt;</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">配置…</translation>
     </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">{0} {1}</translation>
+    </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>
+    <message>
       <source>Error: {0}</source>
       <translation type="vanished">错误:{0}</translation>
     </message>
@@ -56966,6 +57007,11 @@
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../Preferences/ConfigurationPages/PipPage.py" line="34" />
+      <source>&lt;b&gt;Note:&lt;/b&gt; 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>&lt;b&gt;Configure pip&lt;/b&gt;</source>
       <translation type="unfinished" />
@@ -56982,6 +57028,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>
@@ -57012,6 +57088,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>&lt;p&gt;The vulnerability database &lt;b&gt;{0}&lt;/b&gt; could not be loaded from &lt;b&gt;{1}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;The vulnerability check is not available.&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+  </context>
+  <context>
     <name>PixmapDiagram</name>
     <message>
       <location filename="../Graphics/PixmapDiagram.py" line="164" />
@@ -58307,18 +58396,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>导出首选项</translation>
     </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>属性文件 (*.ini);;所有文件 (*)</translation>
     </message>
     <message>
-      <location filename="../Preferences/__init__.py" line="1677" />
+      <location filename="../Preferences/__init__.py" line="1682" />
       <source>Import Preferences</source>
       <translation>导入首选项</translation>
     </message>
@@ -94685,27 +94774,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>
@@ -95279,7 +95368,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>

eric ide

mercurial