Modified the display of the crash session dialog to allow the removal of crash session files. eric7

Sun, 06 Apr 2025 11:01:28 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 06 Apr 2025 11:01:28 +0200
branch
eric7
changeset 11207
7193db06924d
parent 11206
9271719f43a7
child 11208
f776db7cc222

Modified the display of the crash session dialog to allow the removal of crash session files.

docs/changelog.md file | annotate | diff | comparison | revisions
src/eric7/Sessions/CrashedSessionsSelectionDialog.py file | annotate | diff | comparison | revisions
src/eric7/Sessions/CrashedSessionsSelectionDialog.ui file | annotate | diff | comparison | revisions
src/eric7/Sessions/Ui_CrashedSessionsSelectionDialog.py file | annotate | diff | comparison | revisions
src/eric7/UI/UserInterface.py file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_cs.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_de.qm file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_de.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_empty.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_en.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_es.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_fr.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_it.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_pt.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_ru.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_tr.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_zh_CN.ts file | annotate | diff | comparison | revisions
--- a/docs/changelog.md	Thu Apr 03 19:50:43 2025 +0200
+++ b/docs/changelog.md	Sun Apr 06 11:01:28 2025 +0200
@@ -6,6 +6,8 @@
     - Modified the display of the crash session dialog to show the time stamp
       of the found crash session file and the path of the
       project file (if a project was open) (see issue584).
+    - Modified the display of the crash session dialog to allow the removal
+      of crash session files.
 
 ### Version 25.4
 - bug fixes
--- a/src/eric7/Sessions/CrashedSessionsSelectionDialog.py	Thu Apr 03 19:50:43 2025 +0200
+++ b/src/eric7/Sessions/CrashedSessionsSelectionDialog.py	Sun Apr 06 11:01:28 2025 +0200
@@ -7,12 +7,18 @@
 Module implementing a dialog to show a list of existing crash session files.
 """
 
+import contextlib
 import json
 import os
 import time
 
 from PyQt6.QtCore import Qt, pyqtSlot
-from PyQt6.QtWidgets import QDialog, QDialogButtonBox, QListWidgetItem
+from PyQt6.QtWidgets import (
+    QAbstractItemView,
+    QDialog,
+    QDialogButtonBox,
+    QListWidgetItem,
+)
 
 from eric7.EricWidgets import EricMessageBox
 
@@ -24,12 +30,14 @@
     Class implementing a dialog to show a list of existing crash session files.
     """
 
-    def __init__(self, sessionFiles, parent=None):
+    def __init__(self, sessionFiles, deleteMode=False, parent=None):
         """
         Constructor
 
         @param sessionFiles list of crash session file names
         @type list of str
+        @param deleteMode flag indicating the delete mode (defaults to False)
+        @type bool (optional)
         @param parent reference to the parent widget (defaults to None)
         @type QWidget (optional)
         """
@@ -38,21 +46,44 @@
 
         self.crashedSessionsList.itemDoubleClicked.connect(self.accept)
         self.crashedSessionsList.itemActivated.connect(self.accept)
-        self.crashedSessionsList.itemSelectionChanged.connect(self.__updateOk)
+        self.crashedSessionsList.itemSelectionChanged.connect(self.__updateButtonStates)
 
         for sessionFile in sessionFiles:
             self.__addSessionFileEntry(sessionFile)
 
-        self.__updateOk()
+        self.__deleteMode = deleteMode
+        if deleteMode:
+            self.setWindowTitle(self.tr("Clean Crash Sessions"))
+            self.messageLabel.setText(
+                self.tr(
+                    "These crash session files were found. Select the ones to be"
+                    " deleted."
+                )
+            )
+            self.crashedSessionsList.setSelectionMode(
+                QAbstractItemView.SelectionMode.ExtendedSelection
+            )
+            self.removeButton.hide()
+        else:
+            self.setWindowTitle(self.tr("Found Crash Sessions"))
+            self.messageLabel.setText(
+                self.tr(
+                    "These crash session files were found. Select the one to open."
+                    " Select 'Cancel' to not open a crash session."
+                )
+            )
+
+        self.__updateButtonStates()
 
     @pyqtSlot()
-    def __updateOk(self):
+    def __updateButtonStates(self):
         """
-        Private method to update the enabled state of the OK button.
+        Private method to update the enabled state of the buttons.
         """
         self.buttonBox.button(QDialogButtonBox.StandardButton.Ok).setEnabled(
             bool(self.crashedSessionsList.selectedItems())
         )
+        self.removeButton.setEnabled(bool(self.crashedSessionsList.selectedItems()))
 
     def __addSessionFileEntry(self, sessionFile):
         """
@@ -90,6 +121,18 @@
             itm = QListWidgetItem(labelText, self.crashedSessionsList)
             itm.setData(Qt.ItemDataRole.UserRole, sessionFile)
 
+    @pyqtSlot()
+    def on_removeButton_clicked(self):
+        """
+        Private slot to remove the selected crash session files.
+        """
+        for itm in self.crashedSessionsList.selectedItems():
+            crashSession = itm.data(Qt.ItemDataRole.UserRole)
+            with contextlib.suppress(OSError):
+                os.remove(crashSession)
+            self.crashedSessionsList.takeItem(self.crashedSessionsList.row(itm))
+            del itm
+
     def getSelectedCrashSession(self):
         """
         Public method to get the selected crash session file name.
