pip Interface eric7

Sat, 14 Dec 2024 13:03:11 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 14 Dec 2024 13:03:11 +0100
branch
eric7
changeset 11093
e8932a99beb4
parent 11092
e2aaf07ef8fd
child 11094
0cbc2ec68d2a

pip Interface
- Changed the package search function to open an external web browser with the package search term (PyPI does not support programmatic search anymore).

docs/changelog.md file | annotate | diff | comparison | revisions
src/eric7/APIs/Python3/eric7.api file | annotate | diff | comparison | revisions
src/eric7/APIs/Python3/eric7.bas file | annotate | diff | comparison | revisions
src/eric7/Documentation/Help/source.qch file | annotate | diff | comparison | revisions
src/eric7/Documentation/Help/source.qhp file | annotate | diff | comparison | revisions
src/eric7/Documentation/Source/eric7.PipInterface.PipPackagesWidget.html file | annotate | diff | comparison | revisions
src/eric7/PipInterface/PipPackagesWidget.py file | annotate | diff | comparison | revisions
src/eric7/PipInterface/PipPackagesWidget.ui file | annotate | diff | comparison | revisions
src/eric7/PipInterface/Ui_PipPackagesWidget.py file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_cs.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_de.qm file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_de.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_empty.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_en.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_es.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_fr.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_it.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_pt.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_ru.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_tr.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_zh_CN.ts file | annotate | diff | comparison | revisions
--- a/docs/changelog.md	Thu Dec 12 11:42:04 2024 +0100
+++ b/docs/changelog.md	Sat Dec 14 13:03:11 2024 +0100
@@ -11,6 +11,9 @@
 - pip Interface
     - Added an action button to clean up the site-packages directory of
       the selected environment.
+    - Changed the package search function to open an external web browser
+      with the package search term (PyPI does not support programmatic
+      search anymore).
 
 ### Version 24.12
 - bug fixes
--- a/src/eric7/APIs/Python3/eric7.api	Thu Dec 12 11:42:04 2024 +0100
+++ b/src/eric7/APIs/Python3/eric7.api	Sat Dec 14 13:03:11 2024 +0100
@@ -3918,8 +3918,6 @@
 eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_dependencyRepairAllButton_clicked?4()
 eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_dependencyRepairButton_clicked?4()
 eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_environmentsComboBox_currentTextChanged?4(name)
-eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_installButton_clicked?4()
-eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_installUserSiteButton_clicked?4()
 eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_installedFilesCheckBox_clicked?4(checked)
 eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_localCheckBox_clicked?4()
 eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_localDepCheckBox_clicked?4()
@@ -3930,15 +3928,8 @@
 eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_refreshDependenciesButton_clicked?4()
 eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_requiresButton_toggled?4(checked)
 eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_searchButton_clicked?4()
-eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_searchMoreButton_clicked?4()
-eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_searchNameEdit_returnPressed?4()
-eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_searchNameEdit_textChanged?4(_txt)
-eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_searchResultList_itemActivated?4(item, column)
-eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_searchResultList_itemSelectionChanged?4()
-eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_searchToggleButton_1_toggled?4(checked)
-eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_searchToggleButton_2_toggled?4(checked)
+eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_searchEdit_returnPressed?4()
 eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_showDepPackageDetailsButton_clicked?4()
-eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_showDetailsButton_clicked?4()
 eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_showPackageDetailsButton_clicked?4()
 eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_uninstallButton_clicked?4()
 eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_upgradeAllButton_clicked?4()
@@ -3951,12 +3942,6 @@
 eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.preferencesChanged?4()
 eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.setVulnerabilityEnabled?4(enable)
 eric7.PipInterface.PipPackagesWidget.PipPackagesWidget?1(pip, parent=None)
-eric7.PipInterface.PipPackagesWidget.PypiSearchResultsParser.ClassPrefix?7
-eric7.PipInterface.PipPackagesWidget.PypiSearchResultsParser.getResults?4()
-eric7.PipInterface.PipPackagesWidget.PypiSearchResultsParser.handle_data?4(data)
-eric7.PipInterface.PipPackagesWidget.PypiSearchResultsParser.handle_endtag?4(_tag)
-eric7.PipInterface.PipPackagesWidget.PypiSearchResultsParser.handle_starttag?4(tag, attrs)
-eric7.PipInterface.PipPackagesWidget.PypiSearchResultsParser?1(data)
 eric7.PipInterface.PipPackagesWindow.PipPackagesWindow.closeEvent?4(evt)
 eric7.PipInterface.PipPackagesWindow.PipPackagesWindow?1(parent=None)
 eric7.PipInterface.PipVulnerabilityChecker.Package.name?7
--- a/src/eric7/APIs/Python3/eric7.bas	Thu Dec 12 11:42:04 2024 +0100
+++ b/src/eric7/APIs/Python3/eric7.bas	Sat Dec 14 13:03:11 2024 +0100
@@ -920,7 +920,6 @@
 PyRegExpWizardWidget QWidget Ui_PyRegExpWizardDialog
 PyRegExpWizardWindow EricMainWindow
 PySvnProjectHelper VcsProjectHelper
-PypiSearchResultsParser html.parser.HTMLParser
 PytestExecutor TestExecutorBase
 PythonAstViewer QWidget
 PythonDisViewer QWidget Ui_PythonDisViewer
Binary file src/eric7/Documentation/Help/source.qch has changed
--- a/src/eric7/Documentation/Help/source.qhp	Thu Dec 12 11:42:04 2024 +0100
+++ b/src/eric7/Documentation/Help/source.qhp	Sat Dec 14 13:03:11 2024 +0100
@@ -13065,7 +13065,6 @@
       <keyword name="PipPackagesWidget.__editConfiguration" id="PipPackagesWidget.__editConfiguration" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__editConfiguration" />
       <keyword name="PipPackagesWidget.__editUserConfiguration" id="PipPackagesWidget.__editUserConfiguration" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__editUserConfiguration" />
       <keyword name="PipPackagesWidget.__editVirtualenvConfiguration" id="PipPackagesWidget.__editVirtualenvConfiguration" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__editVirtualenvConfiguration" />
-      <keyword name="PipPackagesWidget.__finishSearch" id="PipPackagesWidget.__finishSearch" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__finishSearch" />
       <keyword name="PipPackagesWidget.__generateConstraints" id="PipPackagesWidget.__generateConstraints" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__generateConstraints" />
       <keyword name="PipPackagesWidget.__generateRequirements" id="PipPackagesWidget.__generateRequirements" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__generateRequirements" />
       <keyword name="PipPackagesWidget.__initPipMenu" id="PipPackagesWidget.__initPipMenu" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__initPipMenu" />
@@ -13086,25 +13085,18 @@
       <keyword name="PipPackagesWidget.__reinstallPackages" id="PipPackagesWidget.__reinstallPackages" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__reinstallPackages" />
       <keyword name="PipPackagesWidget.__removeCachedFiles" id="PipPackagesWidget.__removeCachedFiles" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__removeCachedFiles" />
       <keyword name="PipPackagesWidget.__repairPip" id="PipPackagesWidget.__repairPip" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__repairPip" />
-      <keyword name="PipPackagesWidget.__search" id="PipPackagesWidget.__search" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__search" />
-      <keyword name="PipPackagesWidget.__searchFirst" id="PipPackagesWidget.__searchFirst" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__searchFirst" />
-      <keyword name="PipPackagesWidget.__searchResponse" id="PipPackagesWidget.__searchResponse" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__searchResponse" />
       <keyword name="PipPackagesWidget.__selectedUpdateableItems" id="PipPackagesWidget.__selectedUpdateableItems" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__selectedUpdateableItems" />
       <keyword name="PipPackagesWidget.__showCacheInfo" id="PipPackagesWidget.__showCacheInfo" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__showCacheInfo" />
       <keyword name="PipPackagesWidget.__showCacheList" id="PipPackagesWidget.__showCacheList" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__showCacheList" />
       <keyword name="PipPackagesWidget.__showLicensesDialog" id="PipPackagesWidget.__showLicensesDialog" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__showLicensesDialog" />
       <keyword name="PipPackagesWidget.__showPackageDetails" id="PipPackagesWidget.__showPackageDetails" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__showPackageDetails" />
       <keyword name="PipPackagesWidget.__showPackageInformation" id="PipPackagesWidget.__showPackageInformation" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__showPackageInformation" />
-      <keyword name="PipPackagesWidget.__showSearchedDetails" id="PipPackagesWidget.__showSearchedDetails" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__showSearchedDetails" />
       <keyword name="PipPackagesWidget.__showVulnerabilityInformation" id="PipPackagesWidget.__showVulnerabilityInformation" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__showVulnerabilityInformation" />
       <keyword name="PipPackagesWidget.__uninstallPyprojectDependencies" id="PipPackagesWidget.__uninstallPyprojectDependencies" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__uninstallPyprojectDependencies" />
       <keyword name="PipPackagesWidget.__uninstallRequirements" id="PipPackagesWidget.__uninstallRequirements" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__uninstallRequirements" />
       <keyword name="PipPackagesWidget.__updateActionButtons" id="PipPackagesWidget.__updateActionButtons" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__updateActionButtons" />
       <keyword name="PipPackagesWidget.__updateDepActionButtons" id="PipPackagesWidget.__updateDepActionButtons" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__updateDepActionButtons" />
       <keyword name="PipPackagesWidget.__updateOutdatedInfo" id="PipPackagesWidget.__updateOutdatedInfo" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__updateOutdatedInfo" />
-      <keyword name="PipPackagesWidget.__updateSearchActionButtons" id="PipPackagesWidget.__updateSearchActionButtons" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__updateSearchActionButtons" />
-      <keyword name="PipPackagesWidget.__updateSearchButton" id="PipPackagesWidget.__updateSearchButton" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__updateSearchButton" />
-      <keyword name="PipPackagesWidget.__updateSearchMoreButton" id="PipPackagesWidget.__updateSearchMoreButton" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__updateSearchMoreButton" />
       <keyword name="PipPackagesWidget.__updateVulnerabilityData" id="PipPackagesWidget.__updateVulnerabilityData" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__updateVulnerabilityData" />
       <keyword name="PipPackagesWidget.__updateVulnerabilityDbCache" id="PipPackagesWidget.__updateVulnerabilityDbCache" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__updateVulnerabilityDbCache" />
       <keyword name="PipPackagesWidget.executeInstallPackages" id="PipPackagesWidget.executeInstallPackages" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.executeInstallPackages" />
@@ -13118,8 +13110,6 @@
       <keyword name="PipPackagesWidget.on_dependencyRepairAllButton_clicked" id="PipPackagesWidget.on_dependencyRepairAllButton_clicked" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_dependencyRepairAllButton_clicked" />
       <keyword name="PipPackagesWidget.on_dependencyRepairButton_clicked" id="PipPackagesWidget.on_dependencyRepairButton_clicked" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_dependencyRepairButton_clicked" />
       <keyword name="PipPackagesWidget.on_environmentsComboBox_currentTextChanged" id="PipPackagesWidget.on_environmentsComboBox_currentTextChanged" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_environmentsComboBox_currentTextChanged" />
-      <keyword name="PipPackagesWidget.on_installButton_clicked" id="PipPackagesWidget.on_installButton_clicked" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_installButton_clicked" />
-      <keyword name="PipPackagesWidget.on_installUserSiteButton_clicked" id="PipPackagesWidget.on_installUserSiteButton_clicked" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_installUserSiteButton_clicked" />
       <keyword name="PipPackagesWidget.on_installedFilesCheckBox_clicked" id="PipPackagesWidget.on_installedFilesCheckBox_clicked" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_installedFilesCheckBox_clicked" />
       <keyword name="PipPackagesWidget.on_localCheckBox_clicked" id="PipPackagesWidget.on_localCheckBox_clicked" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_localCheckBox_clicked" />
       <keyword name="PipPackagesWidget.on_localDepCheckBox_clicked" id="PipPackagesWidget.on_localDepCheckBox_clicked" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_localDepCheckBox_clicked" />
@@ -13130,15 +13120,8 @@
       <keyword name="PipPackagesWidget.on_refreshDependenciesButton_clicked" id="PipPackagesWidget.on_refreshDependenciesButton_clicked" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_refreshDependenciesButton_clicked" />
       <keyword name="PipPackagesWidget.on_requiresButton_toggled" id="PipPackagesWidget.on_requiresButton_toggled" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_requiresButton_toggled" />
       <keyword name="PipPackagesWidget.on_searchButton_clicked" id="PipPackagesWidget.on_searchButton_clicked" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_searchButton_clicked" />
-      <keyword name="PipPackagesWidget.on_searchMoreButton_clicked" id="PipPackagesWidget.on_searchMoreButton_clicked" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_searchMoreButton_clicked" />
-      <keyword name="PipPackagesWidget.on_searchNameEdit_returnPressed" id="PipPackagesWidget.on_searchNameEdit_returnPressed" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_searchNameEdit_returnPressed" />
-      <keyword name="PipPackagesWidget.on_searchNameEdit_textChanged" id="PipPackagesWidget.on_searchNameEdit_textChanged" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_searchNameEdit_textChanged" />
-      <keyword name="PipPackagesWidget.on_searchResultList_itemActivated" id="PipPackagesWidget.on_searchResultList_itemActivated" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_searchResultList_itemActivated" />
-      <keyword name="PipPackagesWidget.on_searchResultList_itemSelectionChanged" id="PipPackagesWidget.on_searchResultList_itemSelectionChanged" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_searchResultList_itemSelectionChanged" />
-      <keyword name="PipPackagesWidget.on_searchToggleButton_1_toggled" id="PipPackagesWidget.on_searchToggleButton_1_toggled" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_searchToggleButton_1_toggled" />
-      <keyword name="PipPackagesWidget.on_searchToggleButton_2_toggled" id="PipPackagesWidget.on_searchToggleButton_2_toggled" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_searchToggleButton_2_toggled" />
+      <keyword name="PipPackagesWidget.on_searchEdit_returnPressed" id="PipPackagesWidget.on_searchEdit_returnPressed" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_searchEdit_returnPressed" />
       <keyword name="PipPackagesWidget.on_showDepPackageDetailsButton_clicked" id="PipPackagesWidget.on_showDepPackageDetailsButton_clicked" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_showDepPackageDetailsButton_clicked" />
-      <keyword name="PipPackagesWidget.on_showDetailsButton_clicked" id="PipPackagesWidget.on_showDetailsButton_clicked" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_showDetailsButton_clicked" />
       <keyword name="PipPackagesWidget.on_showPackageDetailsButton_clicked" id="PipPackagesWidget.on_showPackageDetailsButton_clicked" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_showPackageDetailsButton_clicked" />
       <keyword name="PipPackagesWidget.on_uninstallButton_clicked" id="PipPackagesWidget.on_uninstallButton_clicked" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_uninstallButton_clicked" />
       <keyword name="PipPackagesWidget.on_upgradeAllButton_clicked" id="PipPackagesWidget.on_upgradeAllButton_clicked" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_upgradeAllButton_clicked" />
@@ -14354,14 +14337,6 @@
       <keyword name="PySvnProjectHelper.initMenu" id="PySvnProjectHelper.initMenu" ref="eric7.Plugins.VcsPlugins.vcsPySvn.ProjectHelper.html#PySvnProjectHelper.initMenu" />
       <keyword name="PySvnProjectHelper.initToolbar" id="PySvnProjectHelper.initToolbar" ref="eric7.Plugins.VcsPlugins.vcsPySvn.ProjectHelper.html#PySvnProjectHelper.initToolbar" />
       <keyword name="PySvnProjectHelper.removeToolbar" id="PySvnProjectHelper.removeToolbar" ref="eric7.Plugins.VcsPlugins.vcsPySvn.ProjectHelper.html#PySvnProjectHelper.removeToolbar" />
-      <keyword name="PypiSearchResultsParser" id="PypiSearchResultsParser" ref="eric7.PipInterface.PipPackagesWidget.html#PypiSearchResultsParser" />
-      <keyword name="PypiSearchResultsParser (Constructor)" id="PypiSearchResultsParser (Constructor)" ref="eric7.PipInterface.PipPackagesWidget.html#PypiSearchResultsParser.__init__" />
-      <keyword name="PypiSearchResultsParser.__getClass" id="PypiSearchResultsParser.__getClass" ref="eric7.PipInterface.PipPackagesWidget.html#PypiSearchResultsParser.__getClass" />
-      <keyword name="PypiSearchResultsParser.__getDate" id="PypiSearchResultsParser.__getDate" ref="eric7.PipInterface.PipPackagesWidget.html#PypiSearchResultsParser.__getDate" />
-      <keyword name="PypiSearchResultsParser.getResults" id="PypiSearchResultsParser.getResults" ref="eric7.PipInterface.PipPackagesWidget.html#PypiSearchResultsParser.getResults" />
-      <keyword name="PypiSearchResultsParser.handle_data" id="PypiSearchResultsParser.handle_data" ref="eric7.PipInterface.PipPackagesWidget.html#PypiSearchResultsParser.handle_data" />
-      <keyword name="PypiSearchResultsParser.handle_endtag" id="PypiSearchResultsParser.handle_endtag" ref="eric7.PipInterface.PipPackagesWidget.html#PypiSearchResultsParser.handle_endtag" />
-      <keyword name="PypiSearchResultsParser.handle_starttag" id="PypiSearchResultsParser.handle_starttag" ref="eric7.PipInterface.PipPackagesWidget.html#PypiSearchResultsParser.handle_starttag" />
       <keyword name="PytestExecutor" id="PytestExecutor" ref="eric7.Testing.Interfaces.PytestExecutor.html#PytestExecutor" />
       <keyword name="PytestExecutor (Constructor)" id="PytestExecutor (Constructor)" ref="eric7.Testing.Interfaces.PytestExecutor.html#PytestExecutor.__init__" />
       <keyword name="PytestExecutor (Module)" id="PytestExecutor (Module)" ref="eric7.Testing.Interfaces.PytestExecutor.html" />
--- a/src/eric7/Documentation/Source/eric7.PipInterface.PipPackagesWidget.html	Thu Dec 12 11:42:04 2024 +0100
+++ b/src/eric7/Documentation/Source/eric7.PipInterface.PipPackagesWidget.html	Sat Dec 14 13:03:11 2024 +0100
@@ -26,10 +26,6 @@
 <td><a href="#PipPackagesWidget">PipPackagesWidget</a></td>
 <td>Class implementing the pip packages management widget.</td>
 </tr>
-<tr>
-<td><a href="#PypiSearchResultsParser">PypiSearchResultsParser</a></td>
-<td>Class implementing the parser for the PyPI search result page.</td>
-</tr>
 </table>
 
 <h3>Functions</h3>
@@ -152,10 +148,6 @@
 <td>Private slot to edit the configuration of the selected environment.</td>
 </tr>
 <tr>
-<td><a href="#PipPackagesWidget.__finishSearch">__finishSearch</a></td>
-<td>Private slot performing the search finishing actions.</td>
-</tr>
-<tr>
 <td><a href="#PipPackagesWidget.__generateConstraints">__generateConstraints</a></td>
 <td>Private slot to generate the contents for a constraints file.</td>
 </tr>
@@ -236,18 +228,6 @@
 <td>Private slot to repair the pip installation of the selected environment.</td>
 </tr>
 <tr>
-<td><a href="#PipPackagesWidget.__search">__search</a></td>
-<td>Private method to perform the search by calling the PyPI search URL.</td>
-</tr>
-<tr>
-<td><a href="#PipPackagesWidget.__searchFirst">__searchFirst</a></td>
-<td>Private method to perform the search for packages.</td>
-</tr>
-<tr>
-<td><a href="#PipPackagesWidget.__searchResponse">__searchResponse</a></td>
-<td>Private method to extract the search result data from the response.</td>
-</tr>
-<tr>
 <td><a href="#PipPackagesWidget.__selectedUpdateableItems">__selectedUpdateableItems</a></td>
 <td>Private method to get a list of selected items that can be updated.</td>
 </tr>
@@ -272,10 +252,6 @@
 <td>Private method to show information for a package.</td>
 </tr>
 <tr>
-<td><a href="#PipPackagesWidget.__showSearchedDetails">__showSearchedDetails</a></td>
-<td>Private slot to show details about the selected search result package.</td>
-</tr>
-<tr>
 <td><a href="#PipPackagesWidget.__showVulnerabilityInformation">__showVulnerabilityInformation</a></td>
 <td>Private method to show the detected vulnerability data.</td>
 </tr>
@@ -300,18 +276,6 @@
 <td>Private method to process the list of outdated packages.</td>
 </tr>
 <tr>
-<td><a href="#PipPackagesWidget.__updateSearchActionButtons">__updateSearchActionButtons</a></td>
-<td>Private method to update the action button states of the search widget.</td>
-</tr>
-<tr>
-<td><a href="#PipPackagesWidget.__updateSearchButton">__updateSearchButton</a></td>
-<td>Private method to update the state of the search button.</td>
-</tr>
-<tr>
-<td><a href="#PipPackagesWidget.__updateSearchMoreButton">__updateSearchMoreButton</a></td>
-<td>Private method to update the state of the search more button.</td>
-</tr>
-<tr>
 <td><a href="#PipPackagesWidget.__updateVulnerabilityData">__updateVulnerabilityData</a></td>
 <td>Private slot to update the shown vulnerability info.</td>
 </tr>
@@ -364,14 +328,6 @@
 <td>Private slot handling the selection of a Python environment.</td>
 </tr>
 <tr>
-<td><a href="#PipPackagesWidget.on_installButton_clicked">on_installButton_clicked</a></td>
-<td>Private slot to handle pressing the Install button..</td>
-</tr>
-<tr>
-<td><a href="#PipPackagesWidget.on_installUserSiteButton_clicked">on_installUserSiteButton_clicked</a></td>
-<td>Private slot to handle pressing the Install to User-Site button..</td>
-</tr>
-<tr>
 <td><a href="#PipPackagesWidget.on_installedFilesCheckBox_clicked">on_installedFilesCheckBox_clicked</a></td>
 <td>Private slot to handle a change of the installed files information checkbox.</td>
 </tr>
@@ -409,45 +365,17 @@
 </tr>
 <tr>
 <td><a href="#PipPackagesWidget.on_searchButton_clicked">on_searchButton_clicked</a></td>
