Plugin Repository eric7

Sat, 14 Dec 2024 17:25:19 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 14 Dec 2024 17:25:19 +0100
branch
eric7
changeset 11094
0cbc2ec68d2a
parent 11093
e8932a99beb4
child 11095
92c8df0184da

Plugin Repository
- Added a status label for 'Upgrade Available' that includes a copy of the the upgradable plugin entries.

docs/changelog.md 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.PluginManager.PluginRepositoryDialog.html file | annotate | diff | comparison | revisions
src/eric7/PluginManager/PluginRepositoryDialog.py file | annotate | diff | comparison | revisions
src/eric7/PluginManager/PluginRepositoryDialog.ui file | annotate | diff | comparison | revisions
src/eric7/PluginManager/Ui_PluginRepositoryDialog.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	Sat Dec 14 13:03:11 2024 +0100
+++ b/docs/changelog.md	Sat Dec 14 17:25:19 2024 +0100
@@ -14,6 +14,9 @@
     - Changed the package search function to open an external web browser
       with the package search term (PyPI does not support programmatic
       search anymore).
+- Plugin Repository
+    - Added a status label for 'Upgrade Available' that includes a copy of
+      the the upgradable plugin entries.
 
 ### Version 24.12
 - bug fixes
Binary file src/eric7/Documentation/Help/source.qch has changed
--- a/src/eric7/Documentation/Help/source.qhp	Sat Dec 14 13:03:11 2024 +0100
+++ b/src/eric7/Documentation/Help/source.qhp	Sat Dec 14 17:25:19 2024 +0100
@@ -13296,6 +13296,7 @@
       <keyword name="PluginRepositoryReader.readXML" id="PluginRepositoryReader.readXML" ref="eric7.PluginManager.PluginRepositoryReader.html#PluginRepositoryReader.readXML" />
       <keyword name="PluginRepositoryWidget" id="PluginRepositoryWidget" ref="eric7.PluginManager.PluginRepositoryDialog.html#PluginRepositoryWidget" />
       <keyword name="PluginRepositoryWidget (Constructor)" id="PluginRepositoryWidget (Constructor)" ref="eric7.PluginManager.PluginRepositoryDialog.html#PluginRepositoryWidget.__init__" />
+      <keyword name="PluginRepositoryWidget.__addPluginItem" id="PluginRepositoryWidget.__addPluginItem" ref="eric7.PluginManager.PluginRepositoryDialog.html#PluginRepositoryWidget.__addPluginItem" />
       <keyword name="PluginRepositoryWidget.__changeScheme" id="PluginRepositoryWidget.__changeScheme" ref="eric7.PluginManager.PluginRepositoryDialog.html#PluginRepositoryWidget.__changeScheme" />
       <keyword name="PluginRepositoryWidget.__cleanupDownloads" id="PluginRepositoryWidget.__cleanupDownloads" ref="eric7.PluginManager.PluginRepositoryDialog.html#PluginRepositoryWidget.__cleanupDownloads" />
       <keyword name="PluginRepositoryWidget.__closeAndInstall" id="PluginRepositoryWidget.__closeAndInstall" ref="eric7.PluginManager.PluginRepositoryDialog.html#PluginRepositoryWidget.__closeAndInstall" />
@@ -13316,13 +13317,13 @@
       <keyword name="PluginRepositoryWidget.__initHeaderItemsCache" id="PluginRepositoryWidget.__initHeaderItemsCache" ref="eric7.PluginManager.PluginRepositoryDialog.html#PluginRepositoryWidget.__initHeaderItemsCache" />
       <keyword name="PluginRepositoryWidget.__populateList" id="PluginRepositoryWidget.__populateList" ref="eric7.PluginManager.PluginRepositoryDialog.html#PluginRepositoryWidget.__populateList" />
       <keyword name="PluginRepositoryWidget.__reachabilityChanged" id="PluginRepositoryWidget.__reachabilityChanged" ref="eric7.PluginManager.PluginRepositoryDialog.html#PluginRepositoryWidget.__reachabilityChanged" />
-      <keyword name="PluginRepositoryWidget.__resortRepositoryList" id="PluginRepositoryWidget.__resortRepositoryList" ref="eric7.PluginManager.PluginRepositoryDialog.html#PluginRepositoryWidget.__resortRepositoryList" />
       <keyword name="PluginRepositoryWidget.__selectedItems" id="PluginRepositoryWidget.__selectedItems" ref="eric7.PluginManager.PluginRepositoryDialog.html#PluginRepositoryWidget.__selectedItems" />
       <keyword name="PluginRepositoryWidget.__showAllPlugins" id="PluginRepositoryWidget.__showAllPlugins" ref="eric7.PluginManager.PluginRepositoryDialog.html#PluginRepositoryWidget.__showAllPlugins" />
       <keyword name="PluginRepositoryWidget.__sslErrors" id="PluginRepositoryWidget.__sslErrors" ref="eric7.PluginManager.PluginRepositoryDialog.html#PluginRepositoryWidget.__sslErrors" />
       <keyword name="PluginRepositoryWidget.__updateHiddenPluginsList" id="PluginRepositoryWidget.__updateHiddenPluginsList" ref="eric7.PluginManager.PluginRepositoryDialog.html#PluginRepositoryWidget.__updateHiddenPluginsList" />
       <keyword name="PluginRepositoryWidget.__updateList" id="PluginRepositoryWidget.__updateList" ref="eric7.PluginManager.PluginRepositoryDialog.html#PluginRepositoryWidget.__updateList" />
       <keyword name="PluginRepositoryWidget.__updateStatus" id="PluginRepositoryWidget.__updateStatus" ref="eric7.PluginManager.PluginRepositoryDialog.html#PluginRepositoryWidget.__updateStatus" />
+      <keyword name="PluginRepositoryWidget.__updateStatusItemTexts" id="PluginRepositoryWidget.__updateStatusItemTexts" ref="eric7.PluginManager.PluginRepositoryDialog.html#PluginRepositoryWidget.__updateStatusItemTexts" />
       <keyword name="PluginRepositoryWidget.addEntry" id="PluginRepositoryWidget.addEntry" ref="eric7.PluginManager.PluginRepositoryDialog.html#PluginRepositoryWidget.addEntry" />
       <keyword name="PluginRepositoryWidget.getDownloadedPlugins" id="PluginRepositoryWidget.getDownloadedPlugins" ref="eric7.PluginManager.PluginRepositoryDialog.html#PluginRepositoryWidget.getDownloadedPlugins" />
       <keyword name="PluginRepositoryWidget.on_buttonBox_clicked" id="PluginRepositoryWidget.on_buttonBox_clicked" ref="eric7.PluginManager.PluginRepositoryDialog.html#PluginRepositoryWidget.on_buttonBox_clicked" />
--- a/src/eric7/Documentation/Source/eric7.PluginManager.PluginRepositoryDialog.html	Sat Dec 14 13:03:11 2024 +0100
+++ b/src/eric7/Documentation/Source/eric7.PluginManager.PluginRepositoryDialog.html	Sat Dec 14 17:25:19 2024 +0100
@@ -174,6 +174,10 @@
 <td>Constructor</td>
 </tr>
 <tr>
+<td><a href="#PluginRepositoryWidget.__addPluginItem">__addPluginItem</a></td>
+<td>Private method to add an item for the given plugin parameters.</td>
+</tr>
+<tr>
 <td><a href="#PluginRepositoryWidget.__changeScheme">__changeScheme</a></td>
 <td>Private method to change the scheme of the given URL.</td>
 </tr>
@@ -254,10 +258,6 @@
 <td>Private slot handling reachability state changes.</td>
 </tr>
 <tr>
-<td><a href="#PluginRepositoryWidget.__resortRepositoryList">__resortRepositoryList</a></td>
-<td>Private method to resort the tree.</td>
-</tr>
-<tr>
 <td><a href="#PluginRepositoryWidget.__selectedItems">__selectedItems</a></td>
 <td>Private method to get all selected items without the status and category items.</td>
 </tr>
@@ -282,6 +282,10 @@
 <td>Private method to check the given archive update status.</td>
 </tr>
 <tr>
+<td><a href="#PluginRepositoryWidget.__updateStatusItemTexts">__updateStatusItemTexts</a></td>
+<td>Private method to update the status item texts to include a number determined by a given status order.</td>
+</tr>
+<tr>
 <td><a href="#PluginRepositoryWidget.addEntry">addEntry</a></td>
 <td>Public method to add an entry to the list.</td>
 </tr>
@@ -343,6 +347,57 @@
 parent of this dialog
 </dd>
 </dl>
+<a NAME="PluginRepositoryWidget.__addPluginItem" ID="PluginRepositoryWidget.__addPluginItem"></a>
+<h4>PluginRepositoryWidget.__addPluginItem</h4>
+<b>__addPluginItem</b>(<i>parentItem, name, short, description, url, author, version, filename, updateStatus, countIt=True, </i>)
+<p>
+        Private method to add an item for the given plugin parameters.
+</p>
+
+<dl>
+
+<dt><i>parentItem</i> (QTreeWidgetItem)</dt>
+<dd>
+reference to the parent item
+</dd>
+<dt><i>name</i> (str)</dt>
+<dd>
+data for the name field
+</dd>
+<dt><i>short</i> (str)</dt>
+<dd>
+data for the short field
+</dd>
+<dt><i>description</i> (list of str)</dt>
+<dd>
+data for the description field
+</dd>
+<dt><i>url</i> (str)</dt>
+<dd>
+data for the url field
+</dd>
+<dt><i>author</i> (str)</dt>
+<dd>
+data for the author field
+</dd>
+<dt><i>version</i> (str)</dt>
+<dd>
+data for the version field
+</dd>
+<dt><i>filename</i> (str)</dt>
+<dd>
+data for the filename field
+</dd>
+<dt><i>updateStatus</i> (PluginStatus)</dt>
+<dd>
+update status
+</dd>
+<dt><i>countIt</i> (bool (optional))</dt>
+<dd>
+flag indicating to count the item for status labels
+            (defaults to True)
+</dd>
+</dl>
 <a NAME="PluginRepositoryWidget.__changeScheme" ID="PluginRepositoryWidget.__changeScheme"></a>
 <h4>PluginRepositoryWidget.__changeScheme</h4>
 <b>__changeScheme</b>(<i>url, newScheme=""</i>)
@@ -604,13 +659,6 @@
 new reachability state
 </dd>
 </dl>
-<a NAME="PluginRepositoryWidget.__resortRepositoryList" ID="PluginRepositoryWidget.__resortRepositoryList"></a>
-<h4>PluginRepositoryWidget.__resortRepositoryList</h4>
-<b>__resortRepositoryList</b>(<i></i>)
-<p>
-        Private method to resort the tree.
-</p>
-
 <a NAME="PluginRepositoryWidget.__selectedItems" ID="PluginRepositoryWidget.__selectedItems"></a>
 <h4>PluginRepositoryWidget.__selectedItems</h4>
 <b>__selectedItems</b>(<i></i>)
@@ -707,6 +755,14 @@
             PluginStatusLocalUpdate, PluginStatusRemoteUpdate)
 </dd>
 </dl>
+<a NAME="PluginRepositoryWidget.__updateStatusItemTexts" ID="PluginRepositoryWidget.__updateStatusItemTexts"></a>
+<h4>PluginRepositoryWidget.__updateStatusItemTexts</h4>
+<b>__updateStatusItemTexts</b>(<i></i>)
+<p>
+        Private method to update the status item texts to include a number determined
+        by a given status order.
+</p>
+
 <a NAME="PluginRepositoryWidget.addEntry" ID="PluginRepositoryWidget.addEntry"></a>
 <h4>PluginRepositoryWidget.addEntry</h4>
 <b>addEntry</b>(<i>name, short, description, url, author, version, filename, status, category, </i>)
--- a/src/eric7/PluginManager/PluginRepositoryDialog.py	Sat Dec 14 13:03:11 2024 +0100
+++ b/src/eric7/PluginManager/PluginRepositoryDialog.py	Sat Dec 14 17:25:19 2024 +0100
@@ -121,11 +121,14 @@
         self.__integratedWidget = integrated
 
         self.__statusTranslations = {
+            "obsolete": self.tr("Obsolete"),
             "stable": self.tr("Stable"),
+            "unknown": self.tr("Unknown"),
             "unstable": self.tr("Unstable"),
-            "obsolete": self.tr("Obsolete"),
-            "unknown": self.tr("Unknown"),
+            "upgrade": self.tr("Upgrade Available"),
         }
+        self.__statusOrder = ("upgrade", "stable", "unstable", "obsolete", "unknown")
+
         self.__initHeaderItemsCache()
 
         if self.__integratedWidget:
@@ -199,9 +202,6 @@
             self.repositoryList.headerItem().setText(
                 self.repositoryList.columnCount(), ""
             )
-            self.repositoryList.header().setSortIndicator(
-                0, Qt.SortOrder.AscendingOrder
-            )
 
         self.__downloadButton.setEnabled(False)
         self.__downloadInstallButton.setEnabled(False)
@@ -550,21 +550,6 @@
             # repopulate the list to update the refresh icons
             self.__populateList()
 