@@ -97,10 +140,23 @@
         @return file name of the selected crash session
         @rtype str
         """
-        # TODO: not implemented yet
         selectedItems = self.crashedSessionsList.selectedItems()
 
         if selectedItems:
             return selectedItems[0].data(Qt.ItemDataRole.UserRole)
         else:
             return None
+
+    def getSelectedCrashSessions(self):
+        """
+        Public method to get the selected crash session file names.
+
+        @return file names of the selected crash sessions
+        @rtype list of str
+        """
+        selectedItems = self.crashedSessionsList.selectedItems()
+
+        if selectedItems:
+            return [itm.data(Qt.ItemDataRole.UserRole) for itm in selectedItems]
+        else:
+            return []
--- a/src/eric7/Sessions/CrashedSessionsSelectionDialog.ui	Thu Apr 03 19:50:43 2025 +0200
+++ b/src/eric7/Sessions/CrashedSessionsSelectionDialog.ui	Sun Apr 06 11:01:28 2025 +0200
@@ -10,18 +10,12 @@
     <height>500</height>
    </rect>
   </property>
-  <property name="windowTitle">
-   <string>Found Crash Sessions</string>
-  </property>
   <property name="sizeGripEnabled">
    <bool>true</bool>
   </property>
   <layout class="QVBoxLayout" name="verticalLayout">
    <item>
     <widget class="QLabel" name="messageLabel">
-     <property name="text">
-      <string>These crash session files were found. Select the one to open. Select 'Cancel' to not open a crash session.</string>
-     </property>
      <property name="wordWrap">
       <bool>true</bool>
      </property>
@@ -38,14 +32,41 @@
     </widget>
    </item>
    <item>
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Orientation::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok</set>
-     </property>
-    </widget>
+    <layout class="QHBoxLayout" name="horizontalLayout">
+     <item>
+      <widget class="QPushButton" name="removeButton">
+       <property name="toolTip">
+        <string>Press to remove the selected crash sessions.</string>
+       </property>
+       <property name="text">
+        <string>Remove</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <spacer name="horizontalSpacer">
+       <property name="orientation">
+        <enum>Qt::Orientation::Horizontal</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>40</width>
+         <height>20</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+     <item>
+      <widget class="QDialogButtonBox" name="buttonBox">
+       <property name="orientation">
+        <enum>Qt::Orientation::Horizontal</enum>
+       </property>
+       <property name="standardButtons">
+        <set>QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok</set>
+       </property>
+      </widget>
+     </item>
+    </layout>
    </item>
   </layout>
  </widget>
--- a/src/eric7/Sessions/Ui_CrashedSessionsSelectionDialog.py	Thu Apr 03 19:50:43 2025 +0200
+++ b/src/eric7/Sessions/Ui_CrashedSessionsSelectionDialog.py	Sun Apr 06 11:01:28 2025 +0200
@@ -25,11 +25,19 @@
         self.crashedSessionsList.setWordWrap(True)
         self.crashedSessionsList.setObjectName("crashedSessionsList")
         self.verticalLayout.addWidget(self.crashedSessionsList)
+        self.horizontalLayout = QtWidgets.QHBoxLayout()
+        self.horizontalLayout.setObjectName("horizontalLayout")
+        self.removeButton = QtWidgets.QPushButton(parent=CrashedSessionsSelectionDialog)
+        self.removeButton.setObjectName("removeButton")
+        self.horizontalLayout.addWidget(self.removeButton)
+        spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
+        self.horizontalLayout.addItem(spacerItem)
         self.buttonBox = QtWidgets.QDialogButtonBox(parent=CrashedSessionsSelectionDialog)
         self.buttonBox.setOrientation(QtCore.Qt.Orientation.Horizontal)
         self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.StandardButton.Cancel|QtWidgets.QDialogButtonBox.StandardButton.Ok)
         self.buttonBox.setObjectName("buttonBox")
-        self.verticalLayout.addWidget(self.buttonBox)
+        self.horizontalLayout.addWidget(self.buttonBox)
+        self.verticalLayout.addLayout(self.horizontalLayout)
 
         self.retranslateUi(CrashedSessionsSelectionDialog)
         self.buttonBox.accepted.connect(CrashedSessionsSelectionDialog.accept) # type: ignore
@@ -38,5 +46,5 @@
 
     def retranslateUi(self, CrashedSessionsSelectionDialog):
         _translate = QtCore.QCoreApplication.translate
-        CrashedSessionsSelectionDialog.setWindowTitle(_translate("CrashedSessionsSelectionDialog", "Found Crash Sessions"))
-        self.messageLabel.setText(_translate("CrashedSessionsSelectionDialog", "These crash session files were found. Select the one to open. Select \'Cancel\' to not open a crash session."))
+        self.removeButton.setToolTip(_translate("CrashedSessionsSelectionDialog", "Press to remove the selected crash sessions."))
+        self.removeButton.setText(_translate("CrashedSessionsSelectionDialog", "Remove"))
--- a/src/eric7/UI/UserInterface.py	Thu Apr 03 19:50:43 2025 +0200
+++ b/src/eric7/UI/UserInterface.py	Sun Apr 06 11:01:28 2025 +0200
@@ -7959,7 +7959,6 @@
         if crashedSessionsList:
             dlg = CrashedSessionsSelectionDialog(
                 sorted(crashedSessionsList), parent=self
-                
             )
             if dlg.exec() == QDialog.DialogCode.Accepted:
                 selectedCrashSessionFile = dlg.getSelectedCrashSession()
@@ -8021,20 +8020,14 @@
         """
         Private slot to clean all stale crash sessions.
         """
-        from .DeleteFilesConfirmationDialog import DeleteFilesConfirmationDialog
-
         crashedSessionsList = self.__getCrashedSessions()
         if crashedSessionsList:
-            dlg = DeleteFilesConfirmationDialog(
-                parent=self,
-                caption=self.tr("Clean stale crash sessions"),
-                message=self.tr(
-                    "Do you really want to delete these stale crash session files?"
-                ),
-                files=sorted(crashedSessionsList),
+            dlg = CrashedSessionsSelectionDialog(
+                sorted(crashedSessionsList), deleteMode=True, parent=self
             )
             if dlg.exec() == QDialog.DialogCode.Accepted:
-                for crashSession in crashedSessionsList:
+                selectedCrashSessionFiles = dlg.getSelectedCrashSessions()
+                for crashSession in selectedCrashSessionFiles:
                     os.remove(crashSession)
 
     def showFindFileByNameDialog(self):
--- a/src/eric7/i18n/eric7_cs.ts	Thu Apr 03 19:50:43 2025 +0200
+++ b/src/eric7/i18n/eric7_cs.ts	Sun Apr 06 11:01:28 2025 +0200
@@ -8738,17 +8738,37 @@
   <context>
     <name>CrashedSessionsSelectionDialog</name>
     <message>
-      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="72" />
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="56" />
+      <source>Clean Crash Sessions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="58" />
+      <source>These crash session files were found. Select the ones to be deleted.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="68" />
+      <source>Found Crash Sessions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="70" />
+      <source>These crash session files were found. Select the one to open. Select 'Cancel' to not open a crash session.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="103" />
       <source>Read Crash Session</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="73" />
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="104" />
       <source>&lt;p&gt;The crash session file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="82" />
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="113" />
       <source>{0}
 Timestamp: {1}
 Project: {2}</source>
@@ -8756,7 +8776,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="87" />
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="118" />
       <source>{0}
 Timestamp: {1}</source>
       <comment>Crash Session, Timestamp</comment>
@@ -8764,13 +8784,13 @@
     </message>
     <message>
       <location filename="../Sessions/CrashedSessionsSelectionDialog.ui" line="0" />
-      <source>Found Crash Sessions</source>
+      <source>Press to remove the selected crash sessions.</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../Sessions/CrashedSessionsSelectionDialog.ui" line="0" />
-      <source>These crash session files were found. Select the one to open. Select 'Cancel' to not open a crash session.</source>
-      <translation type="unfinished" />
+      <source>Remove</source>
+      <translation type="unfinished">Odebrat</translation>
     </message>
   </context>
   <context>
@@ -93883,57 +93903,47 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8030" />
-      <source>Clean stale crash sessions</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../UI/UserInterface.py" line="8031" />
-      <source>Do you really want to delete these stale crash session files?</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../UI/UserInterface.py" line="8407" />
+      <location filename="../UI/UserInterface.py" line="8400" />
       <source>Drop Error</source>
       <translation>Zahodit chybu</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8408" />
+      <location filename="../UI/UserInterface.py" line="8401" />
       <source>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; is not a file.&lt;/p&gt;</source>
       <translation>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; není soubor.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8605" />
+      <location filename="../UI/UserInterface.py" line="8598" />
       <source>Upgrade available</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8606" />
+      <location filename="../UI/UserInterface.py" line="8599" />
       <source>&lt;p&gt;A newer version of the &lt;b&gt;eric-ide&lt;/b&gt; package is available at &lt;a href="{0}/eric-ide/"&gt;PyPI&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Installed: {1}&lt;br/&gt;Available: &lt;b&gt;{2}&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Shall &lt;b&gt;eric-ide&lt;/b&gt; be upgraded?&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8654" />
+      <location filename="../UI/UserInterface.py" line="8647" />
       <source>First time usage</source>
       <translation>Spuštěno poprvé</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8655" />
+      <location filename="../UI/UserInterface.py" line="8648" />
       <source>eric has not been configured yet. The configuration dialog will be started.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8677" />
+      <location filename="../UI/UserInterface.py" line="8670" />
       <source>Select Workspace Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8845" />
+      <location filename="../UI/UserInterface.py" line="8838" />
       <source>Unsaved Data Detected</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8846" />
+      <location filename="../UI/UserInterface.py" line="8839" />
       <source>Some editors contain unsaved data. Shall these be saved?</source>
       <translation type="unfinished" />
     </message>
Binary file src/eric7/i18n/eric7_de.qm has changed
--- a/src/eric7/i18n/eric7_de.ts	Thu Apr 03 19:50:43 2025 +0200
+++ b/src/eric7/i18n/eric7_de.ts	Sun Apr 06 11:01:28 2025 +0200
@@ -8723,17 +8723,37 @@
   <context>
     <name>CrashedSessionsSelectionDialog</name>
     <message>
-      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="72" />
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="56" />
+      <source>Clean Crash Sessions</source>
+      <translation>Absturzsicherungen bereinigen</translation>
+    </message>
+    <message>
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="58" />
+      <source>These crash session files were found. Select the ones to be deleted.</source>
+      <translation>Diese Absturzsicherungen wurden gefunden. Wähle die zu löschenden aus.</translation>
+    </message>
+    <message>
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="68" />
+      <source>Found Crash Sessions</source>
+      <translation>Absturzsicherungen gefunden</translation>
+    </message>
+    <message>
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="70" />
+      <source>These crash session files were found. Select the one to open. Select 'Cancel' to not open a crash session.</source>
+      <translation>Diese Absturzsicherungen wurden gefunden. Wähle die zu öffnende aus. Wähle 'Abbrechen', wenn keine geladen werden soll.</translation>
+    </message>
+    <message>
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="103" />
       <source>Read Crash Session</source>
       <translation>Absturzsicherung lesen</translation>
     </message>
     <message>
-      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="73" />
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="104" />
       <source>&lt;p&gt;The crash session file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Die Absturzsicherungsdatei &lt;b&gt;{0}&lt;/b&gt; konnte nicht gelesen werden.&lt;/p&gt;&lt;p&gt;Ursache: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="82" />
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="113" />
       <source>{0}
 Timestamp: {1}
 Project: {2}</source>
@@ -8743,7 +8763,7 @@
 Projekt: {2}</translation>
     </message>
     <message>
-      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="87" />
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="118" />
       <source>{0}
 Timestamp: {1}</source>
       <comment>Crash Session, Timestamp</comment>
@@ -8752,13 +8772,13 @@
     </message>
     <message>
       <location filename="../Sessions/CrashedSessionsSelectionDialog.ui" line="0" />
-      <source>Found Crash Sessions</source>
-      <translation>Absturzsicherungen gefunden</translation>
+      <source>Press to remove the selected crash sessions.</source>
+      <translation>Drücken, um die ausgewählten Absturzsicherungen zu löschen.</translation>
     </message>
     <message>
       <location filename="../Sessions/CrashedSessionsSelectionDialog.ui" line="0" />
-      <source>These crash session files were found. Select the one to open. Select 'Cancel' to not open a crash session.</source>
-      <translation>Diese Absturzsicherungen wurden gefunden. Wähle die zu öffnende aus. Wähle 'Abbrechen', wenn keine geladen werden soll.</translation>
+      <source>Remove</source>
+      <translation>Löschen</translation>
     </message>
   </context>
   <context>
@@ -93997,57 +94017,47 @@
       <translation>eric Sitzungsdateien (*.esj)</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8030" />
-      <source>Clean stale crash sessions</source>
-      <translation>Veraltete Absturzsicherungen bereinigen</translation>
-    </message>
-    <message>
-      <location filename="../UI/UserInterface.py" line="8031" />
-      <source>Do you really want to delete these stale crash session files?</source>
-      <translation>Sollen wirklich diese veralteten Absturzsicherungen gelöscht werden?</translation>
-    </message>
-    <message>
-      <location filename="../UI/UserInterface.py" line="8407" />
+      <location filename="../UI/UserInterface.py" line="8400" />
       <source>Drop Error</source>
       <translation>Drop-Fehler</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8408" />
+      <location filename="../UI/UserInterface.py" line="8401" />
       <source>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; is not a file.&lt;/p&gt;</source>
       <translation>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; ist keine Datei.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8605" />
+      <location filename="../UI/UserInterface.py" line="8598" />
       <source>Upgrade available</source>
       <translation>Aktualisierung verfügbar</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8606" />
+      <location filename="../UI/UserInterface.py" line="8599" />
       <source>&lt;p&gt;A newer version of the &lt;b&gt;eric-ide&lt;/b&gt; package is available at &lt;a href="{0}/eric-ide/"&gt;PyPI&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Installed: {1}&lt;br/&gt;Available: &lt;b&gt;{2}&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Shall &lt;b&gt;eric-ide&lt;/b&gt; be upgraded?&lt;/p&gt;</source>
       <translation>&lt;p&gt;Eine neuere Version des &lt;b&gt;eric-ide&lt;/b&gt; Paketes ist auf &lt;a href="{0}/eric-ide/"&gt;PyPI&lt;/a&gt; verfügbar.&lt;/p&gt;&lt;p&gt;Installiert: {1}&lt;br/&gt;Verfügbar: &lt;b&gt;{2}&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Soll &lt;b&gt;eric-ide&lt;/b&gt; aktualisiert werden?&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8654" />
+      <location filename="../UI/UserInterface.py" line="8647" />
       <source>First time usage</source>
       <translation>Erstmalige Nutzung</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8655" />
+      <location filename="../UI/UserInterface.py" line="8648" />
       <source>eric has not been configured yet. The configuration dialog will be started.</source>
       <translation>eric wurde noch nicht konfiguriert. Der Konfigurationsdialog wird nun gestartet.</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8677" />
+      <location filename="../UI/UserInterface.py" line="8670" />
       <source>Select Workspace Directory</source>
       <translation>Wähle Arbeitsverzeichnis</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8845" />
+      <location filename="../UI/UserInterface.py" line="8838" />
       <source>Unsaved Data Detected</source>
       <translation>Nicht gespeicherte Daten gefunden</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8846" />
+      <location filename="../UI/UserInterface.py" line="8839" />
       <source>Some editors contain unsaved data. Shall these be saved?</source>
       <translation>Einige Editoren haben nicht gespeicherte Inhalte. Sollen diese gespeichert werden?</translation>
     </message>
--- a/src/eric7/i18n/eric7_empty.ts	Thu Apr 03 19:50:43 2025 +0200
+++ b/src/eric7/i18n/eric7_empty.ts	Sun Apr 06 11:01:28 2025 +0200
@@ -8662,17 +8662,37 @@
   <context>
     <name>CrashedSessionsSelectionDialog</name>
     <message>
-      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="72" />
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="56" />
+      <source>Clean Crash Sessions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="58" />
+      <source>These crash session files were found. Select the ones to be deleted.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="68" />
+      <source>Found Crash Sessions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="70" />
+      <source>These crash session files were found. Select the one to open. Select 'Cancel' to not open a crash session.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="103" />
       <source>Read Crash Session</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="73" />
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="104" />
       <source>&lt;p&gt;The crash session file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="82" />
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="113" />
       <source>{0}
 Timestamp: {1}
 Project: {2}</source>
@@ -8680,7 +8700,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="87" />
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="118" />
       <source>{0}
 Timestamp: {1}</source>
       <comment>Crash Session, Timestamp</comment>
@@ -8688,12 +8708,12 @@
     </message>
     <message>
       <location filename="../Sessions/CrashedSessionsSelectionDialog.ui" line="0" />
-      <source>Found Crash Sessions</source>
+      <source>Press to remove the selected crash sessions.</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../Sessions/CrashedSessionsSelectionDialog.ui" line="0" />
-      <source>These crash session files were found. Select the one to open. Select 'Cancel' to not open a crash session.</source>
+      <source>Remove</source>
       <translation type="unfinished" />
     </message>
   </context>
@@ -93414,57 +93434,47 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8030" />
-      <source>Clean stale crash sessions</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../UI/UserInterface.py" line="8031" />
-      <source>Do you really want to delete these stale crash session files?</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../UI/UserInterface.py" line="8407" />
+      <location filename="../UI/UserInterface.py" line="8400" />
       <source>Drop Error</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8408" />
+      <location filename="../UI/UserInterface.py" line="8401" />
       <source>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; is not a file.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8605" />
+      <location filename="../UI/UserInterface.py" line="8598" />
       <source>Upgrade available</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8606" />
+      <location filename="../UI/UserInterface.py" line="8599" />
       <source>&lt;p&gt;A newer version of the &lt;b&gt;eric-ide&lt;/b&gt; package is available at &lt;a href="{0}/eric-ide/"&gt;PyPI&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Installed: {1}&lt;br/&gt;Available: &lt;b&gt;{2}&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Shall &lt;b&gt;eric-ide&lt;/b&gt; be upgraded?&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8654" />
+      <location filename="../UI/UserInterface.py" line="8647" />
       <source>First time usage</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8655" />
+      <location filename="../UI/UserInterface.py" line="8648" />
       <source>eric has not been configured yet. The configuration dialog will be started.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8677" />
+      <location filename="../UI/UserInterface.py" line="8670" />
       <source>Select Workspace Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8845" />
+      <location filename="../UI/UserInterface.py" line="8838" />
       <source>Unsaved Data Detected</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8846" />
+      <location filename="../UI/UserInterface.py" line="8839" />
       <source>Some editors contain unsaved data. Shall these be saved?</source>
       <translation type="unfinished" />
     </message>
--- a/src/eric7/i18n/eric7_en.ts	Thu Apr 03 19:50:43 2025 +0200
+++ b/src/eric7/i18n/eric7_en.ts	Sun Apr 06 11:01:28 2025 +0200
@@ -8671,17 +8671,37 @@
   <context>
     <name>CrashedSessionsSelectionDialog</name>
     <message>
-      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="72" />
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="56" />
+      <source>Clean Crash Sessions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="58" />
+      <source>These crash session files were found. Select the ones to be deleted.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="68" />
+      <source>Found Crash Sessions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="70" />
+      <source>These crash session files were found. Select the one to open. Select 'Cancel' to not open a crash session.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="103" />
       <source>Read Crash Session</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="73" />
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="104" />
       <source>&lt;p&gt;The crash session file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="82" />
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="113" />
       <source>{0}
 Timestamp: {1}
 Project: {2}</source>
@@ -8689,7 +8709,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="87" />
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="118" />
       <source>{0}
 Timestamp: {1}</source>
       <comment>Crash Session, Timestamp</comment>
@@ -8697,12 +8717,12 @@
     </message>
     <message>
       <location filename="../Sessions/CrashedSessionsSelectionDialog.ui" line="0" />
-      <source>Found Crash Sessions</source>
+      <source>Press to remove the selected crash sessions.</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../Sessions/CrashedSessionsSelectionDialog.ui" line="0" />
-      <source>These crash session files were found. Select the one to open. Select 'Cancel' to not open a crash session.</source>
+      <source>Remove</source>
       <translation type="unfinished" />
     </message>
   </context>
@@ -93474,57 +93494,47 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8030" />
-      <source>Clean stale crash sessions</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../UI/UserInterface.py" line="8031" />
-      <source>Do you really want to delete these stale crash session files?</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../UI/UserInterface.py" line="8407" />
+      <location filename="../UI/UserInterface.py" line="8400" />
       <source>Drop Error</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8408" />
+      <location filename="../UI/UserInterface.py" line="8401" />
       <source>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; is not a file.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8605" />
+      <location filename="../UI/UserInterface.py" line="8598" />
       <source>Upgrade available</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8606" />
+      <location filename="../UI/UserInterface.py" line="8599" />
       <source>&lt;p&gt;A newer version of the &lt;b&gt;eric-ide&lt;/b&gt; package is available at &lt;a href="{0}/eric-ide/"&gt;PyPI&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Installed: {1}&lt;br/&gt;Available: &lt;b&gt;{2}&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Shall &lt;b&gt;eric-ide&lt;/b&gt; be upgraded?&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8654" />
+      <location filename="../UI/UserInterface.py" line="8647" />
       <source>First time usage</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8655" />
+      <location filename="../UI/UserInterface.py" line="8648" />
       <source>eric has not been configured yet. The configuration dialog will be started.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8677" />
+      <location filename="../UI/UserInterface.py" line="8670" />
       <source>Select Workspace Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8845" />
+      <location filename="../UI/UserInterface.py" line="8838" />
       <source>Unsaved Data Detected</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8846" />
+      <location filename="../UI/UserInterface.py" line="8839" />
       <source>Some editors contain unsaved data. Shall these be saved?</source>
       <translation type="unfinished" />
     </message>
--- a/src/eric7/i18n/eric7_es.ts	Thu Apr 03 19:50:43 2025 +0200
+++ b/src/eric7/i18n/eric7_es.ts	Sun Apr 06 11:01:28 2025 +0200
@@ -8719,17 +8719,37 @@
   <context>
     <name>CrashedSessionsSelectionDialog</name>
     <message>
-      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="72" />
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="56" />
+      <source>Clean Crash Sessions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="58" />
+      <source>These crash session files were found. Select the ones to be deleted.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="68" />
+      <source>Found Crash Sessions</source>
+      <translation type="unfinished">Encontradas Sesiones Perdidas</translation>
+    </message>
+    <message>
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="70" />
+      <source>These crash session files were found. Select the one to open. Select 'Cancel' to not open a crash session.</source>
+      <translation type="unfinished">Se han encontrado estos archivos de sesiones perdidas. Seleccionar la que se desee abrir. Seleccionar 'Cancelar' para no abrir ninguna.</translation>
+    </message>
+    <message>
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="103" />
       <source>Read Crash Session</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="73" />
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="104" />
       <source>&lt;p&gt;The crash session file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="82" />
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="113" />
       <source>{0}
 Timestamp: {1}
 Project: {2}</source>
@@ -8737,7 +8757,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="87" />
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="118" />
       <source>{0}
 Timestamp: {1}</source>
       <comment>Crash Session, Timestamp</comment>
@@ -8745,13 +8765,13 @@
     </message>
     <message>
       <location filename="../Sessions/CrashedSessionsSelectionDialog.ui" line="0" />
-      <source>Found Crash Sessions</source>
-      <translation type="unfinished">Encontradas Sesiones Perdidas</translation>
+      <source>Press to remove the selected crash sessions.</source>
+      <translation type="unfinished" />
     </message>
     <message>
       <location filename="../Sessions/CrashedSessionsSelectionDialog.ui" line="0" />
-      <source>These crash session files were found. Select the one to open. Select 'Cancel' to not open a crash session.</source>
-      <translation type="unfinished">Se han encontrado estos archivos de sesiones perdidas. Seleccionar la que se desee abrir. Seleccionar 'Cancelar' para no abrir ninguna.</translation>
+      <source>Remove</source>
+      <translation type="unfinished">Eliminar</translation>
     </message>
   </context>
   <context>
@@ -93993,61 +94013,59 @@
       <translation>Archivos de Sesión de eric (*.esj)</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8030" />
-      <source>Clean stale crash sessions</source>
-      <translation>Limpiar sesiones perdidas antituas</translation>
-    </message>
-    <message>
-      <location filename="../UI/UserInterface.py" line="8031" />
-      <source>Do you really want to delete these stale crash session files?</source>
-      <translation>¿Desea realmente eliminar esos archivos antiguos de sesiones perdidas?</translation>
-    </message>
-    <message>
-      <location filename="../UI/UserInterface.py" line="8407" />
+      <location filename="../UI/UserInterface.py" line="8400" />
       <source>Drop Error</source>
       <translation>Error de volcado</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8408" />
+      <location filename="../UI/UserInterface.py" line="8401" />
       <source>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; is not a file.&lt;/p&gt;</source>
       <translation>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; no es un archivo.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8605" />
+      <location filename="../UI/UserInterface.py" line="8598" />
       <source>Upgrade available</source>
       <translation>Actualización disponible</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8606" />
+      <location filename="../UI/UserInterface.py" line="8599" />
       <source>&lt;p&gt;A newer version of the &lt;b&gt;eric-ide&lt;/b&gt; package is available at &lt;a href="{0}/eric-ide/"&gt;PyPI&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Installed: {1}&lt;br/&gt;Available: &lt;b&gt;{2}&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Shall &lt;b&gt;eric-ide&lt;/b&gt; be upgraded?&lt;/p&gt;</source>
       <translation>&lt;p&gt;Una versión más moderna del package de &lt;b&gt;eric-ide&lt;/b&gt; se encuentra disponible en &lt;a href="{0}/eric-ide/"&gt;PyPI&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Instalado: {1}&lt;br/&gt;Disponible: &lt;b&gt;{2}&lt;/b&gt;Actualizar &lt;b&gt;eric-ide&lt;/b&gt;?&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8654" />
+      <location filename="../UI/UserInterface.py" line="8647" />
       <source>First time usage</source>
       <translation>Usado por primera vez</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8655" />
+      <location filename="../UI/UserInterface.py" line="8648" />
       <source>eric has not been configured yet. The configuration dialog will be started.</source>
       <translation>eric todavía no está configurado. El diálogo de configuración va a ser iniciado.</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8677" />
+      <location filename="../UI/UserInterface.py" line="8670" />
       <source>Select Workspace Directory</source>
       <translation>Seleccionar Directorio para el Espacio de Trabajo</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8845" />
+      <location filename="../UI/UserInterface.py" line="8838" />
       <source>Unsaved Data Detected</source>
       <translation>Detectados Datos sin Guardar</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8846" />
+      <location filename="../UI/UserInterface.py" line="8839" />
       <source>Some editors contain unsaved data. Shall these be saved?</source>
       <translation>Algunos editores contienen datos sin guardar. ¿Desea guardarlos?</translation>
     </message>
     <message>
+      <source>Clean stale crash sessions</source>
+      <translation type="vanished">Limpiar sesiones perdidas antituas</translation>
+    </message>
+    <message>
+      <source>Do you really want to delete these stale crash session files?</source>
+      <translation type="vanished">¿Desea realmente eliminar esos archivos antiguos de sesiones perdidas?</translation>
+    </message>
+    <message>
       <source>Found Crash Sessions</source>
       <translation type="vanished">Encontradas Sesiones Perdidas</translation>
     </message>
--- a/src/eric7/i18n/eric7_fr.ts	Thu Apr 03 19:50:43 2025 +0200
+++ b/src/eric7/i18n/eric7_fr.ts	Sun Apr 06 11:01:28 2025 +0200
@@ -8749,17 +8749,37 @@
   <context>
     <name>CrashedSessionsSelectionDialog</name>
     <message>
-      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="72" />
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="56" />
+      <source>Clean Crash Sessions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="58" />
+      <source>These crash session files were found. Select the ones to be deleted.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="68" />
+      <source>Found Crash Sessions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="70" />
+      <source>These crash session files were found. Select the one to open. Select 'Cancel' to not open a crash session.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="103" />
       <source>Read Crash Session</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="73" />
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="104" />
       <source>&lt;p&gt;The crash session file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="82" />
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="113" />
       <source>{0}
 Timestamp: {1}
 Project: {2}</source>
@@ -8767,7 +8787,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="87" />
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="118" />
       <source>{0}
 Timestamp: {1}</source>
       <comment>Crash Session, Timestamp</comment>
@@ -8775,13 +8795,13 @@
     </message>
     <message>
       <location filename="../Sessions/CrashedSessionsSelectionDialog.ui" line="0" />
-      <source>Found Crash Sessions</source>
+      <source>Press to remove the selected crash sessions.</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../Sessions/CrashedSessionsSelectionDialog.ui" line="0" />
-      <source>These crash session files were found. Select the one to open. Select 'Cancel' to not open a crash session.</source>
-      <translation type="unfinished" />
+      <source>Remove</source>
+      <translation type="unfinished">Supprimer</translation>
     </message>
   </context>
   <context>
@@ -94129,57 +94149,47 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8030" />
-      <source>Clean stale crash sessions</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../UI/UserInterface.py" line="8031" />
-      <source>Do you really want to delete these stale crash session files?</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../UI/UserInterface.py" line="8407" />
+      <location filename="../UI/UserInterface.py" line="8400" />
       <source>Drop Error</source>
       <translation>Erreur de suppression</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8408" />
+      <location filename="../UI/UserInterface.py" line="8401" />
       <source>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; is not a file.&lt;/p&gt;</source>
       <translation>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; n'est pas un fichier.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8605" />
+      <location filename="../UI/UserInterface.py" line="8598" />
       <source>Upgrade available</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8606" />
+      <location filename="../UI/UserInterface.py" line="8599" />
       <source>&lt;p&gt;A newer version of the &lt;b&gt;eric-ide&lt;/b&gt; package is available at &lt;a href="{0}/eric-ide/"&gt;PyPI&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Installed: {1}&lt;br/&gt;Available: &lt;b&gt;{2}&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Shall &lt;b&gt;eric-ide&lt;/b&gt; be upgraded?&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8654" />
+      <location filename="../UI/UserInterface.py" line="8647" />
       <source>First time usage</source>
       <translation>Première utilisation</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8655" />
+      <location filename="../UI/UserInterface.py" line="8648" />
       <source>eric has not been configured yet. The configuration dialog will be started.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8677" />
+      <location filename="../UI/UserInterface.py" line="8670" />
       <source>Select Workspace Directory</source>
       <translation>Sélectionner le répertoire de travail</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8845" />
+      <location filename="../UI/UserInterface.py" line="8838" />
       <source>Unsaved Data Detected</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8846" />
+      <location filename="../UI/UserInterface.py" line="8839" />
       <source>Some editors contain unsaved data. Shall these be saved?</source>
       <translation type="unfinished" />
     </message>
--- a/src/eric7/i18n/eric7_it.ts	Thu Apr 03 19:50:43 2025 +0200
+++ b/src/eric7/i18n/eric7_it.ts	Sun Apr 06 11:01:28 2025 +0200
@@ -8742,17 +8742,37 @@
   <context>
     <name>CrashedSessionsSelectionDialog</name>
     <message>
-      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="72" />
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="56" />
+      <source>Clean Crash Sessions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="58" />
+      <source>These crash session files were found. Select the ones to be deleted.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="68" />
+      <source>Found Crash Sessions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="70" />
+      <source>These crash session files were found. Select the one to open. Select 'Cancel' to not open a crash session.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="103" />
       <source>Read Crash Session</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="73" />
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="104" />
       <source>&lt;p&gt;The crash session file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="82" />
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="113" />
       <source>{0}
 Timestamp: {1}
 Project: {2}</source>
@@ -8760,7 +8780,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="87" />
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="118" />
       <source>{0}
 Timestamp: {1}</source>
       <comment>Crash Session, Timestamp</comment>
@@ -8768,13 +8788,13 @@
     </message>
     <message>
       <location filename="../Sessions/CrashedSessionsSelectionDialog.ui" line="0" />
-      <source>Found Crash Sessions</source>
+      <source>Press to remove the selected crash sessions.</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../Sessions/CrashedSessionsSelectionDialog.ui" line="0" />
-      <source>These crash session files were found. Select the one to open. Select 'Cancel' to not open a crash session.</source>
-      <translation type="unfinished" />
+      <source>Remove</source>
+      <translation type="unfinished">Rimuovi</translation>
     </message>
   </context>
   <context>
@@ -93991,57 +94011,47 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8030" />
-      <source>Clean stale crash sessions</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../UI/UserInterface.py" line="8031" />
-      <source>Do you really want to delete these stale crash session files?</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../UI/UserInterface.py" line="8407" />
+      <location filename="../UI/UserInterface.py" line="8400" />
       <source>Drop Error</source>
       <translation>Errore Drop</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8408" />
+      <location filename="../UI/UserInterface.py" line="8401" />
       <source>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; is not a file.&lt;/p&gt;</source>
       <translation>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; non è un file.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8605" />
+      <location filename="../UI/UserInterface.py" line="8598" />
       <source>Upgrade available</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8606" />
+      <location filename="../UI/UserInterface.py" line="8599" />
       <source>&lt;p&gt;A newer version of the &lt;b&gt;eric-ide&lt;/b&gt; package is available at &lt;a href="{0}/eric-ide/"&gt;PyPI&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Installed: {1}&lt;br/&gt;Available: &lt;b&gt;{2}&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Shall &lt;b&gt;eric-ide&lt;/b&gt; be upgraded?&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8654" />
+      <location filename="../UI/UserInterface.py" line="8647" />
       <source>First time usage</source>
       <translation>Primo avvio</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8655" />
+      <location filename="../UI/UserInterface.py" line="8648" />
       <source>eric has not been configured yet. The configuration dialog will be started.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8677" />
+      <location filename="../UI/UserInterface.py" line="8670" />
       <source>Select Workspace Directory</source>
       <translation type="unfinished">Seleziona cartella di lavoro</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8845" />
+      <location filename="../UI/UserInterface.py" line="8838" />
       <source>Unsaved Data Detected</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8846" />
+      <location filename="../UI/UserInterface.py" line="8839" />
       <source>Some editors contain unsaved data. Shall these be saved?</source>
       <translation type="unfinished" />
     </message>
--- a/src/eric7/i18n/eric7_pt.ts	Thu Apr 03 19:50:43 2025 +0200
+++ b/src/eric7/i18n/eric7_pt.ts	Sun Apr 06 11:01:28 2025 +0200
@@ -8741,17 +8741,37 @@
   <context>
     <name>CrashedSessionsSelectionDialog</name>
     <message>
-      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="72" />
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="56" />
+      <source>Clean Crash Sessions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="58" />
+      <source>These crash session files were found. Select the ones to be deleted.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="68" />
+      <source>Found Crash Sessions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="70" />
+      <source>These crash session files were found. Select the one to open. Select 'Cancel' to not open a crash session.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="103" />
       <source>Read Crash Session</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="73" />
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="104" />
       <source>&lt;p&gt;The crash session file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="82" />
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="113" />
       <source>{0}
 Timestamp: {1}
 Project: {2}</source>
@@ -8759,7 +8779,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="87" />
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="118" />
       <source>{0}
 Timestamp: {1}</source>
       <comment>Crash Session, Timestamp</comment>
@@ -8767,13 +8787,13 @@
     </message>
     <message>
       <location filename="../Sessions/CrashedSessionsSelectionDialog.ui" line="0" />
-      <source>Found Crash Sessions</source>
+      <source>Press to remove the selected crash sessions.</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../Sessions/CrashedSessionsSelectionDialog.ui" line="0" />
-      <source>These crash session files were found. Select the one to open. Select 'Cancel' to not open a crash session.</source>
-      <translation type="unfinished" />
+      <source>Remove</source>
+      <translation type="unfinished">Retirar</translation>
     </message>
   </context>
   <context>
@@ -93837,57 +93857,47 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8030" />
-      <source>Clean stale crash sessions</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../UI/UserInterface.py" line="8031" />
-      <source>Do you really want to delete these stale crash session files?</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../UI/UserInterface.py" line="8407" />
+      <location filename="../UI/UserInterface.py" line="8400" />
       <source>Drop Error</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8408" />
+      <location filename="../UI/UserInterface.py" line="8401" />
       <source>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; is not a file.&lt;/p&gt;</source>
       <translation>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; não é um ficheiro.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8605" />
+      <location filename="../UI/UserInterface.py" line="8598" />
       <source>Upgrade available</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8606" />
+      <location filename="../UI/UserInterface.py" line="8599" />
       <source>&lt;p&gt;A newer version of the &lt;b&gt;eric-ide&lt;/b&gt; package is available at &lt;a href="{0}/eric-ide/"&gt;PyPI&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Installed: {1}&lt;br/&gt;Available: &lt;b&gt;{2}&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Shall &lt;b&gt;eric-ide&lt;/b&gt; be upgraded?&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8654" />
+      <location filename="../UI/UserInterface.py" line="8647" />
       <source>First time usage</source>
       <translation>Usado a primeira vez</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8655" />
+      <location filename="../UI/UserInterface.py" line="8648" />
       <source>eric has not been configured yet. The configuration dialog will be started.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8677" />
+      <location filename="../UI/UserInterface.py" line="8670" />
       <source>Select Workspace Directory</source>
       <translation>Selecionar o Diretório de Trabalho</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8845" />
+      <location filename="../UI/UserInterface.py" line="8838" />
       <source>Unsaved Data Detected</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8846" />
+      <location filename="../UI/UserInterface.py" line="8839" />
       <source>Some editors contain unsaved data. Shall these be saved?</source>
       <translation type="unfinished" />
     </message>
--- a/src/eric7/i18n/eric7_ru.ts	Thu Apr 03 19:50:43 2025 +0200
+++ b/src/eric7/i18n/eric7_ru.ts	Sun Apr 06 11:01:28 2025 +0200
@@ -8732,17 +8732,37 @@
   <context>
     <name>CrashedSessionsSelectionDialog</name>
     <message>
-      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="72" />
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="56" />
+      <source>Clean Crash Sessions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="58" />
+      <source>These crash session files were found. Select the ones to be deleted.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="68" />
+      <source>Found Crash Sessions</source>
+      <translation type="unfinished">Найдены crash-сеансы</translation>
+    </message>
+    <message>
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="70" />
+      <source>These crash session files were found. Select the one to open. Select 'Cancel' to not open a crash session.</source>
+      <translation type="unfinished">Были найдены следующие файлы crash-сеансов. Выберите один из них для открытия. Выберите 'Отмена', чтобы не открывать crash-сеанс.</translation>
+    </message>
+    <message>
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="103" />
       <source>Read Crash Session</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="73" />
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="104" />
       <source>&lt;p&gt;The crash session file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="82" />
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="113" />
       <source>{0}
 Timestamp: {1}
 Project: {2}</source>
@@ -8750,7 +8770,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="87" />
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="118" />
       <source>{0}
 Timestamp: {1}</source>
       <comment>Crash Session, Timestamp</comment>
@@ -8758,13 +8778,13 @@
     </message>
     <message>
       <location filename="../Sessions/CrashedSessionsSelectionDialog.ui" line="0" />
-      <source>Found Crash Sessions</source>
-      <translation type="unfinished">Найдены crash-сеансы</translation>
+      <source>Press to remove the selected crash sessions.</source>
+      <translation type="unfinished" />
     </message>
     <message>
       <location filename="../Sessions/CrashedSessionsSelectionDialog.ui" line="0" />
-      <source>These crash session files were found. Select the one to open. Select 'Cancel' to not open a crash session.</source>
-      <translation type="unfinished">Были найдены следующие файлы crash-сеансов. Выберите один из них для открытия. Выберите 'Отмена', чтобы не открывать crash-сеанс.</translation>
+      <source>Remove</source>
+      <translation type="unfinished">Удалить</translation>
     </message>
   </context>
   <context>
@@ -94185,61 +94205,59 @@
       <translation>Файлы сеансов eric (*.esj)</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8030" />
-      <source>Clean stale crash sessions</source>
-      <translation>Очистите устаревшие crash-сеансы</translation>
-    </message>
-    <message>
-      <location filename="../UI/UserInterface.py" line="8031" />
-      <source>Do you really want to delete these stale crash session files?</source>
-      <translation>Вы действительно хотите удалить эти устаревшие файлы crash-сеансов?</translation>
-    </message>
-    <message>
-      <location filename="../UI/UserInterface.py" line="8407" />
+      <location filename="../UI/UserInterface.py" line="8400" />
       <source>Drop Error</source>
       <translation>Ошибка Drag&amp;&amp;Drop</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8408" />
+      <location filename="../UI/UserInterface.py" line="8401" />
       <source>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; is not a file.&lt;/p&gt;</source>
       <translation>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; не является файлом&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8605" />
+      <location filename="../UI/UserInterface.py" line="8598" />
       <source>Upgrade available</source>
       <translation>Доступно обновление</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8606" />
+      <location filename="../UI/UserInterface.py" line="8599" />
       <source>&lt;p&gt;A newer version of the &lt;b&gt;eric-ide&lt;/b&gt; package is available at &lt;a href="{0}/eric-ide/"&gt;PyPI&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Installed: {1}&lt;br/&gt;Available: &lt;b&gt;{2}&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Shall &lt;b&gt;eric-ide&lt;/b&gt; be upgraded?&lt;/p&gt;</source>
       <translation>&lt;p&gt;Новая версия пакета &lt;b&gt;eric-ide&lt;/b&gt; доступна по адресу &lt;a href="{0}/eric-ide/"&gt;PyPI&lt;/a&gt;.&lt;/p&gt;&lt;p&gt; Установлено: {1}&lt;br/&gt;Доступно: &lt;b&gt;{2}&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Должен ли &lt;b&gt;eric-ide&lt;/b&gt; быть обновлен?&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8654" />
+      <location filename="../UI/UserInterface.py" line="8647" />
       <source>First time usage</source>
       <translation>Первое использование</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8655" />
+      <location filename="../UI/UserInterface.py" line="8648" />
       <source>eric has not been configured yet. The configuration dialog will be started.</source>
       <translation>Настройка eric ещё не выполнена. Сейчас будет запущен диалог конфигурации.</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8677" />
+      <location filename="../UI/UserInterface.py" line="8670" />
       <source>Select Workspace Directory</source>
       <translation>Выбор директории рабочей области</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8845" />
+      <location filename="../UI/UserInterface.py" line="8838" />
       <source>Unsaved Data Detected</source>
       <translation>Обнаружены несохраненные данные</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8846" />
+      <location filename="../UI/UserInterface.py" line="8839" />
       <source>Some editors contain unsaved data. Shall these be saved?</source>
       <translation>Некоторые редакторы содержат несохраненные данные. Должны ли они быть сохранены?</translation>
     </message>
     <message>
+      <source>Clean stale crash sessions</source>
+      <translation type="vanished">Очистите устаревшие crash-сеансы</translation>
+    </message>
+    <message>
+      <source>Do you really want to delete these stale crash session files?</source>
+      <translation type="vanished">Вы действительно хотите удалить эти устаревшие файлы crash-сеансов?</translation>
+    </message>
+    <message>
       <source>Found Crash Sessions</source>
       <translation type="vanished">Найдены crash-сеансы</translation>
     </message>
--- a/src/eric7/i18n/eric7_tr.ts	Thu Apr 03 19:50:43 2025 +0200
+++ b/src/eric7/i18n/eric7_tr.ts	Sun Apr 06 11:01:28 2025 +0200
@@ -8730,17 +8730,37 @@
   <context>
     <name>CrashedSessionsSelectionDialog</name>
     <message>
-      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="72" />
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="56" />
+      <source>Clean Crash Sessions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="58" />
+      <source>These crash session files were found. Select the ones to be deleted.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="68" />
+      <source>Found Crash Sessions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="70" />
+      <source>These crash session files were found. Select the one to open. Select 'Cancel' to not open a crash session.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="103" />
       <source>Read Crash Session</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="73" />
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="104" />
       <source>&lt;p&gt;The crash session file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="82" />
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="113" />
       <source>{0}
 Timestamp: {1}
 Project: {2}</source>
@@ -8748,7 +8768,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="87" />
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="118" />
       <source>{0}
 Timestamp: {1}</source>
       <comment>Crash Session, Timestamp</comment>
@@ -8756,13 +8776,13 @@
     </message>
     <message>
       <location filename="../Sessions/CrashedSessionsSelectionDialog.ui" line="0" />
-      <source>Found Crash Sessions</source>
+      <source>Press to remove the selected crash sessions.</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../Sessions/CrashedSessionsSelectionDialog.ui" line="0" />
-      <source>These crash session files were found. Select the one to open. Select 'Cancel' to not open a crash session.</source>
-      <translation type="unfinished" />
+      <source>Remove</source>
+      <translation type="unfinished">Kaldır</translation>
     </message>
   </context>
   <context>
@@ -93756,57 +93776,47 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8030" />
-      <source>Clean stale crash sessions</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../UI/UserInterface.py" line="8031" />
-      <source>Do you really want to delete these stale crash session files?</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../UI/UserInterface.py" line="8407" />
+      <location filename="../UI/UserInterface.py" line="8400" />
       <source>Drop Error</source>
       <translation>Düşme hatası</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8408" />
+      <location filename="../UI/UserInterface.py" line="8401" />
       <source>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; is not a file.&lt;/p&gt;</source>
       <translation>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; bir dosya değil.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8605" />
+      <location filename="../UI/UserInterface.py" line="8598" />
       <source>Upgrade available</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8606" />
+      <location filename="../UI/UserInterface.py" line="8599" />
       <source>&lt;p&gt;A newer version of the &lt;b&gt;eric-ide&lt;/b&gt; package is available at &lt;a href="{0}/eric-ide/"&gt;PyPI&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Installed: {1}&lt;br/&gt;Available: &lt;b&gt;{2}&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Shall &lt;b&gt;eric-ide&lt;/b&gt; be upgraded?&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8654" />
+      <location filename="../UI/UserInterface.py" line="8647" />
       <source>First time usage</source>
       <translation>İlk kullanım</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8655" />
+      <location filename="../UI/UserInterface.py" line="8648" />
       <source>eric has not been configured yet. The configuration dialog will be started.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8677" />
+      <location filename="../UI/UserInterface.py" line="8670" />
       <source>Select Workspace Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8845" />
+      <location filename="../UI/UserInterface.py" line="8838" />
       <source>Unsaved Data Detected</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8846" />
+      <location filename="../UI/UserInterface.py" line="8839" />
       <source>Some editors contain unsaved data. Shall these be saved?</source>
       <translation type="unfinished" />
     </message>
--- a/src/eric7/i18n/eric7_zh_CN.ts	Thu Apr 03 19:50:43 2025 +0200
+++ b/src/eric7/i18n/eric7_zh_CN.ts	Sun Apr 06 11:01:28 2025 +0200
@@ -8741,17 +8741,37 @@
   <context>
     <name>CrashedSessionsSelectionDialog</name>
     <message>
-      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="72" />
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="56" />
+      <source>Clean Crash Sessions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="58" />
+      <source>These crash session files were found. Select the ones to be deleted.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="68" />
+      <source>Found Crash Sessions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="70" />
+      <source>These crash session files were found. Select the one to open. Select 'Cancel' to not open a crash session.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="103" />
       <source>Read Crash Session</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="73" />
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="104" />
       <source>&lt;p&gt;The crash session file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="82" />
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="113" />
       <source>{0}
 Timestamp: {1}
 Project: {2}</source>
@@ -8759,7 +8779,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="87" />
+      <location filename="../Sessions/CrashedSessionsSelectionDialog.py" line="118" />
       <source>{0}
 Timestamp: {1}</source>
       <comment>Crash Session, Timestamp</comment>
@@ -8767,13 +8787,13 @@
     </message>
     <message>
       <location filename="../Sessions/CrashedSessionsSelectionDialog.ui" line="0" />
-      <source>Found Crash Sessions</source>
+      <source>Press to remove the selected crash sessions.</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../Sessions/CrashedSessionsSelectionDialog.ui" line="0" />
-      <source>These crash session files were found. Select the one to open. Select 'Cancel' to not open a crash session.</source>
-      <translation type="unfinished" />
+      <source>Remove</source>
+      <translation type="unfinished">移除</translation>
     </message>
   </context>
   <context>
@@ -93964,57 +93984,47 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8030" />
-      <source>Clean stale crash sessions</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../UI/UserInterface.py" line="8031" />
-      <source>Do you really want to delete these stale crash session files?</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../UI/UserInterface.py" line="8407" />
+      <location filename="../UI/UserInterface.py" line="8400" />
       <source>Drop Error</source>
       <translation>降落误差</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8408" />
+      <location filename="../UI/UserInterface.py" line="8401" />
       <source>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; is not a file.&lt;/p&gt;</source>
       <translation>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; 不是一个文件。&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8605" />
+      <location filename="../UI/UserInterface.py" line="8598" />
       <source>Upgrade available</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8606" />
+      <location filename="../UI/UserInterface.py" line="8599" />
       <source>&lt;p&gt;A newer version of the &lt;b&gt;eric-ide&lt;/b&gt; package is available at &lt;a href="{0}/eric-ide/"&gt;PyPI&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Installed: {1}&lt;br/&gt;Available: &lt;b&gt;{2}&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Shall &lt;b&gt;eric-ide&lt;/b&gt; be upgraded?&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8654" />
+      <location filename="../UI/UserInterface.py" line="8647" />
       <source>First time usage</source>
       <translation>第一次使用</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8655" />
+      <location filename="../UI/UserInterface.py" line="8648" />
       <source>eric has not been configured yet. The configuration dialog will be started.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8677" />
+      <location filename="../UI/UserInterface.py" line="8670" />
       <source>Select Workspace Directory</source>
       <translation>选择工作区目录</translation>
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8845" />
+      <location filename="../UI/UserInterface.py" line="8838" />
       <source>Unsaved Data Detected</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../UI/UserInterface.py" line="8846" />
+      <location filename="../UI/UserInterface.py" line="8839" />
       <source>Some editors contain unsaved data. Shall these be saved?</source>
       <translation type="unfinished" />
     </message>

eric ide

mercurial