-<td>Private slot handling a press of the search button.</td>
-</tr>
-<tr>
-<td><a href="#PipPackagesWidget.on_searchMoreButton_clicked">on_searchMoreButton_clicked</a></td>
-<td>Private slot handling a press of the search more button.</td>
-</tr>
-<tr>
-<td><a href="#PipPackagesWidget.on_searchNameEdit_returnPressed">on_searchNameEdit_returnPressed</a></td>
-<td>Private slot initiating a search via a press of the Return key.</td>
-</tr>
-<tr>
-<td><a href="#PipPackagesWidget.on_searchNameEdit_textChanged">on_searchNameEdit_textChanged</a></td>
-<td>Private slot handling a change of the search term.</td>
+<td>Private slot to open a web browser for package searching.</td>
 </tr>
 <tr>
-<td><a href="#PipPackagesWidget.on_searchResultList_itemActivated">on_searchResultList_itemActivated</a></td>
-<td>Private slot reacting on an search result item activation.</td>
-</tr>
-<tr>
-<td><a href="#PipPackagesWidget.on_searchResultList_itemSelectionChanged">on_searchResultList_itemSelectionChanged</a></td>
-<td>Private slot handling changes of the search result selection.</td>
-</tr>
-<tr>
-<td><a href="#PipPackagesWidget.on_searchToggleButton_1_toggled">on_searchToggleButton_1_toggled</a></td>
-<td>Private slot to toggle the search widget.</td>
-</tr>
-<tr>
-<td><a href="#PipPackagesWidget.on_searchToggleButton_2_toggled">on_searchToggleButton_2_toggled</a></td>
-<td>Private slot to toggle the search widget.</td>
+<td><a href="#PipPackagesWidget.on_searchEdit_returnPressed">on_searchEdit_returnPressed</a></td>
+<td>Private slot to handle the press of the Return key in the search line edit.</td>
 </tr>
 <tr>
 <td><a href="#PipPackagesWidget.on_showDepPackageDetailsButton_clicked">on_showDepPackageDetailsButton_clicked</a></td>
 <td>Private slot to show information for the selected package of the dependency tree.</td>
 </tr>
 <tr>
-<td><a href="#PipPackagesWidget.on_showDetailsButton_clicked">on_showDetailsButton_clicked</a></td>
-<td>Private slot to handle pressing the Show Details button.</td>
-</tr>
-<tr>
 <td><a href="#PipPackagesWidget.on_showPackageDetailsButton_clicked">on_showPackageDetailsButton_clicked</a></td>
 <td>Private slot to show information for the selected package.</td>
 </tr>
@@ -649,13 +577,6 @@
         Private slot to edit the configuration of the selected environment.
 </p>
 
-<a NAME="PipPackagesWidget.__finishSearch" ID="PipPackagesWidget.__finishSearch"></a>
-<h4>PipPackagesWidget.__finishSearch</h4>
-<b>__finishSearch</b>(<i></i>)
-<p>
-        Private slot performing the search finishing actions.
-</p>
-
 <a NAME="PipPackagesWidget.__generateConstraints" ID="PipPackagesWidget.__generateConstraints"></a>
 <h4>PipPackagesWidget.__generateConstraints</h4>
 <b>__generateConstraints</b>(<i></i>)
@@ -819,41 +740,6 @@
         environment.
 </p>
 
-<a NAME="PipPackagesWidget.__search" ID="PipPackagesWidget.__search"></a>
-<h4>PipPackagesWidget.__search</h4>
-<b>__search</b>(<i>page=1</i>)
-<p>
-        Private method to perform the search by calling the PyPI search URL.
-</p>
-
-<dl>
-
-<dt><i>page</i> (int (optional))</dt>
-<dd>
-search page to retrieve (defaults to 1)
-</dd>
-</dl>
-<a NAME="PipPackagesWidget.__searchFirst" ID="PipPackagesWidget.__searchFirst"></a>
-<h4>PipPackagesWidget.__searchFirst</h4>
-<b>__searchFirst</b>(<i></i>)
-<p>
-        Private method to perform the search for packages.
-</p>
-
-<a NAME="PipPackagesWidget.__searchResponse" ID="PipPackagesWidget.__searchResponse"></a>
-<h4>PipPackagesWidget.__searchResponse</h4>
-<b>__searchResponse</b>(<i>reply</i>)
-<p>
-        Private method to extract the search result data from the response.
-</p>
-
-<dl>
-
-<dt><i>reply</i> (QNetworkReply)</dt>
-<dd>
-reference to the reply object containing the data
-</dd>
-</dl>
 <a NAME="PipPackagesWidget.__selectedUpdateableItems" ID="PipPackagesWidget.__selectedUpdateableItems"></a>
 <h4>PipPackagesWidget.__selectedUpdateableItems</h4>
 <b>__selectedUpdateableItems</b>(<i></i>)
@@ -945,20 +831,6 @@
 reference to the widget to contain the information
 </dd>
 </dl>
-<a NAME="PipPackagesWidget.__showSearchedDetails" ID="PipPackagesWidget.__showSearchedDetails"></a>
-<h4>PipPackagesWidget.__showSearchedDetails</h4>
-<b>__showSearchedDetails</b>(<i>item=None</i>)
-<p>
-        Private slot to show details about the selected search result package.
-</p>
-
-<dl>
-
-<dt><i>item</i> (QTreeWidgetItem)</dt>
-<dd>
-reference to the search result item to show details for
-</dd>
-</dl>
 <a NAME="PipPackagesWidget.__showVulnerabilityInformation" ID="PipPackagesWidget.__showVulnerabilityInformation"></a>
 <h4>PipPackagesWidget.__showVulnerabilityInformation</h4>
 <b>__showVulnerabilityInformation</b>(<i>packageName, packageVersion, vulnerabilities</i>)
@@ -1024,34 +896,6 @@
             a tuple containing the installed and available version as the value
 </dd>
 </dl>
-<a NAME="PipPackagesWidget.__updateSearchActionButtons" ID="PipPackagesWidget.__updateSearchActionButtons"></a>
-<h4>PipPackagesWidget.__updateSearchActionButtons</h4>
-<b>__updateSearchActionButtons</b>(<i></i>)
-<p>
-        Private method to update the action button states of the search widget.
-</p>
-
-<a NAME="PipPackagesWidget.__updateSearchButton" ID="PipPackagesWidget.__updateSearchButton"></a>
-<h4>PipPackagesWidget.__updateSearchButton</h4>
-<b>__updateSearchButton</b>(<i></i>)
-<p>
-        Private method to update the state of the search button.
-</p>
-
-<a NAME="PipPackagesWidget.__updateSearchMoreButton" ID="PipPackagesWidget.__updateSearchMoreButton"></a>
-<h4>PipPackagesWidget.__updateSearchMoreButton</h4>
-<b>__updateSearchMoreButton</b>(<i>enable</i>)
-<p>
-        Private method to update the state of the search more button.
-</p>
-
-<dl>
-
-<dt><i>enable</i> (bool)</dt>
-<dd>
-flag indicating the desired enable state
-</dd>
-</dl>
 <a NAME="PipPackagesWidget.__updateVulnerabilityData" ID="PipPackagesWidget.__updateVulnerabilityData"></a>
 <h4>PipPackagesWidget.__updateVulnerabilityData</h4>
 <b>__updateVulnerabilityData</b>(<i>clearFirst=True</i>)
@@ -1222,20 +1066,6 @@
 name of the selected Python environment
 </dd>
 </dl>
-<a NAME="PipPackagesWidget.on_installButton_clicked" ID="PipPackagesWidget.on_installButton_clicked"></a>
-<h4>PipPackagesWidget.on_installButton_clicked</h4>
-<b>on_installButton_clicked</b>(<i></i>)
-<p>
-        Private slot to handle pressing the Install button..
-</p>
-
-<a NAME="PipPackagesWidget.on_installUserSiteButton_clicked" ID="PipPackagesWidget.on_installUserSiteButton_clicked"></a>
-<h4>PipPackagesWidget.on_installUserSiteButton_clicked</h4>
-<b>on_installUserSiteButton_clicked</b>(<i></i>)
-<p>
-        Private slot to handle pressing the Install to User-Site button..
-</p>
-
 <a NAME="PipPackagesWidget.on_installedFilesCheckBox_clicked" ID="PipPackagesWidget.on_installedFilesCheckBox_clicked"></a>
 <h4>PipPackagesWidget.on_installedFilesCheckBox_clicked</h4>
 <b>on_installedFilesCheckBox_clicked</b>(<i>checked</i>)
@@ -1329,90 +1159,16 @@
 <h4>PipPackagesWidget.on_searchButton_clicked</h4>
 <b>on_searchButton_clicked</b>(<i></i>)
 <p>
-        Private slot handling a press of the search button.
-</p>
-
-<a NAME="PipPackagesWidget.on_searchMoreButton_clicked" ID="PipPackagesWidget.on_searchMoreButton_clicked"></a>
-<h4>PipPackagesWidget.on_searchMoreButton_clicked</h4>
-<b>on_searchMoreButton_clicked</b>(<i></i>)
-<p>
-        Private slot handling a press of the search more button.
-</p>
-
-<a NAME="PipPackagesWidget.on_searchNameEdit_returnPressed" ID="PipPackagesWidget.on_searchNameEdit_returnPressed"></a>
-<h4>PipPackagesWidget.on_searchNameEdit_returnPressed</h4>
-<b>on_searchNameEdit_returnPressed</b>(<i></i>)
-<p>
-        Private slot initiating a search via a press of the Return key.
-</p>
-
-<a NAME="PipPackagesWidget.on_searchNameEdit_textChanged" ID="PipPackagesWidget.on_searchNameEdit_textChanged"></a>
-<h4>PipPackagesWidget.on_searchNameEdit_textChanged</h4>
-<b>on_searchNameEdit_textChanged</b>(<i>_txt</i>)
-<p>
-        Private slot handling a change of the search term.
-</p>
-
-<dl>
-
-<dt><i>_txt</i> (str)</dt>
-<dd>
-search term (unused)
-</dd>
-</dl>
-<a NAME="PipPackagesWidget.on_searchResultList_itemActivated" ID="PipPackagesWidget.on_searchResultList_itemActivated"></a>
-<h4>PipPackagesWidget.on_searchResultList_itemActivated</h4>
-<b>on_searchResultList_itemActivated</b>(<i>item, column</i>)
-<p>
-        Private slot reacting on an search result item activation.
+        Private slot to open a web browser for package searching.
 </p>
 
-<dl>
-
-<dt><i>item</i> (QTreeWidgetItem)</dt>
-<dd>
-reference to the activated item
-</dd>
-<dt><i>column</i> (int)</dt>
-<dd>
-activated column
-</dd>
-</dl>
-<a NAME="PipPackagesWidget.on_searchResultList_itemSelectionChanged" ID="PipPackagesWidget.on_searchResultList_itemSelectionChanged"></a>
-<h4>PipPackagesWidget.on_searchResultList_itemSelectionChanged</h4>
-<b>on_searchResultList_itemSelectionChanged</b>(<i></i>)
+<a NAME="PipPackagesWidget.on_searchEdit_returnPressed" ID="PipPackagesWidget.on_searchEdit_returnPressed"></a>
+<h4>PipPackagesWidget.on_searchEdit_returnPressed</h4>
+<b>on_searchEdit_returnPressed</b>(<i></i>)
 <p>
-        Private slot handling changes of the search result selection.
+        Private slot to handle the press of the Return key in the search line edit.
 </p>
 
-<a NAME="PipPackagesWidget.on_searchToggleButton_1_toggled" ID="PipPackagesWidget.on_searchToggleButton_1_toggled"></a>
-<h4>PipPackagesWidget.on_searchToggleButton_1_toggled</h4>
-<b>on_searchToggleButton_1_toggled</b>(<i>checked</i>)
-<p>
-        Private slot to toggle the search widget.
-</p>
-
-<dl>
-
-<dt><i>checked</i> (bool)</dt>
-<dd>
-state of the search widget button
-</dd>
-</dl>
-<a NAME="PipPackagesWidget.on_searchToggleButton_2_toggled" ID="PipPackagesWidget.on_searchToggleButton_2_toggled"></a>
-<h4>PipPackagesWidget.on_searchToggleButton_2_toggled</h4>
-<b>on_searchToggleButton_2_toggled</b>(<i>checked</i>)
-<p>
-        Private slot to toggle the search widget.
-</p>
-
-<dl>
-
-<dt><i>checked</i> (bool)</dt>
-<dd>
-state of the search widget button
-</dd>
-</dl>
 <a NAME="PipPackagesWidget.on_showDepPackageDetailsButton_clicked" ID="PipPackagesWidget.on_showDepPackageDetailsButton_clicked"></a>
 <h4>PipPackagesWidget.on_showDepPackageDetailsButton_clicked</h4>
 <b>on_showDepPackageDetailsButton_clicked</b>(<i></i>)
@@ -1421,13 +1177,6 @@
         dependency tree.
 </p>
 
-<a NAME="PipPackagesWidget.on_showDetailsButton_clicked" ID="PipPackagesWidget.on_showDetailsButton_clicked"></a>
-<h4>PipPackagesWidget.on_showDetailsButton_clicked</h4>
-<b>on_showDetailsButton_clicked</b>(<i></i>)
-<p>
-        Private slot to handle pressing the Show Details button.
-</p>
-
 <a NAME="PipPackagesWidget.on_showPackageDetailsButton_clicked" ID="PipPackagesWidget.on_showPackageDetailsButton_clicked"></a>
 <h4>PipPackagesWidget.on_showPackageDetailsButton_clicked</h4>
 <b>on_showPackageDetailsButton_clicked</b>(<i></i>)
@@ -1536,196 +1285,4 @@
 </dl>
 <div align="right"><a href="#top">Up</a></div>
 <hr />
-<hr />
-<a NAME="PypiSearchResultsParser" ID="PypiSearchResultsParser"></a>
-<h2>PypiSearchResultsParser</h2>
-<p>
-    Class implementing the parser for the PyPI search result page.
-</p>
-
-<h3>Derived from</h3>
-html.parser.HTMLParser
-<h3>Class Attributes</h3>
-<table>
-<tr><td>ClassPrefix</td></tr>
-</table>
-
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#PypiSearchResultsParser.__init__">PypiSearchResultsParser</a></td>
-<td>Constructor</td>
-</tr>
-<tr>
-<td><a href="#PypiSearchResultsParser.__getClass">__getClass</a></td>
-<td>Private method to extract the class attribute out of the list of attributes.</td>
-</tr>
-<tr>
-<td><a href="#PypiSearchResultsParser.__getDate">__getDate</a></td>
-<td>Private method to extract the datetime attribute out of the list of attributes and process it.</td>
-</tr>
-<tr>
-<td><a href="#PypiSearchResultsParser.getResults">getResults</a></td>
-<td>Public method to get the extracted search results.</td>
-</tr>
-<tr>
-<td><a href="#PypiSearchResultsParser.handle_data">handle_data</a></td>
-<td>Public method process arbitrary data.</td>
-</tr>
-<tr>
-<td><a href="#PypiSearchResultsParser.handle_endtag">handle_endtag</a></td>
-<td>Public method to process the end tag.</td>
-</tr>
-<tr>
-<td><a href="#PypiSearchResultsParser.handle_starttag">handle_starttag</a></td>
-<td>Public method to process the start tag.</td>
-</tr>
-</table>
-
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-
-
-<a NAME="PypiSearchResultsParser.__init__" ID="PypiSearchResultsParser.__init__"></a>
-<h4>PypiSearchResultsParser (Constructor)</h4>
-<b>PypiSearchResultsParser</b>(<i>data</i>)
-<p>
-        Constructor
-</p>
-
-<dl>
-
-<dt><i>data</i> (str)</dt>
-<dd>
-data to be parsed
-</dd>
-</dl>
-<a NAME="PypiSearchResultsParser.__getClass" ID="PypiSearchResultsParser.__getClass"></a>
-<h4>PypiSearchResultsParser.__getClass</h4>
-<b>__getClass</b>(<i>attrs</i>)
-<p>
-        Private method to extract the class attribute out of the list of
-        attributes.
-</p>
-
-<dl>
-
-<dt><i>attrs</i> (list of tuple of (str, str))</dt>
-<dd>
-list of tag attributes as (name, value) tuples
-</dd>
-</dl>
-<dl>
-<dt>Return:</dt>
-<dd>
-value of the 'class' attribute or None
-</dd>
-</dl>
-<dl>
-<dt>Return Type:</dt>
-<dd>
-str
-</dd>
-</dl>
-<a NAME="PypiSearchResultsParser.__getDate" ID="PypiSearchResultsParser.__getDate"></a>
-<h4>PypiSearchResultsParser.__getDate</h4>
-<b>__getDate</b>(<i>attrs</i>)
-<p>
-        Private method to extract the datetime attribute out of the list of
-        attributes and process it.
-</p>
-
-<dl>
-
-<dt><i>attrs</i> (list of tuple of (str, str))</dt>
-<dd>
-list of tag attributes as (name, value) tuples
-</dd>
-</dl>
-<dl>
-<dt>Return:</dt>
-<dd>
-value of the 'class' attribute or None
-</dd>
-</dl>
-<dl>
-<dt>Return Type:</dt>
-<dd>
-str
-</dd>
-</dl>
-<a NAME="PypiSearchResultsParser.getResults" ID="PypiSearchResultsParser.getResults"></a>
-<h4>PypiSearchResultsParser.getResults</h4>
-<b>getResults</b>(<i></i>)
-<p>
-        Public method to get the extracted search results.
-</p>
-
-<dl>
-<dt>Return:</dt>
-<dd>
-extracted result data
-</dd>
-</dl>
-<dl>
-<dt>Return Type:</dt>
-<dd>
-list of dict
-</dd>
-</dl>
-<a NAME="PypiSearchResultsParser.handle_data" ID="PypiSearchResultsParser.handle_data"></a>
-<h4>PypiSearchResultsParser.handle_data</h4>
-<b>handle_data</b>(<i>data</i>)
-<p>
-        Public method process arbitrary data.
-</p>
-
-<dl>
-
-<dt><i>data</i> (str)</dt>
-<dd>
-data to be processed
-</dd>
-</dl>
-<a NAME="PypiSearchResultsParser.handle_endtag" ID="PypiSearchResultsParser.handle_endtag"></a>
-<h4>PypiSearchResultsParser.handle_endtag</h4>
-<b>handle_endtag</b>(<i>_tag</i>)
-<p>
-        Public method to process the end tag.
-</p>
-
-<dl>
-
-<dt><i>_tag</i> (str)</dt>
-<dd>
-tag name (all lowercase) (unused)
-</dd>
-</dl>
-<a NAME="PypiSearchResultsParser.handle_starttag" ID="PypiSearchResultsParser.handle_starttag"></a>
-<h4>PypiSearchResultsParser.handle_starttag</h4>
-<b>handle_starttag</b>(<i>tag, attrs</i>)
-<p>
-        Public method to process the start tag.
-</p>
-
-<dl>
-
-<dt><i>tag</i> (str)</dt>
-<dd>
-tag name (all lowercase)
-</dd>
-<dt><i>attrs</i> (list of tuple of (str, str))</dt>
-<dd>
-list of tag attributes as (name, value) tuples
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
 </body></html>
--- a/src/eric7/PipInterface/PipPackagesWidget.py	Thu Dec 12 11:42:04 2024 +0100
+++ b/src/eric7/PipInterface/PipPackagesWidget.py	Sat Dec 14 13:03:11 2024 +0100
@@ -9,16 +9,12 @@
 
 import contextlib
 import enum
-import html.parser
 import os
-import textwrap
 
 from packaging.specifiers import InvalidSpecifier, SpecifierSet
 from PyQt6.QtCore import Qt, QUrl, QUrlQuery, pyqtSlot
-from PyQt6.QtGui import QIcon
-from PyQt6.QtNetwork import QNetworkReply, QNetworkRequest
+from PyQt6.QtGui import QDesktopServices, QIcon
 from PyQt6.QtWidgets import (
-    QAbstractItemView,
     QDialog,
     QHeaderView,
     QMenu,
@@ -37,118 +33,6 @@
 from .Ui_PipPackagesWidget import Ui_PipPackagesWidget
 
 
-class PypiSearchResultsParser(html.parser.HTMLParser):
-    """
-    Class implementing the parser for the PyPI search result page.
-    """
-
-    ClassPrefix = "package-snippet__"
-
-    def __init__(self, data):
-        """
-        Constructor
-
-        @param data data to be parsed
-        @type str
-        """
-        super().__init__()
-        self.__results = []
-        self.__activeClass = None
-        self.feed(data)
-
-    def __getClass(self, attrs):
-        """
-        Private method to extract the class attribute out of the list of
-        attributes.
-
-        @param attrs list of tag attributes as (name, value) tuples
-        @type list of tuple of (str, str)
-        @return value of the 'class' attribute or None
-        @rtype str
-        """
-        for name, value in attrs:
-            if name == "class":
-                return value
-
-        return None
-
-    def __getDate(self, attrs):
-        """
-        Private method to extract the datetime attribute out of the list of
-        attributes and process it.
-
-        @param attrs list of tag attributes as (name, value) tuples
-        @type list of tuple of (str, str)
-        @return value of the 'class' attribute or None
-        @rtype str
-        """
-        for name, value in attrs:
-            if name == "datetime":
-                return value.split("T")[0]
-
-        return None
-
-    def handle_starttag(self, tag, attrs):
-        """
-        Public method to process the start tag.
-
-        @param tag tag name (all lowercase)
-        @type str
-        @param attrs list of tag attributes as (name, value) tuples
-        @type list of tuple of (str, str)
-        """
-        if tag == "a" and self.__getClass(attrs) == "package-snippet":
-            self.__results.append({})
-
-        if tag in ("span", "p"):
-            tagClass = self.__getClass(attrs)
-            if tagClass in (
-                "package-snippet__name",
-                "package-snippet__description",
-                "package-snippet__version",
-                "package-snippet__released",
-                "package-snippet__created",
-            ):
-                self.__activeClass = tagClass
-            else:
-                self.__activeClass = None
-        elif tag == "time":
-            attributeName = self.__activeClass.replace(self.ClassPrefix, "")
-            self.__results[-1][attributeName] = self.__getDate(attrs)
-            self.__activeClass = None
-        else:
-            self.__activeClass = None
-
-    def handle_data(self, data):
-        """
-        Public method process arbitrary data.
-
-        @param data data to be processed
-        @type str
-        """
-        if self.__activeClass is not None:
-            attributeName = self.__activeClass.replace(self.ClassPrefix, "")
-            self.__results[-1][attributeName] = data
-
-    def handle_endtag(self, _tag):
-        """
-        Public method to process the end tag.
-
-        @param _tag tag name (all lowercase) (unused)
-        @type str
-        """
-        self.__activeClass = None
-
-    def getResults(self):
-        """
-        Public method to get the extracted search results.
-
-        @return extracted result data
-        @rtype list of dict
-        """
-        return self.__results
-
-
 class PipPackageInformationMode(enum.Enum):
     """
     Class defining the show information process modes.
@@ -203,17 +87,12 @@
         self.pipMenuButton.setShowMenuInside(True)
 
         self.refreshButton.setIcon(EricPixmapCache.getIcon("reload"))
+        self.installButton.setIcon(EricPixmapCache.getIcon("plus"))
         self.upgradeButton.setIcon(EricPixmapCache.getIcon("1uparrow"))
         self.upgradeAllButton.setIcon(EricPixmapCache.getIcon("2uparrow"))
         self.uninstallButton.setIcon(EricPixmapCache.getIcon("minus"))
         self.showPackageDetailsButton.setIcon(EricPixmapCache.getIcon("info"))
-        self.searchToggleButton_1.setIcon(EricPixmapCache.getIcon("find"))
-        self.searchToggleButton_2.setIcon(EricPixmapCache.getIcon("find"))
-        self.searchButton.setIcon(EricPixmapCache.getIcon("findNext"))
-        self.searchMoreButton.setIcon(EricPixmapCache.getIcon("plus"))
-        self.installButton.setIcon(EricPixmapCache.getIcon("plus"))
-        self.installUserSiteButton.setIcon(EricPixmapCache.getIcon("addUser"))
-        self.showDetailsButton.setIcon(EricPixmapCache.getIcon("info"))
+        self.searchButton.setIcon(EricPixmapCache.getIcon("find"))
         self.cleanupButton.setIcon(EricPixmapCache.getIcon("clear"))
 
         self.refreshDependenciesButton.setIcon(EricPixmapCache.getIcon("reload"))
@@ -263,13 +142,14 @@
 
         self.__packageDetailsDialog = None
 
+        self.installButton.clicked.connect(self.__installPackages)
+
         self.__initPipMenu()
         self.__populateEnvironments()
         self.__updateActionButtons()
         self.__updateDepActionButtons()
 
         self.statusLabel.hide()
-        self.searchWidget.hide()
         self.__lastSearchPage = 0
 
         self.__queryName = []
@@ -426,6 +306,7 @@
         Private method to set the state of the action buttons.
         """
         if self.__isPipAvailable():
+            self.installButton.setEnabled(True)
             self.upgradeButton.setEnabled(bool(self.__selectedUpdateableItems()))
             self.uninstallButton.setEnabled(bool(self.packagesList.selectedItems()))
             self.upgradeAllButton.setEnabled(bool(self.__allUpdateableItems()))
@@ -434,6 +315,7 @@
             )
             self.cleanupButton.setEnabled(True)
         else:
+            self.installButton.setEnabled(False)
             self.upgradeButton.setEnabled(False)
             self.uninstallButton.setEnabled(False)
             self.upgradeAllButton.setEnabled(False)
@@ -491,9 +373,6 @@
 
         else:
             self.__updateActionButtons()
-            self.__updateSearchActionButtons()
-            self.__updateSearchButton()
-            self.__updateSearchMoreButton(False)
 
     def __updateOutdatedInfo(self, outdatedPackages):
         """
@@ -515,9 +394,6 @@
         )
 
         self.__updateActionButtons()
-        self.__updateSearchActionButtons()
-        self.__updateSearchButton()
-        self.__updateSearchMoreButton(False)
 
         self.statusLabel.hide()
 
@@ -534,12 +410,8 @@
                 self.environmentPathLabel.setPath(
                     self.__pip.getVirtualenvInterpreter(name)
                 )
-                self.searchNameEdit.setEnabled(True)
             else:
                 self.environmentPathLabel.setPath("")
-                self.searchNameEdit.clear()
-                self.searchNameEdit.setEnabled(False)
-                self.searchResultList.clear()
                 if self.__packageDetailsDialog is not None:
                     self.__packageDetailsDialog.close()
 
@@ -549,7 +421,6 @@
                 self.__refreshPackagesList()
             self.__selectedEnvironment = name
 
-            ##self.cleanupButton.setEnabled(bool(name))
             self.__updateActionButtons()
 
     @pyqtSlot()
@@ -864,294 +735,32 @@
                     self.tr("Cleanup Environment"),
                     self.tr(
                         "Some leftover package directories could not been removed."
-                        " Delete them manually."),
+                        " Delete them manually."
+                    ),
                 )
 
-    #######################################################################
-    ## Search widget related methods below
-    #######################################################################
-
-    def __updateSearchActionButtons(self):
-        """
-        Private method to update the action button states of the search widget.
-        """
-        installEnable = (
-            len(self.searchResultList.selectedItems()) > 0
-            and self.environmentsComboBox.currentIndex() > 0
-            and self.__isPipAvailable()
-        )
-        self.installButton.setEnabled(installEnable)
-        self.installUserSiteButton.setEnabled(installEnable)
-
-        self.showDetailsButton.setEnabled(
-            len(self.searchResultList.selectedItems()) == 1 and self.__isPipAvailable()
-        )
-
-    def __updateSearchButton(self):
-        """
-        Private method to update the state of the search button.
-        """
-        self.searchButton.setEnabled(
-            bool(self.searchNameEdit.text()) and self.__isPipAvailable()
-        )
-
-    def __updateSearchMoreButton(self, enable):
-        """
-        Private method to update the state of the search more button.
-
-        @param enable flag indicating the desired enable state
-        @type bool
-        """
-        self.searchMoreButton.setEnabled(
-            enable and bool(self.searchNameEdit.text()) and self.__isPipAvailable()
-        )
-
-    @pyqtSlot(bool)
-    def on_searchToggleButton_1_toggled(self, checked):
-        """
-        Private slot to toggle the search widget.
-
-        @param checked state of the search widget button
-        @type bool
-        """
-        self.searchWidget.setVisible(checked)
-        self.searchToggleButton_2.setChecked(checked)
-
-        if checked:
-            self.searchNameEdit.setFocus(Qt.FocusReason.OtherFocusReason)
-            self.searchNameEdit.selectAll()
-
-            self.__updateSearchActionButtons()
-            self.__updateSearchButton()
-            self.__updateSearchMoreButton(False)
-
-    @pyqtSlot(bool)
-    def on_searchToggleButton_2_toggled(self, checked):
-        """
-        Private slot to toggle the search widget.
-
-        @param checked state of the search widget button
-        @type bool
-        """
-        self.searchToggleButton_1.setChecked(checked)
-
-    @pyqtSlot(str)
-    def on_searchNameEdit_textChanged(self, _txt):
-        """
-        Private slot handling a change of the search term.
-
-        @param _txt search term (unused)
-        @type str
-        """
-        self.__updateSearchButton()
-
-    @pyqtSlot()
-    def on_searchNameEdit_returnPressed(self):
-        """
-        Private slot initiating a search via a press of the Return key.
-        """
-        if bool(self.searchNameEdit.text()) and self.__isPipAvailable():
-            self.__searchFirst()
-
     @pyqtSlot()
     def on_searchButton_clicked(self):
         """
-        Private slot handling a press of the search button.
+        Private slot to open a web browser for package searching.
         """
-        self.__searchFirst()
+        url = QUrl(self.__pip.getIndexUrlSearch())
 
-    @pyqtSlot()
-    def on_searchMoreButton_clicked(self):
-        """
-        Private slot handling a press of the search more button.
-        """
-        self.__search(self.__lastSearchPage + 1)
+        searchTerm = self.searchEdit.text().strip()
+        if searchTerm:
+            searchTerm = bytes(QUrl.toPercentEncoding(searchTerm)).decode()
+            urlQuery = QUrlQuery()
+            urlQuery.addQueryItem("q", searchTerm)
+            url.setQuery(urlQuery)
+
+        QDesktopServices.openUrl(url)
 
     @pyqtSlot()
-    def on_searchResultList_itemSelectionChanged(self):
-        """
-        Private slot handling changes of the search result selection.
-        """
-        self.__updateSearchActionButtons()
-
-    def __searchFirst(self):
-        """
-        Private method to perform the search for packages.
-        """
-        self.searchResultList.clear()
-        self.searchInfoLabel.clear()
-
-        self.__updateSearchMoreButton(False)
-
-        self.__search()
-
-    def __search(self, page=1):
-        """
-        Private method to perform the search by calling the PyPI search URL.
-
-        @param page search page to retrieve (defaults to 1)
-        @type int (optional)
-        """
-        self.__lastSearchPage = page
-
-        self.searchButton.setEnabled(False)
-
-        searchTerm = self.searchNameEdit.text().strip()
-        searchTerm = bytes(QUrl.toPercentEncoding(searchTerm)).decode()
-        urlQuery = QUrlQuery()
-        urlQuery.addQueryItem("q", searchTerm)
-        urlQuery.addQueryItem("page", str(page))
-        url = QUrl(self.__pip.getIndexUrlSearch())
-        url.setQuery(urlQuery)
-
-        request = QNetworkRequest(QUrl(url))
-        request.setAttribute(
-            QNetworkRequest.Attribute.CacheLoadControlAttribute,
-            QNetworkRequest.CacheLoadControl.AlwaysNetwork,
-        )
-        reply = self.__pip.getNetworkAccessManager().get(request)
-        reply.finished.connect(lambda: self.__searchResponse(reply))
-        self.__replies.append(reply)
-
-    def __searchResponse(self, reply):
-        """
-        Private method to extract the search result data from the response.
-
-        @param reply reference to the reply object containing the data
-        @type QNetworkReply
+    def on_searchEdit_returnPressed(self):
         """
-        if reply in self.__replies:
-            self.__replies.remove(reply)
-
-        urlQuery = QUrlQuery(reply.url())
-        searchTerm = urlQuery.queryItemValue("q")
-
-        if reply.error() != QNetworkReply.NetworkError.NoError:
-            EricMessageBox.warning(
-                None,
-                self.tr("Search PyPI"),
-                self.tr(
-                    "<p>Received an error while searching for <b>{0}</b>.</p>"
-                    "<p>Error: {1}</p>"
-                ).format(searchTerm, reply.errorString()),
-            )
-            reply.deleteLater()
-            return
-
-        data = bytes(reply.readAll()).decode()
-        reply.deleteLater()
-
-        results = PypiSearchResultsParser(data).getResults()
-        if results:
-            # PyPI returns max. 20 entries per page
-            if len(results) < 20:
-                msg = self.tr(
-                    "%n package(s) found.",
-                    "",
-                    (self.__lastSearchPage - 1) * 20 + len(results),
-                )
-                self.__updateSearchMoreButton(False)
-            else:
-                msg = self.tr("Showing first {0} packages found.").format(
-                    self.__lastSearchPage * 20
-                )
-                self.__updateSearchMoreButton(True)
-            self.searchInfoLabel.setText(msg)
-            lastItem = self.searchResultList.topLevelItem(
-                self.searchResultList.topLevelItemCount() - 1
-            )
-        else:
-            self.__updateSearchMoreButton(False)
-            if self.__lastSearchPage == 1:
-                EricMessageBox.warning(
-                    self,
-                    self.tr("Search PyPI"),
-                    self.tr("""<p>There were no results for <b>{0}</b>.</p>""").format(
-                        searchTerm
-                    ),
-                )
-                self.searchInfoLabel.setText(
-                    self.tr("""<p>There were no results for <b>{0}</b>.</p>""").format(
-                        searchTerm
-                    )
-                )
-            else:
-                EricMessageBox.warning(
-                    self,
-                    self.tr("Search PyPI"),
-                    self.tr(
-                        """<p>There were no more results for <b>{0}</b>.</p>"""
-                    ).format(searchTerm),
-                )
-            lastItem = None
-
-        wrapper = textwrap.TextWrapper(width=80)
-        for result in results:
-            try:
-                description = "\n".join(
-                    [
-                        wrapper.fill(line)
-                        for line in result["description"].strip().splitlines()
-                    ]
-                )
-            except KeyError:
-                description = ""
-            date = result["released"] if "released" in result else result["created"]
-            itm = QTreeWidgetItem(
-                self.searchResultList,
-                [
-                    result["name"].strip(),
-                    result["version"],
-                    date.strip(),
-                    description,
-                ],
-            )
-            itm.setData(0, self.SearchVersionRole, result["version"])
-
-        if lastItem:
-            self.searchResultList.scrollToItem(
-                lastItem, QAbstractItemView.ScrollHint.PositionAtTop
-            )
-
-        header = self.searchResultList.header()
-        header.setStretchLastSection(False)
-        header.resizeSections(QHeaderView.ResizeMode.ResizeToContents)
-        headerSize = 0
-        for col in range(header.count()):
-            headerSize += header.sectionSize(col)
-        if headerSize < header.width():
-            header.setStretchLastSection(True)
-
-        self.__finishSearch()
-
-    def __finishSearch(self):
+        Private slot to handle the press of the Return key in the search line edit.
         """
-        Private slot performing the search finishing actions.
-        """
-        self.__updateSearchActionButtons()
-        self.__updateSearchButton()
-
-        self.searchNameEdit.setFocus(Qt.FocusReason.OtherFocusReason)
-
-    @pyqtSlot()
-    def on_installButton_clicked(self):
-        """
-        Private slot to handle pressing the Install button..
-        """
-        packages = [
-            itm.text(0).strip() for itm in self.searchResultList.selectedItems()
-        ]
-        self.executeInstallPackages(packages)
-
-    @pyqtSlot()
-    def on_installUserSiteButton_clicked(self):
-        """
-        Private slot to handle pressing the Install to User-Site button..
-        """
-        packages = [
-            itm.text(0).strip() for itm in self.searchResultList.selectedItems()
-        ]
-        self.executeInstallPackages(packages, userSite=True)
+        self.on_searchButton_clicked()
 
     def executeInstallPackages(self, packages, userSite=False):
         """
@@ -1167,42 +776,6 @@
             self.__pip.installPackages(packages, venvName=venvName, userSite=userSite)
             self.on_refreshButton_clicked()
 
-    @pyqtSlot()
-    def on_showDetailsButton_clicked(self):
-        """
-        Private slot to handle pressing the Show Details button.
-        """
-        self.__showSearchedDetails()
-
-    @pyqtSlot(QTreeWidgetItem, int)
-    def on_searchResultList_itemActivated(self, item, column):
-        """
-        Private slot reacting on an search result item activation.
-
-        @param item reference to the activated item
-        @type QTreeWidgetItem
-        @param column activated column
-        @type int
-        """
-        self.__showSearchedDetails(item)
-
-    def __showSearchedDetails(self, item=None):
-        """
-        Private slot to show details about the selected search result package.
-
-        @param item reference to the search result item to show details for
-        @type QTreeWidgetItem
-        """
-        self.showDetailsButton.setEnabled(False)
-
-        if not item:
-            item = self.searchResultList.selectedItems()[0]
-
-        packageVersion = item.data(0, self.SearchVersionRole)
-        packageName = item.text(0)
-
-        self.__showPackageDetails(packageName, packageVersion, installable=True)
-
     def __showPackageDetails(
         self,
         packageName,
--- a/src/eric7/PipInterface/PipPackagesWidget.ui	Thu Dec 12 11:42:04 2024 +0100
+++ b/src/eric7/PipInterface/PipPackagesWidget.ui	Sat Dec 14 13:03:11 2024 +0100
@@ -10,7 +10,7 @@
     <height>999</height>
    </rect>
   </property>
-  <layout class="QVBoxLayout" name="verticalLayout_8">
+  <layout class="QVBoxLayout" name="verticalLayout">
    <item>
     <layout class="QHBoxLayout" name="horizontalLayout">
      <item>
@@ -69,196 +69,6 @@
         <number>0</number>
        </property>
        <item>
-        <widget class="QWidget" name="searchWidget" native="true">
-         <layout class="QVBoxLayout" name="verticalLayout_2">
-          <property name="leftMargin">
-           <number>0</number>
-          </property>
-          <property name="topMargin">
-           <number>0</number>
-          </property>
-          <property name="rightMargin">
-           <number>0</number>
-          </property>
-          <property name="bottomMargin">
-           <number>0</number>
-          </property>
-          <item>
-           <layout class="QHBoxLayout" name="horizontalLayout_3">
-            <item>
-             <spacer name="horizontalSpacer_3">
-              <property name="orientation">
-               <enum>Qt::Orientation::Horizontal</enum>
-              </property>
-              <property name="sizeHint" stdset="0">
-               <size>
-                <width>40</width>
-                <height>20</height>
-               </size>
-              </property>
-             </spacer>
-            </item>
-            <item>
-             <widget class="QToolButton" name="installButton">
-              <property name="toolTip">
-               <string>Press to install the selected package</string>
-              </property>
-             </widget>
-            </item>
-            <item>
-             <widget class="QToolButton" name="installUserSiteButton">
-              <property name="toolTip">
-               <string>Press to install the selected package to the user site</string>
-              </property>
-             </widget>
-            </item>
-            <item>
-             <widget class="QToolButton" name="showDetailsButton">
-              <property name="toolTip">
-               <string>Press to show details for the selected entry</string>
-              </property>
-             </widget>
-            </item>
-            <item>
-             <spacer name="horizontalSpacer_4">
-              <property name="orientation">
-               <enum>Qt::Orientation::Horizontal</enum>
-              </property>
-              <property name="sizeHint" stdset="0">
-               <size>
-                <width>40</width>
-                <height>20</height>
-               </size>
-              </property>
-             </spacer>
-            </item>
-            <item>
-             <widget class="QToolButton" name="searchToggleButton_2">
-              <property name="toolTip">
-               <string>Toggle to show or hide the search window</string>
-              </property>
-              <property name="checkable">
-               <bool>true</bool>
-              </property>
-             </widget>
-            </item>
-           </layout>
-          </item>
-          <item>
-           <layout class="QHBoxLayout" name="horizontalLayout_8">
-            <item>
-             <widget class="QLabel" name="label">
-              <property name="text">
-               <string>Package</string>
-              </property>
-             </widget>
-            </item>
-            <item>
-             <widget class="QLineEdit" name="searchNameEdit">
-              <property name="toolTip">
-               <string>Enter the search term for the package name</string>
-              </property>
-              <property name="placeholderText">
-               <string>Enter search term</string>
-              </property>
-             </widget>
-            </item>
-            <item>
-             <widget class="QToolButton" name="searchButton">
-              <property name="enabled">
-               <bool>false</bool>
-              </property>
-              <property name="toolTip">
-               <string>Press to start the search</string>
-              </property>
-             </widget>
-            </item>
-            <item>
-             <widget class="QToolButton" name="searchMoreButton">
-              <property name="enabled">
-               <bool>false</bool>
-              </property>
-              <property name="toolTip">
-               <string>Press to search for more packages</string>
-              </property>
-             </widget>
-            </item>
-           </layout>
-          </item>
-          <item>
-           <widget class="QWidget" name="searchOptionsWidget" native="true">
-            <layout class="QVBoxLayout" name="verticalLayout">
-             <property name="leftMargin">
-              <number>0</number>
-             </property>
-             <property name="topMargin">
-              <number>0</number>
-             </property>
-             <property name="rightMargin">
-              <number>0</number>
-             </property>
-             <property name="bottomMargin">
-              <number>0</number>
-             </property>
-            </layout>
-           </widget>
-          </item>
-          <item>
-           <widget class="QTreeWidget" name="searchResultList">
-            <property name="alternatingRowColors">
-             <bool>true</bool>
-            </property>
-            <property name="selectionMode">
-             <enum>QAbstractItemView::SelectionMode::ExtendedSelection</enum>
-            </property>
-            <property name="rootIsDecorated">
-             <bool>false</bool>
-            </property>
-            <property name="itemsExpandable">
-             <bool>false</bool>
-            </property>
-            <property name="allColumnsShowFocus">
-             <bool>true</bool>
-            </property>
-            <property name="wordWrap">
-             <bool>true</bool>
-            </property>
-            <column>
-             <property name="text">
-              <string>Package</string>
-             </property>
-            </column>
-            <column>
-             <property name="text">
-              <string>Version</string>
-             </property>
-            </column>
-            <column>
-             <property name="text">
-              <string>Released</string>
-             </property>
-            </column>
-            <column>
-             <property name="text">
-              <string>Description</string>
-             </property>
-            </column>
-           </widget>
-          </item>
-          <item>
-           <widget class="QLabel" name="searchInfoLabel"/>
-          </item>
-          <item>
-           <widget class="Line" name="line_2">
-            <property name="orientation">
-             <enum>Qt::Orientation::Horizontal</enum>
-            </property>
-           </widget>
-          </item>
-         </layout>
-        </widget>
-       </item>
-       <item>
         <widget class="QWidget" name="baseWidget" native="true">
          <layout class="QVBoxLayout" name="verticalLayout_6">
           <property name="leftMargin">
@@ -296,6 +106,13 @@
              </widget>
             </item>
             <item>
+             <widget class="QToolButton" name="installButton">
+              <property name="toolTip">
+               <string>Press to install a package.</string>
+              </property>
+             </widget>
+            </item>
+            <item>
              <widget class="QToolButton" name="upgradeButton">
               <property name="toolTip">
                <string>Press to upgrade the selected packages</string>
@@ -350,16 +167,6 @@
               </property>
              </spacer>
             </item>
-            <item>
-             <widget class="QToolButton" name="searchToggleButton_1">
-              <property name="toolTip">
-               <string>Toggle to show or hide the search window</string>
-              </property>
-              <property name="checkable">
-               <bool>true</bool>
-              </property>
-             </widget>
-            </item>
            </layout>
           </item>
           <item>
@@ -838,6 +645,38 @@
      </widget>
     </widget>
    </item>
+   <item>
+    <widget class="Line" name="line_2">
+     <property name="orientation">
+      <enum>Qt::Orientation::Horizontal</enum>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout_3">
+     <item>
+      <widget class="QLabel" name="label">
+       <property name="text">
+        <string>Search Package:</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QLineEdit" name="searchEdit">
+       <property name="toolTip">
+        <string>Enter package name to search for.</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="searchButton">
+       <property name="toolTip">
+        <string>Press to open a web browser for searching.</string>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
   </layout>
  </widget>
  <customwidgets>
@@ -857,12 +696,12 @@
   <tabstop>environmentsComboBox</tabstop>
   <tabstop>pipMenuButton</tabstop>
   <tabstop>refreshButton</tabstop>
+  <tabstop>installButton</tabstop>
   <tabstop>upgradeButton</tabstop>
   <tabstop>upgradeAllButton</tabstop>
   <tabstop>uninstallButton</tabstop>
   <tabstop>showPackageDetailsButton</tabstop>
   <tabstop>cleanupButton</tabstop>
-  <tabstop>searchToggleButton_1</tabstop>
   <tabstop>localCheckBox</tabstop>
   <tabstop>notRequiredCheckBox</tabstop>
   <tabstop>userCheckBox</tabstop>
@@ -873,14 +712,6 @@
   <tabstop>installedFilesCheckBox</tabstop>
   <tabstop>packageInfoWidget</tabstop>
   <tabstop>vulnerabilitiesInfoWidget</tabstop>
-  <tabstop>installButton</tabstop>
-  <tabstop>installUserSiteButton</tabstop>
-  <tabstop>showDetailsButton</tabstop>
-  <tabstop>searchToggleButton_2</tabstop>
-  <tabstop>searchNameEdit</tabstop>
-  <tabstop>searchButton</tabstop>
-  <tabstop>searchMoreButton</tabstop>
-  <tabstop>searchResultList</tabstop>
   <tabstop>refreshDependenciesButton</tabstop>
   <tabstop>showDepPackageDetailsButton</tabstop>
   <tabstop>dependencyRepairButton</tabstop>
@@ -891,6 +722,8 @@
   <tabstop>userDepCheckBox</tabstop>
   <tabstop>dependenciesList</tabstop>
   <tabstop>dependencyInfoWidget</tabstop>
+  <tabstop>searchEdit</tabstop>
+  <tabstop>searchButton</tabstop>
  </tabstops>
  <resources/>
  <connections/>
--- a/src/eric7/PipInterface/Ui_PipPackagesWidget.py	Thu Dec 12 11:42:04 2024 +0100
+++ b/src/eric7/PipInterface/Ui_PipPackagesWidget.py	Sat Dec 14 13:03:11 2024 +0100
@@ -1,6 +1,6 @@
 # Form implementation generated from reading ui file 'src/eric7/PipInterface/PipPackagesWidget.ui'
 #
-# Created by: PyQt6 UI code generator 6.7.1
+# Created by: PyQt6 UI code generator 6.8.0
 #
 # WARNING: Any manual changes made to this file will be lost when pyuic6 is
 # run again.  Do not edit this file unless you know what you are doing.
@@ -13,8 +13,8 @@
     def setupUi(self, PipPackagesWidget):
         PipPackagesWidget.setObjectName("PipPackagesWidget")
         PipPackagesWidget.resize(500, 999)
-        self.verticalLayout_8 = QtWidgets.QVBoxLayout(PipPackagesWidget)
-        self.verticalLayout_8.setObjectName("verticalLayout_8")
+        self.verticalLayout = QtWidgets.QVBoxLayout(PipPackagesWidget)
+        self.verticalLayout.setObjectName("verticalLayout")
         self.horizontalLayout = QtWidgets.QHBoxLayout()
         self.horizontalLayout.setObjectName("horizontalLayout")
         self.viewToggleButton = QtWidgets.QToolButton(parent=PipPackagesWidget)
@@ -28,16 +28,16 @@
         self.pipMenuButton.setPopupMode(QtWidgets.QToolButton.ToolButtonPopupMode.InstantPopup)
         self.pipMenuButton.setObjectName("pipMenuButton")
         self.horizontalLayout.addWidget(self.pipMenuButton)
-        self.verticalLayout_8.addLayout(self.horizontalLayout)
+        self.verticalLayout.addLayout(self.horizontalLayout)
         self.environmentPathLabel = EricSqueezeLabelPath(parent=PipPackagesWidget)
         self.environmentPathLabel.setText("")
         self.environmentPathLabel.setObjectName("environmentPathLabel")
-        self.verticalLayout_8.addWidget(self.environmentPathLabel)
+        self.verticalLayout.addWidget(self.environmentPathLabel)
         self.line = QtWidgets.QFrame(parent=PipPackagesWidget)
         self.line.setFrameShape(QtWidgets.QFrame.Shape.HLine)
         self.line.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken)
         self.line.setObjectName("line")