-    def __resortRepositoryList(self):
-        """
-        Private method to resort the tree.
-        """
-        if self.__integratedWidget:
-            self.repositoryList.sortItems(
-                self.repositoryList.sortColumn(),
-                Qt.SortOrder.AscendingOrder,
-            )
-        else:
-            self.repositoryList.sortItems(
-                self.repositoryList.sortColumn(),
-                self.repositoryList.header().sortIndicatorOrder(),
-            )
-
     def __initHeaderItemsCache(self):
         """
         Private method to initialize the cache variables for the header items.
@@ -591,10 +576,13 @@
             if f.open(QIODevice.OpenModeFlag.ReadOnly):
                 reader = PluginRepositoryReader(f, self.addEntry)
                 reader.readXML()
+                self.__updateStatusItemTexts()
+
                 self.repositoryList.resizeColumnToContents(0)
                 self.repositoryList.resizeColumnToContents(1)
                 self.repositoryList.resizeColumnToContents(2)
-                self.__resortRepositoryList()
+                self.repositoryList.sortItems(0, Qt.SortOrder.AscendingOrder)
+
                 url = Preferences.getUI("PluginRepositoryUrl7")
                 if url != self.repositoryUrlEdit.text():
                     self.repositoryUrlEdit.setText(url)
@@ -764,6 +752,81 @@
             self.downloadProgress.setMaximum(total)
             self.downloadProgress.setValue(done)
 
+    def __addPluginItem(
+        self,
+        parentItem,
+        name,
+        short,
+        description,
+        url,
+        author,
+        version,
+        filename,
+        updateStatus,
+        countIt=True,
+    ):
+        """
+        Private method to add an item for the given plugin parameters.
+
+        @param parentItem reference to the parent item
+        @type QTreeWidgetItem
+        @param name data for the name field
+        @type str
+        @param short data for the short field
+        @type str
+        @param description data for the description field
+        @type list of str
+        @param url data for the url field
+        @type str
+        @param author data for the author field
+        @type str
+        @param version data for the version field
+        @type str
+        @param filename data for the filename field
+        @type str
+        @param updateStatus update status
+        @type PluginStatus
+        @param countIt flag indicating to count the item for status labels
+            (defaults to True)
+        @type bool (optional)
+        """
+        if self.__integratedWidget:
+            entryFormat = "<b>{0}</b> - Version: <i>{1}</i><br/>{2}"
+            itm = QTreeWidgetItem(parentItem)
+            itm.setFirstColumnSpanned(True)
+            label = QLabel(entryFormat.format(name, version, short))
+            self.repositoryList.setItemWidget(itm, 0, label)
+        else:
+            itm = QTreeWidgetItem(parentItem, [name, version, short])
+
+        itm.setData(0, PluginRepositoryWidget.UrlRole, url)
+        itm.setData(0, PluginRepositoryWidget.FilenameRole, filename)
+        itm.setData(0, PluginRepositoryWidget.AuthorRole, author)
+        itm.setData(0, PluginRepositoryWidget.DescrRole, description)
+
+        iconColumn = 0 if self.__integratedWidget else 1
+        if updateStatus == PluginStatus.UpToDate:
+            itm.setIcon(iconColumn, EricPixmapCache.getIcon("empty"))
+            itm.setToolTip(iconColumn, self.tr("up-to-date"))
+        elif updateStatus == PluginStatus.New:
+            itm.setIcon(iconColumn, EricPixmapCache.getIcon("download"))
+            itm.setToolTip(iconColumn, self.tr("new download available"))
+            if countIt:
+                self.__newItems += 1
+        elif updateStatus == PluginStatus.LocalUpdate:
+            itm.setIcon(iconColumn, EricPixmapCache.getIcon("updateLocal"))
+            itm.setToolTip(iconColumn, self.tr("update installable"))
+            if countIt:
+                self.__updateLocalItems += 1
+        elif updateStatus == PluginStatus.RemoteUpdate:
+            itm.setIcon(iconColumn, EricPixmapCache.getIcon("updateRemote"))
+            itm.setToolTip(iconColumn, self.tr("updated download available"))
+            if countIt:
+                self.__updateRemoteItems += 1
+        elif updateStatus == PluginStatus.Error:
+            itm.setIcon(iconColumn, EricPixmapCache.getIcon("warning"))
+            itm.setToolTip(iconColumn, self.tr("error determining status"))
+
     def addEntry(
         self,
         name,
@@ -805,14 +868,9 @@
         # 1. determine and create the status item
         statusItem = self.__statusItems[status]
         if statusItem is None:
-            statusItem = QTreeWidgetItem(
-                self.repositoryList,
-                [
-                    self.__statusTranslations.get(
-                        status, self.__statusTranslations["unknown"]
-                    )
-                ],
-            )
+            if status not in self.__statusTranslations:
+                status = "unknown"
+            statusItem = QTreeWidgetItem(self.repositoryList, [""])
             statusItem.setExpanded(True)
             statusItem.setFirstColumnSpanned(True)
             self.__statusItems[status] = statusItem
@@ -828,40 +886,42 @@
             self.__categoryItems[status][category] = categoryItem
 
         # 3. create the plugin item
-        if self.__integratedWidget:
-            entryFormat = "<b>{0}</b> - Version: <i>{1}</i><br/>{2}"
-            itm = QTreeWidgetItem(categoryItem)
-            itm.setFirstColumnSpanned(True)
-            label = QLabel(entryFormat.format(name, version, short))
-            self.repositoryList.setItemWidget(itm, 0, label)
-        else:
-            itm = QTreeWidgetItem(categoryItem, [name, version, short])
+        updateStatus = self.__updateStatus(filename, version)
+        self.__addPluginItem(
+            categoryItem,
+            name,
+            short,
+            description,
+            url,
+            author,
+            version,
+            filename,
+            updateStatus,
+        )
 
-        itm.setData(0, PluginRepositoryWidget.UrlRole, url)
-        itm.setData(0, PluginRepositoryWidget.FilenameRole, filename)
-        itm.setData(0, PluginRepositoryWidget.AuthorRole, author)
-        itm.setData(0, PluginRepositoryWidget.DescrRole, description)
+        # 4. create the upgradable plugin item
+        if updateStatus in (PluginStatus.LocalUpdate, PluginStatus.RemoteUpdate):
+            status = "upgrade"
 
-        iconColumn = 0 if self.__integratedWidget else 1
-        updateStatus = self.__updateStatus(filename, version)
-        if updateStatus == PluginStatus.UpToDate:
-            itm.setIcon(iconColumn, EricPixmapCache.getIcon("empty"))
-            itm.setToolTip(iconColumn, self.tr("up-to-date"))
-        elif updateStatus == PluginStatus.New:
-            itm.setIcon(iconColumn, EricPixmapCache.getIcon("download"))
-            itm.setToolTip(iconColumn, self.tr("new download available"))
-            self.__newItems += 1
-        elif updateStatus == PluginStatus.LocalUpdate:
-            itm.setIcon(iconColumn, EricPixmapCache.getIcon("updateLocal"))
-            itm.setToolTip(iconColumn, self.tr("update installable"))
-            self.__updateLocalItems += 1
-        elif updateStatus == PluginStatus.RemoteUpdate:
-            itm.setIcon(iconColumn, EricPixmapCache.getIcon("updateRemote"))
-            itm.setToolTip(iconColumn, self.tr("updated download available"))
-            self.__updateRemoteItems += 1
-        elif updateStatus == PluginStatus.Error:
-            itm.setIcon(iconColumn, EricPixmapCache.getIcon("warning"))
-            itm.setToolTip(iconColumn, self.tr("error determining status"))
+            statusItem = self.__statusItems[status]
+            if statusItem is None:
+                statusItem = QTreeWidgetItem(self.repositoryList, [""])
+                statusItem.setExpanded(True)
+                statusItem.setFirstColumnSpanned(True)
+                self.__statusItems[status] = statusItem
+
+            self.__addPluginItem(
+                statusItem,
+                name,
+                short,
+                description,
+                url,
+                author,
+                version,
+                filename,
+                updateStatus,
+                countIt=False,
+            )
 
     def __updateStatus(self, filename, version):
         """
@@ -928,6 +988,23 @@
         else:
             return PluginStatus.RemoteUpdate
 
