Mercurial: added a button to the configuration page to install Mercurial into the eric7 environment. eric7

Sun, 11 Jul 2021 16:29:12 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 11 Jul 2021 16:29:12 +0200
branch
eric7
changeset 8465
59bb8fdeef1b
parent 8464
9058a129177e
child 8466
bb21fd901f49

Mercurial: added a button to the configuration page to install Mercurial into the eric7 environment.

eric7/APIs/Python3/eric7.api file | annotate | diff | comparison | revisions
eric7/Documentation/Help/source.qch file | annotate | diff | comparison | revisions
eric7/Documentation/Help/source.qhp file | annotate | diff | comparison | revisions
eric7/Documentation/Source/eric7.Globals.__init__.html file | annotate | diff | comparison | revisions
eric7/Documentation/Source/eric7.Plugins.PluginWizardQFileDialog.html file | annotate | diff | comparison | revisions
eric7/Documentation/Source/eric7.Plugins.VcsPlugins.vcsMercurial.ConfigurationPage.MercurialPage.html file | annotate | diff | comparison | revisions
eric7/Documentation/Source/eric7.Plugins.WizardPlugins.FileDialogWizard.FileDialogWizardDialog.html file | annotate | diff | comparison | revisions
eric7/Documentation/Source/eric7.Plugins.WizardPlugins.QRegularExpressionWizard.QRegularExpressionWizardDialog.html file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/ConfigurationPage/MercurialPage.py file | annotate | diff | comparison | revisions
eric7/Plugins/VcsPlugins/vcsMercurial/ConfigurationPage/MercurialPage.ui file | annotate | diff | comparison | revisions
eric7/i18n/eric7_cs.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_de.qm file | annotate | diff | comparison | revisions
eric7/i18n/eric7_de.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_empty.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_en.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_es.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_fr.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_it.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_pt.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_ru.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_tr.ts file | annotate | diff | comparison | revisions
eric7/i18n/eric7_zh_CN.ts file | annotate | diff | comparison | revisions
--- a/eric7/APIs/Python3/eric7.api	Sun Jul 11 15:17:16 2021 +0200
+++ b/eric7/APIs/Python3/eric7.api	Sun Jul 11 16:29:12 2021 +0200
@@ -1888,7 +1888,7 @@
 eric7.Globals.desktopName?4()
 eric7.Globals.getConfigDir?4()
 eric7.Globals.getInstallInfoFilePath?4()
-eric7.Globals.getPyQt5ModulesDirectory?4()
+eric7.Globals.getPyQt6ModulesDirectory?4()
 eric7.Globals.getPyQtToolsPath?4(version=5)
 eric7.Globals.getPythonLibraryDirectory?4()
 eric7.Globals.getQtBinariesPath?4()
@@ -4964,6 +4964,7 @@
 eric7.Plugins.VcsPlugins.vcsMercurial.CloseheadExtension.closehead.Closehead?1(vcs)
 eric7.Plugins.VcsPlugins.vcsMercurial.Config.ConfigHgSchemes?7
 eric7.Plugins.VcsPlugins.vcsMercurial.ConfigurationPage.MercurialPage.MercurialPage.on_configButton_clicked?4()
+eric7.Plugins.VcsPlugins.vcsMercurial.ConfigurationPage.MercurialPage.MercurialPage.on_installButton_clicked?4()
 eric7.Plugins.VcsPlugins.vcsMercurial.ConfigurationPage.MercurialPage.MercurialPage.save?4()
 eric7.Plugins.VcsPlugins.vcsMercurial.ConfigurationPage.MercurialPage.MercurialPage?1(plugin)
 eric7.Plugins.VcsPlugins.vcsMercurial.GpgExtension.HgGpgSignDialog.HgGpgSignDialog.getData?4()
Binary file eric7/Documentation/Help/source.qch has changed
--- a/eric7/Documentation/Help/source.qhp	Sun Jul 11 15:17:16 2021 +0200
+++ b/eric7/Documentation/Help/source.qhp	Sun Jul 11 16:29:12 2021 +0200
@@ -9791,7 +9791,9 @@
       <keyword name="MercurialPage" id="MercurialPage" ref="eric7.Plugins.VcsPlugins.vcsMercurial.ConfigurationPage.MercurialPage.html#MercurialPage" />
       <keyword name="MercurialPage (Constructor)" id="MercurialPage (Constructor)" ref="eric7.Plugins.VcsPlugins.vcsMercurial.ConfigurationPage.MercurialPage.html#MercurialPage.__init__" />
       <keyword name="MercurialPage (Module)" id="MercurialPage (Module)" ref="eric7.Plugins.VcsPlugins.vcsMercurial.ConfigurationPage.MercurialPage.html" />
+      <keyword name="MercurialPage.__mercurialInstalled" id="MercurialPage.__mercurialInstalled" ref="eric7.Plugins.VcsPlugins.vcsMercurial.ConfigurationPage.MercurialPage.html#MercurialPage.__mercurialInstalled" />
       <keyword name="MercurialPage.on_configButton_clicked" id="MercurialPage.on_configButton_clicked" ref="eric7.Plugins.VcsPlugins.vcsMercurial.ConfigurationPage.MercurialPage.html#MercurialPage.on_configButton_clicked" />
+      <keyword name="MercurialPage.on_installButton_clicked" id="MercurialPage.on_installButton_clicked" ref="eric7.Plugins.VcsPlugins.vcsMercurial.ConfigurationPage.MercurialPage.html#MercurialPage.on_installButton_clicked" />
       <keyword name="MercurialPage.save" id="MercurialPage.save" ref="eric7.Plugins.VcsPlugins.vcsMercurial.ConfigurationPage.MercurialPage.html#MercurialPage.save" />
       <keyword name="MermaidExtension" id="MermaidExtension" ref="eric7.UI.Previewers.MarkdownExtensions.html#MermaidExtension" />
       <keyword name="MermaidExtension.extendMarkdown" id="MermaidExtension.extendMarkdown" ref="eric7.UI.Previewers.MarkdownExtensions.html#MermaidExtension.extendMarkdown" />
@@ -17996,7 +17998,7 @@
       <keyword name="getProjectBrowserColour" id="getProjectBrowserColour" ref="eric7.Preferences.__init__.html#getProjectBrowserColour" />
       <keyword name="getProjectBrowserFlags" id="getProjectBrowserFlags" ref="eric7.Preferences.__init__.html#getProjectBrowserFlags" />
       <keyword name="getProtobuf" id="getProtobuf" ref="eric7.Preferences.__init__.html#getProtobuf" />
-      <keyword name="getPyQt5ModulesDirectory" id="getPyQt5ModulesDirectory" ref="eric7.Globals.__init__.html#getPyQt5ModulesDirectory" />
+      <keyword name="getPyQt6ModulesDirectory" id="getPyQt6ModulesDirectory" ref="eric7.Globals.__init__.html#getPyQt6ModulesDirectory" />
       <keyword name="getPyQtToolsPath" id="getPyQtToolsPath" ref="eric7.Globals.__init__.html#getPyQtToolsPath" />
       <keyword name="getPython" id="getPython" ref="eric7.Preferences.__init__.html#getPython" />
       <keyword name="getPythonLibPath" id="getPythonLibPath" ref="eric7.Utilities.__init__.html#getPythonLibPath" />
--- a/eric7/Documentation/Source/eric7.Globals.__init__.html	Sun Jul 11 15:17:16 2021 +0200
+++ b/eric7/Documentation/Source/eric7.Globals.__init__.html	Sun Jul 11 16:29:12 2021 +0200
@@ -56,8 +56,8 @@
 <td>Public method to get the path name of the install info file.</td>
 </tr>
 <tr>
-<td><a href="#getPyQt5ModulesDirectory">getPyQt5ModulesDirectory</a></td>
-<td>Function to determine the path to PyQt5 modules directory.</td>
+<td><a href="#getPyQt6ModulesDirectory">getPyQt6ModulesDirectory</a></td>
+<td>Function to determine the path to PyQt6 modules directory.</td>
 </tr>
 <tr>
 <td><a href="#getPyQtToolsPath">getPyQtToolsPath</a></td>
@@ -232,17 +232,17 @@
 <div align="right"><a href="#top">Up</a></div>
 <hr />
 <hr />
-<a NAME="getPyQt5ModulesDirectory" ID="getPyQt5ModulesDirectory"></a>
-<h2>getPyQt5ModulesDirectory</h2>
-<b>getPyQt5ModulesDirectory</b>(<i></i>)
+<a NAME="getPyQt6ModulesDirectory" ID="getPyQt6ModulesDirectory"></a>
+<h2>getPyQt6ModulesDirectory</h2>
+<b>getPyQt6ModulesDirectory</b>(<i></i>)
 
 <p>
-    Function to determine the path to PyQt5 modules directory.
+    Function to determine the path to PyQt6 modules directory.
 </p>
 <dl>
 <dt>Return:</dt>
 <dd>
-path to the PyQt5 modules directory (string)
+path to the PyQt6 modules directory (string)
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
--- a/eric7/Documentation/Source/eric7.Plugins.PluginWizardQFileDialog.html	Sun Jul 11 15:17:16 2021 +0200
+++ b/eric7/Documentation/Source/eric7.Plugins.PluginWizardQFileDialog.html	Sun Jul 11 16:29:12 2021 +0200
@@ -141,7 +141,7 @@
 <dt><i>variant</i> (int)</dt>
 <dd>
 variant of code to be generated
-            (-1 = EricFileDialog, 0 = unknown, 5 = PyQt5)
+            (-1 = EricFileDialog, 0 = unknown, 5 = PyQt5, 6 = PyQt6)
 </dd>
 </dl>
 <dl>
--- a/eric7/Documentation/Source/eric7.Plugins.VcsPlugins.vcsMercurial.ConfigurationPage.MercurialPage.html	Sun Jul 11 15:17:16 2021 +0200
+++ b/eric7/Documentation/Source/eric7.Plugins.VcsPlugins.vcsMercurial.ConfigurationPage.MercurialPage.html	Sun Jul 11 16:29:12 2021 +0200
@@ -73,10 +73,18 @@
 <td>Constructor</td>
 </tr>
 <tr>
+<td><a href="#MercurialPage.__mercurialInstalled">__mercurialInstalled</a></td>
+<td>Private method to check, if mercurial is installed alongside eric7.</td>
+</tr>
+<tr>
 <td><a href="#MercurialPage.on_configButton_clicked">on_configButton_clicked</a></td>
 <td>Private slot to edit the (per user) Mercurial configuration file.</td>
 </tr>
 <tr>
+<td><a href="#MercurialPage.on_installButton_clicked">on_installButton_clicked</a></td>
+<td>Private slot to install Mercurial alongside eric7.</td>
+</tr>
+<tr>
 <td><a href="#MercurialPage.save">save</a></td>
 <td>Public slot to save the Mercurial configuration.</td>
 </tr>
@@ -101,6 +109,13 @@
 reference to the plugin object
 </dd>
 </dl>
+<a NAME="MercurialPage.__mercurialInstalled" ID="MercurialPage.__mercurialInstalled"></a>
+<h4>MercurialPage.__mercurialInstalled</h4>
+<b>__mercurialInstalled</b>(<i></i>)
+
+<p>
+        Private method to check, if mercurial is installed alongside eric7.
+</p>
 <a NAME="MercurialPage.on_configButton_clicked" ID="MercurialPage.on_configButton_clicked"></a>
 <h4>MercurialPage.on_configButton_clicked</h4>
 <b>on_configButton_clicked</b>(<i></i>)
@@ -108,6 +123,13 @@
 <p>
         Private slot to edit the (per user) Mercurial configuration file.
 </p>
+<a NAME="MercurialPage.on_installButton_clicked" ID="MercurialPage.on_installButton_clicked"></a>
+<h4>MercurialPage.on_installButton_clicked</h4>
+<b>on_installButton_clicked</b>(<i></i>)
+
+<p>
+        Private slot to install Mercurial alongside eric7.
+</p>
 <a NAME="MercurialPage.save" ID="MercurialPage.save"></a>
 <h4>MercurialPage.save</h4>
 <b>save</b>(<i></i>)
--- a/eric7/Documentation/Source/eric7.Plugins.WizardPlugins.FileDialogWizard.FileDialogWizardDialog.html	Sun Jul 11 15:17:16 2021 +0200
+++ b/eric7/Documentation/Source/eric7.Plugins.WizardPlugins.FileDialogWizard.FileDialogWizardDialog.html	Sun Jul 11 16:29:12 2021 +0200
@@ -131,7 +131,7 @@
 <dt><i>dialogVariant</i> (int)</dt>
 <dd>
 variant of the file dialog to be generated
-            (-1 = EricFileDialog, 0 = unknown, 5 = PyQt5)
+            (-1 = EricFileDialog, 0 = unknown, 5 = PyQt5, 6 = PyQt6)
 </dd>
 <dt><i>parent</i> (QWidget)</dt>
 <dd>
--- a/eric7/Documentation/Source/eric7.Plugins.WizardPlugins.QRegularExpressionWizard.QRegularExpressionWizardDialog.html	Sun Jul 11 15:17:16 2021 +0200
+++ b/eric7/Documentation/Source/eric7.Plugins.WizardPlugins.QRegularExpressionWizard.QRegularExpressionWizardDialog.html	Sun Jul 11 16:29:12 2021 +0200
@@ -190,11 +190,11 @@
 </tr>
 <tr>
 <td><a href="#QRegularExpressionWizardWidget.__receiveResponse">__receiveResponse</a></td>
-<td>Private method to receive a response from the PyQt5 server.</td>
+<td>Private method to receive a response from the server.</td>
 </tr>
 <tr>
 <td><a href="#QRegularExpressionWizardWidget.__sendCommand">__sendCommand</a></td>
-<td>Private method to send a command to the PyQt5 server.</td>
+<td>Private method to send a command to the server.</td>
 </tr>
 <tr>
 <td><a href="#QRegularExpressionWizardWidget.getCode">getCode</a></td>
@@ -314,7 +314,7 @@
 </tr>
 <tr>
 <td><a href="#QRegularExpressionWizardWidget.shutdown">shutdown</a></td>
-<td>Public method to shut down the PyQt5 server part.</td>
+<td>Public method to shut down the server part.</td>
 </tr>
 </table>
 <h3>Static Methods</h3>
@@ -366,7 +366,7 @@
 <b>__receiveResponse</b>(<i></i>)
 
 <p>
-        Private method to receive a response from the PyQt5 server.
+        Private method to receive a response from the server.
 </p>
 <dl>
 <dt>Return:</dt>
@@ -379,7 +379,7 @@
 <b>__sendCommand</b>(<i>command, **kw</i>)
 
 <p>
-        Private method to send a command to the PyQt5 server.
+        Private method to send a command to the server.
 </p>
 <dl>
 
@@ -646,7 +646,7 @@
 <b>shutdown</b>(<i></i>)
 
 <p>