-        self.verticalLayout_8.addWidget(self.line)
+        self.verticalLayout.addWidget(self.line)
         self.viewsStackWidget = QtWidgets.QStackedWidget(parent=PipPackagesWidget)
         self.viewsStackWidget.setObjectName("viewsStackWidget")
         self.packagesPage = QtWidgets.QWidget()
@@ -45,72 +45,6 @@
         self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.packagesPage)
         self.verticalLayout_5.setContentsMargins(0, 0, 0, 0)
         self.verticalLayout_5.setObjectName("verticalLayout_5")
-        self.searchWidget = QtWidgets.QWidget(parent=self.packagesPage)
-        self.searchWidget.setObjectName("searchWidget")
-        self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.searchWidget)
-        self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
-        self.verticalLayout_2.setObjectName("verticalLayout_2")
-        self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
-        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
-        spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
-        self.horizontalLayout_3.addItem(spacerItem)
-        self.installButton = QtWidgets.QToolButton(parent=self.searchWidget)
-        self.installButton.setObjectName("installButton")
-        self.horizontalLayout_3.addWidget(self.installButton)
-        self.installUserSiteButton = QtWidgets.QToolButton(parent=self.searchWidget)
-        self.installUserSiteButton.setObjectName("installUserSiteButton")
-        self.horizontalLayout_3.addWidget(self.installUserSiteButton)
-        self.showDetailsButton = QtWidgets.QToolButton(parent=self.searchWidget)
-        self.showDetailsButton.setObjectName("showDetailsButton")
-        self.horizontalLayout_3.addWidget(self.showDetailsButton)
-        spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
-        self.horizontalLayout_3.addItem(spacerItem1)
-        self.searchToggleButton_2 = QtWidgets.QToolButton(parent=self.searchWidget)
-        self.searchToggleButton_2.setCheckable(True)
-        self.searchToggleButton_2.setObjectName("searchToggleButton_2")
-        self.horizontalLayout_3.addWidget(self.searchToggleButton_2)
-        self.verticalLayout_2.addLayout(self.horizontalLayout_3)
-        self.horizontalLayout_8 = QtWidgets.QHBoxLayout()
-        self.horizontalLayout_8.setObjectName("horizontalLayout_8")
-        self.label = QtWidgets.QLabel(parent=self.searchWidget)
-        self.label.setObjectName("label")
-        self.horizontalLayout_8.addWidget(self.label)
-        self.searchNameEdit = QtWidgets.QLineEdit(parent=self.searchWidget)
-        self.searchNameEdit.setObjectName("searchNameEdit")
-        self.horizontalLayout_8.addWidget(self.searchNameEdit)
-        self.searchButton = QtWidgets.QToolButton(parent=self.searchWidget)
-        self.searchButton.setEnabled(False)
-        self.searchButton.setObjectName("searchButton")
-        self.horizontalLayout_8.addWidget(self.searchButton)
-        self.searchMoreButton = QtWidgets.QToolButton(parent=self.searchWidget)
-        self.searchMoreButton.setEnabled(False)
-        self.searchMoreButton.setObjectName("searchMoreButton")
-        self.horizontalLayout_8.addWidget(self.searchMoreButton)
-        self.verticalLayout_2.addLayout(self.horizontalLayout_8)
-        self.searchOptionsWidget = QtWidgets.QWidget(parent=self.searchWidget)
-        self.searchOptionsWidget.setObjectName("searchOptionsWidget")
-        self.verticalLayout = QtWidgets.QVBoxLayout(self.searchOptionsWidget)
-        self.verticalLayout.setContentsMargins(0, 0, 0, 0)
-        self.verticalLayout.setObjectName("verticalLayout")
-        self.verticalLayout_2.addWidget(self.searchOptionsWidget)
-        self.searchResultList = QtWidgets.QTreeWidget(parent=self.searchWidget)
-        self.searchResultList.setAlternatingRowColors(True)
-        self.searchResultList.setSelectionMode(QtWidgets.QAbstractItemView.SelectionMode.ExtendedSelection)
-        self.searchResultList.setRootIsDecorated(False)
-        self.searchResultList.setItemsExpandable(False)
-        self.searchResultList.setAllColumnsShowFocus(True)
-        self.searchResultList.setWordWrap(True)
-        self.searchResultList.setObjectName("searchResultList")
-        self.verticalLayout_2.addWidget(self.searchResultList)
-        self.searchInfoLabel = QtWidgets.QLabel(parent=self.searchWidget)
-        self.searchInfoLabel.setObjectName("searchInfoLabel")
-        self.verticalLayout_2.addWidget(self.searchInfoLabel)
-        self.line_2 = QtWidgets.QFrame(parent=self.searchWidget)
-        self.line_2.setFrameShape(QtWidgets.QFrame.Shape.HLine)
-        self.line_2.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken)
-        self.line_2.setObjectName("line_2")
-        self.verticalLayout_2.addWidget(self.line_2)
-        self.verticalLayout_5.addWidget(self.searchWidget)
         self.baseWidget = QtWidgets.QWidget(parent=self.packagesPage)
         self.baseWidget.setObjectName("baseWidget")
         self.verticalLayout_6 = QtWidgets.QVBoxLayout(self.baseWidget)
@@ -118,11 +52,14 @@
         self.verticalLayout_6.setObjectName("verticalLayout_6")
         self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
         self.horizontalLayout_2.setObjectName("horizontalLayout_2")
-        spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
-        self.horizontalLayout_2.addItem(spacerItem2)
+        spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
+        self.horizontalLayout_2.addItem(spacerItem)
         self.refreshButton = QtWidgets.QToolButton(parent=self.baseWidget)
         self.refreshButton.setObjectName("refreshButton")
         self.horizontalLayout_2.addWidget(self.refreshButton)
+        self.installButton = QtWidgets.QToolButton(parent=self.baseWidget)
+        self.installButton.setObjectName("installButton")
+        self.horizontalLayout_2.addWidget(self.installButton)
         self.upgradeButton = QtWidgets.QToolButton(parent=self.baseWidget)
         self.upgradeButton.setObjectName("upgradeButton")
         self.horizontalLayout_2.addWidget(self.upgradeButton)
@@ -143,12 +80,8 @@
         self.cleanupButton = QtWidgets.QToolButton(parent=self.baseWidget)
         self.cleanupButton.setObjectName("cleanupButton")
         self.horizontalLayout_2.addWidget(self.cleanupButton)
-        spacerItem3 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
-        self.horizontalLayout_2.addItem(spacerItem3)
-        self.searchToggleButton_1 = QtWidgets.QToolButton(parent=self.baseWidget)
-        self.searchToggleButton_1.setCheckable(True)
-        self.searchToggleButton_1.setObjectName("searchToggleButton_1")
-        self.horizontalLayout_2.addWidget(self.searchToggleButton_1)
+        spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
+        self.horizontalLayout_2.addItem(spacerItem1)
         self.verticalLayout_6.addLayout(self.horizontalLayout_2)
         self.gridLayout_2 = QtWidgets.QGridLayout()
         self.gridLayout_2.setObjectName("gridLayout_2")
@@ -255,8 +188,8 @@
         self.verticalLayout_7.setObjectName("verticalLayout_7")
         self.horizontalLayout_6 = QtWidgets.QHBoxLayout()
         self.horizontalLayout_6.setObjectName("horizontalLayout_6")
-        spacerItem4 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
-        self.horizontalLayout_6.addItem(spacerItem4)
+        spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
+        self.horizontalLayout_6.addItem(spacerItem2)
         self.refreshDependenciesButton = QtWidgets.QToolButton(parent=self.dependenciesPage)
         self.refreshDependenciesButton.setObjectName("refreshDependenciesButton")
         self.horizontalLayout_6.addWidget(self.refreshDependenciesButton)
@@ -270,8 +203,8 @@
         self.dependencyRepairAllButton = QtWidgets.QToolButton(parent=self.dependenciesPage)
         self.dependencyRepairAllButton.setObjectName("dependencyRepairAllButton")
         self.horizontalLayout_6.addWidget(self.dependencyRepairAllButton)
-        spacerItem5 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
-        self.horizontalLayout_6.addItem(spacerItem5)
+        spacerItem3 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
+        self.horizontalLayout_6.addItem(spacerItem3)
         self.verticalLayout_7.addLayout(self.horizontalLayout_6)
         self.groupBox = QtWidgets.QGroupBox(parent=self.dependenciesPage)
         self.groupBox.setObjectName("groupBox")
@@ -328,7 +261,24 @@
         self.dependencyInfoWidget.header().setStretchLastSection(False)
         self.verticalLayout_7.addWidget(self.splitter_2)
         self.viewsStackWidget.addWidget(self.dependenciesPage)
-        self.verticalLayout_8.addWidget(self.viewsStackWidget)
+        self.verticalLayout.addWidget(self.viewsStackWidget)
+        self.line_2 = QtWidgets.QFrame(parent=PipPackagesWidget)
+        self.line_2.setFrameShape(QtWidgets.QFrame.Shape.HLine)
+        self.line_2.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken)
+        self.line_2.setObjectName("line_2")
+        self.verticalLayout.addWidget(self.line_2)
+        self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
+        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
+        self.label = QtWidgets.QLabel(parent=PipPackagesWidget)
+        self.label.setObjectName("label")
+        self.horizontalLayout_3.addWidget(self.label)
+        self.searchEdit = QtWidgets.QLineEdit(parent=PipPackagesWidget)
+        self.searchEdit.setObjectName("searchEdit")
+        self.horizontalLayout_3.addWidget(self.searchEdit)
+        self.searchButton = QtWidgets.QToolButton(parent=PipPackagesWidget)
+        self.searchButton.setObjectName("searchButton")
+        self.horizontalLayout_3.addWidget(self.searchButton)
+        self.verticalLayout.addLayout(self.horizontalLayout_3)
 
         self.retranslateUi(PipPackagesWidget)
         self.viewsStackWidget.setCurrentIndex(0)
@@ -337,13 +287,13 @@
         PipPackagesWidget.setTabOrder(self.viewToggleButton, self.environmentsComboBox)
         PipPackagesWidget.setTabOrder(self.environmentsComboBox, self.pipMenuButton)
         PipPackagesWidget.setTabOrder(self.pipMenuButton, self.refreshButton)
-        PipPackagesWidget.setTabOrder(self.refreshButton, self.upgradeButton)
+        PipPackagesWidget.setTabOrder(self.refreshButton, self.installButton)
+        PipPackagesWidget.setTabOrder(self.installButton, self.upgradeButton)
         PipPackagesWidget.setTabOrder(self.upgradeButton, self.upgradeAllButton)
         PipPackagesWidget.setTabOrder(self.upgradeAllButton, self.uninstallButton)
         PipPackagesWidget.setTabOrder(self.uninstallButton, self.showPackageDetailsButton)
         PipPackagesWidget.setTabOrder(self.showPackageDetailsButton, self.cleanupButton)
-        PipPackagesWidget.setTabOrder(self.cleanupButton, self.searchToggleButton_1)
-        PipPackagesWidget.setTabOrder(self.searchToggleButton_1, self.localCheckBox)
+        PipPackagesWidget.setTabOrder(self.cleanupButton, self.localCheckBox)
         PipPackagesWidget.setTabOrder(self.localCheckBox, self.notRequiredCheckBox)
         PipPackagesWidget.setTabOrder(self.notRequiredCheckBox, self.userCheckBox)
         PipPackagesWidget.setTabOrder(self.userCheckBox, self.vulnerabilityCheckBox)
@@ -353,15 +303,7 @@
         PipPackagesWidget.setTabOrder(self.verboseCheckBox, self.installedFilesCheckBox)
         PipPackagesWidget.setTabOrder(self.installedFilesCheckBox, self.packageInfoWidget)
         PipPackagesWidget.setTabOrder(self.packageInfoWidget, self.vulnerabilitiesInfoWidget)
-        PipPackagesWidget.setTabOrder(self.vulnerabilitiesInfoWidget, self.installButton)
-        PipPackagesWidget.setTabOrder(self.installButton, self.installUserSiteButton)
-        PipPackagesWidget.setTabOrder(self.installUserSiteButton, self.showDetailsButton)
-        PipPackagesWidget.setTabOrder(self.showDetailsButton, self.searchToggleButton_2)
-        PipPackagesWidget.setTabOrder(self.searchToggleButton_2, self.searchNameEdit)
-        PipPackagesWidget.setTabOrder(self.searchNameEdit, self.searchButton)
-        PipPackagesWidget.setTabOrder(self.searchButton, self.searchMoreButton)
-        PipPackagesWidget.setTabOrder(self.searchMoreButton, self.searchResultList)
-        PipPackagesWidget.setTabOrder(self.searchResultList, self.refreshDependenciesButton)
+        PipPackagesWidget.setTabOrder(self.vulnerabilitiesInfoWidget, self.refreshDependenciesButton)
         PipPackagesWidget.setTabOrder(self.refreshDependenciesButton, self.showDepPackageDetailsButton)
         PipPackagesWidget.setTabOrder(self.showDepPackageDetailsButton, self.dependencyRepairButton)
         PipPackagesWidget.setTabOrder(self.dependencyRepairButton, self.dependencyRepairAllButton)
@@ -371,30 +313,19 @@
         PipPackagesWidget.setTabOrder(self.localDepCheckBox, self.userDepCheckBox)
         PipPackagesWidget.setTabOrder(self.userDepCheckBox, self.dependenciesList)
         PipPackagesWidget.setTabOrder(self.dependenciesList, self.dependencyInfoWidget)
+        PipPackagesWidget.setTabOrder(self.dependencyInfoWidget, self.searchEdit)
+        PipPackagesWidget.setTabOrder(self.searchEdit, self.searchButton)
 
     def retranslateUi(self, PipPackagesWidget):
         _translate = QtCore.QCoreApplication.translate
         self.viewToggleButton.setToolTip(_translate("PipPackagesWidget", "Toggle to show or hide the dependency tree view"))
-        self.installButton.setToolTip(_translate("PipPackagesWidget", "Press to install the selected package"))
-        self.installUserSiteButton.setToolTip(_translate("PipPackagesWidget", "Press to install the selected package to the user site"))
-        self.showDetailsButton.setToolTip(_translate("PipPackagesWidget", "Press to show details for the selected entry"))
-        self.searchToggleButton_2.setToolTip(_translate("PipPackagesWidget", "Toggle to show or hide the search window"))
-        self.label.setText(_translate("PipPackagesWidget", "Package"))
-        self.searchNameEdit.setToolTip(_translate("PipPackagesWidget", "Enter the search term for the package name"))
-        self.searchNameEdit.setPlaceholderText(_translate("PipPackagesWidget", "Enter search term"))
-        self.searchButton.setToolTip(_translate("PipPackagesWidget", "Press to start the search"))
-        self.searchMoreButton.setToolTip(_translate("PipPackagesWidget", "Press to search for more packages"))
-        self.searchResultList.headerItem().setText(0, _translate("PipPackagesWidget", "Package"))
-        self.searchResultList.headerItem().setText(1, _translate("PipPackagesWidget", "Version"))
-        self.searchResultList.headerItem().setText(2, _translate("PipPackagesWidget", "Released"))
-        self.searchResultList.headerItem().setText(3, _translate("PipPackagesWidget", "Description"))
         self.refreshButton.setToolTip(_translate("PipPackagesWidget", "Press to refresh the lists"))
+        self.installButton.setToolTip(_translate("PipPackagesWidget", "Press to install a package."))
         self.upgradeButton.setToolTip(_translate("PipPackagesWidget", "Press to upgrade the selected packages"))
         self.upgradeAllButton.setToolTip(_translate("PipPackagesWidget", "Press to upgrade all listed packages"))
         self.uninstallButton.setToolTip(_translate("PipPackagesWidget", "Press to uninstall the selected package"))
         self.showPackageDetailsButton.setToolTip(_translate("PipPackagesWidget", "Press to show details for the selected entry"))
         self.cleanupButton.setToolTip(_translate("PipPackagesWidget", "Press to remove leftovers of an upgrade or uninstall run."))
-        self.searchToggleButton_1.setToolTip(_translate("PipPackagesWidget", "Toggle to show or hide the search window"))
         self.localCheckBox.setToolTip(_translate("PipPackagesWidget", "Select to show only locally-installed packages"))
         self.localCheckBox.setText(_translate("PipPackagesWidget", "Local packages only"))
         self.notRequiredCheckBox.setToolTip(_translate("PipPackagesWidget", "Select to list packages that are not dependencies of installed packages"))
@@ -431,5 +362,8 @@
         self.dependenciesList.headerItem().setText(0, _translate("PipPackagesWidget", "Package"))
         self.dependenciesList.headerItem().setText(1, _translate("PipPackagesWidget", "Installed"))
         self.dependenciesList.headerItem().setText(2, _translate("PipPackagesWidget", "Required"))
+        self.label.setText(_translate("PipPackagesWidget", "Search Package:"))
+        self.searchEdit.setToolTip(_translate("PipPackagesWidget", "Enter package name to search for."))
+        self.searchButton.setToolTip(_translate("PipPackagesWidget", "Press to open a web browser for searching."))
 from eric7.EricWidgets.EricSqueezeLabels import EricSqueezeLabelPath
 from eric7.EricWidgets.EricToolButton import EricToolButton
--- a/src/eric7/i18n/eric7_cs.ts	Thu Dec 12 11:42:04 2024 +0100
+++ b/src/eric7/i18n/eric7_cs.ts	Sat Dec 14 13:03:11 2024 +0100
@@ -60365,74 +60365,12 @@
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to install the selected package</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to install the selected package to the user site</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>Press to show details for the selected entry</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Toggle to show or hide the search window</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" />
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Package</source>
+      <source>Press to refresh the lists</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Enter the search term for the package name</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Enter search term</source>
-      <translation type="unfinished">Zadejte hledaný výraz</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to start the search</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to search for more packages</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Version</source>
-      <translation type="unfinished">Verze</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Released</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Description</source>
-      <translation type="unfinished">Popisek</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to refresh the lists</source>
+      <source>Press to install a package.</source>
       <translation type="unfinished" />
     </message>
     <message>
@@ -60452,6 +60390,12 @@
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Press to show details for the selected entry</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Press to remove leftovers of an upgrade or uninstall run.</source>
       <translation type="unfinished" />
     </message>
@@ -60500,6 +60444,13 @@
     <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>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Installed</source>
       <translation type="unfinished" />
     </message>