+    def __updateStatusItemTexts(self):
+        """
+        Private method to update the status item texts to include a number determined
+        by a given status order.
+        """
+        index = 1
+        for status in self.__statusOrder:
+            statusItem = self.__statusItems[status]
+            if statusItem is not None:
+                statusItem.setText(
+                    0,
+                    self.tr("{0}. {1}").format(
+                        index, self.__statusTranslations[status]
+                    ),
+                )
+                index += 1
+
     def __sslErrors(self, reply, errors):
         """
         Private slot to handle SSL errors.
--- a/src/eric7/PluginManager/PluginRepositoryDialog.ui	Sat Dec 14 13:03:11 2024 +0100
+++ b/src/eric7/PluginManager/PluginRepositoryDialog.ui	Sat Dec 14 17:25:19 2024 +0100
@@ -28,20 +28,23 @@
         </sizepolicy>
        </property>
        <property name="contextMenuPolicy">
-        <enum>Qt::CustomContextMenu</enum>
+        <enum>Qt::ContextMenuPolicy::CustomContextMenu</enum>
        </property>
        <property name="alternatingRowColors">
         <bool>true</bool>
        </property>
        <property name="selectionMode">
-        <enum>QAbstractItemView::ExtendedSelection</enum>
+        <enum>QAbstractItemView::SelectionMode::ExtendedSelection</enum>
        </property>
        <property name="sortingEnabled">
-        <bool>true</bool>
+        <bool>false</bool>
        </property>
        <property name="allColumnsShowFocus">
         <bool>true</bool>
        </property>
+       <attribute name="headerShowSortIndicator" stdset="0">
+        <bool>false</bool>
+       </attribute>
        <column>
         <property name="text">
          <string>Name</string>
@@ -79,7 +82,7 @@
        <item>
         <spacer name="horizontalSpacer_3">
          <property name="orientation">
-          <enum>Qt::Horizontal</enum>
+          <enum>Qt::Orientation::Horizontal</enum>
          </property>
          <property name="sizeHint" stdset="0">
           <size>
@@ -102,7 +105,7 @@
        <item>
         <spacer name="horizontalSpacer_2">
          <property name="orientation">
-          <enum>Qt::Horizontal</enum>
+          <enum>Qt::Orientation::Horizontal</enum>
          </property>
          <property name="sizeHint" stdset="0">
           <size>
@@ -125,7 +128,7 @@
        <item>
         <spacer name="horizontalSpacer">
          <property name="orientation">
-          <enum>Qt::Horizontal</enum>
+          <enum>Qt::Orientation::Horizontal</enum>
          </property>
          <property name="sizeHint" stdset="0">
           <size>
@@ -153,7 +156,7 @@
         <string>Description:</string>
        </property>
        <property name="alignment">
-        <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+        <set>Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop</set>
        </property>
       </widget>
      </item>
@@ -166,7 +169,7 @@
         </sizepolicy>
        </property>
        <property name="focusPolicy">
-        <enum>Qt::NoFocus</enum>
+        <enum>Qt::FocusPolicy::NoFocus</enum>
        </property>
        <property name="toolTip">
         <string>Displays the description of the selected plugin</string>
@@ -186,7 +189,7 @@
      <item row="3" column="1">
       <widget class="QLineEdit" name="authorEdit">
        <property name="focusPolicy">
-        <enum>Qt::NoFocus</enum>
+        <enum>Qt::FocusPolicy::NoFocus</enum>
        </property>
        <property name="toolTip">
         <string>Displays the author of the selected plugin</string>
@@ -206,7 +209,7 @@
      <item row="4" column="1">
       <widget class="QLineEdit" name="urlEdit">
        <property name="focusPolicy">
-        <enum>Qt::NoFocus</enum>
+        <enum>Qt::FocusPolicy::NoFocus</enum>
        </property>
        <property name="toolTip">
         <string>Displays the download URL of the selected plugin</string>
@@ -221,7 +224,7 @@
    <item>
     <widget class="Line" name="line">
      <property name="orientation">
-      <enum>Qt::Horizontal</enum>
+      <enum>Qt::Orientation::Horizontal</enum>
      </property>
     </widget>
    </item>
@@ -282,10 +285,10 @@
    <item>
     <widget class="QDialogButtonBox" name="buttonBox">
      <property name="orientation">
-      <enum>Qt::Horizontal</enum>
+      <enum>Qt::Orientation::Horizontal</enum>
      </property>
      <property name="standardButtons">
-      <set>QDialogButtonBox::NoButton</set>
+      <set>QDialogButtonBox::StandardButton::NoButton</set>
      </property>
     </widget>
    </item>
--- a/src/eric7/PluginManager/Ui_PluginRepositoryDialog.py	Sat Dec 14 13:03:11 2024 +0100
+++ b/src/eric7/PluginManager/Ui_PluginRepositoryDialog.py	Sat Dec 14 17:25:19 2024 +0100
@@ -1,6 +1,6 @@
 # Form implementation generated from reading ui file 'src/eric7/PluginManager/PluginRepositoryDialog.ui'
 #
-# Created by: PyQt6 UI code generator 6.7.0
+# 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.
@@ -29,6 +29,7 @@
         self.repositoryList.setSelectionMode(QtWidgets.QAbstractItemView.SelectionMode.ExtendedSelection)
         self.repositoryList.setAllColumnsShowFocus(True)
         self.repositoryList.setObjectName("repositoryList")
+        self.repositoryList.header().setSortIndicatorShown(False)
         self.gridLayout.addWidget(self.repositoryList, 0, 0, 1, 2)
         self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
         self.horizontalLayout_2.setObjectName("horizontalLayout_2")
@@ -129,7 +130,7 @@
     def retranslateUi(self, PluginRepositoryDialog):
         _translate = QtCore.QCoreApplication.translate
         PluginRepositoryDialog.setWindowTitle(_translate("PluginRepositoryDialog", "Plugin Repository"))
-        self.repositoryList.setSortingEnabled(True)
+        self.repositoryList.setSortingEnabled(False)
         self.repositoryList.headerItem().setText(0, _translate("PluginRepositoryDialog", "Name"))
         self.repositoryList.headerItem().setText(1, _translate("PluginRepositoryDialog", "Version"))
         self.repositoryList.headerItem().setText(2, _translate("PluginRepositoryDialog", "Short Description"))
--- a/src/eric7/i18n/eric7_cs.ts	Sat Dec 14 13:03:11 2024 +0100
+++ b/src/eric7/i18n/eric7_cs.ts	Sat Dec 14 17:25:19 2024 +0100
@@ -60671,189 +60671,189 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="832" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="834" />
       <source>Search PyPI</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="833" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="835" />
       <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>Pip</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="856" />
       <source>Install Pip</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="857" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="859" />
       <source>Install Pip to User-Site</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="860" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="862" />
       <source>Repair Pip</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="867" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="869" />
       <source>Install</source>
       <translation type="unfinished">Instalovat</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1046" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="869" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1048" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="871" />
       <source>Install Packages</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="872" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="874" />
       <source>Install Local Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="875" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="877" />
       <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>Requirements/Constraints</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="886" />
       <source>Install Requirements</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="887" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="889" />
       <source>Uninstall Requirements</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="890" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="892" />
       <source>Generate Requirements...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="894" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="896" />
       <source>Install from 'pyproject.toml'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="898" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="900" />
       <source>Uninstall from 'pyproject.toml'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="903" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="905" />
       <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>Cache</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="914" />
       <source>Show Cache Info...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="915" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="917" />
       <source>Show Cached Files...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="918" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="920" />
       <source>Remove Cached Files...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="921" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="923" />
       <source>Purge Cache...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="938" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="940" />
       <source>Show Licenses...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="942" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="944" />
       <source>Check Vulnerabilities</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="946" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="948" />
       <source>Update Vulnerability Database</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="950" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="952" />
       <source>Create SBOM file</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="957" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="959" />
       <source>Edit User Configuration...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="960" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="962" />
       <source>Edit Environment Configuration...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="965" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="967" />
       <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" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1211" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1198" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1187" />
       <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" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1212" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1199" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1188" />
       <source>No valid configuration path determined. Aborting</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1419" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1421" />
       <source>{0} {1}</source>
       <comment>package name, package version</comment>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1440" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1442" />
       <source>Affected Version:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1443" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1445" />
       <source>Advisory:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1578" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1553" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1580" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1555" />
       <source>unknown</source>
       <translation type="unfinished">neznámý</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1575" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1577" />
       <source>any</source>
       <translation type="unfinished" />
     </message>
@@ -61709,64 +61709,69 @@
     <name>PluginRepositoryWidget</name>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="124" />
-      <source>Stable</source>
-      <translation>Stabilní</translation>
+      <source>Obsolete</source>
+      <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="125" />
-      <source>Unstable</source>
-      <translation>Nestabilní</translation>
+      <source>Stable</source>
+      <translation>Stabilní</translation>
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="126" />
-      <source>Obsolete</source>
-      <translation type="unfinished" />
+      <source>Unknown</source>
+      <translation>Neznámý</translation>
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="127" />
-      <source>Unknown</source>
-      <translation>Neznámý</translation>
-    </message>
-    <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="179" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="139" />
-      <source>Update</source>
-      <translation>Obnovit</translation>
+      <source>Unstable</source>
+      <translation>Nestabilní</translation>
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="128" />
+      <source>Upgrade Available</source>
+      <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="182" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="145" />
-      <source>Download</source>
-      <translation>Download</translation>
-    </message>
-    <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="153" />
-      <source>Download &amp; Install</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="188" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="161" />
-      <source>Cancel</source>
-      <translation>Zrušit</translation>
-    </message>
-    <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="167" />
-      <source>Install</source>
-      <translation type="unfinished">Instalovat</translation>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="142" />
+      <source>Update</source>
+      <translation>Obnovit</translation>
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="185" />
-      <source>Download &amp;&amp; Install</source>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="148" />
+      <source>Download</source>
+      <translation>Download</translation>
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="156" />
+      <source>Download &amp; Install</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="191" />
-      <source>Close &amp;&amp; Install</source>
-      <translation>Zavřít &amp;&amp; Instalovat</translation>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="164" />
+      <source>Cancel</source>
+      <translation>Zrušit</translation>
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="170" />
+      <source>Install</source>
+      <translation type="unfinished">Instalovat</translation>
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="188" />
+      <source>Download &amp;&amp; Install</source>
+      <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="194" />
+      <source>Close &amp;&amp; Install</source>
+      <translation>Zavřít &amp;&amp; Instalovat</translation>
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="197" />
       <source>Close</source>
       <translation type="unfinished">Zavřít</translation>
     </message>
@@ -61818,98 +61823,103 @@
       <translation>Požadované pluginy byly staženy.</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="603" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="591" />
       <source>Plugins Repository URL Changed</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="604" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="592" />
       <source>The URL of the Plugins Repository has changed. Select the "Update" button to get the new repository file.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="613" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="601" />
       <source>Read plugins repository file</source>
       <translation>Číst soubor repozitáře pluginů</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="614" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="602" />
       <source>&lt;p&gt;The plugins repository file &lt;b&gt;{0}&lt;/b&gt; could not be read. Select Update&lt;/p&gt;</source>
       <translation>&lt;p&gt;Soubor repozitáře pluginů &lt;b&gt;{0}&lt;/b&gt; nelze přečíst. Vyberte Obnovit&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="623" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="611" />
       <source>No plugin repository file available.
 Select Update.</source>
       <translation>Soubor repozitáře pluginů není k dispozici.
 Vyberte Obnovit.</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="627" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="615" />
       <source>New: &lt;b&gt;{0}&lt;/b&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="629" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="617" />
       <source>Local Updates: &lt;b&gt;{0}&lt;/b&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="632" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="620" />
       <source>Remote Updates: &lt;b&gt;{0}&lt;/b&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="705" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="673" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="693" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="661" />
       <source>Error downloading file</source>
       <translation>Chyba při stahování souboru</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="706" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="674" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="694" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="662" />
       <source>&lt;p&gt;Could not download the requested file from {0}.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Nelze stáhnout požadovaný soubor z {0}.&lt;/p&gt;&lt;p&gt;Chyba: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="677" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="665" />
       <source>No connection to Internet.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="849" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="810" />
       <source>up-to-date</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="852" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="813" />
       <source>new download available</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="856" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="818" />
       <source>update installable</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="860" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="823" />
       <source>updated download available</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="864" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="828" />
       <source>error determining status</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1269" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1239" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1002" />
+      <source>{0}. {1}</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1346" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1316" />
       <source>Cleanup of Plugin Downloads</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1273" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1242" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1350" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1319" />
       <source>&lt;p&gt;The plugin download &lt;b&gt;{0}&lt;/b&gt; could not be deleted.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
@@ -61917,17 +61927,17 @@
   <context>
     <name>PluginRepositoryWindow</name>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1126" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1203" />
       <source>Process Generation Error</source>
       <translation>Chyba v procesu generování</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1127" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1204" />
       <source>&lt;p&gt;Could not start the process.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation>&lt;p&gt;Nemohu spustit zveřejnění.&lt;br&gt;Ověřte jestli je dostupný jako &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1131" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1208" />
       <source>OK</source>
       <translation>OK</translation>
     </message>
Binary file src/eric7/i18n/eric7_de.qm has changed
--- a/src/eric7/i18n/eric7_de.ts	Sat Dec 14 13:03:11 2024 +0100
+++ b/src/eric7/i18n/eric7_de.ts	Sat Dec 14 17:25:19 2024 +0100
@@ -60675,189 +60675,189 @@
         <translation>Einige übrig gebliebene Paketverzeichnisse konnten nicht entfernt werden. Lösche diese manuell.</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="832"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="834"/>
         <source>Search PyPI</source>
         <translation>PyPI durchsuchen</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="833"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="835"/>
         <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="852"/>
-        <source>Pip</source>
-        <translation>Pip</translation>
-    </message>
-    <message>
         <location filename="../PipInterface/PipPackagesWidget.py" line="854"/>
+        <source>Pip</source>
+        <translation>Pip</translation>
+    </message>
+    <message>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="856"/>
         <source>Install Pip</source>
         <translation>Pip installieren</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="857"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="859"/>
         <source>Install Pip to User-Site</source>
         <translation>Pip in Nutzerverzeichnis installieren</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="860"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="862"/>
         <source>Repair Pip</source>
         <translation>Pip reparieren</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="867"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="869"/>
         <source>Install</source>
         <translation>Installieren</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1046"/>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="869"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="1048"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="871"/>
         <source>Install Packages</source>
         <translation>Pakete installieren</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="872"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="874"/>
         <source>Install Local Package</source>
         <translation>Lokales Paket installieren</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="875"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="877"/>
         <source>Re-Install Selected Packages</source>
         <translation>Ausgewählte Pakete neu installieren</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="882"/>
-        <source>Requirements/Constraints</source>
-        <translation>Anforderungen/Constraints</translation>
-    </message>
-    <message>
         <location filename="../PipInterface/PipPackagesWidget.py" line="884"/>
+        <source>Requirements/Constraints</source>
+        <translation>Anforderungen/Constraints</translation>
+    </message>
+    <message>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="886"/>
         <source>Install Requirements</source>
         <translation>Anforderungen installieren</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="887"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="889"/>
         <source>Uninstall Requirements</source>
         <translation>Anforderungen deinstallieren</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="890"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="892"/>
         <source>Generate Requirements...</source>
         <translation>Anforderungen erzeugen...</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="894"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="896"/>
         <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="898"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="900"/>
         <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="903"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="905"/>
         <source>Generate Constraints...</source>
         <translation>Constraints generieren...</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="910"/>
-        <source>Cache</source>
-        <translation>Zwischenspeicher</translation>
-    </message>
-    <message>
         <location filename="../PipInterface/PipPackagesWidget.py" line="912"/>
+        <source>Cache</source>
+        <translation>Zwischenspeicher</translation>
+    </message>
+    <message>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="914"/>
         <source>Show Cache Info...</source>
         <translation>Zwischenspeicherinfo...</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="915"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="917"/>
         <source>Show Cached Files...</source>
         <translation>Zwischengespeicherte Dateien...</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="918"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="920"/>
         <source>Remove Cached Files...</source>
         <translation>Zwischengespeicherte Dateien löschen...</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="921"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="923"/>
         <source>Purge Cache...</source>
         <translation>Zwischenspeicher leeren...</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="938"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="940"/>
         <source>Show Licenses...</source>
         <translation>Lizenzen anzeigen...</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="942"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="944"/>
         <source>Check Vulnerabilities</source>
         <translation>Verwundbarkeiten prüfen</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="946"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="948"/>
         <source>Update Vulnerability Database</source>
         <translation>Verwundbarkeitsdatenbank aktualisieren</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="950"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="952"/>
         <source>Create SBOM file</source>
         <translation>STL Datei erzeugen</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="957"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="959"/>
         <source>Edit User Configuration...</source>
         <translation>Nutzerkonfiguration bearbeiten...</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="960"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="962"/>
         <source>Edit Environment Configuration...</source>
         <translation>Umgebungskonfiguration bearbeiten...</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="965"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="967"/>
         <source>Configure...</source>
         <translation>Einstellungen...</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1209"/>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1196"/>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1185"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="1211"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="1198"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="1187"/>
         <source>Edit Configuration</source>
         <translation>Konfiguration bearbeiten</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1210"/>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1197"/>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1186"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="1212"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="1199"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="1188"/>
         <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="1419"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="1421"/>
         <source>{0} {1}</source>
         <comment>package name, package version</comment>
         <translation>{0} {1}</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1440"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="1442"/>
         <source>Affected Version:</source>
         <translation>Betroffene Version:</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1443"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="1445"/>
         <source>Advisory:</source>
         <translation>Advisory:</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1578"/>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1553"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="1580"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="1555"/>
         <source>unknown</source>
         <translation>unbekannt</translation>
     </message>
     <message>
-        <location filename="../PipInterface/PipPackagesWidget.py" line="1575"/>
+        <location filename="../PipInterface/PipPackagesWidget.py" line="1577"/>
         <source>any</source>
         <translation>beliebig</translation>
     </message>
@@ -61697,64 +61697,69 @@
     <name>PluginRepositoryWidget</name>
     <message>
         <location filename="../PluginManager/PluginRepositoryDialog.py" line="124"/>
-        <source>Stable</source>
-        <translation>Stabil</translation>
+        <source>Obsolete</source>
+        <translation>Überholt</translation>
     </message>
     <message>
         <location filename="../PluginManager/PluginRepositoryDialog.py" line="125"/>
-        <source>Unstable</source>
-        <translation>Instabil</translation>
+        <source>Stable</source>
+        <translation>Stabil</translation>
     </message>
     <message>
         <location filename="../PluginManager/PluginRepositoryDialog.py" line="126"/>
-        <source>Obsolete</source>
-        <translation>Überholt</translation>
+        <source>Unknown</source>
+        <translation>Unbekannt</translation>
     </message>
     <message>
         <location filename="../PluginManager/PluginRepositoryDialog.py" line="127"/>
-        <source>Unknown</source>
-        <translation>Unbekannt</translation>
-    </message>
-    <message>
-        <location filename="../PluginManager/PluginRepositoryDialog.py" line="179"/>
-        <location filename="../PluginManager/PluginRepositoryDialog.py" line="139"/>
-        <source>Update</source>
-        <translation>Aktualisieren</translation>
+        <source>Unstable</source>
+        <translation>Instabil</translation>
+    </message>
+    <message>
+        <location filename="../PluginManager/PluginRepositoryDialog.py" line="128"/>
+        <source>Upgrade Available</source>
+        <translation>Aktualisierung verfügbar</translation>
     </message>
     <message>
         <location filename="../PluginManager/PluginRepositoryDialog.py" line="182"/>
-        <location filename="../PluginManager/PluginRepositoryDialog.py" line="145"/>
+        <location filename="../PluginManager/PluginRepositoryDialog.py" line="142"/>
+        <source>Update</source>
+        <translation>Aktualisieren</translation>
+    </message>
+    <message>
+        <location filename="../PluginManager/PluginRepositoryDialog.py" line="185"/>
+        <location filename="../PluginManager/PluginRepositoryDialog.py" line="148"/>
         <source>Download</source>
         <translation>Download</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginRepositoryDialog.py" line="153"/>
+        <location filename="../PluginManager/PluginRepositoryDialog.py" line="156"/>
         <source>Download &amp; Install</source>
         <translation>Download &amp; Installieren</translation>
     </message>
     <message>
+        <location filename="../PluginManager/PluginRepositoryDialog.py" line="191"/>
+        <location filename="../PluginManager/PluginRepositoryDialog.py" line="164"/>
+        <source>Cancel</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../PluginManager/PluginRepositoryDialog.py" line="170"/>
+        <source>Install</source>
+        <translation>Installieren</translation>
+    </message>
+    <message>
         <location filename="../PluginManager/PluginRepositoryDialog.py" line="188"/>
-        <location filename="../PluginManager/PluginRepositoryDialog.py" line="161"/>
-        <source>Cancel</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../PluginManager/PluginRepositoryDialog.py" line="167"/>
-        <source>Install</source>
-        <translation>Installieren</translation>
-    </message>
-    <message>
-        <location filename="../PluginManager/PluginRepositoryDialog.py" line="185"/>
         <source>Download &amp;&amp; Install</source>
         <translation>Download &amp;&amp; Installieren</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginRepositoryDialog.py" line="191"/>
-        <source>Close &amp;&amp; Install</source>
-        <translation>Schließen &amp;&amp; Installieren</translation>
-    </message>
-    <message>
         <location filename="../PluginManager/PluginRepositoryDialog.py" line="194"/>
+        <source>Close &amp;&amp; Install</source>
+        <translation>Schließen &amp;&amp; Installieren</translation>
+    </message>
+    <message>
+        <location filename="../PluginManager/PluginRepositoryDialog.py" line="197"/>
         <source>Close</source>
         <translation>Schließen</translation>
     </message>
@@ -61806,98 +61811,103 @@
         <translation>Die angeforderten Plugins wurden heruntergeladen.</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginRepositoryDialog.py" line="603"/>
+        <location filename="../PluginManager/PluginRepositoryDialog.py" line="591"/>
         <source>Plugins Repository URL Changed</source>
         <translation>Plugin-Repository-URL Geändert</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginRepositoryDialog.py" line="604"/>
+        <location filename="../PluginManager/PluginRepositoryDialog.py" line="592"/>
         <source>The URL of the Plugins Repository has changed. Select the &quot;Update&quot; button to get the new repository file.</source>
         <translation>Die URL des Plugin-Repositorys hat sich geändert. Wählen Sie den „Aktualisieren“-Knopf, um die neue Repositorydatei zu erhalten.</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginRepositoryDialog.py" line="613"/>
+        <location filename="../PluginManager/PluginRepositoryDialog.py" line="601"/>
         <source>Read plugins repository file</source>
         <translation>Plugins Repositorydatei lesen</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginRepositoryDialog.py" line="614"/>
+        <location filename="../PluginManager/PluginRepositoryDialog.py" line="602"/>
         <source>&lt;p&gt;The plugins repository file &lt;b&gt;{0}&lt;/b&gt; could not be read. Select Update&lt;/p&gt;</source>
         <translation>&lt;p&gt;Die Plugins Repositorydatei &lt;b&gt;{0}&lt;/b&gt; konnte nicht gelesen werden.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginRepositoryDialog.py" line="623"/>
+        <location filename="../PluginManager/PluginRepositoryDialog.py" line="611"/>
         <source>No plugin repository file available.
 Select Update.</source>
         <translation>Es ist keine Plugins-Repositorydatei verfügbar.
 Bitte „Aktualisieren“ drücken.</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginRepositoryDialog.py" line="627"/>
+        <location filename="../PluginManager/PluginRepositoryDialog.py" line="615"/>
         <source>New: &lt;b&gt;{0}&lt;/b&gt;</source>
         <translation>Neu:&lt;b&gt;{0}&lt;/b&gt;</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginRepositoryDialog.py" line="629"/>
+        <location filename="../PluginManager/PluginRepositoryDialog.py" line="617"/>
         <source>Local Updates: &lt;b&gt;{0}&lt;/b&gt;</source>
         <translation>Lokale Aktualisierungen: &lt;b&gt;{0}&lt;/b&gt;</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginRepositoryDialog.py" line="632"/>
+        <location filename="../PluginManager/PluginRepositoryDialog.py" line="620"/>
         <source>Remote Updates: &lt;b&gt;{0}&lt;/b&gt;</source>
         <translation>Entfernte Aktualisierungen: &lt;b&gt;{0}&lt;/b&gt;</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginRepositoryDialog.py" line="705"/>
-        <location filename="../PluginManager/PluginRepositoryDialog.py" line="673"/>
+        <location filename="../PluginManager/PluginRepositoryDialog.py" line="693"/>
+        <location filename="../PluginManager/PluginRepositoryDialog.py" line="661"/>
         <source>Error downloading file</source>
         <translation>Fehler beim Herunterladen der Datei</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginRepositoryDialog.py" line="706"/>
-        <location filename="../PluginManager/PluginRepositoryDialog.py" line="674"/>
+        <location filename="../PluginManager/PluginRepositoryDialog.py" line="694"/>
+        <location filename="../PluginManager/PluginRepositoryDialog.py" line="662"/>
         <source>&lt;p&gt;Could not download the requested file from {0}.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</source>
         <translation>&lt;p&gt;Die angefragte Datei konnte nicht von {0} gedownloaded werden.&lt;/p&gt;&lt;p&gt;Fehler: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginRepositoryDialog.py" line="677"/>
+        <location filename="../PluginManager/PluginRepositoryDialog.py" line="665"/>
         <source>No connection to Internet.</source>
         <translation>Keine Verbindung zum Internet.</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginRepositoryDialog.py" line="849"/>
+        <location filename="../PluginManager/PluginRepositoryDialog.py" line="810"/>
         <source>up-to-date</source>
         <translation>aktuell</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginRepositoryDialog.py" line="852"/>
+        <location filename="../PluginManager/PluginRepositoryDialog.py" line="813"/>
         <source>new download available</source>
         <translation>neuer Download verfügbar</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginRepositoryDialog.py" line="856"/>
+        <location filename="../PluginManager/PluginRepositoryDialog.py" line="818"/>
         <source>update installable</source>
         <translation>Aktualisierung installierbar</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginRepositoryDialog.py" line="860"/>
+        <location filename="../PluginManager/PluginRepositoryDialog.py" line="823"/>
         <source>updated download available</source>
         <translation>aktualisiertes Download verfügbar</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginRepositoryDialog.py" line="864"/>
+        <location filename="../PluginManager/PluginRepositoryDialog.py" line="828"/>
         <source>error determining status</source>
         <translation>Fehler bei der Ermittlung des Status</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginRepositoryDialog.py" line="1269"/>
-        <location filename="../PluginManager/PluginRepositoryDialog.py" line="1239"/>
+        <location filename="../PluginManager/PluginRepositoryDialog.py" line="1002"/>
+        <source>{0}. {1}</source>
+        <translation>{0}. {1}</translation>
+    </message>
+    <message>
+        <location filename="../PluginManager/PluginRepositoryDialog.py" line="1346"/>
+        <location filename="../PluginManager/PluginRepositoryDialog.py" line="1316"/>
         <source>Cleanup of Plugin Downloads</source>
         <translation>Wartung der Plugin Downloads</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginRepositoryDialog.py" line="1273"/>
-        <location filename="../PluginManager/PluginRepositoryDialog.py" line="1242"/>
+        <location filename="../PluginManager/PluginRepositoryDialog.py" line="1350"/>
+        <location filename="../PluginManager/PluginRepositoryDialog.py" line="1319"/>
         <source>&lt;p&gt;The plugin download &lt;b&gt;{0}&lt;/b&gt; could not be deleted.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
         <translation>&lt;p&gt;Die Plugindatei &lt;b&gt;{0}&lt;/b&gt; konnte nicht gelöscht werden.&lt;/p&gt;&lt;p&gt;Ursache: {1}&lt;/p&gt;</translation>
     </message>
@@ -61905,17 +61915,17 @@
 <context>
     <name>PluginRepositoryWindow</name>
     <message>
-        <location filename="../PluginManager/PluginRepositoryDialog.py" line="1126"/>
+        <location filename="../PluginManager/PluginRepositoryDialog.py" line="1203"/>
         <source>Process Generation Error</source>
         <translation>Fehler beim Prozessstart</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginRepositoryDialog.py" line="1127"/>
+        <location filename="../PluginManager/PluginRepositoryDialog.py" line="1204"/>
         <source>&lt;p&gt;Could not start the process.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Der Prozess konnte nicht gestartet werden.&lt;br&gt;Stellen Sie sicher, dass er als &lt;b&gt;{0}&lt;/b&gt; verfügbar ist.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginRepositoryDialog.py" line="1131"/>
+        <location filename="../PluginManager/PluginRepositoryDialog.py" line="1208"/>
         <source>OK</source>
         <translation>OK</translation>
     </message>
--- a/src/eric7/i18n/eric7_empty.ts	Sat Dec 14 13:03:11 2024 +0100
+++ b/src/eric7/i18n/eric7_empty.ts	Sat Dec 14 17:25:19 2024 +0100
@@ -60401,189 +60401,189 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="832" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="834" />
       <source>Search PyPI</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="833" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="835" />
       <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>Pip</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="856" />
       <source>Install Pip</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="857" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="859" />
       <source>Install Pip to User-Site</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="860" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="862" />
       <source>Repair Pip</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="867" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="869" />
       <source>Install</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1046" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="869" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1048" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="871" />
       <source>Install Packages</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="872" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="874" />
       <source>Install Local Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="875" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="877" />
       <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>Requirements/Constraints</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="886" />
       <source>Install Requirements</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="887" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="889" />
       <source>Uninstall Requirements</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="890" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="892" />
       <source>Generate Requirements...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="894" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="896" />
       <source>Install from 'pyproject.toml'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="898" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="900" />
       <source>Uninstall from 'pyproject.toml'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="903" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="905" />
       <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>Cache</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="914" />
       <source>Show Cache Info...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="915" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="917" />
       <source>Show Cached Files...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="918" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="920" />
       <source>Remove Cached Files...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="921" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="923" />
       <source>Purge Cache...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="938" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="940" />
       <source>Show Licenses...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="942" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="944" />
       <source>Check Vulnerabilities</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="946" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="948" />
       <source>Update Vulnerability Database</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="950" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="952" />
       <source>Create SBOM file</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="957" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="959" />
       <source>Edit User Configuration...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="960" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="962" />
       <source>Edit Environment Configuration...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="965" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="967" />
       <source>Configure...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1209" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1196" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1185" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1211" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1198" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1187" />
       <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" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1212" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1199" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1188" />
       <source>No valid configuration path determined. Aborting</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1419" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1421" />
       <source>{0} {1}</source>
       <comment>package name, package version</comment>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1440" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1442" />
       <source>Affected Version:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1443" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1445" />
       <source>Advisory:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1578" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1553" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1580" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1555" />
       <source>unknown</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1575" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1577" />
       <source>any</source>
       <translation type="unfinished" />
     </message>
@@ -61419,64 +61419,69 @@
     <name>PluginRepositoryWidget</name>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="124" />
-      <source>Stable</source>
+      <source>Obsolete</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="125" />
-      <source>Unstable</source>
+      <source>Stable</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="126" />
-      <source>Obsolete</source>
+      <source>Unknown</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="127" />
-      <source>Unknown</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="179" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="139" />
-      <source>Update</source>
+      <source>Unstable</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="128" />
+      <source>Upgrade Available</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="182" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="145" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="142" />
+      <source>Update</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="185" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="148" />
       <source>Download</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="153" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="156" />
       <source>Download &amp; Install</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="191" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="164" />
+      <source>Cancel</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="170" />
+      <source>Install</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="188" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="161" />
-      <source>Cancel</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="167" />
-      <source>Install</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="185" />
       <source>Download &amp;&amp; Install</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="191" />
-      <source>Close &amp;&amp; Install</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="194" />
+      <source>Close &amp;&amp; Install</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="197" />
       <source>Close</source>
       <translation type="unfinished" />
     </message>
@@ -61528,97 +61533,102 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="603" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="591" />
       <source>Plugins Repository URL Changed</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="604" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="592" />
       <source>The URL of the Plugins Repository has changed. Select the "Update" button to get the new repository file.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="613" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="601" />
       <source>Read plugins repository file</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="614" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="602" />
       <source>&lt;p&gt;The plugins repository file &lt;b&gt;{0}&lt;/b&gt; could not be read. Select Update&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="623" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="611" />
       <source>No plugin repository file available.
 Select Update.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="627" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="615" />
       <source>New: &lt;b&gt;{0}&lt;/b&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="629" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="617" />
       <source>Local Updates: &lt;b&gt;{0}&lt;/b&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="632" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="620" />
       <source>Remote Updates: &lt;b&gt;{0}&lt;/b&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="705" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="673" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="693" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="661" />
       <source>Error downloading file</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="706" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="674" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="694" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="662" />
       <source>&lt;p&gt;Could not download the requested file from {0}.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="677" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="665" />
       <source>No connection to Internet.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="849" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="810" />
       <source>up-to-date</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="852" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="813" />
       <source>new download available</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="856" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="818" />
       <source>update installable</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="860" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="823" />
       <source>updated download available</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="864" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="828" />
       <source>error determining status</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1269" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1239" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1002" />
+      <source>{0}. {1}</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1346" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1316" />
       <source>Cleanup of Plugin Downloads</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1273" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1242" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1350" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1319" />
       <source>&lt;p&gt;The plugin download &lt;b&gt;{0}&lt;/b&gt; could not be deleted.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
@@ -61626,17 +61636,17 @@
   <context>
     <name>PluginRepositoryWindow</name>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1126" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1203" />
       <source>Process Generation Error</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1127" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1204" />
       <source>&lt;p&gt;Could not start the process.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1131" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1208" />
       <source>OK</source>
       <translation type="unfinished" />
     </message>
--- a/src/eric7/i18n/eric7_en.ts	Sat Dec 14 13:03:11 2024 +0100
+++ b/src/eric7/i18n/eric7_en.ts	Sat Dec 14 17:25:19 2024 +0100
@@ -60453,189 +60453,189 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="832" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="834" />
       <source>Search PyPI</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="833" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="835" />
       <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>Pip</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="856" />
       <source>Install Pip</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="857" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="859" />
       <source>Install Pip to User-Site</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="860" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="862" />
       <source>Repair Pip</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="867" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="869" />
       <source>Install</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1046" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="869" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1048" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="871" />
       <source>Install Packages</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="872" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="874" />
       <source>Install Local Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="875" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="877" />
       <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>Requirements/Constraints</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="886" />
       <source>Install Requirements</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="887" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="889" />
       <source>Uninstall Requirements</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="890" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="892" />
       <source>Generate Requirements...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="894" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="896" />
       <source>Install from 'pyproject.toml'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="898" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="900" />
       <source>Uninstall from 'pyproject.toml'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="903" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="905" />
       <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>Cache</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="914" />
       <source>Show Cache Info...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="915" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="917" />
       <source>Show Cached Files...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="918" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="920" />
       <source>Remove Cached Files...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="921" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="923" />
       <source>Purge Cache...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="938" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="940" />
       <source>Show Licenses...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="942" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="944" />
       <source>Check Vulnerabilities</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="946" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="948" />
       <source>Update Vulnerability Database</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="950" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="952" />
       <source>Create SBOM file</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="957" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="959" />
       <source>Edit User Configuration...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="960" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="962" />
       <source>Edit Environment Configuration...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="965" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="967" />
       <source>Configure...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1209" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1196" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1185" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1211" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1198" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1187" />
       <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" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1212" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1199" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1188" />
       <source>No valid configuration path determined. Aborting</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1419" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1421" />
       <source>{0} {1}</source>
       <comment>package name, package version</comment>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1440" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1442" />
       <source>Affected Version:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1443" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1445" />
       <source>Advisory:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1578" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1553" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1580" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1555" />
       <source>unknown</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1575" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1577" />
       <source>any</source>
       <translation type="unfinished" />
     </message>
@@ -61471,64 +61471,69 @@
     <name>PluginRepositoryWidget</name>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="124" />
-      <source>Stable</source>
+      <source>Obsolete</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="125" />
-      <source>Unstable</source>
+      <source>Stable</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="126" />
-      <source>Obsolete</source>
+      <source>Unknown</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="127" />
-      <source>Unknown</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="179" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="139" />
-      <source>Update</source>
+      <source>Unstable</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="128" />
+      <source>Upgrade Available</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="182" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="145" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="142" />
+      <source>Update</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="185" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="148" />
       <source>Download</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="153" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="156" />
       <source>Download &amp; Install</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="191" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="164" />
+      <source>Cancel</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="170" />
+      <source>Install</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="188" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="161" />
-      <source>Cancel</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="167" />
-      <source>Install</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="185" />
       <source>Download &amp;&amp; Install</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="191" />
-      <source>Close &amp;&amp; Install</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="194" />
+      <source>Close &amp;&amp; Install</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="197" />
       <source>Close</source>
       <translation type="unfinished" />
     </message>
@@ -61580,97 +61585,102 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="603" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="591" />
       <source>Plugins Repository URL Changed</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="604" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="592" />
       <source>The URL of the Plugins Repository has changed. Select the "Update" button to get the new repository file.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="613" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="601" />
       <source>Read plugins repository file</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="614" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="602" />
       <source>&lt;p&gt;The plugins repository file &lt;b&gt;{0}&lt;/b&gt; could not be read. Select Update&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="623" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="611" />
       <source>No plugin repository file available.
 Select Update.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="627" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="615" />
       <source>New: &lt;b&gt;{0}&lt;/b&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="629" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="617" />
       <source>Local Updates: &lt;b&gt;{0}&lt;/b&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="632" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="620" />
       <source>Remote Updates: &lt;b&gt;{0}&lt;/b&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="705" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="673" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="693" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="661" />
       <source>Error downloading file</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="706" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="674" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="694" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="662" />
       <source>&lt;p&gt;Could not download the requested file from {0}.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="677" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="665" />
       <source>No connection to Internet.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="849" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="810" />
       <source>up-to-date</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="852" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="813" />
       <source>new download available</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="856" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="818" />
       <source>update installable</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="860" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="823" />
       <source>updated download available</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="864" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="828" />
       <source>error determining status</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1269" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1239" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1002" />
+      <source>{0}. {1}</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1346" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1316" />
       <source>Cleanup of Plugin Downloads</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1273" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1242" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1350" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1319" />
       <source>&lt;p&gt;The plugin download &lt;b&gt;{0}&lt;/b&gt; could not be deleted.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
@@ -61678,17 +61688,17 @@
   <context>
     <name>PluginRepositoryWindow</name>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1126" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1203" />
       <source>Process Generation Error</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1127" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1204" />
       <source>&lt;p&gt;Could not start the process.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1131" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1208" />
       <source>OK</source>
       <translation type="unfinished" />
     </message>
--- a/src/eric7/i18n/eric7_es.ts	Sat Dec 14 13:03:11 2024 +0100
+++ b/src/eric7/i18n/eric7_es.ts	Sat Dec 14 17:25:19 2024 +0100
@@ -60811,189 +60811,189 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="832" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="834" />
       <source>Search PyPI</source>
       <translation>Buscar PyPI</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="833" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="835" />
       <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>Pip</source>
+      <translation>Pip</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="856" />
       <source>Install Pip</source>
       <translation>Instalar Pip</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="857" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="859" />
       <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" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="862" />
       <source>Repair Pip</source>
       <translation>Reparar Pip</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="867" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="869" />
       <source>Install</source>
       <translation>Instalar</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1046" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="869" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1048" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="871" />
       <source>Install Packages</source>
       <translation>Instalar Packages</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="872" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="874" />
       <source>Install Local Package</source>
       <translation>Instalar Package Local</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="875" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="877" />
       <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>Requirements/Constraints</source>
+      <translation>Requisitos/Restricciones</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="886" />
       <source>Install Requirements</source>
       <translation>Instalar Requisitos</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="887" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="889" />
       <source>Uninstall Requirements</source>
       <translation>Desinstalar Requisitos</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="890" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="892" />
       <source>Generate Requirements...</source>
       <translation>Generar Requisitos...</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="894" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="896" />
       <source>Install from 'pyproject.toml'</source>
       <translation>Instalar desde 'pyproject.toml'</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="898" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="900" />
       <source>Uninstall from 'pyproject.toml'</source>
       <translation>Desinstalar desde 'pyproject.toml'</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="903" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="905" />
       <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>Cache</source>
+      <translation>Caché</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="914" />
       <source>Show Cache Info...</source>
       <translation>Mostrar info de Cache...</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="915" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="917" />
       <source>Show Cached Files...</source>
       <translation>Mostrar Archivos en Cache...</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="918" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="920" />
       <source>Remove Cached Files...</source>
       <translation>Eliminar Archivos en Cache...</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="921" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="923" />
       <source>Purge Cache...</source>
       <translation>Purgar Cache...</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="938" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="940" />
       <source>Show Licenses...</source>
       <translation>Mostrar Licencias...</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="942" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="944" />
       <source>Check Vulnerabilities</source>
       <translation>Comprobar Vulnerabilidades</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="946" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="948" />
       <source>Update Vulnerability Database</source>
       <translation>Actualizar Base de Datos de Vulnerabilidades</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="950" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="952" />
       <source>Create SBOM file</source>
       <translation>Crear archivo SBOM</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="957" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="959" />
       <source>Edit User Configuration...</source>
       <translation>Editar Configuración de Usuario...</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="960" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="962" />
       <source>Edit Environment Configuration...</source>
       <translation>Editar Configuración de Entorno...</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="965" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="967" />
       <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" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1211" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1198" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1187" />
       <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" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1212" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1199" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1188" />
       <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" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1421" />
       <source>{0} {1}</source>
       <comment>package name, package version</comment>
       <translation>{0} {1}</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1440" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1442" />
       <source>Affected Version:</source>
       <translation>Versión Afectada:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1443" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1445" />
       <source>Advisory:</source>
       <translation>Recomendatorio:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1578" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1553" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1580" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1555" />
       <source>unknown</source>
       <translation>desconocido</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1575" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1577" />
       <source>any</source>
       <translation>cualquiera</translation>
     </message>
@@ -61895,64 +61895,69 @@
     <name>PluginRepositoryWidget</name>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="124" />
-      <source>Stable</source>
-      <translation>Estable</translation>
+      <source>Obsolete</source>
+      <translation>Obsoleto</translation>
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="125" />
-      <source>Unstable</source>
-      <translation>Inestable</translation>
+      <source>Stable</source>
+      <translation>Estable</translation>
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="126" />
-      <source>Obsolete</source>
-      <translation>Obsoleto</translation>
+      <source>Unknown</source>
+      <translation>Desconocido</translation>
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="127" />
-      <source>Unknown</source>
-      <translation>Desconocido</translation>
-    </message>
-    <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="179" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="139" />
-      <source>Update</source>
-      <translation>Actualización</translation>
+      <source>Unstable</source>
+      <translation>Inestable</translation>
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="128" />
+      <source>Upgrade Available</source>
+      <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="182" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="145" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="142" />
+      <source>Update</source>
+      <translation>Actualización</translation>
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="185" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="148" />
       <source>Download</source>
       <translation>Descarga</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="153" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="156" />
       <source>Download &amp; Install</source>
       <translation>Descargar &amp; Instalar</translation>
     </message>
     <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="191" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="164" />
+      <source>Cancel</source>
+      <translation>Cancelar</translation>
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="170" />
+      <source>Install</source>
+      <translation>Instalar</translation>
+    </message>
+    <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="188" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="161" />
-      <source>Cancel</source>
-      <translation>Cancelar</translation>
-    </message>
-    <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="167" />
-      <source>Install</source>
-      <translation>Instalar</translation>
-    </message>
-    <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="185" />
       <source>Download &amp;&amp; Install</source>
       <translation>Descargar &amp;&amp; Instalar</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="191" />
-      <source>Close &amp;&amp; Install</source>
-      <translation>Cerrar &amp;&amp; Instalar</translation>
-    </message>
-    <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="194" />
+      <source>Close &amp;&amp; Install</source>
+      <translation>Cerrar &amp;&amp; Instalar</translation>
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="197" />
       <source>Close</source>
       <translation>Cerrar</translation>
     </message>
@@ -62004,98 +62009,103 @@
       <translation>Los plugins solicitados han sido descargados.</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="603" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="591" />
       <source>Plugins Repository URL Changed</source>
       <translation>La URL del Repositorio de Plugins Ha Cambiado</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="604" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="592" />
       <source>The URL of the Plugins Repository has changed. Select the "Update" button to get the new repository file.</source>
       <translation>La URL del repositorio de plugins ha cambiado. Seleccionar el botón 'Actualizar' para obtener el nuevo archivo del repositorio.</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="613" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="601" />
       <source>Read plugins repository file</source>
       <translation>Leer archivo de repositorio de plugins</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="614" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="602" />
       <source>&lt;p&gt;The plugins repository file &lt;b&gt;{0}&lt;/b&gt; could not be read. Select Update&lt;/p&gt;</source>
       <translation>&lt;p&gt;El archivo de repositorio de plugins &lt;b&gt;{0}&lt;/b&gt; no se ha podido leer. Seleccione Actualizar&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="623" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="611" />
       <source>No plugin repository file available.
 Select Update.</source>
       <translation>No hay disponible ningún archivo de repositorio de plugins.
 Seleccione Actualizar.</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="627" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="615" />
       <source>New: &lt;b&gt;{0}&lt;/b&gt;</source>
       <translation>Nuevo: &lt;b&gt;{0}&lt;/b&gt;</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="629" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="617" />
       <source>Local Updates: &lt;b&gt;{0}&lt;/b&gt;</source>
       <translation>Actualizaciones Locales: &lt;b&gt;{0}&lt;/b&gt;</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="632" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="620" />
       <source>Remote Updates: &lt;b&gt;{0}&lt;/b&gt;</source>
       <translation>Actualizaciones Remotas: &lt;b&gt;{0}&lt;/b&gt;</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="705" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="673" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="693" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="661" />
       <source>Error downloading file</source>
       <translation>Error al descargar el fichero</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="706" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="674" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="694" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="662" />
       <source>&lt;p&gt;Could not download the requested file from {0}.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;No se pudo descargar el archivo solicitado desde {0}.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="677" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="665" />
       <source>No connection to Internet.</source>
       <translation>Sin conexión a Internet.</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="849" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="810" />
       <source>up-to-date</source>
       <translation>al dia</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="852" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="813" />
       <source>new download available</source>
       <translation>mueva descarga disponible</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="856" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="818" />
       <source>update installable</source>
       <translation>actualización instalable</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="860" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="823" />
       <source>updated download available</source>
       <translation>descarga actualizada disponible</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="864" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="828" />
       <source>error determining status</source>
       <translation>Error al determinar el estado</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1269" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1239" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1002" />
+      <source>{0}. {1}</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1346" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1316" />
       <source>Cleanup of Plugin Downloads</source>
       <translation>Limpieza de Descargas de Plugins</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1273" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1242" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1350" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1319" />
       <source>&lt;p&gt;The plugin download &lt;b&gt;{0}&lt;/b&gt; could not be deleted.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;La descarga del plugin &lt;b&gt;{0}&lt;/b&gt; no se ha podido borrar.&lt;/p&gt;&lt;p&gt;Razón: {1}&lt;/p&gt;</translation>
     </message>
@@ -62103,17 +62113,17 @@
   <context>
     <name>PluginRepositoryWindow</name>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1126" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1203" />
       <source>Process Generation Error</source>
       <translation>Error de Generación de Proceso</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1127" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1204" />
       <source>&lt;p&gt;Could not start the process.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation>&lt;p&gt;No se ha podido ejecutar el proceso.&lt;br&gt;Asegúrese de que esta disponible como &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1131" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1208" />
       <source>OK</source>
       <translation>Aceptar</translation>
     </message>
--- a/src/eric7/i18n/eric7_fr.ts	Sat Dec 14 13:03:11 2024 +0100
+++ b/src/eric7/i18n/eric7_fr.ts	Sat Dec 14 17:25:19 2024 +0100
@@ -60832,189 +60832,189 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="832" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="834" />
       <source>Search PyPI</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="833" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="835" />
       <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>Pip</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="856" />
       <source>Install Pip</source>
       <translation>Installer pip</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="857" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="859" />
       <source>Install Pip to User-Site</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="860" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="862" />
       <source>Repair Pip</source>
       <translation>Réparer Pip</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="867" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="869" />
       <source>Install</source>
       <translation type="unfinished">Installer</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1046" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="869" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1048" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="871" />
       <source>Install Packages</source>
       <translation>Installer des packages</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="872" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="874" />
       <source>Install Local Package</source>
       <translation>Installer un package local</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="875" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="877" />
       <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>Requirements/Constraints</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="886" />
       <source>Install Requirements</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="887" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="889" />
       <source>Uninstall Requirements</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="890" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="892" />
       <source>Generate Requirements...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="894" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="896" />
       <source>Install from 'pyproject.toml'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="898" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="900" />
       <source>Uninstall from 'pyproject.toml'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="903" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="905" />
       <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>Cache</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="914" />
       <source>Show Cache Info...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="915" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="917" />
       <source>Show Cached Files...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="918" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="920" />
       <source>Remove Cached Files...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="921" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="923" />
       <source>Purge Cache...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="938" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="940" />
       <source>Show Licenses...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="942" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="944" />
       <source>Check Vulnerabilities</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="946" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="948" />
       <source>Update Vulnerability Database</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="950" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="952" />
       <source>Create SBOM file</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="957" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="959" />
       <source>Edit User Configuration...</source>
       <translation>Éditer la configuration utilisateur...</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="960" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="962" />
       <source>Edit Environment Configuration...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="965" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="967" />
       <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" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1211" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1198" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1187" />
       <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" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1212" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1199" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1188" />
       <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" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1421" />
       <source>{0} {1}</source>
       <comment>package name, package version</comment>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1440" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1442" />
       <source>Affected Version:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1443" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1445" />
       <source>Advisory:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1578" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1553" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1580" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1555" />
       <source>unknown</source>
       <translation type="unfinished">inconnu</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1575" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1577" />
       <source>any</source>
       <translation type="unfinished" />
     </message>
@@ -61885,64 +61885,69 @@
     <name>PluginRepositoryWidget</name>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="124" />
-      <source>Stable</source>
-      <translation>Stable</translation>
+      <source>Obsolete</source>
+      <translation>Obsolète</translation>
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="125" />
-      <source>Unstable</source>
-      <translation>Instable</translation>
+      <source>Stable</source>
+      <translation>Stable</translation>
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="126" />
-      <source>Obsolete</source>
-      <translation>Obsolète</translation>
+      <source>Unknown</source>
+      <translation>Inconnu</translation>
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="127" />
-      <source>Unknown</source>
-      <translation>Inconnu</translation>
-    </message>
-    <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="179" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="139" />
-      <source>Update</source>
-      <translation>Mettre à jour</translation>
+      <source>Unstable</source>
+      <translation>Instable</translation>
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="128" />
+      <source>Upgrade Available</source>
+      <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="182" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="145" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="142" />
+      <source>Update</source>
+      <translation>Mettre à jour</translation>
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="185" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="148" />
       <source>Download</source>
       <translation>Télécharger</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="153" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="156" />
       <source>Download &amp; Install</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="191" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="164" />
+      <source>Cancel</source>
+      <translation>Annuler</translation>
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="170" />
+      <source>Install</source>
+      <translation type="unfinished">Installer</translation>
+    </message>
+    <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="188" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="161" />
-      <source>Cancel</source>
-      <translation>Annuler</translation>
-    </message>
-    <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="167" />
-      <source>Install</source>
-      <translation type="unfinished">Installer</translation>
-    </message>
-    <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="185" />
       <source>Download &amp;&amp; Install</source>
       <translation>Télécharger &amp;&amp; Installer</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="191" />
-      <source>Close &amp;&amp; Install</source>
-      <translation>Fermer &amp;&amp; Installer</translation>
-    </message>
-    <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="194" />
+      <source>Close &amp;&amp; Install</source>
+      <translation>Fermer &amp;&amp; Installer</translation>
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="197" />
       <source>Close</source>
       <translation type="unfinished">Fermer</translation>
     </message>
@@ -61994,98 +61999,103 @@
       <translation>Les plugins sélectionnés ont été téléchargés.</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="603" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="591" />
       <source>Plugins Repository URL Changed</source>
       <translation>L'URL du dépot de plugins a changé</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="604" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="592" />
       <source>The URL of the Plugins Repository has changed. Select the "Update" button to get the new repository file.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="613" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="601" />
       <source>Read plugins repository file</source>
       <translation>Lecture du référentiel de plugins</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="614" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="602" />
       <source>&lt;p&gt;The plugins repository file &lt;b&gt;{0}&lt;/b&gt; could not be read. Select Update&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="623" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="611" />
       <source>No plugin repository file available.
 Select Update.</source>
       <translation>Pas de fichier listing disponible.
 Cliquer sur "Mise à jour" pour récupérer la liste des plugins.</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="627" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="615" />
       <source>New: &lt;b&gt;{0}&lt;/b&gt;</source>
       <translation>Nouveau : &lt;b&gt;{0}&lt;/b&gt;</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="629" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="617" />
       <source>Local Updates: &lt;b&gt;{0}&lt;/b&gt;</source>
       <translation>Mises à jour locales : &lt;b&gt;{0}&lt;/b&gt;</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="632" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="620" />
       <source>Remote Updates: &lt;b&gt;{0}&lt;/b&gt;</source>
       <translation>Mises à jour distantes: &lt;b&gt;{0}&lt;/b&gt;</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="705" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="673" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="693" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="661" />
       <source>Error downloading file</source>
       <translation>Erreur de téléchargement</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="706" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="674" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="694" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="662" />
       <source>&lt;p&gt;Could not download the requested file from {0}.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Ne peut télécharger le fichier demandé depuis {0}.&lt;/p&gt;&lt;p&gt;Erreur : {1}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="677" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="665" />
       <source>No connection to Internet.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="849" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="810" />
       <source>up-to-date</source>
       <translation>à jour</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="852" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="813" />
       <source>new download available</source>
       <translation>nouveau téléchargement disponible</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="856" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="818" />
       <source>update installable</source>
       <translation>mise à jour installable</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="860" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="823" />
       <source>updated download available</source>
       <translation>téléchargement à jour disponible</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="864" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="828" />
       <source>error determining status</source>
       <translation>erreur lors de la détermination du statu</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1269" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1239" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1002" />
+      <source>{0}. {1}</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1346" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1316" />
       <source>Cleanup of Plugin Downloads</source>
       <translation>Nettoyer les téléchargements de plugin</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1273" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1242" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1350" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1319" />
       <source>&lt;p&gt;The plugin download &lt;b&gt;{0}&lt;/b&gt; could not be deleted.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Le téléchargement de plugin&lt;b&gt;{0}&lt;/b&gt; ne peut être supprimé.&lt;/p&gt;&lt;p&gt;Raison : {1}&lt;/p&gt;</translation>
     </message>
@@ -62093,17 +62103,17 @@
   <context>
     <name>PluginRepositoryWindow</name>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1126" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1203" />
       <source>Process Generation Error</source>
       <translation>Erreur du processus</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1127" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1204" />
       <source>&lt;p&gt;Could not start the process.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation>&lt;p&gt;Ne peut démarrer le processus.&lt;br&gt;Vérifier qu'il est disponible en tant que&lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1131" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1208" />
       <source>OK</source>
       <translation>OK</translation>
     </message>
--- a/src/eric7/i18n/eric7_it.ts	Sat Dec 14 13:03:11 2024 +0100
+++ b/src/eric7/i18n/eric7_it.ts	Sat Dec 14 17:25:19 2024 +0100
@@ -60736,189 +60736,189 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="832" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="834" />
       <source>Search PyPI</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="833" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="835" />
       <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>Pip</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="856" />
       <source>Install Pip</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="857" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="859" />
       <source>Install Pip to User-Site</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="860" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="862" />
       <source>Repair Pip</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="867" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="869" />
       <source>Install</source>
       <translation type="unfinished">Installa</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1046" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="869" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1048" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="871" />
       <source>Install Packages</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="872" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="874" />
       <source>Install Local Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="875" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="877" />
       <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>Requirements/Constraints</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="886" />
       <source>Install Requirements</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="887" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="889" />
       <source>Uninstall Requirements</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="890" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="892" />
       <source>Generate Requirements...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="894" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="896" />
       <source>Install from 'pyproject.toml'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="898" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="900" />
       <source>Uninstall from 'pyproject.toml'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="903" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="905" />
       <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>Cache</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="914" />
       <source>Show Cache Info...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="915" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="917" />
       <source>Show Cached Files...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="918" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="920" />
       <source>Remove Cached Files...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="921" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="923" />
       <source>Purge Cache...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="938" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="940" />
       <source>Show Licenses...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="942" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="944" />
       <source>Check Vulnerabilities</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="946" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="948" />
       <source>Update Vulnerability Database</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="950" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="952" />
       <source>Create SBOM file</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="957" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="959" />
       <source>Edit User Configuration...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="960" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="962" />
       <source>Edit Environment Configuration...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="965" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="967" />
       <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" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1211" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1198" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1187" />
       <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" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1212" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1199" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1188" />
       <source>No valid configuration path determined. Aborting</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1419" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1421" />
       <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" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1442" />
       <source>Affected Version:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1443" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1445" />
       <source>Advisory:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1578" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1553" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1580" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1555" />
       <source>unknown</source>
       <translation type="unfinished">sconosciuto</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1575" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1577" />
       <source>any</source>
       <translation type="unfinished" />
     </message>
@@ -61777,64 +61777,69 @@
     <name>PluginRepositoryWidget</name>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="124" />
-      <source>Stable</source>
-      <translation>Stabile</translation>
+      <source>Obsolete</source>
+      <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="125" />
-      <source>Unstable</source>
-      <translation>Instabile</translation>
+      <source>Stable</source>
+      <translation>Stabile</translation>
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="126" />
-      <source>Obsolete</source>
-      <translation type="unfinished" />
+      <source>Unknown</source>
+      <translation>Sconosciuto</translation>
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="127" />
-      <source>Unknown</source>
-      <translation>Sconosciuto</translation>
-    </message>
-    <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="179" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="139" />
-      <source>Update</source>
-      <translation>Aggiorna</translation>
+      <source>Unstable</source>
+      <translation>Instabile</translation>
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="128" />
+      <source>Upgrade Available</source>
+      <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="182" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="145" />
-      <source>Download</source>
-      <translation>Download</translation>
-    </message>
-    <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="153" />
-      <source>Download &amp; Install</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="188" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="161" />
-      <source>Cancel</source>
-      <translation>Cancella</translation>
-    </message>
-    <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="167" />
-      <source>Install</source>
-      <translation type="unfinished">Installa</translation>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="142" />
+      <source>Update</source>
+      <translation>Aggiorna</translation>
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="185" />
-      <source>Download &amp;&amp; Install</source>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="148" />
+      <source>Download</source>
+      <translation>Download</translation>
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="156" />
+      <source>Download &amp; Install</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="191" />
-      <source>Close &amp;&amp; Install</source>
-      <translation>Chiudi &amp;&amp; installa</translation>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="164" />
+      <source>Cancel</source>
+      <translation>Cancella</translation>
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="170" />
+      <source>Install</source>
+      <translation type="unfinished">Installa</translation>
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="188" />
+      <source>Download &amp;&amp; Install</source>
+      <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="194" />
+      <source>Close &amp;&amp; Install</source>
+      <translation>Chiudi &amp;&amp; installa</translation>
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="197" />
       <source>Close</source>
       <translation type="unfinished">Chiudi</translation>
     </message>
@@ -61886,98 +61891,103 @@
       <translation>Il plugin richiesto è stato scaricato.</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="603" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="591" />
       <source>Plugins Repository URL Changed</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="604" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="592" />
       <source>The URL of the Plugins Repository has changed. Select the "Update" button to get the new repository file.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="613" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="601" />
       <source>Read plugins repository file</source>
       <translation>Leggi il file repository del plugin</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="614" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="602" />
       <source>&lt;p&gt;The plugins repository file &lt;b&gt;{0}&lt;/b&gt; could not be read. Select Update&lt;/p&gt;</source>
       <translation>&lt;p&gt;I file repository del plugin&lt;b&gt;{0}&lt;/b&gt; non può essere letto. Seleziona aggiorna.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="623" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="611" />
       <source>No plugin repository file available.
 Select Update.</source>
       <translation>Nessun file per repository disponibile.
 Selezionare Aggiorna.</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="627" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="615" />
       <source>New: &lt;b&gt;{0}&lt;/b&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="629" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="617" />
       <source>Local Updates: &lt;b&gt;{0}&lt;/b&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="632" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="620" />
       <source>Remote Updates: &lt;b&gt;{0}&lt;/b&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="705" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="673" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="693" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="661" />
       <source>Error downloading file</source>
       <translation>Errone nello scaricamento del file</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="706" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="674" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="694" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="662" />
       <source>&lt;p&gt;Could not download the requested file from {0}.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Non posso scaricare il file richiesto da {0}&lt;/p&gt;&lt;p&gt;Errore: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="677" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="665" />
       <source>No connection to Internet.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="849" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="810" />
       <source>up-to-date</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="852" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="813" />
       <source>new download available</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="856" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="818" />
       <source>update installable</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="860" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="823" />
       <source>updated download available</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="864" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="828" />
       <source>error determining status</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1269" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1239" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1002" />
+      <source>{0}. {1}</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1346" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1316" />
       <source>Cleanup of Plugin Downloads</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1273" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1242" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1350" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1319" />
       <source>&lt;p&gt;The plugin download &lt;b&gt;{0}&lt;/b&gt; could not be deleted.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
@@ -61985,17 +61995,17 @@
   <context>
     <name>PluginRepositoryWindow</name>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1126" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1203" />
       <source>Process Generation Error</source>
       <translation>Errore Generazione Processo</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1127" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1204" />
       <source>&lt;p&gt;Could not start the process.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation>&lt;p&gt;Non posso avviare il processo.&lt;br&gt;Assicurarsi sia disponibile come &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1131" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1208" />
       <source>OK</source>
       <translation>OK</translation>
     </message>
--- a/src/eric7/i18n/eric7_pt.ts	Sat Dec 14 13:03:11 2024 +0100
+++ b/src/eric7/i18n/eric7_pt.ts	Sat Dec 14 17:25:19 2024 +0100
@@ -60731,189 +60731,189 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="832" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="834" />
       <source>Search PyPI</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="833" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="835" />
       <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>Pip</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="856" />
       <source>Install Pip</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="857" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="859" />
       <source>Install Pip to User-Site</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="860" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="862" />
       <source>Repair Pip</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="867" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="869" />
       <source>Install</source>
       <translation type="unfinished">Instalar</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1046" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="869" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1048" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="871" />
       <source>Install Packages</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="872" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="874" />
       <source>Install Local Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="875" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="877" />
       <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>Requirements/Constraints</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="886" />
       <source>Install Requirements</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="887" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="889" />
       <source>Uninstall Requirements</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="890" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="892" />
       <source>Generate Requirements...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="894" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="896" />
       <source>Install from 'pyproject.toml'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="898" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="900" />
       <source>Uninstall from 'pyproject.toml'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="903" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="905" />
       <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>Cache</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="914" />
       <source>Show Cache Info...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="915" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="917" />
       <source>Show Cached Files...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="918" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="920" />
       <source>Remove Cached Files...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="921" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="923" />
       <source>Purge Cache...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="938" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="940" />
       <source>Show Licenses...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="942" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="944" />
       <source>Check Vulnerabilities</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="946" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="948" />
       <source>Update Vulnerability Database</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="950" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="952" />
       <source>Create SBOM file</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="957" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="959" />
       <source>Edit User Configuration...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="960" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="962" />
       <source>Edit Environment Configuration...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="965" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="967" />
       <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" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1211" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1198" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1187" />
       <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" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1212" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1199" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1188" />
       <source>No valid configuration path determined. Aborting</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1419" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1421" />
       <source>{0} {1}</source>
       <comment>package name, package version</comment>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1440" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1442" />
       <source>Affected Version:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1443" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1445" />
       <source>Advisory:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1578" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1553" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1580" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1555" />
       <source>unknown</source>
       <translation type="unfinished">desconhecido</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1575" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1577" />
       <source>any</source>
       <translation type="unfinished" />
     </message>
@@ -61772,64 +61772,69 @@
     <name>PluginRepositoryWidget</name>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="124" />
-      <source>Stable</source>
-      <translation type="unfinished">Estável</translation>
+      <source>Obsolete</source>
+      <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="125" />
-      <source>Unstable</source>
-      <translation type="unfinished">Instável</translation>
+      <source>Stable</source>
+      <translation type="unfinished">Estável</translation>
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="126" />
-      <source>Obsolete</source>
-      <translation type="unfinished" />
+      <source>Unknown</source>
+      <translation>Desconhecido</translation>
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="127" />
-      <source>Unknown</source>
-      <translation>Desconhecido</translation>
-    </message>
-    <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="179" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="139" />
-      <source>Update</source>
-      <translation>Atualizar</translation>
+      <source>Unstable</source>
+      <translation type="unfinished">Instável</translation>
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="128" />
+      <source>Upgrade Available</source>
+      <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="182" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="145" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="142" />
+      <source>Update</source>
+      <translation>Atualizar</translation>
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="185" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="148" />
       <source>Download</source>
       <translation>Descarregar</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="153" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="156" />
       <source>Download &amp; Install</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="191" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="164" />
+      <source>Cancel</source>
+      <translation>Cancelar</translation>
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="170" />
+      <source>Install</source>
+      <translation type="unfinished">Instalar</translation>
+    </message>
+    <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="188" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="161" />
-      <source>Cancel</source>
-      <translation>Cancelar</translation>
-    </message>
-    <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="167" />
-      <source>Install</source>
-      <translation type="unfinished">Instalar</translation>
-    </message>
-    <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="185" />
       <source>Download &amp;&amp; Install</source>
       <translation type="unfinished">Descarregar &amp;&amp; Instalar</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="191" />
-      <source>Close &amp;&amp; Install</source>
-      <translation type="unfinished">Fechar &amp;&amp; Instalar</translation>
-    </message>
-    <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="194" />
+      <source>Close &amp;&amp; Install</source>
+      <translation type="unfinished">Fechar &amp;&amp; Instalar</translation>
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="197" />
       <source>Close</source>
       <translation type="unfinished">Fechar</translation>
     </message>
@@ -61881,97 +61886,102 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="603" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="591" />
       <source>Plugins Repository URL Changed</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="604" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="592" />
       <source>The URL of the Plugins Repository has changed. Select the "Update" button to get the new repository file.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="613" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="601" />
       <source>Read plugins repository file</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="614" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="602" />
       <source>&lt;p&gt;The plugins repository file &lt;b&gt;{0}&lt;/b&gt; could not be read. Select Update&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="623" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="611" />
       <source>No plugin repository file available.
 Select Update.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="627" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="615" />
       <source>New: &lt;b&gt;{0}&lt;/b&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="629" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="617" />
       <source>Local Updates: &lt;b&gt;{0}&lt;/b&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="632" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="620" />
       <source>Remote Updates: &lt;b&gt;{0}&lt;/b&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="705" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="673" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="693" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="661" />
       <source>Error downloading file</source>
       <translation type="unfinished">Erro ao descarregar ficheiro</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="706" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="674" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="694" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="662" />
       <source>&lt;p&gt;Could not download the requested file from {0}.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="677" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="665" />
       <source>No connection to Internet.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="849" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="810" />
       <source>up-to-date</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="852" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="813" />
       <source>new download available</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="856" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="818" />
       <source>update installable</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="860" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="823" />
       <source>updated download available</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="864" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="828" />
       <source>error determining status</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1269" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1239" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1002" />
+      <source>{0}. {1}</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1346" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1316" />
       <source>Cleanup of Plugin Downloads</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1273" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1242" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1350" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1319" />
       <source>&lt;p&gt;The plugin download &lt;b&gt;{0}&lt;/b&gt; could not be deleted.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
@@ -61979,17 +61989,17 @@
   <context>
     <name>PluginRepositoryWindow</name>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1126" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1203" />
       <source>Process Generation Error</source>
       <translation>Erro na Criação de Processo</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1127" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1204" />
       <source>&lt;p&gt;Could not start the process.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation>&lt;p&gt;Não pode começar o processo. &lt;br&gt; Assegurar de que está disponível como &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1131" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1208" />
       <source>OK</source>
       <translation />
     </message>
--- a/src/eric7/i18n/eric7_ru.ts	Sat Dec 14 13:03:11 2024 +0100
+++ b/src/eric7/i18n/eric7_ru.ts	Sat Dec 14 17:25:19 2024 +0100
@@ -60772,191 +60772,191 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="832" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="834" />
       <source>Search PyPI</source>
       <translation>Поиск в PyPI</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="833" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="835" />
       <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>Pip</source>
+      <translation>Pip</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="856" />
       <source>Install Pip</source>
       <translation>Инсталировать Pip</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="857" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="859" />
       <source>Install Pip to User-Site</source>
       <translation>Инсталировать Pip в User-Site</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="860" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="862" />
       <source>Repair Pip</source>
       <translation>Восстановить Pip</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="867" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="869" />
       <source>Install</source>
       <translation>Установить</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1046" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="869" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1048" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="871" />
       <source>Install Packages</source>
       <translation>Установить пакеты</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="872" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="874" />
       <source>Install Local Package</source>
       <translation>Установить локальный пакет</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="875" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="877" />
       <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>Requirements/Constraints</source>
+      <translation>Зависимости/Ограничения</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="886" />
       <source>Install Requirements</source>
       <translation>Установить зависимости</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="887" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="889" />
       <source>Uninstall Requirements</source>
       <translation>Деинсталировать зависимости</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="890" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="892" />
       <source>Generate Requirements...</source>
       <translation>Генерировать зависимости...</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="894" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="896" />
       <source>Install from 'pyproject.toml'</source>
       <translation>Установить из 'pyproject.toml'</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="898" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="900" />
       <source>Uninstall from 'pyproject.toml'</source>
       <translation>Деинсталировать из 'pyproject.toml'</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="903" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="905" />
       <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>Cache</source>
+      <translation>Кэш</translation>
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="914" />
       <source>Show Cache Info...</source>
       <translation>Показать информацию о кэше...</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="915" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="917" />
       <source>Show Cached Files...</source>
       <translation>Показать кэшированные файлы...</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="918" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="920" />
       <source>Remove Cached Files...</source>
       <translation>Удалить кэшированные файлы...</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="921" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="923" />
       <source>Purge Cache...</source>
       <translation>Очистить кэш...</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="938" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="940" />
       <source>Show Licenses...</source>
       <translation>Показать лицензии...</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="942" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="944" />
       <source>Check Vulnerabilities</source>
       <translation>Проверить уязвимости</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="946" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="948" />
       <source>Update Vulnerability Database</source>
       <translation>Обновить базу уязвимостей</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="950" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="952" />
       <source>Create SBOM file</source>
       <translation>Создать файл SBOM</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="957" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="959" />
       <source>Edit User Configuration...</source>
       <translation>Правка конфигурации пользователя...</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="960" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="962" />
       <source>Edit Environment Configuration...</source>
       <translation>Правка конфигурации среды окружения...</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="965" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="967" />
       <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" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1211" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1198" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1187" />
       <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" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1212" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1199" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1188" />
       <source>No valid configuration path determined. Aborting</source>
       <translation>Не определен допустимый путь конфигурации. Прерывание</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1419" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1421" />
       <source>{0} {1}</source>
       <comment>package name, package version</comment>
       <translation>{0} {1}</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1440" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1442" />
       <source>Affected Version:</source>
       <translatorcomment>Подверженная уязвимости версия:  Пораженная версия Уязвимая</translatorcomment>
       <translation>Версия с уязвимостью:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1443" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1445" />
       <source>Advisory:</source>
       <translatorcomment>Консультация:  Рекомендация</translatorcomment>
       <translation>Рекомендуемая:</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1578" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1553" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1580" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1555" />
       <source>unknown</source>
       <translation>неизвестная</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1575" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1577" />
       <source>any</source>
       <translation>любая</translation>
     </message>
@@ -61862,64 +61862,69 @@
     <name>PluginRepositoryWidget</name>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="124" />
-      <source>Stable</source>
-      <translation>Стабильные</translation>
+      <source>Obsolete</source>
+      <translation>Устаревшие</translation>
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="125" />
-      <source>Unstable</source>
-      <translation>Нестабильные</translation>
+      <source>Stable</source>
+      <translation>Стабильные</translation>
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="126" />
-      <source>Obsolete</source>
-      <translation>Устаревшие</translation>
+      <source>Unknown</source>
+      <translation>Неизвестный</translation>
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="127" />
-      <source>Unknown</source>
-      <translation>Неизвестный</translation>
-    </message>
-    <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="179" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="139" />
-      <source>Update</source>
-      <translation>Обновить</translation>
+      <source>Unstable</source>
+      <translation>Нестабильные</translation>
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="128" />
+      <source>Upgrade Available</source>
+      <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="182" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="145" />
-      <source>Download</source>
-      <translation>Загрузить</translation>
-    </message>
-    <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="153" />
-      <source>Download &amp; Install</source>
-      <translation>Загрузить и установить</translation>
-    </message>
-    <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="188" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="161" />
-      <source>Cancel</source>
-      <translation>Отмена</translation>
-    </message>
-    <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="167" />
-      <source>Install</source>
-      <translation>Установить</translation>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="142" />
+      <source>Update</source>
+      <translation>Обновить</translation>
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="185" />
-      <source>Download &amp;&amp; Install</source>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="148" />
+      <source>Download</source>
+      <translation>Загрузить</translation>
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="156" />
+      <source>Download &amp; Install</source>
       <translation>Загрузить и установить</translation>
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="191" />
-      <source>Close &amp;&amp; Install</source>
-      <translation>Закрыть и установить</translation>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="164" />
+      <source>Cancel</source>
+      <translation>Отмена</translation>
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="170" />
+      <source>Install</source>
+      <translation>Установить</translation>
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="188" />
+      <source>Download &amp;&amp; Install</source>
+      <translation>Загрузить и установить</translation>
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="194" />
+      <source>Close &amp;&amp; Install</source>
+      <translation>Закрыть и установить</translation>
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="197" />
       <source>Close</source>
       <translation>Закрыть</translation>
     </message>
@@ -61971,98 +61976,103 @@
       <translation>Запрашиваемые плагины скачаны.</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="603" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="591" />
       <source>Plugins Repository URL Changed</source>
       <translation>URL репозитория плагинов изменился</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="604" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="592" />
       <source>The URL of the Plugins Repository has changed. Select the "Update" button to get the new repository file.</source>
       <translation>URL репозитория плагинов изменился. Нажмите кнопку "Обновить" чтобы загрузить новый файл репозитория.</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="613" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="601" />
       <source>Read plugins repository file</source>
       <translation>Прочитать файл репозитория плагинов</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="614" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="602" />
       <source>&lt;p&gt;The plugins repository file &lt;b&gt;{0}&lt;/b&gt; could not be read. Select Update&lt;/p&gt;</source>
       <translation>&lt;p&gt;Невозможно прочитать файл репозитория &lt;b&gt;{0}&lt;/b&gt;. Выполните обновление&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="623" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="611" />
       <source>No plugin repository file available.
 Select Update.</source>
       <translation>Файл репозитория плагинов недоступен.
 Выполните обновление.</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="627" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="615" />
       <source>New: &lt;b&gt;{0}&lt;/b&gt;</source>
       <translation>Новые: &lt;b&gt;{0}&lt;/b&gt;</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="629" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="617" />
       <source>Local Updates: &lt;b&gt;{0}&lt;/b&gt;</source>
       <translation>Локальные обновления: &lt;b&gt;{0}&lt;/b&gt;</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="632" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="620" />
       <source>Remote Updates: &lt;b&gt;{0}&lt;/b&gt;</source>
       <translation>Удаленные обновления: &lt;b&gt;{0}&lt;/b&gt;</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="705" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="673" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="693" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="661" />
       <source>Error downloading file</source>
       <translation>Ошибка загрузки файла</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="706" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="674" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="694" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="662" />
       <source>&lt;p&gt;Could not download the requested file from {0}.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Не удалось загрузить запрашиваемый файл из {0}.&lt;/p&gt;&lt;p&gt;Ошибка: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="677" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="665" />
       <source>No connection to Internet.</source>
       <translation>Нет подключения к интернету.</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="849" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="810" />
       <source>up-to-date</source>
       <translation>новейший</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="852" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="813" />
       <source>new download available</source>
       <translation>имеются обновления для загрузки</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="856" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="818" />
       <source>update installable</source>
       <translation>обновления готовы к установке</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="860" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="823" />
       <source>updated download available</source>
       <translation>имеется обновление</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="864" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="828" />
       <source>error determining status</source>
       <translation>статус определения ошибки</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1269" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1239" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1002" />
+      <source>{0}. {1}</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1346" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1316" />
       <source>Cleanup of Plugin Downloads</source>
       <translation>Очистить загруженные плагины</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1273" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1242" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1350" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1319" />
       <source>&lt;p&gt;The plugin download &lt;b&gt;{0}&lt;/b&gt; could not be deleted.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Невозможно удалить обновление для плагина &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;Причина: {1}&lt;/p&gt;</translation>
     </message>
@@ -62070,17 +62080,17 @@
   <context>
     <name>PluginRepositoryWindow</name>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1126" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1203" />
       <source>Process Generation Error</source>
       <translation>Ошибка при запуске процесса</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1127" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1204" />
       <source>&lt;p&gt;Could not start the process.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation>&lt;p&gt;Невозможно запустить процесс.&lt;br&gt;Убедитесь, что он доступен как &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1131" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1208" />
       <source>OK</source>
       <translation>ОК</translation>
     </message>
--- a/src/eric7/i18n/eric7_tr.ts	Sat Dec 14 13:03:11 2024 +0100
+++ b/src/eric7/i18n/eric7_tr.ts	Sat Dec 14 17:25:19 2024 +0100
@@ -60640,189 +60640,189 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="832" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="834" />
       <source>Search PyPI</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="833" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="835" />
       <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>Pip</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="856" />
       <source>Install Pip</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="857" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="859" />
       <source>Install Pip to User-Site</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="860" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="862" />
       <source>Repair Pip</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="867" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="869" />
       <source>Install</source>
       <translation type="unfinished">Kur</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1046" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="869" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1048" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="871" />
       <source>Install Packages</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="872" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="874" />
       <source>Install Local Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="875" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="877" />
       <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>Requirements/Constraints</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="886" />
       <source>Install Requirements</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="887" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="889" />
       <source>Uninstall Requirements</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="890" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="892" />
       <source>Generate Requirements...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="894" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="896" />
       <source>Install from 'pyproject.toml'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="898" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="900" />
       <source>Uninstall from 'pyproject.toml'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="903" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="905" />
       <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>Cache</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="914" />
       <source>Show Cache Info...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="915" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="917" />
       <source>Show Cached Files...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="918" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="920" />
       <source>Remove Cached Files...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="921" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="923" />
       <source>Purge Cache...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="938" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="940" />
       <source>Show Licenses...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="942" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="944" />
       <source>Check Vulnerabilities</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="946" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="948" />
       <source>Update Vulnerability Database</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="950" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="952" />
       <source>Create SBOM file</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="957" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="959" />
       <source>Edit User Configuration...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="960" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="962" />
       <source>Edit Environment Configuration...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="965" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="967" />
       <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" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1211" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1198" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1187" />
       <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" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1212" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1199" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1188" />
       <source>No valid configuration path determined. Aborting</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1419" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1421" />
       <source>{0} {1}</source>
       <comment>package name, package version</comment>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1440" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1442" />
       <source>Affected Version:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1443" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1445" />
       <source>Advisory:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1578" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1553" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1580" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1555" />
       <source>unknown</source>
       <translation type="unfinished">bilinmeyen</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1575" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1577" />
       <source>any</source>
       <translation type="unfinished" />
     </message>
@@ -61677,64 +61677,69 @@
     <name>PluginRepositoryWidget</name>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="124" />
-      <source>Stable</source>
-      <translation>Dengeli</translation>
+      <source>Obsolete</source>
+      <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="125" />
-      <source>Unstable</source>
-      <translation>Dengesiz</translation>
+      <source>Stable</source>
+      <translation>Dengeli</translation>
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="126" />
-      <source>Obsolete</source>
-      <translation type="unfinished" />
+      <source>Unknown</source>
+      <translation>Bilinmeyen</translation>
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="127" />
-      <source>Unknown</source>
-      <translation>Bilinmeyen</translation>
-    </message>
-    <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="179" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="139" />
-      <source>Update</source>
-      <translation>Güncelle</translation>
+      <source>Unstable</source>
+      <translation>Dengesiz</translation>
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="128" />
+      <source>Upgrade Available</source>
+      <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="182" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="145" />
-      <source>Download</source>
-      <translation>İndir</translation>
-    </message>
-    <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="153" />
-      <source>Download &amp; Install</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="188" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="161" />
-      <source>Cancel</source>
-      <translation>Vazgeç</translation>
-    </message>
-    <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="167" />
-      <source>Install</source>
-      <translation type="unfinished">Kur</translation>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="142" />
+      <source>Update</source>
+      <translation>Güncelle</translation>
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="185" />
-      <source>Download &amp;&amp; Install</source>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="148" />
+      <source>Download</source>
+      <translation>İndir</translation>
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="156" />
+      <source>Download &amp; Install</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="191" />
-      <source>Close &amp;&amp; Install</source>
-      <translation>Kapat &amp;&amp; Kur</translation>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="164" />
+      <source>Cancel</source>
+      <translation>Vazgeç</translation>
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="170" />
+      <source>Install</source>
+      <translation type="unfinished">Kur</translation>
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="188" />
+      <source>Download &amp;&amp; Install</source>
+      <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="194" />
+      <source>Close &amp;&amp; Install</source>
+      <translation>Kapat &amp;&amp; Kur</translation>
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="197" />
       <source>Close</source>
       <translation type="unfinished">Kapat</translation>
     </message>
@@ -61786,97 +61791,102 @@
       <translation>İhtiyaç duyulan eklentiler indirildi.</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="603" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="591" />
       <source>Plugins Repository URL Changed</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="604" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="592" />
       <source>The URL of the Plugins Repository has changed. Select the "Update" button to get the new repository file.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="613" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="601" />
       <source>Read plugins repository file</source>
       <translation>Kaynak havuzu eklentiler dosyasını oku</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="614" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="602" />
       <source>&lt;p&gt;The plugins repository file &lt;b&gt;{0}&lt;/b&gt; could not be read. Select Update&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="623" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="611" />
       <source>No plugin repository file available.
 Select Update.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="627" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="615" />
       <source>New: &lt;b&gt;{0}&lt;/b&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="629" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="617" />
       <source>Local Updates: &lt;b&gt;{0}&lt;/b&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="632" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="620" />
       <source>Remote Updates: &lt;b&gt;{0}&lt;/b&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="705" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="673" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="693" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="661" />
       <source>Error downloading file</source>
       <translation>Dosya yüklenirken hata</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="706" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="674" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="694" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="662" />
       <source>&lt;p&gt;Could not download the requested file from {0}.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="677" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="665" />
       <source>No connection to Internet.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="849" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="810" />
       <source>up-to-date</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="852" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="813" />
       <source>new download available</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="856" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="818" />
       <source>update installable</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="860" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="823" />
       <source>updated download available</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="864" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="828" />
       <source>error determining status</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1269" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1239" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1002" />
+      <source>{0}. {1}</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1346" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1316" />
       <source>Cleanup of Plugin Downloads</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1273" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1242" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1350" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1319" />
       <source>&lt;p&gt;The plugin download &lt;b&gt;{0}&lt;/b&gt; could not be deleted.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
@@ -61884,17 +61894,17 @@
   <context>
     <name>PluginRepositoryWindow</name>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1126" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1203" />
       <source>Process Generation Error</source>
       <translation>İşlem Üretecinde Hata</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1127" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1204" />
       <source>&lt;p&gt;Could not start the process.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation>&lt;p&gt;İşlem başlatılamıyor.&lt;br&gt;Bu durum büyük olasılıkla şundan kaynaklanıyto &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1131" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1208" />
       <source>OK</source>
       <translation>TAMAM</translation>
     </message>
--- a/src/eric7/i18n/eric7_zh_CN.ts	Sat Dec 14 13:03:11 2024 +0100
+++ b/src/eric7/i18n/eric7_zh_CN.ts	Sat Dec 14 17:25:19 2024 +0100
@@ -60714,189 +60714,189 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="832" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="834" />
       <source>Search PyPI</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="833" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="835" />
       <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>Pip</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="856" />
       <source>Install Pip</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="857" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="859" />
       <source>Install Pip to User-Site</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="860" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="862" />
       <source>Repair Pip</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="867" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="869" />
       <source>Install</source>
       <translation type="unfinished">安装</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1046" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="869" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1048" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="871" />
       <source>Install Packages</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="872" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="874" />
       <source>Install Local Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="875" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="877" />
       <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>Requirements/Constraints</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="886" />
       <source>Install Requirements</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="887" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="889" />
       <source>Uninstall Requirements</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="890" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="892" />
       <source>Generate Requirements...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="894" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="896" />
       <source>Install from 'pyproject.toml'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="898" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="900" />
       <source>Uninstall from 'pyproject.toml'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="903" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="905" />
       <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>Cache</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PipInterface/PipPackagesWidget.py" line="914" />
       <source>Show Cache Info...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="915" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="917" />
       <source>Show Cached Files...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="918" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="920" />
       <source>Remove Cached Files...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="921" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="923" />
       <source>Purge Cache...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="938" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="940" />
       <source>Show Licenses...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="942" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="944" />
       <source>Check Vulnerabilities</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="946" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="948" />
       <source>Update Vulnerability Database</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="950" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="952" />
       <source>Create SBOM file</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="957" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="959" />
       <source>Edit User Configuration...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="960" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="962" />
       <source>Edit Environment Configuration...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="965" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="967" />
       <source>Configure...</source>
       <translation type="unfinished">配置…</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1209" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1196" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1185" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1211" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1198" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1187" />
       <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" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1212" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1199" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1188" />
       <source>No valid configuration path determined. Aborting</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1419" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1421" />
       <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" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1442" />
       <source>Affected Version:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1443" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1445" />
       <source>Advisory:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1578" />
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1553" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1580" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1555" />
       <source>unknown</source>
       <translation type="unfinished">未知</translation>
     </message>
     <message>
-      <location filename="../PipInterface/PipPackagesWidget.py" line="1575" />
+      <location filename="../PipInterface/PipPackagesWidget.py" line="1577" />
       <source>any</source>
       <translation type="unfinished" />
     </message>
@@ -61750,64 +61750,69 @@
     <name>PluginRepositoryWidget</name>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="124" />
-      <source>Stable</source>
-      <translation>稳定</translation>
+      <source>Obsolete</source>
+      <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="125" />
-      <source>Unstable</source>
-      <translation>不稳定</translation>
+      <source>Stable</source>
+      <translation>稳定</translation>
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="126" />
-      <source>Obsolete</source>
-      <translation type="unfinished" />
+      <source>Unknown</source>
+      <translation>未知</translation>
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="127" />
-      <source>Unknown</source>
-      <translation>未知</translation>
-    </message>
-    <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="179" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="139" />
-      <source>Update</source>
-      <translation>更新</translation>
+      <source>Unstable</source>
+      <translation>不稳定</translation>
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="128" />
+      <source>Upgrade Available</source>
+      <translation type="unfinished" />
     </message>
     <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="182" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="145" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="142" />
+      <source>Update</source>
+      <translation>更新</translation>
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="185" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="148" />
       <source>Download</source>
       <translation>下载</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="153" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="156" />
       <source>Download &amp; Install</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="191" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="164" />
+      <source>Cancel</source>
+      <translation>取消</translation>
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="170" />
+      <source>Install</source>
+      <translation type="unfinished">安装</translation>
+    </message>
+    <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="188" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="161" />
-      <source>Cancel</source>
-      <translation>取消</translation>
-    </message>
-    <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="167" />
-      <source>Install</source>
-      <translation type="unfinished">安装</translation>
-    </message>
-    <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="185" />
       <source>Download &amp;&amp; Install</source>
       <translation>下载并安装</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="191" />
-      <source>Close &amp;&amp; Install</source>
-      <translation>关闭与安装</translation>
-    </message>
-    <message>
       <location filename="../PluginManager/PluginRepositoryDialog.py" line="194" />
+      <source>Close &amp;&amp; Install</source>
+      <translation>关闭与安装</translation>
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="197" />
       <source>Close</source>
       <translation type="unfinished">关闭</translation>
     </message>
@@ -61859,98 +61864,103 @@
       <translation>所需插件已下载。</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="603" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="591" />
       <source>Plugins Repository URL Changed</source>
       <translation>插件仓库 URL 已改变</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="604" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="592" />
       <source>The URL of the Plugins Repository has changed. Select the "Update" button to get the new repository file.</source>
       <translation>插件仓库的 URL 已经改变。选择“更新”按钮来获取新的仓库文件。</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="613" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="601" />
       <source>Read plugins repository file</source>
       <translation>读取插件仓库文件</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="614" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="602" />
       <source>&lt;p&gt;The plugins repository file &lt;b&gt;{0}&lt;/b&gt; could not be read. Select Update&lt;/p&gt;</source>
       <translation>&lt;p&gt;插件仓库文件 &lt;b&gt;{0}&lt;/b&gt; 无法读取。选择更新&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="623" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="611" />
       <source>No plugin repository file available.
 Select Update.</source>
       <translation>无有效的插件仓库文件。
 选择更新。</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="627" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="615" />
       <source>New: &lt;b&gt;{0}&lt;/b&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="629" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="617" />
       <source>Local Updates: &lt;b&gt;{0}&lt;/b&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="632" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="620" />
       <source>Remote Updates: &lt;b&gt;{0}&lt;/b&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="705" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="673" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="693" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="661" />
       <source>Error downloading file</source>
       <translation>下载文件出错</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="706" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="674" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="694" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="662" />
       <source>&lt;p&gt;Could not download the requested file from {0}.&lt;/p&gt;&lt;p&gt;Error: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;无法从 {0} 下载指定文件。&lt;/p&gt;&lt;p&gt;错误:{1}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="677" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="665" />
       <source>No connection to Internet.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="849" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="810" />
       <source>up-to-date</source>
       <translation>最新</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="852" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="813" />
       <source>new download available</source>
       <translation>新的下载可用</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="856" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="818" />
       <source>update installable</source>
       <translation>更新可安装</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="860" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="823" />
       <source>updated download available</source>
       <translation>更新下载可用</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="864" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="828" />
       <source>error determining status</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1269" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1239" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1002" />
+      <source>{0}. {1}</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1346" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1316" />
       <source>Cleanup of Plugin Downloads</source>
       <translation>清理插件安装</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1273" />
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1242" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1350" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1319" />
       <source>&lt;p&gt;The plugin download &lt;b&gt;{0}&lt;/b&gt; could not be deleted.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;插件下载 &lt;b&gt;{0}&lt;/b&gt; 无法删除。&lt;/p&gt;&lt;p&gt;原因:{1}&lt;/p&gt;</translation>
     </message>
@@ -61958,17 +61968,17 @@
   <context>
     <name>PluginRepositoryWindow</name>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1126" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1203" />
       <source>Process Generation Error</source>
       <translation>进程生成错误</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1127" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1204" />
       <source>&lt;p&gt;Could not start the process.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation>&lt;p&gt;无法启动进程。&lt;br&gt;请确保它作为 &lt;b&gt;{0}&lt;/b&gt; 可用。&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1131" />
+      <location filename="../PluginManager/PluginRepositoryDialog.py" line="1208" />
       <source>OK</source>
       <translation>确定</translation>
     </message>

eric ide

mercurial