-        Public method to shut down the PyQt5 server part.
+        Public method to shut down the server part.
 </p>
 <div align="right"><a href="#top">Up</a></div>
 <hr />
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/ConfigurationPage/MercurialPage.py	Sun Jul 11 15:17:16 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/ConfigurationPage/MercurialPage.py	Sun Jul 11 16:29:12 2021 +0200
@@ -7,12 +7,18 @@
 Module implementing the Mercurial configuration page.
 """
 
+import os
+import sys
+
 from PyQt6.QtCore import pyqtSlot
 
+from EricWidgets.EricApplication import ericApp
+
 from Preferences.ConfigurationPages.ConfigurationPageBase import (
     ConfigurationPageBase
 )
 from .Ui_MercurialPage import Ui_MercurialPage
+from .. import HgUtilities
 
 from Utilities import supportedCodecs
 
@@ -36,6 +42,8 @@
         self.encodingComboBox.addItems(sorted(supportedCodecs))
         self.encodingModeComboBox.addItems(["strict", "ignore", "replace"])
         
+        self.installButton.setEnabled(not self.__mercurialInstalled())
+        
         # set initial values
         # global options
         index = self.encodingComboBox.findText(
@@ -121,3 +129,20 @@
         
         dlg = HgUserConfigDialog(version=hgVersion(self.__plugin)[1])
         dlg.exec()
+    
+    @pyqtSlot()
+    def on_installButton_clicked(self):
+        """
+        Private slot to install Mercurial alongside eric7.
+        """
+        pip = ericApp().getObject("Pip")
+        pip.installPackages(["mercurial"], interpreter=sys.executable)
+        self.installButton.setEnabled(not self.__mercurialInstalled())
+    
+    def __mercurialInstalled(self):
+        """
+        Private method to check, if mercurial is installed alongside eric7.
+        """
+        hg = HgUtilities.getHgExecutable()
+        # assume local installation, if the path is absolute
+        return os.path.isabs(hg)
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/ConfigurationPage/MercurialPage.ui	Sun Jul 11 15:17:16 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/ConfigurationPage/MercurialPage.ui	Sun Jul 11 16:29:12 2021 +0200
@@ -10,7 +10,7 @@
     <height>911</height>
    </rect>
   </property>
-  <layout class="QVBoxLayout" name="verticalLayout_5">
+  <layout class="QVBoxLayout" name="verticalLayout">
    <item>
     <widget class="QLabel" name="headerLabel">
      <property name="text">
@@ -349,6 +349,29 @@
     </widget>
    </item>
    <item>
+    <widget class="Line" name="line15_2">
+     <property name="frameShape">
+      <enum>QFrame::HLine</enum>
+     </property>
+     <property name="frameShadow">
+      <enum>QFrame::Sunken</enum>
+     </property>
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QPushButton" name="installButton">
+     <property name="toolTip">
+      <string>Press to install Mercurial alongside eric7</string>
+     </property>
+     <property name="text">
+      <string>Install Mercurial</string>
+     </property>
+    </widget>
+   </item>
+   <item>
     <spacer>
      <property name="orientation">
       <enum>Qt::Vertical</enum>
--- a/eric7/i18n/eric7_cs.ts	Sun Jul 11 15:17:16 2021 +0200
+++ b/eric7/i18n/eric7_cs.ts	Sun Jul 11 16:29:12 2021 +0200
@@ -28714,8 +28714,8 @@
   <context>
     <name>HelpDocsInstaller</name>
     <message>
-      <location filename="../WebBrowser/QtHelp/HelpDocsInstaller.py" line="242" />
-      <location filename="../WebBrowser/QtHelp/HelpDocsInstaller.py" line="178" />
+      <location filename="../WebBrowser/QtHelp/HelpDocsInstaller.py" line="243" />
+      <location filename="../WebBrowser/QtHelp/HelpDocsInstaller.py" line="179" />
       <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be registered. &lt;br/&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
@@ -47896,6 +47896,16 @@
       <source>Edit configuration file</source>
       <translation type="unfinished" />
     </message>
+    <message>
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/ConfigurationPage/MercurialPage.ui" line="0" />
+      <source>Press to install Mercurial alongside eric7</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/ConfigurationPage/MercurialPage.ui" line="0" />
+      <source>Install Mercurial</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>MessageBoxWizard</name>
@@ -48217,52 +48227,52 @@
   <context>
     <name>MicroPythonDevice</name>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="144" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="166" />
       <source>RP2040 based</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="153" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="175" />
       <source>Generic Board</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="256" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="278" />
       <source>Unknown Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="381" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="403" />
       <source>Unsupported Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="391" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="413" />
       <source>REPL is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="410" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="432" />
       <source>Plotter is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="429" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="451" />
       <source>Running scripts is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="449" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="471" />
       <source>File Manager is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="494" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="516" />
       <source>Select Device Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="495" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="517" />
       <source>Select the directory for the connected device:</source>
       <translation type="unfinished" />
     </message>
@@ -57148,9 +57158,9 @@
       <translation>VCS Status</translation>
     </message>
     <message>
-      <location filename="../Project/ProjectBrowserModel.py" line="797" />
-      <location filename="../Project/ProjectBrowserModel.py" line="779" />
-      <location filename="../Project/ProjectBrowserModel.py" line="744" />
+      <location filename="../Project/ProjectBrowserModel.py" line="799" />
+      <location filename="../Project/ProjectBrowserModel.py" line="781" />
+      <location filename="../Project/ProjectBrowserModel.py" line="746" />
       <location filename="../Project/ProjectBrowserModel.py" line="469" />
       <location filename="../Project/ProjectBrowserModel.py" line="395" />
       <source>local</source>
@@ -80482,14 +80492,14 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="436" />
-      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="418" />
-      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="167" />
+      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="437" />
+      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="419" />
+      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="168" />
       <source>Translation Error</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="419" />
+      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="420" />
       <source>The selected translation service does not support the Text-to-Speech function.</source>
       <translation type="unfinished" />
     </message>
@@ -80776,122 +80786,122 @@
       <translation type="unfinished">Obnovit</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="358" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="402" />
       <source>&lt;h3&gt;CircuitPython Board&lt;/h3&gt;&lt;p&gt;In order to prepare the board for flashing follow these steps:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Switch your device to 'bootloader' mode by double-pressing the reset button.&lt;/li&gt;&lt;li&gt;Wait until the device has entered 'bootloader' mode.&lt;/li&gt;&lt;li&gt;(If this does not happen, then try shorter or longer pauses between presses.)&lt;/li&gt;&lt;li&gt;Ensure the boot volume is available (this may require mounting it).&lt;/li&gt;&lt;li&gt;Select the firmware file to be flashed and click the flash button.&lt;/li&gt;&lt;/ol&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="417" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="384" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="461" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="428" />
       <source>&lt;h3&gt;Pi Pico (RP2040) Board&lt;/h3&gt;&lt;p&gt;In order to prepare the board for flashing follow these steps:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Enter 'bootloader' mode (board &lt;b&gt;without&lt;/b&gt; RESET button):&lt;ul&gt;&lt;li&gt;Plug in your board while holding the BOOTSEL button.&lt;/li&gt;&lt;/ul&gt;Enter 'bootloader' mode (board &lt;b&gt;with&lt;/b&gt; RESET button):&lt;ul&gt;&lt;li&gt;hold down RESET&lt;/li&gt;&lt;li&gt;hold down BOOTSEL&lt;/li&gt;&lt;li&gt;release RESET&lt;/li&gt;&lt;li&gt;release BOOTSEL&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Wait until the device has entered 'bootloader' mode.&lt;/li&gt;&lt;li&gt;Ensure the boot volume is available (this may require mounting it).&lt;/li&gt;&lt;li&gt;Select the firmware file to be flashed and click the flash button.&lt;/li&gt;&lt;/ol&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="492" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="536" />
       <source>'{0}' Board</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="523" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="567" />
       <source>MicroPython/CircuitPython Files (*.uf2);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="593" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="580" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="568" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="637" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="624" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="612" />
       <source>Manual Select</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="698" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="662" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="636" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="742" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="706" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="680" />
       <source>Reset Instructions:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="638" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="682" />
       <source>&lt;h4&gt;No known devices detected.&lt;/h4&gt;&lt;p&gt;Follow the appropriate instructions below to set &lt;b&gt;one&lt;/b&gt; board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="665" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="709" />
       <source>&lt;h4&gt;Flash {0} Firmware&lt;/h4&gt;&lt;p&gt;Follow the instructions below to set &lt;b&gt;one&lt;/b&gt; board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;&lt;hr/&gt;{1}</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="675" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="719" />
       <source>&lt;h4&gt;Potentially UF2 capable devices found&lt;/h4&gt;&lt;p&gt;Found these potentially UF2 capable devices:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Follow the instructions below to set &lt;b&gt;one&lt;/b&gt; board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="700" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="744" />
       <source>&lt;h4&gt;No known devices detected.&lt;/h4&gt;&lt;p&gt;Follow the instructions below to set &lt;b&gt;one&lt;/b&gt; board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="712" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="756" />
       <source>Flash Instructions:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="714" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="758" />
       <source>&lt;h4&gt;Flash method 'manual' selected.&lt;/h4&gt;&lt;p&gt;Follow the instructions below to flash a device by entering the data manually.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Change the device to 'bootloader' mode.&lt;/li&gt;&lt;li&gt;Wait until the device has entered 'bootloader' mode.&lt;/li&gt;&lt;li&gt;Ensure the boot volume is available (this may require mounting it) and select its path.&lt;/li&gt;&lt;li&gt;Select the firmware file to be flashed and click the flash button.&lt;/li&gt;&lt;/ol&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="739" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="783" />
       <source>Boot Volume not found:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="741" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="785" />
       <source>&lt;h4&gt;No Boot Volume detected.&lt;/h4&gt;&lt;p&gt;Please ensure that the boot volume of the device to be flashed is available. </source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="747" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="791" />
       <source>This volume should be named &lt;b&gt;{0}&lt;/b&gt;. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="752" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="796" />
       <source>This volume should have one of these names.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="759" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="803" />
       <source>&lt;h4&gt;Reset Instructions&lt;/h4&gt;&lt;p&gt;Follow the instructions below to set the board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="778" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="822" />
       <source>Multiple Boot Volumes found:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="780" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="824" />
       <source>&lt;h4&gt;Multiple Boot Volumes were found&lt;/h4&gt;&lt;p&gt;These volume paths were found.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Please ensure that only one device of a type is ready for flashing. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="799" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="843" />
       <source>Flashing Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="800" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="844" />
       <source>&lt;p&gt;Flashing the selected firmware to the device. Please wait until the device resets automatically.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="807" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="851" />
       <source>Flashing {0}</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="808" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="852" />
       <source>&lt;p&gt;Flashing the {0} firmware to the device. Please wait until the device resets automatically.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
Binary file eric7/i18n/eric7_de.qm has changed
--- a/eric7/i18n/eric7_de.ts	Sun Jul 11 15:17:16 2021 +0200
+++ b/eric7/i18n/eric7_de.ts	Sun Jul 11 16:29:12 2021 +0200
@@ -27395,8 +27395,8 @@
   <context>
     <name>HelpDocsInstaller</name>
     <message>
-      <location filename="../WebBrowser/QtHelp/HelpDocsInstaller.py" line="242" />
-      <location filename="../WebBrowser/QtHelp/HelpDocsInstaller.py" line="178" />
+      <location filename="../WebBrowser/QtHelp/HelpDocsInstaller.py" line="243" />
+      <location filename="../WebBrowser/QtHelp/HelpDocsInstaller.py" line="179" />
       <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be registered. &lt;br/&gt;Reason: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Die Datei &lt;b&gt;{0}&lt;/b&gt; konnte nicht registriert werden.&lt;br/&gt;Ursache: {1}&lt;/p&gt;</translation>
     </message>
@@ -44769,6 +44769,16 @@
       <source>Edit configuration file</source>
       <translation>Konfigurationsdatei editieren</translation>
     </message>
+    <message>
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/ConfigurationPage/MercurialPage.ui" line="0" />
+      <source>Press to install Mercurial alongside eric7</source>
+      <translation>Drücken, um Mercurial zusammen mit eric7 zu installieren</translation>
+    </message>
+    <message>
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/ConfigurationPage/MercurialPage.ui" line="0" />
+      <source>Install Mercurial</source>
+      <translation>Mercurial installieren</translation>
+    </message>
   </context>
   <context>
     <name>MessageBoxWizard</name>
@@ -45086,52 +45096,52 @@
   <context>
     <name>MicroPythonDevice</name>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="144" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="166" />
       <source>RP2040 based</source>
       <translation>RP2040 basiert</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="153" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="175" />
       <source>Generic Board</source>
       <translation>Generisches Board</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="256" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="278" />
       <source>Unknown Device</source>
       <translation>Unbekanntes Gerät</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="381" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="403" />
       <source>Unsupported Device</source>
       <translation>Nicht unterstütztes Gerät</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="391" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="413" />
       <source>REPL is not supported by this device.</source>
       <translation>REPL wird von diesem Gerät nicht unterstützt.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="410" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="432" />
       <source>Plotter is not supported by this device.</source>
       <translation>Der Plotter wird von diesem Gerät nicht unterstützt.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="429" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="451" />
       <source>Running scripts is not supported by this device.</source>
       <translation>Die Ausführung von Skripten wird von diesem Gerät nicht unterstützt.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="449" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="471" />
       <source>File Manager is not supported by this device.</source>
       <translation>Der Dateimanager wird von diesem Gerät nicht unterstützt.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="494" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="516" />
       <source>Select Device Directory</source>
       <translation>Auswahl des Geräteverzeichnis</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="495" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="517" />
       <source>Select the directory for the connected device:</source>
       <translation>Wähle das Verzeichnis für das verbundene Gerät:</translation>
     </message>
@@ -53773,9 +53783,9 @@
       <translation>VCS-Status</translation>
     </message>
     <message>
-      <location filename="../Project/ProjectBrowserModel.py" line="797" />
-      <location filename="../Project/ProjectBrowserModel.py" line="779" />
-      <location filename="../Project/ProjectBrowserModel.py" line="744" />
+      <location filename="../Project/ProjectBrowserModel.py" line="799" />
+      <location filename="../Project/ProjectBrowserModel.py" line="781" />
+      <location filename="../Project/ProjectBrowserModel.py" line="746" />
       <location filename="../Project/ProjectBrowserModel.py" line="469" />
       <location filename="../Project/ProjectBrowserModel.py" line="395" />
       <source>local</source>
@@ -76396,14 +76406,14 @@
       <translation>Drücken, um die Textfelder zu löschen</translation>
     </message>
     <message>
-      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="436" />
-      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="418" />
-      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="167" />
+      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="437" />
+      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="419" />
+      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="168" />
       <source>Translation Error</source>
       <translation>Übersetzungsfehler</translation>
     </message>
     <message>
-      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="419" />
+      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="420" />
       <source>The selected translation service does not support the Text-to-Speech function.</source>
       <translation>Der ausgewählte Übersetzungsdienst unterstützt die Vorlesefunktion nicht.</translation>
     </message>
@@ -76678,122 +76688,122 @@
       <translation>Aktualisieren</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="358" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="402" />
       <source>&lt;h3&gt;CircuitPython Board&lt;/h3&gt;&lt;p&gt;In order to prepare the board for flashing follow these steps:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Switch your device to 'bootloader' mode by double-pressing the reset button.&lt;/li&gt;&lt;li&gt;Wait until the device has entered 'bootloader' mode.&lt;/li&gt;&lt;li&gt;(If this does not happen, then try shorter or longer pauses between presses.)&lt;/li&gt;&lt;li&gt;Ensure the boot volume is available (this may require mounting it).&lt;/li&gt;&lt;li&gt;Select the firmware file to be flashed and click the flash button.&lt;/li&gt;&lt;/ol&gt;</source>
       <translation>&lt;h3&gt;CircuitPython Gerät&lt;/h3&gt;&lt;p&gt;Um das Gerät zum Flashen vorzubereiten, folgen sie den folgenden Schritten:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Aktiviere den 'Bootloader' Modus durch zweimaliges Drücken des Reset Knopfes.&lt;/li&gt;&lt;li&gt;Warten sie, bis das Gerät den 'Bootloader' Modus eingenommen hat.&lt;/li&gt;&lt;li&gt;(Falls dies nicht erfolgt, versuchen sie es mit einer kürzeren oder längeren Pause zwischen den Drücken.)&lt;/li&gt;&lt;li&gt;Stellen sie sicher, dass der Boot Datenträger verfügbar ist (evtl. ist er zu mounten).&lt;/li&gt;&lt;li&gt;Wählen sie die zu flashende Firmwaredatei und klicken sie den Flash Knopf.&lt;/li&gt;&lt;/ol&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="417" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="384" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="461" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="428" />
       <source>&lt;h3&gt;Pi Pico (RP2040) Board&lt;/h3&gt;&lt;p&gt;In order to prepare the board for flashing follow these steps:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Enter 'bootloader' mode (board &lt;b&gt;without&lt;/b&gt; RESET button):&lt;ul&gt;&lt;li&gt;Plug in your board while holding the BOOTSEL button.&lt;/li&gt;&lt;/ul&gt;Enter 'bootloader' mode (board &lt;b&gt;with&lt;/b&gt; RESET button):&lt;ul&gt;&lt;li&gt;hold down RESET&lt;/li&gt;&lt;li&gt;hold down BOOTSEL&lt;/li&gt;&lt;li&gt;release RESET&lt;/li&gt;&lt;li&gt;release BOOTSEL&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Wait until the device has entered 'bootloader' mode.&lt;/li&gt;&lt;li&gt;Ensure the boot volume is available (this may require mounting it).&lt;/li&gt;&lt;li&gt;Select the firmware file to be flashed and click the flash button.&lt;/li&gt;&lt;/ol&gt;</source>
       <translation>&lt;h3&gt;Pi Pico (RP2040) Gerät&lt;/h3&gt;&lt;p&gt;Um das Gerät zum Flashen vorzubereiten, folgen sie den folgenden Schritten:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;'Bootloader' Modus aktivieren (Gerät &lt;b&gt;ohne&lt;/b&gt; RESET Knopf):&lt;ul&gt;&lt;li&gt;Verbinden sie das Gerät während der BOOTSEL Knopf gedrückt gehalten wird.&lt;/li&gt;&lt;/ul&gt;'Bootloader' Modus aktivieren (Gerät &lt;b&gt;mit&lt;/b&gt; RESET Knopf):&lt;ul&gt;&lt;li&gt;RESET drücken und halten&lt;/li&gt;&lt;li&gt;BOOTSEL drücken und halten&lt;/li&gt;&lt;li&gt;RESET loslassen&lt;/li&gt;&lt;li&gt;BOOTSEL loslassen&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Warten sie, bis das Gerät den 'Bootloader' Modus eingenommen hat.&lt;/li&gt;&lt;li&gt;Stellen sie sicher, dass der Boot Datenträger verfügbar ist (evtl. ist er zu mounten).&lt;/li&gt;&lt;li&gt;Wählen sie die zu flashende Firmwaredatei und klicken sie den Flash Knopf.&lt;/li&gt;&lt;/ol&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="492" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="536" />
       <source>'{0}' Board</source>
       <translation>'{0}' Board</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="523" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="567" />
       <source>MicroPython/CircuitPython Files (*.uf2);;All Files (*)</source>
       <translation>MicroPython/CircuitPython Dateien (*.uf2);;Alle Dateien (*)</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="593" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="580" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="568" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="637" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="624" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="612" />
       <source>Manual Select</source>
       <translation>Manuelle Auswahl</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="698" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="662" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="636" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="742" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="706" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="680" />
       <source>Reset Instructions:</source>
       <translation>Reset Instruktionen:</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="638" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="682" />
       <source>&lt;h4&gt;No known devices detected.&lt;/h4&gt;&lt;p&gt;Follow the appropriate instructions below to set &lt;b&gt;one&lt;/b&gt; board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation>&lt;h4&gt;Kein bekanntes Gerät erkannt.&lt;/h4&gt;&lt;p&gt;Folgen sie den entsprechenden Anweisungen, um &lt;b&gt;ein&lt;/b&gt; Gerät in den 'Bootloader' Modus zu versetzen. Drücken sie &lt;b&gt;Aktualisieren&lt;/b&gt;, wenn sie bereit sind.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="665" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="709" />
       <source>&lt;h4&gt;Flash {0} Firmware&lt;/h4&gt;&lt;p&gt;Follow the instructions below to set &lt;b&gt;one&lt;/b&gt; board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;&lt;hr/&gt;{1}</source>
       <translation>&lt;h4&gt;{0} Firmware flashen&lt;/h4&gt;&lt;p&gt;Folgen sie den Anweisungen, um &lt;b&gt;ein&lt;/b&gt; Gerät in den 'Bootloader' Modus zu versetzen. Drücken sie &lt;b&gt;Aktualisieren&lt;/b&gt;, wenn sie bereit sind.&lt;/p&gt;&lt;hr/&gt;{1}</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="675" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="719" />
       <source>&lt;h4&gt;Potentially UF2 capable devices found&lt;/h4&gt;&lt;p&gt;Found these potentially UF2 capable devices:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Follow the instructions below to set &lt;b&gt;one&lt;/b&gt; board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation>&lt;h4&gt;Potentiell UF2 fähige Geräte gefunden&lt;/h4&gt;&lt;p&gt;Es wurde folgende potentiell UF2 fähige Geräte gefunden:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Folgen sie den Anweisungen, um &lt;b&gt;ein&lt;/b&gt; Gerät in den 'Bootloader' Modus zu versetzen. Drücken sie &lt;b&gt;Aktualisieren&lt;/b&gt;, wenn sie bereit sind.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="700" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="744" />
       <source>&lt;h4&gt;No known devices detected.&lt;/h4&gt;&lt;p&gt;Follow the instructions below to set &lt;b&gt;one&lt;/b&gt; board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation>&lt;h4&gt;Keine bekannten Geräte erkannt.&lt;/h4&gt;&lt;p&gt;Folgen sie den Anweisungen, um &lt;b&gt;ein&lt;/b&gt; Gerät in den 'Bootloader' Modus zu versetzen. Drücken sie &lt;b&gt;Aktualisieren&lt;/b&gt;, wenn sie bereit sind.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="712" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="756" />
       <source>Flash Instructions:</source>
       <translation>Flash Instruktionen:</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="714" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="758" />
       <source>&lt;h4&gt;Flash method 'manual' selected.&lt;/h4&gt;&lt;p&gt;Follow the instructions below to flash a device by entering the data manually.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Change the device to 'bootloader' mode.&lt;/li&gt;&lt;li&gt;Wait until the device has entered 'bootloader' mode.&lt;/li&gt;&lt;li&gt;Ensure the boot volume is available (this may require mounting it) and select its path.&lt;/li&gt;&lt;li&gt;Select the firmware file to be flashed and click the flash button.&lt;/li&gt;&lt;/ol&gt;</source>
       <translation>&lt;h4&gt;Flash Method 'manuell' ausgewählt.&lt;/h4&gt;Folgen sie den Anweisungen, um ein Gerät mit manueller Eingabe der Parameter zu flashen.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Bringen sie das Gerät in den 'Bootloader' Modus.&lt;/li&gt;&lt;li&gt;Warten sie, bis das Gerät den 'Bootloader' Modus eingenommen hat.&lt;/li&gt;&lt;li&gt;Stellen sie sicher, dass der Boot Datenträger verfügbar ist (evtl. ist er zu mounten).&lt;/li&gt;&lt;li&gt;Wählen sie die zu flashende Firmwaredatei und klicken sie den Flash Knopf.&lt;/li&gt;&lt;/ol&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="739" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="783" />
       <source>Boot Volume not found:</source>
       <translation>Boot Datenträger nicht gefunden:</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="741" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="785" />
       <source>&lt;h4&gt;No Boot Volume detected.&lt;/h4&gt;&lt;p&gt;Please ensure that the boot volume of the device to be flashed is available. </source>
       <translation>&lt;h4&gt;Es wurde kein Boot Datenträger gefunden.&lt;/h4&gt;&lt;p&gt;Bitte stellen sie sicher, dass der Boot Datenträger für das zu flashende Gerät verfügbar ist. </translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="747" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="791" />
       <source>This volume should be named &lt;b&gt;{0}&lt;/b&gt;. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation>Dieser Datenträger sollte die Bezeichnung &lt;b&gt;{0}&lt;/b&gt; haben. Drücken sie &lt;b&gt;Aktualisieren&lt;/b&gt;, wenn sie bereit sind.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="752" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="796" />
       <source>This volume should have one of these names.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation>Dieser Datenträger sollte eine dieser Bezeichnungen haben.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Drücken sie &lt;b&gt;Aktualisieren&lt;/b&gt;, wenn sie bereit sind.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="759" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="803" />
       <source>&lt;h4&gt;Reset Instructions&lt;/h4&gt;&lt;p&gt;Follow the instructions below to set the board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation>&lt;h4&gt;Reset Instruktionen&lt;/h4&gt;&lt;p&gt;Folgen sie den Anweisungen, um das Gerät in den 'Bootloader' Modus zu versetzen. Drücken sie &lt;b&gt;Aktualisieren&lt;/b&gt;, wenn sie bereit sind.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="778" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="822" />
       <source>Multiple Boot Volumes found:</source>
       <translation>Mehrere Boot Datenträger erkannt:</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="780" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="824" />
       <source>&lt;h4&gt;Multiple Boot Volumes were found&lt;/h4&gt;&lt;p&gt;These volume paths were found.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Please ensure that only one device of a type is ready for flashing. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation>&lt;h4&gt;Mehrere Boot Datenträger wurden erkannt&lt;/h4&gt;&lt;p&gt;Diese Datenträgerpfade wurden erkannt.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Bitte stellen sie sicher, dass nur ein Gerät zum Flashen bereit ist. Drücken sie &lt;b&gt;Aktualisieren&lt;/b&gt;, wenn sie bereit sind.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="799" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="843" />
       <source>Flashing Firmware</source>
       <translation>Flashe Firmware</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="800" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="844" />
       <source>&lt;p&gt;Flashing the selected firmware to the device. Please wait until the device resets automatically.&lt;/p&gt;</source>
       <translation>&lt;p&gt;Flashe die ausgewählte Firmware auf das Gerät. Bitte warten Sie bis sich das Gerät automatisch resettet.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="807" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="851" />
       <source>Flashing {0}</source>
       <translation>Flashe {0}</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="808" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="852" />
       <source>&lt;p&gt;Flashing the {0} firmware to the device. Please wait until the device resets automatically.&lt;/p&gt;</source>
       <translation>&lt;p&gt;Flashe die {0} Firmware auf das Gerät. Bitte warten sie, bis sich das Gerät automatisch resettet.&lt;/p&gt;</translation>
     </message>
--- a/eric7/i18n/eric7_empty.ts	Sun Jul 11 15:17:16 2021 +0200
+++ b/eric7/i18n/eric7_empty.ts	Sun Jul 11 16:29:12 2021 +0200
@@ -27238,8 +27238,8 @@
   <context>
     <name>HelpDocsInstaller</name>
     <message>
-      <location filename="../WebBrowser/QtHelp/HelpDocsInstaller.py" line="242" />
-      <location filename="../WebBrowser/QtHelp/HelpDocsInstaller.py" line="178" />
+      <location filename="../WebBrowser/QtHelp/HelpDocsInstaller.py" line="243" />
+      <location filename="../WebBrowser/QtHelp/HelpDocsInstaller.py" line="179" />
       <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be registered. &lt;br/&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
@@ -44548,6 +44548,16 @@
       <source>Edit configuration file</source>
       <translation type="unfinished" />
     </message>
+    <message>
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/ConfigurationPage/MercurialPage.ui" line="0" />
+      <source>Press to install Mercurial alongside eric7</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/ConfigurationPage/MercurialPage.ui" line="0" />
+      <source>Install Mercurial</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>MessageBoxWizard</name>
@@ -44865,52 +44875,52 @@
   <context>
     <name>MicroPythonDevice</name>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="144" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="166" />
       <source>RP2040 based</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="153" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="175" />
       <source>Generic Board</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="256" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="278" />
       <source>Unknown Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="381" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="403" />
       <source>Unsupported Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="391" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="413" />
       <source>REPL is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="410" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="432" />
       <source>Plotter is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="429" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="451" />
       <source>Running scripts is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="449" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="471" />
       <source>File Manager is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="494" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="516" />
       <source>Select Device Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="495" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="517" />
       <source>Select the directory for the connected device:</source>
       <translation type="unfinished" />
     </message>
@@ -53528,9 +53538,9 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/ProjectBrowserModel.py" line="797" />
-      <location filename="../Project/ProjectBrowserModel.py" line="779" />
-      <location filename="../Project/ProjectBrowserModel.py" line="744" />
+      <location filename="../Project/ProjectBrowserModel.py" line="799" />
+      <location filename="../Project/ProjectBrowserModel.py" line="781" />
+      <location filename="../Project/ProjectBrowserModel.py" line="746" />
       <location filename="../Project/ProjectBrowserModel.py" line="469" />
       <location filename="../Project/ProjectBrowserModel.py" line="395" />
       <source>local</source>
@@ -75848,14 +75858,14 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="436" />
-      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="418" />
-      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="167" />
+      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="437" />
+      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="419" />
+      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="168" />
       <source>Translation Error</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="419" />
+      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="420" />
       <source>The selected translation service does not support the Text-to-Speech function.</source>
       <translation type="unfinished" />
     </message>
@@ -76130,122 +76140,122 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="358" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="402" />
       <source>&lt;h3&gt;CircuitPython Board&lt;/h3&gt;&lt;p&gt;In order to prepare the board for flashing follow these steps:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Switch your device to 'bootloader' mode by double-pressing the reset button.&lt;/li&gt;&lt;li&gt;Wait until the device has entered 'bootloader' mode.&lt;/li&gt;&lt;li&gt;(If this does not happen, then try shorter or longer pauses between presses.)&lt;/li&gt;&lt;li&gt;Ensure the boot volume is available (this may require mounting it).&lt;/li&gt;&lt;li&gt;Select the firmware file to be flashed and click the flash button.&lt;/li&gt;&lt;/ol&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="417" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="384" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="461" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="428" />
       <source>&lt;h3&gt;Pi Pico (RP2040) Board&lt;/h3&gt;&lt;p&gt;In order to prepare the board for flashing follow these steps:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Enter 'bootloader' mode (board &lt;b&gt;without&lt;/b&gt; RESET button):&lt;ul&gt;&lt;li&gt;Plug in your board while holding the BOOTSEL button.&lt;/li&gt;&lt;/ul&gt;Enter 'bootloader' mode (board &lt;b&gt;with&lt;/b&gt; RESET button):&lt;ul&gt;&lt;li&gt;hold down RESET&lt;/li&gt;&lt;li&gt;hold down BOOTSEL&lt;/li&gt;&lt;li&gt;release RESET&lt;/li&gt;&lt;li&gt;release BOOTSEL&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Wait until the device has entered 'bootloader' mode.&lt;/li&gt;&lt;li&gt;Ensure the boot volume is available (this may require mounting it).&lt;/li&gt;&lt;li&gt;Select the firmware file to be flashed and click the flash button.&lt;/li&gt;&lt;/ol&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="492" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="536" />
       <source>'{0}' Board</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="523" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="567" />
       <source>MicroPython/CircuitPython Files (*.uf2);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="593" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="580" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="568" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="637" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="624" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="612" />
       <source>Manual Select</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="698" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="662" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="636" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="742" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="706" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="680" />
       <source>Reset Instructions:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="638" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="682" />
       <source>&lt;h4&gt;No known devices detected.&lt;/h4&gt;&lt;p&gt;Follow the appropriate instructions below to set &lt;b&gt;one&lt;/b&gt; board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="665" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="709" />
       <source>&lt;h4&gt;Flash {0} Firmware&lt;/h4&gt;&lt;p&gt;Follow the instructions below to set &lt;b&gt;one&lt;/b&gt; board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;&lt;hr/&gt;{1}</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="675" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="719" />
       <source>&lt;h4&gt;Potentially UF2 capable devices found&lt;/h4&gt;&lt;p&gt;Found these potentially UF2 capable devices:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Follow the instructions below to set &lt;b&gt;one&lt;/b&gt; board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="700" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="744" />
       <source>&lt;h4&gt;No known devices detected.&lt;/h4&gt;&lt;p&gt;Follow the instructions below to set &lt;b&gt;one&lt;/b&gt; board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="712" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="756" />
       <source>Flash Instructions:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="714" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="758" />
       <source>&lt;h4&gt;Flash method 'manual' selected.&lt;/h4&gt;&lt;p&gt;Follow the instructions below to flash a device by entering the data manually.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Change the device to 'bootloader' mode.&lt;/li&gt;&lt;li&gt;Wait until the device has entered 'bootloader' mode.&lt;/li&gt;&lt;li&gt;Ensure the boot volume is available (this may require mounting it) and select its path.&lt;/li&gt;&lt;li&gt;Select the firmware file to be flashed and click the flash button.&lt;/li&gt;&lt;/ol&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="739" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="783" />
       <source>Boot Volume not found:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="741" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="785" />
       <source>&lt;h4&gt;No Boot Volume detected.&lt;/h4&gt;&lt;p&gt;Please ensure that the boot volume of the device to be flashed is available. </source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="747" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="791" />
       <source>This volume should be named &lt;b&gt;{0}&lt;/b&gt;. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="752" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="796" />
       <source>This volume should have one of these names.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="759" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="803" />
       <source>&lt;h4&gt;Reset Instructions&lt;/h4&gt;&lt;p&gt;Follow the instructions below to set the board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="778" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="822" />
       <source>Multiple Boot Volumes found:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="780" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="824" />
       <source>&lt;h4&gt;Multiple Boot Volumes were found&lt;/h4&gt;&lt;p&gt;These volume paths were found.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Please ensure that only one device of a type is ready for flashing. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="799" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="843" />
       <source>Flashing Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="800" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="844" />
       <source>&lt;p&gt;Flashing the selected firmware to the device. Please wait until the device resets automatically.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="807" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="851" />
       <source>Flashing {0}</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="808" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="852" />
       <source>&lt;p&gt;Flashing the {0} firmware to the device. Please wait until the device resets automatically.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
--- a/eric7/i18n/eric7_en.ts	Sun Jul 11 15:17:16 2021 +0200
+++ b/eric7/i18n/eric7_en.ts	Sun Jul 11 16:29:12 2021 +0200
@@ -27255,8 +27255,8 @@
   <context>
     <name>HelpDocsInstaller</name>
     <message>
-      <location filename="../WebBrowser/QtHelp/HelpDocsInstaller.py" line="242" />
-      <location filename="../WebBrowser/QtHelp/HelpDocsInstaller.py" line="178" />
+      <location filename="../WebBrowser/QtHelp/HelpDocsInstaller.py" line="243" />
+      <location filename="../WebBrowser/QtHelp/HelpDocsInstaller.py" line="179" />
       <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be registered. &lt;br/&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
@@ -44582,6 +44582,16 @@
       <source>Edit configuration file</source>
       <translation type="unfinished" />
     </message>
+    <message>
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/ConfigurationPage/MercurialPage.ui" line="0" />
+      <source>Press to install Mercurial alongside eric7</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/ConfigurationPage/MercurialPage.ui" line="0" />
+      <source>Install Mercurial</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>MessageBoxWizard</name>
@@ -44899,52 +44909,52 @@
   <context>
     <name>MicroPythonDevice</name>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="144" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="166" />
       <source>RP2040 based</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="153" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="175" />
       <source>Generic Board</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="256" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="278" />
       <source>Unknown Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="381" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="403" />
       <source>Unsupported Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="391" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="413" />
       <source>REPL is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="410" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="432" />
       <source>Plotter is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="429" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="451" />
       <source>Running scripts is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="449" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="471" />
       <source>File Manager is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="494" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="516" />
       <source>Select Device Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="495" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="517" />
       <source>Select the directory for the connected device:</source>
       <translation type="unfinished" />
     </message>
@@ -53568,9 +53578,9 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Project/ProjectBrowserModel.py" line="797" />
-      <location filename="../Project/ProjectBrowserModel.py" line="779" />
-      <location filename="../Project/ProjectBrowserModel.py" line="744" />
+      <location filename="../Project/ProjectBrowserModel.py" line="799" />
+      <location filename="../Project/ProjectBrowserModel.py" line="781" />
+      <location filename="../Project/ProjectBrowserModel.py" line="746" />
       <location filename="../Project/ProjectBrowserModel.py" line="469" />
       <location filename="../Project/ProjectBrowserModel.py" line="395" />
       <source>local</source>
@@ -75890,14 +75900,14 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="436" />
-      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="418" />
-      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="167" />
+      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="437" />
+      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="419" />
+      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="168" />
       <source>Translation Error</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="419" />
+      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="420" />
       <source>The selected translation service does not support the Text-to-Speech function.</source>
       <translation type="unfinished" />
     </message>
@@ -76172,122 +76182,122 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="358" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="402" />
       <source>&lt;h3&gt;CircuitPython Board&lt;/h3&gt;&lt;p&gt;In order to prepare the board for flashing follow these steps:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Switch your device to 'bootloader' mode by double-pressing the reset button.&lt;/li&gt;&lt;li&gt;Wait until the device has entered 'bootloader' mode.&lt;/li&gt;&lt;li&gt;(If this does not happen, then try shorter or longer pauses between presses.)&lt;/li&gt;&lt;li&gt;Ensure the boot volume is available (this may require mounting it).&lt;/li&gt;&lt;li&gt;Select the firmware file to be flashed and click the flash button.&lt;/li&gt;&lt;/ol&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="417" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="384" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="461" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="428" />
       <source>&lt;h3&gt;Pi Pico (RP2040) Board&lt;/h3&gt;&lt;p&gt;In order to prepare the board for flashing follow these steps:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Enter 'bootloader' mode (board &lt;b&gt;without&lt;/b&gt; RESET button):&lt;ul&gt;&lt;li&gt;Plug in your board while holding the BOOTSEL button.&lt;/li&gt;&lt;/ul&gt;Enter 'bootloader' mode (board &lt;b&gt;with&lt;/b&gt; RESET button):&lt;ul&gt;&lt;li&gt;hold down RESET&lt;/li&gt;&lt;li&gt;hold down BOOTSEL&lt;/li&gt;&lt;li&gt;release RESET&lt;/li&gt;&lt;li&gt;release BOOTSEL&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Wait until the device has entered 'bootloader' mode.&lt;/li&gt;&lt;li&gt;Ensure the boot volume is available (this may require mounting it).&lt;/li&gt;&lt;li&gt;Select the firmware file to be flashed and click the flash button.&lt;/li&gt;&lt;/ol&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="492" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="536" />
       <source>'{0}' Board</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="523" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="567" />
       <source>MicroPython/CircuitPython Files (*.uf2);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="593" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="580" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="568" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="637" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="624" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="612" />
       <source>Manual Select</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="698" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="662" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="636" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="742" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="706" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="680" />
       <source>Reset Instructions:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="638" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="682" />
       <source>&lt;h4&gt;No known devices detected.&lt;/h4&gt;&lt;p&gt;Follow the appropriate instructions below to set &lt;b&gt;one&lt;/b&gt; board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="665" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="709" />
       <source>&lt;h4&gt;Flash {0} Firmware&lt;/h4&gt;&lt;p&gt;Follow the instructions below to set &lt;b&gt;one&lt;/b&gt; board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;&lt;hr/&gt;{1}</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="675" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="719" />
       <source>&lt;h4&gt;Potentially UF2 capable devices found&lt;/h4&gt;&lt;p&gt;Found these potentially UF2 capable devices:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Follow the instructions below to set &lt;b&gt;one&lt;/b&gt; board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="700" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="744" />
       <source>&lt;h4&gt;No known devices detected.&lt;/h4&gt;&lt;p&gt;Follow the instructions below to set &lt;b&gt;one&lt;/b&gt; board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="712" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="756" />
       <source>Flash Instructions:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="714" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="758" />
       <source>&lt;h4&gt;Flash method 'manual' selected.&lt;/h4&gt;&lt;p&gt;Follow the instructions below to flash a device by entering the data manually.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Change the device to 'bootloader' mode.&lt;/li&gt;&lt;li&gt;Wait until the device has entered 'bootloader' mode.&lt;/li&gt;&lt;li&gt;Ensure the boot volume is available (this may require mounting it) and select its path.&lt;/li&gt;&lt;li&gt;Select the firmware file to be flashed and click the flash button.&lt;/li&gt;&lt;/ol&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="739" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="783" />
       <source>Boot Volume not found:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="741" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="785" />
       <source>&lt;h4&gt;No Boot Volume detected.&lt;/h4&gt;&lt;p&gt;Please ensure that the boot volume of the device to be flashed is available. </source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="747" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="791" />
       <source>This volume should be named &lt;b&gt;{0}&lt;/b&gt;. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="752" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="796" />
       <source>This volume should have one of these names.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="759" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="803" />
       <source>&lt;h4&gt;Reset Instructions&lt;/h4&gt;&lt;p&gt;Follow the instructions below to set the board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="778" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="822" />
       <source>Multiple Boot Volumes found:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="780" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="824" />
       <source>&lt;h4&gt;Multiple Boot Volumes were found&lt;/h4&gt;&lt;p&gt;These volume paths were found.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Please ensure that only one device of a type is ready for flashing. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="799" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="843" />
       <source>Flashing Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="800" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="844" />
       <source>&lt;p&gt;Flashing the selected firmware to the device. Please wait until the device resets automatically.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="807" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="851" />
       <source>Flashing {0}</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="808" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="852" />
       <source>&lt;p&gt;Flashing the {0} firmware to the device. Please wait until the device resets automatically.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
--- a/eric7/i18n/eric7_es.ts	Sun Jul 11 15:17:16 2021 +0200
+++ b/eric7/i18n/eric7_es.ts	Sun Jul 11 16:29:12 2021 +0200
@@ -27397,8 +27397,8 @@
   <context>
     <name>HelpDocsInstaller</name>
     <message>
-      <location filename="../WebBrowser/QtHelp/HelpDocsInstaller.py" line="242" />
-      <location filename="../WebBrowser/QtHelp/HelpDocsInstaller.py" line="178" />
+      <location filename="../WebBrowser/QtHelp/HelpDocsInstaller.py" line="243" />
+      <location filename="../WebBrowser/QtHelp/HelpDocsInstaller.py" line="179" />
       <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be registered. &lt;br/&gt;Reason: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;El archivo &lt;b&gt;{0}&lt;/b&gt; no ha podido ser registrado.&lt;br /&gt;Causa: {1}&lt;/p&gt;</translation>
     </message>
@@ -44772,6 +44772,16 @@
       <source>Edit configuration file</source>
       <translation>Editar archivo de configuración</translation>
     </message>
+    <message>
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/ConfigurationPage/MercurialPage.ui" line="0" />
+      <source>Press to install Mercurial alongside eric7</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/ConfigurationPage/MercurialPage.ui" line="0" />
+      <source>Install Mercurial</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>MessageBoxWizard</name>
@@ -45089,52 +45099,52 @@
   <context>
     <name>MicroPythonDevice</name>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="144" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="166" />
       <source>RP2040 based</source>
       <translation>Basada en RP2040</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="153" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="175" />
       <source>Generic Board</source>
       <translation>Placa Genérica</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="256" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="278" />
       <source>Unknown Device</source>
       <translation>Dispositivo Desconocido</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="381" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="403" />
       <source>Unsupported Device</source>
       <translation>Dispositivo no soportado</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="391" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="413" />
       <source>REPL is not supported by this device.</source>
       <translation>REPL no soportado por este dispositivo.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="410" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="432" />
       <source>Plotter is not supported by this device.</source>
       <translation>Plotter no soportado por este dispositivo.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="429" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="451" />
       <source>Running scripts is not supported by this device.</source>
       <translation>La ejecución de scripts no está soportada por este dispositivo.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="449" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="471" />
       <source>File Manager is not supported by this device.</source>
       <translation>El Gestor de Archovos no está soportado por este dispositivo.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="494" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="516" />
       <source>Select Device Directory</source>
       <translation>Seleccionar Directorio para Dispositivo</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="495" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="517" />
       <source>Select the directory for the connected device:</source>
       <translation>Seleccionar el directorio para el dispositivo conectado:</translation>
     </message>
@@ -53775,9 +53785,9 @@
       <translation>Estatus de VCS</translation>
     </message>
     <message>
-      <location filename="../Project/ProjectBrowserModel.py" line="797" />
-      <location filename="../Project/ProjectBrowserModel.py" line="779" />
-      <location filename="../Project/ProjectBrowserModel.py" line="744" />
+      <location filename="../Project/ProjectBrowserModel.py" line="799" />
+      <location filename="../Project/ProjectBrowserModel.py" line="781" />
+      <location filename="../Project/ProjectBrowserModel.py" line="746" />
       <location filename="../Project/ProjectBrowserModel.py" line="469" />
       <location filename="../Project/ProjectBrowserModel.py" line="395" />
       <source>local</source>
@@ -76384,14 +76394,14 @@
       <translation>Pulsar para borrar los campos de texto</translation>
     </message>
     <message>
-      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="436" />
-      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="418" />
-      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="167" />
+      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="437" />
+      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="419" />
+      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="168" />
       <source>Translation Error</source>
       <translation>Error de Traducción</translation>
     </message>
     <message>
-      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="419" />
+      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="420" />
       <source>The selected translation service does not support the Text-to-Speech function.</source>
       <translation>El servicio de traducción seleccionado no soporta la función de Text-to-Speech.</translation>
     </message>
@@ -76666,122 +76676,122 @@
       <translation>Actualizar</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="358" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="402" />
       <source>&lt;h3&gt;CircuitPython Board&lt;/h3&gt;&lt;p&gt;In order to prepare the board for flashing follow these steps:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Switch your device to 'bootloader' mode by double-pressing the reset button.&lt;/li&gt;&lt;li&gt;Wait until the device has entered 'bootloader' mode.&lt;/li&gt;&lt;li&gt;(If this does not happen, then try shorter or longer pauses between presses.)&lt;/li&gt;&lt;li&gt;Ensure the boot volume is available (this may require mounting it).&lt;/li&gt;&lt;li&gt;Select the firmware file to be flashed and click the flash button.&lt;/li&gt;&lt;/ol&gt;</source>
       <translation>&lt;h3&gt;Placa CircuitPython&lt;/h3&gt;&lt;p&gt;Para preparar la placa para flashear seguir estos pasos:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Cambiar el dispositivo a modo 'bootloader' pulsando dos veces el botón de reset.&lt;/li&gt;&lt;li&gt;Esperar hasta que el dispositivo entre en modo 'bootloader'.&lt;/li&gt;&lt;li&gt;(Si esto no ocurre, intentar pausas entre pulsado más largas o más cortas.)&lt;/li&gt;&lt;li&gt;Asegurar que el volumen de arranque está disponible (esto puede requerir de su montaje).&lt;/li&gt;&lt;li&gt;Seleccionar el archivo de firmware a flashear y hacer click en el botón de flash.&lt;/li&gt;&lt;/ol&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="417" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="384" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="461" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="428" />
       <source>&lt;h3&gt;Pi Pico (RP2040) Board&lt;/h3&gt;&lt;p&gt;In order to prepare the board for flashing follow these steps:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Enter 'bootloader' mode (board &lt;b&gt;without&lt;/b&gt; RESET button):&lt;ul&gt;&lt;li&gt;Plug in your board while holding the BOOTSEL button.&lt;/li&gt;&lt;/ul&gt;Enter 'bootloader' mode (board &lt;b&gt;with&lt;/b&gt; RESET button):&lt;ul&gt;&lt;li&gt;hold down RESET&lt;/li&gt;&lt;li&gt;hold down BOOTSEL&lt;/li&gt;&lt;li&gt;release RESET&lt;/li&gt;&lt;li&gt;release BOOTSEL&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Wait until the device has entered 'bootloader' mode.&lt;/li&gt;&lt;li&gt;Ensure the boot volume is available (this may require mounting it).&lt;/li&gt;&lt;li&gt;Select the firmware file to be flashed and click the flash button.&lt;/li&gt;&lt;/ol&gt;</source>
       <translation>&lt;h3&gt;Placa Pi Pico (RP2040)&lt;/h3&gt;&lt;p&gt;Para preparar la placa para flashing seguir estos pasos:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Entrar en modo 'bootloader' (placa &lt;b&gt;sin&lt;/b&gt; botón RESET):&lt;ul&gt;&lt;li&gt;Conectar la placa mientras se mantiene pulsado el botón BOOTSEL.&lt;/li&gt;&lt;/ul&gt;Entrar en modo 'bootloader' (placa &lt;b&gt;con&lt;/b&gt; botón RESET):&lt;ul&gt;&lt;li&gt;mantener pulsado RESET&lt;/li&gt;&lt;li&gt;mantener pulsado BOOTSEL&lt;/li&gt;&lt;li&gt;soltar RESET&lt;/li&gt;&lt;li&gt;soltar BOOTSEL&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Esperar hasta que el dispositivo haya entrado en modo 'bootloader'.&lt;/li&gt;&lt;li&gt;Asegurar que el volumen de arranque está disponible (esto puedo requerir su montaje).&lt;/li&gt;&lt;li&gt;Seleccionar el archivo de firmware a flashear y hacer click en el botón de flash.&lt;/li&gt;&lt;/ol&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="492" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="536" />
       <source>'{0}' Board</source>
       <translation>Placa '{0}'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="523" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="567" />
       <source>MicroPython/CircuitPython Files (*.uf2);;All Files (*)</source>
       <translation>Archivos MicroPython/CircuitPython(*.uf2);;Todos los Archivos (*)</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="593" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="580" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="568" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="637" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="624" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="612" />
       <source>Manual Select</source>
       <translation>Selección Manual</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="698" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="662" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="636" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="742" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="706" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="680" />
       <source>Reset Instructions:</source>
       <translation>Instrucciones de Reset:</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="638" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="682" />
       <source>&lt;h4&gt;No known devices detected.&lt;/h4&gt;&lt;p&gt;Follow the appropriate instructions below to set &lt;b&gt;one&lt;/b&gt; board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation>&lt;h4&gt;No se han detectado dispositivos conocidos.&lt;/h4&gt;&lt;p&gt;Seguir las instrucciones apropiadas debajo para establecer &lt;b&gt;una&lt;/b&gt; placa en modo 'bootloader'. Pulsar &lt;b&gt;Actualizar&lt;/b&gt; cuando esté listo.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="665" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="709" />
       <source>&lt;h4&gt;Flash {0} Firmware&lt;/h4&gt;&lt;p&gt;Follow the instructions below to set &lt;b&gt;one&lt;/b&gt; board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;&lt;hr/&gt;{1}</source>
       <translation>&lt;h4&gt;Flashear {0} Firmware&lt;/h4&gt;&lt;p&gt;Seguir las instrucciones de bajo para establecer &lt;b&gt;una&lt;/b&gt; placa en modo 'bootloader'. Pulsar &lt;b&gt;Actualizar&lt;/b&gt; cuando esté listo.&lt;/p&gt;&lt;hr/&gt;{1}</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="675" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="719" />
       <source>&lt;h4&gt;Potentially UF2 capable devices found&lt;/h4&gt;&lt;p&gt;Found these potentially UF2 capable devices:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Follow the instructions below to set &lt;b&gt;one&lt;/b&gt; board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation>&lt;h4&gt;Encontrados dispositivos con capacidad potencial UF2&lt;/h4&gt;&lt;p&gt;Encontrados estos dispositivos con capacidad potencial UF2:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Seguir las instrucciones debajo para establecer &lt;b&gt;una&lt;/b&gt; placa en modo 'bootloader' mode. Pulsar &lt;b&gt;Actualizar&lt;/b&gt; cuando esté listo.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="700" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="744" />
       <source>&lt;h4&gt;No known devices detected.&lt;/h4&gt;&lt;p&gt;Follow the instructions below to set &lt;b&gt;one&lt;/b&gt; board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation>&lt;h4&gt;No se han detectado dispositivos conocidos.&lt;/h4&gt;&lt;p&gt;Seguir las instrucciones apropiadas debajo para establecer &lt;b&gt;una&lt;/b&gt; placa en modo 'bootloader'. Pulsar &lt;b&gt;Actualizar&lt;/b&gt; cuando esté listo.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="712" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="756" />
       <source>Flash Instructions:</source>
       <translation>Instrucciones de Flash:</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="714" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="758" />
       <source>&lt;h4&gt;Flash method 'manual' selected.&lt;/h4&gt;&lt;p&gt;Follow the instructions below to flash a device by entering the data manually.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Change the device to 'bootloader' mode.&lt;/li&gt;&lt;li&gt;Wait until the device has entered 'bootloader' mode.&lt;/li&gt;&lt;li&gt;Ensure the boot volume is available (this may require mounting it) and select its path.&lt;/li&gt;&lt;li&gt;Select the firmware file to be flashed and click the flash button.&lt;/li&gt;&lt;/ol&gt;</source>
       <translation>&lt;h4&gt;Seleccionado método 'manual' de Flash.&lt;/h4&gt;&lt;p&gt;Seguir las instrucciones debajo para flashear un dispositivo introduciendo manualmente los datos.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Cambiar el dispositivo a modo 'bootloader'.&lt;/li&gt;&lt;li&gt;Esperar hasta que el dispositivo haya entrado en modo 'bootloader'.&lt;/li&gt;&lt;li&gt;Asegurar que el volumen de arranque está disponible (esto puede requerir de su montaje) y seleccionar su ruta.&lt;/li&gt;&lt;li&gt;Seleccionar el archivo de firmware a flashear y hacer click en el botón de flashear.&lt;/li&gt;&lt;/ol&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="739" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="783" />
       <source>Boot Volume not found:</source>
       <translation>Volumen de Arranque no encontrado:</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="741" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="785" />
       <source>&lt;h4&gt;No Boot Volume detected.&lt;/h4&gt;&lt;p&gt;Please ensure that the boot volume of the device to be flashed is available. </source>
       <translation>&lt;h4&gt;No se ha encontrado un Volumen de Arranque.&lt;/h4&gt;&lt;p&gt;Por favor, asegurar que el volumen de arranque del dispositivo a flashear está disponible. </translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="747" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="791" />
       <source>This volume should be named &lt;b&gt;{0}&lt;/b&gt;. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation>Este volumen se debería llamar &lt;b&gt;{0}&lt;/b&gt;. Pulsar &lt;b&gt;Actualizar&lt;/b&gt; cuando esté listo.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="752" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="796" />
       <source>This volume should have one of these names.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation>Este volumen debería tener uno de los siguientes nombres.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Pulsar &lt;b&gt;Actualizar&lt;/b&gt; cuando esté listo.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="759" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="803" />
       <source>&lt;h4&gt;Reset Instructions&lt;/h4&gt;&lt;p&gt;Follow the instructions below to set the board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation>&lt;h4&gt;Instrucciones para Restablecer&lt;/h4&gt;&lt;p&gt;Seguir las instrucciones de debajo para establecer la placa en modo 'bootloader'. Pulsar &lt;b&gt;Actualizar&lt;/b&gt; cuando esté listo.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="778" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="822" />
       <source>Multiple Boot Volumes found:</source>
       <translation>Múltiples Volúmenes de Arranque encontrados:</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="780" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="824" />
       <source>&lt;h4&gt;Multiple Boot Volumes were found&lt;/h4&gt;&lt;p&gt;These volume paths were found.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Please ensure that only one device of a type is ready for flashing. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation>&lt;h4&gt;Se han encontrado múltiples Volúmes de Arranque&lt;/h4&gt;&lt;p&gt;Esas rutas de volumen se han encontrado.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Por favor, asegurar que solamente un dispositivo de cada tipo está listo para flashear. Pulsar &lt;b&gt;Actualizar&lt;/b&gt; cuando esté listo.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="799" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="843" />
       <source>Flashing Firmware</source>
       <translation>Flasheando Firmware</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="800" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="844" />
       <source>&lt;p&gt;Flashing the selected firmware to the device. Please wait until the device resets automatically.&lt;/p&gt;</source>
       <translation>&lt;p&gt;Flasheando el firmware seleccionado al dispositivo. Por favor, esperar hasta que el dispositivo haga reset automáticamente.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="807" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="851" />
       <source>Flashing {0}</source>
       <translation>Flasheando {0}</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="808" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="852" />
       <source>&lt;p&gt;Flashing the {0} firmware to the device. Please wait until the device resets automatically.&lt;/p&gt;</source>
       <translation>&lt;p&gt;Flasheando el firmware {0} al dispositivo. Por favor, esperar hasta que el dispositivo haga reset automáticamente.&lt;/p&gt;</translation>
     </message>
--- a/eric7/i18n/eric7_fr.ts	Sun Jul 11 15:17:16 2021 +0200
+++ b/eric7/i18n/eric7_fr.ts	Sun Jul 11 16:29:12 2021 +0200
@@ -29192,8 +29192,8 @@
   <context>
     <name>HelpDocsInstaller</name>
     <message>
-      <location filename="../WebBrowser/QtHelp/HelpDocsInstaller.py" line="242" />
-      <location filename="../WebBrowser/QtHelp/HelpDocsInstaller.py" line="178" />
+      <location filename="../WebBrowser/QtHelp/HelpDocsInstaller.py" line="243" />
+      <location filename="../WebBrowser/QtHelp/HelpDocsInstaller.py" line="179" />
       <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be registered. &lt;br/&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
@@ -47962,6 +47962,16 @@
       <source>Edit configuration file</source>
       <translation>Modifier le fichier de configuration</translation>
     </message>
+    <message>
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/ConfigurationPage/MercurialPage.ui" line="0" />
+      <source>Press to install Mercurial alongside eric7</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/ConfigurationPage/MercurialPage.ui" line="0" />
+      <source>Install Mercurial</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>MessageBoxWizard</name>
@@ -48283,52 +48293,52 @@
   <context>
     <name>MicroPythonDevice</name>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="144" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="166" />
       <source>RP2040 based</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="153" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="175" />
       <source>Generic Board</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="256" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="278" />
       <source>Unknown Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="381" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="403" />
       <source>Unsupported Device</source>
       <translation>Matériel non supporté</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="391" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="413" />
       <source>REPL is not supported by this device.</source>
       <translation>REPL n'est pas supporté pour ce matériel.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="410" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="432" />
       <source>Plotter is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="429" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="451" />
       <source>Running scripts is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="449" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="471" />
       <source>File Manager is not supported by this device.</source>
       <translation>Le gestionnaire de fichier n'est pas supporté pour ce matériel.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="494" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="516" />
       <source>Select Device Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="495" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="517" />
       <source>Select the directory for the connected device:</source>
       <translation type="unfinished" />
     </message>
@@ -57278,9 +57288,9 @@
       <translation>VCS Status</translation>
     </message>
     <message>
-      <location filename="../Project/ProjectBrowserModel.py" line="797" />
-      <location filename="../Project/ProjectBrowserModel.py" line="779" />
-      <location filename="../Project/ProjectBrowserModel.py" line="744" />
+      <location filename="../Project/ProjectBrowserModel.py" line="799" />
+      <location filename="../Project/ProjectBrowserModel.py" line="781" />
+      <location filename="../Project/ProjectBrowserModel.py" line="746" />
       <location filename="../Project/ProjectBrowserModel.py" line="469" />
       <location filename="../Project/ProjectBrowserModel.py" line="395" />
       <source>local</source>
@@ -80777,14 +80787,14 @@
       <translation>Cliquer pour effacer les champs textes</translation>
     </message>
     <message>
-      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="436" />
-      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="418" />
-      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="167" />
+      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="437" />
+      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="419" />
+      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="168" />
       <source>Translation Error</source>
       <translation>Erreur de traduction</translation>
     </message>
     <message>
-      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="419" />
+      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="420" />
       <source>The selected translation service does not support the Text-to-Speech function.</source>
       <translation type="unfinished" />
     </message>
@@ -81087,122 +81097,122 @@
       <translation type="unfinished">Rafraichir</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="358" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="402" />
       <source>&lt;h3&gt;CircuitPython Board&lt;/h3&gt;&lt;p&gt;In order to prepare the board for flashing follow these steps:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Switch your device to 'bootloader' mode by double-pressing the reset button.&lt;/li&gt;&lt;li&gt;Wait until the device has entered 'bootloader' mode.&lt;/li&gt;&lt;li&gt;(If this does not happen, then try shorter or longer pauses between presses.)&lt;/li&gt;&lt;li&gt;Ensure the boot volume is available (this may require mounting it).&lt;/li&gt;&lt;li&gt;Select the firmware file to be flashed and click the flash button.&lt;/li&gt;&lt;/ol&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="417" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="384" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="461" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="428" />
       <source>&lt;h3&gt;Pi Pico (RP2040) Board&lt;/h3&gt;&lt;p&gt;In order to prepare the board for flashing follow these steps:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Enter 'bootloader' mode (board &lt;b&gt;without&lt;/b&gt; RESET button):&lt;ul&gt;&lt;li&gt;Plug in your board while holding the BOOTSEL button.&lt;/li&gt;&lt;/ul&gt;Enter 'bootloader' mode (board &lt;b&gt;with&lt;/b&gt; RESET button):&lt;ul&gt;&lt;li&gt;hold down RESET&lt;/li&gt;&lt;li&gt;hold down BOOTSEL&lt;/li&gt;&lt;li&gt;release RESET&lt;/li&gt;&lt;li&gt;release BOOTSEL&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Wait until the device has entered 'bootloader' mode.&lt;/li&gt;&lt;li&gt;Ensure the boot volume is available (this may require mounting it).&lt;/li&gt;&lt;li&gt;Select the firmware file to be flashed and click the flash button.&lt;/li&gt;&lt;/ol&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="492" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="536" />
       <source>'{0}' Board</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="523" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="567" />
       <source>MicroPython/CircuitPython Files (*.uf2);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="593" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="580" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="568" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="637" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="624" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="612" />
       <source>Manual Select</source>
       <translation type="unfinished">Sélection Manuelle</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="698" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="662" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="636" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="742" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="706" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="680" />
       <source>Reset Instructions:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="638" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="682" />
       <source>&lt;h4&gt;No known devices detected.&lt;/h4&gt;&lt;p&gt;Follow the appropriate instructions below to set &lt;b&gt;one&lt;/b&gt; board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="665" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="709" />
       <source>&lt;h4&gt;Flash {0} Firmware&lt;/h4&gt;&lt;p&gt;Follow the instructions below to set &lt;b&gt;one&lt;/b&gt; board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;&lt;hr/&gt;{1}</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="675" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="719" />
       <source>&lt;h4&gt;Potentially UF2 capable devices found&lt;/h4&gt;&lt;p&gt;Found these potentially UF2 capable devices:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Follow the instructions below to set &lt;b&gt;one&lt;/b&gt; board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="700" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="744" />
       <source>&lt;h4&gt;No known devices detected.&lt;/h4&gt;&lt;p&gt;Follow the instructions below to set &lt;b&gt;one&lt;/b&gt; board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="712" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="756" />
       <source>Flash Instructions:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="714" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="758" />
       <source>&lt;h4&gt;Flash method 'manual' selected.&lt;/h4&gt;&lt;p&gt;Follow the instructions below to flash a device by entering the data manually.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Change the device to 'bootloader' mode.&lt;/li&gt;&lt;li&gt;Wait until the device has entered 'bootloader' mode.&lt;/li&gt;&lt;li&gt;Ensure the boot volume is available (this may require mounting it) and select its path.&lt;/li&gt;&lt;li&gt;Select the firmware file to be flashed and click the flash button.&lt;/li&gt;&lt;/ol&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="739" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="783" />
       <source>Boot Volume not found:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="741" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="785" />
       <source>&lt;h4&gt;No Boot Volume detected.&lt;/h4&gt;&lt;p&gt;Please ensure that the boot volume of the device to be flashed is available. </source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="747" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="791" />
       <source>This volume should be named &lt;b&gt;{0}&lt;/b&gt;. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="752" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="796" />
       <source>This volume should have one of these names.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="759" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="803" />
       <source>&lt;h4&gt;Reset Instructions&lt;/h4&gt;&lt;p&gt;Follow the instructions below to set the board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="778" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="822" />
       <source>Multiple Boot Volumes found:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="780" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="824" />
       <source>&lt;h4&gt;Multiple Boot Volumes were found&lt;/h4&gt;&lt;p&gt;These volume paths were found.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Please ensure that only one device of a type is ready for flashing. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="799" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="843" />
       <source>Flashing Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="800" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="844" />
       <source>&lt;p&gt;Flashing the selected firmware to the device. Please wait until the device resets automatically.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="807" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="851" />
       <source>Flashing {0}</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="808" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="852" />
       <source>&lt;p&gt;Flashing the {0} firmware to the device. Please wait until the device resets automatically.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
--- a/eric7/i18n/eric7_it.ts	Sun Jul 11 15:17:16 2021 +0200
+++ b/eric7/i18n/eric7_it.ts	Sun Jul 11 16:29:12 2021 +0200
@@ -29962,8 +29962,8 @@
   <context>
     <name>HelpDocsInstaller</name>
     <message>
-      <location filename="../WebBrowser/QtHelp/HelpDocsInstaller.py" line="242" />
-      <location filename="../WebBrowser/QtHelp/HelpDocsInstaller.py" line="178" />
+      <location filename="../WebBrowser/QtHelp/HelpDocsInstaller.py" line="243" />
+      <location filename="../WebBrowser/QtHelp/HelpDocsInstaller.py" line="179" />
       <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be registered. &lt;br/&gt;Reason: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Il file &lt;b&gt;{0}&lt;/b&gt; non può essere registrato.&lt;br /&gt;Motivo: {1}&lt;/p&gt;</translation>
     </message>
@@ -49850,6 +49850,16 @@
       <source>Edit configuration file</source>
       <translation type="unfinished" />
     </message>
+    <message>
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/ConfigurationPage/MercurialPage.ui" line="0" />
+      <source>Press to install Mercurial alongside eric7</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/ConfigurationPage/MercurialPage.ui" line="0" />
+      <source>Install Mercurial</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>MessageBoxWizard</name>
@@ -50171,52 +50181,52 @@
   <context>
     <name>MicroPythonDevice</name>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="144" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="166" />
       <source>RP2040 based</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="153" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="175" />
       <source>Generic Board</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="256" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="278" />
       <source>Unknown Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="381" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="403" />
       <source>Unsupported Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="391" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="413" />
       <source>REPL is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="410" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="432" />
       <source>Plotter is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="429" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="451" />
       <source>Running scripts is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="449" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="471" />
       <source>File Manager is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="494" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="516" />
       <source>Select Device Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="495" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="517" />
       <source>Select the directory for the connected device:</source>
       <translation type="unfinished" />
     </message>
@@ -59223,9 +59233,9 @@
       <translation>Stato VCS</translation>
     </message>
     <message>
-      <location filename="../Project/ProjectBrowserModel.py" line="797" />
-      <location filename="../Project/ProjectBrowserModel.py" line="779" />
-      <location filename="../Project/ProjectBrowserModel.py" line="744" />
+      <location filename="../Project/ProjectBrowserModel.py" line="799" />
+      <location filename="../Project/ProjectBrowserModel.py" line="781" />
+      <location filename="../Project/ProjectBrowserModel.py" line="746" />
       <location filename="../Project/ProjectBrowserModel.py" line="469" />
       <location filename="../Project/ProjectBrowserModel.py" line="395" />
       <source>local</source>
@@ -82993,14 +83003,14 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="436" />
-      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="418" />
-      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="167" />
+      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="437" />
+      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="419" />
+      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="168" />
       <source>Translation Error</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="419" />
+      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="420" />
       <source>The selected translation service does not support the Text-to-Speech function.</source>
       <translation type="unfinished" />
     </message>
@@ -83295,122 +83305,122 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="358" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="402" />
       <source>&lt;h3&gt;CircuitPython Board&lt;/h3&gt;&lt;p&gt;In order to prepare the board for flashing follow these steps:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Switch your device to 'bootloader' mode by double-pressing the reset button.&lt;/li&gt;&lt;li&gt;Wait until the device has entered 'bootloader' mode.&lt;/li&gt;&lt;li&gt;(If this does not happen, then try shorter or longer pauses between presses.)&lt;/li&gt;&lt;li&gt;Ensure the boot volume is available (this may require mounting it).&lt;/li&gt;&lt;li&gt;Select the firmware file to be flashed and click the flash button.&lt;/li&gt;&lt;/ol&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="417" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="384" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="461" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="428" />
       <source>&lt;h3&gt;Pi Pico (RP2040) Board&lt;/h3&gt;&lt;p&gt;In order to prepare the board for flashing follow these steps:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Enter 'bootloader' mode (board &lt;b&gt;without&lt;/b&gt; RESET button):&lt;ul&gt;&lt;li&gt;Plug in your board while holding the BOOTSEL button.&lt;/li&gt;&lt;/ul&gt;Enter 'bootloader' mode (board &lt;b&gt;with&lt;/b&gt; RESET button):&lt;ul&gt;&lt;li&gt;hold down RESET&lt;/li&gt;&lt;li&gt;hold down BOOTSEL&lt;/li&gt;&lt;li&gt;release RESET&lt;/li&gt;&lt;li&gt;release BOOTSEL&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Wait until the device has entered 'bootloader' mode.&lt;/li&gt;&lt;li&gt;Ensure the boot volume is available (this may require mounting it).&lt;/li&gt;&lt;li&gt;Select the firmware file to be flashed and click the flash button.&lt;/li&gt;&lt;/ol&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="492" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="536" />
       <source>'{0}' Board</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="523" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="567" />
       <source>MicroPython/CircuitPython Files (*.uf2);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="593" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="580" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="568" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="637" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="624" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="612" />
       <source>Manual Select</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="698" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="662" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="636" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="742" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="706" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="680" />
       <source>Reset Instructions:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="638" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="682" />
       <source>&lt;h4&gt;No known devices detected.&lt;/h4&gt;&lt;p&gt;Follow the appropriate instructions below to set &lt;b&gt;one&lt;/b&gt; board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="665" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="709" />
       <source>&lt;h4&gt;Flash {0} Firmware&lt;/h4&gt;&lt;p&gt;Follow the instructions below to set &lt;b&gt;one&lt;/b&gt; board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;&lt;hr/&gt;{1}</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="675" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="719" />
       <source>&lt;h4&gt;Potentially UF2 capable devices found&lt;/h4&gt;&lt;p&gt;Found these potentially UF2 capable devices:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Follow the instructions below to set &lt;b&gt;one&lt;/b&gt; board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="700" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="744" />
       <source>&lt;h4&gt;No known devices detected.&lt;/h4&gt;&lt;p&gt;Follow the instructions below to set &lt;b&gt;one&lt;/b&gt; board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="712" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="756" />
       <source>Flash Instructions:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="714" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="758" />
       <source>&lt;h4&gt;Flash method 'manual' selected.&lt;/h4&gt;&lt;p&gt;Follow the instructions below to flash a device by entering the data manually.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Change the device to 'bootloader' mode.&lt;/li&gt;&lt;li&gt;Wait until the device has entered 'bootloader' mode.&lt;/li&gt;&lt;li&gt;Ensure the boot volume is available (this may require mounting it) and select its path.&lt;/li&gt;&lt;li&gt;Select the firmware file to be flashed and click the flash button.&lt;/li&gt;&lt;/ol&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="739" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="783" />
       <source>Boot Volume not found:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="741" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="785" />
       <source>&lt;h4&gt;No Boot Volume detected.&lt;/h4&gt;&lt;p&gt;Please ensure that the boot volume of the device to be flashed is available. </source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="747" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="791" />
       <source>This volume should be named &lt;b&gt;{0}&lt;/b&gt;. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="752" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="796" />
       <source>This volume should have one of these names.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="759" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="803" />
       <source>&lt;h4&gt;Reset Instructions&lt;/h4&gt;&lt;p&gt;Follow the instructions below to set the board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="778" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="822" />
       <source>Multiple Boot Volumes found:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="780" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="824" />
       <source>&lt;h4&gt;Multiple Boot Volumes were found&lt;/h4&gt;&lt;p&gt;These volume paths were found.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Please ensure that only one device of a type is ready for flashing. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="799" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="843" />
       <source>Flashing Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="800" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="844" />
       <source>&lt;p&gt;Flashing the selected firmware to the device. Please wait until the device resets automatically.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="807" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="851" />
       <source>Flashing {0}</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="808" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="852" />
       <source>&lt;p&gt;Flashing the {0} firmware to the device. Please wait until the device resets automatically.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
--- a/eric7/i18n/eric7_pt.ts	Sun Jul 11 15:17:16 2021 +0200
+++ b/eric7/i18n/eric7_pt.ts	Sun Jul 11 16:29:12 2021 +0200
@@ -29810,8 +29810,8 @@
   <context>
     <name>HelpDocsInstaller</name>
     <message>
-      <location filename="../WebBrowser/QtHelp/HelpDocsInstaller.py" line="242" />
-      <location filename="../WebBrowser/QtHelp/HelpDocsInstaller.py" line="178" />
+      <location filename="../WebBrowser/QtHelp/HelpDocsInstaller.py" line="243" />
+      <location filename="../WebBrowser/QtHelp/HelpDocsInstaller.py" line="179" />
       <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be registered. &lt;br/&gt;Reason: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;O ficheiro &lt;b&gt;{0}&lt;/b&gt; não se pôde registar. &lt;br/&gt;Motivo: {1}&lt;/p&gt;</translation>
     </message>
@@ -49409,6 +49409,16 @@
       <source>Edit configuration file</source>
       <translation>Editar ficheiro de configuração</translation>
     </message>
+    <message>
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/ConfigurationPage/MercurialPage.ui" line="0" />
+      <source>Press to install Mercurial alongside eric7</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/ConfigurationPage/MercurialPage.ui" line="0" />
+      <source>Install Mercurial</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>MessageBoxWizard</name>
@@ -49730,52 +49740,52 @@
   <context>
     <name>MicroPythonDevice</name>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="144" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="166" />
       <source>RP2040 based</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="153" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="175" />
       <source>Generic Board</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="256" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="278" />
       <source>Unknown Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="381" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="403" />
       <source>Unsupported Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="391" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="413" />
       <source>REPL is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="410" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="432" />
       <source>Plotter is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="429" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="451" />
       <source>Running scripts is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="449" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="471" />
       <source>File Manager is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="494" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="516" />
       <source>Select Device Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="495" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="517" />
       <source>Select the directory for the connected device:</source>
       <translation type="unfinished" />
     </message>
@@ -58727,9 +58737,9 @@
       <translation>Estado VCS</translation>
     </message>
     <message>
-      <location filename="../Project/ProjectBrowserModel.py" line="797" />
-      <location filename="../Project/ProjectBrowserModel.py" line="779" />
-      <location filename="../Project/ProjectBrowserModel.py" line="744" />
+      <location filename="../Project/ProjectBrowserModel.py" line="799" />
+      <location filename="../Project/ProjectBrowserModel.py" line="781" />
+      <location filename="../Project/ProjectBrowserModel.py" line="746" />
       <location filename="../Project/ProjectBrowserModel.py" line="469" />
       <location filename="../Project/ProjectBrowserModel.py" line="395" />
       <source>local</source>
@@ -81615,14 +81625,14 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="436" />
-      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="418" />
-      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="167" />
+      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="437" />
+      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="419" />
+      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="168" />
       <source>Translation Error</source>
       <translation>Erro de Tradução</translation>
     </message>
     <message>
-      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="419" />
+      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="420" />
       <source>The selected translation service does not support the Text-to-Speech function.</source>
       <translation>O serviço de tradução selecionado não suporta a função Text-to-Speech.</translation>
     </message>
@@ -81909,122 +81919,122 @@
       <translation type="unfinished">Atualizar</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="358" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="402" />
       <source>&lt;h3&gt;CircuitPython Board&lt;/h3&gt;&lt;p&gt;In order to prepare the board for flashing follow these steps:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Switch your device to 'bootloader' mode by double-pressing the reset button.&lt;/li&gt;&lt;li&gt;Wait until the device has entered 'bootloader' mode.&lt;/li&gt;&lt;li&gt;(If this does not happen, then try shorter or longer pauses between presses.)&lt;/li&gt;&lt;li&gt;Ensure the boot volume is available (this may require mounting it).&lt;/li&gt;&lt;li&gt;Select the firmware file to be flashed and click the flash button.&lt;/li&gt;&lt;/ol&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="417" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="384" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="461" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="428" />
       <source>&lt;h3&gt;Pi Pico (RP2040) Board&lt;/h3&gt;&lt;p&gt;In order to prepare the board for flashing follow these steps:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Enter 'bootloader' mode (board &lt;b&gt;without&lt;/b&gt; RESET button):&lt;ul&gt;&lt;li&gt;Plug in your board while holding the BOOTSEL button.&lt;/li&gt;&lt;/ul&gt;Enter 'bootloader' mode (board &lt;b&gt;with&lt;/b&gt; RESET button):&lt;ul&gt;&lt;li&gt;hold down RESET&lt;/li&gt;&lt;li&gt;hold down BOOTSEL&lt;/li&gt;&lt;li&gt;release RESET&lt;/li&gt;&lt;li&gt;release BOOTSEL&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Wait until the device has entered 'bootloader' mode.&lt;/li&gt;&lt;li&gt;Ensure the boot volume is available (this may require mounting it).&lt;/li&gt;&lt;li&gt;Select the firmware file to be flashed and click the flash button.&lt;/li&gt;&lt;/ol&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="492" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="536" />
       <source>'{0}' Board</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="523" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="567" />
       <source>MicroPython/CircuitPython Files (*.uf2);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="593" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="580" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="568" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="637" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="624" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="612" />
       <source>Manual Select</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="698" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="662" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="636" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="742" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="706" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="680" />
       <source>Reset Instructions:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="638" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="682" />
       <source>&lt;h4&gt;No known devices detected.&lt;/h4&gt;&lt;p&gt;Follow the appropriate instructions below to set &lt;b&gt;one&lt;/b&gt; board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="665" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="709" />
       <source>&lt;h4&gt;Flash {0} Firmware&lt;/h4&gt;&lt;p&gt;Follow the instructions below to set &lt;b&gt;one&lt;/b&gt; board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;&lt;hr/&gt;{1}</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="675" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="719" />
       <source>&lt;h4&gt;Potentially UF2 capable devices found&lt;/h4&gt;&lt;p&gt;Found these potentially UF2 capable devices:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Follow the instructions below to set &lt;b&gt;one&lt;/b&gt; board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="700" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="744" />
       <source>&lt;h4&gt;No known devices detected.&lt;/h4&gt;&lt;p&gt;Follow the instructions below to set &lt;b&gt;one&lt;/b&gt; board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="712" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="756" />
       <source>Flash Instructions:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="714" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="758" />
       <source>&lt;h4&gt;Flash method 'manual' selected.&lt;/h4&gt;&lt;p&gt;Follow the instructions below to flash a device by entering the data manually.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Change the device to 'bootloader' mode.&lt;/li&gt;&lt;li&gt;Wait until the device has entered 'bootloader' mode.&lt;/li&gt;&lt;li&gt;Ensure the boot volume is available (this may require mounting it) and select its path.&lt;/li&gt;&lt;li&gt;Select the firmware file to be flashed and click the flash button.&lt;/li&gt;&lt;/ol&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="739" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="783" />
       <source>Boot Volume not found:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="741" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="785" />
       <source>&lt;h4&gt;No Boot Volume detected.&lt;/h4&gt;&lt;p&gt;Please ensure that the boot volume of the device to be flashed is available. </source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="747" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="791" />
       <source>This volume should be named &lt;b&gt;{0}&lt;/b&gt;. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="752" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="796" />
       <source>This volume should have one of these names.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="759" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="803" />
       <source>&lt;h4&gt;Reset Instructions&lt;/h4&gt;&lt;p&gt;Follow the instructions below to set the board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="778" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="822" />
       <source>Multiple Boot Volumes found:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="780" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="824" />
       <source>&lt;h4&gt;Multiple Boot Volumes were found&lt;/h4&gt;&lt;p&gt;These volume paths were found.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Please ensure that only one device of a type is ready for flashing. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="799" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="843" />
       <source>Flashing Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="800" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="844" />
       <source>&lt;p&gt;Flashing the selected firmware to the device. Please wait until the device resets automatically.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="807" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="851" />
       <source>Flashing {0}</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="808" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="852" />
       <source>&lt;p&gt;Flashing the {0} firmware to the device. Please wait until the device resets automatically.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
--- a/eric7/i18n/eric7_ru.ts	Sun Jul 11 15:17:16 2021 +0200
+++ b/eric7/i18n/eric7_ru.ts	Sun Jul 11 16:29:12 2021 +0200
@@ -27437,8 +27437,8 @@
   <context>
     <name>HelpDocsInstaller</name>
     <message>
-      <location filename="../WebBrowser/QtHelp/HelpDocsInstaller.py" line="242" />
-      <location filename="../WebBrowser/QtHelp/HelpDocsInstaller.py" line="178" />
+      <location filename="../WebBrowser/QtHelp/HelpDocsInstaller.py" line="243" />
+      <location filename="../WebBrowser/QtHelp/HelpDocsInstaller.py" line="179" />
       <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be registered. &lt;br/&gt;Reason: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Невозможно зарегистрировать файл &lt;b&gt;{0}&lt;/b&gt;.&lt;br&gt;Причина: {1}&lt;/p&gt;</translation>
     </message>
@@ -44829,6 +44829,16 @@
       <source>Edit configuration file</source>
       <translation>Редактирование файла конфигурации</translation>
     </message>
+    <message>
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/ConfigurationPage/MercurialPage.ui" line="0" />
+      <source>Press to install Mercurial alongside eric7</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/ConfigurationPage/MercurialPage.ui" line="0" />
+      <source>Install Mercurial</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>MessageBoxWizard</name>
@@ -45147,52 +45157,52 @@
   <context>
     <name>MicroPythonDevice</name>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="144" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="166" />
       <source>RP2040 based</source>
       <translation>На базе RP2040</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="153" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="175" />
       <source>Generic Board</source>
       <translation>Универсальная плата</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="256" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="278" />
       <source>Unknown Device</source>
       <translation>Неизвестное устройство</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="381" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="403" />
       <source>Unsupported Device</source>
       <translation>Неподдерживаемое устройство</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="391" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="413" />
       <source>REPL is not supported by this device.</source>
       <translation>REPL не поддерживается этим устройством.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="410" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="432" />
       <source>Plotter is not supported by this device.</source>
       <translation>Плоттер не поддерживается этим устройством.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="429" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="451" />
       <source>Running scripts is not supported by this device.</source>
       <translation>Выполнение скриптов не поддерживается этим устройством.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="449" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="471" />
       <source>File Manager is not supported by this device.</source>
       <translation>Менеджер файлов не поддерживается этим устройством.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="494" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="516" />
       <source>Select Device Directory</source>
       <translation>Выберите директорию устройства</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="495" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="517" />
       <source>Select the directory for the connected device:</source>
       <translation>Выберите директорию для подсоединенного устройства:</translation>
     </message>
@@ -53869,9 +53879,9 @@
       <translation>Статус VCS</translation>
     </message>
     <message>
-      <location filename="../Project/ProjectBrowserModel.py" line="797" />
-      <location filename="../Project/ProjectBrowserModel.py" line="779" />
-      <location filename="../Project/ProjectBrowserModel.py" line="744" />
+      <location filename="../Project/ProjectBrowserModel.py" line="799" />
+      <location filename="../Project/ProjectBrowserModel.py" line="781" />
+      <location filename="../Project/ProjectBrowserModel.py" line="746" />
       <location filename="../Project/ProjectBrowserModel.py" line="469" />
       <location filename="../Project/ProjectBrowserModel.py" line="395" />
       <source>local</source>
@@ -76544,14 +76554,14 @@
       <translation>Очистить текстовые поля</translation>
     </message>
     <message>
-      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="436" />
-      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="418" />
-      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="167" />
+      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="437" />
+      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="419" />
+      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="168" />
       <source>Translation Error</source>
       <translation>Ошибка перевода</translation>
     </message>
     <message>
-      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="419" />
+      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="420" />
       <source>The selected translation service does not support the Text-to-Speech function.</source>
       <translation>Выбранный сервис перевода не поддерживает функцию Text-to-Speech.</translation>
     </message>
@@ -76826,122 +76836,122 @@
       <translation>Освежить</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="358" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="402" />
       <source>&lt;h3&gt;CircuitPython Board&lt;/h3&gt;&lt;p&gt;In order to prepare the board for flashing follow these steps:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Switch your device to 'bootloader' mode by double-pressing the reset button.&lt;/li&gt;&lt;li&gt;Wait until the device has entered 'bootloader' mode.&lt;/li&gt;&lt;li&gt;(If this does not happen, then try shorter or longer pauses between presses.)&lt;/li&gt;&lt;li&gt;Ensure the boot volume is available (this may require mounting it).&lt;/li&gt;&lt;li&gt;Select the firmware file to be flashed and click the flash button.&lt;/li&gt;&lt;/ol&gt;</source>
       <translation>&lt;h3&gt;Плата CircuitPython&lt;/h3&gt;&lt;p&gt;Для подготовки платы к прошивке выполните следующие действия:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Переключите устройство в режим 'bootloader' двойным нажатием кнопки RESET.&lt;/li&gt;&lt;li&gt;Подождите, пока устройство не перейдет в режим 'bootloader'.&lt;/li&gt;&lt;li&gt;(Если этого не произошло, попробуйте сделать паузы между нажатиями короче или длинее.)&lt;/li&gt;&lt;li&gt;Убедитесь, что загрузочный том доступен (для этого может потребоваться его установка).&lt;/li&gt;&lt;li&gt;Выберите файл микрокода для прошивки и нажмите кнопку прошивки.&lt;/li&gt;&lt;/ol&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="417" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="384" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="461" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="428" />
       <source>&lt;h3&gt;Pi Pico (RP2040) Board&lt;/h3&gt;&lt;p&gt;In order to prepare the board for flashing follow these steps:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Enter 'bootloader' mode (board &lt;b&gt;without&lt;/b&gt; RESET button):&lt;ul&gt;&lt;li&gt;Plug in your board while holding the BOOTSEL button.&lt;/li&gt;&lt;/ul&gt;Enter 'bootloader' mode (board &lt;b&gt;with&lt;/b&gt; RESET button):&lt;ul&gt;&lt;li&gt;hold down RESET&lt;/li&gt;&lt;li&gt;hold down BOOTSEL&lt;/li&gt;&lt;li&gt;release RESET&lt;/li&gt;&lt;li&gt;release BOOTSEL&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Wait until the device has entered 'bootloader' mode.&lt;/li&gt;&lt;li&gt;Ensure the boot volume is available (this may require mounting it).&lt;/li&gt;&lt;li&gt;Select the firmware file to be flashed and click the flash button.&lt;/li&gt;&lt;/ol&gt;</source>
       <translation>&lt;h3&gt;Плата Pi Pico (RP2040)&lt;/h3&gt;&lt;p&gt;Для подготовки платы к прошивке выполните следующие действия:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Установите режим 'bootloader' (плата &lt;b&gt;без&lt;/b&gt; кнопки RESET):&lt;ul&gt;&lt;li&gt;Подключите плату удерживая кнопку BOOTSEL.&lt;/li&gt;&lt;/ul&gt;Установите режим 'bootloader' (плата &lt;b&gt;с&lt;/b&gt; кнопкой RESET):&lt;ul&gt;&lt;li&gt;удерживайте кнопку RESET&lt;/li&gt;&lt;li&gt;удерживайте кнопку BOOTSEL&lt;/li&gt;&lt;li&gt;отпустите RESET&lt;/li&gt;&lt;li&gt;отпустите BOOTSEL&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Подождите, пока устройство не перейдет в режим 'bootloader'.&lt;/li&gt;&lt;li&gt;Убедитесь, что загрузочный том доступен (может потребоваться его установка).&lt;/li&gt;&lt;li&gt;Выберите файл микрокода для прошивки и нажмите кнопку прошивки.&lt;/li&gt;&lt;/ol&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="492" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="536" />
       <source>'{0}' Board</source>
       <translation>Плата '{0}'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="523" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="567" />
       <source>MicroPython/CircuitPython Files (*.uf2);;All Files (*)</source>
       <translation>Файлы MicroPython/CircuitPython (*.uf2);;Все файлы (*)</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="593" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="580" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="568" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="637" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="624" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="612" />
       <source>Manual Select</source>
       <translation>Ручной выбор</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="698" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="662" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="636" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="742" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="706" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="680" />
       <source>Reset Instructions:</source>
       <translation>Инструкции по перезагрузке:</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="638" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="682" />
       <source>&lt;h4&gt;No known devices detected.&lt;/h4&gt;&lt;p&gt;Follow the appropriate instructions below to set &lt;b&gt;one&lt;/b&gt; board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation>&lt;h4&gt;Известные устройства не обнаружены.&lt;/h4&gt;&lt;p&gt;Следуйте указанным ниже инструкциям для установки &lt;b&gt;одной&lt;/b&gt; платы в режим 'bootloader'. По готовности нажмите &lt;b&gt;Освежить&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="665" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="709" />
       <source>&lt;h4&gt;Flash {0} Firmware&lt;/h4&gt;&lt;p&gt;Follow the instructions below to set &lt;b&gt;one&lt;/b&gt; board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;&lt;hr/&gt;{1}</source>
       <translation>&lt;h4&gt;Загрузить прошивку {0}&lt;/h4&gt;&lt;p&gt;Следуйте указанным ниже инструкциям для установки &lt;b&gt;одной&lt;/b&gt; платы в режим 'bootloader'. По готовности нажмите кнопку &lt;b&gt;Освежить&lt;/b&gt;.&lt;/p&gt;&lt;hr/&gt;{1}</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="675" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="719" />
       <source>&lt;h4&gt;Potentially UF2 capable devices found&lt;/h4&gt;&lt;p&gt;Found these potentially UF2 capable devices:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Follow the instructions below to set &lt;b&gt;one&lt;/b&gt; board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation>&lt;h4&gt;Обнаружены устройства, потенциально поддерживающие UF2&lt;/h4&gt;&lt;p&gt;Найдены следующие устройства, возможно поддерживающие UF2:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Следуйте приведенным ниже инструкциям для установки &lt;b&gt;одной&lt;/b&gt; платы в режим 'bootloader'. По готовности нажмите кнопку &lt;b&gt;Освежить&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="700" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="744" />
       <source>&lt;h4&gt;No known devices detected.&lt;/h4&gt;&lt;p&gt;Follow the instructions below to set &lt;b&gt;one&lt;/b&gt; board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation>&lt;h4&gt;Известные устройства не обнаружены.&lt;/h4&gt;&lt;p&gt;Следуйте указанным ниже инструкциям для установки &lt;b&gt;одной&lt;/b&gt; платы в режим 'bootloader'. По готовности нажмите &lt;b&gt;Освежить&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="712" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="756" />
       <source>Flash Instructions:</source>
       <translation>Инструкции для прошивки:</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="714" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="758" />
       <source>&lt;h4&gt;Flash method 'manual' selected.&lt;/h4&gt;&lt;p&gt;Follow the instructions below to flash a device by entering the data manually.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Change the device to 'bootloader' mode.&lt;/li&gt;&lt;li&gt;Wait until the device has entered 'bootloader' mode.&lt;/li&gt;&lt;li&gt;Ensure the boot volume is available (this may require mounting it) and select its path.&lt;/li&gt;&lt;li&gt;Select the firmware file to be flashed and click the flash button.&lt;/li&gt;&lt;/ol&gt;</source>
       <translation>&lt;h4&gt;Выбран метод прошивки 'ручной'.&lt;/h4&gt;&lt;p&gt;Чтобы прошить устройство путем ввода данных вручную следуйте приведенным ниже инструкциям .&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Переведите устройство в режим 'bootloader'.&lt;/li&gt;&lt;li&gt;Подождите, пока устройство не перейдет в режим 'bootloader'.&lt;/li&gt;&lt;li&gt;Убедитесь, что загрузочный том доступен (для этого может потребоваться его установка), и выберите путь к нему.&lt;/li&gt;&lt;li&gt;Выберите файл микрокода для прошивки и нажмите кнопку прошивки.&lt;/li&gt;&lt;/ol&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="739" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="783" />
       <source>Boot Volume not found:</source>
       <translation>Загрузочный том не найден:</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="741" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="785" />
       <source>&lt;h4&gt;No Boot Volume detected.&lt;/h4&gt;&lt;p&gt;Please ensure that the boot volume of the device to be flashed is available. </source>
       <translation>&lt;h4&gt;Не обнаружен загрузочный том.&lt;/h4&gt;&lt;p&gt;Пожалуйста убедитесь, что загрузочный том устройства доступен для прошивки. </translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="747" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="791" />
       <source>This volume should be named &lt;b&gt;{0}&lt;/b&gt;. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation>Этот том должен иметь имя &lt;b&gt;{0}&lt;/b&gt;. По готовности нажмите &lt;b&gt;Освежить&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="752" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="796" />
       <source>This volume should have one of these names.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation>Этот том должен иметь одно из этих имен.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;По готовности нажмите &lt;b&gt;Освежить&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="759" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="803" />
       <source>&lt;h4&gt;Reset Instructions&lt;/h4&gt;&lt;p&gt;Follow the instructions below to set the board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation>&lt;h4&gt;Инструкции по сбросу&lt;/h4&gt;&lt;p&gt;Следуйте указанным ниже инструкциям для установки платы в режим 'bootloader'. По готовности нажмите &lt;b&gt;Освежить&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="778" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="822" />
       <source>Multiple Boot Volumes found:</source>
       <translation>Обнаружены несколько загрузочных томов:</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="780" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="824" />
       <source>&lt;h4&gt;Multiple Boot Volumes were found&lt;/h4&gt;&lt;p&gt;These volume paths were found.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Please ensure that only one device of a type is ready for flashing. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation>&lt;h4&gt;Обнаружены несколько загрузочных томов&lt;/h4&gt;&lt;p&gt;Были найдены пути к этим томам.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Убедитесь, что только одно устройство определенного типа готово для прошивки. По готовности нажмите &lt;b&gt;Освежить&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="799" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="843" />
       <source>Flashing Firmware</source>
       <translation>Прошивка микрокода</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="800" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="844" />
       <source>&lt;p&gt;Flashing the selected firmware to the device. Please wait until the device resets automatically.&lt;/p&gt;</source>
       <translation>&lt;p&gt;Прошивка выбранного микрокода на устройство. Подождите, пока устройство не перезагрузится автоматически.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="807" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="851" />
       <source>Flashing {0}</source>
       <translation>Прошивка {0}</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="808" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="852" />
       <source>&lt;p&gt;Flashing the {0} firmware to the device. Please wait until the device resets automatically.&lt;/p&gt;</source>
       <translation>&lt;p&gt;Прошивка микрокода {0} на устройство. Подождите, пока устройство не перезагрузится автоматически.&lt;/p&gt;</translation>
     </message>
--- a/eric7/i18n/eric7_tr.ts	Sun Jul 11 15:17:16 2021 +0200
+++ b/eric7/i18n/eric7_tr.ts	Sun Jul 11 16:29:12 2021 +0200
@@ -28823,8 +28823,8 @@
   <context>
     <name>HelpDocsInstaller</name>
     <message>
-      <location filename="../WebBrowser/QtHelp/HelpDocsInstaller.py" line="242" />
-      <location filename="../WebBrowser/QtHelp/HelpDocsInstaller.py" line="178" />
+      <location filename="../WebBrowser/QtHelp/HelpDocsInstaller.py" line="243" />
+      <location filename="../WebBrowser/QtHelp/HelpDocsInstaller.py" line="179" />
       <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be registered. &lt;br/&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
@@ -48216,6 +48216,16 @@
       <source>Edit configuration file</source>
       <translation type="unfinished" />
     </message>
+    <message>
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/ConfigurationPage/MercurialPage.ui" line="0" />
+      <source>Press to install Mercurial alongside eric7</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/ConfigurationPage/MercurialPage.ui" line="0" />
+      <source>Install Mercurial</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>MessageBoxWizard</name>
@@ -48537,52 +48547,52 @@
   <context>
     <name>MicroPythonDevice</name>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="144" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="166" />
       <source>RP2040 based</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="153" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="175" />
       <source>Generic Board</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="256" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="278" />
       <source>Unknown Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="381" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="403" />
       <source>Unsupported Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="391" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="413" />
       <source>REPL is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="410" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="432" />
       <source>Plotter is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="429" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="451" />
       <source>Running scripts is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="449" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="471" />
       <source>File Manager is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="494" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="516" />
       <source>Select Device Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="495" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="517" />
       <source>Select the directory for the connected device:</source>
       <translation type="unfinished" />
     </message>
@@ -57443,9 +57453,9 @@
       <translation>VCS Durumu</translation>
     </message>
     <message>
-      <location filename="../Project/ProjectBrowserModel.py" line="797" />
-      <location filename="../Project/ProjectBrowserModel.py" line="779" />
-      <location filename="../Project/ProjectBrowserModel.py" line="744" />
+      <location filename="../Project/ProjectBrowserModel.py" line="799" />
+      <location filename="../Project/ProjectBrowserModel.py" line="781" />
+      <location filename="../Project/ProjectBrowserModel.py" line="746" />
       <location filename="../Project/ProjectBrowserModel.py" line="469" />
       <location filename="../Project/ProjectBrowserModel.py" line="395" />
       <source>local</source>
@@ -80447,14 +80457,14 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="436" />
-      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="418" />
-      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="167" />
+      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="437" />
+      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="419" />
+      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="168" />
       <source>Translation Error</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="419" />
+      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="420" />
       <source>The selected translation service does not support the Text-to-Speech function.</source>
       <translation type="unfinished" />
     </message>
@@ -80749,122 +80759,122 @@
       <translation type="unfinished">Tazele</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="358" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="402" />
       <source>&lt;h3&gt;CircuitPython Board&lt;/h3&gt;&lt;p&gt;In order to prepare the board for flashing follow these steps:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Switch your device to 'bootloader' mode by double-pressing the reset button.&lt;/li&gt;&lt;li&gt;Wait until the device has entered 'bootloader' mode.&lt;/li&gt;&lt;li&gt;(If this does not happen, then try shorter or longer pauses between presses.)&lt;/li&gt;&lt;li&gt;Ensure the boot volume is available (this may require mounting it).&lt;/li&gt;&lt;li&gt;Select the firmware file to be flashed and click the flash button.&lt;/li&gt;&lt;/ol&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="417" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="384" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="461" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="428" />
       <source>&lt;h3&gt;Pi Pico (RP2040) Board&lt;/h3&gt;&lt;p&gt;In order to prepare the board for flashing follow these steps:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Enter 'bootloader' mode (board &lt;b&gt;without&lt;/b&gt; RESET button):&lt;ul&gt;&lt;li&gt;Plug in your board while holding the BOOTSEL button.&lt;/li&gt;&lt;/ul&gt;Enter 'bootloader' mode (board &lt;b&gt;with&lt;/b&gt; RESET button):&lt;ul&gt;&lt;li&gt;hold down RESET&lt;/li&gt;&lt;li&gt;hold down BOOTSEL&lt;/li&gt;&lt;li&gt;release RESET&lt;/li&gt;&lt;li&gt;release BOOTSEL&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Wait until the device has entered 'bootloader' mode.&lt;/li&gt;&lt;li&gt;Ensure the boot volume is available (this may require mounting it).&lt;/li&gt;&lt;li&gt;Select the firmware file to be flashed and click the flash button.&lt;/li&gt;&lt;/ol&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="492" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="536" />
       <source>'{0}' Board</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="523" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="567" />
       <source>MicroPython/CircuitPython Files (*.uf2);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="593" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="580" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="568" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="637" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="624" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="612" />
       <source>Manual Select</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="698" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="662" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="636" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="742" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="706" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="680" />
       <source>Reset Instructions:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="638" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="682" />
       <source>&lt;h4&gt;No known devices detected.&lt;/h4&gt;&lt;p&gt;Follow the appropriate instructions below to set &lt;b&gt;one&lt;/b&gt; board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="665" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="709" />
       <source>&lt;h4&gt;Flash {0} Firmware&lt;/h4&gt;&lt;p&gt;Follow the instructions below to set &lt;b&gt;one&lt;/b&gt; board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;&lt;hr/&gt;{1}</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="675" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="719" />
       <source>&lt;h4&gt;Potentially UF2 capable devices found&lt;/h4&gt;&lt;p&gt;Found these potentially UF2 capable devices:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Follow the instructions below to set &lt;b&gt;one&lt;/b&gt; board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="700" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="744" />
       <source>&lt;h4&gt;No known devices detected.&lt;/h4&gt;&lt;p&gt;Follow the instructions below to set &lt;b&gt;one&lt;/b&gt; board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="712" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="756" />
       <source>Flash Instructions:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="714" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="758" />
       <source>&lt;h4&gt;Flash method 'manual' selected.&lt;/h4&gt;&lt;p&gt;Follow the instructions below to flash a device by entering the data manually.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Change the device to 'bootloader' mode.&lt;/li&gt;&lt;li&gt;Wait until the device has entered 'bootloader' mode.&lt;/li&gt;&lt;li&gt;Ensure the boot volume is available (this may require mounting it) and select its path.&lt;/li&gt;&lt;li&gt;Select the firmware file to be flashed and click the flash button.&lt;/li&gt;&lt;/ol&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="739" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="783" />
       <source>Boot Volume not found:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="741" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="785" />
       <source>&lt;h4&gt;No Boot Volume detected.&lt;/h4&gt;&lt;p&gt;Please ensure that the boot volume of the device to be flashed is available. </source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="747" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="791" />
       <source>This volume should be named &lt;b&gt;{0}&lt;/b&gt;. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="752" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="796" />
       <source>This volume should have one of these names.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="759" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="803" />
       <source>&lt;h4&gt;Reset Instructions&lt;/h4&gt;&lt;p&gt;Follow the instructions below to set the board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="778" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="822" />
       <source>Multiple Boot Volumes found:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="780" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="824" />
       <source>&lt;h4&gt;Multiple Boot Volumes were found&lt;/h4&gt;&lt;p&gt;These volume paths were found.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Please ensure that only one device of a type is ready for flashing. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="799" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="843" />
       <source>Flashing Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="800" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="844" />
       <source>&lt;p&gt;Flashing the selected firmware to the device. Please wait until the device resets automatically.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="807" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="851" />
       <source>Flashing {0}</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="808" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="852" />
       <source>&lt;p&gt;Flashing the {0} firmware to the device. Please wait until the device resets automatically.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
--- a/eric7/i18n/eric7_zh_CN.ts	Sun Jul 11 15:17:16 2021 +0200
+++ b/eric7/i18n/eric7_zh_CN.ts	Sun Jul 11 16:29:12 2021 +0200
@@ -29282,8 +29282,8 @@
   <context>
     <name>HelpDocsInstaller</name>
     <message>
-      <location filename="../WebBrowser/QtHelp/HelpDocsInstaller.py" line="242" />
-      <location filename="../WebBrowser/QtHelp/HelpDocsInstaller.py" line="178" />
+      <location filename="../WebBrowser/QtHelp/HelpDocsInstaller.py" line="243" />
+      <location filename="../WebBrowser/QtHelp/HelpDocsInstaller.py" line="179" />
       <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be registered. &lt;br/&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
@@ -48978,6 +48978,16 @@
       <source>Edit configuration file</source>
       <translation>编辑配置文件</translation>
     </message>
+    <message>
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/ConfigurationPage/MercurialPage.ui" line="0" />
+      <source>Press to install Mercurial alongside eric7</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../Plugins/VcsPlugins/vcsMercurial/ConfigurationPage/MercurialPage.ui" line="0" />
+      <source>Install Mercurial</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>MessageBoxWizard</name>
@@ -49299,52 +49309,52 @@
   <context>
     <name>MicroPythonDevice</name>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="144" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="166" />
       <source>RP2040 based</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="153" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="175" />
       <source>Generic Board</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="256" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="278" />
       <source>Unknown Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="381" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="403" />
       <source>Unsupported Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="391" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="413" />
       <source>REPL is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="410" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="432" />
       <source>Plotter is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="429" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="451" />
       <source>Running scripts is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="449" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="471" />
       <source>File Manager is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="494" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="516" />
       <source>Select Device Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="495" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="517" />
       <source>Select the directory for the connected device:</source>
       <translation type="unfinished" />
     </message>
@@ -58339,9 +58349,9 @@
       <translation>版本控制系统状态</translation>
     </message>
     <message>
-      <location filename="../Project/ProjectBrowserModel.py" line="797" />
-      <location filename="../Project/ProjectBrowserModel.py" line="779" />
-      <location filename="../Project/ProjectBrowserModel.py" line="744" />
+      <location filename="../Project/ProjectBrowserModel.py" line="799" />
+      <location filename="../Project/ProjectBrowserModel.py" line="781" />
+      <location filename="../Project/ProjectBrowserModel.py" line="746" />
       <location filename="../Project/ProjectBrowserModel.py" line="469" />
       <location filename="../Project/ProjectBrowserModel.py" line="395" />
       <source>local</source>
@@ -82081,14 +82091,14 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="436" />
-      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="418" />
-      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="167" />
+      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="437" />
+      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="419" />
+      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="168" />
       <source>Translation Error</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="419" />
+      <location filename="../Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py" line="420" />
       <source>The selected translation service does not support the Text-to-Speech function.</source>
       <translation type="unfinished" />
     </message>
@@ -82387,122 +82397,122 @@
       <translation type="unfinished">刷新</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="358" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="402" />
       <source>&lt;h3&gt;CircuitPython Board&lt;/h3&gt;&lt;p&gt;In order to prepare the board for flashing follow these steps:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Switch your device to 'bootloader' mode by double-pressing the reset button.&lt;/li&gt;&lt;li&gt;Wait until the device has entered 'bootloader' mode.&lt;/li&gt;&lt;li&gt;(If this does not happen, then try shorter or longer pauses between presses.)&lt;/li&gt;&lt;li&gt;Ensure the boot volume is available (this may require mounting it).&lt;/li&gt;&lt;li&gt;Select the firmware file to be flashed and click the flash button.&lt;/li&gt;&lt;/ol&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="417" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="384" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="461" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="428" />
       <source>&lt;h3&gt;Pi Pico (RP2040) Board&lt;/h3&gt;&lt;p&gt;In order to prepare the board for flashing follow these steps:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Enter 'bootloader' mode (board &lt;b&gt;without&lt;/b&gt; RESET button):&lt;ul&gt;&lt;li&gt;Plug in your board while holding the BOOTSEL button.&lt;/li&gt;&lt;/ul&gt;Enter 'bootloader' mode (board &lt;b&gt;with&lt;/b&gt; RESET button):&lt;ul&gt;&lt;li&gt;hold down RESET&lt;/li&gt;&lt;li&gt;hold down BOOTSEL&lt;/li&gt;&lt;li&gt;release RESET&lt;/li&gt;&lt;li&gt;release BOOTSEL&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Wait until the device has entered 'bootloader' mode.&lt;/li&gt;&lt;li&gt;Ensure the boot volume is available (this may require mounting it).&lt;/li&gt;&lt;li&gt;Select the firmware file to be flashed and click the flash button.&lt;/li&gt;&lt;/ol&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="492" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="536" />
       <source>'{0}' Board</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="523" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="567" />
       <source>MicroPython/CircuitPython Files (*.uf2);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="593" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="580" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="568" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="637" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="624" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="612" />
       <source>Manual Select</source>
       <translation type="unfinished">手动选择</translation>
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="698" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="662" />
-      <location filename="../MicroPython/UF2FlashDialog.py" line="636" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="742" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="706" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="680" />
       <source>Reset Instructions:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="638" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="682" />
       <source>&lt;h4&gt;No known devices detected.&lt;/h4&gt;&lt;p&gt;Follow the appropriate instructions below to set &lt;b&gt;one&lt;/b&gt; board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="665" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="709" />
       <source>&lt;h4&gt;Flash {0} Firmware&lt;/h4&gt;&lt;p&gt;Follow the instructions below to set &lt;b&gt;one&lt;/b&gt; board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;&lt;hr/&gt;{1}</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="675" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="719" />
       <source>&lt;h4&gt;Potentially UF2 capable devices found&lt;/h4&gt;&lt;p&gt;Found these potentially UF2 capable devices:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Follow the instructions below to set &lt;b&gt;one&lt;/b&gt; board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="700" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="744" />
       <source>&lt;h4&gt;No known devices detected.&lt;/h4&gt;&lt;p&gt;Follow the instructions below to set &lt;b&gt;one&lt;/b&gt; board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="712" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="756" />
       <source>Flash Instructions:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="714" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="758" />
       <source>&lt;h4&gt;Flash method 'manual' selected.&lt;/h4&gt;&lt;p&gt;Follow the instructions below to flash a device by entering the data manually.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Change the device to 'bootloader' mode.&lt;/li&gt;&lt;li&gt;Wait until the device has entered 'bootloader' mode.&lt;/li&gt;&lt;li&gt;Ensure the boot volume is available (this may require mounting it) and select its path.&lt;/li&gt;&lt;li&gt;Select the firmware file to be flashed and click the flash button.&lt;/li&gt;&lt;/ol&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="739" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="783" />
       <source>Boot Volume not found:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="741" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="785" />
       <source>&lt;h4&gt;No Boot Volume detected.&lt;/h4&gt;&lt;p&gt;Please ensure that the boot volume of the device to be flashed is available. </source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="747" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="791" />
       <source>This volume should be named &lt;b&gt;{0}&lt;/b&gt;. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="752" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="796" />
       <source>This volume should have one of these names.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="759" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="803" />
       <source>&lt;h4&gt;Reset Instructions&lt;/h4&gt;&lt;p&gt;Follow the instructions below to set the board into 'bootloader' mode. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="778" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="822" />
       <source>Multiple Boot Volumes found:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="780" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="824" />
       <source>&lt;h4&gt;Multiple Boot Volumes were found&lt;/h4&gt;&lt;p&gt;These volume paths were found.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Please ensure that only one device of a type is ready for flashing. Press &lt;b&gt;Refresh&lt;/b&gt; when ready.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="799" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="843" />
       <source>Flashing Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="800" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="844" />
       <source>&lt;p&gt;Flashing the selected firmware to the device. Please wait until the device resets automatically.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="807" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="851" />
       <source>Flashing {0}</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/UF2FlashDialog.py" line="808" />
+      <location filename="../MicroPython/UF2FlashDialog.py" line="852" />
       <source>&lt;p&gt;Flashing the {0} firmware to the device. Please wait until the device resets automatically.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>

eric ide

mercurial