@@ -60594,336 +60545,338 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="199" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Search Package:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Enter package name to search for.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Press to open a web browser for searching.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="83" />
       <source>pip Menu</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="234" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="113" />
       <source>Author:</source>
       <translation type="unfinished">Autor:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="235" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="114" />
       <source>Author Email:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="236" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="115" />
       <source>Classifiers:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="237" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="116" />
       <source>Entry Points:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="238" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="117" />
       <source>Files:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="239" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="118" />
       <source>Homepage:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="240" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="119" />
       <source>Installer:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="241" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="120" />
       <source>License:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="242" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="121" />
       <source>Location:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="243" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="122" />
       <source>Metadata Version:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="244" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="123" />
       <source>Name:</source>
       <translation type="unfinished">Jméno:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="245" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="124" />
       <source>Project URLs:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="246" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="125" />
       <source>Requires:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="247" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="126" />
       <source>Required By:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="248" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="127" />
       <source>Summary:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="249" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="128" />
       <source>Version:</source>
       <translation type="unfinished">Verze:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="453" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="335" />
       <source>Getting installed packages...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="481" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="363" />
       <source>Getting outdated packages...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="864" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="858" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="735" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="729" />
       <source>Cleanup Environment</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="859" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="730" />
       <source>The environment cleanup was successful.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="865" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="736" />
       <source>Some leftover package directories could not been removed. Delete them manually.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1261" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1081" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1068" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1032" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="832" />
       <source>Search PyPI</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1033" />
-      <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" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="833" />
+      <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="852" />
+      <source>Pip</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="854" />
+      <source>Install Pip</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="857" />
+      <source>Install Pip to User-Site</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="860" />
+      <source>Repair Pip</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="867" />
+      <source>Install</source>
+      <translation type="unfinished">Instalovat</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1046" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="869" />
+      <source>Install Packages</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="872" />
+      <source>Install Local Package</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="875" />
+      <source>Re-Install Selected Packages</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="882" />
+      <source>Requirements/Constraints</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="884" />
+      <source>Install Requirements</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="887" />
+      <source>Uninstall Requirements</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="890" />
+      <source>Generate Requirements...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="894" />
+      <source>Install from 'pyproject.toml'</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="898" />
+      <source>Uninstall from 'pyproject.toml'</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="903" />
+      <source>Generate Constraints...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="910" />
+      <source>Cache</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="912" />
+      <source>Show Cache Info...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="915" />
+      <source>Show Cached Files...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="918" />
+      <source>Remove Cached Files...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="921" />
+      <source>Purge Cache...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="938" />
+      <source>Show Licenses...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="942" />
+      <source>Check Vulnerabilities</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="946" />
+      <source>Update Vulnerability Database</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="950" />
+      <source>Create SBOM file</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="957" />
+      <source>Edit User Configuration...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="960" />
+      <source>Edit Environment Configuration...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="965" />
+      <source>Configure...</source>
+      <translation type="unfinished">Konfigurovat...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1209" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1196" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1185" />
+      <source>Edit Configuration</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1210" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1197" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1186" />
+      <source>No valid configuration path determined. Aborting</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1419" />
+      <source>{0} {1}</source>
+      <comment>package name, package version</comment>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1440" />
+      <source>Affected Version:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1443" />
+      <source>Advisory:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1578" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1553" />
+      <source>unknown</source>
+      <translation type="unfinished">neznámý</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1575" />
+      <source>any</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <source>Enter search term</source>
+      <translation type="vanished">Zadejte hledaný výraz</translation>
+    </message>
+    <message>
+      <source>Version</source>
+      <translation type="vanished">Verze</translation>
+    </message>
+    <message>
+      <source>Description</source>
+      <translation type="vanished">Popisek</translation>
     </message>
     <message numerus="yes">
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1048" />
       <source>%n package(s) found.</source>
-      <translation type="unfinished">
+      <translation type="vanished">
         <numerusform />
         <numerusform />
         <numerusform />
       </translation>
     </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1055" />
-      <source>Showing first {0} packages found.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1074" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1069" />
-      <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="1082" />
-      <source>&lt;p&gt;There were no more results for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1262" />
-      <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="1281" />
-      <source>Pip</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1283" />
-      <source>Install Pip</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1286" />
-      <source>Install Pip to User-Site</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1289" />
-      <source>Repair Pip</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1296" />
-      <source>Install</source>
-      <translation type="unfinished">Instalovat</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1475" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1298" />
-      <source>Install Packages</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1301" />
-      <source>Install Local Package</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1304" />
-      <source>Re-Install Selected Packages</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1311" />
-      <source>Requirements/Constraints</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1313" />
-      <source>Install Requirements</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1316" />
-      <source>Uninstall Requirements</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1319" />
-      <source>Generate Requirements...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1323" />
-      <source>Install from 'pyproject.toml'</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1327" />
-      <source>Uninstall from 'pyproject.toml'</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1332" />
-      <source>Generate Constraints...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1339" />
-      <source>Cache</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1341" />
-      <source>Show Cache Info...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1344" />
-      <source>Show Cached Files...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1347" />
-      <source>Remove Cached Files...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1350" />
-      <source>Purge Cache...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1367" />
-      <source>Show Licenses...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1371" />
-      <source>Check Vulnerabilities</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1375" />
-      <source>Update Vulnerability Database</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1379" />
-      <source>Create SBOM file</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1386" />
-      <source>Edit User Configuration...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1389" />
-      <source>Edit Environment Configuration...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1394" />
-      <source>Configure...</source>
-      <translation type="unfinished">Konfigurovat...</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1638" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1625" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1614" />
-      <source>Edit Configuration</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1639" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1626" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1615" />
-      <source>No valid configuration path determined. Aborting</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1848" />
-      <source>{0} {1}</source>
-      <comment>package name, package version</comment>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1869" />
-      <source>Affected Version:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1872" />
-      <source>Advisory:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="2007" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1982" />
-      <source>unknown</source>
-      <translation type="unfinished">neznámý</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="2004" />
-      <source>any</source>
-      <translation type="unfinished" />
-    </message>
   </context>
   <context>
     <name>PipPackagesWindow</name>
Binary file src/eric7/i18n/eric7_de.qm has changed
--- a/src/eric7/i18n/eric7_de.ts	Thu Dec 12 11:42:04 2024 +0100
+++ b/src/eric7/i18n/eric7_de.ts	Sat Dec 14 13:03:11 2024 +0100
@@ -60369,75 +60369,13 @@
     </message>
     <message>
         <location filename="../PipInterface/PipPackagesWidget.ui" line="0"/>
-        <source>Press to install the selected package</source>
-        <translation>Drücken, um die ausgewählten Pakete zu installieren</translation>
-    </message>
-    <message>
-        <location filename="../PipInterface/PipPackagesWidget.ui" line="0"/>
-        <source>Press to install the selected package to the user site</source>
-        <translation>Drücken, um die ausgewählten Pakete in das Python Nutzerverzeichnis zu installieren</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>Press to show details for the selected entry</source>
-        <translation>Drücken, um Details für den ausgewählten Eintrag anzuzeigen</translation>
-    </message>
-    <message>
-        <location filename="../PipInterface/PipPackagesWidget.ui" line="0"/>
-        <location filename="../PipInterface/PipPackagesWidget.ui" line="0"/>
-        <source>Toggle to show or hide the search window</source>
-        <translation>Umschalten, um das Suchfenster anzuzeigen bzw. zu verstecken</translation>
-    </message>
-    <message>
-        <location filename="../PipInterface/PipPackagesWidget.ui" line="0"/>
-        <location filename="../PipInterface/PipPackagesWidget.ui" line="0"/>
-        <location filename="../PipInterface/PipPackagesWidget.ui" line="0"/>
-        <location filename="../PipInterface/PipPackagesWidget.ui" line="0"/>
-        <location filename="../PipInterface/PipPackagesWidget.ui" line="0"/>
-        <source>Package</source>
-        <translation>Paket</translation>
+        <source>Press to refresh the lists</source>
+        <translation>Drücken, um die Listen zu erneuern</translation>
     </message>
     <message>
         <location filename="../PipInterface/PipPackagesWidget.ui" line="0"/>
-        <source>Enter the search term for the package name</source>
-        <translation>Gib den Suchtext für Paketnamen ein</translation>
-    </message>
-    <message>
-        <location filename="../PipInterface/PipPackagesWidget.ui" line="0"/>
-        <source>Enter search term</source>
-        <translation>Gib den Suchtext ein</translation>
-    </message>
-    <message>
-        <location filename="../PipInterface/PipPackagesWidget.ui" line="0"/>
-        <source>Press to start the search</source>
-        <translation>Drücken, um die Suche zu starten</translation>
-    </message>
-    <message>
-        <location filename="../PipInterface/PipPackagesWidget.ui" line="0"/>
-        <source>Press to search for more packages</source>
-        <translation>Drücken, um mehr Pakete zu suchen</translation>
-    </message>
-    <message>
-        <location filename="../PipInterface/PipPackagesWidget.ui" line="0"/>
-        <source>Version</source>
-        <translation>Version</translation>
-    </message>
-    <message>
-        <location filename="../PipInterface/PipPackagesWidget.ui" line="0"/>
-        <source>Released</source>
-        <translation>Veröffentlicht</translation>
-    </message>
-    <message>
-        <location filename="../PipInterface/PipPackagesWidget.ui" line="0"/>
-        <source>Description</source>
-        <translation>Beschreibung</translation>
-    </message>
-    <message>
-        <location filename="../PipInterface/PipPackagesWidget.ui" line="0"/>
-        <source>Press to refresh the lists</source>
-        <translation>Drücken, um die Listen zu erneuern</translation>
+        <source>Press to install a package.</source>
+        <translation>Drücken, um ein Paket zu installieren.</translation>
     </message>
     <message>
         <location filename="../PipInterface/PipPackagesWidget.ui" line="0"/>
@@ -60456,6 +60394,12 @@
     </message>
     <message>
         <location filename="../PipInterface/PipPackagesWidget.ui" line="0"/>
+        <location filename="../PipInterface/PipPackagesWidget.ui" line="0"/>
+        <source>Press to show details for the selected entry</source>
+        <translation>Drücken, um Details für den ausgewählten Eintrag anzuzeigen</translation>
+    </message>
+    <message>
+        <location filename="../PipInterface/PipPackagesWidget.ui" line="0"/>
         <source>Press to remove leftovers of an upgrade or uninstall run.</source>
         <translation>Drücken, um Reste eines Upgrade- oder Deinstallationslaufs zu entfernen.</translation>
     </message>
@@ -60504,6 +60448,13 @@
     <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>
+        <translation>Paket</translation>
+    </message>
+    <message>
+        <location filename="../PipInterface/PipPackagesWidget.ui" line="0"/>
+        <location filename="../PipInterface/PipPackagesWidget.ui" line="0"/>
         <source>Installed</source>
         <translation>Installiert</translation>
     </message>
@@ -60598,332 +60549,315 @@
         <translation>Erfordert</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="199"/>
+        <location filename="../PipInterface/PipPackagesWidget.ui" line="0"/>
+        <source>Search Package:</source>
+        <translation>Paketsuche:</translation>
+    </message>
+    <message>
+        <location filename="../PipInterface/PipPackagesWidget.ui" line="0"/>
+        <source>Enter package name to search for.</source>
+        <translation>Gib den zu suchenden Paketnamen ein.</translation>
+    </message>
+    <message>
+        <location filename="../PipInterface/PipPackagesWidget.ui" line="0"/>
+        <source>Press to open a web browser for searching.</source>
+        <translation>Drücken, um einen Webbrowser zur Suche zu öffnen.</translation>
+    </message>
+    <message>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="83"/>
         <source>pip Menu</source>
         <translation>pip Menü</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="234"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="113"/>
         <source>Author:</source>
         <translation>Autor:</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="235"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="114"/>
         <source>Author Email:</source>
         <translation>Autor Email:</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="236"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="115"/>
         <source>Classifiers:</source>
         <translation>Klassifizierungen:</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="237"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="116"/>
         <source>Entry Points:</source>
         <translation>Einsprungpunkte:</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="238"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="117"/>
         <source>Files:</source>
         <translation>Dateien:</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="239"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="118"/>
         <source>Homepage:</source>
         <translation>Homepage:</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="240"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="119"/>
         <source>Installer:</source>
         <translation>Installer:</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="241"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="120"/>
         <source>License:</source>
         <translation>Lizenz:</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="242"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="121"/>
         <source>Location:</source>
         <translation>Speicherort:</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="243"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="122"/>
         <source>Metadata Version:</source>
         <translation>Metadaten Version:</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="244"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="123"/>
         <source>Name:</source>
         <translation>Name:</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="245"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="124"/>
         <source>Project URLs:</source>
         <translation>Projekt URLs:</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="246"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="125"/>
         <source>Requires:</source>
         <translation>Erfordert:</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="247"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="126"/>
         <source>Required By:</source>
         <translation>Erfordert Von:</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="248"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="127"/>
         <source>Summary:</source>
         <translation>Kurzbeschreibung:</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="249"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="128"/>
         <source>Version:</source>
         <translation>Version:</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="453"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="335"/>
         <source>Getting installed packages...</source>
         <translation>Ermittle installierte Pakete...</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="481"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="363"/>
         <source>Getting outdated packages...</source>
         <translation>Ermittle veraltete Pakete...</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="864"/>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="858"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="735"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="729"/>
         <source>Cleanup Environment</source>
         <translation>Environment bereinigen</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="859"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="730"/>
         <source>The environment cleanup was successful.</source>
         <translation>Die Bereinigung des Environments war erfolgreich.</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="865"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="736"/>
         <source>Some leftover package directories could not been removed. Delete them manually.</source>
         <translation>Einige übrig gebliebene Paketverzeichnisse konnten nicht entfernt werden. Lösche diese manuell.</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1261"/>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1081"/>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1068"/>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1032"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="832"/>
         <source>Search PyPI</source>
         <translation>PyPI durchsuchen</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1033"/>
-        <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="1048"/>
-        <source>%n package(s) found.</source>
-        <translation>
-            <numerusform>%n Paket gefunden.</numerusform>
-            <numerusform>%n Pakete gefunden.</numerusform>
-        </translation>
-    </message>
-    <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1055"/>
-        <source>Showing first {0} packages found.</source>
-        <translation>Zeige die ersten {0} gefundenen Pakete.</translation>
-    </message>
-    <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1074"/>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1069"/>
-        <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="1082"/>
-        <source>&lt;p&gt;There were no more results for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
-        <translation>&lt;p&gt;Es gab keine weiteren Ergebnisse für &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1262"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="833"/>
         <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="1281"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="852"/>
         <source>Pip</source>
         <translation>Pip</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1283"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="854"/>
         <source>Install Pip</source>
         <translation>Pip installieren</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1286"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="857"/>
         <source>Install Pip to User-Site</source>
         <translation>Pip in Nutzerverzeichnis installieren</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1289"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="860"/>
         <source>Repair Pip</source>
         <translation>Pip reparieren</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1296"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="867"/>
         <source>Install</source>
         <translation>Installieren</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1475"/>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1298"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="1046"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="869"/>
         <source>Install Packages</source>
         <translation>Pakete installieren</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1301"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="872"/>
         <source>Install Local Package</source>
         <translation>Lokales Paket installieren</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1304"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="875"/>
         <source>Re-Install Selected Packages</source>
         <translation>Ausgewählte Pakete neu installieren</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1311"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="882"/>
         <source>Requirements/Constraints</source>
         <translation>Anforderungen/Constraints</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1313"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="884"/>
         <source>Install Requirements</source>
         <translation>Anforderungen installieren</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1316"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="887"/>
         <source>Uninstall Requirements</source>
         <translation>Anforderungen deinstallieren</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1319"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="890"/>
         <source>Generate Requirements...</source>
         <translation>Anforderungen erzeugen...</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1323"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="894"/>
         <source>Install from &apos;pyproject.toml&apos;</source>
         <translation>Pakete gem. &apos;pyproject.toml&apos; installieren</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1327"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="898"/>
         <source>Uninstall from &apos;pyproject.toml&apos;</source>
         <translation>Pakete gem. &apos;pyproject.toml&apos; deinstallieren</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1332"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="903"/>
         <source>Generate Constraints...</source>
         <translation>Constraints generieren...</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1339"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="910"/>
         <source>Cache</source>
         <translation>Zwischenspeicher</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1341"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="912"/>
         <source>Show Cache Info...</source>
         <translation>Zwischenspeicherinfo...</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1344"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="915"/>
         <source>Show Cached Files...</source>
         <translation>Zwischengespeicherte Dateien...</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1347"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="918"/>
         <source>Remove Cached Files...</source>
         <translation>Zwischengespeicherte Dateien löschen...</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1350"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="921"/>
         <source>Purge Cache...</source>
         <translation>Zwischenspeicher leeren...</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1367"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="938"/>
         <source>Show Licenses...</source>
         <translation>Lizenzen anzeigen...</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1371"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="942"/>
         <source>Check Vulnerabilities</source>
         <translation>Verwundbarkeiten prüfen</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1375"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="946"/>
         <source>Update Vulnerability Database</source>
         <translation>Verwundbarkeitsdatenbank aktualisieren</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1379"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="950"/>
         <source>Create SBOM file</source>
         <translation>STL Datei erzeugen</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1386"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="957"/>
         <source>Edit User Configuration...</source>
         <translation>Nutzerkonfiguration bearbeiten...</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1389"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="960"/>
         <source>Edit Environment Configuration...</source>
         <translation>Umgebungskonfiguration bearbeiten...</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1394"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="965"/>
         <source>Configure...</source>
         <translation>Einstellungen...</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1638"/>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1625"/>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1614"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="1209"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="1196"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="1185"/>
         <source>Edit Configuration</source>
         <translation>Konfiguration bearbeiten</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1639"/>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1626"/>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1615"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="1210"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="1197"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="1186"/>
         <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="1848"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="1419"/>
         <source>{0} {1}</source>
         <comment>package name, package version</comment>
         <translation>{0} {1}</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1869"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="1440"/>
         <source>Affected Version:</source>
         <translation>Betroffene Version:</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1872"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="1443"/>
         <source>Advisory:</source>
         <translation>Advisory:</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="2007"/>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1982"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="1578"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="1553"/>
         <source>unknown</source>
         <translation>unbekannt</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="2004"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="1575"/>
         <source>any</source>
         <translation>beliebig</translation>
     </message>
--- a/src/eric7/i18n/eric7_empty.ts	Thu Dec 12 11:42:04 2024 +0100
+++ b/src/eric7/i18n/eric7_empty.ts	Sat Dec 14 13:03:11 2024 +0100
@@ -60095,74 +60095,12 @@
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to install the selected package</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to install the selected package to the user site</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>Press to show details for the selected entry</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Toggle to show or hide the search window</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" />
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Package</source>
+      <source>Press to refresh the lists</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Enter the search term for the package name</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Enter search term</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to start the search</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to search for more packages</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Version</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Released</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Description</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to refresh the lists</source>
+      <source>Press to install a package.</source>
       <translation type="unfinished" />
     </message>
     <message>
@@ -60182,6 +60120,12 @@
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Press to show details for the selected entry</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Press to remove leftovers of an upgrade or uninstall run.</source>
       <translation type="unfinished" />
     </message>
@@ -60230,6 +60174,13 @@
     <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>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Installed</source>
       <translation type="unfinished" />
     </message>
@@ -60324,331 +60275,315 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="199" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Search Package:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Enter package name to search for.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Press to open a web browser for searching.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="83" />
       <source>pip Menu</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="234" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="113" />
       <source>Author:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="235" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="114" />
       <source>Author Email:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="236" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="115" />
       <source>Classifiers:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="237" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="116" />
       <source>Entry Points:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="238" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="117" />
       <source>Files:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="239" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="118" />
       <source>Homepage:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="240" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="119" />
       <source>Installer:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="241" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="120" />
       <source>License:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="242" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="121" />
       <source>Location:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="243" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="122" />
       <source>Metadata Version:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="244" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="123" />
       <source>Name:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="245" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="124" />
       <source>Project URLs:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="246" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="125" />
       <source>Requires:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="247" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="126" />
       <source>Required By:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="248" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="127" />
       <source>Summary:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="249" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="128" />
       <source>Version:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="453" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="335" />
       <source>Getting installed packages...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="481" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="363" />
       <source>Getting outdated packages...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="864" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="858" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="735" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="729" />
       <source>Cleanup Environment</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="859" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="730" />
       <source>The environment cleanup was successful.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="865" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="736" />
       <source>Some leftover package directories could not been removed. Delete them manually.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1261" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1081" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1068" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1032" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="832" />
       <source>Search PyPI</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1033" />
-      <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="1048" />
-      <source>%n package(s) found.</source>
-      <translation type="unfinished">
-        <numerusform />
-      </translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1055" />
-      <source>Showing first {0} packages found.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1074" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1069" />
-      <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="1082" />
-      <source>&lt;p&gt;There were no more results for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1262" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="833" />
       <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="1281" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="852" />
       <source>Pip</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1283" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="854" />
       <source>Install Pip</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1286" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="857" />
       <source>Install Pip to User-Site</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1289" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="860" />
       <source>Repair Pip</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1296" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="867" />
       <source>Install</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1475" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1298" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1046" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="869" />
       <source>Install Packages</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1301" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="872" />
       <source>Install Local Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1304" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="875" />
       <source>Re-Install Selected Packages</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1311" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="882" />
       <source>Requirements/Constraints</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1313" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="884" />
       <source>Install Requirements</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1316" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="887" />
       <source>Uninstall Requirements</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1319" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="890" />
       <source>Generate Requirements...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1323" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="894" />
       <source>Install from 'pyproject.toml'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1327" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="898" />
       <source>Uninstall from 'pyproject.toml'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1332" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="903" />
       <source>Generate Constraints...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1339" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="910" />
       <source>Cache</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1341" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="912" />
       <source>Show Cache Info...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1344" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="915" />
       <source>Show Cached Files...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1347" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="918" />
       <source>Remove Cached Files...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1350" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="921" />
       <source>Purge Cache...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1367" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="938" />
       <source>Show Licenses...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1371" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="942" />
       <source>Check Vulnerabilities</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1375" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="946" />
       <source>Update Vulnerability Database</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1379" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="950" />
       <source>Create SBOM file</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1386" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="957" />
       <source>Edit User Configuration...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1389" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="960" />
       <source>Edit Environment Configuration...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1394" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="965" />
       <source>Configure...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1638" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1625" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1614" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1209" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1196" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1185" />
       <source>Edit Configuration</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1639" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1626" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1615" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1210" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1197" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1186" />
       <source>No valid configuration path determined. Aborting</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1848" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1419" />
       <source>{0} {1}</source>
       <comment>package name, package version</comment>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1869" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1440" />
       <source>Affected Version:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1872" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1443" />
       <source>Advisory:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="2007" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1982" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1578" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1553" />
       <source>unknown</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="2004" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1575" />
       <source>any</source>
       <translation type="unfinished" />
     </message>
--- a/src/eric7/i18n/eric7_en.ts	Thu Dec 12 11:42:04 2024 +0100
+++ b/src/eric7/i18n/eric7_en.ts	Sat Dec 14 13:03:11 2024 +0100
@@ -60147,74 +60147,12 @@
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to install the selected package</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to install the selected package to the user site</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>Press to show details for the selected entry</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Toggle to show or hide the search window</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" />
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Package</source>
+      <source>Press to refresh the lists</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Enter the search term for the package name</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Enter search term</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to start the search</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to search for more packages</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Version</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Released</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Description</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to refresh the lists</source>
+      <source>Press to install a package.</source>
       <translation type="unfinished" />
     </message>
     <message>
@@ -60234,6 +60172,12 @@
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Press to show details for the selected entry</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Press to remove leftovers of an upgrade or uninstall run.</source>
       <translation type="unfinished" />
     </message>
@@ -60282,6 +60226,13 @@
     <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>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Installed</source>
       <translation type="unfinished" />
     </message>
@@ -60376,332 +60327,315 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="199" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Search Package:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Enter package name to search for.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Press to open a web browser for searching.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="83" />
       <source>pip Menu</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="234" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="113" />
       <source>Author:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="235" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="114" />
       <source>Author Email:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="236" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="115" />
       <source>Classifiers:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="237" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="116" />
       <source>Entry Points:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="238" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="117" />
       <source>Files:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="239" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="118" />
       <source>Homepage:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="240" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="119" />
       <source>Installer:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="241" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="120" />
       <source>License:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="242" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="121" />
       <source>Location:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="243" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="122" />
       <source>Metadata Version:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="244" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="123" />
       <source>Name:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="245" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="124" />
       <source>Project URLs:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="246" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="125" />
       <source>Requires:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="247" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="126" />
       <source>Required By:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="248" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="127" />
       <source>Summary:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="249" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="128" />
       <source>Version:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="453" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="335" />
       <source>Getting installed packages...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="481" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="363" />
       <source>Getting outdated packages...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="864" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="858" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="735" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="729" />
       <source>Cleanup Environment</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="859" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="730" />
       <source>The environment cleanup was successful.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="865" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="736" />
       <source>Some leftover package directories could not been removed. Delete them manually.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1261" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1081" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1068" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1032" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="832" />
       <source>Search PyPI</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1033" />
-      <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="1048" />
-      <source>%n package(s) found.</source>
-      <translation>
-        <numerusform>%n package found.</numerusform>
-        <numerusform>%n packages found.</numerusform>
-      </translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1055" />
-      <source>Showing first {0} packages found.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1074" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1069" />
-      <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="1082" />
-      <source>&lt;p&gt;There were no more results for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1262" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="833" />
       <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="1281" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="852" />
       <source>Pip</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1283" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="854" />
       <source>Install Pip</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1286" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="857" />
       <source>Install Pip to User-Site</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1289" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="860" />
       <source>Repair Pip</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1296" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="867" />
       <source>Install</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1475" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1298" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1046" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="869" />
       <source>Install Packages</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1301" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="872" />
       <source>Install Local Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1304" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="875" />
       <source>Re-Install Selected Packages</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1311" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="882" />
       <source>Requirements/Constraints</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1313" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="884" />
       <source>Install Requirements</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1316" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="887" />
       <source>Uninstall Requirements</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1319" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="890" />
       <source>Generate Requirements...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1323" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="894" />
       <source>Install from 'pyproject.toml'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1327" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="898" />
       <source>Uninstall from 'pyproject.toml'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1332" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="903" />
       <source>Generate Constraints...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1339" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="910" />
       <source>Cache</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1341" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="912" />
       <source>Show Cache Info...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1344" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="915" />
       <source>Show Cached Files...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1347" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="918" />
       <source>Remove Cached Files...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1350" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="921" />
       <source>Purge Cache...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1367" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="938" />
       <source>Show Licenses...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1371" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="942" />
       <source>Check Vulnerabilities</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1375" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="946" />
       <source>Update Vulnerability Database</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1379" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="950" />
       <source>Create SBOM file</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1386" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="957" />
       <source>Edit User Configuration...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1389" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="960" />
       <source>Edit Environment Configuration...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1394" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="965" />
       <source>Configure...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1638" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1625" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1614" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1209" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1196" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1185" />
       <source>Edit Configuration</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1639" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1626" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1615" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1210" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1197" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1186" />
       <source>No valid configuration path determined. Aborting</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1848" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1419" />
       <source>{0} {1}</source>
       <comment>package name, package version</comment>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1869" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1440" />
       <source>Affected Version:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1872" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1443" />
       <source>Advisory:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="2007" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1982" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1578" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1553" />
       <source>unknown</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="2004" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1575" />
       <source>any</source>
       <translation type="unfinished" />
     </message>
--- a/src/eric7/i18n/eric7_es.ts	Thu Dec 12 11:42:04 2024 +0100
+++ b/src/eric7/i18n/eric7_es.ts	Sat Dec 14 13:03:11 2024 +0100
@@ -60505,75 +60505,13 @@
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to install the selected package</source>
-      <translation>Pulsar para instalar el package seleccionado</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to install the selected package to the user site</source>
-      <translation>Seleccionar para instalar el package seleccionado en el site de usuario</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>Press to show details for the selected entry</source>
-      <translation>Pulsar para mostrar detalles para la entrada seleccionada</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Toggle to show or hide the search window</source>
-      <translation>Conmutar para mostrar u ocultar la ventana de búsqueda</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Package</source>
-      <translation>Package</translation>
+      <source>Press to refresh the lists</source>
+      <translation>Pulsar para actualizar las listas</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Enter the search term for the package name</source>
-      <translation>Introducir el término de búsqueda para el nombre de package</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Enter search term</source>
-      <translation>Introducir término de búsqueda</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to start the search</source>
-      <translation>Pulsar para iniciar la búsqueda</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to search for more packages</source>
-      <translation>Pulsar para buscar más packages</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Version</source>
-      <translation>Versión</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Released</source>
-      <translation>Liberado</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Description</source>
-      <translation>Descripción</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to refresh the lists</source>
-      <translation>Pulsar para actualizar las listas</translation>
+      <source>Press to install a package.</source>
+      <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
@@ -60592,6 +60530,12 @@
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Press to show details for the selected entry</source>
+      <translation>Pulsar para mostrar detalles para la entrada seleccionada</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Press to remove leftovers of an upgrade or uninstall run.</source>
       <translation type="unfinished" />
     </message>
@@ -60640,6 +60584,13 @@
     <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>
+      <translation>Package</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Installed</source>
       <translation>Instalado</translation>
     </message>
@@ -60734,334 +60685,380 @@
       <translation>Requerido</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="199" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Search Package:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Enter package name to search for.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Press to open a web browser for searching.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="83" />
       <source>pip Menu</source>
       <translation>Menu pip</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="234" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="113" />
       <source>Author:</source>
       <translation>Autor:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="235" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="114" />
       <source>Author Email:</source>
       <translation>Correo electrónico del Autor:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="236" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="115" />
       <source>Classifiers:</source>
       <translation>Clasificadores:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="237" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="116" />
       <source>Entry Points:</source>
       <translation>Puntos de Entrada:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="238" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="117" />
       <source>Files:</source>
       <translation>Archivos:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="239" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="118" />
       <source>Homepage:</source>
       <translation>Página Home:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="240" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="119" />
       <source>Installer:</source>
       <translation>Instalador:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="241" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="120" />
       <source>License:</source>
       <translation>Licencia:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="242" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="121" />
       <source>Location:</source>
       <translation>Ubicación:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="243" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="122" />
       <source>Metadata Version:</source>
       <translation>Versión de Metadatos:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="244" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="123" />
       <source>Name:</source>
       <translation>Nombre:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="245" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="124" />
       <source>Project URLs:</source>
       <translation>URLs de Proyecto:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="246" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="125" />
       <source>Requires:</source>
       <translation>Requiere:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="247" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="126" />
       <source>Required By:</source>
       <translation>Requerido Por:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="248" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="127" />
       <source>Summary:</source>
       <translation>Resumen:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="249" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="128" />
       <source>Version:</source>
       <translation>Versión:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="453" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="335" />
       <source>Getting installed packages...</source>
       <translation>Obteniendo packages instalados...</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="481" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="363" />
       <source>Getting outdated packages...</source>
       <translation>Obteniendo packages antiguos...</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="864" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="858" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="735" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="729" />
       <source>Cleanup Environment</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="859" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="730" />
       <source>The environment cleanup was successful.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="865" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="736" />
       <source>Some leftover package directories could not been removed. Delete them manually.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1261" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1081" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1068" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1032" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="832" />
       <source>Search PyPI</source>
       <translation>Buscar PyPI</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1033" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="833" />
+      <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="852" />
+      <source>Pip</source>
+      <translation>Pip</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="854" />
+      <source>Install Pip</source>
+      <translation>Instalar Pip</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="857" />
+      <source>Install Pip to User-Site</source>
+      <translation>Instalar Pip en el Sitio de Usuario</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="860" />
+      <source>Repair Pip</source>
+      <translation>Reparar Pip</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="867" />
+      <source>Install</source>
+      <translation>Instalar</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1046" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="869" />
+      <source>Install Packages</source>
+      <translation>Instalar Packages</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="872" />
+      <source>Install Local Package</source>
+      <translation>Instalar Package Local</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="875" />
+      <source>Re-Install Selected Packages</source>
+      <translation>Reinstalar los Packages Seleccionados</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="882" />
+      <source>Requirements/Constraints</source>
+      <translation>Requisitos/Restricciones</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="884" />
+      <source>Install Requirements</source>
+      <translation>Instalar Requisitos</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="887" />
+      <source>Uninstall Requirements</source>
+      <translation>Desinstalar Requisitos</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="890" />
+      <source>Generate Requirements...</source>
+      <translation>Generar Requisitos...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="894" />
+      <source>Install from 'pyproject.toml'</source>
+      <translation>Instalar desde 'pyproject.toml'</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="898" />
+      <source>Uninstall from 'pyproject.toml'</source>
+      <translation>Desinstalar desde 'pyproject.toml'</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="903" />
+      <source>Generate Constraints...</source>
+      <translation>Generar Restricciones...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="910" />
+      <source>Cache</source>
+      <translation>Caché</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="912" />
+      <source>Show Cache Info...</source>
+      <translation>Mostrar info de Cache...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="915" />
+      <source>Show Cached Files...</source>
+      <translation>Mostrar Archivos en Cache...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="918" />
+      <source>Remove Cached Files...</source>
+      <translation>Eliminar Archivos en Cache...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="921" />
+      <source>Purge Cache...</source>
+      <translation>Purgar Cache...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="938" />
+      <source>Show Licenses...</source>
+      <translation>Mostrar Licencias...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="942" />
+      <source>Check Vulnerabilities</source>
+      <translation>Comprobar Vulnerabilidades</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="946" />
+      <source>Update Vulnerability Database</source>
+      <translation>Actualizar Base de Datos de Vulnerabilidades</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="950" />
+      <source>Create SBOM file</source>
+      <translation>Crear archivo SBOM</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="957" />
+      <source>Edit User Configuration...</source>
+      <translation>Editar Configuración de Usuario...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="960" />
+      <source>Edit Environment Configuration...</source>
+      <translation>Editar Configuración de Entorno...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="965" />
+      <source>Configure...</source>
+      <translation>Configurar...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1209" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1196" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1185" />
+      <source>Edit Configuration</source>
+      <translation>Editar Configuración</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1210" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1197" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1186" />
+      <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="1419" />
+      <source>{0} {1}</source>
+      <comment>package name, package version</comment>
+      <translation>{0} {1}</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1440" />
+      <source>Affected Version:</source>
+      <translation>Versión Afectada:</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1443" />
+      <source>Advisory:</source>
+      <translation>Recomendatorio:</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1578" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1553" />
+      <source>unknown</source>
+      <translation>desconocido</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1575" />
+      <source>any</source>
+      <translation>cualquiera</translation>
+    </message>
+    <message>
+      <source>Press to install the selected package</source>
+      <translation type="vanished">Pulsar para instalar el package seleccionado</translation>
+    </message>
+    <message>
+      <source>Press to install the selected package to the user site</source>
+      <translation type="vanished">Seleccionar para instalar el package seleccionado en el site de usuario</translation>
+    </message>
+    <message>
+      <source>Toggle to show or hide the search window</source>
+      <translation type="vanished">Conmutar para mostrar u ocultar la ventana de búsqueda</translation>
+    </message>
+    <message>
+      <source>Enter the search term for the package name</source>
+      <translation type="vanished">Introducir el término de búsqueda para el nombre de package</translation>
+    </message>
+    <message>
+      <source>Enter search term</source>
+      <translation type="vanished">Introducir término de búsqueda</translation>
+    </message>
+    <message>
+      <source>Press to start the search</source>
+      <translation type="vanished">Pulsar para iniciar la búsqueda</translation>
+    </message>
+    <message>
+      <source>Press to search for more packages</source>
+      <translation type="vanished">Pulsar para buscar más packages</translation>
+    </message>
+    <message>
+      <source>Version</source>
+      <translation type="vanished">Versión</translation>
+    </message>
+    <message>
+      <source>Released</source>
+      <translation type="vanished">Liberado</translation>
+    </message>
+    <message>
+      <source>Description</source>
+      <translation type="vanished">Descripción</translation>
+    </message>
+    <message>
       <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>
+      <translation type="vanished">&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="1048" />
       <source>%n package(s) found.</source>
-      <translation>
+      <translation type="vanished">
         <numerusform>%n package encontrado.</numerusform>
         <numerusform>%n packages encontrados.</numerusform>
       </translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1055" />
       <source>Showing first {0} packages found.</source>
-      <translation>Mostrando primeros {0} packages encontrados.</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1074" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1069" />
+      <translation type="vanished">Mostrando primeros {0} packages encontrados.</translation>
+    </message>
+    <message>
       <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="1082" />
+      <translation type="vanished">&lt;p&gt;Sin resultados para &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
+    </message>
+    <message>
       <source>&lt;p&gt;There were no more results for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
-      <translation>&lt;p&gt;No hay más resultados para &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1262" />
-      <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="1281" />
-      <source>Pip</source>
-      <translation>Pip</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1283" />
-      <source>Install Pip</source>
-      <translation>Instalar Pip</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1286" />
-      <source>Install Pip to User-Site</source>
-      <translation>Instalar Pip en el Sitio de Usuario</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1289" />
-      <source>Repair Pip</source>
-      <translation>Reparar Pip</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1296" />
-      <source>Install</source>
-      <translation>Instalar</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1475" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1298" />
-      <source>Install Packages</source>
-      <translation>Instalar Packages</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1301" />
-      <source>Install Local Package</source>
-      <translation>Instalar Package Local</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1304" />
-      <source>Re-Install Selected Packages</source>
-      <translation>Reinstalar los Packages Seleccionados</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1311" />
-      <source>Requirements/Constraints</source>
-      <translation>Requisitos/Restricciones</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1313" />
-      <source>Install Requirements</source>
-      <translation>Instalar Requisitos</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1316" />
-      <source>Uninstall Requirements</source>
-      <translation>Desinstalar Requisitos</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1319" />
-      <source>Generate Requirements...</source>
-      <translation>Generar Requisitos...</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1323" />
-      <source>Install from 'pyproject.toml'</source>
-      <translation>Instalar desde 'pyproject.toml'</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1327" />
-      <source>Uninstall from 'pyproject.toml'</source>
-      <translation>Desinstalar desde 'pyproject.toml'</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1332" />
-      <source>Generate Constraints...</source>
-      <translation>Generar Restricciones...</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1339" />
-      <source>Cache</source>
-      <translation>Caché</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1341" />
-      <source>Show Cache Info...</source>
-      <translation>Mostrar info de Cache...</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1344" />
-      <source>Show Cached Files...</source>
-      <translation>Mostrar Archivos en Cache...</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1347" />
-      <source>Remove Cached Files...</source>
-      <translation>Eliminar Archivos en Cache...</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1350" />
-      <source>Purge Cache...</source>
-      <translation>Purgar Cache...</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1367" />
-      <source>Show Licenses...</source>
-      <translation>Mostrar Licencias...</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1371" />
-      <source>Check Vulnerabilities</source>
-      <translation>Comprobar Vulnerabilidades</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1375" />
-      <source>Update Vulnerability Database</source>
-      <translation>Actualizar Base de Datos de Vulnerabilidades</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1379" />
-      <source>Create SBOM file</source>
-      <translation>Crear archivo SBOM</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1386" />
-      <source>Edit User Configuration...</source>
-      <translation>Editar Configuración de Usuario...</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1389" />
-      <source>Edit Environment Configuration...</source>
-      <translation>Editar Configuración de Entorno...</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1394" />
-      <source>Configure...</source>
-      <translation>Configurar...</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1638" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1625" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1614" />
-      <source>Edit Configuration</source>
-      <translation>Editar Configuración</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1639" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1626" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1615" />
-      <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="1848" />
-      <source>{0} {1}</source>
-      <comment>package name, package version</comment>
-      <translation>{0} {1}</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1869" />
-      <source>Affected Version:</source>
-      <translation>Versión Afectada:</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1872" />
-      <source>Advisory:</source>
-      <translation>Recomendatorio:</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="2007" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1982" />
-      <source>unknown</source>
-      <translation>desconocido</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="2004" />
-      <source>any</source>
-      <translation>cualquiera</translation>
+      <translation type="vanished">&lt;p&gt;No hay más resultados para &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
   </context>
   <context>
--- a/src/eric7/i18n/eric7_fr.ts	Thu Dec 12 11:42:04 2024 +0100
+++ b/src/eric7/i18n/eric7_fr.ts	Sat Dec 14 13:03:11 2024 +0100
@@ -60526,75 +60526,13 @@
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to install the selected package</source>
-      <translation>Cliquer pour installer le package sélectionné</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to install the selected package to the user site</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>Press to show details for the selected entry</source>
-      <translation>Cliquer pour montrer les détails de l'entrée sélectionnée</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Toggle to show or hide the search window</source>
-      <translation>Montrer/cacher la fenêtre de recherche</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Package</source>
-      <translation>Package</translation>
+      <source>Press to refresh the lists</source>
+      <translation>Cliquer pour rafraichir les listes</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Enter the search term for the package name</source>
-      <translation>Entrer le terme  de recherche pour le nom du package</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Enter search term</source>
-      <translation>Entrer le terme de recherche</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to start the search</source>
-      <translation>Cliquer pour démarrer la recherche</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to search for more packages</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Version</source>
-      <translation type="unfinished">Version</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Released</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Description</source>
-      <translation>Description</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to refresh the lists</source>
-      <translation>Cliquer pour rafraichir les listes</translation>
+      <source>Press to install a package.</source>
+      <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
@@ -60613,6 +60551,12 @@
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Press to show details for the selected entry</source>
+      <translation>Cliquer pour montrer les détails de l'entrée sélectionnée</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Press to remove leftovers of an upgrade or uninstall run.</source>
       <translation type="unfinished" />
     </message>
@@ -60661,6 +60605,13 @@
     <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>
+      <translation>Package</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Installed</source>
       <translation type="unfinished" />
     </message>
@@ -60755,335 +60706,353 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="199" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Search Package:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Enter package name to search for.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Press to open a web browser for searching.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="83" />
       <source>pip Menu</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="234" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="113" />
       <source>Author:</source>
       <translation>Auteur :</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="235" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="114" />
       <source>Author Email:</source>
       <translation>Courreil de l'auteur :</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="236" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="115" />
       <source>Classifiers:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="237" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="116" />
       <source>Entry Points:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="238" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="117" />
       <source>Files:</source>
       <translation>Fichiers :</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="239" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="118" />
       <source>Homepage:</source>
       <translation>Page d'accueil :</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="240" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="119" />
       <source>Installer:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="241" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="120" />
       <source>License:</source>
       <translation>Licence :</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="242" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="121" />
       <source>Location:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="243" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="122" />
       <source>Metadata Version:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="244" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="123" />
       <source>Name:</source>
       <translation>Nom :</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="245" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="124" />
       <source>Project URLs:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="246" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="125" />
       <source>Requires:</source>
       <translation>Nécessite :</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="247" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="126" />
       <source>Required By:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="248" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="127" />
       <source>Summary:</source>
       <translation>Bilan :</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="249" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="128" />
       <source>Version:</source>
       <translation>Version :</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="453" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="335" />
       <source>Getting installed packages...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="481" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="363" />
       <source>Getting outdated packages...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="864" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="858" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="735" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="729" />
       <source>Cleanup Environment</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="859" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="730" />
       <source>The environment cleanup was successful.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="865" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="736" />
       <source>Some leftover package directories could not been removed. Delete them manually.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1261" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1081" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1068" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1032" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="832" />
       <source>Search PyPI</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1033" />
-      <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" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="833" />
+      <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="852" />
+      <source>Pip</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="854" />
+      <source>Install Pip</source>
+      <translation>Installer pip</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="857" />
+      <source>Install Pip to User-Site</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="860" />
+      <source>Repair Pip</source>
+      <translation>Réparer Pip</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="867" />
+      <source>Install</source>
+      <translation type="unfinished">Installer</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1046" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="869" />
+      <source>Install Packages</source>
+      <translation>Installer des packages</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="872" />
+      <source>Install Local Package</source>
+      <translation>Installer un package local</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="875" />
+      <source>Re-Install Selected Packages</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="882" />
+      <source>Requirements/Constraints</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="884" />
+      <source>Install Requirements</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="887" />
+      <source>Uninstall Requirements</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="890" />
+      <source>Generate Requirements...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="894" />
+      <source>Install from 'pyproject.toml'</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="898" />
+      <source>Uninstall from 'pyproject.toml'</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="903" />
+      <source>Generate Constraints...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="910" />
+      <source>Cache</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="912" />
+      <source>Show Cache Info...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="915" />
+      <source>Show Cached Files...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="918" />
+      <source>Remove Cached Files...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="921" />
+      <source>Purge Cache...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="938" />
+      <source>Show Licenses...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="942" />
+      <source>Check Vulnerabilities</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="946" />
+      <source>Update Vulnerability Database</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="950" />
+      <source>Create SBOM file</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="957" />
+      <source>Edit User Configuration...</source>
+      <translation>Éditer la configuration utilisateur...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="960" />
+      <source>Edit Environment Configuration...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="965" />
+      <source>Configure...</source>
+      <translation>Configuration...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1209" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1196" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1185" />
+      <source>Edit Configuration</source>
+      <translation>Éditer la configuration</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1210" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1197" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1186" />
+      <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="1419" />
+      <source>{0} {1}</source>
+      <comment>package name, package version</comment>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1440" />
+      <source>Affected Version:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1443" />
+      <source>Advisory:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1578" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1553" />
+      <source>unknown</source>
+      <translation type="unfinished">inconnu</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1575" />
+      <source>any</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <source>Press to install the selected package</source>
+      <translation type="vanished">Cliquer pour installer le package sélectionné</translation>
+    </message>
+    <message>
+      <source>Toggle to show or hide the search window</source>
+      <translation type="vanished">Montrer/cacher la fenêtre de recherche</translation>
+    </message>
+    <message>
+      <source>Enter the search term for the package name</source>
+      <translation type="vanished">Entrer le terme  de recherche pour le nom du package</translation>
+    </message>
+    <message>
+      <source>Enter search term</source>
+      <translation type="vanished">Entrer le terme de recherche</translation>
+    </message>
+    <message>
+      <source>Press to start the search</source>
+      <translation type="vanished">Cliquer pour démarrer la recherche</translation>
+    </message>
+    <message>
+      <source>Version</source>
+      <translation type="vanished">Version</translation>
+    </message>
+    <message>
+      <source>Description</source>
+      <translation type="vanished">Description</translation>
     </message>
     <message numerus="yes">
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1048" />
       <source>%n package(s) found.</source>
-      <translation>
+      <translation type="vanished">
         <numerusform>%n package trouvé.</numerusform>
         <numerusform>%n packages trouvés.</numerusform>
       </translation>
     </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1055" />
-      <source>Showing first {0} packages found.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1074" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1069" />
-      <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="1082" />
-      <source>&lt;p&gt;There were no more results for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1262" />
-      <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="1281" />
-      <source>Pip</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1283" />
-      <source>Install Pip</source>
-      <translation>Installer pip</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1286" />
-      <source>Install Pip to User-Site</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1289" />
-      <source>Repair Pip</source>
-      <translation>Réparer Pip</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1296" />
-      <source>Install</source>
-      <translation type="unfinished">Installer</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1475" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1298" />
-      <source>Install Packages</source>
-      <translation>Installer des packages</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1301" />
-      <source>Install Local Package</source>
-      <translation>Installer un package local</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1304" />
-      <source>Re-Install Selected Packages</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1311" />
-      <source>Requirements/Constraints</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1313" />
-      <source>Install Requirements</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1316" />
-      <source>Uninstall Requirements</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1319" />
-      <source>Generate Requirements...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1323" />
-      <source>Install from 'pyproject.toml'</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1327" />
-      <source>Uninstall from 'pyproject.toml'</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1332" />
-      <source>Generate Constraints...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1339" />
-      <source>Cache</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1341" />
-      <source>Show Cache Info...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1344" />
-      <source>Show Cached Files...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1347" />
-      <source>Remove Cached Files...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1350" />
-      <source>Purge Cache...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1367" />
-      <source>Show Licenses...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1371" />
-      <source>Check Vulnerabilities</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1375" />
-      <source>Update Vulnerability Database</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1379" />
-      <source>Create SBOM file</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1386" />
-      <source>Edit User Configuration...</source>
-      <translation>Éditer la configuration utilisateur...</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1389" />
-      <source>Edit Environment Configuration...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1394" />
-      <source>Configure...</source>
-      <translation>Configuration...</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1638" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1625" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1614" />
-      <source>Edit Configuration</source>
-      <translation>Éditer la configuration</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1639" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1626" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1615" />
-      <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="1848" />
-      <source>{0} {1}</source>
-      <comment>package name, package version</comment>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1869" />
-      <source>Affected Version:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1872" />
-      <source>Advisory:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="2007" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1982" />
-      <source>unknown</source>
-      <translation type="unfinished">inconnu</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="2004" />
-      <source>any</source>
-      <translation type="unfinished" />
-    </message>
   </context>
   <context>
     <name>PipPackagesWindow</name>
--- a/src/eric7/i18n/eric7_it.ts	Thu Dec 12 11:42:04 2024 +0100
+++ b/src/eric7/i18n/eric7_it.ts	Sat Dec 14 13:03:11 2024 +0100
@@ -60430,74 +60430,12 @@
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to install the selected package</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to install the selected package to the user site</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>Press to show details for the selected entry</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Toggle to show or hide the search window</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" />
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Package</source>
+      <source>Press to refresh the lists</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Enter the search term for the package name</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Enter search term</source>
-      <translation type="unfinished">Inserisci termini di ricerca</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to start the search</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to search for more packages</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Version</source>
-      <translation type="unfinished">Versione</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Released</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Description</source>
-      <translation type="unfinished">Descrizione</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to refresh the lists</source>
+      <source>Press to install a package.</source>
       <translation type="unfinished" />
     </message>
     <message>
@@ -60517,6 +60455,12 @@
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Press to show details for the selected entry</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Press to remove leftovers of an upgrade or uninstall run.</source>
       <translation type="unfinished" />
     </message>
@@ -60565,6 +60509,13 @@
     <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>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Installed</source>
       <translation type="unfinished" />
     </message>
@@ -60659,335 +60610,337 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="199" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Search Package:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Enter package name to search for.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Press to open a web browser for searching.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="83" />
       <source>pip Menu</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="234" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="113" />
       <source>Author:</source>
       <translation type="unfinished">Autore:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="235" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="114" />
       <source>Author Email:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="236" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="115" />
       <source>Classifiers:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="237" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="116" />
       <source>Entry Points:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="238" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="117" />
       <source>Files:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="239" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="118" />
       <source>Homepage:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="240" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="119" />
       <source>Installer:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="241" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="120" />
       <source>License:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="242" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="121" />
       <source>Location:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="243" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="122" />
       <source>Metadata Version:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="244" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="123" />
       <source>Name:</source>
       <translation type="unfinished">Nome:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="245" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="124" />
       <source>Project URLs:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="246" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="125" />
       <source>Requires:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="247" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="126" />
       <source>Required By:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="248" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="127" />
       <source>Summary:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="249" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="128" />
       <source>Version:</source>
       <translation type="unfinished">Versione:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="453" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="335" />
       <source>Getting installed packages...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="481" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="363" />
       <source>Getting outdated packages...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="864" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="858" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="735" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="729" />
       <source>Cleanup Environment</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="859" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="730" />
       <source>The environment cleanup was successful.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="865" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="736" />
       <source>Some leftover package directories could not been removed. Delete them manually.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1261" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1081" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1068" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1032" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="832" />
       <source>Search PyPI</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1033" />
-      <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" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="833" />
+      <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="852" />
+      <source>Pip</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="854" />
+      <source>Install Pip</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="857" />
+      <source>Install Pip to User-Site</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="860" />
+      <source>Repair Pip</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="867" />
+      <source>Install</source>
+      <translation type="unfinished">Installa</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1046" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="869" />
+      <source>Install Packages</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="872" />
+      <source>Install Local Package</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="875" />
+      <source>Re-Install Selected Packages</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="882" />
+      <source>Requirements/Constraints</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="884" />
+      <source>Install Requirements</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="887" />
+      <source>Uninstall Requirements</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="890" />
+      <source>Generate Requirements...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="894" />
+      <source>Install from 'pyproject.toml'</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="898" />
+      <source>Uninstall from 'pyproject.toml'</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="903" />
+      <source>Generate Constraints...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="910" />
+      <source>Cache</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="912" />
+      <source>Show Cache Info...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="915" />
+      <source>Show Cached Files...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="918" />
+      <source>Remove Cached Files...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="921" />
+      <source>Purge Cache...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="938" />
+      <source>Show Licenses...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="942" />
+      <source>Check Vulnerabilities</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="946" />
+      <source>Update Vulnerability Database</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="950" />
+      <source>Create SBOM file</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="957" />
+      <source>Edit User Configuration...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="960" />
+      <source>Edit Environment Configuration...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="965" />
+      <source>Configure...</source>
+      <translation type="unfinished">Configura...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1209" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1196" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1185" />
+      <source>Edit Configuration</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1210" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1197" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1186" />
+      <source>No valid configuration path determined. Aborting</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1419" />
+      <source>{0} {1}</source>
+      <comment>package name, package version</comment>
+      <translation type="unfinished">{0} {1}</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1440" />
+      <source>Affected Version:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1443" />
+      <source>Advisory:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1578" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1553" />
+      <source>unknown</source>
+      <translation type="unfinished">sconosciuto</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1575" />
+      <source>any</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <source>Enter search term</source>
+      <translation type="vanished">Inserisci termini di ricerca</translation>
+    </message>
+    <message>
+      <source>Version</source>
+      <translation type="vanished">Versione</translation>
+    </message>
+    <message>
+      <source>Description</source>
+      <translation type="vanished">Descrizione</translation>
     </message>
     <message numerus="yes">
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1048" />
       <source>%n package(s) found.</source>
-      <translation type="unfinished">
+      <translation type="vanished">
         <numerusform />
         <numerusform />
       </translation>
     </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1055" />
-      <source>Showing first {0} packages found.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1074" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1069" />
-      <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="1082" />
-      <source>&lt;p&gt;There were no more results for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1262" />
-      <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="1281" />
-      <source>Pip</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1283" />
-      <source>Install Pip</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1286" />
-      <source>Install Pip to User-Site</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1289" />
-      <source>Repair Pip</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1296" />
-      <source>Install</source>
-      <translation type="unfinished">Installa</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1475" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1298" />
-      <source>Install Packages</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1301" />
-      <source>Install Local Package</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1304" />
-      <source>Re-Install Selected Packages</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1311" />
-      <source>Requirements/Constraints</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1313" />
-      <source>Install Requirements</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1316" />
-      <source>Uninstall Requirements</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1319" />
-      <source>Generate Requirements...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1323" />
-      <source>Install from 'pyproject.toml'</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1327" />
-      <source>Uninstall from 'pyproject.toml'</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1332" />
-      <source>Generate Constraints...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1339" />
-      <source>Cache</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1341" />
-      <source>Show Cache Info...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1344" />
-      <source>Show Cached Files...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1347" />
-      <source>Remove Cached Files...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1350" />
-      <source>Purge Cache...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1367" />
-      <source>Show Licenses...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1371" />
-      <source>Check Vulnerabilities</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1375" />
-      <source>Update Vulnerability Database</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1379" />
-      <source>Create SBOM file</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1386" />
-      <source>Edit User Configuration...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1389" />
-      <source>Edit Environment Configuration...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1394" />
-      <source>Configure...</source>
-      <translation type="unfinished">Configura...</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1638" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1625" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1614" />
-      <source>Edit Configuration</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1639" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1626" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1615" />
-      <source>No valid configuration path determined. Aborting</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1848" />
-      <source>{0} {1}</source>
-      <comment>package name, package version</comment>
-      <translation type="unfinished">{0} {1}</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1869" />
-      <source>Affected Version:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1872" />
-      <source>Advisory:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="2007" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1982" />
-      <source>unknown</source>
-      <translation type="unfinished">sconosciuto</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="2004" />
-      <source>any</source>
-      <translation type="unfinished" />
-    </message>
   </context>
   <context>
     <name>PipPackagesWindow</name>
--- a/src/eric7/i18n/eric7_pt.ts	Thu Dec 12 11:42:04 2024 +0100
+++ b/src/eric7/i18n/eric7_pt.ts	Sat Dec 14 13:03:11 2024 +0100
@@ -60425,74 +60425,12 @@
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to install the selected package</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to install the selected package to the user site</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>Press to show details for the selected entry</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Toggle to show or hide the search window</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" />
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Package</source>
+      <source>Press to refresh the lists</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Enter the search term for the package name</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Enter search term</source>
-      <translation type="unfinished">Introduzir o termo de pesquisa</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to start the search</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to search for more packages</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Version</source>
-      <translation type="unfinished">Versão</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Released</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Description</source>
-      <translation type="unfinished">Descrição</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to refresh the lists</source>
+      <source>Press to install a package.</source>
       <translation type="unfinished" />
     </message>
     <message>
@@ -60512,6 +60450,12 @@
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Press to show details for the selected entry</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Press to remove leftovers of an upgrade or uninstall run.</source>
       <translation type="unfinished" />
     </message>
@@ -60560,6 +60504,13 @@
     <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>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Installed</source>
       <translation type="unfinished" />
     </message>
@@ -60654,335 +60605,337 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="199" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Search Package:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Enter package name to search for.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Press to open a web browser for searching.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="83" />
       <source>pip Menu</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="234" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="113" />
       <source>Author:</source>
       <translation type="unfinished">Autor:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="235" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="114" />
       <source>Author Email:</source>
       <translation type="unfinished">Correio Eletrónico do Autor:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="236" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="115" />
       <source>Classifiers:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="237" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="116" />
       <source>Entry Points:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="238" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="117" />
       <source>Files:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="239" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="118" />
       <source>Homepage:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="240" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="119" />
       <source>Installer:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="241" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="120" />
       <source>License:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="242" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="121" />
       <source>Location:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="243" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="122" />
       <source>Metadata Version:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="244" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="123" />
       <source>Name:</source>
       <translation type="unfinished">Nome:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="245" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="124" />
       <source>Project URLs:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="246" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="125" />
       <source>Requires:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="247" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="126" />
       <source>Required By:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="248" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="127" />
       <source>Summary:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="249" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="128" />
       <source>Version:</source>
       <translation type="unfinished">Versão:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="453" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="335" />
       <source>Getting installed packages...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="481" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="363" />
       <source>Getting outdated packages...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="864" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="858" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="735" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="729" />
       <source>Cleanup Environment</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="859" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="730" />
       <source>The environment cleanup was successful.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="865" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="736" />
       <source>Some leftover package directories could not been removed. Delete them manually.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1261" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1081" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1068" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1032" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="832" />
       <source>Search PyPI</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1033" />
-      <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" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="833" />
+      <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="852" />
+      <source>Pip</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="854" />
+      <source>Install Pip</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="857" />
+      <source>Install Pip to User-Site</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="860" />
+      <source>Repair Pip</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="867" />
+      <source>Install</source>
+      <translation type="unfinished">Instalar</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1046" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="869" />
+      <source>Install Packages</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="872" />
+      <source>Install Local Package</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="875" />
+      <source>Re-Install Selected Packages</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="882" />
+      <source>Requirements/Constraints</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="884" />
+      <source>Install Requirements</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="887" />
+      <source>Uninstall Requirements</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="890" />
+      <source>Generate Requirements...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="894" />
+      <source>Install from 'pyproject.toml'</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="898" />
+      <source>Uninstall from 'pyproject.toml'</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="903" />
+      <source>Generate Constraints...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="910" />
+      <source>Cache</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="912" />
+      <source>Show Cache Info...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="915" />
+      <source>Show Cached Files...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="918" />
+      <source>Remove Cached Files...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="921" />
+      <source>Purge Cache...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="938" />
+      <source>Show Licenses...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="942" />
+      <source>Check Vulnerabilities</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="946" />
+      <source>Update Vulnerability Database</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="950" />
+      <source>Create SBOM file</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="957" />
+      <source>Edit User Configuration...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="960" />
+      <source>Edit Environment Configuration...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="965" />
+      <source>Configure...</source>
+      <translation type="unfinished">Configurar...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1209" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1196" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1185" />
+      <source>Edit Configuration</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1210" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1197" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1186" />
+      <source>No valid configuration path determined. Aborting</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1419" />
+      <source>{0} {1}</source>
+      <comment>package name, package version</comment>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1440" />
+      <source>Affected Version:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1443" />
+      <source>Advisory:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1578" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1553" />
+      <source>unknown</source>
+      <translation type="unfinished">desconhecido</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1575" />
+      <source>any</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <source>Enter search term</source>
+      <translation type="vanished">Introduzir o termo de pesquisa</translation>
+    </message>
+    <message>
+      <source>Version</source>
+      <translation type="vanished">Versão</translation>
+    </message>
+    <message>
+      <source>Description</source>
+      <translation type="vanished">Descrição</translation>
     </message>
     <message numerus="yes">
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1048" />
       <source>%n package(s) found.</source>
-      <translation type="unfinished">
+      <translation type="vanished">
         <numerusform />
         <numerusform />
       </translation>
     </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1055" />
-      <source>Showing first {0} packages found.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1074" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1069" />
-      <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="1082" />
-      <source>&lt;p&gt;There were no more results for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1262" />
-      <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="1281" />
-      <source>Pip</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1283" />
-      <source>Install Pip</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1286" />
-      <source>Install Pip to User-Site</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1289" />
-      <source>Repair Pip</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1296" />
-      <source>Install</source>
-      <translation type="unfinished">Instalar</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1475" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1298" />
-      <source>Install Packages</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1301" />
-      <source>Install Local Package</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1304" />
-      <source>Re-Install Selected Packages</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1311" />
-      <source>Requirements/Constraints</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1313" />
-      <source>Install Requirements</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1316" />
-      <source>Uninstall Requirements</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1319" />
-      <source>Generate Requirements...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1323" />
-      <source>Install from 'pyproject.toml'</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1327" />
-      <source>Uninstall from 'pyproject.toml'</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1332" />
-      <source>Generate Constraints...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1339" />
-      <source>Cache</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1341" />
-      <source>Show Cache Info...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1344" />
-      <source>Show Cached Files...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1347" />
-      <source>Remove Cached Files...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1350" />
-      <source>Purge Cache...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1367" />
-      <source>Show Licenses...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1371" />
-      <source>Check Vulnerabilities</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1375" />
-      <source>Update Vulnerability Database</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1379" />
-      <source>Create SBOM file</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1386" />
-      <source>Edit User Configuration...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1389" />
-      <source>Edit Environment Configuration...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1394" />
-      <source>Configure...</source>
-      <translation type="unfinished">Configurar...</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1638" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1625" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1614" />
-      <source>Edit Configuration</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1639" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1626" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1615" />
-      <source>No valid configuration path determined. Aborting</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1848" />
-      <source>{0} {1}</source>
-      <comment>package name, package version</comment>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1869" />
-      <source>Affected Version:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1872" />
-      <source>Advisory:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="2007" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1982" />
-      <source>unknown</source>
-      <translation type="unfinished">desconhecido</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="2004" />
-      <source>any</source>
-      <translation type="unfinished" />
-    </message>
   </context>
   <context>
     <name>PipPackagesWindow</name>
--- a/src/eric7/i18n/eric7_ru.ts	Thu Dec 12 11:42:04 2024 +0100
+++ b/src/eric7/i18n/eric7_ru.ts	Sat Dec 14 13:03:11 2024 +0100
@@ -60466,75 +60466,13 @@
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to install the selected package</source>
-      <translation>Установить выбранный пакет</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to install the selected package to the user site</source>
-      <translation>Установить выбранный пакет в user site</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>Press to show details for the selected entry</source>
-      <translation>Показать информацию для выбранной записи</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Toggle to show or hide the search window</source>
-      <translation>Показать / скрыть окно поиска</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Package</source>
-      <translation>Пакет</translation>
+      <source>Press to refresh the lists</source>
+      <translation>Освежить списки</translation>
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Enter the search term for the package name</source>
-      <translation>Введите имя пакета в поисковый запрос</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Enter search term</source>
-      <translation>Введите поисковый запрос</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to start the search</source>
-      <translation>Начать поиск</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to search for more packages</source>
-      <translation>Поиск следующих пакетов</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Version</source>
-      <translation>Версия</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Released</source>
-      <translation>Выпущен</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Description</source>
-      <translation>Описание</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to refresh the lists</source>
-      <translation>Освежить списки</translation>
+      <source>Press to install a package.</source>
+      <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
@@ -60553,6 +60491,12 @@
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Press to show details for the selected entry</source>
+      <translation>Показать информацию для выбранной записи</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Press to remove leftovers of an upgrade or uninstall run.</source>
       <translation type="unfinished" />
     </message>
@@ -60601,6 +60545,13 @@
     <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>
+      <translation>Пакет</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Installed</source>
       <translation>Установленная версия</translation>
     </message>
@@ -60695,337 +60646,383 @@
       <translation>Требуемая</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="199" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Search Package:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Enter package name to search for.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Press to open a web browser for searching.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="83" />
       <source>pip Menu</source>
       <translation>Меню pip</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="234" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="113" />
       <source>Author:</source>
       <translation>Автор:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="235" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="114" />
       <source>Author Email:</source>
       <translation>Email автора:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="236" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="115" />
       <source>Classifiers:</source>
       <translation>Классификаторы:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="237" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="116" />
       <source>Entry Points:</source>
       <translation>Точки входа:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="238" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="117" />
       <source>Files:</source>
       <translation>Файлы:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="239" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="118" />
       <source>Homepage:</source>
       <translation>Домашняя страница:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="240" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="119" />
       <source>Installer:</source>
       <translation>Установщик:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="241" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="120" />
       <source>License:</source>
       <translation>Лицензия:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="242" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="121" />
       <source>Location:</source>
       <translation>Расположение:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="243" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="122" />
       <source>Metadata Version:</source>
       <translation>Версия Metadata:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="244" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="123" />
       <source>Name:</source>
       <translation>Имя:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="245" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="124" />
       <source>Project URLs:</source>
       <translation>URLы проекта:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="246" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="125" />
       <source>Requires:</source>
       <translation>Зависимости:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="247" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="126" />
       <source>Required By:</source>
       <translation>Зависимые:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="248" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="127" />
       <source>Summary:</source>
       <translation>Аннотация:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="249" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="128" />
       <source>Version:</source>
       <translation>Версия:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="453" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="335" />
       <source>Getting installed packages...</source>
       <translation>Получение списка установленных пакетов...</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="481" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="363" />
       <source>Getting outdated packages...</source>
       <translation>Получение списка обновленных пакетов...</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="864" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="858" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="735" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="729" />
       <source>Cleanup Environment</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="859" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="730" />
       <source>The environment cleanup was successful.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="865" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="736" />
       <source>Some leftover package directories could not been removed. Delete them manually.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1261" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1081" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1068" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1032" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="832" />
       <source>Search PyPI</source>
       <translation>Поиск в PyPI</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1033" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="833" />
+      <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="852" />
+      <source>Pip</source>
+      <translation>Pip</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="854" />
+      <source>Install Pip</source>
+      <translation>Инсталировать Pip</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="857" />
+      <source>Install Pip to User-Site</source>
+      <translation>Инсталировать Pip в User-Site</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="860" />
+      <source>Repair Pip</source>
+      <translation>Восстановить Pip</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="867" />
+      <source>Install</source>
+      <translation>Установить</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1046" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="869" />
+      <source>Install Packages</source>
+      <translation>Установить пакеты</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="872" />
+      <source>Install Local Package</source>
+      <translation>Установить локальный пакет</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="875" />
+      <source>Re-Install Selected Packages</source>
+      <translation>Переинсталировать выбранные пакеты</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="882" />
+      <source>Requirements/Constraints</source>
+      <translation>Зависимости/Ограничения</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="884" />
+      <source>Install Requirements</source>
+      <translation>Установить зависимости</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="887" />
+      <source>Uninstall Requirements</source>
+      <translation>Деинсталировать зависимости</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="890" />
+      <source>Generate Requirements...</source>
+      <translation>Генерировать зависимости...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="894" />
+      <source>Install from 'pyproject.toml'</source>
+      <translation>Установить из 'pyproject.toml'</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="898" />
+      <source>Uninstall from 'pyproject.toml'</source>
+      <translation>Деинсталировать из 'pyproject.toml'</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="903" />
+      <source>Generate Constraints...</source>
+      <translation>Генерировать ограничения...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="910" />
+      <source>Cache</source>
+      <translation>Кэш</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="912" />
+      <source>Show Cache Info...</source>
+      <translation>Показать информацию о кэше...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="915" />
+      <source>Show Cached Files...</source>
+      <translation>Показать кэшированные файлы...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="918" />
+      <source>Remove Cached Files...</source>
+      <translation>Удалить кэшированные файлы...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="921" />
+      <source>Purge Cache...</source>
+      <translation>Очистить кэш...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="938" />
+      <source>Show Licenses...</source>
+      <translation>Показать лицензии...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="942" />
+      <source>Check Vulnerabilities</source>
+      <translation>Проверить уязвимости</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="946" />
+      <source>Update Vulnerability Database</source>
+      <translation>Обновить базу уязвимостей</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="950" />
+      <source>Create SBOM file</source>
+      <translation>Создать файл SBOM</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="957" />
+      <source>Edit User Configuration...</source>
+      <translation>Правка конфигурации пользователя...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="960" />
+      <source>Edit Environment Configuration...</source>
+      <translation>Правка конфигурации среды окружения...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="965" />
+      <source>Configure...</source>
+      <translation>Настроить...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1209" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1196" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1185" />
+      <source>Edit Configuration</source>
+      <translation>Правка конфигурации</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1210" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1197" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1186" />
+      <source>No valid configuration path determined. Aborting</source>
+      <translation>Не определен допустимый путь конфигурации. Прерывание</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1419" />
+      <source>{0} {1}</source>
+      <comment>package name, package version</comment>
+      <translation>{0} {1}</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1440" />
+      <source>Affected Version:</source>
+      <translatorcomment>Подверженная уязвимости версия:  Пораженная версия Уязвимая</translatorcomment>
+      <translation>Версия с уязвимостью:</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1443" />
+      <source>Advisory:</source>
+      <translatorcomment>Консультация:  Рекомендация</translatorcomment>
+      <translation>Рекомендуемая:</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1578" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1553" />
+      <source>unknown</source>
+      <translation>неизвестная</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1575" />
+      <source>any</source>
+      <translation>любая</translation>
+    </message>
+    <message>
+      <source>Press to install the selected package</source>
+      <translation type="vanished">Установить выбранный пакет</translation>
+    </message>
+    <message>
+      <source>Press to install the selected package to the user site</source>
+      <translation type="vanished">Установить выбранный пакет в user site</translation>
+    </message>
+    <message>
+      <source>Toggle to show or hide the search window</source>
+      <translation type="vanished">Показать / скрыть окно поиска</translation>
+    </message>
+    <message>
+      <source>Enter the search term for the package name</source>
+      <translation type="vanished">Введите имя пакета в поисковый запрос</translation>
+    </message>
+    <message>
+      <source>Enter search term</source>
+      <translation type="vanished">Введите поисковый запрос</translation>
+    </message>
+    <message>
+      <source>Press to start the search</source>
+      <translation type="vanished">Начать поиск</translation>
+    </message>
+    <message>
+      <source>Press to search for more packages</source>
+      <translation type="vanished">Поиск следующих пакетов</translation>
+    </message>
+    <message>
+      <source>Version</source>
+      <translation type="vanished">Версия</translation>
+    </message>
+    <message>
+      <source>Released</source>
+      <translation type="vanished">Выпущен</translation>
+    </message>
+    <message>
+      <source>Description</source>
+      <translation type="vanished">Описание</translation>
+    </message>
+    <message>
       <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>
+      <translation type="vanished">&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="1048" />
       <source>%n package(s) found.</source>
-      <translation>
+      <translation type="vanished">
         <numerusform>Найден %n пакет.</numerusform>
         <numerusform>Найдены %n пакета.</numerusform>
         <numerusform>Найдено %n пакетов.</numerusform>
       </translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1055" />
       <source>Showing first {0} packages found.</source>
-      <translation>Показаны первые {0} найденных пакетов.</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1074" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1069" />
+      <translation type="vanished">Показаны первые {0} найденных пакетов.</translation>
+    </message>
+    <message>
       <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="1082" />
+      <translation type="vanished">&lt;p&gt;Нет результатов по запросу &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
+    </message>
+    <message>
       <source>&lt;p&gt;There were no more 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="1262" />
-      <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="1281" />
-      <source>Pip</source>
-      <translation>Pip</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1283" />
-      <source>Install Pip</source>
-      <translation>Инсталировать Pip</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1286" />
-      <source>Install Pip to User-Site</source>
-      <translation>Инсталировать Pip в User-Site</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1289" />
-      <source>Repair Pip</source>
-      <translation>Восстановить Pip</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1296" />
-      <source>Install</source>
-      <translation>Установить</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1475" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1298" />
-      <source>Install Packages</source>
-      <translation>Установить пакеты</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1301" />
-      <source>Install Local Package</source>
-      <translation>Установить локальный пакет</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1304" />
-      <source>Re-Install Selected Packages</source>
-      <translation>Переинсталировать выбранные пакеты</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1311" />
-      <source>Requirements/Constraints</source>
-      <translation>Зависимости/Ограничения</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1313" />
-      <source>Install Requirements</source>
-      <translation>Установить зависимости</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1316" />
-      <source>Uninstall Requirements</source>
-      <translation>Деинсталировать зависимости</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1319" />
-      <source>Generate Requirements...</source>
-      <translation>Генерировать зависимости...</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1323" />
-      <source>Install from 'pyproject.toml'</source>
-      <translation>Установить из 'pyproject.toml'</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1327" />
-      <source>Uninstall from 'pyproject.toml'</source>
-      <translation>Деинсталировать из 'pyproject.toml'</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1332" />
-      <source>Generate Constraints...</source>
-      <translation>Генерировать ограничения...</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1339" />
-      <source>Cache</source>
-      <translation>Кэш</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1341" />
-      <source>Show Cache Info...</source>
-      <translation>Показать информацию о кэше...</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1344" />
-      <source>Show Cached Files...</source>
-      <translation>Показать кэшированные файлы...</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1347" />
-      <source>Remove Cached Files...</source>
-      <translation>Удалить кэшированные файлы...</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1350" />
-      <source>Purge Cache...</source>
-      <translation>Очистить кэш...</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1367" />
-      <source>Show Licenses...</source>
-      <translation>Показать лицензии...</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1371" />
-      <source>Check Vulnerabilities</source>
-      <translation>Проверить уязвимости</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1375" />
-      <source>Update Vulnerability Database</source>
-      <translation>Обновить базу уязвимостей</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1379" />
-      <source>Create SBOM file</source>
-      <translation>Создать файл SBOM</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1386" />
-      <source>Edit User Configuration...</source>
-      <translation>Правка конфигурации пользователя...</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1389" />
-      <source>Edit Environment Configuration...</source>
-      <translation>Правка конфигурации среды окружения...</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1394" />
-      <source>Configure...</source>
-      <translation>Настроить...</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1638" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1625" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1614" />
-      <source>Edit Configuration</source>
-      <translation>Правка конфигурации</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1639" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1626" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1615" />
-      <source>No valid configuration path determined. Aborting</source>
-      <translation>Не определен допустимый путь конфигурации. Прерывание</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1848" />
-      <source>{0} {1}</source>
-      <comment>package name, package version</comment>
-      <translation>{0} {1}</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1869" />
-      <source>Affected Version:</source>
-      <translatorcomment>Подверженная уязвимости версия:  Пораженная версия Уязвимая</translatorcomment>
-      <translation>Версия с уязвимостью:</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1872" />
-      <source>Advisory:</source>
-      <translatorcomment>Консультация:  Рекомендация</translatorcomment>
-      <translation>Рекомендуемая:</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="2007" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1982" />
-      <source>unknown</source>
-      <translation>неизвестная</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="2004" />
-      <source>any</source>
-      <translation>любая</translation>
+      <translation type="vanished">&lt;p&gt;По запросу &lt;b&gt;{0}&lt;/b&gt; больше нет результатов.&lt;/p&gt;</translation>
     </message>
   </context>
   <context>
--- a/src/eric7/i18n/eric7_tr.ts	Thu Dec 12 11:42:04 2024 +0100
+++ b/src/eric7/i18n/eric7_tr.ts	Sat Dec 14 13:03:11 2024 +0100
@@ -60334,74 +60334,12 @@
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to install the selected package</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to install the selected package to the user site</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>Press to show details for the selected entry</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Toggle to show or hide the search window</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" />
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Package</source>
+      <source>Press to refresh the lists</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Enter the search term for the package name</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Enter search term</source>
-      <translation type="unfinished">Arama kriterlerini giriniz</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to start the search</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to search for more packages</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Version</source>
-      <translation type="unfinished">Sürüm</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Released</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Description</source>
-      <translation type="unfinished">Açıklama</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to refresh the lists</source>
+      <source>Press to install a package.</source>
       <translation type="unfinished" />
     </message>
     <message>
@@ -60421,6 +60359,12 @@
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Press to show details for the selected entry</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Press to remove leftovers of an upgrade or uninstall run.</source>
       <translation type="unfinished" />
     </message>
@@ -60469,6 +60413,13 @@
     <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>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Installed</source>
       <translation type="unfinished" />
     </message>
@@ -60563,335 +60514,337 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="199" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Search Package:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Enter package name to search for.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Press to open a web browser for searching.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="83" />
       <source>pip Menu</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="234" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="113" />
       <source>Author:</source>
       <translation type="unfinished">Yazar:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="235" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="114" />
       <source>Author Email:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="236" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="115" />
       <source>Classifiers:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="237" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="116" />
       <source>Entry Points:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="238" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="117" />
       <source>Files:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="239" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="118" />
       <source>Homepage:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="240" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="119" />
       <source>Installer:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="241" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="120" />
       <source>License:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="242" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="121" />
       <source>Location:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="243" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="122" />
       <source>Metadata Version:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="244" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="123" />
       <source>Name:</source>
       <translation type="unfinished">Adı:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="245" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="124" />
       <source>Project URLs:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="246" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="125" />
       <source>Requires:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="247" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="126" />
       <source>Required By:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="248" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="127" />
       <source>Summary:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="249" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="128" />
       <source>Version:</source>
       <translation type="unfinished">Sürüm:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="453" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="335" />
       <source>Getting installed packages...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="481" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="363" />
       <source>Getting outdated packages...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="864" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="858" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="735" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="729" />
       <source>Cleanup Environment</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="859" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="730" />
       <source>The environment cleanup was successful.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="865" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="736" />
       <source>Some leftover package directories could not been removed. Delete them manually.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1261" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1081" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1068" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1032" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="832" />
       <source>Search PyPI</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1033" />
-      <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" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="833" />
+      <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="852" />
+      <source>Pip</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="854" />
+      <source>Install Pip</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="857" />
+      <source>Install Pip to User-Site</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="860" />
+      <source>Repair Pip</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="867" />
+      <source>Install</source>
+      <translation type="unfinished">Kur</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1046" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="869" />
+      <source>Install Packages</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="872" />
+      <source>Install Local Package</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="875" />
+      <source>Re-Install Selected Packages</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="882" />
+      <source>Requirements/Constraints</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="884" />
+      <source>Install Requirements</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="887" />
+      <source>Uninstall Requirements</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="890" />
+      <source>Generate Requirements...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="894" />
+      <source>Install from 'pyproject.toml'</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="898" />
+      <source>Uninstall from 'pyproject.toml'</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="903" />
+      <source>Generate Constraints...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="910" />
+      <source>Cache</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="912" />
+      <source>Show Cache Info...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="915" />
+      <source>Show Cached Files...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="918" />
+      <source>Remove Cached Files...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="921" />
+      <source>Purge Cache...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="938" />
+      <source>Show Licenses...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="942" />
+      <source>Check Vulnerabilities</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="946" />
+      <source>Update Vulnerability Database</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="950" />
+      <source>Create SBOM file</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="957" />
+      <source>Edit User Configuration...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="960" />
+      <source>Edit Environment Configuration...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="965" />
+      <source>Configure...</source>
+      <translation type="unfinished">Ayarlanıyor...</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1209" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1196" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1185" />
+      <source>Edit Configuration</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1210" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1197" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1186" />
+      <source>No valid configuration path determined. Aborting</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1419" />
+      <source>{0} {1}</source>
+      <comment>package name, package version</comment>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1440" />
+      <source>Affected Version:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1443" />
+      <source>Advisory:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1578" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1553" />
+      <source>unknown</source>
+      <translation type="unfinished">bilinmeyen</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1575" />
+      <source>any</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <source>Enter search term</source>
+      <translation type="vanished">Arama kriterlerini giriniz</translation>
+    </message>
+    <message>
+      <source>Version</source>
+      <translation type="vanished">Sürüm</translation>
+    </message>
+    <message>
+      <source>Description</source>
+      <translation type="vanished">Açıklama</translation>
     </message>
     <message numerus="yes">
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1048" />
       <source>%n package(s) found.</source>
-      <translation type="unfinished">
+      <translation type="vanished">
         <numerusform />
         <numerusform />
       </translation>
     </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1055" />
-      <source>Showing first {0} packages found.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1074" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1069" />
-      <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="1082" />
-      <source>&lt;p&gt;There were no more results for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1262" />
-      <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="1281" />
-      <source>Pip</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1283" />
-      <source>Install Pip</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1286" />
-      <source>Install Pip to User-Site</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1289" />
-      <source>Repair Pip</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1296" />
-      <source>Install</source>
-      <translation type="unfinished">Kur</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1475" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1298" />
-      <source>Install Packages</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1301" />
-      <source>Install Local Package</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1304" />
-      <source>Re-Install Selected Packages</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1311" />
-      <source>Requirements/Constraints</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1313" />
-      <source>Install Requirements</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1316" />
-      <source>Uninstall Requirements</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1319" />
-      <source>Generate Requirements...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1323" />
-      <source>Install from 'pyproject.toml'</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1327" />
-      <source>Uninstall from 'pyproject.toml'</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1332" />
-      <source>Generate Constraints...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1339" />
-      <source>Cache</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1341" />
-      <source>Show Cache Info...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1344" />
-      <source>Show Cached Files...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1347" />
-      <source>Remove Cached Files...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1350" />
-      <source>Purge Cache...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1367" />
-      <source>Show Licenses...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1371" />
-      <source>Check Vulnerabilities</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1375" />
-      <source>Update Vulnerability Database</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1379" />
-      <source>Create SBOM file</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1386" />
-      <source>Edit User Configuration...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1389" />
-      <source>Edit Environment Configuration...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1394" />
-      <source>Configure...</source>
-      <translation type="unfinished">Ayarlanıyor...</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1638" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1625" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1614" />
-      <source>Edit Configuration</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1639" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1626" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1615" />
-      <source>No valid configuration path determined. Aborting</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1848" />
-      <source>{0} {1}</source>
-      <comment>package name, package version</comment>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1869" />
-      <source>Affected Version:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1872" />
-      <source>Advisory:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="2007" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1982" />
-      <source>unknown</source>
-      <translation type="unfinished">bilinmeyen</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="2004" />
-      <source>any</source>
-      <translation type="unfinished" />
-    </message>
   </context>
   <context>
     <name>PipPackagesWindow</name>
--- a/src/eric7/i18n/eric7_zh_CN.ts	Thu Dec 12 11:42:04 2024 +0100
+++ b/src/eric7/i18n/eric7_zh_CN.ts	Sat Dec 14 13:03:11 2024 +0100
@@ -60408,74 +60408,12 @@
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to install the selected package</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to install the selected package to the user site</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>Press to show details for the selected entry</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Toggle to show or hide the search window</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" />
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Package</source>
+      <source>Press to refresh the lists</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Enter the search term for the package name</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Enter search term</source>
-      <translation type="unfinished">输入搜索词</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to start the search</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to search for more packages</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Version</source>
-      <translation type="unfinished">版本</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Released</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Description</source>
-      <translation type="unfinished">描述</translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
-      <source>Press to refresh the lists</source>
+      <source>Press to install a package.</source>
       <translation type="unfinished" />
     </message>
     <message>
@@ -60495,6 +60433,12 @@
     </message>
     <message>
       <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Press to show details for the selected entry</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Press to remove leftovers of an upgrade or uninstall run.</source>
       <translation type="unfinished" />
     </message>
@@ -60543,6 +60487,13 @@
     <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>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
       <source>Installed</source>
       <translation type="unfinished" />
     </message>
@@ -60637,334 +60588,336 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="199" />
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Search Package:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Enter package name to search for.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.ui" line="0" />
+      <source>Press to open a web browser for searching.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="83" />
       <source>pip Menu</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="234" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="113" />
       <source>Author:</source>
       <translation type="unfinished">作者:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="235" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="114" />
       <source>Author Email:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="236" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="115" />
       <source>Classifiers:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="237" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="116" />
       <source>Entry Points:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="238" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="117" />
       <source>Files:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="239" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="118" />
       <source>Homepage:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="240" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="119" />
       <source>Installer:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="241" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="120" />
       <source>License:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="242" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="121" />
       <source>Location:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="243" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="122" />
       <source>Metadata Version:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="244" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="123" />
       <source>Name:</source>
       <translation type="unfinished">名称:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="245" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="124" />
       <source>Project URLs:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="246" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="125" />
       <source>Requires:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="247" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="126" />
       <source>Required By:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="248" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="127" />
       <source>Summary:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="249" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="128" />
       <source>Version:</source>
       <translation type="unfinished">版本:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="453" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="335" />
       <source>Getting installed packages...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="481" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="363" />
       <source>Getting outdated packages...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="864" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="858" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="735" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="729" />
       <source>Cleanup Environment</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="859" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="730" />
       <source>The environment cleanup was successful.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="865" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="736" />
       <source>Some leftover package directories could not been removed. Delete them manually.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1261" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1081" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1068" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1032" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="832" />
       <source>Search PyPI</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1033" />
-      <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="1048" />
-      <source>%n package(s) found.</source>
-      <translation type="unfinished">
-        <numerusform />
-      </translation>
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1055" />
-      <source>Showing first {0} packages found.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1074" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1069" />
-      <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="1082" />
-      <source>&lt;p&gt;There were no more results for &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1262" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="833" />
       <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="1281" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="852" />
       <source>Pip</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1283" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="854" />
       <source>Install Pip</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1286" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="857" />
       <source>Install Pip to User-Site</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1289" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="860" />
       <source>Repair Pip</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1296" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="867" />
       <source>Install</source>
       <translation type="unfinished">安装</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1475" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1298" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1046" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="869" />
       <source>Install Packages</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1301" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="872" />
       <source>Install Local Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1304" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="875" />
       <source>Re-Install Selected Packages</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1311" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="882" />
       <source>Requirements/Constraints</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1313" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="884" />
       <source>Install Requirements</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1316" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="887" />
       <source>Uninstall Requirements</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1319" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="890" />
       <source>Generate Requirements...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1323" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="894" />
       <source>Install from 'pyproject.toml'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1327" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="898" />
       <source>Uninstall from 'pyproject.toml'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1332" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="903" />
       <source>Generate Constraints...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1339" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="910" />
       <source>Cache</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1341" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="912" />
       <source>Show Cache Info...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1344" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="915" />
       <source>Show Cached Files...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1347" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="918" />
       <source>Remove Cached Files...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1350" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="921" />
       <source>Purge Cache...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1367" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="938" />
       <source>Show Licenses...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1371" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="942" />
       <source>Check Vulnerabilities</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1375" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="946" />
       <source>Update Vulnerability Database</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1379" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="950" />
       <source>Create SBOM file</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1386" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="957" />
       <source>Edit User Configuration...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1389" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="960" />
       <source>Edit Environment Configuration...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1394" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="965" />
       <source>Configure...</source>
       <translation type="unfinished">配置…</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1638" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1625" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1614" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1209" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1196" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1185" />
       <source>Edit Configuration</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1639" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1626" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1615" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1210" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1197" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1186" />
       <source>No valid configuration path determined. Aborting</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1848" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1419" />
       <source>{0} {1}</source>
       <comment>package name, package version</comment>
       <translation type="unfinished">{0} {1}</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1869" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1440" />
       <source>Affected Version:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1872" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1443" />
       <source>Advisory:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="2007" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1982" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1578" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1553" />
       <source>unknown</source>
       <translation type="unfinished">未知</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="2004" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1575" />
       <source>any</source>
       <translation type="unfinished" />
     </message>
+    <message>
+      <source>Enter search term</source>
+      <translation type="vanished">输入搜索词</translation>
+    </message>
+    <message>
+      <source>Version</source>
+      <translation type="vanished">版本</translation>
+    </message>
+    <message>
+      <source>Description</source>
+      <translation type="vanished">描述</translation>
+    </message>
+    <message numerus="yes">
+      <source>%n package(s) found.</source>
+      <translation type="vanished">
+        <numerusform />
+      </translation>
+    </message>
   </context>
   <context>
     <name>PipPackagesWindow</name>

eric ide

mercurial