Merged with default branch to prepare a new release. maintenance

Sun, 01 Dec 2019 16:38:47 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 01 Dec 2019 16:38:47 +0100
branch
maintenance
changeset 7345
bc0ee7fadd03
parent 7323
83df7d69e61b (current diff)
parent 7344
83bb25074625 (diff)
child 7349
253e2c326448

Merged with default branch to prepare a new release.

docs/changelog file | annotate | diff | comparison | revisions
eric6.e4p file | annotate | diff | comparison | revisions
eric6/APIs/Python3/eric6.api file | annotate | diff | comparison | revisions
eric6/Documentation/Help/source.qch file | annotate | diff | comparison | revisions
eric6/Documentation/Help/source.qhp file | annotate | diff | comparison | revisions
eric6/Preferences/__init__.py file | annotate | diff | comparison | revisions
eric6/QScintilla/Editor.py file | annotate | diff | comparison | revisions
eric6/UI/UserInterface.py file | annotate | diff | comparison | revisions
eric6/ViewManager/ViewManager.py file | annotate | diff | comparison | revisions
eric6/i18n/eric6_cs.ts file | annotate | diff | comparison | revisions
eric6/i18n/eric6_de.qm file | annotate | diff | comparison | revisions
eric6/i18n/eric6_de.ts file | annotate | diff | comparison | revisions
eric6/i18n/eric6_empty.ts file | annotate | diff | comparison | revisions
eric6/i18n/eric6_en.ts file | annotate | diff | comparison | revisions
eric6/i18n/eric6_es.qm file | annotate | diff | comparison | revisions
eric6/i18n/eric6_es.ts file | annotate | diff | comparison | revisions
eric6/i18n/eric6_fr.ts file | annotate | diff | comparison | revisions
eric6/i18n/eric6_it.ts file | annotate | diff | comparison | revisions
eric6/i18n/eric6_pt.ts file | annotate | diff | comparison | revisions
eric6/i18n/eric6_ru.qm file | annotate | diff | comparison | revisions
eric6/i18n/eric6_ru.ts file | annotate | diff | comparison | revisions
eric6/i18n/eric6_tr.ts file | annotate | diff | comparison | revisions
eric6/i18n/eric6_zh_CN.ts file | annotate | diff | comparison | revisions
scripts/install.py file | annotate | diff | comparison | revisions
--- a/docs/changelog	Fri Nov 01 16:11:55 2019 +0100
+++ b/docs/changelog	Sun Dec 01 16:38:47 2019 +0100
@@ -1,5 +1,18 @@
 Change Log
 ----------
+Version 19.12:
+- bug fixes
+- MicroPython
+  -- added a menu entry to show the local and device time side-by-side
+  -- added a PyBoard menu entry to flash a new firmware
+  -- added a menu entry to open the firmware download page of a device
+- Syntax Checker
+  -- added a syntax checker for JSON files
+  -- added a syntax checker for YAML files
+- install script
+  -- added the "--yes" flag to allow installation of all missing prerequisites
+     with pip without asking
+
 Version 19.11:
 - bug fixes
 - Editor
@@ -7,9 +20,9 @@
   -- added a context menu to select spell check language
   -- made the preview refresh timeout configurable
      (see Editor -> File Handling config page)
-- Error Message Dialog:
-  - added a configurable minimum severity for messages being shown in a dialog
-    (see Application config page)
+- Error Message Dialog
+  -- added a configurable minimum severity for messages being shown in a dialog
+     (see Application config page)
 - MicroPython
   -- added support for PyBoard
 - Previewers
--- a/eric6.e4p	Fri Nov 01 16:11:55 2019 +0100
+++ b/eric6.e4p	Sun Dec 01 16:38:47 2019 +0100
@@ -319,10 +319,12 @@
     <Source>eric6/Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py</Source>
     <Source>eric6/Plugins/CheckerPlugins/SyntaxChecker/__init__.py</Source>
     <Source>eric6/Plugins/CheckerPlugins/SyntaxChecker/jsCheckSyntax.py</Source>
+    <Source>eric6/Plugins/CheckerPlugins/SyntaxChecker/jsonCheckSyntax.py</Source>
     <Source>eric6/Plugins/CheckerPlugins/SyntaxChecker/pyflakes/__init__.py</Source>
     <Source>eric6/Plugins/CheckerPlugins/SyntaxChecker/pyflakes/checker.py</Source>
     <Source>eric6/Plugins/CheckerPlugins/SyntaxChecker/pyflakes/messages.py</Source>
     <Source>eric6/Plugins/CheckerPlugins/SyntaxChecker/pyflakes/translations.py</Source>
+    <Source>eric6/Plugins/CheckerPlugins/SyntaxChecker/yamlCheckSyntax.py</Source>
     <Source>eric6/Plugins/CheckerPlugins/Tabnanny/Tabnanny.py</Source>
     <Source>eric6/Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py</Source>
     <Source>eric6/Plugins/CheckerPlugins/Tabnanny/__init__.py</Source>
--- a/eric6/APIs/Python3/eric6.api	Fri Nov 01 16:11:55 2019 +0100
+++ b/eric6/APIs/Python3/eric6.api	Sun Dec 01 16:38:47 2019 +0100
@@ -766,6 +766,7 @@
 eric6.Debugger.VariablesViewer.VariableItem.nonExpandableTypes?7
 eric6.Debugger.VariablesViewer.VariableItem.populated?4()
 eric6.Debugger.VariablesViewer.VariableItem.rx_nonprintable?7
+eric6.Debugger.VariablesViewer.VariableItem.unsized?7
 eric6.Debugger.VariablesViewer.VariableItem?1(parent, dvar, dtype, dvalue)
 eric6.Debugger.VariablesViewer.VariablesModel.clear?4(reset=False)
 eric6.Debugger.VariablesViewer.VariablesModel.columnCount?4(parent=QModelIndex())
@@ -2225,6 +2226,7 @@
 eric6.MicroPython.CircuitPythonDevices.CircuitPythonDevice.deviceName?4()
 eric6.MicroPython.CircuitPythonDevices.CircuitPythonDevice.forceInterrupt?4()
 eric6.MicroPython.CircuitPythonDevices.CircuitPythonDevice.getDocumentationUrl?4()
+eric6.MicroPython.CircuitPythonDevices.CircuitPythonDevice.getFirmwareUrl?4()
 eric6.MicroPython.CircuitPythonDevices.CircuitPythonDevice.getWorkspace?4(silent=False)
 eric6.MicroPython.CircuitPythonDevices.CircuitPythonDevice.runScript?4(script)
 eric6.MicroPython.CircuitPythonDevices.CircuitPythonDevice.setButtons?4()
@@ -2244,6 +2246,7 @@
 eric6.MicroPython.EspDevices.EspDevice.deviceName?4()
 eric6.MicroPython.EspDevices.EspDevice.forceInterrupt?4()
 eric6.MicroPython.EspDevices.EspDevice.getDocumentationUrl?4()
+eric6.MicroPython.EspDevices.EspDevice.getFirmwareUrl?4()
 eric6.MicroPython.EspDevices.EspDevice.runScript?4(script)
 eric6.MicroPython.EspDevices.EspDevice.setButtons?4()
 eric6.MicroPython.EspDevices.EspDevice?1(microPythonWidget, parent=None)
@@ -2285,9 +2288,11 @@
 eric6.MicroPython.MicroPythonDevices.MicroPythonDevice.deviceName?4()
 eric6.MicroPython.MicroPythonDevices.MicroPythonDevice.forceInterrupt?4()
 eric6.MicroPython.MicroPythonDevices.MicroPythonDevice.getDocumentationUrl?4()
+eric6.MicroPython.MicroPythonDevices.MicroPythonDevice.getFirmwareUrl?4()
 eric6.MicroPython.MicroPythonDevices.MicroPythonDevice.getWorkspace?4()
 eric6.MicroPython.MicroPythonDevices.MicroPythonDevice.handleDataFlood?4()
 eric6.MicroPython.MicroPythonDevices.MicroPythonDevice.hasDocumentationUrl?4()
+eric6.MicroPython.MicroPythonDevices.MicroPythonDevice.hasFirmwareUrl?4()
 eric6.MicroPython.MicroPythonDevices.MicroPythonDevice.hasTimeCommands?4()
 eric6.MicroPython.MicroPythonDevices.MicroPythonDevice.runScript?4(script)
 eric6.MicroPython.MicroPythonDevices.MicroPythonDevice.sendCommands?4(commandsList)
@@ -2395,6 +2400,7 @@
 eric6.MicroPython.MicrobitDevices.MicrobitDevice.deviceName?4()
 eric6.MicroPython.MicrobitDevices.MicrobitDevice.forceInterrupt?4()
 eric6.MicroPython.MicrobitDevices.MicrobitDevice.getDocumentationUrl?4()
+eric6.MicroPython.MicrobitDevices.MicrobitDevice.getFirmwareUrl?4()
 eric6.MicroPython.MicrobitDevices.MicrobitDevice.getWorkspace?4()
 eric6.MicroPython.MicrobitDevices.MicrobitDevice.hasTimeCommands?4()
 eric6.MicroPython.MicrobitDevices.MicrobitDevice.runScript?4(script)
@@ -2410,6 +2416,7 @@
 eric6.MicroPython.PyBoardDevices.PyBoardDevice.deviceName?4()
 eric6.MicroPython.PyBoardDevices.PyBoardDevice.forceInterrupt?4()
 eric6.MicroPython.PyBoardDevices.PyBoardDevice.getDocumentationUrl?4()
+eric6.MicroPython.PyBoardDevices.PyBoardDevice.getFirmwareUrl?4()
 eric6.MicroPython.PyBoardDevices.PyBoardDevice.getWorkspace?4(silent=False)
 eric6.MicroPython.PyBoardDevices.PyBoardDevice.runScript?4(script)
 eric6.MicroPython.PyBoardDevices.PyBoardDevice.setButtons?4()
@@ -3234,9 +3241,11 @@
 eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.SyntaxCheckService.getExtensions?4()
 eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.SyntaxCheckService.getLanguages?4()
 eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.SyntaxCheckService.removeLanguage?4(lang)
+eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.SyntaxCheckService.serviceErrorJSON?4(fx, lang, fn, msg)
 eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.SyntaxCheckService.serviceErrorJavaScript?4(fx, lang, fn, msg)
 eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.SyntaxCheckService.serviceErrorPy2?4(fx, lang, fn, msg)
 eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.SyntaxCheckService.serviceErrorPy3?4(fx, lang, fn, msg)
+eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.SyntaxCheckService.serviceErrorYAML?4(fx, lang, fn, msg)
 eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.SyntaxCheckService.syntaxBatchCheck?4(argumentsList)
 eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.SyntaxCheckService.syntaxCheck?4(lang, filename, source)
 eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.SyntaxCheckService.syntaxChecked?7
@@ -3261,6 +3270,18 @@
 eric6.Plugins.CheckerPlugins.SyntaxChecker.jsCheckSyntax.jsSyntaxCheck?4(file, codestring)
 eric6.Plugins.CheckerPlugins.SyntaxChecker.jsCheckSyntax.normalizeCode?4(codestring)
 eric6.Plugins.CheckerPlugins.SyntaxChecker.jsCheckSyntax.worker?4(inputQueue, outputQueue)
+eric6.Plugins.CheckerPlugins.SyntaxChecker.jsonCheckSyntax.initBatchService?4()
+eric6.Plugins.CheckerPlugins.SyntaxChecker.jsonCheckSyntax.initService?4()
+eric6.Plugins.CheckerPlugins.SyntaxChecker.jsonCheckSyntax.jsonSyntaxBatchCheck?4(argumentsList, send, fx, cancelled, maxProcesses=0)
+eric6.Plugins.CheckerPlugins.SyntaxChecker.jsonCheckSyntax.jsonSyntaxCheck?4(file, codestring)
+eric6.Plugins.CheckerPlugins.SyntaxChecker.jsonCheckSyntax.normalizeCode?4(codestring)
+eric6.Plugins.CheckerPlugins.SyntaxChecker.jsonCheckSyntax.worker?4(inputQueue, outputQueue)
+eric6.Plugins.CheckerPlugins.SyntaxChecker.yamlCheckSyntax.initBatchService?4()
+eric6.Plugins.CheckerPlugins.SyntaxChecker.yamlCheckSyntax.initService?4()
+eric6.Plugins.CheckerPlugins.SyntaxChecker.yamlCheckSyntax.normalizeCode?4(codestring)
+eric6.Plugins.CheckerPlugins.SyntaxChecker.yamlCheckSyntax.worker?4(inputQueue, outputQueue)
+eric6.Plugins.CheckerPlugins.SyntaxChecker.yamlCheckSyntax.yamlSyntaxBatchCheck?4(argumentsList, send, fx, cancelled, maxProcesses=0)
+eric6.Plugins.CheckerPlugins.SyntaxChecker.yamlCheckSyntax.yamlSyntaxCheck?4(file, codestring)
 eric6.Plugins.CheckerPlugins.Tabnanny.Tabnanny.NannyNag.get_line?4()
 eric6.Plugins.CheckerPlugins.Tabnanny.Tabnanny.NannyNag.get_lineno?4()
 eric6.Plugins.CheckerPlugins.Tabnanny.Tabnanny.NannyNag.get_msg?4()
@@ -11754,6 +11775,7 @@
 install.windowsDesktopNames?4()
 install.windowsProgramsEntry?4()
 install.wrapperNames?4(dname, wfile)
+install.yes2All?7
 patch_modpython.initGlobals?4()
 patch_modpython.main?4(argv)
 patch_modpython.modDir?7
--- a/eric6/DebugClients/Python/DebugVariables.py	Fri Nov 01 16:11:55 2019 +0100
+++ b/eric6/DebugClients/Python/DebugVariables.py	Sun Dec 01 16:38:47 2019 +0100
@@ -414,7 +414,11 @@
         """
         d = {}
         start = count = 0
-        allItems = var.tolist()
+        try:
+            len(var)  # Check if it's an unsized object, e.g. np.ndarray(())
+            allItems = var.tolist()
+        except TypeError:  # TypeError: len() of unsized object
+            allItems = []
         
         for idx, value in enumerate(allItems):
             d[str(idx)] = value
--- a/eric6/Debugger/VariablesViewer.py	Fri Nov 01 16:11:55 2019 +0100
+++ b/eric6/Debugger/VariablesViewer.py	Sun Dec 01 16:38:47 2019 +0100
@@ -44,6 +44,7 @@
     rx_nonprintable = QRegExp(r"""(\\x\d\d)+""")
     
     noOfItemsStr = QCoreApplication.translate("VariablesViewer", "{0} items")
+    unsized = QCoreApplication.translate("VariablesViewer", "unsized")
     
     arrayTypes = {
         'list', 'tuple', 'dict', 'set', 'frozenset', 'numpy.ndarray',
@@ -178,8 +179,11 @@
             self.indicator = VariableItem.Type2Indicators.get(dtype, '')
         
         if dtype == 'numpy.ndarray':
-            self.childCount = int(dvalue.split('x')[0])
-            dvalue = VariableItem.noOfItemsStr.format(dvalue)
+            if dvalue:
+                self.childCount = int(dvalue.split('x')[0])
+                dvalue = VariableItem.noOfItemsStr.format(dvalue)
+            else:
+                dvalue = VariableItem.unsized
             self.hasChildren = True
         elif dtype in VariableItem.arrayTypes:
             self.childCount = int(dvalue)
Binary file eric6/Documentation/Help/source.qch has changed
--- a/eric6/Documentation/Help/source.qhp	Fri Nov 01 16:11:55 2019 +0100
+++ b/eric6/Documentation/Help/source.qhp	Sun Dec 01 16:38:47 2019 +0100
@@ -309,6 +309,8 @@
                 <section title="eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.html" />
                 <section title="eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog.html" />
                 <section title="eric6.Plugins.CheckerPlugins.SyntaxChecker.jsCheckSyntax" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.jsCheckSyntax.html" />
+                <section title="eric6.Plugins.CheckerPlugins.SyntaxChecker.jsonCheckSyntax" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.jsonCheckSyntax.html" />
+                <section title="eric6.Plugins.CheckerPlugins.SyntaxChecker.yamlCheckSyntax" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.yamlCheckSyntax.html" />
               </section>
               <section title="eric6.Plugins.CheckerPlugins.Tabnanny" ref="index-eric6.Plugins.CheckerPlugins.Tabnanny.html">
                 <section title="eric6.Plugins.CheckerPlugins.Tabnanny.Tabnanny" ref="eric6.Plugins.CheckerPlugins.Tabnanny.Tabnanny.html" />
@@ -2352,6 +2354,7 @@
       <keyword name="CircuitPythonDevice.deviceName" id="CircuitPythonDevice.deviceName" ref="eric6.MicroPython.CircuitPythonDevices.html#CircuitPythonDevice.deviceName" />
       <keyword name="CircuitPythonDevice.forceInterrupt" id="CircuitPythonDevice.forceInterrupt" ref="eric6.MicroPython.CircuitPythonDevices.html#CircuitPythonDevice.forceInterrupt" />
       <keyword name="CircuitPythonDevice.getDocumentationUrl" id="CircuitPythonDevice.getDocumentationUrl" ref="eric6.MicroPython.CircuitPythonDevices.html#CircuitPythonDevice.getDocumentationUrl" />
+      <keyword name="CircuitPythonDevice.getFirmwareUrl" id="CircuitPythonDevice.getFirmwareUrl" ref="eric6.MicroPython.CircuitPythonDevices.html#CircuitPythonDevice.getFirmwareUrl" />
       <keyword name="CircuitPythonDevice.getWorkspace" id="CircuitPythonDevice.getWorkspace" ref="eric6.MicroPython.CircuitPythonDevices.html#CircuitPythonDevice.getWorkspace" />
       <keyword name="CircuitPythonDevice.runScript" id="CircuitPythonDevice.runScript" ref="eric6.MicroPython.CircuitPythonDevices.html#CircuitPythonDevice.runScript" />
       <keyword name="CircuitPythonDevice.setButtons" id="CircuitPythonDevice.setButtons" ref="eric6.MicroPython.CircuitPythonDevices.html#CircuitPythonDevice.setButtons" />
@@ -5359,6 +5362,7 @@
       <keyword name="EspDevice.deviceName" id="EspDevice.deviceName" ref="eric6.MicroPython.EspDevices.html#EspDevice.deviceName" />
       <keyword name="EspDevice.forceInterrupt" id="EspDevice.forceInterrupt" ref="eric6.MicroPython.EspDevices.html#EspDevice.forceInterrupt" />
       <keyword name="EspDevice.getDocumentationUrl" id="EspDevice.getDocumentationUrl" ref="eric6.MicroPython.EspDevices.html#EspDevice.getDocumentationUrl" />
+      <keyword name="EspDevice.getFirmwareUrl" id="EspDevice.getFirmwareUrl" ref="eric6.MicroPython.EspDevices.html#EspDevice.getFirmwareUrl" />
       <keyword name="EspDevice.runScript" id="EspDevice.runScript" ref="eric6.MicroPython.EspDevices.html#EspDevice.runScript" />
       <keyword name="EspDevice.setButtons" id="EspDevice.setButtons" ref="eric6.MicroPython.EspDevices.html#EspDevice.setButtons" />
       <keyword name="EspDevices (Module)" id="EspDevices (Module)" ref="eric6.MicroPython.EspDevices.html" />
@@ -9645,9 +9649,11 @@
       <keyword name="MicroPythonDevice.deviceName" id="MicroPythonDevice.deviceName" ref="eric6.MicroPython.MicroPythonDevices.html#MicroPythonDevice.deviceName" />
       <keyword name="MicroPythonDevice.forceInterrupt" id="MicroPythonDevice.forceInterrupt" ref="eric6.MicroPython.MicroPythonDevices.html#MicroPythonDevice.forceInterrupt" />
       <keyword name="MicroPythonDevice.getDocumentationUrl" id="MicroPythonDevice.getDocumentationUrl" ref="eric6.MicroPython.MicroPythonDevices.html#MicroPythonDevice.getDocumentationUrl" />
+      <keyword name="MicroPythonDevice.getFirmwareUrl" id="MicroPythonDevice.getFirmwareUrl" ref="eric6.MicroPython.MicroPythonDevices.html#MicroPythonDevice.getFirmwareUrl" />
       <keyword name="MicroPythonDevice.getWorkspace" id="MicroPythonDevice.getWorkspace" ref="eric6.MicroPython.MicroPythonDevices.html#MicroPythonDevice.getWorkspace" />
       <keyword name="MicroPythonDevice.handleDataFlood" id="MicroPythonDevice.handleDataFlood" ref="eric6.MicroPython.MicroPythonDevices.html#MicroPythonDevice.handleDataFlood" />
       <keyword name="MicroPythonDevice.hasDocumentationUrl" id="MicroPythonDevice.hasDocumentationUrl" ref="eric6.MicroPython.MicroPythonDevices.html#MicroPythonDevice.hasDocumentationUrl" />
+      <keyword name="MicroPythonDevice.hasFirmwareUrl" id="MicroPythonDevice.hasFirmwareUrl" ref="eric6.MicroPython.MicroPythonDevices.html#MicroPythonDevice.hasFirmwareUrl" />
       <keyword name="MicroPythonDevice.hasTimeCommands" id="MicroPythonDevice.hasTimeCommands" ref="eric6.MicroPython.MicroPythonDevices.html#MicroPythonDevice.hasTimeCommands" />
       <keyword name="MicroPythonDevice.runScript" id="MicroPythonDevice.runScript" ref="eric6.MicroPython.MicroPythonDevices.html#MicroPythonDevice.runScript" />
       <keyword name="MicroPythonDevice.sendCommands" id="MicroPythonDevice.sendCommands" ref="eric6.MicroPython.MicroPythonDevices.html#MicroPythonDevice.sendCommands" />
@@ -9754,6 +9760,7 @@
       <keyword name="MicroPythonWidget.__crossCompile" id="MicroPythonWidget.__crossCompile" ref="eric6.MicroPython.MicroPythonWidget.html#MicroPythonWidget.__crossCompile" />
       <keyword name="MicroPythonWidget.__disconnectFromDevice" id="MicroPythonWidget.__disconnectFromDevice" ref="eric6.MicroPython.MicroPythonWidget.html#MicroPythonWidget.__disconnectFromDevice" />
       <keyword name="MicroPythonWidget.__doZoom" id="MicroPythonWidget.__doZoom" ref="eric6.MicroPython.MicroPythonWidget.html#MicroPythonWidget.__doZoom" />
+      <keyword name="MicroPythonWidget.__downloadFirmware" id="MicroPythonWidget.__downloadFirmware" ref="eric6.MicroPython.MicroPythonWidget.html#MicroPythonWidget.__downloadFirmware" />
       <keyword name="MicroPythonWidget.__getDeviceTime" id="MicroPythonWidget.__getDeviceTime" ref="eric6.MicroPython.MicroPythonWidget.html#MicroPythonWidget.__getDeviceTime" />
       <keyword name="MicroPythonWidget.__handlePreferencesChanged" id="MicroPythonWidget.__handlePreferencesChanged" ref="eric6.MicroPython.MicroPythonWidget.html#MicroPythonWidget.__handlePreferencesChanged" />
       <keyword name="MicroPythonWidget.__mpyCrossAvailable" id="MicroPythonWidget.__mpyCrossAvailable" ref="eric6.MicroPython.MicroPythonWidget.html#MicroPythonWidget.__mpyCrossAvailable" />
@@ -9768,6 +9775,7 @@
       <keyword name="MicroPythonWidget.__showDocumentation" id="MicroPythonWidget.__showDocumentation" ref="eric6.MicroPython.MicroPythonWidget.html#MicroPythonWidget.__showDocumentation" />
       <keyword name="MicroPythonWidget.__showError" id="MicroPythonWidget.__showError" ref="eric6.MicroPython.MicroPythonWidget.html#MicroPythonWidget.__showError" />
       <keyword name="MicroPythonWidget.__showImplementation" id="MicroPythonWidget.__showImplementation" ref="eric6.MicroPython.MicroPythonWidget.html#MicroPythonWidget.__showImplementation" />
+      <keyword name="MicroPythonWidget.__showLocalAndDeviceTime" id="MicroPythonWidget.__showLocalAndDeviceTime" ref="eric6.MicroPython.MicroPythonWidget.html#MicroPythonWidget.__showLocalAndDeviceTime" />
       <keyword name="MicroPythonWidget.__showLocalTime" id="MicroPythonWidget.__showLocalTime" ref="eric6.MicroPython.MicroPythonWidget.html#MicroPythonWidget.__showLocalTime" />
       <keyword name="MicroPythonWidget.__showNoDeviceMessage" id="MicroPythonWidget.__showNoDeviceMessage" ref="eric6.MicroPython.MicroPythonWidget.html#MicroPythonWidget.__showNoDeviceMessage" />
       <keyword name="MicroPythonWidget.__synchronizeTime" id="MicroPythonWidget.__synchronizeTime" ref="eric6.MicroPython.MicroPythonWidget.html#MicroPythonWidget.__synchronizeTime" />
@@ -9802,6 +9810,7 @@
       <keyword name="MicrobitDevice.deviceName" id="MicrobitDevice.deviceName" ref="eric6.MicroPython.MicrobitDevices.html#MicrobitDevice.deviceName" />
       <keyword name="MicrobitDevice.forceInterrupt" id="MicrobitDevice.forceInterrupt" ref="eric6.MicroPython.MicrobitDevices.html#MicrobitDevice.forceInterrupt" />
       <keyword name="MicrobitDevice.getDocumentationUrl" id="MicrobitDevice.getDocumentationUrl" ref="eric6.MicroPython.MicrobitDevices.html#MicrobitDevice.getDocumentationUrl" />
+      <keyword name="MicrobitDevice.getFirmwareUrl" id="MicrobitDevice.getFirmwareUrl" ref="eric6.MicroPython.MicrobitDevices.html#MicrobitDevice.getFirmwareUrl" />
       <keyword name="MicrobitDevice.getWorkspace" id="MicrobitDevice.getWorkspace" ref="eric6.MicroPython.MicrobitDevices.html#MicrobitDevice.getWorkspace" />
       <keyword name="MicrobitDevice.hasTimeCommands" id="MicrobitDevice.hasTimeCommands" ref="eric6.MicroPython.MicrobitDevices.html#MicrobitDevice.hasTimeCommands" />
       <keyword name="MicrobitDevice.runScript" id="MicrobitDevice.runScript" ref="eric6.MicroPython.MicrobitDevices.html#MicrobitDevice.runScript" />
@@ -11719,7 +11728,12 @@
       <keyword name="PyBoardDevice" id="PyBoardDevice" ref="eric6.MicroPython.PyBoardDevices.html#PyBoardDevice" />
       <keyword name="PyBoardDevice (Constructor)" id="PyBoardDevice (Constructor)" ref="eric6.MicroPython.PyBoardDevices.html#PyBoardDevice.__init__" />
       <keyword name="PyBoardDevice.__deviceVolumeMounted" id="PyBoardDevice.__deviceVolumeMounted" ref="eric6.MicroPython.PyBoardDevices.html#PyBoardDevice.__deviceVolumeMounted" />
-      <keyword name="PyBoardDevice.__showInstallInstructions" id="PyBoardDevice.__showInstallInstructions" ref="eric6.MicroPython.PyBoardDevices.html#PyBoardDevice.__showInstallInstructions" />
+      <keyword name="PyBoardDevice.__dfuUtilAvailable" id="PyBoardDevice.__dfuUtilAvailable" ref="eric6.MicroPython.PyBoardDevices.html#PyBoardDevice.__dfuUtilAvailable" />
+      <keyword name="PyBoardDevice.__flashMicroPython" id="PyBoardDevice.__flashMicroPython" ref="eric6.MicroPython.PyBoardDevices.html#PyBoardDevice.__flashMicroPython" />
+      <keyword name="PyBoardDevice.__listDfuCapableDevices" id="PyBoardDevice.__listDfuCapableDevices" ref="eric6.MicroPython.PyBoardDevices.html#PyBoardDevice.__listDfuCapableDevices" />
+      <keyword name="PyBoardDevice.__showDfuDisableInstructions" id="PyBoardDevice.__showDfuDisableInstructions" ref="eric6.MicroPython.PyBoardDevices.html#PyBoardDevice.__showDfuDisableInstructions" />
+      <keyword name="PyBoardDevice.__showDfuEnableInstructions" id="PyBoardDevice.__showDfuEnableInstructions" ref="eric6.MicroPython.PyBoardDevices.html#PyBoardDevice.__showDfuEnableInstructions" />
+      <keyword name="PyBoardDevice.__showFlashInstructions" id="PyBoardDevice.__showFlashInstructions" ref="eric6.MicroPython.PyBoardDevices.html#PyBoardDevice.__showFlashInstructions" />
       <keyword name="PyBoardDevice.addDeviceMenuEntries" id="PyBoardDevice.addDeviceMenuEntries" ref="eric6.MicroPython.PyBoardDevices.html#PyBoardDevice.addDeviceMenuEntries" />
       <keyword name="PyBoardDevice.canRunScript" id="PyBoardDevice.canRunScript" ref="eric6.MicroPython.PyBoardDevices.html#PyBoardDevice.canRunScript" />
       <keyword name="PyBoardDevice.canStartFileManager" id="PyBoardDevice.canStartFileManager" ref="eric6.MicroPython.PyBoardDevices.html#PyBoardDevice.canStartFileManager" />
@@ -11728,6 +11742,7 @@
       <keyword name="PyBoardDevice.deviceName" id="PyBoardDevice.deviceName" ref="eric6.MicroPython.PyBoardDevices.html#PyBoardDevice.deviceName" />
       <keyword name="PyBoardDevice.forceInterrupt" id="PyBoardDevice.forceInterrupt" ref="eric6.MicroPython.PyBoardDevices.html#PyBoardDevice.forceInterrupt" />
       <keyword name="PyBoardDevice.getDocumentationUrl" id="PyBoardDevice.getDocumentationUrl" ref="eric6.MicroPython.PyBoardDevices.html#PyBoardDevice.getDocumentationUrl" />
+      <keyword name="PyBoardDevice.getFirmwareUrl" id="PyBoardDevice.getFirmwareUrl" ref="eric6.MicroPython.PyBoardDevices.html#PyBoardDevice.getFirmwareUrl" />
       <keyword name="PyBoardDevice.getWorkspace" id="PyBoardDevice.getWorkspace" ref="eric6.MicroPython.PyBoardDevices.html#PyBoardDevice.getWorkspace" />
       <keyword name="PyBoardDevice.runScript" id="PyBoardDevice.runScript" ref="eric6.MicroPython.PyBoardDevices.html#PyBoardDevice.runScript" />
       <keyword name="PyBoardDevice.setButtons" id="PyBoardDevice.setButtons" ref="eric6.MicroPython.PyBoardDevices.html#PyBoardDevice.setButtons" />
@@ -14349,9 +14364,11 @@
       <keyword name="SyntaxCheckService.getExtensions" id="SyntaxCheckService.getExtensions" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.html#SyntaxCheckService.getExtensions" />
       <keyword name="SyntaxCheckService.getLanguages" id="SyntaxCheckService.getLanguages" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.html#SyntaxCheckService.getLanguages" />
       <keyword name="SyntaxCheckService.removeLanguage" id="SyntaxCheckService.removeLanguage" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.html#SyntaxCheckService.removeLanguage" />
+      <keyword name="SyntaxCheckService.serviceErrorJSON" id="SyntaxCheckService.serviceErrorJSON" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.html#SyntaxCheckService.serviceErrorJSON" />
       <keyword name="SyntaxCheckService.serviceErrorJavaScript" id="SyntaxCheckService.serviceErrorJavaScript" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.html#SyntaxCheckService.serviceErrorJavaScript" />
       <keyword name="SyntaxCheckService.serviceErrorPy2" id="SyntaxCheckService.serviceErrorPy2" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.html#SyntaxCheckService.serviceErrorPy2" />
       <keyword name="SyntaxCheckService.serviceErrorPy3" id="SyntaxCheckService.serviceErrorPy3" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.html#SyntaxCheckService.serviceErrorPy3" />
+      <keyword name="SyntaxCheckService.serviceErrorYAML" id="SyntaxCheckService.serviceErrorYAML" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.html#SyntaxCheckService.serviceErrorYAML" />
       <keyword name="SyntaxCheckService.syntaxBatchCheck" id="SyntaxCheckService.syntaxBatchCheck" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.html#SyntaxCheckService.syntaxBatchCheck" />
       <keyword name="SyntaxCheckService.syntaxCheck" id="SyntaxCheckService.syntaxCheck" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.html#SyntaxCheckService.syntaxCheck" />
       <keyword name="SyntaxChecker (Package)" id="SyntaxChecker (Package)" ref="index-eric6.Plugins.CheckerPlugins.SyntaxChecker.html" />
@@ -16910,6 +16927,7 @@
       <keyword name="__initChannelModesDict" id="__initChannelModesDict" ref="eric6.Network.IRC.IrcUtilities.html#__initChannelModesDict" />
       <keyword name="__initializeCondaInterface" id="__initializeCondaInterface" ref="eric6.CondaInterface.__init__.html#__initializeCondaInterface" />
       <keyword name="__jsSyntaxCheck" id="__jsSyntaxCheck" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.jsCheckSyntax.html#__jsSyntaxCheck" />
+      <keyword name="__jsonSyntaxCheck" id="__jsonSyntaxCheck" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.jsonCheckSyntax.html#__jsonSyntaxCheck" />
       <keyword name="__mapType" id="__mapType" ref="eric6.Project.UicLoadUi.html#__mapType" />
       <keyword name="__messageBox" id="__messageBox" ref="eric6.E5Gui.E5MessageBox.html#__messageBox" />
       <keyword name="__pyName" id="__pyName" ref="compileUiFiles.html#__pyName" />
@@ -16923,6 +16941,7 @@
       <keyword name="__setAction" id="__setAction" ref="eric6.Preferences.Shortcuts.html#__setAction" />
       <keyword name="__showwarning" id="__showwarning" ref="eric6.Utilities.__init__.html#__showwarning" />
       <keyword name="__syntaxAndPyflakesCheck" id="__syntaxAndPyflakesCheck" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheck.html#__syntaxAndPyflakesCheck" />
+      <keyword name="__yamlSyntaxCheck" id="__yamlSyntaxCheck" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.yamlCheckSyntax.html#__yamlSyntaxCheck" />
       <keyword name="_add_check" id="_add_check" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.html#_add_check" />
       <keyword name="_break_around_binary_operators" id="_break_around_binary_operators" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.html#_break_around_binary_operators" />
       <keyword name="_buildChildrenLists" id="_buildChildrenLists" ref="eric6.Graphics.GraphicsUtilities.html#_buildChildrenLists" />
@@ -17401,6 +17420,8 @@
       <keyword name="initBatchService" id="initBatchService" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleChecker.html#initBatchService" />
       <keyword name="initBatchService" id="initBatchService" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheck.html#initBatchService" />
       <keyword name="initBatchService" id="initBatchService" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.jsCheckSyntax.html#initBatchService" />
+      <keyword name="initBatchService" id="initBatchService" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.jsonCheckSyntax.html#initBatchService" />
+      <keyword name="initBatchService" id="initBatchService" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.yamlCheckSyntax.html#initBatchService" />
       <keyword name="initBatchService" id="initBatchService" ref="eric6.Plugins.CheckerPlugins.Tabnanny.Tabnanny.html#initBatchService" />
       <keyword name="initDebugger" id="initDebugger" ref="eric6.DebugClients.Python.eric6dbgstub.html#initDebugger" />
       <keyword name="initGlobals" id="initGlobals" ref="install-debugclients.html#initGlobals" />
@@ -17414,6 +17435,8 @@
       <keyword name="initService" id="initService" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleChecker.html#initService" />
       <keyword name="initService" id="initService" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheck.html#initService" />
       <keyword name="initService" id="initService" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.jsCheckSyntax.html#initService" />
+      <keyword name="initService" id="initService" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.jsonCheckSyntax.html#initService" />
+      <keyword name="initService" id="initService" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.yamlCheckSyntax.html#initService" />
       <keyword name="initService" id="initService" ref="eric6.Plugins.CheckerPlugins.Tabnanny.Tabnanny.html#initService" />
       <keyword name="initializeResourceSearchPath" id="initializeResourceSearchPath" ref="eric6.Toolbox.Startup.html#initializeResourceSearchPath" />
       <keyword name="install (Module)" id="install (Module)" ref="install.html" />
@@ -17462,6 +17485,9 @@
       <keyword name="jsSyntaxBatchCheck" id="jsSyntaxBatchCheck" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.jsCheckSyntax.html#jsSyntaxBatchCheck" />
       <keyword name="jsSyntaxCheck" id="jsSyntaxCheck" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.jsCheckSyntax.html#jsSyntaxCheck" />
       <keyword name="jsclbr (Module)" id="jsclbr (Module)" ref="eric6.Utilities.ClassBrowsers.jsclbr.html" />
+      <keyword name="jsonCheckSyntax (Module)" id="jsonCheckSyntax (Module)" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.jsonCheckSyntax.html" />
+      <keyword name="jsonSyntaxBatchCheck" id="jsonSyntaxBatchCheck" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.jsonCheckSyntax.html#jsonSyntaxBatchCheck" />
+      <keyword name="jsonSyntaxCheck" id="jsonSyntaxCheck" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.jsonCheckSyntax.html#jsonSyntaxCheck" />
       <keyword name="largefiles (Module)" id="largefiles (Module)" ref="eric6.Plugins.VcsPlugins.vcsMercurial.LargefilesExtension.largefiles.html" />
       <keyword name="linesep" id="linesep" ref="eric6.Utilities.__init__.html#linesep" />
       <keyword name="listdirStat" id="listdirStat" ref="eric6.MicroPython.MicroPythonFileSystemUtilities.html#listdirStat" />
@@ -17523,6 +17549,8 @@
       <keyword name="normabspath" id="normabspath" ref="eric6.Utilities.__init__.html#normabspath" />
       <keyword name="normalizeCode" id="normalizeCode" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheck.html#normalizeCode" />
       <keyword name="normalizeCode" id="normalizeCode" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.jsCheckSyntax.html#normalizeCode" />
+      <keyword name="normalizeCode" id="normalizeCode" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.jsonCheckSyntax.html#normalizeCode" />
+      <keyword name="normalizeCode" id="normalizeCode" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.yamlCheckSyntax.html#normalizeCode" />
       <keyword name="normalize_paths" id="normalize_paths" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.html#normalize_paths" />
       <keyword name="normalize_ws" id="normalize_ws" ref="eric6.E5Network.E5RFC6266.html#normalize_ws" />
       <keyword name="normcaseabspath" id="normcaseabspath" ref="eric6.Utilities.__init__.html#normcaseabspath" />
@@ -17800,12 +17828,17 @@
       <keyword name="worker" id="worker" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleChecker.html#worker" />
       <keyword name="worker" id="worker" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheck.html#worker" />
       <keyword name="worker" id="worker" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.jsCheckSyntax.html#worker" />
+      <keyword name="worker" id="worker" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.jsonCheckSyntax.html#worker" />
+      <keyword name="worker" id="worker" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.yamlCheckSyntax.html#worker" />
       <keyword name="worker" id="worker" ref="eric6.Plugins.CheckerPlugins.Tabnanny.Tabnanny.html#worker" />
       <keyword name="wrapperNames" id="wrapperNames" ref="install.html#wrapperNames" />
       <keyword name="wrapperNames" id="wrapperNames" ref="uninstall.html#wrapperNames" />
       <keyword name="writeEncodedFile" id="writeEncodedFile" ref="eric6.Utilities.__init__.html#writeEncodedFile" />
       <keyword name="writePlist" id="writePlist" ref="eric6.Utilities.binplistlib.html#writePlist" />
       <keyword name="writePlistToBytes" id="writePlistToBytes" ref="eric6.Utilities.binplistlib.html#writePlistToBytes" />
+      <keyword name="yamlCheckSyntax (Module)" id="yamlCheckSyntax (Module)" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.yamlCheckSyntax.html" />
+      <keyword name="yamlSyntaxBatchCheck" id="yamlSyntaxBatchCheck" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.yamlCheckSyntax.html#yamlSyntaxBatchCheck" />
+      <keyword name="yamlSyntaxCheck" id="yamlSyntaxCheck" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.yamlCheckSyntax.html#yamlSyntaxCheck" />
       <keyword name="yesNo" id="yesNo" ref="eric6.E5Gui.E5MessageBox.html#yesNo" />
     </keywords>
     <files>
@@ -18054,6 +18087,8 @@
       <file>eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.html</file>
       <file>eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckerDialog.html</file>
       <file>eric6.Plugins.CheckerPlugins.SyntaxChecker.jsCheckSyntax.html</file>
+      <file>eric6.Plugins.CheckerPlugins.SyntaxChecker.jsonCheckSyntax.html</file>
+      <file>eric6.Plugins.CheckerPlugins.SyntaxChecker.yamlCheckSyntax.html</file>
       <file>eric6.Plugins.CheckerPlugins.Tabnanny.Tabnanny.html</file>
       <file>eric6.Plugins.CheckerPlugins.Tabnanny.TabnannyDialog.html</file>
       <file>eric6.Plugins.DocumentationPlugins.Ericapi.EricapiConfigDialog.html</file>
--- a/eric6/Documentation/Source/eric6.Debugger.VariablesViewer.html	Fri Nov 01 16:11:55 2019 +0100
+++ b/eric6/Documentation/Source/eric6.Debugger.VariablesViewer.html	Sun Dec 01 16:38:47 2019 +0100
@@ -69,7 +69,7 @@
 <h3>Class Attributes</h3>
 
 <table>
-<tr><td>Type2Indicators</td></tr><tr><td>arrayTypes</td></tr><tr><td>noOfItemsStr</td></tr><tr><td>nonExpandableTypes</td></tr><tr><td>rx_nonprintable</td></tr>
+<tr><td>Type2Indicators</td></tr><tr><td>arrayTypes</td></tr><tr><td>noOfItemsStr</td></tr><tr><td>nonExpandableTypes</td></tr><tr><td>rx_nonprintable</td></tr><tr><td>unsized</td></tr>
 </table>
 <h3>Class Methods</h3>
 
--- a/eric6/Documentation/Source/eric6.MicroPython.CircuitPythonDevices.html	Fri Nov 01 16:11:55 2019 +0100
+++ b/eric6/Documentation/Source/eric6.MicroPython.CircuitPythonDevices.html	Sun Dec 01 16:38:47 2019 +0100
@@ -117,6 +117,10 @@
 <td>Public method to get the device documentation URL.</td>
 </tr>
 <tr>
+<td><a href="#CircuitPythonDevice.getFirmwareUrl">getFirmwareUrl</a></td>
+<td>Public method to get the device firmware download URL.</td>
+</tr>
+<tr>
 <td><a href="#CircuitPythonDevice.getWorkspace">getWorkspace</a></td>
 <td>Public method to get the workspace directory.</td>
 </tr>
@@ -342,6 +346,25 @@
 str
 </dd>
 </dl>
+<a NAME="CircuitPythonDevice.getFirmwareUrl" ID="CircuitPythonDevice.getFirmwareUrl"></a>
+<h4>CircuitPythonDevice.getFirmwareUrl</h4>
+<b>getFirmwareUrl</b>(<i></i>)
+
+<p>
+        Public method to get the device firmware download URL.
+</p>
+<dl>
+<dt>Returns:</dt>
+<dd>
+firmware download URL of the device
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+str
+</dd>
+</dl>
 <a NAME="CircuitPythonDevice.getWorkspace" ID="CircuitPythonDevice.getWorkspace"></a>
 <h4>CircuitPythonDevice.getWorkspace</h4>
 <b>getWorkspace</b>(<i>silent=False</i>)
--- a/eric6/Documentation/Source/eric6.MicroPython.EspDevices.html	Fri Nov 01 16:11:55 2019 +0100
+++ b/eric6/Documentation/Source/eric6.MicroPython.EspDevices.html	Sun Dec 01 16:38:47 2019 +0100
@@ -126,6 +126,10 @@
 <td>Public method to get the device documentation URL.</td>
 </tr>
 <tr>
+<td><a href="#EspDevice.getFirmwareUrl">getFirmwareUrl</a></td>
+<td>Public method to get the device firmware download URL.</td>
+</tr>
+<tr>
 <td><a href="#EspDevice.runScript">runScript</a></td>
 <td>Public method to run the given Python script.</td>
 </tr>
@@ -352,6 +356,25 @@
 str
 </dd>
 </dl>
+<a NAME="EspDevice.getFirmwareUrl" ID="EspDevice.getFirmwareUrl"></a>
+<h4>EspDevice.getFirmwareUrl</h4>
+<b>getFirmwareUrl</b>(<i></i>)
+
+<p>
+        Public method to get the device firmware download URL.
+</p>
+<dl>
+<dt>Returns:</dt>
+<dd>
+firmware download URL of the device
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+str
+</dd>
+</dl>
 <a NAME="EspDevice.runScript" ID="EspDevice.runScript"></a>
 <h4>EspDevice.runScript</h4>
 <b>runScript</b>(<i>script</i>)
--- a/eric6/Documentation/Source/eric6.MicroPython.MicroPythonDevices.html	Fri Nov 01 16:11:55 2019 +0100
+++ b/eric6/Documentation/Source/eric6.MicroPython.MicroPythonDevices.html	Sun Dec 01 16:38:47 2019 +0100
@@ -122,6 +122,10 @@
 <td>Public method to get the device documentation URL.</td>
 </tr>
 <tr>
+<td><a href="#MicroPythonDevice.getFirmwareUrl">getFirmwareUrl</a></td>
+<td>Public method to get the device firmware download URL.</td>
+</tr>
+<tr>
 <td><a href="#MicroPythonDevice.getWorkspace">getWorkspace</a></td>
 <td>Public method to get the workspace directory.</td>
 </tr>
@@ -134,6 +138,10 @@
 <td>Public method to check, if the device has a configured documentation URL.</td>
 </tr>
 <tr>
+<td><a href="#MicroPythonDevice.hasFirmwareUrl">hasFirmwareUrl</a></td>
+<td>Public method to check, if the device has a configured firmware download URL.</td>
+</tr>
+<tr>
 <td><a href="#MicroPythonDevice.hasTimeCommands">hasTimeCommands</a></td>
 <td>Public method to check, if the device supports time commands.</td>
 </tr>
@@ -342,6 +350,25 @@
 str
 </dd>
 </dl>
+<a NAME="MicroPythonDevice.getFirmwareUrl" ID="MicroPythonDevice.getFirmwareUrl"></a>
+<h4>MicroPythonDevice.getFirmwareUrl</h4>
+<b>getFirmwareUrl</b>(<i></i>)
+
+<p>
+        Public method to get the device firmware download URL.
+</p>
+<dl>
+<dt>Returns:</dt>
+<dd>
+firmware download URL of the device
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+str
+</dd>
+</dl>
 <a NAME="MicroPythonDevice.getWorkspace" ID="MicroPythonDevice.getWorkspace"></a>
 <h4>MicroPythonDevice.getWorkspace</h4>
 <b>getWorkspace</b>(<i></i>)
@@ -388,6 +415,26 @@
 bool
 </dd>
 </dl>
+<a NAME="MicroPythonDevice.hasFirmwareUrl" ID="MicroPythonDevice.hasFirmwareUrl"></a>
+<h4>MicroPythonDevice.hasFirmwareUrl</h4>
+<b>hasFirmwareUrl</b>(<i></i>)
+
+<p>
+        Public method to check, if the device has a configured firmware
+        download URL.
+</p>
+<dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating a configured firmware download URL
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl>
 <a NAME="MicroPythonDevice.hasTimeCommands" ID="MicroPythonDevice.hasTimeCommands"></a>
 <h4>MicroPythonDevice.hasTimeCommands</h4>
 <b>hasTimeCommands</b>(<i></i>)
--- a/eric6/Documentation/Source/eric6.MicroPython.MicroPythonWidget.html	Fri Nov 01 16:11:55 2019 +0100
+++ b/eric6/Documentation/Source/eric6.MicroPython.MicroPythonWidget.html	Sun Dec 01 16:38:47 2019 +0100
@@ -118,6 +118,10 @@
 <td>Private slot to zoom the REPL pane.</td>
 </tr>
 <tr>
+<td><a href="#MicroPythonWidget.__downloadFirmware">__downloadFirmware</a></td>
+<td>Private slot to open the firmware download page.</td>
+</tr>
+<tr>
 <td><a href="#MicroPythonWidget.__getDeviceTime">__getDeviceTime</a></td>
 <td>Private method to get a string containing the date and time of the connected device.</td>
 </tr>
@@ -174,6 +178,10 @@
 <td>Private slot to show some implementation related information.</td>
 </tr>
 <tr>
+<td><a href="#MicroPythonWidget.__showLocalAndDeviceTime">__showLocalAndDeviceTime</a></td>
+<td>Private slot to show the local and device time side-by-side.</td>
+</tr>
+<tr>
 <td><a href="#MicroPythonWidget.__showLocalTime">__showLocalTime</a></td>
 <td>Private slot to show the local date and time.</td>
 </tr>
@@ -355,6 +363,13 @@
 zoom value
 </dd>
 </dl>
+<a NAME="MicroPythonWidget.__downloadFirmware" ID="MicroPythonWidget.__downloadFirmware"></a>
+<h4>MicroPythonWidget.__downloadFirmware</h4>
+<b>__downloadFirmware</b>(<i></i>)
+
+<p>
+        Private slot to open the firmware download page.
+</p>
 <a NAME="MicroPythonWidget.__getDeviceTime" ID="MicroPythonWidget.__getDeviceTime"></a>
 <h4>MicroPythonWidget.__getDeviceTime</h4>
 <b>__getDeviceTime</b>(<i></i>)
@@ -574,6 +589,13 @@
 <p>
         Private slot to show some implementation related information.
 </p>
+<a NAME="MicroPythonWidget.__showLocalAndDeviceTime" ID="MicroPythonWidget.__showLocalAndDeviceTime"></a>
+<h4>MicroPythonWidget.__showLocalAndDeviceTime</h4>
+<b>__showLocalAndDeviceTime</b>(<i></i>)
+
+<p>
+        Private slot to show the local and device time side-by-side.
+</p>
 <a NAME="MicroPythonWidget.__showLocalTime" ID="MicroPythonWidget.__showLocalTime"></a>
 <h4>MicroPythonWidget.__showLocalTime</h4>
 <b>__showLocalTime</b>(<i></i>)
--- a/eric6/Documentation/Source/eric6.MicroPython.MicrobitDevices.html	Fri Nov 01 16:11:55 2019 +0100
+++ b/eric6/Documentation/Source/eric6.MicroPython.MicrobitDevices.html	Sun Dec 01 16:38:47 2019 +0100
@@ -121,6 +121,10 @@
 <td>Public method to get the device documentation URL.</td>
 </tr>
 <tr>
+<td><a href="#MicrobitDevice.getFirmwareUrl">getFirmwareUrl</a></td>
+<td>Public method to get the device firmware download URL.</td>
+</tr>
+<tr>
 <td><a href="#MicrobitDevice.getWorkspace">getWorkspace</a></td>
 <td>Public method to get the workspace directory.</td>
 </tr>
@@ -350,6 +354,25 @@
 str
 </dd>
 </dl>
+<a NAME="MicrobitDevice.getFirmwareUrl" ID="MicrobitDevice.getFirmwareUrl"></a>
+<h4>MicrobitDevice.getFirmwareUrl</h4>
+<b>getFirmwareUrl</b>(<i></i>)
+
+<p>
+        Public method to get the device firmware download URL.
+</p>
+<dl>
+<dt>Returns:</dt>
+<dd>
+firmware download URL of the device
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+str
+</dd>
+</dl>
 <a NAME="MicrobitDevice.getWorkspace" ID="MicrobitDevice.getWorkspace"></a>
 <h4>MicrobitDevice.getWorkspace</h4>
 <b>getWorkspace</b>(<i></i>)
--- a/eric6/Documentation/Source/eric6.MicroPython.PyBoardDevices.html	Fri Nov 01 16:11:55 2019 +0100
+++ b/eric6/Documentation/Source/eric6.MicroPython.PyBoardDevices.html	Sun Dec 01 16:38:47 2019 +0100
@@ -77,7 +77,27 @@
 <td>Private method to check, if the device volume is mounted.</td>
 </tr>
 <tr>
-<td><a href="#PyBoardDevice.__showInstallInstructions">__showInstallInstructions</a></td>
+<td><a href="#PyBoardDevice.__dfuUtilAvailable">__dfuUtilAvailable</a></td>
+<td>Private method to check the availability of dfu-util.</td>
+</tr>
+<tr>
+<td><a href="#PyBoardDevice.__flashMicroPython">__flashMicroPython</a></td>
+<td>Private slot to flash a MicroPython firmware.</td>
+</tr>
+<tr>
+<td><a href="#PyBoardDevice.__listDfuCapableDevices">__listDfuCapableDevices</a></td>
+<td>Private slot to list all DFU-capable devices.</td>
+</tr>
+<tr>
+<td><a href="#PyBoardDevice.__showDfuDisableInstructions">__showDfuDisableInstructions</a></td>
+<td>Private method to show some instructions to disable the DFU mode.</td>
+</tr>
+<tr>
+<td><a href="#PyBoardDevice.__showDfuEnableInstructions">__showDfuEnableInstructions</a></td>
+<td>Private method to show some instructions to enable the DFU mode.</td>
+</tr>
+<tr>
+<td><a href="#PyBoardDevice.__showFlashInstructions">__showFlashInstructions</a></td>
 <td>Private slot to open the URL containing instructions for installing MicroPython on the pyboard.</td>
 </tr>
 <tr>
@@ -113,6 +133,10 @@
 <td>Public method to get the device documentation URL.</td>
 </tr>
 <tr>
+<td><a href="#PyBoardDevice.getFirmwareUrl">getFirmwareUrl</a></td>
+<td>Public method to get the device firmware download URL.</td>
+</tr>
+<tr>
 <td><a href="#PyBoardDevice.getWorkspace">getWorkspace</a></td>
 <td>Public method to get the workspace directory.</td>
 </tr>
@@ -172,9 +196,75 @@
 bool
 </dd>
 </dl>
-<a NAME="PyBoardDevice.__showInstallInstructions" ID="PyBoardDevice.__showInstallInstructions"></a>
-<h4>PyBoardDevice.__showInstallInstructions</h4>
-<b>__showInstallInstructions</b>(<i></i>)
+<a NAME="PyBoardDevice.__dfuUtilAvailable" ID="PyBoardDevice.__dfuUtilAvailable"></a>
+<h4>PyBoardDevice.__dfuUtilAvailable</h4>
+<b>__dfuUtilAvailable</b>(<i></i>)
+
+<p>
+        Private method to check the availability of dfu-util.
+</p>
+<dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating the availability of dfu-util
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl>
+<a NAME="PyBoardDevice.__flashMicroPython" ID="PyBoardDevice.__flashMicroPython"></a>
+<h4>PyBoardDevice.__flashMicroPython</h4>
+<b>__flashMicroPython</b>(<i></i>)
+
+<p>
+        Private slot to flash a MicroPython firmware.
+</p>
+<a NAME="PyBoardDevice.__listDfuCapableDevices" ID="PyBoardDevice.__listDfuCapableDevices"></a>
+<h4>PyBoardDevice.__listDfuCapableDevices</h4>
+<b>__listDfuCapableDevices</b>(<i></i>)
+
+<p>
+        Private slot to list all DFU-capable devices.
+</p>
+<a NAME="PyBoardDevice.__showDfuDisableInstructions" ID="PyBoardDevice.__showDfuDisableInstructions"></a>
+<h4>PyBoardDevice.__showDfuDisableInstructions</h4>
+<b>__showDfuDisableInstructions</b>(<i></i>)
+
+<p>
+        Private method to show some instructions to disable the DFU mode.
+</p>
+<a NAME="PyBoardDevice.__showDfuEnableInstructions" ID="PyBoardDevice.__showDfuEnableInstructions"></a>
+<h4>PyBoardDevice.__showDfuEnableInstructions</h4>
+<b>__showDfuEnableInstructions</b>(<i>flash=True</i>)
+
+<p>
+        Private method to show some instructions to enable the DFU mode.
+</p>
+<dl>
+
+<dt><i>flash</i> (bool)</dt>
+<dd>
+flag indicating to show a warning message for flashing
+</dd>
+</dl>
+<dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating OK to continue or abort
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl>
+<a NAME="PyBoardDevice.__showFlashInstructions" ID="PyBoardDevice.__showFlashInstructions"></a>
+<h4>PyBoardDevice.__showFlashInstructions</h4>
+<b>__showFlashInstructions</b>(<i></i>)
 
 <p>
         Private slot to open the URL containing instructions for installing
@@ -332,6 +422,25 @@
 str
 </dd>
 </dl>
+<a NAME="PyBoardDevice.getFirmwareUrl" ID="PyBoardDevice.getFirmwareUrl"></a>
+<h4>PyBoardDevice.getFirmwareUrl</h4>
+<b>getFirmwareUrl</b>(<i></i>)
+
+<p>
+        Public method to get the device firmware download URL.
+</p>
+<dl>
+<dt>Returns:</dt>
+<dd>
+firmware download URL of the device
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+str
+</dd>
+</dl>
 <a NAME="PyBoardDevice.getWorkspace" ID="PyBoardDevice.getWorkspace"></a>
 <h4>PyBoardDevice.getWorkspace</h4>
 <b>getWorkspace</b>(<i>silent=False</i>)
--- a/eric6/Documentation/Source/eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheck.html	Fri Nov 01 16:11:55 2019 +0100
+++ b/eric6/Documentation/Source/eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheck.html	Sun Dec 01 16:38:47 2019 +0100
@@ -69,7 +69,7 @@
 </tr>
 <tr>
 <td><a href="#worker">worker</a></td>
-<td>Module function acting as the parallel worker for the style check.</td>
+<td>Module function acting as the parallel worker for the syntax check.</td>
 </tr>
 </table>
 <hr />
@@ -284,7 +284,7 @@
 <b>worker</b>(<i>inputQueue, outputQueue</i>)
 
 <p>
-    Module function acting as the parallel worker for the style check.
+    Module function acting as the parallel worker for the syntax check.
 </p>
 <dl>
 
--- a/eric6/Documentation/Source/eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.html	Fri Nov 01 16:11:55 2019 +0100
+++ b/eric6/Documentation/Source/eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.html	Sun Dec 01 16:38:47 2019 +0100
@@ -128,6 +128,10 @@
 <td>Public method to remove the language from syntax check.</td>
 </tr>
 <tr>
+<td><a href="#SyntaxCheckService.serviceErrorJSON">serviceErrorJSON</a></td>
+<td>Public method handling service errors for JSON.</td>
+</tr>
+<tr>
 <td><a href="#SyntaxCheckService.serviceErrorJavaScript">serviceErrorJavaScript</a></td>
 <td>Public method handling service errors for JavaScript.</td>
 </tr>
@@ -140,6 +144,10 @@
 <td>Public method handling service errors for Python 2.</td>
 </tr>
 <tr>
+<td><a href="#SyntaxCheckService.serviceErrorYAML">serviceErrorYAML</a></td>
+<td>Public method handling service errors for YAML.</td>
+</tr>
+<tr>
 <td><a href="#SyntaxCheckService.syntaxBatchCheck">syntaxBatchCheck</a></td>
 <td>Public method to prepare a syntax check on multiple source files.</td>
 </tr>
@@ -314,6 +322,32 @@
 language to remove (str)
 </dd>
 </dl>
+<a NAME="SyntaxCheckService.serviceErrorJSON" ID="SyntaxCheckService.serviceErrorJSON"></a>
+<h4>SyntaxCheckService.serviceErrorJSON</h4>
+<b>serviceErrorJSON</b>(<i>fx, lang, fn, msg</i>)
+
+<p>
+        Public method handling service errors for JSON.
+</p>
+<dl>
+
+<dt><i>fx</i></dt>
+<dd>
+service name (string)
+</dd>
+<dt><i>lang</i></dt>
+<dd>
+language (string)
+</dd>
+<dt><i>fn</i></dt>
+<dd>
+file name (string)
+</dd>
+<dt><i>msg</i></dt>
+<dd>
+message text (string)
+</dd>
+</dl>
 <a NAME="SyntaxCheckService.serviceErrorJavaScript" ID="SyntaxCheckService.serviceErrorJavaScript"></a>
 <h4>SyntaxCheckService.serviceErrorJavaScript</h4>
 <b>serviceErrorJavaScript</b>(<i>fx, lang, fn, msg</i>)
@@ -392,6 +426,32 @@
 message text (string)
 </dd>
 </dl>
+<a NAME="SyntaxCheckService.serviceErrorYAML" ID="SyntaxCheckService.serviceErrorYAML"></a>
+<h4>SyntaxCheckService.serviceErrorYAML</h4>
+<b>serviceErrorYAML</b>(<i>fx, lang, fn, msg</i>)
+
+<p>
+        Public method handling service errors for YAML.
+</p>
+<dl>
+
+<dt><i>fx</i></dt>
+<dd>
+service name (string)
+</dd>
+<dt><i>lang</i></dt>
+<dd>
+language (string)
+</dd>
+<dt><i>fn</i></dt>
+<dd>
+file name (string)
+</dd>
+<dt><i>msg</i></dt>
+<dd>
+message text (string)
+</dd>
+</dl>
 <a NAME="SyntaxCheckService.syntaxBatchCheck" ID="SyntaxCheckService.syntaxBatchCheck"></a>
 <h4>SyntaxCheckService.syntaxBatchCheck</h4>
 <b>syntaxBatchCheck</b>(<i>argumentsList</i>)
--- a/eric6/Documentation/Source/eric6.Plugins.CheckerPlugins.SyntaxChecker.jsCheckSyntax.html	Fri Nov 01 16:11:55 2019 +0100
+++ b/eric6/Documentation/Source/eric6.Plugins.CheckerPlugins.SyntaxChecker.jsCheckSyntax.html	Sun Dec 01 16:38:47 2019 +0100
@@ -23,7 +23,7 @@
 <h1>eric6.Plugins.CheckerPlugins.SyntaxChecker.jsCheckSyntax</h1>
 
 <p>
-Module implementing the syntax check for Python 2/3.
+Module implementing the syntax check for JavaScript.
 </p>
 <h3>Global Attributes</h3>
 
@@ -65,7 +65,7 @@
 </tr>
 <tr>
 <td><a href="#worker">worker</a></td>
-<td>Module function acting as the parallel worker for the style check.</td>
+<td>Module function acting as the parallel worker for the syntax check.</td>
 </tr>
 </table>
 <hr />
@@ -223,7 +223,7 @@
 <b>worker</b>(<i>inputQueue, outputQueue</i>)
 
 <p>
-    Module function acting as the parallel worker for the style check.
+    Module function acting as the parallel worker for the syntax check.
 </p>
 <dl>
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric6/Documentation/Source/eric6.Plugins.CheckerPlugins.SyntaxChecker.jsonCheckSyntax.html	Sun Dec 01 16:38:47 2019 +0100
@@ -0,0 +1,271 @@
+<!DOCTYPE html>
+<html><head>
+<title>eric6.Plugins.CheckerPlugins.SyntaxChecker.jsonCheckSyntax</title>
+<meta charset="UTF-8">
+<style>
+body {
+    background: #EDECE6;
+    margin: 0em 1em 10em 1em;
+    color: black;
+}
+
+h1 { color: white; background: #85774A; }
+h2 { color: white; background: #85774A; }
+h3 { color: white; background: #9D936E; }
+h4 { color: white; background: #9D936E; }
+    
+a { color: #BA6D36; }
+
+</style>
+</head>
+<body>
+<a NAME="top" ID="top"></a>
+<h1>eric6.Plugins.CheckerPlugins.SyntaxChecker.jsonCheckSyntax</h1>
+
+<p>
+Module implementing the syntax check for JSON.
+</p>
+<h3>Global Attributes</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Functions</h3>
+
+<table>
+
+<tr>
+<td><a href="#__jsonSyntaxCheck">__jsonSyntaxCheck</a></td>
+<td>Function to check a YAML source file for syntax errors.</td>
+</tr>
+<tr>
+<td><a href="#initBatchService">initBatchService</a></td>
+<td>Initialize the batch service and return the entry point.</td>
+</tr>
+<tr>
+<td><a href="#initService">initService</a></td>
+<td>Initialize the service and return the entry point.</td>
+</tr>
+<tr>
+<td><a href="#jsonSyntaxBatchCheck">jsonSyntaxBatchCheck</a></td>
+<td>Module function to check syntax for a batch of files.</td>
+</tr>
+<tr>
+<td><a href="#jsonSyntaxCheck">jsonSyntaxCheck</a></td>
+<td>Function to check a JSON source file for syntax errors.</td>
+</tr>
+<tr>
+<td><a href="#normalizeCode">normalizeCode</a></td>
+<td>Function to normalize the given code.</td>
+</tr>
+<tr>
+<td><a href="#worker">worker</a></td>
+<td>Module function acting as the parallel worker for the syntax check.</td>
+</tr>
+</table>
+<hr />
+<hr />
+<a NAME="__jsonSyntaxCheck" ID="__jsonSyntaxCheck"></a>
+<h2>__jsonSyntaxCheck</h2>
+<b>__jsonSyntaxCheck</b>(<i>file, codestring</i>)
+
+<p>
+    Function to check a YAML source file for syntax errors.
+</p>
+<dl>
+
+<dt><i>file</i> (str)</dt>
+<dd>
+source filename
+</dd>
+<dt><i>codestring</i> (str)</dt>
+<dd>
+string containing the code to check
+</dd>
+</dl>
+<dl>
+<dt>Returns:</dt>
+<dd>
+dictionary with the keys 'error' and 'warnings' which
+            hold a list containing details about the error/ warnings
+            (file name, line number, column, codestring (only at syntax
+            errors), the message, a list with arguments for the message)
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+dict
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
+<a NAME="initBatchService" ID="initBatchService"></a>
+<h2>initBatchService</h2>
+<b>initBatchService</b>(<i></i>)
+
+<p>
+    Initialize the batch service and return the entry point.
+</p>
+<dl>
+<dt>Returns:</dt>
+<dd>
+the entry point for the background client
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+func
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
+<a NAME="initService" ID="initService"></a>
+<h2>initService</h2>
+<b>initService</b>(<i></i>)
+
+<p>
+    Initialize the service and return the entry point.
+</p>
+<dl>
+<dt>Returns:</dt>
+<dd>
+the entry point for the background client
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+func
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
+<a NAME="jsonSyntaxBatchCheck" ID="jsonSyntaxBatchCheck"></a>
+<h2>jsonSyntaxBatchCheck</h2>
+<b>jsonSyntaxBatchCheck</b>(<i>argumentsList, send, fx, cancelled, maxProcesses=0</i>)
+
+<p>
+    Module function to check syntax for a batch of files.
+</p>
+<dl>
+
+<dt><i>argumentsList</i> (list)</dt>
+<dd>
+list of arguments tuples as given for yamlSyntaxCheck
+</dd>
+<dt><i>send</i> (func)</dt>
+<dd>
+reference to send function
+</dd>
+<dt><i>fx</i> (str)</dt>
+<dd>
+registered service name
+</dd>
+<dt><i>cancelled</i> (func)</dt>
+<dd>
+reference to function checking for a cancellation
+</dd>
+<dt><i>maxProcesses</i> (int)</dt>
+<dd>
+number of processes to be used
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
+<a NAME="jsonSyntaxCheck" ID="jsonSyntaxCheck"></a>
+<h2>jsonSyntaxCheck</h2>
+<b>jsonSyntaxCheck</b>(<i>file, codestring</i>)
+
+<p>
+    Function to check a JSON source file for syntax errors.
+</p>
+<dl>
+
+<dt><i>file</i> (str)</dt>
+<dd>
+source filename
+</dd>
+<dt><i>codestring</i> (str)</dt>
+<dd>
+string containing the code to check
+</dd>
+</dl>
+<dl>
+<dt>Returns:</dt>
+<dd>
+dictionary with the keys 'error' and 'warnings' which
+            hold a list containing details about the error/ warnings
+            (file name, line number, column, codestring (only at syntax
+            errors), the message, a list with arguments for the message)
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+dict
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
+<a NAME="normalizeCode" ID="normalizeCode"></a>
+<h2>normalizeCode</h2>
+<b>normalizeCode</b>(<i>codestring</i>)
+
+<p>
+    Function to normalize the given code.
+</p>
+<dl>
+
+<dt><i>codestring</i> (str)</dt>
+<dd>
+code to be normalized
+</dd>
+</dl>
+<dl>
+<dt>Returns:</dt>
+<dd>
+normalized code
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+str
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
+<a NAME="worker" ID="worker"></a>
+<h2>worker</h2>
+<b>worker</b>(<i>inputQueue, outputQueue</i>)
+
+<p>
+    Module function acting as the parallel worker for the syntax check.
+</p>
+<dl>
+
+<dt><i>inputQueue</i> (multiprocessing.Queue)</dt>
+<dd>
+input queue
+</dd>
+<dt><i>outputQueue</i> (multiprocessing.Queue)</dt>
+<dd>
+output queue
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric6/Documentation/Source/eric6.Plugins.CheckerPlugins.SyntaxChecker.yamlCheckSyntax.html	Sun Dec 01 16:38:47 2019 +0100
@@ -0,0 +1,271 @@
+<!DOCTYPE html>
+<html><head>
+<title>eric6.Plugins.CheckerPlugins.SyntaxChecker.yamlCheckSyntax</title>
+<meta charset="UTF-8">
+<style>
+body {
+    background: #EDECE6;
+    margin: 0em 1em 10em 1em;
+    color: black;
+}
+
+h1 { color: white; background: #85774A; }
+h2 { color: white; background: #85774A; }
+h3 { color: white; background: #9D936E; }
+h4 { color: white; background: #9D936E; }
+    
+a { color: #BA6D36; }
+
+</style>
+</head>
+<body>
+<a NAME="top" ID="top"></a>
+<h1>eric6.Plugins.CheckerPlugins.SyntaxChecker.yamlCheckSyntax</h1>
+
+<p>
+Module implementing the syntax check for YAML.
+</p>
+<h3>Global Attributes</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Functions</h3>
+
+<table>
+
+<tr>
+<td><a href="#__yamlSyntaxCheck">__yamlSyntaxCheck</a></td>
+<td>Function to check a YAML source file for syntax errors.</td>
+</tr>
+<tr>
+<td><a href="#initBatchService">initBatchService</a></td>
+<td>Initialize the batch service and return the entry point.</td>
+</tr>
+<tr>
+<td><a href="#initService">initService</a></td>
+<td>Initialize the service and return the entry point.</td>
+</tr>
+<tr>
+<td><a href="#normalizeCode">normalizeCode</a></td>
+<td>Function to normalize the given code.</td>
+</tr>
+<tr>
+<td><a href="#worker">worker</a></td>
+<td>Module function acting as the parallel worker for the syntax check.</td>
+</tr>
+<tr>
+<td><a href="#yamlSyntaxBatchCheck">yamlSyntaxBatchCheck</a></td>
+<td>Module function to check syntax for a batch of files.</td>
+</tr>
+<tr>
+<td><a href="#yamlSyntaxCheck">yamlSyntaxCheck</a></td>
+<td>Function to check a YAML source file for syntax errors.</td>
+</tr>
+</table>
+<hr />
+<hr />
+<a NAME="__yamlSyntaxCheck" ID="__yamlSyntaxCheck"></a>
+<h2>__yamlSyntaxCheck</h2>
+<b>__yamlSyntaxCheck</b>(<i>file, codestring</i>)
+
+<p>
+    Function to check a YAML source file for syntax errors.
+</p>
+<dl>
+
+<dt><i>file</i> (str)</dt>
+<dd>
+source filename
+</dd>
+<dt><i>codestring</i> (str)</dt>
+<dd>
+string containing the code to check
+</dd>
+</dl>
+<dl>
+<dt>Returns:</dt>
+<dd>
+dictionary with the keys 'error' and 'warnings' which
+            hold a list containing details about the error/ warnings
+            (file name, line number, column, codestring (only at syntax
+            errors), the message, a list with arguments for the message)
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+dict
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
+<a NAME="initBatchService" ID="initBatchService"></a>
+<h2>initBatchService</h2>
+<b>initBatchService</b>(<i></i>)
+
+<p>
+    Initialize the batch service and return the entry point.
+</p>
+<dl>
+<dt>Returns:</dt>
+<dd>
+the entry point for the background client
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+func
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
+<a NAME="initService" ID="initService"></a>
+<h2>initService</h2>
+<b>initService</b>(<i></i>)
+
+<p>
+    Initialize the service and return the entry point.
+</p>
+<dl>
+<dt>Returns:</dt>
+<dd>
+the entry point for the background client
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+func
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
+<a NAME="normalizeCode" ID="normalizeCode"></a>
+<h2>normalizeCode</h2>
+<b>normalizeCode</b>(<i>codestring</i>)
+
+<p>
+    Function to normalize the given code.
+</p>
+<dl>
+
+<dt><i>codestring</i> (str)</dt>
+<dd>
+code to be normalized
+</dd>
+</dl>
+<dl>
+<dt>Returns:</dt>
+<dd>
+normalized code
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+str
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
+<a NAME="worker" ID="worker"></a>
+<h2>worker</h2>
+<b>worker</b>(<i>inputQueue, outputQueue</i>)
+
+<p>
+    Module function acting as the parallel worker for the syntax check.
+</p>
+<dl>
+
+<dt><i>inputQueue</i> (multiprocessing.Queue)</dt>
+<dd>
+input queue
+</dd>
+<dt><i>outputQueue</i> (multiprocessing.Queue)</dt>
+<dd>
+output queue
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
+<a NAME="yamlSyntaxBatchCheck" ID="yamlSyntaxBatchCheck"></a>
+<h2>yamlSyntaxBatchCheck</h2>
+<b>yamlSyntaxBatchCheck</b>(<i>argumentsList, send, fx, cancelled, maxProcesses=0</i>)
+
+<p>
+    Module function to check syntax for a batch of files.
+</p>
+<dl>
+
+<dt><i>argumentsList</i> (list)</dt>
+<dd>
+list of arguments tuples as given for yamlSyntaxCheck
+</dd>
+<dt><i>send</i> (func)</dt>
+<dd>
+reference to send function
+</dd>
+<dt><i>fx</i> (str)</dt>
+<dd>
+registered service name
+</dd>
+<dt><i>cancelled</i> (func)</dt>
+<dd>
+reference to function checking for a cancellation
+</dd>
+<dt><i>maxProcesses</i> (int)</dt>
+<dd>
+number of processes to be used
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+<hr />
+<a NAME="yamlSyntaxCheck" ID="yamlSyntaxCheck"></a>
+<h2>yamlSyntaxCheck</h2>
+<b>yamlSyntaxCheck</b>(<i>file, codestring</i>)
+
+<p>
+    Function to check a YAML source file for syntax errors.
+</p>
+<dl>
+
+<dt><i>file</i> (str)</dt>
+<dd>
+source filename
+</dd>
+<dt><i>codestring</i> (str)</dt>
+<dd>
+string containing the code to check
+</dd>
+</dl>
+<dl>
+<dt>Returns:</dt>
+<dd>
+dictionary with the keys 'error' and 'warnings' which
+            hold a list containing details about the error/ warnings
+            (file name, line number, column, codestring (only at syntax
+            errors), the message, a list with arguments for the message)
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+dict
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/index-eric6.Plugins.CheckerPlugins.SyntaxChecker.html	Fri Nov 01 16:11:55 2019 +0100
+++ b/eric6/Documentation/Source/index-eric6.Plugins.CheckerPlugins.SyntaxChecker.html	Sun Dec 01 16:38:47 2019 +0100
@@ -43,7 +43,15 @@
 </tr>
 <tr>
 <td><a href="eric6.Plugins.CheckerPlugins.SyntaxChecker.jsCheckSyntax.html">jsCheckSyntax</a></td>
-<td>Module implementing the syntax check for Python 2/3.</td>
+<td>Module implementing the syntax check for JavaScript.</td>
+</tr>
+<tr>
+<td><a href="eric6.Plugins.CheckerPlugins.SyntaxChecker.jsonCheckSyntax.html">jsonCheckSyntax</a></td>
+<td>Module implementing the syntax check for JSON.</td>
+</tr>
+<tr>
+<td><a href="eric6.Plugins.CheckerPlugins.SyntaxChecker.yamlCheckSyntax.html">yamlCheckSyntax</a></td>
+<td>Module implementing the syntax check for YAML.</td>
 </tr>
 </table>
 </body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/install.html	Fri Nov 01 16:11:55 2019 +0100
+++ b/eric6/Documentation/Source/install.html	Sun Dec 01 16:38:47 2019 +0100
@@ -28,7 +28,7 @@
 <h3>Global Attributes</h3>
 
 <table>
-<tr><td>BlackLists</td></tr><tr><td>PlatformsBlackLists</td></tr><tr><td>apisDir</td></tr><tr><td>cfg</td></tr><tr><td>configLength</td></tr><tr><td>configName</td></tr><tr><td>currDir</td></tr><tr><td>defaultMacAppBundleName</td></tr><tr><td>defaultMacAppBundlePath</td></tr><tr><td>defaultMacPythonExe</td></tr><tr><td>distDir</td></tr><tr><td>doCleanDesktopLinks</td></tr><tr><td>doCleanup</td></tr><tr><td>doCompile</td></tr><tr><td>eric6SourceDir</td></tr><tr><td>forceCleanDesktopLinks</td></tr><tr><td>installApis</td></tr><tr><td>macAppBundleName</td></tr><tr><td>macAppBundlePath</td></tr><tr><td>macPythonExe</td></tr><tr><td>modDir</td></tr><tr><td>platBinDir</td></tr><tr><td>platBinDirOld</td></tr><tr><td>progLanguages</td></tr><tr><td>progName</td></tr><tr><td>pyModDir</td></tr><tr><td>sourceDir</td></tr>
+<tr><td>BlackLists</td></tr><tr><td>PlatformsBlackLists</td></tr><tr><td>apisDir</td></tr><tr><td>cfg</td></tr><tr><td>configLength</td></tr><tr><td>configName</td></tr><tr><td>currDir</td></tr><tr><td>defaultMacAppBundleName</td></tr><tr><td>defaultMacAppBundlePath</td></tr><tr><td>defaultMacPythonExe</td></tr><tr><td>distDir</td></tr><tr><td>doCleanDesktopLinks</td></tr><tr><td>doCleanup</td></tr><tr><td>doCompile</td></tr><tr><td>eric6SourceDir</td></tr><tr><td>forceCleanDesktopLinks</td></tr><tr><td>installApis</td></tr><tr><td>macAppBundleName</td></tr><tr><td>macAppBundlePath</td></tr><tr><td>macPythonExe</td></tr><tr><td>modDir</td></tr><tr><td>platBinDir</td></tr><tr><td>platBinDirOld</td></tr><tr><td>progLanguages</td></tr><tr><td>progName</td></tr><tr><td>pyModDir</td></tr><tr><td>sourceDir</td></tr><tr><td>yes2All</td></tr>
 </table>
 <h3>Classes</h3>
 
--- a/eric6/MicroPython/CircuitPythonDevices.py	Fri Nov 01 16:11:55 2019 +0100
+++ b/eric6/MicroPython/CircuitPythonDevices.py	Sun Dec 01 16:38:47 2019 +0100
@@ -244,3 +244,12 @@
         @rtype str
         """
         return Preferences.getMicroPython("CircuitPythonDocuUrl")
+    
+    def getFirmwareUrl(self):
+        """
+        Public method to get the device firmware download URL.
+        
+        @return firmware download URL of the device
+        @rtype str
+        """
+        return Preferences.getMicroPython("CircuitPythonFirmwareUrl")
--- a/eric6/MicroPython/EspDevices.py	Fri Nov 01 16:11:55 2019 +0100
+++ b/eric6/MicroPython/EspDevices.py	Sun Dec 01 16:38:47 2019 +0100
@@ -24,6 +24,16 @@
 import Preferences
 
 
+# TODO: add backupFlash: python ./esptool.py --port /dev/ttyUSB4 --baud 115200 read_flash 0x00000 0x400000 backup.img
+#       selection of sizes: 1MB, 2MB, 4MB, 8MB, 16M (0x100000, 0x200000, 0x400000, 0x800000, 0x1000000)
+#       ESP8266: 256KB, 512KB (0x40000, 0x80000)
+# TODO: add restoreFlash: python esptool.py --port /dev/ttyUSB4 write_flash --flash_mode qio 0x00000 backup.img
+#       alternative modes for --flash_mode: qio,qout,dio,dout
+#       optional: --flash_size 1MB, 2MB, 4MB, 8MB, 16M (ESP8266 zusätzlich 256KB, 512KB)
+# TODO: add showChipID: python esptool.py  --port /dev/ttyUSB4  --baud 115200 chip_id
+# TODO: add showFlashID: python esptool.py  --port /dev/ttyUSB4  --baud 115200 flash_id
+# TODO: add readMAC: python esptool.py  --port /dev/ttyUSB4  --baud 115200 read_mac
+
 class EspDevice(MicroPythonDevice):
     """
     Class implementing the device for ESP32 and ESP8266 based boards.
@@ -246,3 +256,12 @@
         @rtype str
         """
         return Preferences.getMicroPython("MicroPythonDocuUrl")
+    
+    def getFirmwareUrl(self):
+        """
+        Public method to get the device firmware download URL.
+        
+        @return firmware download URL of the device
+        @rtype str
+        """
+        return Preferences.getMicroPython("MicroPythonFirmwareUrl")
--- a/eric6/MicroPython/MicroPythonDevices.py	Fri Nov 01 16:11:55 2019 +0100
+++ b/eric6/MicroPython/MicroPythonDevices.py	Sun Dec 01 16:38:47 2019 +0100
@@ -368,3 +368,22 @@
         @rtype str
         """
         return ""
+    
+    def hasFirmwareUrl(self):
+        """
+        Public method to check, if the device has a configured firmware
+        download URL.
+        
+        @return flag indicating a configured firmware download URL
+        @rtype bool
+        """
+        return bool(self.getFirmwareUrl())
+    
+    def getFirmwareUrl(self):
+        """
+        Public method to get the device firmware download URL.
+        
+        @return firmware download URL of the device
+        @rtype str
+        """
+        return ""
--- a/eric6/MicroPython/MicroPythonWidget.py	Fri Nov 01 16:11:55 2019 +0100
+++ b/eric6/MicroPython/MicroPythonWidget.py	Sun Dec 01 16:38:47 2019 +0100
@@ -1109,7 +1109,10 @@
             act.setEnabled(self.__connected)
         self.__superMenu.addAction(
             self.tr("Show Local Time"), self.__showLocalTime)
-        # TODO: add entry to show local and device time side-by-side
+        if hasTime:
+            act = self.__superMenu.addAction(
+                self.tr("Show Time"), self.__showLocalAndDeviceTime)
+            act.setEnabled(self.__connected)
         self.__superMenu.addSeparator()
         if not Globals.isWindowsPlatform():
             available = self.__mpyCrossAvailable()
@@ -1125,6 +1128,10 @@
             self.__device.addDeviceMenuEntries(self.__superMenu)
             self.__superMenu.addSeparator()
             act = self.__superMenu.addAction(
+                self.tr("Download Firmware"), self.__downloadFirmware)
+            act.setEnabled(self.__device.hasFirmwareUrl())
+            self.__superMenu.addSeparator()
+            act = self.__superMenu.addAction(
                 self.tr("Show Documentation"), self.__showDocumentation)
             act.setEnabled(self.__device.hasDocumentationUrl())
         self.__superMenu.addSeparator()
@@ -1255,7 +1262,7 @@
         Private slot to show the local date and time.
         """
         localdatetime = time.localtime()
-        loacldate = time.strftime('%Y-%m-%d', localdatetime)
+        localdate = time.strftime('%Y-%m-%d', localdatetime)
         localtime = time.strftime('%H:%M:%S', localdatetime)
         E5MessageBox.information(
             self,
@@ -1265,9 +1272,56 @@
                     "<tr><td><b>Date</b></td><td>{0}</td></tr>"
                     "<tr><td><b>Time</b></td><td>{1}</td></tr>"
                     "</table>"
-                    ).format(loacldate, localtime)
+                    ).format(localdate, localtime)
         )
     
+    @pyqtSlot()
+    def __showLocalAndDeviceTime(self):
+        """
+        Private slot to show the local and device time side-by-side.
+        """
+        localdatetime = time.localtime()
+        localdate = time.strftime('%Y-%m-%d', localdatetime)
+        localtime = time.strftime('%H:%M:%S', localdatetime)
+        
+        try:
+            deviceDateTimeString = self.__interface.getTime()
+            try:
+                devicedate, devicetime = (
+                    deviceDateTimeString.strip().split(None, 1)
+                )
+                E5MessageBox.information(
+                    self,
+                    self.tr("Date and Time"),
+                    self.tr("<table>"
+                            "<tr><th></th><th>Local Date and Time</th>"
+                            "<th>Device Date and Time</th></tr>"
+                            "<tr><td><b>Date</b></td>"
+                            "<td align='center'>{0}</td>"
+                            "<td align='center'>{2}</td></tr>"
+                            "<tr><td><b>Time</b></td>"
+                            "<td align='center'>{1}</td>"
+                            "<td align='center'>{3}</td></tr>"
+                            "</table>"
+                            ).format(localdate, localtime,
+                                     devicedate, devicetime)
+                )
+            except ValueError:
+                E5MessageBox.information(
+                    self,
+                    self.tr("Date and Time"),
+                    self.tr("<table>"
+                            "<tr><th>Local Date and Time</th>"
+                            "<th>Device Date and Time</th></tr>"
+                            "<tr><td align='center'>{0} {1}</td>"
+                            "<td align='center'>{2}</td></tr>"
+                            "</table>"
+                            ).format(localdate, localtime,
+                                     deviceDateTimeString.strip())
+                )
+        except Exception as exc:
+            self.__showError("getTime()", str(exc))
+    
     def __showError(self, method, error):
         """
         Private method to show some error message.
@@ -1402,6 +1456,18 @@
         e5App().getObject("UserInterface").launchHelpViewer(url)
     
     @pyqtSlot()
+    def __downloadFirmware(self):
+        """
+        Private slot to open the firmware download page.
+        """
+        if self.__device is None or not self.__device.hasFirmwareUrl():
+            # abort silently
+            return
+        
+        url = self.__device.getFirmwareUrl()
+        e5App().getObject("UserInterface").launchHelpViewer(url)
+    
+    @pyqtSlot()
     def __configure(self):
         """
         Private slot to open the MicroPython configuration page.
--- a/eric6/MicroPython/MicrobitDevices.py	Fri Nov 01 16:11:55 2019 +0100
+++ b/eric6/MicroPython/MicrobitDevices.py	Sun Dec 01 16:38:47 2019 +0100
@@ -299,3 +299,12 @@
         @rtype str
         """
         return Preferences.getMicroPython("MicrobitDocuUrl")
+    
+    def getFirmwareUrl(self):
+        """
+        Public method to get the device firmware download URL.
+        
+        @return firmware download URL of the device
+        @rtype str
+        """
+        return Preferences.getMicroPython("MicrobitFirmwareUrl")
--- a/eric6/MicroPython/PyBoardDevices.py	Fri Nov 01 16:11:55 2019 +0100
+++ b/eric6/MicroPython/PyBoardDevices.py	Sun Dec 01 16:38:47 2019 +0100
@@ -7,8 +7,13 @@
 Module implementing the device interface class for PyBoard boards.
 """
 
-from E5Gui import E5MessageBox
+import os
+
+from PyQt5.QtCore import pyqtSlot, QStandardPaths
+
+from E5Gui import E5MessageBox, E5FileDialog
 from E5Gui.E5Application import e5App
+from E5Gui.E5ProcessDialog import E5ProcessDialog
 
 from .MicroPythonDevices import MicroPythonDevice
 from .MicroPythonWidget import HAS_QTCHART
@@ -175,7 +180,16 @@
         @rtype str
         """
         return Preferences.getMicroPython("MicroPythonDocuUrl")
-    
+        
+    def getFirmwareUrl(self):
+        """
+        Public method to get the device firmware download URL.
+        
+        @return firmware download URL of the device
+        @rtype str
+        """
+        return Preferences.getMicroPython("MicroPythonFirmwareUrl")
+
     def addDeviceMenuEntries(self, menu):
         """
         Public method to add device specific entries to the given menu.
@@ -183,15 +197,167 @@
         @param menu reference to the context menu
         @type QMenu
         """
-        menu.addAction(
-            self.tr("MicroPython Install Instructions"),
-            self.__showInstallInstructions)
-        # TODO: add entry to flash a new firmware using dfu-util
+        connected = self.microPython.isConnected()
+        
+        act = menu.addAction(self.tr("List DFU-capable Devices"),
+                             self.__listDfuCapableDevices)
+        act.setEnabled(not connected)
+        act = menu.addAction(self.tr("Flash MicroPython Firmware"),
+                             self.__flashMicroPython)
+        act.setEnabled(not connected)
+        menu.addSeparator()
+        menu.addAction(self.tr("MicroPython Flash Instructions"),
+                       self.__showFlashInstructions)
     
-    def __showInstallInstructions(self):
+    @pyqtSlot()
+    def __showFlashInstructions(self):
         """
         Private slot to open the URL containing instructions for installing
         MicroPython on the pyboard.
         """
         e5App().getObject("UserInterface").launchHelpViewer(
             PyBoardDevice.FlashInstructionsURL)
+    
+    def __dfuUtilAvailable(self):
+        """
+        Private method to check the availability of dfu-util.
+        
+        @return flag indicating the availability of dfu-util
+        @rtype bool
+        """
+        available = False
+        program = Preferences.getMicroPython("DfuUtilPath")
+        if not program:
+            program = "dfu-util"
+            if Utilities.isinpath(program):
+                available = True
+        else:
+            if Utilities.isExecutable(program):
+                available = True
+        
+        if not available:
+            E5MessageBox.critical(
+                self.microPython,
+                self.tr("dfu-util not available"),
+                self.tr("""The dfu-util firmware flashing tool"""
+                        """ <b>dfu-util</b> cannot be found or is not"""
+                        """ executable. Ensure it is in the search path"""
+                        """ or configure it on the MicroPython"""
+                        """ configuration page.""")
+            )
+        
+        return available
+    
+    def __showDfuEnableInstructions(self, flash=True):
+        """
+        Private method to show some instructions to enable the DFU mode.
+        
+        @param flash flag indicating to show a warning message for flashing
+        @type bool
+        @return flag indicating OK to continue or abort
+        @rtype bool
+        """
+        msg = self.tr(
+            "<h3>Enable DFU Mode</h3>"
+            "<p>1. Disconnect everything from your board</p>"
+            "<p>2. Disconnect your board</p>"
+            "<p>3. Connect the DFU/BOOT0 pin with a 3.3V pin</p>"
+            "<p>4. Re-connect your board</p>"
+            "<hr />"
+        )
+        
+        if flash:
+            msg += self.tr(
+                "<p><b>Warning:</b> Make sure that all other DFU capable"
+                " devices except your PyBoard are disconnected."
+                "<hr />"
+            )
+        
+        msg += self.tr(
+            "<p>Press <b>OK</b> to continue...</p>"
+        )
+        res = E5MessageBox.information(
+            self.microPython,
+            self.tr("Enable DFU mode"),
+            msg,
+            E5MessageBox.StandardButtons(
+                E5MessageBox.Abort |
+                E5MessageBox.Ok))
+        
+        return res == E5MessageBox.Ok
+    
+    def __showDfuDisableInstructions(self):
+        """
+        Private method to show some instructions to disable the DFU mode.
+        """
+        msg = self.tr(
+            "<h3>Disable DFU Mode</h3>"
+            "<p>1. Disconnect your board</p>"
+            "<p>2. Remove the DFU jumper</p>"
+            "<p>3. Re-connect your board</p>"
+            "<hr />"
+            "<p>Press <b>OK</b> to continue...</p>"
+        )
+        E5MessageBox.information(
+            self.microPython,
+            self.tr("Disable DFU mode"),
+            msg
+        )
+    
+    @pyqtSlot()
+    def __listDfuCapableDevices(self):
+        """
+        Private slot to list all DFU-capable devices.
+        """
+        if self.__dfuUtilAvailable():
+            ok2continue = self.__showDfuEnableInstructions(flash=False)
+            if ok2continue:
+                program = Preferences.getMicroPython("DfuUtilPath")
+                if not program:
+                    program = "dfu-util"
+                
+                args = [
+                    "--list",
+                ]
+                dlg = E5ProcessDialog(
+                    self.tr("'dfu-util' Output"),
+                    self.tr("List DFU capable Devices")
+                )
+                res = dlg.startProcess(program, args)
+                if res:
+                    dlg.exec_()
+    
+    @pyqtSlot()
+    def __flashMicroPython(self):
+        """
+        Private slot to flash a MicroPython firmware.
+        """
+        if self.__dfuUtilAvailable():
+            ok2continue = self.__showDfuEnableInstructions()
+            if ok2continue:
+                program = Preferences.getMicroPython("DfuUtilPath")
+                if not program:
+                    program = "dfu-util"
+                
+                downloadsPath = QStandardPaths.standardLocations(
+                    QStandardPaths.DownloadLocation)[0]
+                firmware = E5FileDialog.getOpenFileName(
+                    self.microPython,
+                    self.tr("Flash MicroPython Firmware"),
+                    downloadsPath,
+                    self.tr(
+                        "MicroPython Firmware Files (*.dfu);;All Files (*)")
+                )
+                if firmware and os.path.exists(firmware):
+                    args = [
+                        "--alt", "0",
+                        "--download", firmware,
+                    ]
+                    dlg = E5ProcessDialog(
+                        self.tr("'dfu-util' Output"),
+                        self.tr("Flash MicroPython Firmware")
+                    )
+                    res = dlg.startProcess(program, args)
+                    if res:
+                        dlg.exec_()
+                        self.__showDfuDisableInstructions()
--- a/eric6/Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheck.py	Fri Nov 01 16:11:55 2019 +0100
+++ b/eric6/Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheck.py	Sun Dec 01 16:38:47 2019 +0100
@@ -2,7 +2,6 @@
 
 # Copyright (c) 2011 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
 #
-# pylint: disable=C0103
 
 """
 Module implementing the syntax check for Python 2/3.
@@ -202,7 +201,7 @@
 
 def worker(inputQueue, outputQueue):
     """
-    Module function acting as the parallel worker for the style check.
+    Module function acting as the parallel worker for the syntax check.
     
     @param inputQueue input queue (multiprocessing.Queue)
     @param outputQueue output queue (multiprocessing.Queue)
--- a/eric6/Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py	Fri Nov 01 16:11:55 2019 +0100
+++ b/eric6/Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py	Sun Dec 01 16:38:47 2019 +0100
@@ -240,6 +240,38 @@
                 self.__serviceError(self.tr("JavaScript batch check"), msg)
                 self.batchJobDone(fx, lang)
     
+    def serviceErrorYAML(self, fx, lang, fn, msg):
+        """
+        Public method handling service errors for YAML.
+        
+        @param fx service name (string)
+        @param lang language (string)
+        @param fn file name (string)
+        @param msg message text (string)
+        """
+        if fx in ['YAMLSyntax', 'batch_YAMLSyntax']:
+            if fx == 'YAMLSyntax':
+                self.__serviceError(fn, msg)
+            else:
+                self.__serviceError(self.tr("YAML batch check"), msg)
+                self.batchJobDone(fx, lang)
+    
+    def serviceErrorJSON(self, fx, lang, fn, msg):
+        """
+        Public method handling service errors for JSON.
+        
+        @param fx service name (string)
+        @param lang language (string)
+        @param fn file name (string)
+        @param msg message text (string)
+        """
+        if fx in ['JSONSyntax', 'batch_JSONSyntax']:
+            if fx == 'JSONSyntax':
+                self.__serviceError(fn, msg)
+            else:
+                self.__serviceError(self.tr("JSON batch check"), msg)
+                self.batchJobDone(fx, lang)
+    
     def batchJobDone(self, fx, lang):
         """
         Public slot handling the completion of a batch job.
@@ -247,9 +279,13 @@
         @param fx service name (string)
         @param lang language (string)
         """
-        if fx in ['Python2Syntax', 'batch_Python2Syntax',
-                  'Python3Syntax', 'batch_Python3Syntax',
-                  'JavaScriptSyntax', 'batch_JavaScriptSyntax']:
+        if fx in [
+            'Python2Syntax', 'batch_Python2Syntax',
+            'Python3Syntax', 'batch_Python3Syntax',
+            'JavaScriptSyntax', 'batch_JavaScriptSyntax',
+            'YAMLSyntax', 'batch_YAMLSyntax',
+            'JSONSyntax', 'batch_JSONSyntax',
+        ]:
             if lang in self.queuedBatches:
                 self.queuedBatches.remove(lang)
             # prevent sending the signal multiple times
--- a/eric6/Plugins/CheckerPlugins/SyntaxChecker/jsCheckSyntax.py	Fri Nov 01 16:11:55 2019 +0100
+++ b/eric6/Plugins/CheckerPlugins/SyntaxChecker/jsCheckSyntax.py	Sun Dec 01 16:38:47 2019 +0100
@@ -2,19 +2,12 @@
 
 # Copyright (c) 2014 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
 #
-# pylint: disable=C0103
 
 """
-Module implementing the syntax check for Python 2/3.
+Module implementing the syntax check for JavaScript.
 """
 
-from __future__ import unicode_literals
-
-try:  # Only for Py2
-    import Queue as queue
-except ImportError:
-    import queue
-
+import queue
 import os
 import sys
 import multiprocessing
@@ -144,7 +137,7 @@
 
 def worker(inputQueue, outputQueue):
     """
-    Module function acting as the parallel worker for the style check.
+    Module function acting as the parallel worker for the syntax check.
     
     @param inputQueue input queue (multiprocessing.Queue)
     @param outputQueue output queue (multiprocessing.Queue)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric6/Plugins/CheckerPlugins/SyntaxChecker/jsonCheckSyntax.py	Sun Dec 01 16:38:47 2019 +0100
@@ -0,0 +1,183 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2019 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing the syntax check for JSON.
+"""
+
+import queue
+import multiprocessing
+
+
+def initService():
+    """
+    Initialize the service and return the entry point.
+    
+    @return the entry point for the background client
+    @rtype func
+    """
+    return jsonSyntaxCheck
+
+
+def initBatchService():
+    """
+    Initialize the batch service and return the entry point.
+    
+    @return the entry point for the background client
+    @rtype func
+    """
+    return jsonSyntaxBatchCheck
+
+
+def normalizeCode(codestring):
+    """
+    Function to normalize the given code.
+    
+    @param codestring code to be normalized
+    @type str
+    @return normalized code
+    @rtype str
+    """
+    codestring = codestring.replace("\r\n", "\n").replace("\r", "\n")
+
+    if codestring and codestring[-1] != '\n':
+        codestring = codestring + '\n'
+    
+    return codestring
+
+
+def jsonSyntaxCheck(file, codestring):
+    """
+    Function to check a JSON source file for syntax errors.
+    
+    @param file source filename
+    @type str
+    @param codestring string containing the code to check
+    @type str
+    @return dictionary with the keys 'error' and 'warnings' which
+            hold a list containing details about the error/ warnings
+            (file name, line number, column, codestring (only at syntax
+            errors), the message, a list with arguments for the message)
+    @rtype dict
+    """
+    return __jsonSyntaxCheck(file, codestring)
+
+
+def jsonSyntaxBatchCheck(argumentsList, send, fx, cancelled, maxProcesses=0):
+    """
+    Module function to check syntax for a batch of files.
+    
+    @param argumentsList list of arguments tuples as given for yamlSyntaxCheck
+    @type list
+    @param send reference to send function
+    @type func
+    @param fx registered service name
+    @type str
+    @param cancelled reference to function checking for a cancellation
+    @type func
+    @param maxProcesses number of processes to be used
+    @type int
+    """
+    if maxProcesses == 0:
+        # determine based on CPU count
+        try:
+            NumberOfProcesses = multiprocessing.cpu_count()
+            if NumberOfProcesses >= 1:
+                NumberOfProcesses -= 1
+        except NotImplementedError:
+            NumberOfProcesses = 1
+    else:
+        NumberOfProcesses = maxProcesses
+
+    # Create queues
+    taskQueue = multiprocessing.Queue()
+    doneQueue = multiprocessing.Queue()
+
+    # Submit tasks (initially two time number of processes
+    initialTasks = 2 * NumberOfProcesses
+    for task in argumentsList[:initialTasks]:
+        taskQueue.put(task)
+
+    # Start worker processes
+    for _ in range(NumberOfProcesses):
+        multiprocessing.Process(
+            target=worker, args=(taskQueue, doneQueue)
+        ).start()
+
+    # Get and send results
+    endIndex = len(argumentsList) - initialTasks
+    for i in range(len(argumentsList)):
+        resultSent = False
+        wasCancelled = False
+        
+        while not resultSent:
+            try:
+                # get result (waiting max. 3 seconds and send it to frontend
+                filename, result = doneQueue.get()
+                send(fx, filename, result)
+                resultSent = True
+            except queue.Empty:
+                # ignore empty queue, just carry on
+                if cancelled():
+                    wasCancelled = True
+                    break
+        
+        if wasCancelled or cancelled():
+            # just exit the loop ignoring the results of queued tasks
+            break
+        
+        if i < endIndex:
+            taskQueue.put(argumentsList[i + initialTasks])
+
+    # Tell child processes to stop
+    for _ in range(NumberOfProcesses):
+        taskQueue.put('STOP')
+
+
+def worker(inputQueue, outputQueue):
+    """
+    Module function acting as the parallel worker for the syntax check.
+    
+    @param inputQueue input queue
+    @type multiprocessing.Queue
+    @param outputQueue output queue
+    @type multiprocessing.Queue
+    """
+    for filename, args in iter(inputQueue.get, 'STOP'):
+        source = args[0]
+        result = __jsonSyntaxCheck(filename, source)
+        outputQueue.put((filename, result))
+
+
+def __jsonSyntaxCheck(file, codestring):
+    """
+    Function to check a YAML source file for syntax errors.
+    
+    @param file source filename
+    @type str
+    @param codestring string containing the code to check
+    @type str
+    @return dictionary with the keys 'error' and 'warnings' which
+            hold a list containing details about the error/ warnings
+            (file name, line number, column, codestring (only at syntax
+            errors), the message, a list with arguments for the message)
+    @rtype dict
+    """
+    import json
+    
+    codestring = normalizeCode(codestring)
+    
+    try:
+        json.loads(codestring)
+    except json.JSONDecodeError as exc:
+        line = exc.lineno
+        column = exc.colno
+        error = exc.msg
+        
+        cline = min(len(codestring.splitlines()), int(line)) - 1
+        code = codestring.splitlines()[cline]
+        return [{'error': (file, line, column, code, error)}]
+    
+    return [{}]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric6/Plugins/CheckerPlugins/SyntaxChecker/yamlCheckSyntax.py	Sun Dec 01 16:38:47 2019 +0100
@@ -0,0 +1,191 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2019 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing the syntax check for YAML.
+"""
+
+import queue
+import multiprocessing
+
+
+def initService():
+    """
+    Initialize the service and return the entry point.
+    
+    @return the entry point for the background client
+    @rtype func
+    """
+    return yamlSyntaxCheck
+
+
+def initBatchService():
+    """
+    Initialize the batch service and return the entry point.
+    
+    @return the entry point for the background client
+    @rtype func
+    """
+    return yamlSyntaxBatchCheck
+
+
+def normalizeCode(codestring):
+    """
+    Function to normalize the given code.
+    
+    @param codestring code to be normalized
+    @type str
+    @return normalized code
+    @rtype str
+    """
+    codestring = codestring.replace("\r\n", "\n").replace("\r", "\n")
+
+    if codestring and codestring[-1] != '\n':
+        codestring = codestring + '\n'
+    
+    return codestring
+
+
+def yamlSyntaxCheck(file, codestring):
+    """
+    Function to check a YAML source file for syntax errors.
+    
+    @param file source filename
+    @type str
+    @param codestring string containing the code to check
+    @type str
+    @return dictionary with the keys 'error' and 'warnings' which
+            hold a list containing details about the error/ warnings
+            (file name, line number, column, codestring (only at syntax
+            errors), the message, a list with arguments for the message)
+    @rtype dict
+    """
+    return __yamlSyntaxCheck(file, codestring)
+
+
+def yamlSyntaxBatchCheck(argumentsList, send, fx, cancelled, maxProcesses=0):
+    """
+    Module function to check syntax for a batch of files.
+    
+    @param argumentsList list of arguments tuples as given for yamlSyntaxCheck
+    @type list
+    @param send reference to send function
+    @type func
+    @param fx registered service name
+    @type str
+    @param cancelled reference to function checking for a cancellation
+    @type func
+    @param maxProcesses number of processes to be used
+    @type int
+    """
+    if maxProcesses == 0:
+        # determine based on CPU count
+        try:
+            NumberOfProcesses = multiprocessing.cpu_count()
+            if NumberOfProcesses >= 1:
+                NumberOfProcesses -= 1
+        except NotImplementedError:
+            NumberOfProcesses = 1
+    else:
+        NumberOfProcesses = maxProcesses
+
+    # Create queues
+    taskQueue = multiprocessing.Queue()
+    doneQueue = multiprocessing.Queue()
+
+    # Submit tasks (initially two time number of processes
+    initialTasks = 2 * NumberOfProcesses
+    for task in argumentsList[:initialTasks]:
+        taskQueue.put(task)
+
+    # Start worker processes
+    for _ in range(NumberOfProcesses):
+        multiprocessing.Process(
+            target=worker, args=(taskQueue, doneQueue)
+        ).start()
+
+    # Get and send results
+    endIndex = len(argumentsList) - initialTasks
+    for i in range(len(argumentsList)):
+        resultSent = False
+        wasCancelled = False
+        
+        while not resultSent:
+            try:
+                # get result (waiting max. 3 seconds and send it to frontend
+                filename, result = doneQueue.get()
+                send(fx, filename, result)
+                resultSent = True
+            except queue.Empty:
+                # ignore empty queue, just carry on
+                if cancelled():
+                    wasCancelled = True
+                    break
+        
+        if wasCancelled or cancelled():
+            # just exit the loop ignoring the results of queued tasks
+            break
+        
+        if i < endIndex:
+            taskQueue.put(argumentsList[i + initialTasks])
+
+    # Tell child processes to stop
+    for _ in range(NumberOfProcesses):
+        taskQueue.put('STOP')
+
+
+def worker(inputQueue, outputQueue):
+    """
+    Module function acting as the parallel worker for the syntax check.
+    
+    @param inputQueue input queue
+    @type multiprocessing.Queue
+    @param outputQueue output queue
+    @type multiprocessing.Queue
+    """
+    for filename, args in iter(inputQueue.get, 'STOP'):
+        source = args[0]
+        result = __yamlSyntaxCheck(filename, source)
+        outputQueue.put((filename, result))
+
+
+def __yamlSyntaxCheck(file, codestring):
+    """
+    Function to check a YAML source file for syntax errors.
+    
+    @param file source filename
+    @type str
+    @param codestring string containing the code to check
+    @type str
+    @return dictionary with the keys 'error' and 'warnings' which
+            hold a list containing details about the error/ warnings
+            (file name, line number, column, codestring (only at syntax
+            errors), the message, a list with arguments for the message)
+    @rtype dict
+    """
+    try:
+        from yaml import safe_load_all, MarkedYAMLError
+    except ImportError:
+        error = "pyyaml not available. Install it via the PyPI interface."
+        return [{'error': (file, 0, 0, '', error)}]
+    
+    codestring = normalizeCode(codestring)
+    
+    try:
+        for _obj in safe_load_all(codestring):
+            # do nothing with it, just to get parse errors
+            pass
+    except MarkedYAMLError as exc:
+        if exc.problem_mark:
+            line = exc.problem_mark.line + 1
+            column = exc.problem_mark.column
+        else:
+            line, column = 0, 0
+        error = exc.problem
+        cline = min(len(codestring.splitlines()), int(line)) - 1
+        code = codestring.splitlines()[cline]
+        return [{'error': (file, line, column, code, error)}]
+    
+    return [{}]
--- a/eric6/Plugins/PluginSyntaxChecker.py	Fri Nov 01 16:11:55 2019 +0100
+++ b/eric6/Plugins/PluginSyntaxChecker.py	Sun Dec 01 16:38:47 2019 +0100
@@ -88,6 +88,26 @@
             lambda fn, problems:
                 self.syntaxCheckService.syntaxChecked.emit(fn, problems),
             self.syntaxCheckService.serviceErrorJavaScript)
+        
+        # YAML syntax check via Python3
+        self.syntaxCheckService.addLanguage(
+            'YAML', 'Python3', path,
+            'yamlCheckSyntax',
+            lambda: [],  # No options
+            lambda: ['.yml', '.yaml'],
+            lambda fn, problems:
+                self.syntaxCheckService.syntaxChecked.emit(fn, problems),
+            self.syntaxCheckService.serviceErrorYAML)
+        
+        # JSON syntax check via Python3
+        self.syntaxCheckService.addLanguage(
+            'JSON', 'Python3', path,
+            'jsonCheckSyntax',
+            lambda: [],  # No options
+            lambda: ['.json'],
+            lambda fn, problems:
+                self.syntaxCheckService.syntaxChecked.emit(fn, problems),
+            self.syntaxCheckService.serviceErrorJSON)
 
     def __initialize(self):
         """
--- a/eric6/Preferences/ConfigurationPages/MicroPythonPage.py	Fri Nov 01 16:11:55 2019 +0100
+++ b/eric6/Preferences/ConfigurationPages/MicroPythonPage.py	Sun Dec 01 16:38:47 2019 +0100
@@ -38,6 +38,9 @@
         self.mpyCrossPicker.setMode(E5PathPickerModes.OpenFileMode)
         self.mpyCrossPicker.setFilters(self.tr("All Files (*)"))
         
+        self.dfuUtilPathPicker.setMode(E5PathPickerModes.OpenFileMode)
+        self.dfuUtilPathPicker.setFilters(self.tr("All Files (*)"))
+        
         # set initial values
         self.timeoutSpinBox.setValue(
             Preferences.getMicroPython("SerialTimeout") / 1000)
@@ -51,6 +54,14 @@
             Preferences.getMicroPython("ReplLineWrap"))
         self.mpyCrossPicker.setText(
             Preferences.getMicroPython("MpyCrossCompiler"))
+        self.dfuUtilPathPicker.setText(
+            Preferences.getMicroPython("DfuUtilPath"))
+        self.micropythonFirmwareUrlLineEdit.setText(
+            Preferences.getMicroPython("MicroPythonFirmwareUrl"))
+        self.circuitpythonFirmwareUrlLineEdit.setText(
+            Preferences.getMicroPython("CircuitPythonFirmwareUrl"))
+        self.microbitFirmwareUrlLineEdit.setText(
+            Preferences.getMicroPython("MicrobitFirmwareUrl"))
         self.micropythonDocuUrlLineEdit.setText(
             Preferences.getMicroPython("MicroPythonDocuUrl"))
         self.circuitpythonDocuUrlLineEdit.setText(
@@ -63,22 +74,42 @@
         Public slot to save the MicroPython configuration.
         """
         Preferences.setMicroPython(
-            "SerialTimeout", self.timeoutSpinBox.value() * 1000)
+            "SerialTimeout",
+            self.timeoutSpinBox.value() * 1000)
         # converted to milliseconds
         Preferences.setMicroPython(
-            "SyncTimeAfterConnect", self.syncTimeCheckBox.isChecked())
+            "SyncTimeAfterConnect",
+            self.syncTimeCheckBox.isChecked())
+        Preferences.setMicroPython(
+            "ColorScheme",
+            self.colorSchemeComboBox.currentText())
         Preferences.setMicroPython(
-            "ColorScheme", self.colorSchemeComboBox.currentText())
+            "ReplLineWrap",
+            self.replWrapCheckBox.isChecked())
         Preferences.setMicroPython(
-            "ReplLineWrap", self.replWrapCheckBox.isChecked())
+            "MpyCrossCompiler",
+            self.mpyCrossPicker.text())
+        Preferences.setMicroPython(
+            "DfuUtilPath",
+            self.dfuUtilPathPicker.text())
         Preferences.setMicroPython(
-            "MpyCrossCompiler", self.mpyCrossPicker.text())
+            "MicroPythonFirmwareUrl",
+            self.micropythonFirmwareUrlLineEdit.text())
         Preferences.setMicroPython(
-            "MicroPythonDocuUrl", self.micropythonDocuUrlLineEdit.text())
+            "CircuitPythonFirmwareUrl",
+            self.circuitpythonFirmwareUrlLineEdit.text())
+        Preferences.setMicroPython(
+            "MicrobitFirmwareUrl",
+            self.microbitFirmwareUrlLineEdit.text())
         Preferences.setMicroPython(
-            "CircuitPythonDocuUrl", self.circuitpythonDocuUrlLineEdit.text())
+            "MicroPythonDocuUrl",
+            self.micropythonDocuUrlLineEdit.text())
         Preferences.setMicroPython(
-            "MicrobitDocuUrl", self.microbitDocuUrlLineEdit.text())
+            "CircuitPythonDocuUrl",
+            self.circuitpythonDocuUrlLineEdit.text())
+        Preferences.setMicroPython(
+            "MicrobitDocuUrl",
+            self.microbitDocuUrlLineEdit.text())
 
 
 def create(dlg):
--- a/eric6/Preferences/ConfigurationPages/MicroPythonPage.ui	Fri Nov 01 16:11:55 2019 +0100
+++ b/eric6/Preferences/ConfigurationPages/MicroPythonPage.ui	Sun Dec 01 16:38:47 2019 +0100
@@ -7,7 +7,7 @@
     <x>0</x>
     <y>0</y>
     <width>476</width>
-    <height>550</height>
+    <height>869</height>
    </rect>
   </property>
   <layout class="QVBoxLayout" name="verticalLayout">
@@ -167,6 +167,89 @@
     </widget>
    </item>
    <item>
+    <widget class="QGroupBox" name="groupBox_5">
+     <property name="title">
+      <string>PyBoard</string>
+     </property>
+     <layout class="QHBoxLayout" name="horizontalLayout_2">
+      <item>
+       <widget class="QLabel" name="label_7">
+        <property name="text">
+         <string>dfu-util Path:</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="E5PathPicker" name="dfuUtilPathPicker" native="true">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="focusPolicy">
+         <enum>Qt::WheelFocus</enum>
+        </property>
+        <property name="toolTip">
+         <string>Enter the path of the dfu-util flashing executable</string>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <widget class="QGroupBox" name="groupBox_6">
+     <property name="title">
+      <string>Firmware</string>
+     </property>
+     <layout class="QGridLayout" name="gridLayout_4">
+      <item row="0" column="0">
+       <widget class="QLabel" name="label_8">
+        <property name="text">
+         <string>MicroPython:</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="1">
+       <widget class="E5ClearableLineEdit" name="micropythonFirmwareUrlLineEdit">
+        <property name="toolTip">
+         <string>Enter the URL for the MicroPython firmware for PyBoard, ESP8266 and ESP32</string>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="0">
+       <widget class="QLabel" name="label_10">
+        <property name="text">
+         <string>CircuitPython:</string>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="1">
+       <widget class="E5ClearableLineEdit" name="circuitpythonFirmwareUrlLineEdit">
+        <property name="toolTip">
+         <string>Enter the URL for the CircuitPython firmware</string>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="0">
+       <widget class="QLabel" name="label_9">
+        <property name="text">
+         <string>BBC micro:bit:</string>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="1">
+       <widget class="E5ClearableLineEdit" name="microbitFirmwareUrlLineEdit">
+        <property name="toolTip">
+         <string>Enter the URL for the BBC micro:bit Firmware</string>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
     <widget class="QGroupBox" name="groupBox_4">
      <property name="title">
       <string>Documentation</string>
@@ -251,6 +334,10 @@
   <tabstop>colorSchemeComboBox</tabstop>
   <tabstop>replWrapCheckBox</tabstop>
   <tabstop>mpyCrossPicker</tabstop>
+  <tabstop>dfuUtilPathPicker</tabstop>
+  <tabstop>micropythonFirmwareUrlLineEdit</tabstop>
+  <tabstop>circuitpythonFirmwareUrlLineEdit</tabstop>
+  <tabstop>microbitFirmwareUrlLineEdit</tabstop>
   <tabstop>micropythonDocuUrlLineEdit</tabstop>
   <tabstop>circuitpythonDocuUrlLineEdit</tabstop>
   <tabstop>microbitDocuUrlLineEdit</tabstop>
--- a/eric6/Preferences/ProgramsDialog.py	Fri Nov 01 16:11:55 2019 +0100
+++ b/eric6/Preferences/ProgramsDialog.py	Sun Dec 01 16:38:47 2019 +0100
@@ -290,6 +290,23 @@
         self.__createEntry(
             self.tr("Source Highlighter - Pygments"), text, version)
         
+        # 10. do the MicroPython related entries
+        exe = Preferences.getMicroPython("MpyCrossCompiler")
+        if not exe:
+            exe = "mpy-cross"
+        self.__createProgramEntry(
+            self.tr("MicroPython - MPY Cross Compiler"), exe, '--version',
+            'MicroPython', 1)
+        self.__createProgramEntry(
+            self.tr("MicroPython - ESP Tool"), sys.executable, 'version',
+            'esptool', -1, exeModule=['-m', 'esptool'])
+        exe = Preferences.getMicroPython("DfuUtilPath")
+        if not exe:
+            exe = "dfu-util"
+        self.__createProgramEntry(
+            self.tr("MicroPython - PyBoard Flasher"), exe, '--version',
+            'dfu-util', -1)
+        
         # 10. do the plugin related programs
         pm = e5App().getObject("PluginManager")
         for info in pm.getPluginExeDisplayData():
--- a/eric6/Preferences/__init__.py	Fri Nov 01 16:11:55 2019 +0100
+++ b/eric6/Preferences/__init__.py	Sun Dec 01 16:38:47 2019 +0100
@@ -1451,12 +1451,16 @@
         "ShowHiddenLocal": True,
         "ShowHiddenDevice": True,
         "MpyCrossCompiler": "",         # path of the mpy-cross compiler
+        "DfuUtilPath": "",              # path of the dfu-util flashing tool
         "MicroPythonDocuUrl":
             "https://docs.micropython.org/en/latest/",
         "CircuitPythonDocuUrl":
             "https://circuitpython.readthedocs.io/en/latest/",
         "MicrobitDocuUrl":
             "https://microbit-micropython.readthedocs.io/en/latest/",
+        "MicroPythonFirmwareUrl": "http://micropython.org/download",
+        "CircuitPythonFirmwareUrl": "https://circuitpython.org/downloads",
+        "MicrobitFirmwareUrl": "https://microbit.org/guide/firmware/",
     }
     if Globals.isWindowsPlatform():
         microPythonDefaults["ColorScheme"] = "Windows 10"
--- a/eric6/QScintilla/Editor.py	Fri Nov 01 16:11:55 2019 +0100
+++ b/eric6/QScintilla/Editor.py	Sun Dec 01 16:38:47 2019 +0100
@@ -1697,7 +1697,7 @@
         @type bool
         """
         self.__setSpellingLanguage(language)
-        self.__checkSpellLanguage(language)
+        self.__checkSpellLanguage()
         
         if not self.__inSpellLanguageChanged and propagate:
             self.__inSpellLanguageChanged = True
@@ -1740,7 +1740,7 @@
                     filename, self.text(0), self)
                 language = "Python{0}".format(pyVer)
             if language in ['Python2', 'Python3', 'MicroPython', 'Ruby',
-                            'JavaScript']:
+                            'JavaScript', 'YAML', 'JSON']:
                 self.filetype = language
             else:
                 self.filetype = ""
--- a/eric6/QScintilla/EditorAssembly.py	Fri Nov 01 16:11:55 2019 +0100
+++ b/eric6/QScintilla/EditorAssembly.py	Sun Dec 01 16:38:47 2019 +0100
@@ -53,6 +53,8 @@
         self.__layout.addWidget(self.__membersCombo, 0, 2)
         self.__layout.addWidget(self.__editor, 1, 1, 1, -1)
         
+        self.setFocusProxy(self.__editor)
+        
         self.__module = None
         
         self.__globalsCombo.activated[int].connect(self.__globalsActivated)
--- a/eric6/UI/UserInterface.py	Fri Nov 01 16:11:55 2019 +0100
+++ b/eric6/UI/UserInterface.py	Sun Dec 01 16:38:47 2019 +0100
@@ -3647,7 +3647,7 @@
             sizeStr = "32-Bit"
         
         versionText = self.tr(
-            """<h3>Version Numbers</h3>"""
+            """<h2>Version Numbers</h2>"""
             """<table>""")
         versionText += (
             """<tr><td><b>Python</b></td><td>{0}, {1}</td></tr>"""
@@ -3658,12 +3658,26 @@
         versionText += (
             """<tr><td><b>PyQt</b></td><td>{0}</td></tr>"""
         ).format(PYQT_VERSION_STR)
+        try:
+            from PyQt5 import QtChart
+            versionText += (
+                """<tr><td><b>PyQtChart</b></td><td>{0}</td></tr>"""
+            ).format(QtChart.PYQT_CHART_VERSION_STR)
+        except (ImportError, AttributeError):
+            pass
+        try:
+            from PyQt5 import QtWebEngine
+            versionText += (
+                """<tr><td><b>PyQtWebEngine</b></td><td>{0}</td></tr>"""
+            ).format(QtWebEngine.PYQT_WEBENGINE_VERSION_STR)
+        except (ImportError, AttributeError):
+            pass
+        versionText += (
+            """<tr><td><b>QScintilla</b></td><td>{0}</td></tr>"""
+        ).format(QSCINTILLA_VERSION_STR)
         versionText += (
             """<tr><td><b>sip</b></td><td>{0}</td></tr>"""
         ).format(sip_version_str)
-        versionText += (
-            """<tr><td><b>QScintilla</b></td><td>{0}</td></tr>"""
-        ).format(QSCINTILLA_VERSION_STR)
         try:
             from WebBrowser.Tools import WebBrowserTools
             chromeVersion = WebBrowserTools.getWebEngineVersions()[0]
--- a/eric6/Utilities/BackgroundService.py	Fri Nov 01 16:11:55 2019 +0100
+++ b/eric6/Utilities/BackgroundService.py	Sun Dec 01 16:38:47 2019 +0100
@@ -126,7 +126,7 @@
         connection = self.connections.get(lang)
         if connection is None:
             if fx != 'INIT':
-                # Avoid growing recursion deep which could itself result in an
+                # Avoid growing recursion depth which could itself result in an
                 # exception
                 QTimer.singleShot(
                     0,
--- a/eric6/Utilities/__init__.py	Fri Nov 01 16:11:55 2019 +0100
+++ b/eric6/Utilities/__init__.py	Sun Dec 01 16:38:47 2019 +0100
@@ -1927,7 +1927,18 @@
         linesep, sys.version.split()[0], sizeStr, linesep)
     info += "  Qt {0}{1}  PyQt {2}{3}".format(
         qVersion(), linesep, PYQT_VERSION_STR, linesep)
-    info += "  sip {0}{1}  QScintilla {2}{3}".format(
+    try:
+        from PyQt5 import QtChart
+        info += "  PyQtChart {0}".format(QtChart.PYQT_CHART_VERSION_STR)
+    except (ImportError, AttributeError):
+        pass
+    try:
+        from PyQt5 import QtWebEngine
+        info += "  PyQtWebEngine {0}".format(
+            QtWebEngine.PYQT_WEBENGINE_VERSION_STR)
+    except (ImportError, AttributeError):
+        pass
+    info += "  QScintilla {2}{3}  sip {0}{1}".format(
         sip_version_str, linesep, QSCINTILLA_VERSION_STR, linesep)
     try:
         from PyQt5 import QtWebEngineWidgets    # __IGNORE_WARNING__
--- a/eric6/ViewManager/ViewManager.py	Fri Nov 01 16:11:55 2019 +0100
+++ b/eric6/ViewManager/ViewManager.py	Sun Dec 01 16:38:47 2019 +0100
@@ -5436,9 +5436,15 @@
         """
         Public method to handle the global change of focus.
         
-        @param old reference to the widget loosing focus (QWidget)
-        @param now reference to the widget gaining focus (QWidget)
-        """
+        @param old reference to the widget loosing focus
+        @type QWidget
+        @param now reference to the widget gaining focus
+        @type QWidget
+        """
+        # Focus handling was changed with Qt 5.13.1; this copes with that
+        if now is None:
+            return
+        
         from QScintilla.Shell import Shell
         
         if not isinstance(now, (Editor, Shell)):
--- a/eric6/i18n/eric6_cs.ts	Fri Nov 01 16:11:55 2019 +0100
+++ b/eric6/i18n/eric6_cs.ts	Sun Dec 01 16:38:47 2019 +0100
@@ -46311,43 +46311,78 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.py" line="39"/>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.py" line="42"/>
         <source>All Files (*)</source>
         <translation type="unfinished">Všechny soubory (*)</translation>
     </message>
     <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="255"/>
+        <source>Documentation</source>
+        <translation type="unfinished">Dokumentace</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="261"/>
+        <source>MicroPython:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="268"/>
+        <source>Enter the URL for the MicroPython documentation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="275"/>
+        <source>CircuitPython:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="282"/>
+        <source>Enter the URL for the CircuitPython documentation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="289"/>
+        <source>BBC micro:bit:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="296"/>
+        <source>Enter the URL for the BBC micro:bit MicroPython documentation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="172"/>
-        <source>Documentation</source>
-        <translation type="unfinished">Dokumentace</translation>
+        <source>PyBoard</source>
+        <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="178"/>
-        <source>MicroPython:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="185"/>
-        <source>Enter the URL for the MicroPython documentation</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="192"/>
-        <source>CircuitPython:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="199"/>
-        <source>Enter the URL for the CircuitPython documentation</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="206"/>
-        <source>BBC micro:bit:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="213"/>
-        <source>Enter the URL for the BBC micro:bit MicroPython documentation</source>
+        <source>dfu-util Path:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="194"/>
+        <source>Enter the path of the dfu-util flashing executable</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="204"/>
+        <source>Firmware</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="217"/>
+        <source>Enter the URL for the MicroPython firmware for PyBoard, ESP8266 and ESP32</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="231"/>
+        <source>Enter the URL for the CircuitPython firmware</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="245"/>
+        <source>Enter the URL for the BBC micro:bit Firmware</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -46545,7 +46580,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1202"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1210"/>
         <source>Synchronize Time</source>
         <translation type="unfinished"></translation>
     </message>
@@ -46560,107 +46595,107 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1366"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1421"/>
         <source>Compile Python File</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1386"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1441"/>
         <source>Compile Current Editor</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1140"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1148"/>
         <source>&lt;h3&gt;Device Version Information&lt;/h3&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1149"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1157"/>
         <source>No version information available.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1151"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1159"/>
         <source>Device Version Information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1174"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1182"/>
         <source>unknown</source>
         <translation type="unfinished">neznámý</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1178"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1186"/>
         <source>Device Implementation Information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1178"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1186"/>
         <source>&lt;h3&gt;Device Implementation Information&lt;/h3&gt;&lt;p&gt;This device contains &lt;b&gt;{0} {1}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1202"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1210"/>
         <source>&lt;p&gt;The time of the connected device was synchronized with the local time.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1224"/>
-        <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../MicroPython/MicroPythonWidget.py" line="1232"/>
+        <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1240"/>
         <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;p&gt;{0}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1246"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1254"/>
         <source>Device Date and Time</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1259"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1267"/>
         <source>Local Date and Time</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1259"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1267"/>
         <source>&lt;h3&gt;Local Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1279"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1334"/>
         <source>Error handling device</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1279"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1334"/>
         <source>&lt;p&gt;There was an error communicating with the connected device.&lt;/p&gt;&lt;p&gt;Method: {0}&lt;/p&gt;&lt;p&gt;Message: {1}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1318"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1373"/>
         <source>The MicroPython cross compiler &lt;b&gt;mpy-cross&lt;/b&gt; cannot be found. Ensure it is in the search path or configure it on the MicroPython configuration page.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1336"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1391"/>
         <source>Python Files (*.py);;All Files (*)</source>
         <translation type="unfinished">Python soubory (*.py);;Všechny soubory (*)</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1346"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1401"/>
         <source>The Python file &lt;b&gt;{0}&lt;/b&gt; does not exist. Aborting...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1356"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1411"/>
         <source>&apos;mpy-cross&apos; Output</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1379"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1434"/>
         <source>The current editor does not contain a Python file. Aborting...</source>
         <translation type="unfinished"></translation>
     </message>
@@ -46685,14 +46720,39 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1126"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1134"/>
         <source>Show Documentation</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1138"/>
+        <source>Configure</source>
+        <translation type="unfinished">Konfigurovat</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1113"/>
+        <source>Show Time</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../MicroPython/MicroPythonWidget.py" line="1130"/>
-        <source>Configure</source>
-        <translation type="unfinished">Konfigurovat</translation>
+        <source>Download Firmware</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1310"/>
+        <source>Date and Time</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1293"/>
+        <source>&lt;table&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;Local Date and Time&lt;/th&gt;&lt;th&gt;Device Date and Time&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{0}&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{1}&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1310"/>
+        <source>&lt;table&gt;&lt;tr&gt;&lt;th&gt;Local Date and Time&lt;/th&gt;&lt;th&gt;Device Date and Time&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&apos;center&apos;&gt;{0} {1}&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -52031,17 +52091,17 @@
 <context>
     <name>Preferences</name>
     <message>
-        <location filename="../Preferences/__init__.py" line="1606"/>
+        <location filename="../Preferences/__init__.py" line="1610"/>
         <source>Export Preferences</source>
         <translation>Předvolby exportu</translation>
     </message>
     <message>
-        <location filename="../Preferences/__init__.py" line="1634"/>
+        <location filename="../Preferences/__init__.py" line="1638"/>
         <source>Import Preferences</source>
         <translation>Předvolby importu</translation>
     </message>
     <message>
-        <location filename="../Preferences/__init__.py" line="1634"/>
+        <location filename="../Preferences/__init__.py" line="1638"/>
         <source>Properties File (*.ini);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -52384,22 +52444,22 @@
         <translation>CORBA IDL kompilátor</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="361"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="378"/>
         <source>(not configured)</source>
         <translation>(nezkonfigurováno)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="415"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="432"/>
         <source>(not executable)</source>
         <translation>(nevykonavatelný)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="452"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="469"/>
         <source>(not found)</source>
         <translation>(nenalezeno)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="413"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="430"/>
         <source>(unknown)</source>
         <translation>(neznámý)</translation>
     </message>
@@ -52489,7 +52549,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="394"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="411"/>
         <source>(module not found)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -52518,6 +52578,21 @@
         <source>PyPI Package Management</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="297"/>
+        <source>MicroPython - MPY Cross Compiler</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="300"/>
+        <source>MicroPython - ESP Tool</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="306"/>
+        <source>MicroPython - PyBoard Flasher</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>Project</name>
@@ -56045,23 +56120,88 @@
 <context>
     <name>PyBoardDevice</name>
     <message>
-        <location filename="../MicroPython/PyBoardDevices.py" line="70"/>
+        <location filename="../MicroPython/PyBoardDevices.py" line="75"/>
         <source>PyBoard</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/PyBoardDevices.py" line="159"/>
+        <location filename="../MicroPython/PyBoardDevices.py" line="164"/>
         <source>Workspace Directory</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/PyBoardDevices.py" line="159"/>
+        <location filename="../MicroPython/PyBoardDevices.py" line="164"/>
         <source>Python files for PyBoard devices are stored on the device. Therefore, to edit these files you need to have the device plugged in. Until you plug in a device, the standard directory will be used.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/PyBoardDevices.py" line="186"/>
-        <source>MicroPython Install Instructions</source>
+        <location filename="../MicroPython/PyBoardDevices.py" line="202"/>
+        <source>List DFU-capable Devices</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="356"/>
+        <source>Flash MicroPython Firmware</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="209"/>
+        <source>MicroPython Flash Instructions</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="239"/>
+        <source>dfu-util not available</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="239"/>
+        <source>The dfu-util firmware flashing tool &lt;b&gt;dfu-util&lt;/b&gt; cannot be found or is not executable. Ensure it is in the search path or configure it on the MicroPython configuration page.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="260"/>
+        <source>&lt;h3&gt;Enable DFU Mode&lt;/h3&gt;&lt;p&gt;1. Disconnect everything from your board&lt;/p&gt;&lt;p&gt;2. Disconnect your board&lt;/p&gt;&lt;p&gt;3. Connect the DFU/BOOT0 pin with a 3.3V pin&lt;/p&gt;&lt;p&gt;4. Re-connect your board&lt;/p&gt;&lt;hr /&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="270"/>
+        <source>&lt;p&gt;&lt;b&gt;Warning:&lt;/b&gt; Make sure that all other DFU capable devices except your PyBoard are disconnected.&lt;hr /&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="276"/>
+        <source>&lt;p&gt;Press &lt;b&gt;OK&lt;/b&gt; to continue...&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="279"/>
+        <source>Enable DFU mode</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="293"/>
+        <source>&lt;h3&gt;Disable DFU Mode&lt;/h3&gt;&lt;p&gt;1. Disconnect your board&lt;/p&gt;&lt;p&gt;2. Remove the DFU jumper&lt;/p&gt;&lt;p&gt;3. Re-connect your board&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;Press &lt;b&gt;OK&lt;/b&gt; to continue...&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="301"/>
+        <source>Disable DFU mode</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="356"/>
+        <source>&apos;dfu-util&apos; Output</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="322"/>
+        <source>List DFU capable Devices</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="344"/>
+        <source>MicroPython Firmware Files (*.dfu);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -76996,7 +77136,7 @@
         <translation>Zjistit akt&amp;ualizace...</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="3709"/>
+        <location filename="../UI/UserInterface.py" line="3723"/>
         <source>Report Bug</source>
         <translation>Reportovat Bugy</translation>
     </message>
@@ -77246,7 +77386,7 @@
         <translation>&lt;b&gt;Klávesové zkratky&lt;/b&gt;&lt;p&gt;Nastavení klávesových zkratek aplikace podle zvyklostí uživatele.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6315"/>
+        <location filename="../UI/UserInterface.py" line="6329"/>
         <source>Export Keyboard Shortcuts</source>
         <translation>Exportovat klávesové zkratky</translation>
     </message>
@@ -77266,7 +77406,7 @@
         <translation>&lt;b&gt;Export klávesových zkratek&lt;/b&gt;&lt;p&gt;Exportují se klávesové zkratky z aplikace.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6339"/>
+        <location filename="../UI/UserInterface.py" line="6353"/>
         <source>Import Keyboard Shortcuts</source>
         <translation>Import klávesových zkratek</translation>
     </message>
@@ -77391,7 +77531,7 @@
         <translation>Nastavení</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5101"/>
+        <location filename="../UI/UserInterface.py" line="5115"/>
         <source>Help</source>
         <translation>Nápověda</translation>
     </message>
@@ -77403,30 +77543,30 @@
     <message>
         <location filename="../UI/UserInterface.py" line="3650"/>
         <source>&lt;h3&gt;Version Numbers&lt;/h3&gt;&lt;table&gt;</source>
-        <translation>&lt;h3&gt;Čísla verzí&lt;/h3&gt;&lt;table&gt;</translation>
-    </message>
-    <message>
-        <location filename="../UI/UserInterface.py" line="7312"/>
+        <translation type="obsolete">&lt;h3&gt;Čísla verzí&lt;/h3&gt;&lt;table&gt;</translation>
+    </message>
+    <message>
+        <location filename="../UI/UserInterface.py" line="7326"/>
         <source>&lt;/table&gt;</source>
         <translation>&lt;/table&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="3709"/>
+        <location filename="../UI/UserInterface.py" line="3723"/>
         <source>Email address or mail server address is empty. Please configure your Email settings in the Preferences Dialog.</source>
         <translation>Emailová adresa nebo mail server adresa jsou prázdné. Prosím, nastavte váš email v dialogovém okně Nastavení.</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4070"/>
+        <location filename="../UI/UserInterface.py" line="4084"/>
         <source>Configure Tool Groups ...</source>
         <translation>Konfigurace Skupin nástrojů...</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4074"/>
+        <location filename="../UI/UserInterface.py" line="4088"/>
         <source>Configure current Tool Group ...</source>
         <translation>Konfigurace aktuální skupiny nástrojů...</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4025"/>
+        <location filename="../UI/UserInterface.py" line="4039"/>
         <source>&amp;Builtin Tools</source>
         <translation>&amp;Vestavěné nástroje</translation>
     </message>
@@ -77436,62 +77576,62 @@
         <translation type="obsolete">V aktuálním projektu není definován hlavní skript. Zrušeno</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5229"/>
+        <location filename="../UI/UserInterface.py" line="5243"/>
         <source>Problem</source>
         <translation>Problém</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5424"/>
+        <location filename="../UI/UserInterface.py" line="5438"/>
         <source>Process Generation Error</source>
         <translation>Chyba v procesu generování</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5101"/>
+        <location filename="../UI/UserInterface.py" line="5115"/>
         <source>Currently no custom viewer is selected. Please use the preferences dialog to specify one.</source>
         <translation>Aktuálně není vybrán žádný prohlížeč. Prosím otevřete Nastavení a nějaký vyberte.</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5135"/>
+        <location filename="../UI/UserInterface.py" line="5149"/>
         <source>&lt;p&gt;Could not start the help viewer.&lt;br&gt;Ensure that it is available as &lt;b&gt;hh&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Nemohu spustit prohlížeč nápovědy.&lt;br&gt;Ověřte jestli je dostupný jako &lt;b&gt;hh&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5905"/>
+        <location filename="../UI/UserInterface.py" line="5919"/>
         <source>Documentation Missing</source>
         <translation>Dokumentace chybí</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5888"/>
+        <location filename="../UI/UserInterface.py" line="5902"/>
         <source>Documentation</source>
         <translation>Dokumentace</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5713"/>
+        <location filename="../UI/UserInterface.py" line="5727"/>
         <source>&lt;p&gt;The PyQt4 documentation starting point has not been configured.&lt;/p&gt;</source>
         <translation type="unfinished">&lt;p&gt;Počátek dokumentace PySide nebyl nastaven.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6509"/>
+        <location filename="../UI/UserInterface.py" line="6523"/>
         <source>Save tasks</source>
         <translation>Uložit úlohy</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6538"/>
+        <location filename="../UI/UserInterface.py" line="6552"/>
         <source>Read tasks</source>
         <translation>Načíst úlohy</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6902"/>
+        <location filename="../UI/UserInterface.py" line="6916"/>
         <source>Drop Error</source>
         <translation>Zahodit chybu</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7273"/>
+        <location filename="../UI/UserInterface.py" line="7287"/>
         <source>Error during updates check</source>
         <translation>Chyba během zjišťování aktualizací</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7254"/>
+        <location filename="../UI/UserInterface.py" line="7268"/>
         <source>Update available</source>
         <translation>Byla nalezena aktualizace</translation>
     </message>
@@ -77506,17 +77646,17 @@
         <translation>Zobrazit externí nás&amp;troje</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7273"/>
+        <location filename="../UI/UserInterface.py" line="7287"/>
         <source>Could not perform updates check.</source>
         <translation>Kontrolu updatů nelze provést.</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7087"/>
+        <location filename="../UI/UserInterface.py" line="7101"/>
         <source>&amp;Cancel</source>
         <translation>&amp;Zrušit</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7349"/>
+        <location filename="../UI/UserInterface.py" line="7363"/>
         <source>First time usage</source>
         <translation>Spuštěno poprvé</translation>
     </message>
@@ -77556,7 +77696,7 @@
         <translation>&amp;Plugin Infa...</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4042"/>
+        <location filename="../UI/UserInterface.py" line="4056"/>
         <source>&amp;Plugin Tools</source>
         <translation>&amp;Plugin nástroje</translation>
     </message>
@@ -77576,12 +77716,12 @@
         <translation>&lt;b&gt;Odinstalovat plugin...&lt;/b&gt;&lt;p&gt;Otevře dialog pro odinstalaci pluginu.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4190"/>
+        <location filename="../UI/UserInterface.py" line="4204"/>
         <source>&amp;Show all</source>
         <translation>&amp;Zobrazit vše</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4192"/>
+        <location filename="../UI/UserInterface.py" line="4206"/>
         <source>&amp;Hide all</source>
         <translation>&amp;Skrýt vše</translation>
     </message>
@@ -77611,7 +77751,7 @@
         <translation>Zobrazit dostupné verze ke stažení</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7297"/>
+        <location filename="../UI/UserInterface.py" line="7311"/>
         <source>&lt;h3&gt;Available versions&lt;/h3&gt;&lt;table&gt;</source>
         <translation>&lt;h3&gt;Dostupné verze&lt;/h3&gt;&lt;table&gt;</translation>
     </message>
@@ -77691,7 +77831,7 @@
         <translation>Obnovit manažer nástrojových lišt...</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5369"/>
+        <location filename="../UI/UserInterface.py" line="5383"/>
         <source>External Tools</source>
         <translation>Externí nástroje</translation>
     </message>
@@ -77706,12 +77846,12 @@
         <translation>Prohlížeč &amp;multiprojektu</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6634"/>
+        <location filename="../UI/UserInterface.py" line="6648"/>
         <source>Save session</source>
         <translation>Uložit relaci</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6618"/>
+        <location filename="../UI/UserInterface.py" line="6632"/>
         <source>Read session</source>
         <translation>Načíst relaci</translation>
     </message>
@@ -77781,12 +77921,12 @@
         <translation>&lt;b&gt;Přepnout vodorovnou nástrojovou lištu&lt;/b&gt;&lt;p&gt;Pokud je vodorovná nástrojová lišta skryta, tak se zobrazí. Je-li zobrazena, skryje se.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="3989"/>
+        <location filename="../UI/UserInterface.py" line="4003"/>
         <source>Restart application</source>
         <translation>Restartovat aplikaci</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="3989"/>
+        <location filename="../UI/UserInterface.py" line="4003"/>
         <source>The application needs to be restarted. Do it now?</source>
         <translation>Aplikace potřebuje restartovat. Má se provést nyní?</translation>
     </message>
@@ -77941,7 +78081,7 @@
         <translation>Editor &amp;ikon...</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5048"/>
+        <location filename="../UI/UserInterface.py" line="5062"/>
         <source>Qt 3 support</source>
         <translation>Qt 3 podpora</translation>
     </message>
@@ -77981,106 +78121,106 @@
         <translation>Externí nástroje/{0}</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5229"/>
+        <location filename="../UI/UserInterface.py" line="5243"/>
         <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; does not exist or is zero length.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Soubor &lt;b&gt;{0}&lt;/b&gt; neexistuje nebo má nulovou délku.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4948"/>
+        <location filename="../UI/UserInterface.py" line="4962"/>
         <source>&lt;p&gt;Could not start Qt-Designer.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Nemohu spustit Qt-Designer.&lt;br&gt;Ověřte jestli je dostupný jako &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5020"/>
+        <location filename="../UI/UserInterface.py" line="5034"/>
         <source>&lt;p&gt;Could not start Qt-Linguist.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Nemohu spustit Qt-Linguist.&lt;br&gt;Ověřte jestli je dostupný jako &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5073"/>
+        <location filename="../UI/UserInterface.py" line="5087"/>
         <source>&lt;p&gt;Could not start Qt-Assistant.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Nemohu spustit Qt-Assistant.&lt;br&gt;Ověřte jestli je dostupný jako &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5115"/>
+        <location filename="../UI/UserInterface.py" line="5129"/>
         <source>&lt;p&gt;Could not start custom viewer.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Nemohu spustit aktuální prohlížeč.&lt;br&gt;Ověřte jestli je dostupný jako &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5185"/>
+        <location filename="../UI/UserInterface.py" line="5199"/>
         <source>&lt;p&gt;Could not start UI Previewer.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Nemohu spustit UI Previewer.&lt;br&gt;Ověřte jestli je dostupný jako &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5242"/>
+        <location filename="../UI/UserInterface.py" line="5256"/>
         <source>&lt;p&gt;Could not start Translation Previewer.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Nemohu spustit Previewer překladů.&lt;br&gt;Ověřte jestli je dostupný jako &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5265"/>
+        <location filename="../UI/UserInterface.py" line="5279"/>
         <source>&lt;p&gt;Could not start SQL Browser.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Nelze spustit SQL Browser.&lt;br&gt;Ujistěte se, že je dostupný jako &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5360"/>
+        <location filename="../UI/UserInterface.py" line="5374"/>
         <source>No tool entry found for external tool &apos;{0}&apos; in tool group &apos;{1}&apos;.</source>
         <translation>V externím nástroji  &apos;{0}&apos; ve skupině &apos;{1}&apos; nebyl záznam nástroje nalezen.</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5369"/>
+        <location filename="../UI/UserInterface.py" line="5383"/>
         <source>No toolgroup entry &apos;{0}&apos; found.</source>
         <translation>Skupina nástrojů &apos;{0}&apos; nenalezena. </translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5408"/>
+        <location filename="../UI/UserInterface.py" line="5422"/>
         <source>Starting process &apos;{0} {1}&apos;.
 </source>
         <translation>Spouštím proces &apos;{0} {1}&apos;.
 </translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5424"/>
+        <location filename="../UI/UserInterface.py" line="5438"/>
         <source>&lt;p&gt;Could not start the tool entry &lt;b&gt;{0}&lt;/b&gt;.&lt;br&gt;Ensure that it is available as &lt;b&gt;{1}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Nemohu spustit příkaz &lt;b&gt;{0}&lt;/b&gt;&lt;br&gt;Ověřte jestli je dostupný jako &lt;b&gt;{1}&lt;/b&gt;. &lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5502"/>
+        <location filename="../UI/UserInterface.py" line="5516"/>
         <source>Process &apos;{0}&apos; has exited.
 </source>
         <translation>Proces &apos;{0}&apos; byl ukončen.
 </translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5905"/>
+        <location filename="../UI/UserInterface.py" line="5919"/>
         <source>&lt;p&gt;The documentation starting point &quot;&lt;b&gt;{0}&lt;/b&gt;&quot; could not be found.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Adresář dokumentace &quot;&lt;b&gt;{0}&lt;/b&gt;&quot; nebyl nalezen.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6509"/>
+        <location filename="../UI/UserInterface.py" line="6523"/>
         <source>&lt;p&gt;The tasks file &lt;b&gt;{0}&lt;/b&gt; could not be written.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Do souboru s úlohami &lt;b&gt;{0}&lt;/b&gt; nelze zapisovat.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6538"/>
+        <location filename="../UI/UserInterface.py" line="6552"/>
         <source>&lt;p&gt;The tasks file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Soubor s úlohami &lt;b&gt;{0}&lt;/b&gt; nelze načíst.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6572"/>
+        <location filename="../UI/UserInterface.py" line="6586"/>
         <source>&lt;p&gt;The session file &lt;b&gt;{0}&lt;/b&gt; could not be written.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Zápis do souboru relace session &lt;b&gt;{0}&lt;/b&gt; se nezdařil.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6618"/>
+        <location filename="../UI/UserInterface.py" line="6632"/>
         <source>&lt;p&gt;The session file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Soubor relace session &lt;b&gt;{0}&lt;/b&gt; nelze přečíst.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6902"/>
+        <location filename="../UI/UserInterface.py" line="6916"/>
         <source>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; is not a file.&lt;/p&gt;</source>
         <translation>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; není soubor.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7096"/>
+        <location filename="../UI/UserInterface.py" line="7110"/>
         <source>Trying host {0}</source>
         <translation>Zkouším host {0}</translation>
     </message>
@@ -78115,7 +78255,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6339"/>
+        <location filename="../UI/UserInterface.py" line="6353"/>
         <source>Keyboard shortcut file (*.e4k)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -78155,27 +78295,27 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7162"/>
+        <location filename="../UI/UserInterface.py" line="7176"/>
         <source>Error getting versions information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7155"/>
+        <location filename="../UI/UserInterface.py" line="7169"/>
         <source>The versions information could not be downloaded. Please go online and try again.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6107"/>
+        <location filename="../UI/UserInterface.py" line="6121"/>
         <source>Open Browser</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6107"/>
+        <location filename="../UI/UserInterface.py" line="6121"/>
         <source>Could not start a web browser</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7162"/>
+        <location filename="../UI/UserInterface.py" line="7176"/>
         <source>The versions information could not be downloaded for the last 7 days. Please go online and try again.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -78261,12 +78401,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5337"/>
+        <location filename="../UI/UserInterface.py" line="5351"/>
         <source>&lt;p&gt;Could not start Snapshot tool.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7368"/>
+        <location filename="../UI/UserInterface.py" line="7382"/>
         <source>Select Workspace Directory</source>
         <translation type="unfinished"></translation>
     </message>
@@ -78631,7 +78771,7 @@
         <translation type="unfinished">Otevřít PyQt4 dokumentaci {5 ?}</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5775"/>
+        <location filename="../UI/UserInterface.py" line="5789"/>
         <source>&lt;p&gt;The PyQt5 documentation starting point has not been configured.&lt;/p&gt;</source>
         <translation type="unfinished">&lt;p&gt;Adresář PyQt4 dokumentace není nakonfigurován.&lt;/p&gt; {5 ?}</translation>
     </message>
@@ -78641,7 +78781,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7087"/>
+        <location filename="../UI/UserInterface.py" line="7101"/>
         <source>%v/%m</source>
         <translation type="unfinished"></translation>
     </message>
@@ -78661,7 +78801,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7091"/>
+        <location filename="../UI/UserInterface.py" line="7105"/>
         <source>Version Check</source>
         <translation type="unfinished"></translation>
     </message>
@@ -78731,27 +78871,27 @@
         <translation type="unfinished">&lt;b&gt;Eric API dokumentace&lt;/b&gt;&lt;p&gt;Zobrazit Eric API dokumentaci. Umístění dokumentace je v podadresáři Documentation/Source v instalačním adresáři eric5.&lt;/p&gt; {6 ?}</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5048"/>
+        <location filename="../UI/UserInterface.py" line="5062"/>
         <source>Qt v.3 is not supported by eric6.</source>
         <translation type="unfinished">Qt v.3 není podporováno v eric5. {3 ?} {6.?}</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7254"/>
+        <location filename="../UI/UserInterface.py" line="7268"/>
         <source>The update to &lt;b&gt;{0}&lt;/b&gt; of eric6 is available at &lt;b&gt;{1}&lt;/b&gt;. Would you like to get it?</source>
         <translation type="unfinished">Aktualizace &lt;b&gt;{0}&lt;/b&gt; eric5 je připravena na &lt;b&gt;{1}&lt;/b&gt;. Chcete ji stáhnout a nainstalovat? {0}?} {6 ?} {1}?}</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7266"/>
+        <location filename="../UI/UserInterface.py" line="7280"/>
         <source>Eric6 is up to date</source>
         <translation type="unfinished">Eric5 je aktuální {6 ?}</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7266"/>
+        <location filename="../UI/UserInterface.py" line="7280"/>
         <source>You are using the latest version of eric6</source>
         <translation type="unfinished">Používáte poslední verzi eric6</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7349"/>
+        <location filename="../UI/UserInterface.py" line="7363"/>
         <source>eric6 has not been configured yet. The configuration dialog will be started.</source>
         <translation type="unfinished">eric5 nebyl ještě nakonfigurován. Bude spuštěn konfigurační dialog. {6 ?}</translation>
     </message>
@@ -78761,17 +78901,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4045"/>
+        <location filename="../UI/UserInterface.py" line="4059"/>
         <source>&amp;User Tools</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4117"/>
+        <location filename="../UI/UserInterface.py" line="4131"/>
         <source>No User Tools Configured</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7107"/>
+        <location filename="../UI/UserInterface.py" line="7121"/>
         <source>The versions information cannot not be downloaded because you are &lt;b&gt;offline&lt;/b&gt;. Please go online and try again.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -78816,7 +78956,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6656"/>
+        <location filename="../UI/UserInterface.py" line="6670"/>
         <source>Load session</source>
         <translation type="unfinished">Načíst relaci</translation>
     </message>
@@ -78831,17 +78971,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6656"/>
+        <location filename="../UI/UserInterface.py" line="6670"/>
         <source>eric6 Session Files (*.e5s)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6707"/>
+        <location filename="../UI/UserInterface.py" line="6721"/>
         <source>Crash Session found!</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6707"/>
+        <location filename="../UI/UserInterface.py" line="6721"/>
         <source>A session file of a crashed session was found. Shall this session be restored?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -78856,17 +78996,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7242"/>
+        <location filename="../UI/UserInterface.py" line="7256"/>
         <source>Update Check</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7242"/>
+        <location filename="../UI/UserInterface.py" line="7256"/>
         <source>You installed eric directly from the source code. There is no possibility to check for the availability of an update.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7232"/>
+        <location filename="../UI/UserInterface.py" line="7246"/>
         <source>You are using a snapshot release of eric6. A more up-to-date stable release might be available.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -78921,7 +79061,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5888"/>
+        <location filename="../UI/UserInterface.py" line="5902"/>
         <source>&lt;p&gt;The PySide{0} documentation starting point has not been configured.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -78997,17 +79137,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6062"/>
+        <location filename="../UI/UserInterface.py" line="6076"/>
         <source>Start Web Browser</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6001"/>
+        <location filename="../UI/UserInterface.py" line="6015"/>
         <source>The eric6 web browser could not be started.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6062"/>
+        <location filename="../UI/UserInterface.py" line="6076"/>
         <source>&lt;p&gt;The eric6 web browser is not started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -79101,6 +79241,11 @@
         <source>Central Park</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../UI/UserInterface.py" line="3650"/>
+        <source>&lt;h2&gt;Version Numbers&lt;/h2&gt;&lt;table&gt;</source>
+        <translation type="unfinished">&lt;h3&gt;Čísla verzí&lt;/h3&gt;&lt;table&gt; {2&gt;?} {2&gt;?}</translation>
+    </message>
 </context>
 <context>
     <name>UserPropertiesDialog</name>
@@ -79358,7 +79503,7 @@
 <context>
     <name>VariableItem</name>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="207"/>
+        <location filename="../Debugger/VariablesViewer.py" line="211"/>
         <source>&lt;double click to show value&gt;</source>
         <translation>&lt;dvojitý klik pro zobrazení hodnoty&gt;</translation>
     </message>
@@ -79440,22 +79585,22 @@
 <context>
     <name>VariablesModel</name>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="278"/>
+        <location filename="../Debugger/VariablesViewer.py" line="282"/>
         <source>Globals</source>
         <translation type="unfinished">Globální</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="280"/>
+        <location filename="../Debugger/VariablesViewer.py" line="284"/>
         <source>Locals</source>
         <translation type="unfinished">Lokální</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="282"/>
+        <location filename="../Debugger/VariablesViewer.py" line="286"/>
         <source>Type</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="282"/>
+        <location filename="../Debugger/VariablesViewer.py" line="286"/>
         <source>Value</source>
         <translation type="unfinished">Hodnota</translation>
     </message>
@@ -79463,7 +79608,7 @@
 <context>
     <name>VariablesViewer</name>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="951"/>
+        <location filename="../Debugger/VariablesViewer.py" line="955"/>
         <source>Global Variables</source>
         <translation>Globální proměnné</translation>
     </message>
@@ -79483,12 +79628,12 @@
         <translation type="obsolete">Typ</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="952"/>
+        <location filename="../Debugger/VariablesViewer.py" line="956"/>
         <source>&lt;b&gt;The Global Variables Viewer Window&lt;/b&gt;&lt;p&gt;This window displays the global variables of the debugged program.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Prohlížeč globálních proměnných&lt;/b&gt;&lt;p&gt;Toto okno zobrazuje globální proměnné debugovénho programu.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="958"/>
+        <location filename="../Debugger/VariablesViewer.py" line="962"/>
         <source>Local Variables</source>
         <translation>Lokální proměnné</translation>
     </message>
@@ -79498,17 +79643,17 @@
         <translation type="obsolete">Lokální</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="959"/>
+        <location filename="../Debugger/VariablesViewer.py" line="963"/>
         <source>&lt;b&gt;The Local Variables Viewer Window&lt;/b&gt;&lt;p&gt;This window displays the local variables of the debugged program.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Prohlížeč lokálních proměnných&lt;/b&gt;&lt;p&gt;Toto okno zobrazuje lokální proměnné debugovénho programu.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1076"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1080"/>
         <source>Show Details...</source>
         <translation>Zobrazit detaily...</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1091"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1095"/>
         <source>Configure...</source>
         <translation>Konfigurovat...</translation>
     </message>
@@ -79518,7 +79663,7 @@
         <translation>{0} položek</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1089"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1093"/>
         <source>Refresh</source>
         <translation type="unfinished">Obnovit</translation>
     </message>
@@ -79528,25 +79673,30 @@
         <translation type="obsolete">Složit vše</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1078"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1082"/>
         <source>Expand</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1079"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1083"/>
         <source>Collapse</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1080"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1084"/>
         <source>Collapse All</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1092"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1096"/>
         <source>Variables Type Filter...</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../Debugger/VariablesViewer.py" line="47"/>
+        <source>unsized</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>VcsCommandOptionsDialog</name>
Binary file eric6/i18n/eric6_de.qm has changed
--- a/eric6/i18n/eric6_de.ts	Fri Nov 01 16:11:55 2019 +0100
+++ b/eric6/i18n/eric6_de.ts	Sun Dec 01 16:38:47 2019 +0100
@@ -44009,44 +44009,79 @@
         <translation>Gib den Pfad für den Crosscompiler ein</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.py" line="39"/>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.py" line="42"/>
         <source>All Files (*)</source>
         <translation>Alle Dateien (*)</translation>
     </message>
     <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="255"/>
+        <source>Documentation</source>
+        <translation>Dokumentation</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="261"/>
+        <source>MicroPython:</source>
+        <translation>MicroPython:</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="268"/>
+        <source>Enter the URL for the MicroPython documentation</source>
+        <translation>Gib die URL für die MicroPython Dokumentation ein</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="275"/>
+        <source>CircuitPython:</source>
+        <translation>CircuitPython:</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="282"/>
+        <source>Enter the URL for the CircuitPython documentation</source>
+        <translation>Gib die URL für die CircuitPython Dokumentation ein</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="289"/>
+        <source>BBC micro:bit:</source>
+        <translation>BBC micro:bit:</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="296"/>
+        <source>Enter the URL for the BBC micro:bit MicroPython documentation</source>
+        <translation>Gib die URL für die BBC micro:bit MicroPython Dokumentation ein</translation>
+    </message>
+    <message>
         <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="172"/>
-        <source>Documentation</source>
-        <translation>Dokumentation</translation>
+        <source>PyBoard</source>
+        <translation>PyBoard</translation>
     </message>
     <message>
         <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="178"/>
-        <source>MicroPython:</source>
-        <translation>MicroPython:</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="185"/>
-        <source>Enter the URL for the MicroPython documentation</source>
-        <translation>Gib die URL für die MicroPython Dokumentation ein</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="192"/>
-        <source>CircuitPython:</source>
-        <translation>CircuitPython:</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="199"/>
-        <source>Enter the URL for the CircuitPython documentation</source>
-        <translation>Gib die URL für die CircuitPython Dokumentation ein</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="206"/>
-        <source>BBC micro:bit:</source>
-        <translation>BBC micro:bit:</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="213"/>
-        <source>Enter the URL for the BBC micro:bit MicroPython documentation</source>
-        <translation>Gib die URL für die BBC micro:bit MicroPython Dokumentation ein</translation>
+        <source>dfu-util Path:</source>
+        <translation>Pfad zu dfu-util:</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="194"/>
+        <source>Enter the path of the dfu-util flashing executable</source>
+        <translation>Gib den Pfad des &apos;dfu-util&apos; Flashing Programms ein</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="204"/>
+        <source>Firmware</source>
+        <translation>Firmware</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="217"/>
+        <source>Enter the URL for the MicroPython firmware for PyBoard, ESP8266 and ESP32</source>
+        <translation>Gib die URL zur MicroPython Firmware für PyBoard, ESP8266 und ESP32 ein</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="231"/>
+        <source>Enter the URL for the CircuitPython firmware</source>
+        <translation>Gib die URL zur CircuitPython Firmware ein</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="245"/>
+        <source>Enter the URL for the BBC micro:bit Firmware</source>
+        <translation>Gib die URL zur BBC micro:bit Firmware ein</translation>
     </message>
 </context>
 <context>
@@ -44246,7 +44281,7 @@
         <translation>Implementierung anzeigen</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1202"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1210"/>
         <source>Synchronize Time</source>
         <translation>Zeit synchronisieren</translation>
     </message>
@@ -44261,107 +44296,107 @@
         <translation>Lokale Zeit anzeigen</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1366"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1421"/>
         <source>Compile Python File</source>
         <translation>Python Datei übersetzen</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1386"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1441"/>
         <source>Compile Current Editor</source>
         <translation>Aktuellen Editor übersetzen</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1140"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1148"/>
         <source>&lt;h3&gt;Device Version Information&lt;/h3&gt;</source>
         <translation>&lt;h3&gt;Versionsinformationen des Gerätes&lt;/h3&gt;</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1149"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1157"/>
         <source>No version information available.</source>
         <translation>Keine Versionsinformationen verfügbar.</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1151"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1159"/>
         <source>Device Version Information</source>
         <translation>Versionsinformationen des Gerätes</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1174"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1182"/>
         <source>unknown</source>
         <translation>unbekannt</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1178"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1186"/>
         <source>Device Implementation Information</source>
         <translation>Informationen zur Implementierung</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1178"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1186"/>
         <source>&lt;h3&gt;Device Implementation Information&lt;/h3&gt;&lt;p&gt;This device contains &lt;b&gt;{0} {1}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;h3&gt;Informationen zur Implementierung&lt;/h3&gt;&lt;p&gt;Dieses Gerät enthält &lt;b&gt;{0} {1}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1202"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1210"/>
         <source>&lt;p&gt;The time of the connected device was synchronized with the local time.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Die Zeit des angeschlossenen Gerätes wurde mit der lokalen Zeit synchronisiert.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1224"/>
-        <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
-        <translation>&lt;h3&gt;Datum und Zeit des Gerätes&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Datum&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Zeit&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
-    </message>
-    <message>
         <location filename="../MicroPython/MicroPythonWidget.py" line="1232"/>
+        <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+        <translation>&lt;h3&gt;Datum und Zeit des Gerätes&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Datum&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Zeit&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1240"/>
         <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;p&gt;{0}&lt;/p&gt;</source>
         <translation>&lt;h3&gt;Datum und Zeit des Gerätes&lt;/h3&gt;&lt;p&gt;{0}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1246"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1254"/>
         <source>Device Date and Time</source>
         <translation>Datum und Zeit des Gerätes</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1259"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1267"/>
         <source>Local Date and Time</source>
         <translation>Lokales Datum und Zeit</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1259"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1267"/>
         <source>&lt;h3&gt;Local Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
         <translation>&lt;h3&gt;Lokales Datum und Zeit&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Datum&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Zeit&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1279"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1334"/>
         <source>Error handling device</source>
         <translation>Fehler bei Gerätekommunikation</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1279"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1334"/>
         <source>&lt;p&gt;There was an error communicating with the connected device.&lt;/p&gt;&lt;p&gt;Method: {0}&lt;/p&gt;&lt;p&gt;Message: {1}&lt;/p&gt;</source>
         <translation>&lt;p&gt;Es trat ein Fehler bei der Kommunikation mit dem Gerät auf.&lt;/p&gt;&lt;p&gt;Methode: {0}&lt;/p&gt;&lt;p&gt;Nachricht: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1318"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1373"/>
         <source>The MicroPython cross compiler &lt;b&gt;mpy-cross&lt;/b&gt; cannot be found. Ensure it is in the search path or configure it on the MicroPython configuration page.</source>
         <translation>Der MicroPython Crosscompiler &lt;b&gt;mpy-cross&lt;/b&gt; kann nicht gefunden werden. Stelle sicher, dass er im Suchpfad liegt oder konfiguriere ihn auf der MicroPython Konfigurationsseite.</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1336"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1391"/>
         <source>Python Files (*.py);;All Files (*)</source>
         <translation>Python-Dateien (*.py);;Alle Dateien (*)</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1346"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1401"/>
         <source>The Python file &lt;b&gt;{0}&lt;/b&gt; does not exist. Aborting...</source>
         <translation>Die Python Datei &lt;b&gt;{0}&lt;/b&gt; existiert nicht. Abbruch...</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1356"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1411"/>
         <source>&apos;mpy-cross&apos; Output</source>
         <translation>&apos;mpy-cross&apos; Ausgabe</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1379"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1434"/>
         <source>The current editor does not contain a Python file. Aborting...</source>
         <translation>Der aktuelle Editortext enthält keine Pythondatei. Abbruch...</translation>
     </message>
@@ -44386,14 +44421,39 @@
         <translation>µPy Dateien</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1126"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1134"/>
         <source>Show Documentation</source>
         <translation>Dokumentation anzeigen</translation>
     </message>
     <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1138"/>
+        <source>Configure</source>
+        <translation>Einstellungen</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1113"/>
+        <source>Show Time</source>
+        <translation>Zeit anzeigen</translation>
+    </message>
+    <message>
         <location filename="../MicroPython/MicroPythonWidget.py" line="1130"/>
-        <source>Configure</source>
-        <translation>Einstellungen</translation>
+        <source>Download Firmware</source>
+        <translation>Firmware herunterladen</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1310"/>
+        <source>Date and Time</source>
+        <translation>Datum und Zeit</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1293"/>
+        <source>&lt;table&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;Local Date and Time&lt;/th&gt;&lt;th&gt;Device Date and Time&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{0}&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{1}&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+        <translation>&lt;table&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;Lokales Datum und Zeit&lt;/th&gt;&lt;th&gt;Datum und Zeit des Gerätes&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Datum&lt;/b&gt;&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{0}&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Zeit&lt;/b&gt;&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{1}&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1310"/>
+        <source>&lt;table&gt;&lt;tr&gt;&lt;th&gt;Local Date and Time&lt;/th&gt;&lt;th&gt;Device Date and Time&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&apos;center&apos;&gt;{0} {1}&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+        <translation>&lt;table&gt;&lt;tr&gt;&lt;th&gt;Lokales Datum und Zeit&lt;/th&gt;&lt;th&gt;Datum und Zeit des Gerätes&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&apos;center&apos;&gt;{0} {1}&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
 </context>
 <context>
@@ -49642,17 +49702,17 @@
 <context>
     <name>Preferences</name>
     <message>
-        <location filename="../Preferences/__init__.py" line="1606"/>
+        <location filename="../Preferences/__init__.py" line="1610"/>
         <source>Export Preferences</source>
         <translation>Einstellungen exportieren</translation>
     </message>
     <message>
-        <location filename="../Preferences/__init__.py" line="1634"/>
+        <location filename="../Preferences/__init__.py" line="1638"/>
         <source>Import Preferences</source>
         <translation>Einstellungen importieren</translation>
     </message>
     <message>
-        <location filename="../Preferences/__init__.py" line="1634"/>
+        <location filename="../Preferences/__init__.py" line="1638"/>
         <source>Properties File (*.ini);;All Files (*)</source>
         <translation>Properties-Dateien (*.ini);;Alle Dateien (*)</translation>
     </message>
@@ -49990,17 +50050,17 @@
         <translation>CORBA IDL Compiler</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="361"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="378"/>
         <source>(not configured)</source>
         <translation>(nicht konfiguriert)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="415"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="432"/>
         <source>(not executable)</source>
         <translation>(nicht ausführbar)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="452"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="469"/>
         <source>(not found)</source>
         <translation>(nicht gefunden)</translation>
     </message>
@@ -50010,7 +50070,7 @@
         <translation>Externe Werkzeuge</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="413"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="430"/>
         <source>(unknown)</source>
         <translation>(unbekannt)</translation>
     </message>
@@ -50100,7 +50160,7 @@
         <translation>gRPC Compiler</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="394"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="411"/>
         <source>(module not found)</source>
         <translation>(Modul nicht gefunden)</translation>
     </message>
@@ -50129,6 +50189,21 @@
         <source>PyPI Package Management</source>
         <translation>PyPI Paketverwaltung</translation>
     </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="297"/>
+        <source>MicroPython - MPY Cross Compiler</source>
+        <translation>MicroPython - MPY Cross Compiler</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="300"/>
+        <source>MicroPython - ESP Tool</source>
+        <translation>MicroPython - ESP Werkzeug</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="306"/>
+        <source>MicroPython - PyBoard Flasher</source>
+        <translation>MicroPython - PyBoard Flasher</translation>
+    </message>
 </context>
 <context>
     <name>Project</name>
@@ -53657,24 +53732,89 @@
 <context>
     <name>PyBoardDevice</name>
     <message>
-        <location filename="../MicroPython/PyBoardDevices.py" line="70"/>
+        <location filename="../MicroPython/PyBoardDevices.py" line="75"/>
         <source>PyBoard</source>
         <translation>PyBoard</translation>
     </message>
     <message>
-        <location filename="../MicroPython/PyBoardDevices.py" line="159"/>
+        <location filename="../MicroPython/PyBoardDevices.py" line="164"/>
         <source>Workspace Directory</source>
         <translation>Arbeitsverzeichnis</translation>
     </message>
     <message>
-        <location filename="../MicroPython/PyBoardDevices.py" line="159"/>
+        <location filename="../MicroPython/PyBoardDevices.py" line="164"/>
         <source>Python files for PyBoard devices are stored on the device. Therefore, to edit these files you need to have the device plugged in. Until you plug in a device, the standard directory will be used.</source>
         <translation>Pythondateien für PyBoard Geräte werden auf dem Gerät gespeichert. Um diese Dateien zu bearbeiten, muss das Gerät angesteckt sein. Solange kein Gerät angesteckt ist, wird das normale Arbeitsverzeichnis verwendet.</translation>
     </message>
     <message>
-        <location filename="../MicroPython/PyBoardDevices.py" line="186"/>
-        <source>MicroPython Install Instructions</source>
-        <translation>MicroPython Installationsanweisungen</translation>
+        <location filename="../MicroPython/PyBoardDevices.py" line="202"/>
+        <source>List DFU-capable Devices</source>
+        <translation>Liste der DFU fähigen Geräte</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="356"/>
+        <source>Flash MicroPython Firmware</source>
+        <translation>MicroPython Firmware flashen</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="209"/>
+        <source>MicroPython Flash Instructions</source>
+        <translation>MicroPython Flashanweisungen</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="239"/>
+        <source>dfu-util not available</source>
+        <translation>dfu-util ist nicht verfügbar</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="239"/>
+        <source>The dfu-util firmware flashing tool &lt;b&gt;dfu-util&lt;/b&gt; cannot be found or is not executable. Ensure it is in the search path or configure it on the MicroPython configuration page.</source>
+        <translation>Das dfu-util Firmware Flashingprogramm &lt;b&gt;dfu-util&lt;/b&gt; kann nicht gefunden werden oder ist nicht ausführbar. Stelle sicher, dass es sich im Suchpfad befindet, oder konfiguriere es auf der MicroPython Konfigurationsseite.</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="260"/>
+        <source>&lt;h3&gt;Enable DFU Mode&lt;/h3&gt;&lt;p&gt;1. Disconnect everything from your board&lt;/p&gt;&lt;p&gt;2. Disconnect your board&lt;/p&gt;&lt;p&gt;3. Connect the DFU/BOOT0 pin with a 3.3V pin&lt;/p&gt;&lt;p&gt;4. Re-connect your board&lt;/p&gt;&lt;hr /&gt;</source>
+        <translation>&lt;h3&gt;DFU Modus aktivieren&lt;/h3&gt;&lt;p&gt;1. Trenne alles von deinem Board&lt;/p&gt;&lt;p&gt;2. Trenne dein Board&lt;/p&gt;&lt;p&gt;3. Verbinde den DFU/BOOT0 pin mit dem 3,3V Pin&lt;/p&gt;&lt;p&gt;4. Verbinde dein Board wieder&lt;/p&gt;&lt;hr /&gt;</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="270"/>
+        <source>&lt;p&gt;&lt;b&gt;Warning:&lt;/b&gt; Make sure that all other DFU capable devices except your PyBoard are disconnected.&lt;hr /&gt;</source>
+        <translation>&lt;p&gt;&lt;b&gt;Warnung:&lt;/b&gt; Stelle sicher, dass alle anderen DFU fähigen Geräte mit Ausnahme deines PyBoard getrennt sind.&lt;hr /&gt;</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="276"/>
+        <source>&lt;p&gt;Press &lt;b&gt;OK&lt;/b&gt; to continue...&lt;/p&gt;</source>
+        <translation>&lt;p&gt;Drücke &lt;b&gt;OK&lt;/b&gt; zum Fortfahren...&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="279"/>
+        <source>Enable DFU mode</source>
+        <translation>DFU Modus aktivieren</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="293"/>
+        <source>&lt;h3&gt;Disable DFU Mode&lt;/h3&gt;&lt;p&gt;1. Disconnect your board&lt;/p&gt;&lt;p&gt;2. Remove the DFU jumper&lt;/p&gt;&lt;p&gt;3. Re-connect your board&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;Press &lt;b&gt;OK&lt;/b&gt; to continue...&lt;/p&gt;</source>
+        <translation>&lt;h3&gt;DFU Modus deaktivieren&lt;/h3&gt;&lt;p&gt;1. Trenne dein BOard&lt;/p&gt;&lt;p&gt;2. Entferne die DFU Brücke&lt;/p&gt;&lt;p&gt;3. Verbinde dein Board wieder&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;Drücke &lt;b&gt;OK&lt;/b&gt; zum Fortfahren...&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="301"/>
+        <source>Disable DFU mode</source>
+        <translation>DFU Modus deaktivieren</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="356"/>
+        <source>&apos;dfu-util&apos; Output</source>
+        <translation>&apos;dfu-util&apos; Ausgabe</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="322"/>
+        <source>List DFU capable Devices</source>
+        <translation>Liste der DFU fähigen Geräte</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="344"/>
+        <source>MicroPython Firmware Files (*.dfu);;All Files (*)</source>
+        <translation>MicroPython Firmwaredateien (*.dfu);;Alle Dateien (*)</translation>
     </message>
 </context>
 <context>
@@ -74491,7 +74631,7 @@
         <translation>Werkzeuge</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5101"/>
+        <location filename="../UI/UserInterface.py" line="5115"/>
         <source>Help</source>
         <translation>Hilfe</translation>
     </message>
@@ -74501,7 +74641,7 @@
         <translation>&amp;Werkzeugleisten</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5229"/>
+        <location filename="../UI/UserInterface.py" line="5243"/>
         <source>Problem</source>
         <translation>Problem</translation>
     </message>
@@ -74521,7 +74661,7 @@
         <translation>&amp;Was ist das?</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5424"/>
+        <location filename="../UI/UserInterface.py" line="5438"/>
         <source>Process Generation Error</source>
         <translation>Fehler beim Prozessstart</translation>
     </message>
@@ -74591,7 +74731,7 @@
         <translation>E&amp;xtras</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="3709"/>
+        <location filename="../UI/UserInterface.py" line="3723"/>
         <source>Report Bug</source>
         <translation>Fehler berichten</translation>
     </message>
@@ -74611,7 +74751,7 @@
         <translation>&lt;b&gt;Fehler berichten...&lt;/b&gt;&lt;p&gt;Öffnet einen Dialog zum Senden eines Fehlerberichtes.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6315"/>
+        <location filename="../UI/UserInterface.py" line="6329"/>
         <source>Export Keyboard Shortcuts</source>
         <translation>Tastaturkurzbefehle exportieren</translation>
     </message>
@@ -74631,7 +74771,7 @@
         <translation>&lt;b&gt;Tastaturkurzbefehle exportieren&lt;/b&gt;&lt;p&gt;Exportiert die Tastaturkurzbefehle der Applikation.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6339"/>
+        <location filename="../UI/UserInterface.py" line="6353"/>
         <source>Import Keyboard Shortcuts</source>
         <translation>Tastaturkurzbefehle importieren</translation>
     </message>
@@ -74786,7 +74926,7 @@
         <translation>&lt;b&gt;Dateien Seite an Seite vergleichen&lt;/b&gt;&lt;p&gt;Öffnet einen Dialog zum Vergleich zweier Dateien und zur Anzeige des Ergebnisse Seite an Seite.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6902"/>
+        <location filename="../UI/UserInterface.py" line="6916"/>
         <source>Drop Error</source>
         <translation>Drop-Fehler</translation>
     </message>
@@ -74856,32 +74996,32 @@
         <translation>&lt;b&gt;Ansichtenprofile&lt;/b&gt;&lt;p&gt;Ansichtenprofile konfigurieren. Mit diesem Dialog kann die Sichtbarkeit der verschiedenen Fenster für die vorbestimmten Ansichtenprofile eingestellt werden.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5229"/>
+        <location filename="../UI/UserInterface.py" line="5243"/>
         <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; does not exist or is zero length.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Die Datei &lt;b&gt;{0}&lt;/b&gt; existiert nicht oder hat die Größe Null.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4948"/>
+        <location filename="../UI/UserInterface.py" line="4962"/>
         <source>&lt;p&gt;Could not start Qt-Designer.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Qt-Designer konnte nicht gestartet werden.&lt;br&gt;Stellen Sie sicher, dass es als &lt;b&gt;{0}&lt;/b&gt; verfügbar ist.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5020"/>
+        <location filename="../UI/UserInterface.py" line="5034"/>
         <source>&lt;p&gt;Could not start Qt-Linguist.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Qt-Linguist konnte nicht gestartet werden.&lt;br&gt;Stellen Sie sicher, dass es als &lt;b&gt;{0}&lt;/b&gt; verfügbar ist.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5073"/>
+        <location filename="../UI/UserInterface.py" line="5087"/>
         <source>&lt;p&gt;Could not start Qt-Assistant.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Qt-Assistant konnte nicht gestartet werden.&lt;br&gt;Stellen Sie sicher, dass es als &lt;b&gt;{0}&lt;/b&gt; verfügbar ist.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5424"/>
+        <location filename="../UI/UserInterface.py" line="5438"/>
         <source>&lt;p&gt;Could not start the tool entry &lt;b&gt;{0}&lt;/b&gt;.&lt;br&gt;Ensure that it is available as &lt;b&gt;{1}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Der Werkzeugeeintrag &lt;b&gt;{0}&lt;/b&gt; konnte nicht gestartet werden.&lt;br&gt;Stellen Sie sicher, dass er als &lt;b&gt;{1}&lt;/b&gt; verfügbar ist.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6902"/>
+        <location filename="../UI/UserInterface.py" line="6916"/>
         <source>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; is not a file.&lt;/p&gt;</source>
         <translation>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; ist keine Datei.&lt;/p&gt;</translation>
     </message>
@@ -74906,7 +75046,7 @@
         <translation>&lt;b&gt;UI-Vorschau&lt;/b&gt;&lt;p&gt;Starte die UI-Vorschau.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5185"/>
+        <location filename="../UI/UserInterface.py" line="5199"/>
         <source>&lt;p&gt;Could not start UI Previewer.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Die UI-Vorschau konnte nicht gestartet werden.&lt;br&gt;Stellen Sie sicher, dass sie als &lt;b&gt;{0}&lt;/b&gt; verfügbar ist.&lt;/p&gt;</translation>
     </message>
@@ -74931,7 +75071,7 @@
         <translation>&lt;b&gt;Übersetzungsvorschau&lt;/b&gt;&lt;p&gt;Dies startet das Programm zur Vorschau von Übersetzungen.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5242"/>
+        <location filename="../UI/UserInterface.py" line="5256"/>
         <source>&lt;p&gt;Could not start Translation Previewer.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Die Übersetzungsvorschau konnte nicht gestartet werden.&lt;br&gt;Stellen Sie sicher, dass sie als &lt;b&gt;{0}&lt;/b&gt; verfügbar ist.&lt;/p&gt;</translation>
     </message>
@@ -74971,47 +75111,47 @@
         <translation>Aufgabenanzeige</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6509"/>
+        <location filename="../UI/UserInterface.py" line="6523"/>
         <source>Save tasks</source>
         <translation>Aufgaben speichern</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6509"/>
+        <location filename="../UI/UserInterface.py" line="6523"/>
         <source>&lt;p&gt;The tasks file &lt;b&gt;{0}&lt;/b&gt; could not be written.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Die Aufgabendatei &lt;b&gt;{0}&lt;/b&gt; konnte nicht geschrieben werden.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6538"/>
+        <location filename="../UI/UserInterface.py" line="6552"/>
         <source>Read tasks</source>
         <translation>Aufgaben lesen</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6538"/>
+        <location filename="../UI/UserInterface.py" line="6552"/>
         <source>&lt;p&gt;The tasks file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Die Aufgabendatei &lt;b&gt;{0}&lt;/b&gt; konnte nicht gelesen werden.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5101"/>
-        <source>Currently no custom viewer is selected. Please use the preferences dialog to specify one.</source>
-        <translation>Momentan ist kein Betrachter angegeben. Bitte benutzen Sie den Einstellungsdialog, um einen festzulegen.</translation>
-    </message>
-    <message>
         <location filename="../UI/UserInterface.py" line="5115"/>
+        <source>Currently no custom viewer is selected. Please use the preferences dialog to specify one.</source>
+        <translation>Momentan ist kein Betrachter angegeben. Bitte benutzen Sie den Einstellungsdialog, um einen festzulegen.</translation>
+    </message>
+    <message>
+        <location filename="../UI/UserInterface.py" line="5129"/>
         <source>&lt;p&gt;Could not start custom viewer.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Der Betrachter konnte nicht gestartet werden.&lt;br&gt;Stellen Sie sicher, dass er als &lt;b&gt;{0}&lt;/b&gt; verfügbar ist.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5905"/>
+        <location filename="../UI/UserInterface.py" line="5919"/>
         <source>Documentation Missing</source>
         <translation>Dokumentation fehlt</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5905"/>
+        <location filename="../UI/UserInterface.py" line="5919"/>
         <source>&lt;p&gt;The documentation starting point &quot;&lt;b&gt;{0}&lt;/b&gt;&quot; could not be found.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Der Dokumentationsstartpunkt „&lt;b&gt;{0}&lt;/b&gt;“ konnte nicht gefunden werden.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="3709"/>
+        <location filename="../UI/UserInterface.py" line="3723"/>
         <source>Email address or mail server address is empty. Please configure your Email settings in the Preferences Dialog.</source>
         <translation>E-Mail-Adresse oder Mailserver-Adresse sind leer. Bitte konfiguriere die E-Mail-Einstellungen im Einstellungsdialog.</translation>
     </message>
@@ -75106,7 +75246,7 @@
         <translation>Öffne die Eric-API-Dokumentation</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5135"/>
+        <location filename="../UI/UserInterface.py" line="5149"/>
         <source>&lt;p&gt;Could not start the help viewer.&lt;br&gt;Ensure that it is available as &lt;b&gt;hh&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Die Hilfeanzeige konnte nicht gestartet werden.&lt;br&gt;Stellen Sie sicher, dass sie als &lt;b&gt;hh&lt;/b&gt; verfügbar ist.&lt;/p&gt;</translation>
     </message>
@@ -75182,61 +75322,56 @@
         <translation>Profile</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4025"/>
+        <location filename="../UI/UserInterface.py" line="4039"/>
         <source>&amp;Builtin Tools</source>
         <translation>&amp;Eingebaute Werkzeuge</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5408"/>
+        <location filename="../UI/UserInterface.py" line="5422"/>
         <source>Starting process &apos;{0} {1}&apos;.
 </source>
         <translation>Starte Prozess „{0} {1}“.
 </translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5502"/>
+        <location filename="../UI/UserInterface.py" line="5516"/>
         <source>Process &apos;{0}&apos; has exited.
 </source>
         <translation>Prozess „{0}“ ist beendet.
 </translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5888"/>
+        <location filename="../UI/UserInterface.py" line="5902"/>
         <source>Documentation</source>
         <translation>Dokumentation</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5713"/>
+        <location filename="../UI/UserInterface.py" line="5727"/>
         <source>&lt;p&gt;The PyQt4 documentation starting point has not been configured.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Der PyQt4-Dokumentations-Startpunkt ist nicht konfiguriert.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7273"/>
+        <location filename="../UI/UserInterface.py" line="7287"/>
         <source>Error during updates check</source>
         <translation>Fehler während der Aktualisierungsprüfung</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7254"/>
+        <location filename="../UI/UserInterface.py" line="7268"/>
         <source>Update available</source>
         <translation>Aktualisierung verfügbar</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="3650"/>
-        <source>&lt;h3&gt;Version Numbers&lt;/h3&gt;&lt;table&gt;</source>
-        <translation>&lt;h3&gt;Versionsnummern&lt;/h3&gt;&lt;table&gt;</translation>
-    </message>
-    <message>
-        <location filename="../UI/UserInterface.py" line="7312"/>
+        <location filename="../UI/UserInterface.py" line="7326"/>
         <source>&lt;/table&gt;</source>
         <translation>&lt;/table&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4070"/>
+        <location filename="../UI/UserInterface.py" line="4084"/>
         <source>Configure Tool Groups ...</source>
         <translation>Konfiguriere Werkzeuggruppen...</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4074"/>
+        <location filename="../UI/UserInterface.py" line="4088"/>
         <source>Configure current Tool Group ...</source>
         <translation>Konfiguriere aktuelle Werkzeuggruppe...</translation>
     </message>
@@ -75251,22 +75386,22 @@
         <translation>Zeige externe &amp;Werkzeuge</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7273"/>
+        <location filename="../UI/UserInterface.py" line="7287"/>
         <source>Could not perform updates check.</source>
         <translation>Konnte keine Aktualisierungsprüfung durchführen.</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7087"/>
+        <location filename="../UI/UserInterface.py" line="7101"/>
         <source>&amp;Cancel</source>
         <translation>&amp;Abbrechen</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7096"/>
+        <location filename="../UI/UserInterface.py" line="7110"/>
         <source>Trying host {0}</source>
         <translation>Prüfe Host {0}</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7349"/>
+        <location filename="../UI/UserInterface.py" line="7363"/>
         <source>First time usage</source>
         <translation>Erstmalige Nutzung</translation>
     </message>
@@ -75306,7 +75441,7 @@
         <translation>&amp;Plugininformationen...</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4042"/>
+        <location filename="../UI/UserInterface.py" line="4056"/>
         <source>&amp;Plugin Tools</source>
         <translation>&amp;Pluginwerkzeuge</translation>
     </message>
@@ -75326,12 +75461,12 @@
         <translation>&lt;b&gt;Plugin deinstallieren...&lt;/b&gt;&lt;p&gt;Dies öffnet einen Dialog zur Deinstallation eines Plugins.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4190"/>
+        <location filename="../UI/UserInterface.py" line="4204"/>
         <source>&amp;Show all</source>
         <translation>Alle an&amp;zeigen</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4192"/>
+        <location filename="../UI/UserInterface.py" line="4206"/>
         <source>&amp;Hide all</source>
         <translation>Alle &amp;ausblenden</translation>
     </message>
@@ -75361,7 +75496,7 @@
         <translation>Zeige die verfügbaren eric-Versionen</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7297"/>
+        <location filename="../UI/UserInterface.py" line="7311"/>
         <source>&lt;h3&gt;Available versions&lt;/h3&gt;&lt;table&gt;</source>
         <translation>&lt;h3&gt;Verfügbare Versionen&lt;/h3&gt;&lt;table&gt;</translation>
     </message>
@@ -75446,17 +75581,17 @@
         <translation>Externe Werkzeuge/{0}</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5369"/>
+        <location filename="../UI/UserInterface.py" line="5383"/>
         <source>External Tools</source>
         <translation>Externe Werkzeuge</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5360"/>
+        <location filename="../UI/UserInterface.py" line="5374"/>
         <source>No tool entry found for external tool &apos;{0}&apos; in tool group &apos;{1}&apos;.</source>
         <translation>Kein Eintrag für das externe Werkzeug „{0}“ in der Gruppe „{1}“ gefunden.</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5369"/>
+        <location filename="../UI/UserInterface.py" line="5383"/>
         <source>No toolgroup entry &apos;{0}&apos; found.</source>
         <translation>Kein Werkzeuggruppeneintrag „{0}“ gefunden.</translation>
     </message>
@@ -75471,22 +75606,22 @@
         <translation>&amp;Mehrfachprojektanzeige</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6634"/>
+        <location filename="../UI/UserInterface.py" line="6648"/>
         <source>Save session</source>
         <translation>Sitzung speichern</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6572"/>
+        <location filename="../UI/UserInterface.py" line="6586"/>
         <source>&lt;p&gt;The session file &lt;b&gt;{0}&lt;/b&gt; could not be written.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Die Sitzungsdatei &lt;b&gt;{0}&lt;/b&gt; konnte nicht geschrieben werden.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6618"/>
+        <location filename="../UI/UserInterface.py" line="6632"/>
         <source>Read session</source>
         <translation>Sitzung lesen</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6618"/>
+        <location filename="../UI/UserInterface.py" line="6632"/>
         <source>&lt;p&gt;The session file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Die Sitzungsdatei &lt;b&gt;{0}&lt;/b&gt; konnte nicht gelesen werden.&lt;/p&gt;</translation>
     </message>
@@ -75556,12 +75691,12 @@
         <translation>&lt;b&gt;Schalte das Fenster der Horizontalen Werkzeugbox um&lt;/b&gt;&lt;p&gt;Falls das Fenster der Horizontalen Werkzeugbox nicht sichtbar ist, wird es dargestellt. Ist es sichtbar, so wird es versteckt.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="3989"/>
+        <location filename="../UI/UserInterface.py" line="4003"/>
         <source>Restart application</source>
         <translation>Anwendung neu starten</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="3989"/>
+        <location filename="../UI/UserInterface.py" line="4003"/>
         <source>The application needs to be restarted. Do it now?</source>
         <translation>Die Anwendung muss neu gestartet werden. Jetzt durchführen?</translation>
     </message>
@@ -75706,7 +75841,7 @@
         <translation>&lt;b&gt;SQL-Browser&lt;/b&gt;&lt;p&gt;Erforsche eine SQL-Datenbank.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5265"/>
+        <location filename="../UI/UserInterface.py" line="5279"/>
         <source>&lt;p&gt;Could not start SQL Browser.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Der SQL-Browser konnte nicht gestartet werden.&lt;br&gt;Stellen Sie sicher, dass er als &lt;b&gt;{0}&lt;/b&gt; verfügbar ist.&lt;/p&gt;</translation>
     </message>
@@ -75721,7 +75856,7 @@
         <translation>&amp;Icon-Editor...</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5048"/>
+        <location filename="../UI/UserInterface.py" line="5062"/>
         <source>Qt 3 support</source>
         <translation>Qt3-Unterstützung</translation>
     </message>
@@ -75771,7 +75906,7 @@
         <translation>Alt+Shift+B</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6339"/>
+        <location filename="../UI/UserInterface.py" line="6353"/>
         <source>Keyboard shortcut file (*.e4k)</source>
         <translation>Tastaturkurzbefehlsdatei (*.e4k)</translation>
     </message>
@@ -75811,27 +75946,27 @@
         <translation>&lt;b&gt;Python 2-Dokumentation&lt;/b&gt;&lt;p&gt;Zeigt die Python 2-Dokumentation an. Ist kein Dokumentationsverzeichnis konfiguriert, so ist der Ort, an dem die Python 2-Dokumentation gesucht wird, unter Windows das Verzeichnis &lt;i&gt;doc&lt;/i&gt; unter dem Verzeichnis, in dem der konfigurierte Python 2-Interpreter installiert ist, und unter Unix das Verzeichnis &lt;i&gt;/usr/share/doc/packages/python/html/python-docs-html&lt;/i&gt;. Um dies zu überschreiben, können Sie die Umgebungsvariable PYTHON2DOCDIR setzen.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7162"/>
+        <location filename="../UI/UserInterface.py" line="7176"/>
         <source>Error getting versions information</source>
         <translation>Fehler beim Herunterladen der Versionsinformationen</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7155"/>
+        <location filename="../UI/UserInterface.py" line="7169"/>
         <source>The versions information could not be downloaded. Please go online and try again.</source>
         <translation>Die Versionsinformationen konnten nicht heruntergeladen werden. Bitte gehen Sie online und versuchen Sie es erneut.</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6107"/>
+        <location filename="../UI/UserInterface.py" line="6121"/>
         <source>Open Browser</source>
         <translation>Browser starten</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6107"/>
+        <location filename="../UI/UserInterface.py" line="6121"/>
         <source>Could not start a web browser</source>
         <translation>Der Systemwebbrowser konnte nicht gestartet werden</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7162"/>
+        <location filename="../UI/UserInterface.py" line="7176"/>
         <source>The versions information could not be downloaded for the last 7 days. Please go online and try again.</source>
         <translation>Die Versionsinformationen konnten seit 7 Tagen nicht heruntergeladen werden. Bitte gehen Sie online und versuchen Sie es erneut.</translation>
     </message>
@@ -75917,12 +76052,12 @@
         <translation>&lt;b&gt;Bildschirmfoto&lt;/b&gt;&lt;p&gt;Dies öffnet einen Dialog, um ein Bildschirmfoto aufzunehmen.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5337"/>
+        <location filename="../UI/UserInterface.py" line="5351"/>
         <source>&lt;p&gt;Could not start Snapshot tool.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Die Bildschirmfotoanwendung konnte nicht gestartet werden.&lt;br&gt;Stellen Sie sicher, dass sie als &lt;b&gt;{0}&lt;/b&gt; verfügbar ist.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7368"/>
+        <location filename="../UI/UserInterface.py" line="7382"/>
         <source>Select Workspace Directory</source>
         <translation>Wähle Arbeitsverzeichnis</translation>
     </message>
@@ -76287,7 +76422,7 @@
         <translation>Öffne die PyQt5-Dokumentation</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5775"/>
+        <location filename="../UI/UserInterface.py" line="5789"/>
         <source>&lt;p&gt;The PyQt5 documentation starting point has not been configured.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Der PyQt5-Dokumentations-Startpunkt ist nicht konfiguriert.&lt;/p&gt;</translation>
     </message>
@@ -76297,7 +76432,7 @@
         <translation>&lt;b&gt;Python 3-Dokumentation&lt;/b&gt;&lt;p&gt;Zeigt die Python 3-Dokumentation an. Ist kein Dokumentationsverzeichnis konfiguriert, so ist der Ort, an dem die Python 3-Dokumentation gesucht wird, unter Windows das Verzeichnis &lt;i&gt;doc&lt;/i&gt; unter dem Verzeichnis, in dem der Python 3-Interpreter installiert ist, und unter Unix das Verzeichnis &lt;i&gt;/usr/share/doc/packages/python/html&lt;/i&gt;. Um dies zu überschreiben, können Sie die Umgebungsvariable PYTHON3DOCDIR setzen.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7087"/>
+        <location filename="../UI/UserInterface.py" line="7101"/>
         <source>%v/%m</source>
         <translation>%v/%m</translation>
     </message>
@@ -76317,7 +76452,7 @@
         <translation>&lt;b&gt;Zeige Fehlerbericht...&lt;/b&gt;&lt;p&gt;Dies öffnet einen Dialog zur Anzeige des aktuellsten Fehlerberichtes.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7091"/>
+        <location filename="../UI/UserInterface.py" line="7105"/>
         <source>Version Check</source>
         <translation>Versionsprüfung</translation>
     </message>
@@ -76388,27 +76523,27 @@
         <translation>&lt;b&gt;Eric-API-Dokumentation&lt;/b&gt;&lt;p&gt;Zeige die Eric-API-Dokumentation an. Der Pfad für die Dokumentation ist das Unterverzeichnis Documentation/Source im eric6-Installationverzeichnis.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5048"/>
+        <location filename="../UI/UserInterface.py" line="5062"/>
         <source>Qt v.3 is not supported by eric6.</source>
         <translation>Qt v.3 wird von eric6 nicht unterstützt.</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7254"/>
+        <location filename="../UI/UserInterface.py" line="7268"/>
         <source>The update to &lt;b&gt;{0}&lt;/b&gt; of eric6 is available at &lt;b&gt;{1}&lt;/b&gt;. Would you like to get it?</source>
         <translation>Eine Aktualisierung auf &lt;b&gt;{0}&lt;/b&gt; von Eric6 ist unter &lt;b&gt;{1}&lt;/b&gt; verfügbar. Wollen Sie sie laden?</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7266"/>
+        <location filename="../UI/UserInterface.py" line="7280"/>
         <source>Eric6 is up to date</source>
         <translation>Eric6 ist aktuell</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7266"/>
+        <location filename="../UI/UserInterface.py" line="7280"/>
         <source>You are using the latest version of eric6</source>
         <translation>Sie verwenden die aktuellste Version von eric6</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7349"/>
+        <location filename="../UI/UserInterface.py" line="7363"/>
         <source>eric6 has not been configured yet. The configuration dialog will be started.</source>
         <translation>eric6 wurde noch nicht konfiguriert. Der Konfigurationsdialog wird nun gestartet.</translation>
     </message>
@@ -76418,17 +76553,17 @@
         <translation>Erzeuge Werkzeugleisten der Plug-ins...</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4045"/>
+        <location filename="../UI/UserInterface.py" line="4059"/>
         <source>&amp;User Tools</source>
         <translation>&amp;Benutzerwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4117"/>
+        <location filename="../UI/UserInterface.py" line="4131"/>
         <source>No User Tools Configured</source>
         <translation>Keine Benutzerwerkzeuge konfiguriert</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7107"/>
+        <location filename="../UI/UserInterface.py" line="7121"/>
         <source>The versions information cannot not be downloaded because you are &lt;b&gt;offline&lt;/b&gt;. Please go online and try again.</source>
         <translation>Die Versionsinformationen konnten nicht heruntergeladen werden, da sie &lt;b&gt;nicht verbunden&lt;/b&gt; sind. Bitte gehen Sie online und versuchen Sie es erneut.</translation>
     </message>
@@ -76473,7 +76608,7 @@
         <translation>&lt;b&gt;Sitzung speichern...&lt;/b&gt;&lt;p&gt;Dies speichert die aktuelle Sitzung in eine Datei. Es wird ein Dialog zur Eingabe des Dateinamens geöffnet.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6656"/>
+        <location filename="../UI/UserInterface.py" line="6670"/>
         <source>Load session</source>
         <translation>Sitzung laden</translation>
     </message>
@@ -76488,17 +76623,17 @@
         <translation>&lt;b&gt;Sitzung laden...&lt;/b&gt;&lt;p&gt;Dies lädt eine zuvor gesicherte Sitzung. Es wird ein Dialog zur Eingabe des Dateinamens geöffnet.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6656"/>
+        <location filename="../UI/UserInterface.py" line="6670"/>
         <source>eric6 Session Files (*.e5s)</source>
         <translation>eric6 Sitzungsdateien (*.e5s)</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6707"/>
+        <location filename="../UI/UserInterface.py" line="6721"/>
         <source>Crash Session found!</source>
         <translation>Absturzsitzung gefunden!</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6707"/>
+        <location filename="../UI/UserInterface.py" line="6721"/>
         <source>A session file of a crashed session was found. Shall this session be restored?</source>
         <translation>Eine Sitzungsdatei einer abgestürzten Sitzung wurde gefunden. Soll diese Sitzung wiederhergestellt werden?</translation>
     </message>
@@ -76513,17 +76648,17 @@
         <translation>Initialisiere Plugins...</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7242"/>
+        <location filename="../UI/UserInterface.py" line="7256"/>
         <source>Update Check</source>
         <translation>Aktualisierungsprüfung</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7242"/>
+        <location filename="../UI/UserInterface.py" line="7256"/>
         <source>You installed eric directly from the source code. There is no possibility to check for the availability of an update.</source>
         <translation>Eric wurde direkt von vom Quelltext installiert. Eine Aktualitätsprüfung ist daher nicht möglich.</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7232"/>
+        <location filename="../UI/UserInterface.py" line="7246"/>
         <source>You are using a snapshot release of eric6. A more up-to-date stable release might be available.</source>
         <translation>Sie verwenden ein Snapshot-Release von eri6. Eine neueres, stabiles Release könnte verfügbar sein.</translation>
     </message>
@@ -76578,7 +76713,7 @@
         <translation>&lt;b&gt;PySide2-Dokumentation&lt;/b&gt;&lt;p&gt;Zeige die PySide2-Dokumentation an. Abhängig von den Einstellungen wird Erics interner Hilfeanzeiger/Webbrowser, ein externer Webbrowser oder Qt Assistant verwendet.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5888"/>
+        <location filename="../UI/UserInterface.py" line="5902"/>
         <source>&lt;p&gt;The PySide{0} documentation starting point has not been configured.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Der PySide{0}-Dokumentations-Startpunkt ist nicht konfiguriert.&lt;/p&gt;</translation>
     </message>
@@ -76654,17 +76789,17 @@
         <translation>&lt;b&gt;Neustart der Entwicklungsumgebung&lt;/b&gt;&lt;p&gt;Dies startet die Entwicklungsumgebung neu. Ungesicherte Änderungen können zuvor gesichert werden. Ein Python-Programm, das gerade debuggt wird, wird beendet und sämtliche Einstellungen werden gespeichert.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6062"/>
+        <location filename="../UI/UserInterface.py" line="6076"/>
         <source>Start Web Browser</source>
         <translation>Webbrowser starten</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6001"/>
+        <location filename="../UI/UserInterface.py" line="6015"/>
         <source>The eric6 web browser could not be started.</source>
         <translation>Der eric6 Webbrowser konnte nicht gestartet werden.</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6062"/>
+        <location filename="../UI/UserInterface.py" line="6076"/>
         <source>&lt;p&gt;The eric6 web browser is not started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
         <translation>&lt;p&gt;Der eric6 Webbrowser ist nicht gestartet.&lt;/p&gt;&lt;p&gt;Ursache: {0}&lt;/p&gt;</translation>
     </message>
@@ -76758,6 +76893,11 @@
         <source>Central Park</source>
         <translation>Mittelbereich</translation>
     </message>
+    <message>
+        <location filename="../UI/UserInterface.py" line="3650"/>
+        <source>&lt;h2&gt;Version Numbers&lt;/h2&gt;&lt;table&gt;</source>
+        <translation>&lt;h2&gt;Versionsnummern&lt;/h2&gt;&lt;table&gt;</translation>
+    </message>
 </context>
 <context>
     <name>UserPropertiesDialog</name>
@@ -77011,7 +77151,7 @@
 <context>
     <name>VariableItem</name>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="207"/>
+        <location filename="../Debugger/VariablesViewer.py" line="211"/>
         <source>&lt;double click to show value&gt;</source>
         <translation>&lt;Doppelklick, um Wert anzuzeigen&gt;</translation>
     </message>
@@ -77078,22 +77218,22 @@
 <context>
     <name>VariablesModel</name>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="278"/>
+        <location filename="../Debugger/VariablesViewer.py" line="282"/>
         <source>Globals</source>
         <translation>Global</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="280"/>
+        <location filename="../Debugger/VariablesViewer.py" line="284"/>
         <source>Locals</source>
         <translation>Lokal</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="282"/>
+        <location filename="../Debugger/VariablesViewer.py" line="286"/>
         <source>Type</source>
         <translation>Typ</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="282"/>
+        <location filename="../Debugger/VariablesViewer.py" line="286"/>
         <source>Value</source>
         <translation>Wert</translation>
     </message>
@@ -77101,22 +77241,22 @@
 <context>
     <name>VariablesViewer</name>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="951"/>
+        <location filename="../Debugger/VariablesViewer.py" line="955"/>
         <source>Global Variables</source>
         <translation>Globale Variablen</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="952"/>
+        <location filename="../Debugger/VariablesViewer.py" line="956"/>
         <source>&lt;b&gt;The Global Variables Viewer Window&lt;/b&gt;&lt;p&gt;This window displays the global variables of the debugged program.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Das Globale Variablen Fenster&lt;/b&gt;&lt;p&gt;Dieses Fenster zeigt die globalen Variablen des untersuchten Programmes an.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="958"/>
+        <location filename="../Debugger/VariablesViewer.py" line="962"/>
         <source>Local Variables</source>
         <translation>Lokale Variablen</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="959"/>
+        <location filename="../Debugger/VariablesViewer.py" line="963"/>
         <source>&lt;b&gt;The Local Variables Viewer Window&lt;/b&gt;&lt;p&gt;This window displays the local variables of the debugged program.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Das Lokale Variablen Fenster&lt;/b&gt;&lt;p&gt;Dieses Fenster zeigt die lokalen Variablen des untersuchten Programmes an.&lt;/p&gt;</translation>
     </message>
@@ -77126,40 +77266,45 @@
         <translation>{0} Einträge</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1076"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1080"/>
         <source>Show Details...</source>
         <translation>Zeige Details...</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1091"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1095"/>
         <source>Configure...</source>
         <translation>Einstellungen...</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1089"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1093"/>
         <source>Refresh</source>
         <translation>Aktualisieren</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1078"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1082"/>
         <source>Expand</source>
         <translation>Ausklappen</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1079"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1083"/>
         <source>Collapse</source>
         <translation>Einklappen</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1080"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1084"/>
         <source>Collapse All</source>
         <translation>Alle einklappen</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1092"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1096"/>
         <source>Variables Type Filter...</source>
         <translation>Variablentypenfilter …</translation>
     </message>
+    <message>
+        <location filename="../Debugger/VariablesViewer.py" line="47"/>
+        <source>unsized</source>
+        <translation>ohne Länge</translation>
+    </message>
 </context>
 <context>
     <name>VcsCommandOptionsDialog</name>
--- a/eric6/i18n/eric6_empty.ts	Fri Nov 01 16:11:55 2019 +0100
+++ b/eric6/i18n/eric6_empty.ts	Sun Dec 01 16:38:47 2019 +0100
@@ -43781,43 +43781,78 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.py" line="39"/>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.py" line="42"/>
         <source>All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="255"/>
+        <source>Documentation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="261"/>
+        <source>MicroPython:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="268"/>
+        <source>Enter the URL for the MicroPython documentation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="275"/>
+        <source>CircuitPython:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="282"/>
+        <source>Enter the URL for the CircuitPython documentation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="289"/>
+        <source>BBC micro:bit:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="296"/>
+        <source>Enter the URL for the BBC micro:bit MicroPython documentation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="172"/>
-        <source>Documentation</source>
+        <source>PyBoard</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="178"/>
-        <source>MicroPython:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="185"/>
-        <source>Enter the URL for the MicroPython documentation</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="192"/>
-        <source>CircuitPython:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="199"/>
-        <source>Enter the URL for the CircuitPython documentation</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="206"/>
-        <source>BBC micro:bit:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="213"/>
-        <source>Enter the URL for the BBC micro:bit MicroPython documentation</source>
+        <source>dfu-util Path:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="194"/>
+        <source>Enter the path of the dfu-util flashing executable</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="204"/>
+        <source>Firmware</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="217"/>
+        <source>Enter the URL for the MicroPython firmware for PyBoard, ESP8266 and ESP32</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="231"/>
+        <source>Enter the URL for the CircuitPython firmware</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="245"/>
+        <source>Enter the URL for the BBC micro:bit Firmware</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -44013,7 +44048,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1202"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1210"/>
         <source>Synchronize Time</source>
         <translation type="unfinished"></translation>
     </message>
@@ -44028,107 +44063,107 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1366"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1421"/>
         <source>Compile Python File</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1386"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1441"/>
         <source>Compile Current Editor</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1140"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1148"/>
         <source>&lt;h3&gt;Device Version Information&lt;/h3&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1149"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1157"/>
         <source>No version information available.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1151"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1159"/>
         <source>Device Version Information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1174"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1182"/>
         <source>unknown</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1178"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1186"/>
         <source>Device Implementation Information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1178"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1186"/>
         <source>&lt;h3&gt;Device Implementation Information&lt;/h3&gt;&lt;p&gt;This device contains &lt;b&gt;{0} {1}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1202"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1210"/>
         <source>&lt;p&gt;The time of the connected device was synchronized with the local time.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1224"/>
-        <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../MicroPython/MicroPythonWidget.py" line="1232"/>
+        <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1240"/>
         <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;p&gt;{0}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1246"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1254"/>
         <source>Device Date and Time</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1259"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1267"/>
         <source>Local Date and Time</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1259"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1267"/>
         <source>&lt;h3&gt;Local Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1279"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1334"/>
         <source>Error handling device</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1279"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1334"/>
         <source>&lt;p&gt;There was an error communicating with the connected device.&lt;/p&gt;&lt;p&gt;Method: {0}&lt;/p&gt;&lt;p&gt;Message: {1}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1318"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1373"/>
         <source>The MicroPython cross compiler &lt;b&gt;mpy-cross&lt;/b&gt; cannot be found. Ensure it is in the search path or configure it on the MicroPython configuration page.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1336"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1391"/>
         <source>Python Files (*.py);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1346"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1401"/>
         <source>The Python file &lt;b&gt;{0}&lt;/b&gt; does not exist. Aborting...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1356"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1411"/>
         <source>&apos;mpy-cross&apos; Output</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1379"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1434"/>
         <source>The current editor does not contain a Python file. Aborting...</source>
         <translation type="unfinished"></translation>
     </message>
@@ -44153,13 +44188,38 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1126"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1134"/>
         <source>Show Documentation</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1138"/>
+        <source>Configure</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1113"/>
+        <source>Show Time</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../MicroPython/MicroPythonWidget.py" line="1130"/>
-        <source>Configure</source>
+        <source>Download Firmware</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1310"/>
+        <source>Date and Time</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1293"/>
+        <source>&lt;table&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;Local Date and Time&lt;/th&gt;&lt;th&gt;Device Date and Time&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{0}&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{1}&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1310"/>
+        <source>&lt;table&gt;&lt;tr&gt;&lt;th&gt;Local Date and Time&lt;/th&gt;&lt;th&gt;Device Date and Time&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&apos;center&apos;&gt;{0} {1}&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -49392,17 +49452,17 @@
 <context>
     <name>Preferences</name>
     <message>
-        <location filename="../Preferences/__init__.py" line="1606"/>
+        <location filename="../Preferences/__init__.py" line="1610"/>
         <source>Export Preferences</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/__init__.py" line="1634"/>
+        <location filename="../Preferences/__init__.py" line="1638"/>
         <source>Properties File (*.ini);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/__init__.py" line="1634"/>
+        <location filename="../Preferences/__init__.py" line="1638"/>
         <source>Import Preferences</source>
         <translation type="unfinished"></translation>
     </message>
@@ -49810,7 +49870,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="413"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="430"/>
         <source>(unknown)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -49825,17 +49885,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="361"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="378"/>
         <source>(not configured)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="415"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="432"/>
         <source>(not executable)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="452"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="469"/>
         <source>(not found)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -49850,7 +49910,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="394"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="411"/>
         <source>(module not found)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -49879,6 +49939,21 @@
         <source>PyPI Package Management</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="297"/>
+        <source>MicroPython - MPY Cross Compiler</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="300"/>
+        <source>MicroPython - ESP Tool</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="306"/>
+        <source>MicroPython - PyBoard Flasher</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>Project</name>
@@ -53395,23 +53470,88 @@
 <context>
     <name>PyBoardDevice</name>
     <message>
-        <location filename="../MicroPython/PyBoardDevices.py" line="70"/>
+        <location filename="../MicroPython/PyBoardDevices.py" line="75"/>
         <source>PyBoard</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/PyBoardDevices.py" line="159"/>
+        <location filename="../MicroPython/PyBoardDevices.py" line="164"/>
         <source>Workspace Directory</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/PyBoardDevices.py" line="159"/>
+        <location filename="../MicroPython/PyBoardDevices.py" line="164"/>
         <source>Python files for PyBoard devices are stored on the device. Therefore, to edit these files you need to have the device plugged in. Until you plug in a device, the standard directory will be used.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/PyBoardDevices.py" line="186"/>
-        <source>MicroPython Install Instructions</source>
+        <location filename="../MicroPython/PyBoardDevices.py" line="202"/>
+        <source>List DFU-capable Devices</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="356"/>
+        <source>Flash MicroPython Firmware</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="209"/>
+        <source>MicroPython Flash Instructions</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="239"/>
+        <source>dfu-util not available</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="239"/>
+        <source>The dfu-util firmware flashing tool &lt;b&gt;dfu-util&lt;/b&gt; cannot be found or is not executable. Ensure it is in the search path or configure it on the MicroPython configuration page.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="260"/>
+        <source>&lt;h3&gt;Enable DFU Mode&lt;/h3&gt;&lt;p&gt;1. Disconnect everything from your board&lt;/p&gt;&lt;p&gt;2. Disconnect your board&lt;/p&gt;&lt;p&gt;3. Connect the DFU/BOOT0 pin with a 3.3V pin&lt;/p&gt;&lt;p&gt;4. Re-connect your board&lt;/p&gt;&lt;hr /&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="270"/>
+        <source>&lt;p&gt;&lt;b&gt;Warning:&lt;/b&gt; Make sure that all other DFU capable devices except your PyBoard are disconnected.&lt;hr /&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="276"/>
+        <source>&lt;p&gt;Press &lt;b&gt;OK&lt;/b&gt; to continue...&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="279"/>
+        <source>Enable DFU mode</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="293"/>
+        <source>&lt;h3&gt;Disable DFU Mode&lt;/h3&gt;&lt;p&gt;1. Disconnect your board&lt;/p&gt;&lt;p&gt;2. Remove the DFU jumper&lt;/p&gt;&lt;p&gt;3. Re-connect your board&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;Press &lt;b&gt;OK&lt;/b&gt; to continue...&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="301"/>
+        <source>Disable DFU mode</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="356"/>
+        <source>&apos;dfu-util&apos; Output</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="322"/>
+        <source>List DFU capable Devices</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="344"/>
+        <source>MicroPython Firmware Files (*.dfu);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -74504,7 +74644,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="3709"/>
+        <location filename="../UI/UserInterface.py" line="3723"/>
         <source>Report Bug</source>
         <translation type="unfinished"></translation>
     </message>
@@ -75029,7 +75169,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6315"/>
+        <location filename="../UI/UserInterface.py" line="6329"/>
         <source>Export Keyboard Shortcuts</source>
         <translation type="unfinished"></translation>
     </message>
@@ -75049,7 +75189,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6339"/>
+        <location filename="../UI/UserInterface.py" line="6353"/>
         <source>Import Keyboard Shortcuts</source>
         <translation type="unfinished"></translation>
     </message>
@@ -75429,7 +75569,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5101"/>
+        <location filename="../UI/UserInterface.py" line="5115"/>
         <source>Help</source>
         <translation type="unfinished"></translation>
     </message>
@@ -75479,354 +75619,349 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="3650"/>
-        <source>&lt;h3&gt;Version Numbers&lt;/h3&gt;&lt;table&gt;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../UI/UserInterface.py" line="7312"/>
+        <location filename="../UI/UserInterface.py" line="7326"/>
         <source>&lt;/table&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="3709"/>
+        <location filename="../UI/UserInterface.py" line="3723"/>
         <source>Email address or mail server address is empty. Please configure your Email settings in the Preferences Dialog.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="3989"/>
+        <location filename="../UI/UserInterface.py" line="4003"/>
         <source>Restart application</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="3989"/>
+        <location filename="../UI/UserInterface.py" line="4003"/>
         <source>The application needs to be restarted. Do it now?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4025"/>
+        <location filename="../UI/UserInterface.py" line="4039"/>
         <source>&amp;Builtin Tools</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4042"/>
+        <location filename="../UI/UserInterface.py" line="4056"/>
         <source>&amp;Plugin Tools</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4045"/>
+        <location filename="../UI/UserInterface.py" line="4059"/>
         <source>&amp;User Tools</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4070"/>
+        <location filename="../UI/UserInterface.py" line="4084"/>
         <source>Configure Tool Groups ...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4074"/>
+        <location filename="../UI/UserInterface.py" line="4088"/>
         <source>Configure current Tool Group ...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4117"/>
+        <location filename="../UI/UserInterface.py" line="4131"/>
         <source>No User Tools Configured</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4190"/>
+        <location filename="../UI/UserInterface.py" line="4204"/>
         <source>&amp;Show all</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4192"/>
+        <location filename="../UI/UserInterface.py" line="4206"/>
         <source>&amp;Hide all</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5048"/>
+        <location filename="../UI/UserInterface.py" line="5062"/>
         <source>Qt 3 support</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5048"/>
+        <location filename="../UI/UserInterface.py" line="5062"/>
         <source>Qt v.3 is not supported by eric6.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5229"/>
+        <location filename="../UI/UserInterface.py" line="5243"/>
         <source>Problem</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5229"/>
+        <location filename="../UI/UserInterface.py" line="5243"/>
         <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; does not exist or is zero length.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5424"/>
+        <location filename="../UI/UserInterface.py" line="5438"/>
         <source>Process Generation Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4948"/>
+        <location filename="../UI/UserInterface.py" line="4962"/>
         <source>&lt;p&gt;Could not start Qt-Designer.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5020"/>
+        <location filename="../UI/UserInterface.py" line="5034"/>
         <source>&lt;p&gt;Could not start Qt-Linguist.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5073"/>
+        <location filename="../UI/UserInterface.py" line="5087"/>
         <source>&lt;p&gt;Could not start Qt-Assistant.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5101"/>
-        <source>Currently no custom viewer is selected. Please use the preferences dialog to specify one.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../UI/UserInterface.py" line="5115"/>
+        <source>Currently no custom viewer is selected. Please use the preferences dialog to specify one.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/UserInterface.py" line="5129"/>
         <source>&lt;p&gt;Could not start custom viewer.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5135"/>
+        <location filename="../UI/UserInterface.py" line="5149"/>
         <source>&lt;p&gt;Could not start the help viewer.&lt;br&gt;Ensure that it is available as &lt;b&gt;hh&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5185"/>
+        <location filename="../UI/UserInterface.py" line="5199"/>
         <source>&lt;p&gt;Could not start UI Previewer.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5242"/>
+        <location filename="../UI/UserInterface.py" line="5256"/>
         <source>&lt;p&gt;Could not start Translation Previewer.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5265"/>
+        <location filename="../UI/UserInterface.py" line="5279"/>
         <source>&lt;p&gt;Could not start SQL Browser.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5337"/>
+        <location filename="../UI/UserInterface.py" line="5351"/>
         <source>&lt;p&gt;Could not start Snapshot tool.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5369"/>
+        <location filename="../UI/UserInterface.py" line="5383"/>
         <source>External Tools</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5360"/>
+        <location filename="../UI/UserInterface.py" line="5374"/>
         <source>No tool entry found for external tool &apos;{0}&apos; in tool group &apos;{1}&apos;.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5369"/>
+        <location filename="../UI/UserInterface.py" line="5383"/>
         <source>No toolgroup entry &apos;{0}&apos; found.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5408"/>
+        <location filename="../UI/UserInterface.py" line="5422"/>
         <source>Starting process &apos;{0} {1}&apos;.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5424"/>
+        <location filename="../UI/UserInterface.py" line="5438"/>
         <source>&lt;p&gt;Could not start the tool entry &lt;b&gt;{0}&lt;/b&gt;.&lt;br&gt;Ensure that it is available as &lt;b&gt;{1}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5502"/>
+        <location filename="../UI/UserInterface.py" line="5516"/>
         <source>Process &apos;{0}&apos; has exited.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5905"/>
+        <location filename="../UI/UserInterface.py" line="5919"/>
         <source>Documentation Missing</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5905"/>
+        <location filename="../UI/UserInterface.py" line="5919"/>
         <source>&lt;p&gt;The documentation starting point &quot;&lt;b&gt;{0}&lt;/b&gt;&quot; could not be found.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5888"/>
+        <location filename="../UI/UserInterface.py" line="5902"/>
         <source>Documentation</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5713"/>
+        <location filename="../UI/UserInterface.py" line="5727"/>
         <source>&lt;p&gt;The PyQt4 documentation starting point has not been configured.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5775"/>
+        <location filename="../UI/UserInterface.py" line="5789"/>
         <source>&lt;p&gt;The PyQt5 documentation starting point has not been configured.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6107"/>
+        <location filename="../UI/UserInterface.py" line="6121"/>
         <source>Open Browser</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6107"/>
+        <location filename="../UI/UserInterface.py" line="6121"/>
         <source>Could not start a web browser</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6339"/>
+        <location filename="../UI/UserInterface.py" line="6353"/>
         <source>Keyboard shortcut file (*.e4k)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6509"/>
+        <location filename="../UI/UserInterface.py" line="6523"/>
         <source>Save tasks</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6509"/>
+        <location filename="../UI/UserInterface.py" line="6523"/>
         <source>&lt;p&gt;The tasks file &lt;b&gt;{0}&lt;/b&gt; could not be written.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6538"/>
+        <location filename="../UI/UserInterface.py" line="6552"/>
         <source>Read tasks</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6538"/>
+        <location filename="../UI/UserInterface.py" line="6552"/>
         <source>&lt;p&gt;The tasks file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6634"/>
+        <location filename="../UI/UserInterface.py" line="6648"/>
         <source>Save session</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6572"/>
+        <location filename="../UI/UserInterface.py" line="6586"/>
         <source>&lt;p&gt;The session file &lt;b&gt;{0}&lt;/b&gt; could not be written.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6618"/>
+        <location filename="../UI/UserInterface.py" line="6632"/>
         <source>Read session</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6618"/>
+        <location filename="../UI/UserInterface.py" line="6632"/>
         <source>&lt;p&gt;The session file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6902"/>
+        <location filename="../UI/UserInterface.py" line="6916"/>
         <source>Drop Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6902"/>
+        <location filename="../UI/UserInterface.py" line="6916"/>
         <source>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; is not a file.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7087"/>
+        <location filename="../UI/UserInterface.py" line="7101"/>
         <source>&amp;Cancel</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7087"/>
+        <location filename="../UI/UserInterface.py" line="7101"/>
         <source>%v/%m</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7091"/>
+        <location filename="../UI/UserInterface.py" line="7105"/>
         <source>Version Check</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7096"/>
+        <location filename="../UI/UserInterface.py" line="7110"/>
         <source>Trying host {0}</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7162"/>
+        <location filename="../UI/UserInterface.py" line="7176"/>
         <source>Error getting versions information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7107"/>
+        <location filename="../UI/UserInterface.py" line="7121"/>
         <source>The versions information cannot not be downloaded because you are &lt;b&gt;offline&lt;/b&gt;. Please go online and try again.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7155"/>
+        <location filename="../UI/UserInterface.py" line="7169"/>
         <source>The versions information could not be downloaded. Please go online and try again.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7162"/>
+        <location filename="../UI/UserInterface.py" line="7176"/>
         <source>The versions information could not be downloaded for the last 7 days. Please go online and try again.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7254"/>
+        <location filename="../UI/UserInterface.py" line="7268"/>
         <source>Update available</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7254"/>
+        <location filename="../UI/UserInterface.py" line="7268"/>
         <source>The update to &lt;b&gt;{0}&lt;/b&gt; of eric6 is available at &lt;b&gt;{1}&lt;/b&gt;. Would you like to get it?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7266"/>
+        <location filename="../UI/UserInterface.py" line="7280"/>
         <source>Eric6 is up to date</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7266"/>
+        <location filename="../UI/UserInterface.py" line="7280"/>
         <source>You are using the latest version of eric6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7273"/>
+        <location filename="../UI/UserInterface.py" line="7287"/>
         <source>Error during updates check</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7273"/>
+        <location filename="../UI/UserInterface.py" line="7287"/>
         <source>Could not perform updates check.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7297"/>
+        <location filename="../UI/UserInterface.py" line="7311"/>
         <source>&lt;h3&gt;Available versions&lt;/h3&gt;&lt;table&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7349"/>
+        <location filename="../UI/UserInterface.py" line="7363"/>
         <source>First time usage</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7349"/>
+        <location filename="../UI/UserInterface.py" line="7363"/>
         <source>eric6 has not been configured yet. The configuration dialog will be started.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7368"/>
+        <location filename="../UI/UserInterface.py" line="7382"/>
         <source>Select Workspace Directory</source>
         <translation type="unfinished"></translation>
     </message>
@@ -75841,7 +75976,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6656"/>
+        <location filename="../UI/UserInterface.py" line="6670"/>
         <source>Load session</source>
         <translation type="unfinished"></translation>
     </message>
@@ -75856,17 +75991,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6656"/>
+        <location filename="../UI/UserInterface.py" line="6670"/>
         <source>eric6 Session Files (*.e5s)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6707"/>
+        <location filename="../UI/UserInterface.py" line="6721"/>
         <source>Crash Session found!</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6707"/>
+        <location filename="../UI/UserInterface.py" line="6721"/>
         <source>A session file of a crashed session was found. Shall this session be restored?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -75881,17 +76016,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7242"/>
+        <location filename="../UI/UserInterface.py" line="7256"/>
         <source>Update Check</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7242"/>
+        <location filename="../UI/UserInterface.py" line="7256"/>
         <source>You installed eric directly from the source code. There is no possibility to check for the availability of an update.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7232"/>
+        <location filename="../UI/UserInterface.py" line="7246"/>
         <source>You are using a snapshot release of eric6. A more up-to-date stable release might be available.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -75946,7 +76081,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5888"/>
+        <location filename="../UI/UserInterface.py" line="5902"/>
         <source>&lt;p&gt;The PySide{0} documentation starting point has not been configured.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -76022,17 +76157,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6062"/>
+        <location filename="../UI/UserInterface.py" line="6076"/>
         <source>Start Web Browser</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6001"/>
+        <location filename="../UI/UserInterface.py" line="6015"/>
         <source>The eric6 web browser could not be started.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6062"/>
+        <location filename="../UI/UserInterface.py" line="6076"/>
         <source>&lt;p&gt;The eric6 web browser is not started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -76126,6 +76261,11 @@
         <source>Central Park</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../UI/UserInterface.py" line="3650"/>
+        <source>&lt;h2&gt;Version Numbers&lt;/h2&gt;&lt;table&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>UserPropertiesDialog</name>
@@ -76378,7 +76518,7 @@
 <context>
     <name>VariableItem</name>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="207"/>
+        <location filename="../Debugger/VariablesViewer.py" line="211"/>
         <source>&lt;double click to show value&gt;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -76442,22 +76582,22 @@
 <context>
     <name>VariablesModel</name>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="278"/>
+        <location filename="../Debugger/VariablesViewer.py" line="282"/>
         <source>Globals</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="280"/>
+        <location filename="../Debugger/VariablesViewer.py" line="284"/>
         <source>Locals</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="282"/>
+        <location filename="../Debugger/VariablesViewer.py" line="286"/>
         <source>Type</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="282"/>
+        <location filename="../Debugger/VariablesViewer.py" line="286"/>
         <source>Value</source>
         <translation type="unfinished"></translation>
     </message>
@@ -76465,37 +76605,37 @@
 <context>
     <name>VariablesViewer</name>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="951"/>
+        <location filename="../Debugger/VariablesViewer.py" line="955"/>
         <source>Global Variables</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="952"/>
+        <location filename="../Debugger/VariablesViewer.py" line="956"/>
         <source>&lt;b&gt;The Global Variables Viewer Window&lt;/b&gt;&lt;p&gt;This window displays the global variables of the debugged program.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="958"/>
+        <location filename="../Debugger/VariablesViewer.py" line="962"/>
         <source>Local Variables</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="959"/>
+        <location filename="../Debugger/VariablesViewer.py" line="963"/>
         <source>&lt;b&gt;The Local Variables Viewer Window&lt;/b&gt;&lt;p&gt;This window displays the local variables of the debugged program.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1076"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1080"/>
         <source>Show Details...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1089"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1093"/>
         <source>Refresh</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1091"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1095"/>
         <source>Configure...</source>
         <translation type="unfinished"></translation>
     </message>
@@ -76505,25 +76645,30 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1078"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1082"/>
         <source>Expand</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1079"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1083"/>
         <source>Collapse</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1080"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1084"/>
         <source>Collapse All</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1092"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1096"/>
         <source>Variables Type Filter...</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../Debugger/VariablesViewer.py" line="47"/>
+        <source>unsized</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>VcsCommandOptionsDialog</name>
--- a/eric6/i18n/eric6_en.ts	Fri Nov 01 16:11:55 2019 +0100
+++ b/eric6/i18n/eric6_en.ts	Sun Dec 01 16:38:47 2019 +0100
@@ -43820,43 +43820,78 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.py" line="39"/>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.py" line="42"/>
         <source>All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="255"/>
+        <source>Documentation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="261"/>
+        <source>MicroPython:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="268"/>
+        <source>Enter the URL for the MicroPython documentation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="275"/>
+        <source>CircuitPython:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="282"/>
+        <source>Enter the URL for the CircuitPython documentation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="289"/>
+        <source>BBC micro:bit:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="296"/>
+        <source>Enter the URL for the BBC micro:bit MicroPython documentation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="172"/>
-        <source>Documentation</source>
+        <source>PyBoard</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="178"/>
-        <source>MicroPython:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="185"/>
-        <source>Enter the URL for the MicroPython documentation</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="192"/>
-        <source>CircuitPython:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="199"/>
-        <source>Enter the URL for the CircuitPython documentation</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="206"/>
-        <source>BBC micro:bit:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="213"/>
-        <source>Enter the URL for the BBC micro:bit MicroPython documentation</source>
+        <source>dfu-util Path:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="194"/>
+        <source>Enter the path of the dfu-util flashing executable</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="204"/>
+        <source>Firmware</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="217"/>
+        <source>Enter the URL for the MicroPython firmware for PyBoard, ESP8266 and ESP32</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="231"/>
+        <source>Enter the URL for the CircuitPython firmware</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="245"/>
+        <source>Enter the URL for the BBC micro:bit Firmware</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -44053,7 +44088,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1202"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1210"/>
         <source>Synchronize Time</source>
         <translation type="unfinished"></translation>
     </message>
@@ -44068,107 +44103,107 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1366"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1421"/>
         <source>Compile Python File</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1386"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1441"/>
         <source>Compile Current Editor</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1140"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1148"/>
         <source>&lt;h3&gt;Device Version Information&lt;/h3&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1149"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1157"/>
         <source>No version information available.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1151"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1159"/>
         <source>Device Version Information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1174"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1182"/>
         <source>unknown</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1178"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1186"/>
         <source>Device Implementation Information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1178"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1186"/>
         <source>&lt;h3&gt;Device Implementation Information&lt;/h3&gt;&lt;p&gt;This device contains &lt;b&gt;{0} {1}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1202"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1210"/>
         <source>&lt;p&gt;The time of the connected device was synchronized with the local time.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1224"/>
-        <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../MicroPython/MicroPythonWidget.py" line="1232"/>
+        <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1240"/>
         <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;p&gt;{0}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1246"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1254"/>
         <source>Device Date and Time</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1259"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1267"/>
         <source>Local Date and Time</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1259"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1267"/>
         <source>&lt;h3&gt;Local Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1279"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1334"/>
         <source>Error handling device</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1279"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1334"/>
         <source>&lt;p&gt;There was an error communicating with the connected device.&lt;/p&gt;&lt;p&gt;Method: {0}&lt;/p&gt;&lt;p&gt;Message: {1}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1318"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1373"/>
         <source>The MicroPython cross compiler &lt;b&gt;mpy-cross&lt;/b&gt; cannot be found. Ensure it is in the search path or configure it on the MicroPython configuration page.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1336"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1391"/>
         <source>Python Files (*.py);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1346"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1401"/>
         <source>The Python file &lt;b&gt;{0}&lt;/b&gt; does not exist. Aborting...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1356"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1411"/>
         <source>&apos;mpy-cross&apos; Output</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1379"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1434"/>
         <source>The current editor does not contain a Python file. Aborting...</source>
         <translation type="unfinished"></translation>
     </message>
@@ -44193,13 +44228,38 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1126"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1134"/>
         <source>Show Documentation</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1138"/>
+        <source>Configure</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1113"/>
+        <source>Show Time</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../MicroPython/MicroPythonWidget.py" line="1130"/>
-        <source>Configure</source>
+        <source>Download Firmware</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1310"/>
+        <source>Date and Time</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1293"/>
+        <source>&lt;table&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;Local Date and Time&lt;/th&gt;&lt;th&gt;Device Date and Time&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{0}&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{1}&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1310"/>
+        <source>&lt;table&gt;&lt;tr&gt;&lt;th&gt;Local Date and Time&lt;/th&gt;&lt;th&gt;Device Date and Time&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&apos;center&apos;&gt;{0} {1}&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -49433,17 +49493,17 @@
 <context>
     <name>Preferences</name>
     <message>
-        <location filename="../Preferences/__init__.py" line="1606"/>
+        <location filename="../Preferences/__init__.py" line="1610"/>
         <source>Export Preferences</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/__init__.py" line="1634"/>
+        <location filename="../Preferences/__init__.py" line="1638"/>
         <source>Import Preferences</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/__init__.py" line="1634"/>
+        <location filename="../Preferences/__init__.py" line="1638"/>
         <source>Properties File (*.ini);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -49801,7 +49861,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="413"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="430"/>
         <source>(unknown)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -49811,17 +49871,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="361"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="378"/>
         <source>(not configured)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="415"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="432"/>
         <source>(not executable)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="452"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="469"/>
         <source>(not found)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -49891,7 +49951,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="394"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="411"/>
         <source>(module not found)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -49920,6 +49980,21 @@
         <source>PyPI Package Management</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="297"/>
+        <source>MicroPython - MPY Cross Compiler</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="300"/>
+        <source>MicroPython - ESP Tool</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="306"/>
+        <source>MicroPython - PyBoard Flasher</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>Project</name>
@@ -53437,23 +53512,88 @@
 <context>
     <name>PyBoardDevice</name>
     <message>
-        <location filename="../MicroPython/PyBoardDevices.py" line="70"/>
+        <location filename="../MicroPython/PyBoardDevices.py" line="75"/>
         <source>PyBoard</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/PyBoardDevices.py" line="159"/>
+        <location filename="../MicroPython/PyBoardDevices.py" line="164"/>
         <source>Workspace Directory</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/PyBoardDevices.py" line="159"/>
+        <location filename="../MicroPython/PyBoardDevices.py" line="164"/>
         <source>Python files for PyBoard devices are stored on the device. Therefore, to edit these files you need to have the device plugged in. Until you plug in a device, the standard directory will be used.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/PyBoardDevices.py" line="186"/>
-        <source>MicroPython Install Instructions</source>
+        <location filename="../MicroPython/PyBoardDevices.py" line="202"/>
+        <source>List DFU-capable Devices</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="356"/>
+        <source>Flash MicroPython Firmware</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="209"/>
+        <source>MicroPython Flash Instructions</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="239"/>
+        <source>dfu-util not available</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="239"/>
+        <source>The dfu-util firmware flashing tool &lt;b&gt;dfu-util&lt;/b&gt; cannot be found or is not executable. Ensure it is in the search path or configure it on the MicroPython configuration page.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="260"/>
+        <source>&lt;h3&gt;Enable DFU Mode&lt;/h3&gt;&lt;p&gt;1. Disconnect everything from your board&lt;/p&gt;&lt;p&gt;2. Disconnect your board&lt;/p&gt;&lt;p&gt;3. Connect the DFU/BOOT0 pin with a 3.3V pin&lt;/p&gt;&lt;p&gt;4. Re-connect your board&lt;/p&gt;&lt;hr /&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="270"/>
+        <source>&lt;p&gt;&lt;b&gt;Warning:&lt;/b&gt; Make sure that all other DFU capable devices except your PyBoard are disconnected.&lt;hr /&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="276"/>
+        <source>&lt;p&gt;Press &lt;b&gt;OK&lt;/b&gt; to continue...&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="279"/>
+        <source>Enable DFU mode</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="293"/>
+        <source>&lt;h3&gt;Disable DFU Mode&lt;/h3&gt;&lt;p&gt;1. Disconnect your board&lt;/p&gt;&lt;p&gt;2. Remove the DFU jumper&lt;/p&gt;&lt;p&gt;3. Re-connect your board&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;Press &lt;b&gt;OK&lt;/b&gt; to continue...&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="301"/>
+        <source>Disable DFU mode</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="356"/>
+        <source>&apos;dfu-util&apos; Output</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="322"/>
+        <source>List DFU capable Devices</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="344"/>
+        <source>MicroPython Firmware Files (*.dfu);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -74229,7 +74369,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="3709"/>
+        <location filename="../UI/UserInterface.py" line="3723"/>
         <source>Report Bug</source>
         <translation type="unfinished"></translation>
     </message>
@@ -74614,7 +74754,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6315"/>
+        <location filename="../UI/UserInterface.py" line="6329"/>
         <source>Export Keyboard Shortcuts</source>
         <translation type="unfinished"></translation>
     </message>
@@ -74634,7 +74774,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6339"/>
+        <location filename="../UI/UserInterface.py" line="6353"/>
         <source>Import Keyboard Shortcuts</source>
         <translation type="unfinished"></translation>
     </message>
@@ -74879,7 +75019,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5101"/>
+        <location filename="../UI/UserInterface.py" line="5115"/>
         <source>Help</source>
         <translation type="unfinished"></translation>
     </message>
@@ -74929,264 +75069,259 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="3650"/>
-        <source>&lt;h3&gt;Version Numbers&lt;/h3&gt;&lt;table&gt;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../UI/UserInterface.py" line="7312"/>
+        <location filename="../UI/UserInterface.py" line="7326"/>
         <source>&lt;/table&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="3709"/>
+        <location filename="../UI/UserInterface.py" line="3723"/>
         <source>Email address or mail server address is empty. Please configure your Email settings in the Preferences Dialog.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="3989"/>
+        <location filename="../UI/UserInterface.py" line="4003"/>
         <source>Restart application</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="3989"/>
+        <location filename="../UI/UserInterface.py" line="4003"/>
         <source>The application needs to be restarted. Do it now?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4070"/>
+        <location filename="../UI/UserInterface.py" line="4084"/>
         <source>Configure Tool Groups ...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4074"/>
+        <location filename="../UI/UserInterface.py" line="4088"/>
         <source>Configure current Tool Group ...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4025"/>
+        <location filename="../UI/UserInterface.py" line="4039"/>
         <source>&amp;Builtin Tools</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4042"/>
+        <location filename="../UI/UserInterface.py" line="4056"/>
         <source>&amp;Plugin Tools</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4190"/>
+        <location filename="../UI/UserInterface.py" line="4204"/>
         <source>&amp;Show all</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4192"/>
+        <location filename="../UI/UserInterface.py" line="4206"/>
         <source>&amp;Hide all</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5048"/>
+        <location filename="../UI/UserInterface.py" line="5062"/>
         <source>Qt 3 support</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5229"/>
+        <location filename="../UI/UserInterface.py" line="5243"/>
         <source>Problem</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5229"/>
+        <location filename="../UI/UserInterface.py" line="5243"/>
         <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; does not exist or is zero length.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5424"/>
+        <location filename="../UI/UserInterface.py" line="5438"/>
         <source>Process Generation Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4948"/>
+        <location filename="../UI/UserInterface.py" line="4962"/>
         <source>&lt;p&gt;Could not start Qt-Designer.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5020"/>
+        <location filename="../UI/UserInterface.py" line="5034"/>
         <source>&lt;p&gt;Could not start Qt-Linguist.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5073"/>
+        <location filename="../UI/UserInterface.py" line="5087"/>
         <source>&lt;p&gt;Could not start Qt-Assistant.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5101"/>
-        <source>Currently no custom viewer is selected. Please use the preferences dialog to specify one.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../UI/UserInterface.py" line="5115"/>
+        <source>Currently no custom viewer is selected. Please use the preferences dialog to specify one.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../UI/UserInterface.py" line="5129"/>
         <source>&lt;p&gt;Could not start custom viewer.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5135"/>
+        <location filename="../UI/UserInterface.py" line="5149"/>
         <source>&lt;p&gt;Could not start the help viewer.&lt;br&gt;Ensure that it is available as &lt;b&gt;hh&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5185"/>
+        <location filename="../UI/UserInterface.py" line="5199"/>
         <source>&lt;p&gt;Could not start UI Previewer.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5242"/>
+        <location filename="../UI/UserInterface.py" line="5256"/>
         <source>&lt;p&gt;Could not start Translation Previewer.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5265"/>
+        <location filename="../UI/UserInterface.py" line="5279"/>
         <source>&lt;p&gt;Could not start SQL Browser.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5369"/>
+        <location filename="../UI/UserInterface.py" line="5383"/>
         <source>External Tools</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5360"/>
+        <location filename="../UI/UserInterface.py" line="5374"/>
         <source>No tool entry found for external tool &apos;{0}&apos; in tool group &apos;{1}&apos;.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5369"/>
+        <location filename="../UI/UserInterface.py" line="5383"/>
         <source>No toolgroup entry &apos;{0}&apos; found.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5408"/>
+        <location filename="../UI/UserInterface.py" line="5422"/>
         <source>Starting process &apos;{0} {1}&apos;.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5424"/>
+        <location filename="../UI/UserInterface.py" line="5438"/>
         <source>&lt;p&gt;Could not start the tool entry &lt;b&gt;{0}&lt;/b&gt;.&lt;br&gt;Ensure that it is available as &lt;b&gt;{1}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5502"/>
+        <location filename="../UI/UserInterface.py" line="5516"/>
         <source>Process &apos;{0}&apos; has exited.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5905"/>
+        <location filename="../UI/UserInterface.py" line="5919"/>
         <source>Documentation Missing</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5905"/>
+        <location filename="../UI/UserInterface.py" line="5919"/>
         <source>&lt;p&gt;The documentation starting point &quot;&lt;b&gt;{0}&lt;/b&gt;&quot; could not be found.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5888"/>
+        <location filename="../UI/UserInterface.py" line="5902"/>
         <source>Documentation</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5713"/>
+        <location filename="../UI/UserInterface.py" line="5727"/>
         <source>&lt;p&gt;The PyQt4 documentation starting point has not been configured.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6339"/>
+        <location filename="../UI/UserInterface.py" line="6353"/>
         <source>Keyboard shortcut file (*.e4k)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6509"/>
+        <location filename="../UI/UserInterface.py" line="6523"/>
         <source>Save tasks</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6509"/>
+        <location filename="../UI/UserInterface.py" line="6523"/>
         <source>&lt;p&gt;The tasks file &lt;b&gt;{0}&lt;/b&gt; could not be written.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6538"/>
+        <location filename="../UI/UserInterface.py" line="6552"/>
         <source>Read tasks</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6538"/>
+        <location filename="../UI/UserInterface.py" line="6552"/>
         <source>&lt;p&gt;The tasks file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6634"/>
+        <location filename="../UI/UserInterface.py" line="6648"/>
         <source>Save session</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6572"/>
+        <location filename="../UI/UserInterface.py" line="6586"/>
         <source>&lt;p&gt;The session file &lt;b&gt;{0}&lt;/b&gt; could not be written.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6618"/>
+        <location filename="../UI/UserInterface.py" line="6632"/>
         <source>Read session</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6618"/>
+        <location filename="../UI/UserInterface.py" line="6632"/>
         <source>&lt;p&gt;The session file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6902"/>
+        <location filename="../UI/UserInterface.py" line="6916"/>
         <source>Drop Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6902"/>
+        <location filename="../UI/UserInterface.py" line="6916"/>
         <source>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; is not a file.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7087"/>
+        <location filename="../UI/UserInterface.py" line="7101"/>
         <source>&amp;Cancel</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7096"/>
+        <location filename="../UI/UserInterface.py" line="7110"/>
         <source>Trying host {0}</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7254"/>
+        <location filename="../UI/UserInterface.py" line="7268"/>
         <source>Update available</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7273"/>
+        <location filename="../UI/UserInterface.py" line="7287"/>
         <source>Error during updates check</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7273"/>
+        <location filename="../UI/UserInterface.py" line="7287"/>
         <source>Could not perform updates check.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7297"/>
+        <location filename="../UI/UserInterface.py" line="7311"/>
         <source>&lt;h3&gt;Available versions&lt;/h3&gt;&lt;table&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7349"/>
+        <location filename="../UI/UserInterface.py" line="7363"/>
         <source>First time usage</source>
         <translation type="unfinished"></translation>
     </message>
@@ -75226,27 +75361,27 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7162"/>
+        <location filename="../UI/UserInterface.py" line="7176"/>
         <source>Error getting versions information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7155"/>
+        <location filename="../UI/UserInterface.py" line="7169"/>
         <source>The versions information could not be downloaded. Please go online and try again.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6107"/>
+        <location filename="../UI/UserInterface.py" line="6121"/>
         <source>Open Browser</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6107"/>
+        <location filename="../UI/UserInterface.py" line="6121"/>
         <source>Could not start a web browser</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7162"/>
+        <location filename="../UI/UserInterface.py" line="7176"/>
         <source>The versions information could not be downloaded for the last 7 days. Please go online and try again.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -75332,12 +75467,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5337"/>
+        <location filename="../UI/UserInterface.py" line="5351"/>
         <source>&lt;p&gt;Could not start Snapshot tool.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7368"/>
+        <location filename="../UI/UserInterface.py" line="7382"/>
         <source>Select Workspace Directory</source>
         <translation type="unfinished"></translation>
     </message>
@@ -75702,7 +75837,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5775"/>
+        <location filename="../UI/UserInterface.py" line="5789"/>
         <source>&lt;p&gt;The PyQt5 documentation starting point has not been configured.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -75712,7 +75847,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7087"/>
+        <location filename="../UI/UserInterface.py" line="7101"/>
         <source>%v/%m</source>
         <translation type="unfinished"></translation>
     </message>
@@ -75732,7 +75867,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7091"/>
+        <location filename="../UI/UserInterface.py" line="7105"/>
         <source>Version Check</source>
         <translation type="unfinished"></translation>
     </message>
@@ -75802,27 +75937,27 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5048"/>
+        <location filename="../UI/UserInterface.py" line="5062"/>
         <source>Qt v.3 is not supported by eric6.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7254"/>
+        <location filename="../UI/UserInterface.py" line="7268"/>
         <source>The update to &lt;b&gt;{0}&lt;/b&gt; of eric6 is available at &lt;b&gt;{1}&lt;/b&gt;. Would you like to get it?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7266"/>
+        <location filename="../UI/UserInterface.py" line="7280"/>
         <source>Eric6 is up to date</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7266"/>
+        <location filename="../UI/UserInterface.py" line="7280"/>
         <source>You are using the latest version of eric6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7349"/>
+        <location filename="../UI/UserInterface.py" line="7363"/>
         <source>eric6 has not been configured yet. The configuration dialog will be started.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -75832,17 +75967,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4045"/>
+        <location filename="../UI/UserInterface.py" line="4059"/>
         <source>&amp;User Tools</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4117"/>
+        <location filename="../UI/UserInterface.py" line="4131"/>
         <source>No User Tools Configured</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7107"/>
+        <location filename="../UI/UserInterface.py" line="7121"/>
         <source>The versions information cannot not be downloaded because you are &lt;b&gt;offline&lt;/b&gt;. Please go online and try again.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -75887,7 +76022,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6656"/>
+        <location filename="../UI/UserInterface.py" line="6670"/>
         <source>Load session</source>
         <translation type="unfinished"></translation>
     </message>
@@ -75902,17 +76037,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6656"/>
+        <location filename="../UI/UserInterface.py" line="6670"/>
         <source>eric6 Session Files (*.e5s)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6707"/>
+        <location filename="../UI/UserInterface.py" line="6721"/>
         <source>Crash Session found!</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6707"/>
+        <location filename="../UI/UserInterface.py" line="6721"/>
         <source>A session file of a crashed session was found. Shall this session be restored?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -75927,17 +76062,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7242"/>
+        <location filename="../UI/UserInterface.py" line="7256"/>
         <source>Update Check</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7242"/>
+        <location filename="../UI/UserInterface.py" line="7256"/>
         <source>You installed eric directly from the source code. There is no possibility to check for the availability of an update.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7232"/>
+        <location filename="../UI/UserInterface.py" line="7246"/>
         <source>You are using a snapshot release of eric6. A more up-to-date stable release might be available.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -75992,7 +76127,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5888"/>
+        <location filename="../UI/UserInterface.py" line="5902"/>
         <source>&lt;p&gt;The PySide{0} documentation starting point has not been configured.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -76068,17 +76203,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6062"/>
+        <location filename="../UI/UserInterface.py" line="6076"/>
         <source>Start Web Browser</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6001"/>
+        <location filename="../UI/UserInterface.py" line="6015"/>
         <source>The eric6 web browser could not be started.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6062"/>
+        <location filename="../UI/UserInterface.py" line="6076"/>
         <source>&lt;p&gt;The eric6 web browser is not started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -76172,6 +76307,11 @@
         <source>Central Park</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../UI/UserInterface.py" line="3650"/>
+        <source>&lt;h2&gt;Version Numbers&lt;/h2&gt;&lt;table&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>UserPropertiesDialog</name>
@@ -76424,7 +76564,7 @@
 <context>
     <name>VariableItem</name>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="207"/>
+        <location filename="../Debugger/VariablesViewer.py" line="211"/>
         <source>&lt;double click to show value&gt;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -76488,22 +76628,22 @@
 <context>
     <name>VariablesModel</name>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="278"/>
+        <location filename="../Debugger/VariablesViewer.py" line="282"/>
         <source>Globals</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="280"/>
+        <location filename="../Debugger/VariablesViewer.py" line="284"/>
         <source>Locals</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="282"/>
+        <location filename="../Debugger/VariablesViewer.py" line="286"/>
         <source>Type</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="282"/>
+        <location filename="../Debugger/VariablesViewer.py" line="286"/>
         <source>Value</source>
         <translation type="unfinished"></translation>
     </message>
@@ -76511,32 +76651,32 @@
 <context>
     <name>VariablesViewer</name>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="951"/>
+        <location filename="../Debugger/VariablesViewer.py" line="955"/>
         <source>Global Variables</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="952"/>
+        <location filename="../Debugger/VariablesViewer.py" line="956"/>
         <source>&lt;b&gt;The Global Variables Viewer Window&lt;/b&gt;&lt;p&gt;This window displays the global variables of the debugged program.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="958"/>
+        <location filename="../Debugger/VariablesViewer.py" line="962"/>
         <source>Local Variables</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="959"/>
+        <location filename="../Debugger/VariablesViewer.py" line="963"/>
         <source>&lt;b&gt;The Local Variables Viewer Window&lt;/b&gt;&lt;p&gt;This window displays the local variables of the debugged program.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1076"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1080"/>
         <source>Show Details...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1091"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1095"/>
         <source>Configure...</source>
         <translation type="unfinished"></translation>
     </message>
@@ -76546,30 +76686,35 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1089"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1093"/>
         <source>Refresh</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1078"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1082"/>
         <source>Expand</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1079"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1083"/>
         <source>Collapse</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1080"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1084"/>
         <source>Collapse All</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1092"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1096"/>
         <source>Variables Type Filter...</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../Debugger/VariablesViewer.py" line="47"/>
+        <source>unsized</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>VcsCommandOptionsDialog</name>
Binary file eric6/i18n/eric6_es.qm has changed
--- a/eric6/i18n/eric6_es.ts	Fri Nov 01 16:11:55 2019 +0100
+++ b/eric6/i18n/eric6_es.ts	Sun Dec 01 16:38:47 2019 +0100
@@ -1449,32 +1449,32 @@
     <message>
         <location filename="../Preferences/ConfigurationPages/ApplicationPage.ui" line="245"/>
         <source>Minimum Severity for message dialog:</source>
-        <translation type="unfinished"></translation>
+        <translation>Severidad mínima para el diálogo de mensaje:</translation>
     </message>
     <message>
         <location filename="../Preferences/ConfigurationPages/ApplicationPage.ui" line="258"/>
         <source>Select the minimum message severity shown</source>
-        <translation type="unfinished"></translation>
+        <translation>Seleccionar el mínimo mensaje de severidad mostrado</translation>
     </message>
     <message>
         <location filename="../Preferences/ConfigurationPages/ApplicationPage.py" line="38"/>
         <source>Debug</source>
-        <translation type="unfinished">Depurar</translation>
+        <translation>Depuración</translation>
     </message>
     <message>
         <location filename="../Preferences/ConfigurationPages/ApplicationPage.py" line="39"/>
         <source>Warning</source>
-        <translation type="unfinished">Advertencia</translation>
+        <translation>Advertencia</translation>
     </message>
     <message>
         <location filename="../Preferences/ConfigurationPages/ApplicationPage.py" line="40"/>
         <source>Critical</source>
-        <translation type="unfinished"></translation>
+        <translation>Crítico</translation>
     </message>
     <message>
         <location filename="../Preferences/ConfigurationPages/ApplicationPage.py" line="41"/>
         <source>Fatal Error</source>
-        <translation type="unfinished"></translation>
+        <translation>Error Fatal</translation>
     </message>
 </context>
 <context>
@@ -11669,7 +11669,7 @@
     <message>
         <location filename="../QScintilla/Editor.py" line="1168"/>
         <source>Spell Check Languages</source>
-        <translation type="unfinished"></translation>
+        <translation>Corrección Ortográfica Idiomas</translation>
     </message>
 </context>
 <context>
@@ -12285,7 +12285,7 @@
     <message>
         <location filename="../Preferences/ConfigurationPages/EditorDocViewerPage.ui" line="37"/>
         <source>Select to enable the display of code documentation</source>
-        <translation>Seleccionar para habilitar la visualizacińo de documentación del código</translation>
+        <translation>Seleccionar para habilitar la visualización de documentación del código</translation>
     </message>
     <message>
         <location filename="../Preferences/ConfigurationPages/EditorDocViewerPage.ui" line="40"/>
@@ -12776,11 +12776,6 @@
         <translation>Archivos HTML</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/EditorFilePage.ui" line="690"/>
-        <source>Extensions:</source>
-        <translation type="obsolete">Extensiones:</translation>
-    </message>
-    <message>
         <location filename="../Preferences/ConfigurationPages/EditorFilePage.ui" line="527"/>
         <source>Markdown Files</source>
         <translation>Archivos Markdown</translation>
@@ -12833,68 +12828,69 @@
     <message>
         <location filename="../Preferences/ConfigurationPages/EditorFilePage.ui" line="607"/>
         <source>Select to enable the use of the PyMdown extensions</source>
-        <translation type="unfinished"></translation>
+        <translation>Seleccionar para habilitar el uso de extensiones de PyMdown</translation>
     </message>
     <message>
         <location filename="../Preferences/ConfigurationPages/EditorFilePage.ui" line="610"/>
         <source>&lt;b&gt;Enable PyMdown Extensions&lt;/b&gt;
 &lt;p&gt;Select this entry to enable the use of the PyMdown extensions. These have to be installed with &lt;code&gt;pip install pymdown-extensions&lt;/code&gt;.&lt;/p&gt;</source>
-        <translation type="unfinished"></translation>
+        <translation>&lt;b&gt;Habilitar Extensiones PyMdown&lt;/b&gt;
+&lt;p&gt;Seleccionar esta entrada para habilitar el uso de extensiones de PyMdown. Éstas deben de estar previamente instaladas con &lt;code&gt;pip install pymdown-extensions&lt;/code&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
         <location filename="../Preferences/ConfigurationPages/EditorFilePage.ui" line="614"/>
         <source>Enable PyMdown Extensions</source>
-        <translation type="unfinished"></translation>
+        <translation>Habilitar Extensiones PyMdown</translation>
     </message>
     <message>
         <location filename="../Preferences/ConfigurationPages/EditorFilePage.ui" line="583"/>
         <source>Select to enable Math support using MathJax</source>
-        <translation type="unfinished"></translation>
+        <translation>Seleccionar para habilitar soporte de combinación usando MathJax</translation>
     </message>
     <message>
         <location filename="../Preferences/ConfigurationPages/EditorFilePage.ui" line="586"/>
         <source>Enable Math support</source>
-        <translation type="unfinished"></translation>
+        <translation>Habilitar soporte para Math</translation>
     </message>
     <message>
         <location filename="../Preferences/ConfigurationPages/EditorFilePage.ui" line="593"/>
         <source>Select to enable Graph support using Mermaid</source>
-        <translation type="unfinished"></translation>
+        <translation>Seleccionar para habilitar soporte de Graph usando Mermaid</translation>
     </message>
     <message>
         <location filename="../Preferences/ConfigurationPages/EditorFilePage.ui" line="596"/>
         <source>Enable Graph support</source>
-        <translation type="unfinished"></translation>
+        <translation>Habilitar soporte para Graph</translation>
     </message>
     <message>
         <location filename="../Preferences/ConfigurationPages/EditorFilePage.ui" line="463"/>
         <source>Refresh Timeout:</source>
-        <translation type="unfinished"></translation>
+        <translation>Tiempo Máximo para Actualizar:</translation>
     </message>
     <message>
         <location filename="../Preferences/ConfigurationPages/EditorFilePage.ui" line="470"/>
         <source>Enter the timeout in milliseconds until the preview is refreshed</source>
-        <translation type="unfinished"></translation>
+        <translation>Introducir el tiempo máximo en milisegundos para que la vista preliminar se actualice</translation>
     </message>
     <message>
         <location filename="../Preferences/ConfigurationPages/EditorFilePage.ui" line="473"/>
         <source> ms</source>
-        <translation type="unfinished"> ms</translation>
+        <translation> ms</translation>
     </message>
     <message>
         <location filename="../Preferences/ConfigurationPages/EditorFilePage.ui" line="717"/>
         <source>File Extensions:</source>
-        <translation type="unfinished"></translation>
+        <translation>Extensiones de Archivo:</translation>
     </message>
     <message>
         <location filename="../Preferences/ConfigurationPages/EditorFilePage.ui" line="621"/>
         <source>Press to install the PyMdown extensions</source>
-        <translation type="unfinished"></translation>
+        <translation>Pulsar para instalar las extensiones de PyMdown</translation>
     </message>
     <message>
         <location filename="../Preferences/ConfigurationPages/EditorFilePage.ui" line="624"/>
         <source>Install PyMdown Extensions</source>
-        <translation type="unfinished"></translation>
+        <translation>Instalar Exetnsiones PyMdown</translation>
     </message>
 </context>
 <context>
@@ -14434,28 +14430,29 @@
     <message>
         <location filename="../Preferences/ConfigurationPages/EditorSpellCheckingPage.ui" line="129"/>
         <source>Select to perform a complete check of files without extension</source>
-        <translation type="unfinished"></translation>
+        <translation>Seleccionar para llevar a cabo una comprobación completa de archivos sin extensión</translation>
     </message>
     <message>
         <location filename="../Preferences/ConfigurationPages/EditorSpellCheckingPage.ui" line="132"/>
         <source>Spell check unknown files</source>
-        <translation type="unfinished"></translation>
+        <translation>Corrección ortográfica de archivos desconocidos</translation>
     </message>
     <message>
         <location filename="../Preferences/ConfigurationPages/EditorSpellCheckingPage.ui" line="192"/>
         <source>Textfiles:</source>
-        <translation type="unfinished"></translation>
+        <translation>Archivos de Texto:</translation>
     </message>
     <message>
         <location filename="../Preferences/ConfigurationPages/EditorSpellCheckingPage.ui" line="199"/>
         <source>Enter the file extensions of pure text files (separated by a space)</source>
-        <translation type="unfinished"></translation>
+        <translation>Introducir las extensiones de archivo para archivos de texto plano (separadas por un espacio)</translation>
     </message>
     <message>
         <location filename="../Preferences/ConfigurationPages/EditorSpellCheckingPage.ui" line="202"/>
         <source>&lt;b&gt;Textfiles&lt;/b&gt;
 &lt;p&gt;Enter the file extension of pure text files. The complete contents of files with these extensions will be checked.&lt;/p&gt;</source>
-        <translation type="unfinished"></translation>
+        <translation>&lt;b&gt;Archivos de Texto&lt;/b&gt;
+&lt;p&gt;Introducir las extensiones de archivo para archivos de texto plano. Se comprobará el contenido completo de archivos con estas extensiones.&lt;/p&gt;</translation>
     </message>
 </context>
 <context>
@@ -16946,52 +16943,52 @@
 <context>
     <name>EspDevice</name>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="67"/>
+        <location filename="../MicroPython/EspDevices.py" line="77"/>
         <source>ESP8266, ESP32</source>
         <translation>ESP8266, ESP32</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="160"/>
+        <location filename="../MicroPython/EspDevices.py" line="170"/>
         <source>Erase Flash</source>
         <translation>Borrar Flash</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="193"/>
+        <location filename="../MicroPython/EspDevices.py" line="203"/>
         <source>Flash MicroPython Firmware</source>
         <translation>Flash MicroPython Firmware</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="217"/>
+        <location filename="../MicroPython/EspDevices.py" line="227"/>
         <source>Flash Additional Firmware</source>
         <translation>Flash Additional Firmware</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="141"/>
+        <location filename="../MicroPython/EspDevices.py" line="151"/>
         <source>Install &apos;esptool.py&apos;</source>
         <translation>Instalar &apos;esptool.py&apos;</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="148"/>
+        <location filename="../MicroPython/EspDevices.py" line="158"/>
         <source>Shall the flash of the selected device really be erased?</source>
         <translation>¿Borrar el flash del dispositivo seleccionado?</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="160"/>
+        <location filename="../MicroPython/EspDevices.py" line="170"/>
         <source>&apos;esptool erase_flash&apos; Output</source>
         <translation>Salida de &apos;esptool erase_flash&apos;</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="182"/>
+        <location filename="../MicroPython/EspDevices.py" line="192"/>
         <source>Unsupported chip type &apos;{0}&apos;.</source>
         <translation>Tipo de chip no soportado &apos;{0}&apos;.</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="217"/>
+        <location filename="../MicroPython/EspDevices.py" line="227"/>
         <source>&apos;esptool write_flash&apos; Output</source>
         <translation>Salida de &apos;esptool write_flash&apos;</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="139"/>
+        <location filename="../MicroPython/EspDevices.py" line="149"/>
         <source>Reset Device</source>
         <translation>Resetear Dispositivo</translation>
     </message>
@@ -21697,11 +21694,6 @@
         <translation>Introducir el número de caracteres del subject del commit a mostrar en la lista</translation>
     </message>
     <message>
-        <location filename="../Plugins/VcsPlugins/vcsGit/ConfigurationPage/GitPage.ui" line="14"/>
-        <source>Select to perform an expensive copy detection</source>
-        <translation type="obsolete">Seleccionar para llevar a cabo detección de copia costosa</translation>
-    </message>
-    <message>
         <location filename="../Plugins/VcsPlugins/vcsGit/ConfigurationPage/GitPage.ui" line="95"/>
         <source>All</source>
         <translation>Todo</translation>
@@ -44020,44 +44012,79 @@
         <translation>Introducir la ruta del ejecutable del compilador multiplataforma</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.py" line="39"/>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.py" line="42"/>
         <source>All Files (*)</source>
         <translation>Todos los archivos (*)</translation>
     </message>
     <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="255"/>
+        <source>Documentation</source>
+        <translation>Documentación</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="261"/>
+        <source>MicroPython:</source>
+        <translation>MicroPython:</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="268"/>
+        <source>Enter the URL for the MicroPython documentation</source>
+        <translation>Introducir la URL para la documentación de MicroPython</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="275"/>
+        <source>CircuitPython:</source>
+        <translation>CircuitPython:</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="282"/>
+        <source>Enter the URL for the CircuitPython documentation</source>
+        <translation>Introducir la URL para la documentación de CircuitPython</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="289"/>
+        <source>BBC micro:bit:</source>
+        <translation>BBC micro:bit:</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="296"/>
+        <source>Enter the URL for the BBC micro:bit MicroPython documentation</source>
+        <translation>Intrroducir la URL para la documentación BBC micro:bit MicroPython</translation>
+    </message>
+    <message>
         <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="172"/>
-        <source>Documentation</source>
-        <translation>Documentación</translation>
+        <source>PyBoard</source>
+        <translation>PyBoard</translation>
     </message>
     <message>
         <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="178"/>
-        <source>MicroPython:</source>
-        <translation>MicroPython:</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="185"/>
-        <source>Enter the URL for the MicroPython documentation</source>
-        <translation>Introducir la URL para la documentación de MicroPython</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="192"/>
-        <source>CircuitPython:</source>
-        <translation>CircuitPython:</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="199"/>
-        <source>Enter the URL for the CircuitPython documentation</source>
-        <translation>Introducir la URL para la documentación de CircuitPython</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="206"/>
-        <source>BBC micro:bit:</source>
-        <translation>BBC micro:bit:</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="213"/>
-        <source>Enter the URL for the BBC micro:bit MicroPython documentation</source>
-        <translation>Intrroducir la URL para la documentación BBC micro:bit MicroPython</translation>
+        <source>dfu-util Path:</source>
+        <translation>dfu-util Path:</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="194"/>
+        <source>Enter the path of the dfu-util flashing executable</source>
+        <translation>Introducir la ruta del ejecutable para la utilidad de flasheo dfu</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="204"/>
+        <source>Firmware</source>
+        <translation>Firmware</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="217"/>
+        <source>Enter the URL for the MicroPython firmware for PyBoard, ESP8266 and ESP32</source>
+        <translation>Introducir la URL para el firmware de MicroPython firmware para PyBoard, ESP8266 y ESP32</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="231"/>
+        <source>Enter the URL for the CircuitPython firmware</source>
+        <translation>Introducir la ruta del archivo de firmware CircuitPython</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="245"/>
+        <source>Enter the URL for the BBC micro:bit Firmware</source>
+        <translation>Introducir la ruta del archivo de firmware BBC micro:bit</translation>
     </message>
 </context>
 <context>
@@ -44257,7 +44284,7 @@
         <translation>Mostrar Implementación</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1202"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1210"/>
         <source>Synchronize Time</source>
         <translation>Sincronizar Hora</translation>
     </message>
@@ -44272,107 +44299,107 @@
         <translation>Mostrar Hora Local</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1366"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1421"/>
         <source>Compile Python File</source>
         <translation>Compilar Archivo de Python</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1386"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1441"/>
         <source>Compile Current Editor</source>
         <translation>Compilar Editor Actual</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1140"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1148"/>
         <source>&lt;h3&gt;Device Version Information&lt;/h3&gt;</source>
         <translation>&lt;h3&gt;Información de Versión de Dispositivo&lt;/h3&gt;</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1149"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1157"/>
         <source>No version information available.</source>
         <translation>No hay información de versión disponible.</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1151"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1159"/>
         <source>Device Version Information</source>
         <translation>Información de Versión de Dispositivo</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1174"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1182"/>
         <source>unknown</source>
         <translation>desconocido</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1178"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1186"/>
         <source>Device Implementation Information</source>
         <translation>Información de Implementación de Dispositivo</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1178"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1186"/>
         <source>&lt;h3&gt;Device Implementation Information&lt;/h3&gt;&lt;p&gt;This device contains &lt;b&gt;{0} {1}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;h3&gt;Información de Implementación de Dispositivo &lt;/h3&gt;&lt;p&gt;Este dispositivo contiene &lt;b&gt;{0} {1}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1202"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1210"/>
         <source>&lt;p&gt;The time of the connected device was synchronized with the local time.&lt;/p&gt;</source>
         <translation>&lt;p&gt;La hora del dispositivo conectado está sincronizada con la hora local.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1224"/>
-        <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
-        <translation>&lt;h3&gt;Fecha y Hora del Dispositivo&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Fecha&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Hora&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
-    </message>
-    <message>
         <location filename="../MicroPython/MicroPythonWidget.py" line="1232"/>
+        <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+        <translation>&lt;h3&gt;Fecha y Hora del Dispositivo&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Fecha&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Hora&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1240"/>
         <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;p&gt;{0}&lt;/p&gt;</source>
         <translation>&lt;h3&gt;Fecha y Hora del Dispositivo&lt;/h3&gt;&lt;p&gt;{0}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1246"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1254"/>
         <source>Device Date and Time</source>
         <translation>Fecha y Hora del Dispositivo</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1259"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1267"/>
         <source>Local Date and Time</source>
         <translation>Fecha y Hora Local</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1259"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1267"/>
         <source>&lt;h3&gt;Local Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
         <translation>&lt;h3&gt;Fecha y Hora del Local&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Fecha&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Hora&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1279"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1334"/>
         <source>Error handling device</source>
         <translation>Error de gestión del dispositivo</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1279"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1334"/>
         <source>&lt;p&gt;There was an error communicating with the connected device.&lt;/p&gt;&lt;p&gt;Method: {0}&lt;/p&gt;&lt;p&gt;Message: {1}&lt;/p&gt;</source>
         <translation>&lt;p&gt;Ha ocurrido un error al comunicar con el dispositivo conectado.&lt;/p&gt;&lt;p&gt;Método: {0}&lt;/p&gt;&lt;p&gt;Mensaje: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1318"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1373"/>
         <source>The MicroPython cross compiler &lt;b&gt;mpy-cross&lt;/b&gt; cannot be found. Ensure it is in the search path or configure it on the MicroPython configuration page.</source>
         <translation>El compilador multiplataforma de MicroPython &lt;b&gt;mpy-cross&lt;/b&gt; no se encuentra. Asegúrese de que está en la ruta de búsqueda o configurarlo en la página de configuración de MicroPython.</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1336"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1391"/>
         <source>Python Files (*.py);;All Files (*)</source>
         <translation>Archivos Python (*.py);;Todos los Archivos (*)</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1346"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1401"/>
         <source>The Python file &lt;b&gt;{0}&lt;/b&gt; does not exist. Aborting...</source>
         <translation>El archivo de Python &lt;b&gt;{0}&lt;/b&gt; no existe. Abortando...</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1356"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1411"/>
         <source>&apos;mpy-cross&apos; Output</source>
         <translation>Salida de &apos;mpy-cross&apos;</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1379"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1434"/>
         <source>The current editor does not contain a Python file. Aborting...</source>
         <translation>El editor actual no contiene un archivo de Python. Abortando...</translation>
     </message>
@@ -44397,14 +44424,39 @@
         <translation>Archivos µPy</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1126"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1134"/>
         <source>Show Documentation</source>
         <translation>Mostrar Documentación</translation>
     </message>
     <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1138"/>
+        <source>Configure</source>
+        <translation>Configurar</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1113"/>
+        <source>Show Time</source>
+        <translation>Mostrar Tiempo</translation>
+    </message>
+    <message>
         <location filename="../MicroPython/MicroPythonWidget.py" line="1130"/>
-        <source>Configure</source>
-        <translation>Configurar</translation>
+        <source>Download Firmware</source>
+        <translation>Descargar Firmware</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1310"/>
+        <source>Date and Time</source>
+        <translation>Fecha y Hora</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1293"/>
+        <source>&lt;table&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;Local Date and Time&lt;/th&gt;&lt;th&gt;Device Date and Time&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{0}&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{1}&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+        <translation>&lt;table&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;Fecha y Hora Local&lt;/th&gt;&lt;th&gt;Fecha y Hora del Dispositivo&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Fecha&lt;/b&gt;&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{0}&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Hora&lt;/b&gt;&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{1}&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1310"/>
+        <source>&lt;table&gt;&lt;tr&gt;&lt;th&gt;Local Date and Time&lt;/th&gt;&lt;th&gt;Device Date and Time&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&apos;center&apos;&gt;{0} {1}&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+        <translation>&lt;table&gt;&lt;tr&gt;&lt;th&gt;Fecha y Hora Local&lt;/th&gt;&lt;th&gt;Fecha y Hora del Dispositivo&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&apos;center&apos;&gt;{0} {1}&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
 </context>
 <context>
@@ -44429,26 +44481,6 @@
 Por favor, asegúrese de que el dispositivo está conectado a este ordenador.</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="218"/>
-        <source>Flash Default MicroPython Firmware</source>
-        <translation type="obsolete">Flashear Firmware por defecto de CircuitPython</translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="207"/>
-        <source>Flash Custom MicroPython Firmware</source>
-        <translation type="obsolete">Flashear Firmware personalizado de CircuitPython</translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="258"/>
-        <source>Flash Script</source>
-        <translation type="obsolete">Flashear Script</translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="171"/>
-        <source>Flash the current script to the selected device.</source>
-        <translation type="obsolete">Flashear el archivo actual al dispositivo seleccionado.</translation>
-    </message>
-    <message>
         <location filename="../MicroPython/MicrobitDevices.py" line="171"/>
         <source>Save Script as &apos;main.py&apos;</source>
         <translation>Guardar Script como &apos;main.py&apos;</translation>
@@ -44464,26 +44496,11 @@
         <translation>Restablecer micro:bit</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="183"/>
-        <source>Install &apos;uflash&apos;</source>
-        <translation type="obsolete">Instalar &apos;uflash&apos;</translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="258"/>
-        <source>&apos;uflash&apos; Output</source>
-        <translation type="obsolete">Salida de &apos;uflash&apos;</translation>
-    </message>
-    <message>
         <location filename="../MicroPython/MicrobitDevices.py" line="201"/>
         <source>MicroPython Firmware Files (*.hex);;All Files (*)</source>
         <translation>Archivos de Firmware MicroPython (*.hex);;Todos los Archivos (*)</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="235"/>
-        <source>The current editor does not contain a Python script. Flash it anyway?</source>
-        <translation type="obsolete">El editor actual no contiene un script Python. ¿Flashear de todos modos?</translation>
-    </message>
-    <message>
         <location filename="../MicroPython/MicrobitDevices.py" line="246"/>
         <source>The script is empty. Aborting.</source>
         <translation>Script vacío. Abortando.</translation>
@@ -44501,32 +44518,32 @@
     <message>
         <location filename="../MicroPython/MicrobitDevices.py" line="201"/>
         <source>Flash MicroPython Firmware</source>
-        <translation type="unfinished">Flash MicroPython Firmware</translation>
+        <translation>Flash MicroPython Firmware</translation>
     </message>
     <message>
         <location filename="../MicroPython/MicrobitDevices.py" line="233"/>
         <source>Save Script</source>
-        <translation type="unfinished"></translation>
+        <translation>Guardar Script</translation>
     </message>
     <message>
         <location filename="../MicroPython/MicrobitDevices.py" line="190"/>
         <source>The BBC micro:bit is not ready for flashing. See the &lt;a href=&quot;https://microbit.org/guide/firmware/&quot;&gt;micro:bit web site&lt;/a&gt; for details.</source>
-        <translation type="unfinished"></translation>
+        <translation>El BBC micro:bit no está listo para flashing. Ver en el &lt;a href=&quot;https://microbit.org/guide/firmware/&quot;&gt;sitio web de micro:bit&lt;/a&gt; más detalles.</translation>
     </message>
     <message>
         <location filename="../MicroPython/MicrobitDevices.py" line="263"/>
         <source>Save Script as &apos;{0}&apos;</source>
-        <translation type="unfinished"></translation>
+        <translation>Guardar Script como &apos;{0}&apos;</translation>
     </message>
     <message>
         <location filename="../MicroPython/MicrobitDevices.py" line="254"/>
         <source>Enter a file name on the device:</source>
-        <translation type="unfinished"></translation>
+        <translation>Introducir un nombre de archivo para el dispositivo:</translation>
     </message>
     <message>
         <location filename="../MicroPython/MicrobitDevices.py" line="168"/>
         <source>Save the current script to the selected device</source>
-        <translation type="unfinished"></translation>
+        <translation>Guardar el script actual en el dispositivo seleccionado</translation>
     </message>
 </context>
 <context>
@@ -49687,17 +49704,17 @@
 <context>
     <name>Preferences</name>
     <message>
-        <location filename="../Preferences/__init__.py" line="1606"/>
+        <location filename="../Preferences/__init__.py" line="1610"/>
         <source>Export Preferences</source>
         <translation>Exportar Preferencias</translation>
     </message>
     <message>
-        <location filename="../Preferences/__init__.py" line="1634"/>
+        <location filename="../Preferences/__init__.py" line="1638"/>
         <source>Import Preferences</source>
         <translation>Importar Preferencias</translation>
     </message>
     <message>
-        <location filename="../Preferences/__init__.py" line="1634"/>
+        <location filename="../Preferences/__init__.py" line="1638"/>
         <source>Properties File (*.ini);;All Files (*)</source>
         <translation>Archivo de Propiedades (*.ini);;Todos los archivos (*)</translation>
     </message>
@@ -50040,22 +50057,22 @@
         <translation>Compilador CORBA IDL</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="361"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="378"/>
         <source>(not configured)</source>
         <translation>(no configurado)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="415"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="432"/>
         <source>(not executable)</source>
         <translation>(no ejecutable)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="452"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="469"/>
         <source>(not found)</source>
         <translation>(no encontrado)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="413"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="430"/>
         <source>(unknown)</source>
         <translation>(desconocido)</translation>
     </message>
@@ -50145,7 +50162,7 @@
         <translation>Compilador gRPC</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="394"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="411"/>
         <source>(module not found)</source>
         <translation>(módule no encontrado)</translation>
     </message>
@@ -50174,6 +50191,21 @@
         <source>PyPI Package Management</source>
         <translation>Gestor de Packages PyPI</translation>
     </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="297"/>
+        <source>MicroPython - MPY Cross Compiler</source>
+        <translation>MicroPython - MPY Cross Compiler</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="300"/>
+        <source>MicroPython - ESP Tool</source>
+        <translation>MicroPython - ESP Tool</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="306"/>
+        <source>MicroPython - PyBoard Flasher</source>
+        <translation>MicroPython - PyBoard Flasher</translation>
+    </message>
 </context>
 <context>
     <name>Project</name>
@@ -53701,24 +53733,89 @@
 <context>
     <name>PyBoardDevice</name>
     <message>
-        <location filename="../MicroPython/PyBoardDevices.py" line="70"/>
+        <location filename="../MicroPython/PyBoardDevices.py" line="75"/>
         <source>PyBoard</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/PyBoardDevices.py" line="159"/>
+        <translation>PyBoard</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="164"/>
         <source>Workspace Directory</source>
-        <translation type="unfinished">Directorio del espacio de trabajo</translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/PyBoardDevices.py" line="159"/>
+        <translation>Directorio del Workspace</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="164"/>
         <source>Python files for PyBoard devices are stored on the device. Therefore, to edit these files you need to have the device plugged in. Until you plug in a device, the standard directory will be used.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/PyBoardDevices.py" line="186"/>
-        <source>MicroPython Install Instructions</source>
-        <translation type="unfinished"></translation>
+        <translation>Los archivos de Python  para dispositivos PyBoard se almacenan en el dispositivo. Por tanto, para editar esos archivos se necesita tener el dispositivo conectado. Hasta que se conecte un dispositivo, se utilizará el directorio estándar.</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="202"/>
+        <source>List DFU-capable Devices</source>
+        <translation>Listar Dispositivos con capacidad DFU</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="356"/>
+        <source>Flash MicroPython Firmware</source>
+        <translation>Flash MicroPython Firmware</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="209"/>
+        <source>MicroPython Flash Instructions</source>
+        <translation>Instrucciones para MicroPython Flash</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="239"/>
+        <source>dfu-util not available</source>
+        <translation>dfu-util no está disponible</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="239"/>
+        <source>The dfu-util firmware flashing tool &lt;b&gt;dfu-util&lt;/b&gt; cannot be found or is not executable. Ensure it is in the search path or configure it on the MicroPython configuration page.</source>
+        <translation>La herramienta de firmware de flasheo dfu-util &lt;b&gt;dfu-util&lt;/b&gt; no se encuentra o no es ejecutable. Asegure que está en la ruta de búsqueda o configure su valor en la página de configuración de MicroPython.</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="260"/>
+        <source>&lt;h3&gt;Enable DFU Mode&lt;/h3&gt;&lt;p&gt;1. Disconnect everything from your board&lt;/p&gt;&lt;p&gt;2. Disconnect your board&lt;/p&gt;&lt;p&gt;3. Connect the DFU/BOOT0 pin with a 3.3V pin&lt;/p&gt;&lt;p&gt;4. Re-connect your board&lt;/p&gt;&lt;hr /&gt;</source>
+        <translation>&lt;h3&gt;Habilitar Modo DFU&lt;/h3&gt;&lt;p&gt;1. Desconectar todo de la placa&lt;/p&gt;&lt;p&gt;2. Desconectar la placa&lt;/p&gt;&lt;p&gt;3. Conectar el pin DFU/BOOT0 con un pin de 3.3V pin&lt;/p&gt;&lt;p&gt;4. Reconectar la placa&lt;/p&gt;&lt;hr /&gt;</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="270"/>
+        <source>&lt;p&gt;&lt;b&gt;Warning:&lt;/b&gt; Make sure that all other DFU capable devices except your PyBoard are disconnected.&lt;hr /&gt;</source>
+        <translation>&lt;p&gt;&lt;b&gt;Aviso:&lt;/b&gt; Asegurar que todos los demás dispositivos con capacidad DFU -a excepción del PyBoard- están desconectados.&lt;hr /&gt;</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="276"/>
+        <source>&lt;p&gt;Press &lt;b&gt;OK&lt;/b&gt; to continue...&lt;/p&gt;</source>
+        <translation>&lt;p&gt;Pulsar &lt;b&gt;OK&lt;/b&gt; para continuar...&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="279"/>
+        <source>Enable DFU mode</source>
+        <translation>Habilitar modo DFU</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="293"/>
+        <source>&lt;h3&gt;Disable DFU Mode&lt;/h3&gt;&lt;p&gt;1. Disconnect your board&lt;/p&gt;&lt;p&gt;2. Remove the DFU jumper&lt;/p&gt;&lt;p&gt;3. Re-connect your board&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;Press &lt;b&gt;OK&lt;/b&gt; to continue...&lt;/p&gt;</source>
+        <translation>&lt;h3&gt;Desabilitar Modo DFU&lt;/h3&gt;&lt;p&gt;1. Desconectar la placa&lt;/p&gt;&lt;p&gt;2. Sacar el jumper DFU&lt;/p&gt;&lt;p&gt;3. Reconectar la placa&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;Pulsar &lt;b&gt;OK&lt;/b&gt; para continuar...&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="301"/>
+        <source>Disable DFU mode</source>
+        <translation>Deshabilitar modo DFU</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="356"/>
+        <source>&apos;dfu-util&apos; Output</source>
+        <translation>Salida de &apos;dfu-util&apos;</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="322"/>
+        <source>List DFU capable Devices</source>
+        <translation>Listar Dispositivos con capacidad DFU</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="344"/>
+        <source>MicroPython Firmware Files (*.dfu);;All Files (*)</source>
+        <translation>Archivos de Firmware MicroPython (*.dfu);;Todos los Archivos (*)</translation>
     </message>
 </context>
 <context>
@@ -70246,6 +70343,16 @@
         <source>JavaScript batch check</source>
         <translation>Javascript comprobación por lotes</translation>
     </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="256"/>
+        <source>YAML batch check</source>
+        <translation>YAML comprobación por lotes</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="272"/>
+        <source>JSON batch check</source>
+        <translation>JSON comprobación por lotes</translation>
+    </message>
 </context>
 <context>
     <name>SyntaxCheckerDialog</name>
@@ -70357,22 +70464,22 @@
 <context>
     <name>SyntaxCheckerPlugin</name>
     <message>
-        <location filename="../Plugins/PluginSyntaxChecker.py" line="247"/>
+        <location filename="../Plugins/PluginSyntaxChecker.py" line="267"/>
         <source>Check Syntax</source>
         <translation>Verificar sintaxis</translation>
     </message>
     <message>
-        <location filename="../Plugins/PluginSyntaxChecker.py" line="247"/>
+        <location filename="../Plugins/PluginSyntaxChecker.py" line="267"/>
         <source>&amp;Syntax...</source>
         <translation>&amp;Sintaxis...</translation>
     </message>
     <message>
-        <location filename="../Plugins/PluginSyntaxChecker.py" line="156"/>
+        <location filename="../Plugins/PluginSyntaxChecker.py" line="176"/>
         <source>Check syntax.</source>
         <translation>Verificar sintaxis.</translation>
     </message>
     <message>
-        <location filename="../Plugins/PluginSyntaxChecker.py" line="251"/>
+        <location filename="../Plugins/PluginSyntaxChecker.py" line="271"/>
         <source>&lt;b&gt;Check Syntax...&lt;/b&gt;&lt;p&gt;This checks Python files for syntax errors.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Verificar Sintaxis...&lt;/b&gt;&lt;p&gt;Chequea archivos de Python buscando errores sintácticos.&lt;/p&gt;</translation>
     </message>
@@ -74686,7 +74793,7 @@
         <translation>Mostrar las versiones disponibles para descarga</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="3709"/>
+        <location filename="../UI/UserInterface.py" line="3723"/>
         <source>Report Bug</source>
         <translation>Enviar informe de bugs</translation>
     </message>
@@ -74946,7 +75053,7 @@
         <translation>&lt;b&gt;Atajos de Teclado&lt;/b&gt;&lt;p&gt;Establezca los atajos de teclado para la aplicación con sus valores preferidos.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6315"/>
+        <location filename="../UI/UserInterface.py" line="6329"/>
         <source>Export Keyboard Shortcuts</source>
         <translation>Exportar Atajos de Teclado</translation>
     </message>
@@ -74966,7 +75073,7 @@
         <translation>&lt;b&gt;Exportar Atajos de Teclado&lt;/b&gt;&lt;p&gt;Exporte  los atajos de teclado de la aplicación.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6339"/>
+        <location filename="../UI/UserInterface.py" line="6353"/>
         <source>Import Keyboard Shortcuts</source>
         <translation>Importar Atajos de Teclado</translation>
     </message>
@@ -75156,7 +75263,7 @@
         <translation>Ajustes</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5101"/>
+        <location filename="../UI/UserInterface.py" line="5115"/>
         <source>Help</source>
         <translation>Ayuda</translation>
     </message>
@@ -75171,127 +75278,122 @@
         <translation>Plugins</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="3650"/>
-        <source>&lt;h3&gt;Version Numbers&lt;/h3&gt;&lt;table&gt;</source>
-        <translation>&lt;h3&gt;Números de Versiones&lt;/h3&gt;&lt;table&gt;</translation>
-    </message>
-    <message>
-        <location filename="../UI/UserInterface.py" line="7312"/>
+        <location filename="../UI/UserInterface.py" line="7326"/>
         <source>&lt;/table&gt;</source>
         <translation>&lt;/table&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="3709"/>
+        <location filename="../UI/UserInterface.py" line="3723"/>
         <source>Email address or mail server address is empty. Please configure your Email settings in the Preferences Dialog.</source>
         <translation>La dirección de correo electrónico o la dirección del servidor de correo están en blanco. Por favor configure las opciones de Correo Electrónico en el diálogo de Preferencias.</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4070"/>
+        <location filename="../UI/UserInterface.py" line="4084"/>
         <source>Configure Tool Groups ...</source>
         <translation>Configurar Grupos de Herramientas ...</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4074"/>
+        <location filename="../UI/UserInterface.py" line="4088"/>
         <source>Configure current Tool Group ...</source>
         <translation>Configurar Grupo de Herramientas actual ...</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4025"/>
+        <location filename="../UI/UserInterface.py" line="4039"/>
         <source>&amp;Builtin Tools</source>
         <translation>Herramientas de serie (&amp;builtin)</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4042"/>
+        <location filename="../UI/UserInterface.py" line="4056"/>
         <source>&amp;Plugin Tools</source>
         <translation>Herramientas de Extensión (&amp;Plugin)</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4190"/>
+        <location filename="../UI/UserInterface.py" line="4204"/>
         <source>&amp;Show all</source>
         <translation>&amp;Ver todo</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4192"/>
+        <location filename="../UI/UserInterface.py" line="4206"/>
         <source>&amp;Hide all</source>
         <translation>&amp;Ocultar todo</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5229"/>
+        <location filename="../UI/UserInterface.py" line="5243"/>
         <source>Problem</source>
         <translation>Problema</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5424"/>
+        <location filename="../UI/UserInterface.py" line="5438"/>
         <source>Process Generation Error</source>
         <translation>Error de Generación de Proceso</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5101"/>
+        <location filename="../UI/UserInterface.py" line="5115"/>
         <source>Currently no custom viewer is selected. Please use the preferences dialog to specify one.</source>
         <translation>No hay visor personalizado seleccionado actualmente. Por favor, especifique uno en el diálogo de preferencias.</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5135"/>
+        <location filename="../UI/UserInterface.py" line="5149"/>
         <source>&lt;p&gt;Could not start the help viewer.&lt;br&gt;Ensure that it is available as &lt;b&gt;hh&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;No se ha podido ejecutar el visor de ayuda.&lt;br&gt;Asegúrese de que esta disponible como &lt;b&gt;hh&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5905"/>
+        <location filename="../UI/UserInterface.py" line="5919"/>
         <source>Documentation Missing</source>
         <translation>Falta documentación</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5888"/>
+        <location filename="../UI/UserInterface.py" line="5902"/>
         <source>Documentation</source>
         <translation>Documentación</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5713"/>
+        <location filename="../UI/UserInterface.py" line="5727"/>
         <source>&lt;p&gt;The PyQt4 documentation starting point has not been configured.&lt;/p&gt;</source>
         <translation>&lt;P&gt;El punto de entrada de documentación de PyQt4 no ha sido configurado.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6509"/>
+        <location filename="../UI/UserInterface.py" line="6523"/>
         <source>Save tasks</source>
         <translation>Guardar tareas</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6538"/>
+        <location filename="../UI/UserInterface.py" line="6552"/>
         <source>Read tasks</source>
         <translation>Leer tareas</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6902"/>
+        <location filename="../UI/UserInterface.py" line="6916"/>
         <source>Drop Error</source>
         <translation>Error de volcado</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7273"/>
+        <location filename="../UI/UserInterface.py" line="7287"/>
         <source>Error during updates check</source>
         <translation>Error durante la verificación de actualización</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7087"/>
+        <location filename="../UI/UserInterface.py" line="7101"/>
         <source>&amp;Cancel</source>
         <translation>&amp;Cancelar</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7254"/>
+        <location filename="../UI/UserInterface.py" line="7268"/>
         <source>Update available</source>
         <translation>Actualizaciones disponibles</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7273"/>
+        <location filename="../UI/UserInterface.py" line="7287"/>
         <source>Could not perform updates check.</source>
         <translation>No se puede llevar a cabo la verificación de actualizaciones.</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7297"/>
+        <location filename="../UI/UserInterface.py" line="7311"/>
         <source>&lt;h3&gt;Available versions&lt;/h3&gt;&lt;table&gt;</source>
         <translation>&lt;h3&gt;Versiones disponibles&lt;/h3&gt;&lt;table&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7349"/>
+        <location filename="../UI/UserInterface.py" line="7363"/>
         <source>First time usage</source>
         <translation>Usado por primera vez</translation>
     </message>
@@ -75351,7 +75453,7 @@
         <translation>Restaurando Gestor de Barras de Herramientas...</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5369"/>
+        <location filename="../UI/UserInterface.py" line="5383"/>
         <source>External Tools</source>
         <translation>Herramientas Externas</translation>
     </message>
@@ -75366,12 +75468,12 @@
         <translation>Visor de &amp;Multiproyecto</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6634"/>
+        <location filename="../UI/UserInterface.py" line="6648"/>
         <source>Save session</source>
         <translation>Guardar sesión</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6618"/>
+        <location filename="../UI/UserInterface.py" line="6632"/>
         <source>Read session</source>
         <translation>Cargar sesión</translation>
     </message>
@@ -75446,12 +75548,12 @@
         <translation>&lt;b&gt;Conmutar la ventana de Caja de Herramientas Horizontal&lt;/b&gt;&lt;p&gt;Si la ventana de Caja de Herramientas Horizontal está escondida, se muestra. Si está siendo mostrada, se cierra.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="3989"/>
+        <location filename="../UI/UserInterface.py" line="4003"/>
         <source>Restart application</source>
         <translation>Reiniciar aplicación</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="3989"/>
+        <location filename="../UI/UserInterface.py" line="4003"/>
         <source>The application needs to be restarted. Do it now?</source>
         <translation>La aplicación necesita ser reiniciada. ¿Desea hacerlo ahora?</translation>
     </message>
@@ -75601,7 +75703,7 @@
         <translation>Editor de &amp;Iconos...</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5048"/>
+        <location filename="../UI/UserInterface.py" line="5062"/>
         <source>Qt 3 support</source>
         <translation>Soporte para Qt 3</translation>
     </message>
@@ -75641,106 +75743,106 @@
         <translation>Herramientas Externas/{0}</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5229"/>
+        <location filename="../UI/UserInterface.py" line="5243"/>
         <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; does not exist or is zero length.&lt;/p&gt;</source>
         <translation>&lt;p&gt;El archivo &lt;b&gt;{0}&lt;/b&gt; no existe o tiene longitud nula. &lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4948"/>
+        <location filename="../UI/UserInterface.py" line="4962"/>
         <source>&lt;p&gt;Could not start Qt-Designer.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;No se ha podido ejecutar Qt-Designer.&lt;br&gt;Asegúrese de que esta disponible como &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5020"/>
+        <location filename="../UI/UserInterface.py" line="5034"/>
         <source>&lt;p&gt;Could not start Qt-Linguist.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;No se ha podido ejecutar Qt-Linguist.&lt;br&gt;Asegúrese de que esta disponible como &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5073"/>
+        <location filename="../UI/UserInterface.py" line="5087"/>
         <source>&lt;p&gt;Could not start Qt-Assistant.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;No se ha podido ejecutar Qt-Assistant.&lt;br&gt;Asegúrese de que esta disponible como &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5115"/>
+        <location filename="../UI/UserInterface.py" line="5129"/>
         <source>&lt;p&gt;Could not start custom viewer.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;No se ha podido ejecutar el visor personalizado.&lt;br&gt;Asegúrese de que esta disponible como &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5185"/>
+        <location filename="../UI/UserInterface.py" line="5199"/>
         <source>&lt;p&gt;Could not start UI Previewer.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;No se ha podido ejecutar el Previsualizador de UI.&lt;br&gt;Asegúrese de que esta disponible como &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5242"/>
+        <location filename="../UI/UserInterface.py" line="5256"/>
         <source>&lt;p&gt;Could not start Translation Previewer.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;No se ha podido ejecutar el Previsualizador de Traducciones.&lt;br&gt;Asegúrese de que esta disponible como &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5265"/>
+        <location filename="../UI/UserInterface.py" line="5279"/>
         <source>&lt;p&gt;Could not start SQL Browser.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;No se ha podido iniciar el navegador SQL.&lt;br&gt;Asegúrese de que está disponible como &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5360"/>
+        <location filename="../UI/UserInterface.py" line="5374"/>
         <source>No tool entry found for external tool &apos;{0}&apos; in tool group &apos;{1}&apos;.</source>
         <translation>No se ha encontrado la entrada para la herramienta externa &apos;{0}&apos; en el grupo de herramientas &apos;{1}&apos;.</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5369"/>
+        <location filename="../UI/UserInterface.py" line="5383"/>
         <source>No toolgroup entry &apos;{0}&apos; found.</source>
         <translation>No se ha encontrado la entrada para el grupo de herramientas &apos;{0}&apos;.</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5408"/>
+        <location filename="../UI/UserInterface.py" line="5422"/>
         <source>Starting process &apos;{0} {1}&apos;.
 </source>
         <translation>Comenzando proceso &apos;{0} {1}&apos;.
 </translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5424"/>
+        <location filename="../UI/UserInterface.py" line="5438"/>
         <source>&lt;p&gt;Could not start the tool entry &lt;b&gt;{0}&lt;/b&gt;.&lt;br&gt;Ensure that it is available as &lt;b&gt;{1}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;No se ha podido ejecutar la entrada de herramienta &lt;b&gt;{0}&lt;/b&gt;.&lt;br&gt;Asegúrese de que esta disponible como &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5502"/>
+        <location filename="../UI/UserInterface.py" line="5516"/>
         <source>Process &apos;{0}&apos; has exited.
 </source>
         <translation>El proceso &apos;{0}&apos; ha finalizado.
 </translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5905"/>
+        <location filename="../UI/UserInterface.py" line="5919"/>
         <source>&lt;p&gt;The documentation starting point &quot;&lt;b&gt;{0}&lt;/b&gt;&quot; could not be found.&lt;/p&gt;</source>
         <translation>&lt;P&gt;El punto de entrada de documentación &quot;&lt;b&gt;{0}&lt;/b&gt;&quot; no ha podido encontrarse.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6509"/>
+        <location filename="../UI/UserInterface.py" line="6523"/>
         <source>&lt;p&gt;The tasks file &lt;b&gt;{0}&lt;/b&gt; could not be written.&lt;/p&gt;</source>
         <translation>&lt;p&gt;El archivo de tareas &lt;b&gt;{0}&lt;/b&gt; no pudo ser guardado.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6538"/>
+        <location filename="../UI/UserInterface.py" line="6552"/>
         <source>&lt;p&gt;The tasks file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt;</source>
         <translation>&lt;p&gt;El archivo de tareas &lt;b&gt;{0}&lt;/b&gt; no puede leerse.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6572"/>
+        <location filename="../UI/UserInterface.py" line="6586"/>
         <source>&lt;p&gt;The session file &lt;b&gt;{0}&lt;/b&gt; could not be written.&lt;/p&gt;</source>
         <translation>&lt;p&gt;El archivo de sesión &lt;b&gt;{0}&lt;/b&gt; no ha podido guardarse.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6618"/>
+        <location filename="../UI/UserInterface.py" line="6632"/>
         <source>&lt;p&gt;The session file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt;</source>
         <translation>&lt;p&gt;El archivo de sesión &lt;b&gt;&lt;/b&gt; no ha podido ser leído.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6902"/>
+        <location filename="../UI/UserInterface.py" line="6916"/>
         <source>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; is not a file.&lt;/p&gt;</source>
         <translation>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; no es un archivo.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7096"/>
+        <location filename="../UI/UserInterface.py" line="7110"/>
         <source>Trying host {0}</source>
         <translation>Probando host {0}</translation>
     </message>
@@ -75775,7 +75877,7 @@
         <translation>Alt+Shift+B</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6339"/>
+        <location filename="../UI/UserInterface.py" line="6353"/>
         <source>Keyboard shortcut file (*.e4k)</source>
         <translation>Archivo de atajos de teclado (*.e4k)</translation>
     </message>
@@ -75815,27 +75917,27 @@
         <translation>&lt;b&gt;Documentación de Python 2&lt;/b&gt;&lt;p&gt;Mostrar la documentación de Python 2. Si no se ha configurado un directorio con esta documentación, la ubicación de la documentación de Python 2 se asumirá en el directorio de documentación bajo la ubicación del ejecutable configurado de Python 2 en Windows, y en &lt;i&gt;/usr/share/doc/packages/python/html/python-docs-html&lt;/i&gt; para Unix. Establezca el valor de la variable de entorno PYTHON2DOCDIR para sobreescribir estas opciones. &lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7162"/>
+        <location filename="../UI/UserInterface.py" line="7176"/>
         <source>Error getting versions information</source>
         <translation>Error al obtener información de versiones</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7155"/>
+        <location filename="../UI/UserInterface.py" line="7169"/>
         <source>The versions information could not be downloaded. Please go online and try again.</source>
         <translation>La información de versiones no se ha podido descargar. Póngase online por favor e inténtelo de nuevo.</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6107"/>
+        <location filename="../UI/UserInterface.py" line="6121"/>
         <source>Open Browser</source>
         <translation>Abrir Navegador</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6107"/>
+        <location filename="../UI/UserInterface.py" line="6121"/>
         <source>Could not start a web browser</source>
         <translation>No se ha podido iniciar el navegador web</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7162"/>
+        <location filename="../UI/UserInterface.py" line="7176"/>
         <source>The versions information could not be downloaded for the last 7 days. Please go online and try again.</source>
         <translation>La información de versiones no se ha podido descargar en los últimos 7 días. Póngase por favor online e inténtelo de nuevo.</translation>
     </message>
@@ -75921,12 +76023,12 @@
         <translation>&lt;b&gt;Captura de Pantalla&lt;/b&gt;&lt;p&gt;Abre un diálogo para tomar capturas de pantalla de una región de la pantalla.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5337"/>
+        <location filename="../UI/UserInterface.py" line="5351"/>
         <source>&lt;p&gt;Could not start Snapshot tool.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;No se ha podido ejecutar la herramienta de Captura de Pantalla.&lt;br&gt;Asegúrese de que esta disponible como &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7368"/>
+        <location filename="../UI/UserInterface.py" line="7382"/>
         <source>Select Workspace Directory</source>
         <translation>Seleccionar Directorio para el Espacio de Trabajo</translation>
     </message>
@@ -76291,7 +76393,7 @@
         <translation>Abrir Documentación de PyQt5</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5775"/>
+        <location filename="../UI/UserInterface.py" line="5789"/>
         <source>&lt;p&gt;The PyQt5 documentation starting point has not been configured.&lt;/p&gt;</source>
         <translation>&lt;P&gt;El punto de entrada de documentación de PyQt5 no ha sido configurado.&lt;/p&gt;</translation>
     </message>
@@ -76301,7 +76403,7 @@
         <translation>&lt;b&gt;Documentación de Python 3&lt;/b&gt;&lt;p&gt;Mostrar la documentación de Python 3. Si no se ha configurado un directorio con lesta documentación, la ubicación de la documentación de Python 3 se asumirá en el directorio de documentación bajo la ubicación del ejecutable de Python 3 en Windows, y en &lt;i&gt;/usr/share/doc/packages/python/html&lt;/i&gt; para Unix. Establezca el valor de la variable de entorno PYTHON3DOCDIR para sobreescribir estas opciones. &lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7087"/>
+        <location filename="../UI/UserInterface.py" line="7101"/>
         <source>%v/%m</source>
         <translation>%v/%m</translation>
     </message>
@@ -76321,7 +76423,7 @@
         <translation>&lt;b&gt;Mostrar registro de errores...&lt;/b&gt;&lt;p&gt;Abre un diálogo mostrando el registro más reciente de errores.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7091"/>
+        <location filename="../UI/UserInterface.py" line="7105"/>
         <source>Version Check</source>
         <translation>Verificación de Versión</translation>
     </message>
@@ -76391,27 +76493,27 @@
         <translation>&lt;b&gt;Documentación de API de Eric&lt;/b&gt;&lt;p&gt;Muestra la documentación de API de Eric. La ubicación de la documentación es el subdirectorio Documentation/Source del directorio de instalación de eric6.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5048"/>
+        <location filename="../UI/UserInterface.py" line="5062"/>
         <source>Qt v.3 is not supported by eric6.</source>
         <translation>Qt v.3 no está soportado por eric6.</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7254"/>
+        <location filename="../UI/UserInterface.py" line="7268"/>
         <source>The update to &lt;b&gt;{0}&lt;/b&gt; of eric6 is available at &lt;b&gt;{1}&lt;/b&gt;. Would you like to get it?</source>
         <translation>La actualización para &lt;b&gt;{0}&lt;/b&gt; de eric6 está disponible en &lt;b&gt;{1}&lt;/b&gt;. ¿Le gustaría obtenerla?</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7266"/>
+        <location filename="../UI/UserInterface.py" line="7280"/>
         <source>Eric6 is up to date</source>
         <translation>Eric6 está actualizado</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7266"/>
+        <location filename="../UI/UserInterface.py" line="7280"/>
         <source>You are using the latest version of eric6</source>
         <translation>Está utilizando la última versión de eric6</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7349"/>
+        <location filename="../UI/UserInterface.py" line="7363"/>
         <source>eric6 has not been configured yet. The configuration dialog will be started.</source>
         <translation>Eric6 todavía no está configurado. El diálogo de configuración va a ser iniciado.</translation>
     </message>
@@ -76421,17 +76523,17 @@
         <translation>Generando Barras de Herramientas para Plugins...</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4045"/>
+        <location filename="../UI/UserInterface.py" line="4059"/>
         <source>&amp;User Tools</source>
         <translation>Herramientas de &amp;Usuario</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4117"/>
+        <location filename="../UI/UserInterface.py" line="4131"/>
         <source>No User Tools Configured</source>
         <translation>No se han Configurado Herramientas de Usuario</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7107"/>
+        <location filename="../UI/UserInterface.py" line="7121"/>
         <source>The versions information cannot not be downloaded because you are &lt;b&gt;offline&lt;/b&gt;. Please go online and try again.</source>
         <translation>La información de versiones no se puede descargar porque está &lt;b&gt;sin línea&lt;/b&gt;. Por favor, póngase en línea e inténtelo de nuevo.</translation>
     </message>
@@ -76476,7 +76578,7 @@
         <translation>&lt;b&gt;Guardar sesión...&lt;/b&gt;&lt;p&gt;Guarda la sesión actual a disco. Se muestra un diálogo para seleccionar el nombre de archivo.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6656"/>
+        <location filename="../UI/UserInterface.py" line="6670"/>
         <source>Load session</source>
         <translation>Cargar sesión</translation>
     </message>
@@ -76491,17 +76593,17 @@
         <translation>&lt;b&gt;Cargar sesión...&lt;/b&gt;&lt;p&gt;Carga una sesión guardada en disco anteriormente. Se muestra un diálogo para seleccionar el nombre de archivo.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6656"/>
+        <location filename="../UI/UserInterface.py" line="6670"/>
         <source>eric6 Session Files (*.e5s)</source>
         <translation>Archivos de Sesión de eric6 (*.e5s)</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6707"/>
+        <location filename="../UI/UserInterface.py" line="6721"/>
         <source>Crash Session found!</source>
         <translation>¡Se ha hallado una sesión perdida!</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6707"/>
+        <location filename="../UI/UserInterface.py" line="6721"/>
         <source>A session file of a crashed session was found. Shall this session be restored?</source>
         <translation>Se ha encontrado un archivo de sesió para una sesión perdida. ¿Desea restaurar esta sesión?</translation>
     </message>
@@ -76516,17 +76618,17 @@
         <translation>Inicializando Plugins...</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7242"/>
+        <location filename="../UI/UserInterface.py" line="7256"/>
         <source>Update Check</source>
         <translation>Comprobación Actualización</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7242"/>
+        <location filename="../UI/UserInterface.py" line="7256"/>
         <source>You installed eric directly from the source code. There is no possibility to check for the availability of an update.</source>
         <translation>Ha instalado eric directamente a partir del código fuente. No es posible comprobar la disponibilidad de una actuación.</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7232"/>
+        <location filename="../UI/UserInterface.py" line="7246"/>
         <source>You are using a snapshot release of eric6. A more up-to-date stable release might be available.</source>
         <translation>Ésta es una snapshot release the eric6. Una release estable más reciente podría estar disponible.</translation>
     </message>
@@ -76581,7 +76683,7 @@
         <translation>&lt;b&gt;Documentación de PySide2&lt;/b&gt;&lt;p&gt;Muestra la Documentación de PySide2. Dependiendo de la configuración, esta documentación será mostrará en el visor de ayuda interno de Eric, o se ejecutará en un navegador web, o Qt Assistant.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5888"/>
+        <location filename="../UI/UserInterface.py" line="5902"/>
         <source>&lt;p&gt;The PySide{0} documentation starting point has not been configured.&lt;/p&gt;</source>
         <translation>&lt;P&gt;El punto de entrada de documentación de PySide{0} no ha sido configurado.&lt;/p&gt;</translation>
     </message>
@@ -76657,17 +76759,17 @@
         <translation>&lt;b&gt;Reiniciar la IDE&lt;/b&gt;&lt;p&gt;Reinicia la IDE. Todos los cambios sin guardar pueden ser guardados primero. Cualquier programa de Python que esté en depuración será detenido, y las preferencias se guardarán en disco.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6062"/>
+        <location filename="../UI/UserInterface.py" line="6076"/>
         <source>Start Web Browser</source>
         <translation>Iniciar Navegador Web</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6001"/>
+        <location filename="../UI/UserInterface.py" line="6015"/>
         <source>The eric6 web browser could not be started.</source>
         <translation>El navegador web de eric 6 no se ha podido iniciar.</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6062"/>
+        <location filename="../UI/UserInterface.py" line="6076"/>
         <source>&lt;p&gt;The eric6 web browser is not started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
         <translation>&lt;p&gt;El navegador web de eric6 no se ha iniciado.&lt;/p&gt;&lt;p&gt;Razón: {0}&lt;/p&gt;</translation>
     </message>
@@ -76761,6 +76863,11 @@
         <source>Central Park</source>
         <translation>Central Park</translation>
     </message>
+    <message>
+        <location filename="../UI/UserInterface.py" line="3650"/>
+        <source>&lt;h2&gt;Version Numbers&lt;/h2&gt;&lt;table&gt;</source>
+        <translation>&lt;h2&gt;Números de Versiones&lt;/h2&gt;&lt;table&gt;</translation>
+    </message>
 </context>
 <context>
     <name>UserPropertiesDialog</name>
@@ -77014,7 +77121,7 @@
 <context>
     <name>VariableItem</name>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="207"/>
+        <location filename="../Debugger/VariablesViewer.py" line="211"/>
         <source>&lt;double click to show value&gt;</source>
         <translation>&lt;doble click para mostrar valor&gt;</translation>
     </message>
@@ -77081,22 +77188,22 @@
 <context>
     <name>VariablesModel</name>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="278"/>
+        <location filename="../Debugger/VariablesViewer.py" line="282"/>
         <source>Globals</source>
         <translation>Globales</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="280"/>
+        <location filename="../Debugger/VariablesViewer.py" line="284"/>
         <source>Locals</source>
         <translation>Locales</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="282"/>
+        <location filename="../Debugger/VariablesViewer.py" line="286"/>
         <source>Type</source>
         <translation>Tipo</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="282"/>
+        <location filename="../Debugger/VariablesViewer.py" line="286"/>
         <source>Value</source>
         <translation>Valor</translation>
     </message>
@@ -77104,32 +77211,32 @@
 <context>
     <name>VariablesViewer</name>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="951"/>
+        <location filename="../Debugger/VariablesViewer.py" line="955"/>
         <source>Global Variables</source>
         <translation>Variables Globales</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="952"/>
+        <location filename="../Debugger/VariablesViewer.py" line="956"/>
         <source>&lt;b&gt;The Global Variables Viewer Window&lt;/b&gt;&lt;p&gt;This window displays the global variables of the debugged program.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Ventana de Visor de Variables Globales&lt;/b&gt;&lt;p&gt;Esta ventana muestra las variables globales del programa en depuración.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="958"/>
+        <location filename="../Debugger/VariablesViewer.py" line="962"/>
         <source>Local Variables</source>
         <translation>Variables Locales</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="959"/>
+        <location filename="../Debugger/VariablesViewer.py" line="963"/>
         <source>&lt;b&gt;The Local Variables Viewer Window&lt;/b&gt;&lt;p&gt;This window displays the local variables of the debugged program.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Ventana de Visor de Variables Locales&lt;/b&gt;&lt;p&gt;Esta ventana muestra las variables locales  del programa en depuración.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1076"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1080"/>
         <source>Show Details...</source>
         <translation>Mostrar detalles...</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1091"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1095"/>
         <source>Configure...</source>
         <translation>Configurar...</translation>
     </message>
@@ -77139,30 +77246,35 @@
         <translation>{0} elementos</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1089"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1093"/>
         <source>Refresh</source>
         <translation>Actualizar</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1078"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1082"/>
         <source>Expand</source>
         <translation>Expandir</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1079"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1083"/>
         <source>Collapse</source>
         <translation>Contraer</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1080"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1084"/>
         <source>Collapse All</source>
         <translation>Contraer Todo</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1092"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1096"/>
         <source>Variables Type Filter...</source>
         <translation>Fitro por Tipo de Variable...</translation>
     </message>
+    <message>
+        <location filename="../Debugger/VariablesViewer.py" line="47"/>
+        <source>unsized</source>
+        <translation>sin tamaño</translation>
+    </message>
 </context>
 <context>
     <name>VcsCommandOptionsDialog</name>
@@ -84237,52 +84349,52 @@
     <message>
         <location filename="../Preferences/ConfigurationPages/WebBrowserVirusTotalPage.ui" line="17"/>
         <source>&lt;b&gt;Configure VirusTotal Interface&lt;/b&gt;</source>
-        <translation type="unfinished"></translation>
+        <translation>&lt;b&gt;Configurar Interfaz de VirusTotal&lt;/b&gt;</translation>
     </message>
     <message>
         <location filename="../Preferences/ConfigurationPages/WebBrowserVirusTotalPage.ui" line="37"/>
         <source>Select to enable the VirusTotal interface</source>
-        <translation type="unfinished"></translation>
+        <translation>Seleccionar para habilitar la interfaz de VirusTotal</translation>
     </message>
     <message>
         <location filename="../Preferences/ConfigurationPages/WebBrowserVirusTotalPage.ui" line="40"/>
         <source>Enable VirusTotal</source>
-        <translation type="unfinished"></translation>
+        <translation>Habilitar VirusTotal</translation>
     </message>
     <message>
         <location filename="../Preferences/ConfigurationPages/WebBrowserVirusTotalPage.ui" line="47"/>
         <source>Service Key</source>
-        <translation type="unfinished"></translation>
+        <translation>Service Key</translation>
     </message>
     <message>
         <location filename="../Preferences/ConfigurationPages/WebBrowserVirusTotalPage.ui" line="53"/>
         <source>Enter your personal VirusTotal service key (s. &lt;a href=&quot;http://virustotal.com&quot;&gt;VirusTotal &amp;copy;&lt;/a&gt; for details):</source>
-        <translation type="unfinished"></translation>
+        <translation>Introducir service key personal de VirusTotal (ver en &lt;a href=&quot;http://virustotal.com&quot;&gt;VirusTotal &amp;copy;&lt;/a&gt; más detalles):</translation>
     </message>
     <message>
         <location filename="../Preferences/ConfigurationPages/WebBrowserVirusTotalPage.ui" line="66"/>
         <source>Enter the VirusTotal service key</source>
-        <translation type="unfinished"></translation>
+        <translation>Introducir la service key de Virus Total</translation>
     </message>
     <message>
         <location filename="../Preferences/ConfigurationPages/WebBrowserVirusTotalPage.ui" line="104"/>
         <source>Press to test the validity of the service key</source>
-        <translation type="unfinished"></translation>
+        <translation>Pulsar para comprobar validez de la service key</translation>
     </message>
     <message>
         <location filename="../Preferences/ConfigurationPages/WebBrowserVirusTotalPage.ui" line="107"/>
         <source>Test Service Key</source>
-        <translation type="unfinished"></translation>
+        <translation>Comprobar Service Key</translation>
     </message>
     <message>
         <location filename="../Preferences/ConfigurationPages/WebBrowserVirusTotalPage.ui" line="132"/>
         <source>Select to use a secure (https) connection</source>
-        <translation type="unfinished"></translation>
+        <translation>Seleccionar para usar una conexión segura (https)</translation>
     </message>
     <message>
         <location filename="../Preferences/ConfigurationPages/WebBrowserVirusTotalPage.ui" line="135"/>
         <source>Use secure (https) connections</source>
-        <translation type="unfinished"></translation>
+        <translation>Usar conexiones seguras (https)</translation>
     </message>
 </context>
 <context>
--- a/eric6/i18n/eric6_fr.ts	Fri Nov 01 16:11:55 2019 +0100
+++ b/eric6/i18n/eric6_fr.ts	Sun Dec 01 16:38:47 2019 +0100
@@ -45523,43 +45523,78 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.py" line="39"/>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.py" line="42"/>
         <source>All Files (*)</source>
         <translation type="unfinished">Tous fichiers (*)</translation>
     </message>
     <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="255"/>
+        <source>Documentation</source>
+        <translation type="unfinished">Documentation</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="261"/>
+        <source>MicroPython:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="268"/>
+        <source>Enter the URL for the MicroPython documentation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="275"/>
+        <source>CircuitPython:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="282"/>
+        <source>Enter the URL for the CircuitPython documentation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="289"/>
+        <source>BBC micro:bit:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="296"/>
+        <source>Enter the URL for the BBC micro:bit MicroPython documentation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="172"/>
-        <source>Documentation</source>
-        <translation type="unfinished">Documentation</translation>
+        <source>PyBoard</source>
+        <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="178"/>
-        <source>MicroPython:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="185"/>
-        <source>Enter the URL for the MicroPython documentation</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="192"/>
-        <source>CircuitPython:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="199"/>
-        <source>Enter the URL for the CircuitPython documentation</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="206"/>
-        <source>BBC micro:bit:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="213"/>
-        <source>Enter the URL for the BBC micro:bit MicroPython documentation</source>
+        <source>dfu-util Path:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="194"/>
+        <source>Enter the path of the dfu-util flashing executable</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="204"/>
+        <source>Firmware</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="217"/>
+        <source>Enter the URL for the MicroPython firmware for PyBoard, ESP8266 and ESP32</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="231"/>
+        <source>Enter the URL for the CircuitPython firmware</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="245"/>
+        <source>Enter the URL for the BBC micro:bit Firmware</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -45756,7 +45791,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1202"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1210"/>
         <source>Synchronize Time</source>
         <translation type="unfinished"></translation>
     </message>
@@ -45771,107 +45806,107 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1366"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1421"/>
         <source>Compile Python File</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1386"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1441"/>
         <source>Compile Current Editor</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1140"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1148"/>
         <source>&lt;h3&gt;Device Version Information&lt;/h3&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1149"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1157"/>
         <source>No version information available.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1151"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1159"/>
         <source>Device Version Information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1174"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1182"/>
         <source>unknown</source>
         <translation type="unfinished">inconnu</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1178"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1186"/>
         <source>Device Implementation Information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1178"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1186"/>
         <source>&lt;h3&gt;Device Implementation Information&lt;/h3&gt;&lt;p&gt;This device contains &lt;b&gt;{0} {1}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1202"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1210"/>
         <source>&lt;p&gt;The time of the connected device was synchronized with the local time.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1224"/>
-        <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../MicroPython/MicroPythonWidget.py" line="1232"/>
+        <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1240"/>
         <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;p&gt;{0}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1246"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1254"/>
         <source>Device Date and Time</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1259"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1267"/>
         <source>Local Date and Time</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1259"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1267"/>
         <source>&lt;h3&gt;Local Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1279"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1334"/>
         <source>Error handling device</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1279"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1334"/>
         <source>&lt;p&gt;There was an error communicating with the connected device.&lt;/p&gt;&lt;p&gt;Method: {0}&lt;/p&gt;&lt;p&gt;Message: {1}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1318"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1373"/>
         <source>The MicroPython cross compiler &lt;b&gt;mpy-cross&lt;/b&gt; cannot be found. Ensure it is in the search path or configure it on the MicroPython configuration page.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1336"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1391"/>
         <source>Python Files (*.py);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1346"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1401"/>
         <source>The Python file &lt;b&gt;{0}&lt;/b&gt; does not exist. Aborting...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1356"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1411"/>
         <source>&apos;mpy-cross&apos; Output</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1379"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1434"/>
         <source>The current editor does not contain a Python file. Aborting...</source>
         <translation type="unfinished"></translation>
     </message>
@@ -45896,14 +45931,39 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1126"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1134"/>
         <source>Show Documentation</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1138"/>
+        <source>Configure</source>
+        <translation type="unfinished">Configuration</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1113"/>
+        <source>Show Time</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../MicroPython/MicroPythonWidget.py" line="1130"/>
-        <source>Configure</source>
-        <translation type="unfinished">Configuration</translation>
+        <source>Download Firmware</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1310"/>
+        <source>Date and Time</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1293"/>
+        <source>&lt;table&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;Local Date and Time&lt;/th&gt;&lt;th&gt;Device Date and Time&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{0}&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{1}&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1310"/>
+        <source>&lt;table&gt;&lt;tr&gt;&lt;th&gt;Local Date and Time&lt;/th&gt;&lt;th&gt;Device Date and Time&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&apos;center&apos;&gt;{0} {1}&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -51219,17 +51279,17 @@
 <context>
     <name>Preferences</name>
     <message>
-        <location filename="../Preferences/__init__.py" line="1606"/>
+        <location filename="../Preferences/__init__.py" line="1610"/>
         <source>Export Preferences</source>
         <translation>Export des préférences</translation>
     </message>
     <message>
-        <location filename="../Preferences/__init__.py" line="1634"/>
+        <location filename="../Preferences/__init__.py" line="1638"/>
         <source>Import Preferences</source>
         <translation>Import des préférences</translation>
     </message>
     <message>
-        <location filename="../Preferences/__init__.py" line="1634"/>
+        <location filename="../Preferences/__init__.py" line="1638"/>
         <source>Properties File (*.ini);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -51572,22 +51632,22 @@
         <translation>Compilateur CORBA IDL</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="361"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="378"/>
         <source>(not configured)</source>
         <translation>(non configuré)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="415"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="432"/>
         <source>(not executable)</source>
         <translation>(non executable)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="452"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="469"/>
         <source>(not found)</source>
         <translation>(non trouvé)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="413"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="430"/>
         <source>(unknown)</source>
         <translation>(inconnu)</translation>
     </message>
@@ -51677,7 +51737,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="394"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="411"/>
         <source>(module not found)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -51706,6 +51766,21 @@
         <source>PyPI Package Management</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="297"/>
+        <source>MicroPython - MPY Cross Compiler</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="300"/>
+        <source>MicroPython - ESP Tool</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="306"/>
+        <source>MicroPython - PyBoard Flasher</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>Project</name>
@@ -55234,23 +55309,88 @@
 <context>
     <name>PyBoardDevice</name>
     <message>
-        <location filename="../MicroPython/PyBoardDevices.py" line="70"/>
+        <location filename="../MicroPython/PyBoardDevices.py" line="75"/>
         <source>PyBoard</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/PyBoardDevices.py" line="159"/>
+        <location filename="../MicroPython/PyBoardDevices.py" line="164"/>
         <source>Workspace Directory</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/PyBoardDevices.py" line="159"/>
+        <location filename="../MicroPython/PyBoardDevices.py" line="164"/>
         <source>Python files for PyBoard devices are stored on the device. Therefore, to edit these files you need to have the device plugged in. Until you plug in a device, the standard directory will be used.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/PyBoardDevices.py" line="186"/>
-        <source>MicroPython Install Instructions</source>
+        <location filename="../MicroPython/PyBoardDevices.py" line="202"/>
+        <source>List DFU-capable Devices</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="356"/>
+        <source>Flash MicroPython Firmware</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="209"/>
+        <source>MicroPython Flash Instructions</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="239"/>
+        <source>dfu-util not available</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="239"/>
+        <source>The dfu-util firmware flashing tool &lt;b&gt;dfu-util&lt;/b&gt; cannot be found or is not executable. Ensure it is in the search path or configure it on the MicroPython configuration page.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="260"/>
+        <source>&lt;h3&gt;Enable DFU Mode&lt;/h3&gt;&lt;p&gt;1. Disconnect everything from your board&lt;/p&gt;&lt;p&gt;2. Disconnect your board&lt;/p&gt;&lt;p&gt;3. Connect the DFU/BOOT0 pin with a 3.3V pin&lt;/p&gt;&lt;p&gt;4. Re-connect your board&lt;/p&gt;&lt;hr /&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="270"/>
+        <source>&lt;p&gt;&lt;b&gt;Warning:&lt;/b&gt; Make sure that all other DFU capable devices except your PyBoard are disconnected.&lt;hr /&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="276"/>
+        <source>&lt;p&gt;Press &lt;b&gt;OK&lt;/b&gt; to continue...&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="279"/>
+        <source>Enable DFU mode</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="293"/>
+        <source>&lt;h3&gt;Disable DFU Mode&lt;/h3&gt;&lt;p&gt;1. Disconnect your board&lt;/p&gt;&lt;p&gt;2. Remove the DFU jumper&lt;/p&gt;&lt;p&gt;3. Re-connect your board&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;Press &lt;b&gt;OK&lt;/b&gt; to continue...&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="301"/>
+        <source>Disable DFU mode</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="356"/>
+        <source>&apos;dfu-util&apos; Output</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="322"/>
+        <source>List DFU capable Devices</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="344"/>
+        <source>MicroPython Firmware Files (*.dfu);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -76040,7 +76180,7 @@
         <translation>&lt;b&gt;Afficher les versions&lt;/b&gt;&lt;p&gt;Affiche les informations sur les versions.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="3709"/>
+        <location filename="../UI/UserInterface.py" line="3723"/>
         <source>Report Bug</source>
         <translation>Rapport de bogue</translation>
     </message>
@@ -76115,7 +76255,7 @@
         <translation>&lt;b&gt;Raccourcis claviers&lt;/b&gt;&lt;p&gt;Edite les raccourcis claviers pour l&apos;application.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6315"/>
+        <location filename="../UI/UserInterface.py" line="6329"/>
         <source>Export Keyboard Shortcuts</source>
         <translation>Exporter les raccourcis clavier</translation>
     </message>
@@ -76135,7 +76275,7 @@
         <translation>&lt;b&gt;Exporter les raccourcis clavier&lt;/b&gt;&lt;p&gt;Exporte les raccourcis claviers de l&apos;application.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6339"/>
+        <location filename="../UI/UserInterface.py" line="6353"/>
         <source>Import Keyboard Shortcuts</source>
         <translation>Importer des raccourcis clavier</translation>
     </message>
@@ -76175,7 +76315,7 @@
         <translation>Outils</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5101"/>
+        <location filename="../UI/UserInterface.py" line="5115"/>
         <source>Help</source>
         <translation>Aide</translation>
     </message>
@@ -76190,12 +76330,12 @@
         <translation>&amp;Barres d&apos;Outils</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5229"/>
+        <location filename="../UI/UserInterface.py" line="5243"/>
         <source>Problem</source>
         <translation>Problème</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5424"/>
+        <location filename="../UI/UserInterface.py" line="5438"/>
         <source>Process Generation Error</source>
         <translation>Erreur du processus</translation>
     </message>
@@ -76311,7 +76451,7 @@
         <translation type="obsolete">Il n&apos;y a pas de script principal défini dans le projet en cours. Abandon</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6902"/>
+        <location filename="../UI/UserInterface.py" line="6916"/>
         <source>Drop Error</source>
         <translation>Erreur de suppression</translation>
     </message>
@@ -76446,27 +76586,27 @@
         <translation>Visualisueur de tâches</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6509"/>
+        <location filename="../UI/UserInterface.py" line="6523"/>
         <source>Save tasks</source>
         <translation>Enregistrement des tâches</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6538"/>
+        <location filename="../UI/UserInterface.py" line="6552"/>
         <source>Read tasks</source>
         <translation>Lecture des tâches</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5101"/>
+        <location filename="../UI/UserInterface.py" line="5115"/>
         <source>Currently no custom viewer is selected. Please use the preferences dialog to specify one.</source>
         <translation>Aucun visualiseur personalisé n&apos;est sélectionné. Prière d&apos;en spécifier un dans les préférences.</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5905"/>
+        <location filename="../UI/UserInterface.py" line="5919"/>
         <source>Documentation Missing</source>
         <translation>Documentation Manquante</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="3709"/>
+        <location filename="../UI/UserInterface.py" line="3723"/>
         <source>Email address or mail server address is empty. Please configure your Email settings in the Preferences Dialog.</source>
         <translation>L&apos;adresse mail ou l&apos;adresse du serveur mail est vide. Veuillez configurer vos paramètres mails dans la fenêtre des Préférences.</translation>
     </message>
@@ -76561,7 +76701,7 @@
         <translation>Ouvre la documentation sur les APIs Eric</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5135"/>
+        <location filename="../UI/UserInterface.py" line="5149"/>
         <source>&lt;p&gt;Could not start the help viewer.&lt;br&gt;Ensure that it is available as &lt;b&gt;hh&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Impossible de démarrer le visualiseur d&apos;aide.&lt;br&gt;Assurez-vous qu&apos;il est bien ici &lt;b&gt;hh&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
@@ -76637,57 +76777,57 @@
         <translation>Profils</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4025"/>
+        <location filename="../UI/UserInterface.py" line="4039"/>
         <source>&amp;Builtin Tools</source>
         <translation>Outils &amp;internes</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5888"/>
+        <location filename="../UI/UserInterface.py" line="5902"/>
         <source>Documentation</source>
         <translation>Documentation</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5713"/>
+        <location filename="../UI/UserInterface.py" line="5727"/>
         <source>&lt;p&gt;The PyQt4 documentation starting point has not been configured.&lt;/p&gt;</source>
         <translation>&lt;p&gt;L&apos;emplacement de la documentation PyQt4 n&apos;a pas été configuré.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7273"/>
+        <location filename="../UI/UserInterface.py" line="7287"/>
         <source>Error during updates check</source>
         <translation>Erreur durant la recherche de mises à jour</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7254"/>
+        <location filename="../UI/UserInterface.py" line="7268"/>
         <source>Update available</source>
         <translation>Mise à jour disponible</translation>
     </message>
     <message>
         <location filename="../UI/UserInterface.py" line="3650"/>
         <source>&lt;h3&gt;Version Numbers&lt;/h3&gt;&lt;table&gt;</source>
-        <translation>&lt;h3&gt;Numéros de version&lt;/h3&gt;&lt;table&gt;</translation>
-    </message>
-    <message>
-        <location filename="../UI/UserInterface.py" line="7312"/>
+        <translation type="obsolete">&lt;h3&gt;Numéros de version&lt;/h3&gt;&lt;table&gt;</translation>
+    </message>
+    <message>
+        <location filename="../UI/UserInterface.py" line="7326"/>
         <source>&lt;/table&gt;</source>
         <translation>&lt;/table&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6107"/>
+        <location filename="../UI/UserInterface.py" line="6121"/>
         <source>Open Browser</source>
         <translation type="unfinished">Ouverture du navigateur</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6107"/>
+        <location filename="../UI/UserInterface.py" line="6121"/>
         <source>Could not start a web browser</source>
         <translation type="unfinished">Impossible de lancer le navigateur web</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4070"/>
+        <location filename="../UI/UserInterface.py" line="4084"/>
         <source>Configure Tool Groups ...</source>
         <translation>Configuration des groupes d&apos;outils...</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4074"/>
+        <location filename="../UI/UserInterface.py" line="4088"/>
         <source>Configure current Tool Group ...</source>
         <translation>Configuration du groupe d&apos;outils courant...</translation>
     </message>
@@ -76702,17 +76842,17 @@
         <translation>Afficher les &amp;outils externes</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7087"/>
+        <location filename="../UI/UserInterface.py" line="7101"/>
         <source>&amp;Cancel</source>
         <translation>&amp;Annuler</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7273"/>
+        <location filename="../UI/UserInterface.py" line="7287"/>
         <source>Could not perform updates check.</source>
         <translation>Impossible de vérifier les mises à jour.</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7349"/>
+        <location filename="../UI/UserInterface.py" line="7363"/>
         <source>First time usage</source>
         <translation>Première utilisation</translation>
     </message>
@@ -76752,7 +76892,7 @@
         <translation>Infos &amp;Plugins...</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4042"/>
+        <location filename="../UI/UserInterface.py" line="4056"/>
         <source>&amp;Plugin Tools</source>
         <translation>Outils &amp;plugins</translation>
     </message>
@@ -76782,12 +76922,12 @@
         <translation>As&amp;sistants</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4190"/>
+        <location filename="../UI/UserInterface.py" line="4204"/>
         <source>&amp;Show all</source>
         <translation>Tout &amp;afficher</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4192"/>
+        <location filename="../UI/UserInterface.py" line="4206"/>
         <source>&amp;Hide all</source>
         <translation>Tout &amp;masquer</translation>
     </message>
@@ -76807,7 +76947,7 @@
         <translation>Affiche les versions disponibles pour le téléchargement</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7297"/>
+        <location filename="../UI/UserInterface.py" line="7311"/>
         <source>&lt;h3&gt;Available versions&lt;/h3&gt;&lt;table&gt;</source>
         <translation>&lt;h3&gt;Versions disponibles&lt;/h3&gt;&lt;table&gt;</translation>
     </message>
@@ -76897,17 +77037,17 @@
         <translation>Gestionnaire de &amp;multi-projet</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5369"/>
+        <location filename="../UI/UserInterface.py" line="5383"/>
         <source>External Tools</source>
         <translation>Outils externes</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6634"/>
+        <location filename="../UI/UserInterface.py" line="6648"/>
         <source>Save session</source>
         <translation>Enregistrer la session</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6618"/>
+        <location filename="../UI/UserInterface.py" line="6632"/>
         <source>Read session</source>
         <translation>Chargement de session</translation>
     </message>
@@ -76982,12 +77122,12 @@
         <translation>&lt;b&gt;Afficher/Masquer la barre d&apos;outils horizontale&lt;/b&gt;&lt;p&gt;Affiche ou masque la barre d&apos;outils horizontale, selon.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="3989"/>
+        <location filename="../UI/UserInterface.py" line="4003"/>
         <source>Restart application</source>
         <translation>Redémarrage de l&apos;application</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="3989"/>
+        <location filename="../UI/UserInterface.py" line="4003"/>
         <source>The application needs to be restarted. Do it now?</source>
         <translation>L&apos;application a bersoin d&apos;être relancée. Relancer maintenant ?</translation>
     </message>
@@ -77137,7 +77277,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5048"/>
+        <location filename="../UI/UserInterface.py" line="5062"/>
         <source>Qt 3 support</source>
         <translation type="unfinished"></translation>
     </message>
@@ -77177,104 +77317,104 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5229"/>
+        <location filename="../UI/UserInterface.py" line="5243"/>
         <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; does not exist or is zero length.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4948"/>
+        <location filename="../UI/UserInterface.py" line="4962"/>
         <source>&lt;p&gt;Could not start Qt-Designer.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5020"/>
+        <location filename="../UI/UserInterface.py" line="5034"/>
         <source>&lt;p&gt;Could not start Qt-Linguist.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5073"/>
+        <location filename="../UI/UserInterface.py" line="5087"/>
         <source>&lt;p&gt;Could not start Qt-Assistant.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5115"/>
+        <location filename="../UI/UserInterface.py" line="5129"/>
         <source>&lt;p&gt;Could not start custom viewer.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5185"/>
+        <location filename="../UI/UserInterface.py" line="5199"/>
         <source>&lt;p&gt;Could not start UI Previewer.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5242"/>
+        <location filename="../UI/UserInterface.py" line="5256"/>
         <source>&lt;p&gt;Could not start Translation Previewer.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5265"/>
+        <location filename="../UI/UserInterface.py" line="5279"/>
         <source>&lt;p&gt;Could not start SQL Browser.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5360"/>
+        <location filename="../UI/UserInterface.py" line="5374"/>
         <source>No tool entry found for external tool &apos;{0}&apos; in tool group &apos;{1}&apos;.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5369"/>
+        <location filename="../UI/UserInterface.py" line="5383"/>
         <source>No toolgroup entry &apos;{0}&apos; found.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5408"/>
+        <location filename="../UI/UserInterface.py" line="5422"/>
         <source>Starting process &apos;{0} {1}&apos;.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5424"/>
+        <location filename="../UI/UserInterface.py" line="5438"/>
         <source>&lt;p&gt;Could not start the tool entry &lt;b&gt;{0}&lt;/b&gt;.&lt;br&gt;Ensure that it is available as &lt;b&gt;{1}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5502"/>
+        <location filename="../UI/UserInterface.py" line="5516"/>
         <source>Process &apos;{0}&apos; has exited.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5905"/>
+        <location filename="../UI/UserInterface.py" line="5919"/>
         <source>&lt;p&gt;The documentation starting point &quot;&lt;b&gt;{0}&lt;/b&gt;&quot; could not be found.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6509"/>
+        <location filename="../UI/UserInterface.py" line="6523"/>
         <source>&lt;p&gt;The tasks file &lt;b&gt;{0}&lt;/b&gt; could not be written.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6538"/>
+        <location filename="../UI/UserInterface.py" line="6552"/>
         <source>&lt;p&gt;The tasks file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6572"/>
+        <location filename="../UI/UserInterface.py" line="6586"/>
         <source>&lt;p&gt;The session file &lt;b&gt;{0}&lt;/b&gt; could not be written.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6618"/>
+        <location filename="../UI/UserInterface.py" line="6632"/>
         <source>&lt;p&gt;The session file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6902"/>
+        <location filename="../UI/UserInterface.py" line="6916"/>
         <source>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; is not a file.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7096"/>
+        <location filename="../UI/UserInterface.py" line="7110"/>
         <source>Trying host {0}</source>
         <translation type="unfinished"></translation>
     </message>
@@ -77309,7 +77449,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6339"/>
+        <location filename="../UI/UserInterface.py" line="6353"/>
         <source>Keyboard shortcut file (*.e4k)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -77349,17 +77489,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7162"/>
+        <location filename="../UI/UserInterface.py" line="7176"/>
         <source>Error getting versions information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7155"/>
+        <location filename="../UI/UserInterface.py" line="7169"/>
         <source>The versions information could not be downloaded. Please go online and try again.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7162"/>
+        <location filename="../UI/UserInterface.py" line="7176"/>
         <source>The versions information could not be downloaded for the last 7 days. Please go online and try again.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -77445,12 +77585,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5337"/>
+        <location filename="../UI/UserInterface.py" line="5351"/>
         <source>&lt;p&gt;Could not start Snapshot tool.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7368"/>
+        <location filename="../UI/UserInterface.py" line="7382"/>
         <source>Select Workspace Directory</source>
         <translation type="unfinished"></translation>
     </message>
@@ -77815,7 +77955,7 @@
         <translation type="unfinished">Lance la documentation PyQt4 {5 ?}</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5775"/>
+        <location filename="../UI/UserInterface.py" line="5789"/>
         <source>&lt;p&gt;The PyQt5 documentation starting point has not been configured.&lt;/p&gt;</source>
         <translation type="unfinished">&lt;p&gt;L&apos;emplacement de la documentation PyQt4 n&apos;a pas été configuré.&lt;/p&gt; {5 ?}</translation>
     </message>
@@ -77825,7 +77965,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7087"/>
+        <location filename="../UI/UserInterface.py" line="7101"/>
         <source>%v/%m</source>
         <translation type="unfinished"></translation>
     </message>
@@ -77845,7 +77985,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7091"/>
+        <location filename="../UI/UserInterface.py" line="7105"/>
         <source>Version Check</source>
         <translation type="unfinished"></translation>
     </message>
@@ -77915,27 +78055,27 @@
         <translation type="unfinished">&lt;b&gt;Documentation de l&apos;API Eric&lt;/b&gt;&lt;p&gt;Affiche la do. The location for the documentation is the Documentation/Source subdirectory of the eric4 installation directory.&lt;/p&gt; {5 ?} {6 ?}</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5048"/>
+        <location filename="../UI/UserInterface.py" line="5062"/>
         <source>Qt v.3 is not supported by eric6.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7254"/>
+        <location filename="../UI/UserInterface.py" line="7268"/>
         <source>The update to &lt;b&gt;{0}&lt;/b&gt; of eric6 is available at &lt;b&gt;{1}&lt;/b&gt;. Would you like to get it?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7266"/>
+        <location filename="../UI/UserInterface.py" line="7280"/>
         <source>Eric6 is up to date</source>
         <translation type="unfinished">Eric4 est à jour {5 ?} {6 ?}</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7266"/>
+        <location filename="../UI/UserInterface.py" line="7280"/>
         <source>You are using the latest version of eric6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7349"/>
+        <location filename="../UI/UserInterface.py" line="7363"/>
         <source>eric6 has not been configured yet. The configuration dialog will be started.</source>
         <translation type="unfinished">eric4 n&apos;a pas encore été configuré. La fenêtre de configuration va être ouverte. {5 ?} {6 ?}</translation>
     </message>
@@ -77945,17 +78085,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4045"/>
+        <location filename="../UI/UserInterface.py" line="4059"/>
         <source>&amp;User Tools</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4117"/>
+        <location filename="../UI/UserInterface.py" line="4131"/>
         <source>No User Tools Configured</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7107"/>
+        <location filename="../UI/UserInterface.py" line="7121"/>
         <source>The versions information cannot not be downloaded because you are &lt;b&gt;offline&lt;/b&gt;. Please go online and try again.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -78000,7 +78140,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6656"/>
+        <location filename="../UI/UserInterface.py" line="6670"/>
         <source>Load session</source>
         <translation type="unfinished">Charger la session</translation>
     </message>
@@ -78015,17 +78155,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6656"/>
+        <location filename="../UI/UserInterface.py" line="6670"/>
         <source>eric6 Session Files (*.e5s)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6707"/>
+        <location filename="../UI/UserInterface.py" line="6721"/>
         <source>Crash Session found!</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6707"/>
+        <location filename="../UI/UserInterface.py" line="6721"/>
         <source>A session file of a crashed session was found. Shall this session be restored?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -78040,17 +78180,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7242"/>
+        <location filename="../UI/UserInterface.py" line="7256"/>
         <source>Update Check</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7242"/>
+        <location filename="../UI/UserInterface.py" line="7256"/>
         <source>You installed eric directly from the source code. There is no possibility to check for the availability of an update.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7232"/>
+        <location filename="../UI/UserInterface.py" line="7246"/>
         <source>You are using a snapshot release of eric6. A more up-to-date stable release might be available.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -78105,7 +78245,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5888"/>
+        <location filename="../UI/UserInterface.py" line="5902"/>
         <source>&lt;p&gt;The PySide{0} documentation starting point has not been configured.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -78181,17 +78321,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6062"/>
+        <location filename="../UI/UserInterface.py" line="6076"/>
         <source>Start Web Browser</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6001"/>
+        <location filename="../UI/UserInterface.py" line="6015"/>
         <source>The eric6 web browser could not be started.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6062"/>
+        <location filename="../UI/UserInterface.py" line="6076"/>
         <source>&lt;p&gt;The eric6 web browser is not started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -78285,6 +78425,11 @@
         <source>Central Park</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../UI/UserInterface.py" line="3650"/>
+        <source>&lt;h2&gt;Version Numbers&lt;/h2&gt;&lt;table&gt;</source>
+        <translation type="unfinished">&lt;h3&gt;Numéros de version&lt;/h3&gt;&lt;table&gt; {2&gt;?} {2&gt;?}</translation>
+    </message>
 </context>
 <context>
     <name>UserPropertiesDialog</name>
@@ -78542,7 +78687,7 @@
 <context>
     <name>VariableItem</name>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="207"/>
+        <location filename="../Debugger/VariablesViewer.py" line="211"/>
         <source>&lt;double click to show value&gt;</source>
         <translation>&lt;double-cliquer pour afficher la valeur&gt;</translation>
     </message>
@@ -78627,22 +78772,22 @@
 <context>
     <name>VariablesModel</name>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="278"/>
+        <location filename="../Debugger/VariablesViewer.py" line="282"/>
         <source>Globals</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="280"/>
+        <location filename="../Debugger/VariablesViewer.py" line="284"/>
         <source>Locals</source>
         <translation type="unfinished">Locales</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="282"/>
+        <location filename="../Debugger/VariablesViewer.py" line="286"/>
         <source>Type</source>
         <translation type="unfinished">Type</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="282"/>
+        <location filename="../Debugger/VariablesViewer.py" line="286"/>
         <source>Value</source>
         <translation type="unfinished">Valeur</translation>
     </message>
@@ -78650,7 +78795,7 @@
 <context>
     <name>VariablesViewer</name>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="951"/>
+        <location filename="../Debugger/VariablesViewer.py" line="955"/>
         <source>Global Variables</source>
         <translation>Variables globales</translation>
     </message>
@@ -78660,12 +78805,12 @@
         <translation type="obsolete">Globales</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="952"/>
+        <location filename="../Debugger/VariablesViewer.py" line="956"/>
         <source>&lt;b&gt;The Global Variables Viewer Window&lt;/b&gt;&lt;p&gt;This window displays the global variables of the debugged program.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Fenêtre de visualisation des variables globales&lt;/b&gt;&lt;p&gt;Cette fenêtre affiche les variables globales du programme débogué.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="958"/>
+        <location filename="../Debugger/VariablesViewer.py" line="962"/>
         <source>Local Variables</source>
         <translation>Variables locales</translation>
     </message>
@@ -78675,7 +78820,7 @@
         <translation type="obsolete">Locales</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="959"/>
+        <location filename="../Debugger/VariablesViewer.py" line="963"/>
         <source>&lt;b&gt;The Local Variables Viewer Window&lt;/b&gt;&lt;p&gt;This window displays the local variables of the debugged program.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Fenêtre de visualisation des variables locales&lt;/b&gt;&lt;p&gt;Cette fenêtre affiche les variables locales du programme débogué.&lt;/p&gt;</translation>
     </message>
@@ -78690,12 +78835,12 @@
         <translation type="obsolete">Type</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1076"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1080"/>
         <source>Show Details...</source>
         <translation>Afficher les détails...</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1091"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1095"/>
         <source>Configure...</source>
         <translation>Configuration...</translation>
     </message>
@@ -78705,7 +78850,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1089"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1093"/>
         <source>Refresh</source>
         <translation type="unfinished">Rafraichir</translation>
     </message>
@@ -78715,25 +78860,30 @@
         <translation type="obsolete">Tout contracter</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1078"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1082"/>
         <source>Expand</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1079"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1083"/>
         <source>Collapse</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1080"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1084"/>
         <source>Collapse All</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1092"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1096"/>
         <source>Variables Type Filter...</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../Debugger/VariablesViewer.py" line="47"/>
+        <source>unsized</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>VcsCommandOptionsDialog</name>
--- a/eric6/i18n/eric6_it.ts	Fri Nov 01 16:11:55 2019 +0100
+++ b/eric6/i18n/eric6_it.ts	Sun Dec 01 16:38:47 2019 +0100
@@ -47581,43 +47581,78 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.py" line="39"/>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.py" line="42"/>
         <source>All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="255"/>
+        <source>Documentation</source>
+        <translation type="unfinished">Documentazione</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="261"/>
+        <source>MicroPython:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="268"/>
+        <source>Enter the URL for the MicroPython documentation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="275"/>
+        <source>CircuitPython:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="282"/>
+        <source>Enter the URL for the CircuitPython documentation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="289"/>
+        <source>BBC micro:bit:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="296"/>
+        <source>Enter the URL for the BBC micro:bit MicroPython documentation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="172"/>
-        <source>Documentation</source>
-        <translation type="unfinished">Documentazione</translation>
+        <source>PyBoard</source>
+        <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="178"/>
-        <source>MicroPython:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="185"/>
-        <source>Enter the URL for the MicroPython documentation</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="192"/>
-        <source>CircuitPython:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="199"/>
-        <source>Enter the URL for the CircuitPython documentation</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="206"/>
-        <source>BBC micro:bit:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="213"/>
-        <source>Enter the URL for the BBC micro:bit MicroPython documentation</source>
+        <source>dfu-util Path:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="194"/>
+        <source>Enter the path of the dfu-util flashing executable</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="204"/>
+        <source>Firmware</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="217"/>
+        <source>Enter the URL for the MicroPython firmware for PyBoard, ESP8266 and ESP32</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="231"/>
+        <source>Enter the URL for the CircuitPython firmware</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="245"/>
+        <source>Enter the URL for the BBC micro:bit Firmware</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -47814,7 +47849,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1202"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1210"/>
         <source>Synchronize Time</source>
         <translation type="unfinished"></translation>
     </message>
@@ -47829,107 +47864,107 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1366"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1421"/>
         <source>Compile Python File</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1386"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1441"/>
         <source>Compile Current Editor</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1140"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1148"/>
         <source>&lt;h3&gt;Device Version Information&lt;/h3&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1149"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1157"/>
         <source>No version information available.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1151"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1159"/>
         <source>Device Version Information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1174"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1182"/>
         <source>unknown</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1178"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1186"/>
         <source>Device Implementation Information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1178"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1186"/>
         <source>&lt;h3&gt;Device Implementation Information&lt;/h3&gt;&lt;p&gt;This device contains &lt;b&gt;{0} {1}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1202"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1210"/>
         <source>&lt;p&gt;The time of the connected device was synchronized with the local time.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1224"/>
-        <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../MicroPython/MicroPythonWidget.py" line="1232"/>
+        <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1240"/>
         <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;p&gt;{0}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1246"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1254"/>
         <source>Device Date and Time</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1259"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1267"/>
         <source>Local Date and Time</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1259"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1267"/>
         <source>&lt;h3&gt;Local Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1279"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1334"/>
         <source>Error handling device</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1279"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1334"/>
         <source>&lt;p&gt;There was an error communicating with the connected device.&lt;/p&gt;&lt;p&gt;Method: {0}&lt;/p&gt;&lt;p&gt;Message: {1}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1318"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1373"/>
         <source>The MicroPython cross compiler &lt;b&gt;mpy-cross&lt;/b&gt; cannot be found. Ensure it is in the search path or configure it on the MicroPython configuration page.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1336"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1391"/>
         <source>Python Files (*.py);;All Files (*)</source>
         <translation type="unfinished">File Python (*.py);;Tutti i File (*)</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1346"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1401"/>
         <source>The Python file &lt;b&gt;{0}&lt;/b&gt; does not exist. Aborting...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1356"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1411"/>
         <source>&apos;mpy-cross&apos; Output</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1379"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1434"/>
         <source>The current editor does not contain a Python file. Aborting...</source>
         <translation type="unfinished"></translation>
     </message>
@@ -47954,14 +47989,39 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1126"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1134"/>
         <source>Show Documentation</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1138"/>
+        <source>Configure</source>
+        <translation type="unfinished">Configura</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1113"/>
+        <source>Show Time</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../MicroPython/MicroPythonWidget.py" line="1130"/>
-        <source>Configure</source>
-        <translation type="unfinished">Configura</translation>
+        <source>Download Firmware</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1310"/>
+        <source>Date and Time</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1293"/>
+        <source>&lt;table&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;Local Date and Time&lt;/th&gt;&lt;th&gt;Device Date and Time&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{0}&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{1}&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1310"/>
+        <source>&lt;table&gt;&lt;tr&gt;&lt;th&gt;Local Date and Time&lt;/th&gt;&lt;th&gt;Device Date and Time&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&apos;center&apos;&gt;{0} {1}&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -53429,17 +53489,17 @@
 <context>
     <name>Preferences</name>
     <message>
-        <location filename="../Preferences/__init__.py" line="1606"/>
+        <location filename="../Preferences/__init__.py" line="1610"/>
         <source>Export Preferences</source>
         <translation>Esporta Preferenze</translation>
     </message>
     <message>
-        <location filename="../Preferences/__init__.py" line="1634"/>
+        <location filename="../Preferences/__init__.py" line="1638"/>
         <source>Import Preferences</source>
         <translation>Importa Preferenze</translation>
     </message>
     <message>
-        <location filename="../Preferences/__init__.py" line="1634"/>
+        <location filename="../Preferences/__init__.py" line="1638"/>
         <source>Properties File (*.ini);;All Files (*)</source>
         <translation>File proprietà (*.ini);;Tutti i file(*)</translation>
     </message>
@@ -53782,22 +53842,22 @@
         <translation>Compilatore CORBA IDL</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="361"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="378"/>
         <source>(not configured)</source>
         <translation>(non configurato)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="415"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="432"/>
         <source>(not executable)</source>
         <translation>(non eseguibile)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="452"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="469"/>
         <source>(not found)</source>
         <translation>(non trovato)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="413"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="430"/>
         <source>(unknown)</source>
         <translation>(sconosciuto)</translation>
     </message>
@@ -53887,7 +53947,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="394"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="411"/>
         <source>(module not found)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -53916,6 +53976,21 @@
         <source>PyPI Package Management</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="297"/>
+        <source>MicroPython - MPY Cross Compiler</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="300"/>
+        <source>MicroPython - ESP Tool</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="306"/>
+        <source>MicroPython - PyBoard Flasher</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>Project</name>
@@ -57444,23 +57519,88 @@
 <context>
     <name>PyBoardDevice</name>
     <message>
-        <location filename="../MicroPython/PyBoardDevices.py" line="70"/>
+        <location filename="../MicroPython/PyBoardDevices.py" line="75"/>
         <source>PyBoard</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/PyBoardDevices.py" line="159"/>
+        <location filename="../MicroPython/PyBoardDevices.py" line="164"/>
         <source>Workspace Directory</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/PyBoardDevices.py" line="159"/>
+        <location filename="../MicroPython/PyBoardDevices.py" line="164"/>
         <source>Python files for PyBoard devices are stored on the device. Therefore, to edit these files you need to have the device plugged in. Until you plug in a device, the standard directory will be used.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/PyBoardDevices.py" line="186"/>
-        <source>MicroPython Install Instructions</source>
+        <location filename="../MicroPython/PyBoardDevices.py" line="202"/>
+        <source>List DFU-capable Devices</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="356"/>
+        <source>Flash MicroPython Firmware</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="209"/>
+        <source>MicroPython Flash Instructions</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="239"/>
+        <source>dfu-util not available</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="239"/>
+        <source>The dfu-util firmware flashing tool &lt;b&gt;dfu-util&lt;/b&gt; cannot be found or is not executable. Ensure it is in the search path or configure it on the MicroPython configuration page.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="260"/>
+        <source>&lt;h3&gt;Enable DFU Mode&lt;/h3&gt;&lt;p&gt;1. Disconnect everything from your board&lt;/p&gt;&lt;p&gt;2. Disconnect your board&lt;/p&gt;&lt;p&gt;3. Connect the DFU/BOOT0 pin with a 3.3V pin&lt;/p&gt;&lt;p&gt;4. Re-connect your board&lt;/p&gt;&lt;hr /&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="270"/>
+        <source>&lt;p&gt;&lt;b&gt;Warning:&lt;/b&gt; Make sure that all other DFU capable devices except your PyBoard are disconnected.&lt;hr /&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="276"/>
+        <source>&lt;p&gt;Press &lt;b&gt;OK&lt;/b&gt; to continue...&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="279"/>
+        <source>Enable DFU mode</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="293"/>
+        <source>&lt;h3&gt;Disable DFU Mode&lt;/h3&gt;&lt;p&gt;1. Disconnect your board&lt;/p&gt;&lt;p&gt;2. Remove the DFU jumper&lt;/p&gt;&lt;p&gt;3. Re-connect your board&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;Press &lt;b&gt;OK&lt;/b&gt; to continue...&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="301"/>
+        <source>Disable DFU mode</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="356"/>
+        <source>&apos;dfu-util&apos; Output</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="322"/>
+        <source>List DFU capable Devices</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="344"/>
+        <source>MicroPython Firmware Files (*.dfu);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -78361,7 +78501,7 @@
         <translation>&lt;b&gt;Mostra versioni&lt;/b&gt;&lt;p&gt;Mostra delle informazioni sulla versione.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="3709"/>
+        <location filename="../UI/UserInterface.py" line="3723"/>
         <source>Report Bug</source>
         <translation>Segnala Bug</translation>
     </message>
@@ -78436,7 +78576,7 @@
         <translation>&lt;b&gt;Scorciatoie da tastiera&lt;/b&gt;&lt;p&gt;Imposta le scorciatoie da tastiera dell&apos;applicazione con i valori personalizzati.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6315"/>
+        <location filename="../UI/UserInterface.py" line="6329"/>
         <source>Export Keyboard Shortcuts</source>
         <translation>Esporta scorciatoie da tastiera</translation>
     </message>
@@ -78456,7 +78596,7 @@
         <translation>&lt;b&gt;Esporta scorciatoie da tastiera&lt;/b&gt;&lt;p&gt;Esporta le scorciatoie da tastiera dell&apos;applicazione.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6339"/>
+        <location filename="../UI/UserInterface.py" line="6353"/>
         <source>Import Keyboard Shortcuts</source>
         <translation>Importa scorciatoie da tastiera</translation>
     </message>
@@ -78496,7 +78636,7 @@
         <translation>Strumenti</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5101"/>
+        <location filename="../UI/UserInterface.py" line="5115"/>
         <source>Help</source>
         <translation>Aiuto</translation>
     </message>
@@ -78511,12 +78651,12 @@
         <translation>&amp;Toolbar</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5229"/>
+        <location filename="../UI/UserInterface.py" line="5243"/>
         <source>Problem</source>
         <translation>Problema</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5424"/>
+        <location filename="../UI/UserInterface.py" line="5438"/>
         <source>Process Generation Error</source>
         <translation>Errore Generazione Processo</translation>
     </message>
@@ -78631,7 +78771,7 @@
         <translation type="obsolete">Non c&apos;è uno script principale definito per il progetto. Esco</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6902"/>
+        <location filename="../UI/UserInterface.py" line="6916"/>
         <source>Drop Error</source>
         <translation>Errore Drop</translation>
     </message>
@@ -78766,27 +78906,27 @@
         <translation>Task-Viewer</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6509"/>
+        <location filename="../UI/UserInterface.py" line="6523"/>
         <source>Save tasks</source>
         <translation>Salva task</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6538"/>
+        <location filename="../UI/UserInterface.py" line="6552"/>
         <source>Read tasks</source>
         <translation>Leggi task</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5101"/>
+        <location filename="../UI/UserInterface.py" line="5115"/>
         <source>Currently no custom viewer is selected. Please use the preferences dialog to specify one.</source>
         <translation>Attualmente nessun visualizzatore personalizzato è selezionato. Per favore usa il dialogo delle preferenze per specificarne uno.</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5905"/>
+        <location filename="../UI/UserInterface.py" line="5919"/>
         <source>Documentation Missing</source>
         <translation>Documentazione mancante</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="3709"/>
+        <location filename="../UI/UserInterface.py" line="3723"/>
         <source>Email address or mail server address is empty. Please configure your Email settings in the Preferences Dialog.</source>
         <translation>L&apos;indirizzo di posta o il server si posta sono vuoti. Per cortesia configura le opzioni per l&apos;Email nel dialogo delle preferenze.</translation>
     </message>
@@ -78881,7 +79021,7 @@
         <translation>Apri documentazione API di Eric</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5135"/>
+        <location filename="../UI/UserInterface.py" line="5149"/>
         <source>&lt;p&gt;Could not start the help viewer.&lt;br&gt;Ensure that it is available as &lt;b&gt;hh&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Non posso avviare il visualizzatore di help.&lt;br&gt;Assicurarsi che sia disponibile come &lt;b&gt;hh&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
@@ -78957,47 +79097,47 @@
         <translation>Profili</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4025"/>
+        <location filename="../UI/UserInterface.py" line="4039"/>
         <source>&amp;Builtin Tools</source>
         <translation>Tool &amp;Builtin</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5888"/>
+        <location filename="../UI/UserInterface.py" line="5902"/>
         <source>Documentation</source>
         <translation>Documentazione</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5713"/>
+        <location filename="../UI/UserInterface.py" line="5727"/>
         <source>&lt;p&gt;The PyQt4 documentation starting point has not been configured.&lt;/p&gt;</source>
         <translation type="unfinished">&lt;p&gt;L&apos;inizio della documentazione di PySide non è stato configurato.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7273"/>
+        <location filename="../UI/UserInterface.py" line="7287"/>
         <source>Error during updates check</source>
         <translation>Errore nel controllo per gli update</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7254"/>
+        <location filename="../UI/UserInterface.py" line="7268"/>
         <source>Update available</source>
         <translation>Aggiornamento disponibile</translation>
     </message>
     <message>
         <location filename="../UI/UserInterface.py" line="3650"/>
         <source>&lt;h3&gt;Version Numbers&lt;/h3&gt;&lt;table&gt;</source>
-        <translation>&lt;h3&gt;Numeri di versione&lt;/h3&gt;&lt;table&gt;</translation>
-    </message>
-    <message>
-        <location filename="../UI/UserInterface.py" line="7312"/>
+        <translation type="obsolete">&lt;h3&gt;Numeri di versione&lt;/h3&gt;&lt;table&gt;</translation>
+    </message>
+    <message>
+        <location filename="../UI/UserInterface.py" line="7326"/>
         <source>&lt;/table&gt;</source>
         <translation>&lt;/table&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4070"/>
+        <location filename="../UI/UserInterface.py" line="4084"/>
         <source>Configure Tool Groups ...</source>
         <translation>Configura Tools Groups...</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4074"/>
+        <location filename="../UI/UserInterface.py" line="4088"/>
         <source>Configure current Tool Group ...</source>
         <translation>Configura Tools Groups correnti...</translation>
     </message>
@@ -79012,17 +79152,17 @@
         <translation>Mostra toll &amp;esterni</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7087"/>
+        <location filename="../UI/UserInterface.py" line="7101"/>
         <source>&amp;Cancel</source>
         <translation>&amp;Cancella</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7273"/>
+        <location filename="../UI/UserInterface.py" line="7287"/>
         <source>Could not perform updates check.</source>
         <translation>Non posso controllare per gli update.</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7349"/>
+        <location filename="../UI/UserInterface.py" line="7363"/>
         <source>First time usage</source>
         <translation>Primo avvio</translation>
     </message>
@@ -79062,7 +79202,7 @@
         <translation>Informazioni su &amp;Plugin...</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4042"/>
+        <location filename="../UI/UserInterface.py" line="4056"/>
         <source>&amp;Plugin Tools</source>
         <translation>Informazioni sui &amp;Plugin Tools</translation>
     </message>
@@ -79092,12 +79232,12 @@
         <translation>Wi&amp;zards</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4190"/>
+        <location filename="../UI/UserInterface.py" line="4204"/>
         <source>&amp;Show all</source>
         <translation>Mo&amp;stra tutti</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4192"/>
+        <location filename="../UI/UserInterface.py" line="4206"/>
         <source>&amp;Hide all</source>
         <translation>Nascondi &amp;tutti</translation>
     </message>
@@ -79117,7 +79257,7 @@
         <translation>Mostra le versioni disponibili per il download</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7297"/>
+        <location filename="../UI/UserInterface.py" line="7311"/>
         <source>&lt;h3&gt;Available versions&lt;/h3&gt;&lt;table&gt;</source>
         <translation>&lt;h3&gt;Versioni disponibili&lt;/h3&gt;&lt;table&gt;</translation>
     </message>
@@ -79207,17 +79347,17 @@
         <translation>&amp;Multiproject-Viewer</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5369"/>
+        <location filename="../UI/UserInterface.py" line="5383"/>
         <source>External Tools</source>
         <translation>Tool esterni</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6634"/>
+        <location filename="../UI/UserInterface.py" line="6648"/>
         <source>Save session</source>
         <translation>Salva sessione</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6618"/>
+        <location filename="../UI/UserInterface.py" line="6632"/>
         <source>Read session</source>
         <translation>Leggi sessione</translation>
     </message>
@@ -79292,12 +79432,12 @@
         <translation>&lt;b&gt;Abilita/Disabilita la finestra della toolbox orizzontale&lt;/b&gt;&lt;p&gt;Se la finestra della toolbox orizzontale è nascosta verrà mostrata. Se è mostrata verrà chiusa.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="3989"/>
+        <location filename="../UI/UserInterface.py" line="4003"/>
         <source>Restart application</source>
         <translation>Riavvia applicazione</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="3989"/>
+        <location filename="../UI/UserInterface.py" line="4003"/>
         <source>The application needs to be restarted. Do it now?</source>
         <translation>L&apos;applicazione necessita di un riavvio. Farlo ora ?</translation>
     </message>
@@ -79447,7 +79587,7 @@
         <translation>Editor di &amp;icone...</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5048"/>
+        <location filename="../UI/UserInterface.py" line="5062"/>
         <source>Qt 3 support</source>
         <translation>Supporto Qt3</translation>
     </message>
@@ -79487,105 +79627,105 @@
         <translation>Tool Esterni/{0}</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5229"/>
+        <location filename="../UI/UserInterface.py" line="5243"/>
         <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; does not exist or is zero length.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Il file &lt;b&gt;{0}&lt;/b&gt; non esiste o ha lunghezza zero.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4948"/>
+        <location filename="../UI/UserInterface.py" line="4962"/>
         <source>&lt;p&gt;Could not start Qt-Designer.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Non posso avviare Qt-Designer.&lt;br&gt;Assicurarsi che sia disponibile come &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5020"/>
+        <location filename="../UI/UserInterface.py" line="5034"/>
         <source>&lt;p&gt;Could not start Qt-Linguist.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Non posso avviare Qt-Linguist.&lt;br&gt;Assicurarsi che sia disponibile come &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5073"/>
+        <location filename="../UI/UserInterface.py" line="5087"/>
         <source>&lt;p&gt;Could not start Qt-Assistant.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Non posso avviare Qt-Assistant.&lt;br&gt;Assicurarsi che sia disponibile come &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5115"/>
+        <location filename="../UI/UserInterface.py" line="5129"/>
         <source>&lt;p&gt;Could not start custom viewer.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Non posso avviare il visualizzatore personalizzato.&lt;br&gt;Assicurarsi che sia disponibile come &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5185"/>
+        <location filename="../UI/UserInterface.py" line="5199"/>
         <source>&lt;p&gt;Could not start UI Previewer.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Non posso avviare UI Previewer.&lt;br&gt;Assicurarsi che sia disponibile come &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5242"/>
+        <location filename="../UI/UserInterface.py" line="5256"/>
         <source>&lt;p&gt;Could not start Translation Previewer.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Non posso avviare l&apos;anteprima delle traduzioni.&lt;br&gt;Assicurarsi che sia disponibile come &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5265"/>
+        <location filename="../UI/UserInterface.py" line="5279"/>
         <source>&lt;p&gt;Could not start SQL Browser.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Non posso avviare SQL Browser.&lt;br&gt;Assicurarsi che sia disponibile come &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5360"/>
+        <location filename="../UI/UserInterface.py" line="5374"/>
         <source>No tool entry found for external tool &apos;{0}&apos; in tool group &apos;{1}&apos;.</source>
         <translation>Nessun elemento per il tool esterno &apos;{0}&apos; trovato nel gruppo &apos;{1}&apos;.</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5369"/>
+        <location filename="../UI/UserInterface.py" line="5383"/>
         <source>No toolgroup entry &apos;{0}&apos; found.</source>
         <translation>Nessun gruppo &apos;{0}&apos; trovato.</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5408"/>
+        <location filename="../UI/UserInterface.py" line="5422"/>
         <source>Starting process &apos;{0} {1}&apos;.
 </source>
         <translation>Avvio processo &apos;{0} {1}&apos;.
 </translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5424"/>
+        <location filename="../UI/UserInterface.py" line="5438"/>
         <source>&lt;p&gt;Could not start the tool entry &lt;b&gt;{0}&lt;/b&gt;.&lt;br&gt;Ensure that it is available as &lt;b&gt;{1}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Non posso avviare l&apos;elemento degli strumenti &lt;b&gt;{0}&lt;/b&gt;.&lt;br&gt;Assicurarsi che sia disponibile come &lt;b&gt;{1}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5502"/>
+        <location filename="../UI/UserInterface.py" line="5516"/>
         <source>Process &apos;{0}&apos; has exited.
 </source>
         <translation>Il processo &apos;{0}&apos; è terminato.</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5905"/>
+        <location filename="../UI/UserInterface.py" line="5919"/>
         <source>&lt;p&gt;The documentation starting point &quot;&lt;b&gt;{0}&lt;/b&gt;&quot; could not be found.&lt;/p&gt;</source>
         <translation>&lt;p&gt;L&apos;inizio della documentazione &quot;&lt;b&gt;{0}&lt;/b&gt;&quot; non viene trovato.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6509"/>
+        <location filename="../UI/UserInterface.py" line="6523"/>
         <source>&lt;p&gt;The tasks file &lt;b&gt;{0}&lt;/b&gt; could not be written.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Il file task &lt;b&gt;{0}&lt;/b&gt; non può essere scritto.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6538"/>
+        <location filename="../UI/UserInterface.py" line="6552"/>
         <source>&lt;p&gt;The tasks file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Il file task &lt;b&gt;{0}&lt;/b&gt; non può essere letto.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6572"/>
+        <location filename="../UI/UserInterface.py" line="6586"/>
         <source>&lt;p&gt;The session file &lt;b&gt;{0}&lt;/b&gt; could not be written.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Il file sessione &lt;b&gt;{0}&lt;/b&gt; non può essere scritto.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6618"/>
+        <location filename="../UI/UserInterface.py" line="6632"/>
         <source>&lt;p&gt;The session file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Il file sessione &lt;b&gt;{0}&lt;/b&gt; non può essere letto.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6902"/>
+        <location filename="../UI/UserInterface.py" line="6916"/>
         <source>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; is not a file.&lt;/p&gt;</source>
         <translation>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; non è un file.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7096"/>
+        <location filename="../UI/UserInterface.py" line="7110"/>
         <source>Trying host {0}</source>
         <translation>Tento su host {0}</translation>
     </message>
@@ -79620,7 +79760,7 @@
         <translation>Alt+Shift+B</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6339"/>
+        <location filename="../UI/UserInterface.py" line="6353"/>
         <source>Keyboard shortcut file (*.e4k)</source>
         <translation>File scorciatoi tastiera (*.e4k)</translation>
     </message>
@@ -79660,27 +79800,27 @@
         <translation>&lt;b&gt;Documentazione Python 2&lt;/b&gt;&lt;p&gt;Mostra la documentazione Python 2. Se non è configurata una directory per la documentazione, viene assunto che la posizione della documentazione sia nella directory doc nella locazione dell&apos;eseguibile Python 2 su Windows e &lt;i&gt;/usr/share/doc/packages/python/html&lt;/i&gt; su Unix. Imposta PYTHONDOCDIR2 nel tuo ambiente per sovrascrivere questi valori.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7162"/>
+        <location filename="../UI/UserInterface.py" line="7176"/>
         <source>Error getting versions information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7155"/>
+        <location filename="../UI/UserInterface.py" line="7169"/>
         <source>The versions information could not be downloaded. Please go online and try again.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6107"/>
+        <location filename="../UI/UserInterface.py" line="6121"/>
         <source>Open Browser</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6107"/>
+        <location filename="../UI/UserInterface.py" line="6121"/>
         <source>Could not start a web browser</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7162"/>
+        <location filename="../UI/UserInterface.py" line="7176"/>
         <source>The versions information could not be downloaded for the last 7 days. Please go online and try again.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -79766,12 +79906,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5337"/>
+        <location filename="../UI/UserInterface.py" line="5351"/>
         <source>&lt;p&gt;Could not start Snapshot tool.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7368"/>
+        <location filename="../UI/UserInterface.py" line="7382"/>
         <source>Select Workspace Directory</source>
         <translation type="unfinished">Seleziona cartella di lavoro</translation>
     </message>
@@ -80136,7 +80276,7 @@
         <translation type="unfinished">Apri documentazione su PyQt4 {5 ?}</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5775"/>
+        <location filename="../UI/UserInterface.py" line="5789"/>
         <source>&lt;p&gt;The PyQt5 documentation starting point has not been configured.&lt;/p&gt;</source>
         <translation type="unfinished">&lt;p&gt;L&apos;inizio della documentazione di PyQt4 non è stato configurato.&lt;/p&gt; {5 ?}</translation>
     </message>
@@ -80146,7 +80286,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7087"/>
+        <location filename="../UI/UserInterface.py" line="7101"/>
         <source>%v/%m</source>
         <translation type="unfinished"></translation>
     </message>
@@ -80166,7 +80306,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7091"/>
+        <location filename="../UI/UserInterface.py" line="7105"/>
         <source>Version Check</source>
         <translation type="unfinished"></translation>
     </message>
@@ -80236,27 +80376,27 @@
         <translation type="unfinished">&lt;b&gt;Documentazione API Eric&lt;/b&gt;&lt;p&gt;Mostra la documentazione delle API di Eric. La posizione della documentazione è la subdirectory Documentation/Source della directory in cui è installato eric6.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5048"/>
+        <location filename="../UI/UserInterface.py" line="5062"/>
         <source>Qt v.3 is not supported by eric6.</source>
         <translation type="unfinished">Le Qt v.3 non sono supportate da eric6.</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7254"/>
+        <location filename="../UI/UserInterface.py" line="7268"/>
         <source>The update to &lt;b&gt;{0}&lt;/b&gt; of eric6 is available at &lt;b&gt;{1}&lt;/b&gt;. Would you like to get it?</source>
         <translation type="unfinished">L&apos;update alla versione &lt;b&gt;{0}&lt;/b&gt; di eric6 è disponibile presso &lt;b&gt;{1}&lt;/b&gt;. Vuoi prenderlo?</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7266"/>
+        <location filename="../UI/UserInterface.py" line="7280"/>
         <source>Eric6 is up to date</source>
         <translation type="unfinished">Eric6 è aggiornato</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7266"/>
+        <location filename="../UI/UserInterface.py" line="7280"/>
         <source>You are using the latest version of eric6</source>
         <translation type="unfinished">Stai usando l&apos;ultima versione di eric6</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7349"/>
+        <location filename="../UI/UserInterface.py" line="7363"/>
         <source>eric6 has not been configured yet. The configuration dialog will be started.</source>
         <translation type="unfinished">eric6 non è ancora stato configurato. Il dialogo di configurazione verrà avviato.</translation>
     </message>
@@ -80266,17 +80406,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4045"/>
+        <location filename="../UI/UserInterface.py" line="4059"/>
         <source>&amp;User Tools</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4117"/>
+        <location filename="../UI/UserInterface.py" line="4131"/>
         <source>No User Tools Configured</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7107"/>
+        <location filename="../UI/UserInterface.py" line="7121"/>
         <source>The versions information cannot not be downloaded because you are &lt;b&gt;offline&lt;/b&gt;. Please go online and try again.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -80321,7 +80461,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6656"/>
+        <location filename="../UI/UserInterface.py" line="6670"/>
         <source>Load session</source>
         <translation type="unfinished">Carica sessione</translation>
     </message>
@@ -80336,17 +80476,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6656"/>
+        <location filename="../UI/UserInterface.py" line="6670"/>
         <source>eric6 Session Files (*.e5s)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6707"/>
+        <location filename="../UI/UserInterface.py" line="6721"/>
         <source>Crash Session found!</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6707"/>
+        <location filename="../UI/UserInterface.py" line="6721"/>
         <source>A session file of a crashed session was found. Shall this session be restored?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -80361,17 +80501,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7242"/>
+        <location filename="../UI/UserInterface.py" line="7256"/>
         <source>Update Check</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7242"/>
+        <location filename="../UI/UserInterface.py" line="7256"/>
         <source>You installed eric directly from the source code. There is no possibility to check for the availability of an update.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7232"/>
+        <location filename="../UI/UserInterface.py" line="7246"/>
         <source>You are using a snapshot release of eric6. A more up-to-date stable release might be available.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -80426,7 +80566,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5888"/>
+        <location filename="../UI/UserInterface.py" line="5902"/>
         <source>&lt;p&gt;The PySide{0} documentation starting point has not been configured.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -80502,17 +80642,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6062"/>
+        <location filename="../UI/UserInterface.py" line="6076"/>
         <source>Start Web Browser</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6001"/>
+        <location filename="../UI/UserInterface.py" line="6015"/>
         <source>The eric6 web browser could not be started.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6062"/>
+        <location filename="../UI/UserInterface.py" line="6076"/>
         <source>&lt;p&gt;The eric6 web browser is not started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -80606,6 +80746,11 @@
         <source>Central Park</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../UI/UserInterface.py" line="3650"/>
+        <source>&lt;h2&gt;Version Numbers&lt;/h2&gt;&lt;table&gt;</source>
+        <translation type="unfinished">&lt;h3&gt;Numeri di versione&lt;/h3&gt;&lt;table&gt; {2&gt;?} {2&gt;?}</translation>
+    </message>
 </context>
 <context>
     <name>UserPropertiesDialog</name>
@@ -80864,7 +81009,7 @@
 <context>
     <name>VariableItem</name>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="207"/>
+        <location filename="../Debugger/VariablesViewer.py" line="211"/>
         <source>&lt;double click to show value&gt;</source>
         <translation>&lt;doppio click per mostrare il valore&gt;</translation>
     </message>
@@ -80954,22 +81099,22 @@
 <context>
     <name>VariablesModel</name>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="278"/>
+        <location filename="../Debugger/VariablesViewer.py" line="282"/>
         <source>Globals</source>
         <translation type="unfinished">Globali</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="280"/>
+        <location filename="../Debugger/VariablesViewer.py" line="284"/>
         <source>Locals</source>
         <translation type="unfinished">Locali</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="282"/>
+        <location filename="../Debugger/VariablesViewer.py" line="286"/>
         <source>Type</source>
         <translation type="unfinished">Tipo</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="282"/>
+        <location filename="../Debugger/VariablesViewer.py" line="286"/>
         <source>Value</source>
         <translation type="unfinished">Valore</translation>
     </message>
@@ -80977,7 +81122,7 @@
 <context>
     <name>VariablesViewer</name>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="951"/>
+        <location filename="../Debugger/VariablesViewer.py" line="955"/>
         <source>Global Variables</source>
         <translation>Variabili globali</translation>
     </message>
@@ -80987,12 +81132,12 @@
         <translation type="obsolete">Globali</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="952"/>
+        <location filename="../Debugger/VariablesViewer.py" line="956"/>
         <source>&lt;b&gt;The Global Variables Viewer Window&lt;/b&gt;&lt;p&gt;This window displays the global variables of the debugged program.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Finestra di visualizzazione delle variabili globali&lt;/b&gt;&lt;p&gt;Questa finestra mostra le variabili globali del programma in debug.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="958"/>
+        <location filename="../Debugger/VariablesViewer.py" line="962"/>
         <source>Local Variables</source>
         <translation>Variabili locali</translation>
     </message>
@@ -81002,7 +81147,7 @@
         <translation type="obsolete">Locali</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="959"/>
+        <location filename="../Debugger/VariablesViewer.py" line="963"/>
         <source>&lt;b&gt;The Local Variables Viewer Window&lt;/b&gt;&lt;p&gt;This window displays the local variables of the debugged program.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Finestra di visualizzazione delle variabili locali&lt;/b&gt;&lt;p&gt;Questa finestra mostra le variabili locali del programma in debug.&lt;/p&gt;</translation>
     </message>
@@ -81017,12 +81162,12 @@
         <translation type="obsolete">Tipo</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1076"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1080"/>
         <source>Show Details...</source>
         <translation>Mostra dettagli...</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1091"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1095"/>
         <source>Configure...</source>
         <translation>Configura...</translation>
     </message>
@@ -81032,7 +81177,7 @@
         <translation>{0} elementi</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1089"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1093"/>
         <source>Refresh</source>
         <translation type="unfinished"></translation>
     </message>
@@ -81042,25 +81187,30 @@
         <translation type="obsolete">Raggruppa tutto</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1078"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1082"/>
         <source>Expand</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1079"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1083"/>
         <source>Collapse</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1080"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1084"/>
         <source>Collapse All</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1092"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1096"/>
         <source>Variables Type Filter...</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../Debugger/VariablesViewer.py" line="47"/>
+        <source>unsized</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>VcsCommandOptionsDialog</name>
--- a/eric6/i18n/eric6_pt.ts	Fri Nov 01 16:11:55 2019 +0100
+++ b/eric6/i18n/eric6_pt.ts	Sun Dec 01 16:38:47 2019 +0100
@@ -47090,43 +47090,78 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.py" line="39"/>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.py" line="42"/>
         <source>All Files (*)</source>
         <translation type="unfinished">Ficheiros Todos (*)</translation>
     </message>
     <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="255"/>
+        <source>Documentation</source>
+        <translation type="unfinished">Documentação</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="261"/>
+        <source>MicroPython:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="268"/>
+        <source>Enter the URL for the MicroPython documentation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="275"/>
+        <source>CircuitPython:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="282"/>
+        <source>Enter the URL for the CircuitPython documentation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="289"/>
+        <source>BBC micro:bit:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="296"/>
+        <source>Enter the URL for the BBC micro:bit MicroPython documentation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="172"/>
-        <source>Documentation</source>
-        <translation type="unfinished">Documentação</translation>
+        <source>PyBoard</source>
+        <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="178"/>
-        <source>MicroPython:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="185"/>
-        <source>Enter the URL for the MicroPython documentation</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="192"/>
-        <source>CircuitPython:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="199"/>
-        <source>Enter the URL for the CircuitPython documentation</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="206"/>
-        <source>BBC micro:bit:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="213"/>
-        <source>Enter the URL for the BBC micro:bit MicroPython documentation</source>
+        <source>dfu-util Path:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="194"/>
+        <source>Enter the path of the dfu-util flashing executable</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="204"/>
+        <source>Firmware</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="217"/>
+        <source>Enter the URL for the MicroPython firmware for PyBoard, ESP8266 and ESP32</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="231"/>
+        <source>Enter the URL for the CircuitPython firmware</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="245"/>
+        <source>Enter the URL for the BBC micro:bit Firmware</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -47323,7 +47358,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1202"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1210"/>
         <source>Synchronize Time</source>
         <translation type="unfinished"></translation>
     </message>
@@ -47338,107 +47373,107 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1366"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1421"/>
         <source>Compile Python File</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1386"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1441"/>
         <source>Compile Current Editor</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1140"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1148"/>
         <source>&lt;h3&gt;Device Version Information&lt;/h3&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1149"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1157"/>
         <source>No version information available.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1151"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1159"/>
         <source>Device Version Information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1174"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1182"/>
         <source>unknown</source>
         <translation type="unfinished">desconhecido</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1178"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1186"/>
         <source>Device Implementation Information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1178"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1186"/>
         <source>&lt;h3&gt;Device Implementation Information&lt;/h3&gt;&lt;p&gt;This device contains &lt;b&gt;{0} {1}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1202"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1210"/>
         <source>&lt;p&gt;The time of the connected device was synchronized with the local time.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1224"/>
-        <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../MicroPython/MicroPythonWidget.py" line="1232"/>
+        <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1240"/>
         <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;p&gt;{0}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1246"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1254"/>
         <source>Device Date and Time</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1259"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1267"/>
         <source>Local Date and Time</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1259"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1267"/>
         <source>&lt;h3&gt;Local Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1279"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1334"/>
         <source>Error handling device</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1279"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1334"/>
         <source>&lt;p&gt;There was an error communicating with the connected device.&lt;/p&gt;&lt;p&gt;Method: {0}&lt;/p&gt;&lt;p&gt;Message: {1}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1318"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1373"/>
         <source>The MicroPython cross compiler &lt;b&gt;mpy-cross&lt;/b&gt; cannot be found. Ensure it is in the search path or configure it on the MicroPython configuration page.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1336"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1391"/>
         <source>Python Files (*.py);;All Files (*)</source>
         <translation type="unfinished">Ficheiros Python (*.py);;Ficheiros Todos (*)</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1346"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1401"/>
         <source>The Python file &lt;b&gt;{0}&lt;/b&gt; does not exist. Aborting...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1356"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1411"/>
         <source>&apos;mpy-cross&apos; Output</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1379"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1434"/>
         <source>The current editor does not contain a Python file. Aborting...</source>
         <translation type="unfinished"></translation>
     </message>
@@ -47463,14 +47498,39 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1126"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1134"/>
         <source>Show Documentation</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1138"/>
+        <source>Configure</source>
+        <translation type="unfinished">Configurar</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1113"/>
+        <source>Show Time</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../MicroPython/MicroPythonWidget.py" line="1130"/>
-        <source>Configure</source>
-        <translation type="unfinished">Configurar</translation>
+        <source>Download Firmware</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1310"/>
+        <source>Date and Time</source>
+        <translation type="unfinished">Data e Hora</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1293"/>
+        <source>&lt;table&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;Local Date and Time&lt;/th&gt;&lt;th&gt;Device Date and Time&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{0}&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{1}&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1310"/>
+        <source>&lt;table&gt;&lt;tr&gt;&lt;th&gt;Local Date and Time&lt;/th&gt;&lt;th&gt;Device Date and Time&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&apos;center&apos;&gt;{0} {1}&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -52850,17 +52910,17 @@
 <context>
     <name>Preferences</name>
     <message>
-        <location filename="../Preferences/__init__.py" line="1606"/>
+        <location filename="../Preferences/__init__.py" line="1610"/>
         <source>Export Preferences</source>
         <translation>Exportar Preferências</translation>
     </message>
     <message>
-        <location filename="../Preferences/__init__.py" line="1634"/>
+        <location filename="../Preferences/__init__.py" line="1638"/>
         <source>Import Preferences</source>
         <translation>Importar Preferências</translation>
     </message>
     <message>
-        <location filename="../Preferences/__init__.py" line="1634"/>
+        <location filename="../Preferences/__init__.py" line="1638"/>
         <source>Properties File (*.ini);;All Files (*)</source>
         <translation>Ficheiro de Propriedades (*.ini);;Ficheiros Todos (*)</translation>
     </message>
@@ -53218,7 +53278,7 @@
         <translation>Compilador de CORBA IDL</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="413"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="430"/>
         <source>(unknown)</source>
         <translation>(desconhecido)</translation>
     </message>
@@ -53228,17 +53288,17 @@
         <translation>Corretor Ortográfico - PyEnchant</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="361"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="378"/>
         <source>(not configured)</source>
         <translation>(não configurado)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="415"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="432"/>
         <source>(not executable)</source>
         <translation>(não executável)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="452"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="469"/>
         <source>(not found)</source>
         <translation>(não encontrado)</translation>
     </message>
@@ -53308,7 +53368,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="394"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="411"/>
         <source>(module not found)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -53337,6 +53397,21 @@
         <source>PyPI Package Management</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="297"/>
+        <source>MicroPython - MPY Cross Compiler</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="300"/>
+        <source>MicroPython - ESP Tool</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="306"/>
+        <source>MicroPython - PyBoard Flasher</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>Project</name>
@@ -56876,23 +56951,88 @@
 <context>
     <name>PyBoardDevice</name>
     <message>
-        <location filename="../MicroPython/PyBoardDevices.py" line="70"/>
+        <location filename="../MicroPython/PyBoardDevices.py" line="75"/>
         <source>PyBoard</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/PyBoardDevices.py" line="159"/>
+        <location filename="../MicroPython/PyBoardDevices.py" line="164"/>
         <source>Workspace Directory</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/PyBoardDevices.py" line="159"/>
+        <location filename="../MicroPython/PyBoardDevices.py" line="164"/>
         <source>Python files for PyBoard devices are stored on the device. Therefore, to edit these files you need to have the device plugged in. Until you plug in a device, the standard directory will be used.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/PyBoardDevices.py" line="186"/>
-        <source>MicroPython Install Instructions</source>
+        <location filename="../MicroPython/PyBoardDevices.py" line="202"/>
+        <source>List DFU-capable Devices</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="356"/>
+        <source>Flash MicroPython Firmware</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="209"/>
+        <source>MicroPython Flash Instructions</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="239"/>
+        <source>dfu-util not available</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="239"/>
+        <source>The dfu-util firmware flashing tool &lt;b&gt;dfu-util&lt;/b&gt; cannot be found or is not executable. Ensure it is in the search path or configure it on the MicroPython configuration page.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="260"/>
+        <source>&lt;h3&gt;Enable DFU Mode&lt;/h3&gt;&lt;p&gt;1. Disconnect everything from your board&lt;/p&gt;&lt;p&gt;2. Disconnect your board&lt;/p&gt;&lt;p&gt;3. Connect the DFU/BOOT0 pin with a 3.3V pin&lt;/p&gt;&lt;p&gt;4. Re-connect your board&lt;/p&gt;&lt;hr /&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="270"/>
+        <source>&lt;p&gt;&lt;b&gt;Warning:&lt;/b&gt; Make sure that all other DFU capable devices except your PyBoard are disconnected.&lt;hr /&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="276"/>
+        <source>&lt;p&gt;Press &lt;b&gt;OK&lt;/b&gt; to continue...&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="279"/>
+        <source>Enable DFU mode</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="293"/>
+        <source>&lt;h3&gt;Disable DFU Mode&lt;/h3&gt;&lt;p&gt;1. Disconnect your board&lt;/p&gt;&lt;p&gt;2. Remove the DFU jumper&lt;/p&gt;&lt;p&gt;3. Re-connect your board&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;Press &lt;b&gt;OK&lt;/b&gt; to continue...&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="301"/>
+        <source>Disable DFU mode</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="356"/>
+        <source>&apos;dfu-util&apos; Output</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="322"/>
+        <source>List DFU capable Devices</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="344"/>
+        <source>MicroPython Firmware Files (*.dfu);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -77837,7 +77977,7 @@
         <translation>Mostrar as versões disponíveis para descarregar</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="3709"/>
+        <location filename="../UI/UserInterface.py" line="3723"/>
         <source>Report Bug</source>
         <translation>Reportar Falho</translation>
     </message>
@@ -78222,7 +78362,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6315"/>
+        <location filename="../UI/UserInterface.py" line="6329"/>
         <source>Export Keyboard Shortcuts</source>
         <translation>Exportar Atalhos de Teclado</translation>
     </message>
@@ -78242,7 +78382,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6339"/>
+        <location filename="../UI/UserInterface.py" line="6353"/>
         <source>Import Keyboard Shortcuts</source>
         <translation>Importar Atalhos de Teclado</translation>
     </message>
@@ -78487,7 +78627,7 @@
         <translation>Definições</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5101"/>
+        <location filename="../UI/UserInterface.py" line="5115"/>
         <source>Help</source>
         <translation>Ajuda</translation>
     </message>
@@ -78539,55 +78679,55 @@
     <message>
         <location filename="../UI/UserInterface.py" line="3650"/>
         <source>&lt;h3&gt;Version Numbers&lt;/h3&gt;&lt;table&gt;</source>
-        <translation>&lt;h3&gt;Números de Versão&lt;/h3&gt;&lt;table&gt;</translation>
-    </message>
-    <message>
-        <location filename="../UI/UserInterface.py" line="7312"/>
+        <translation type="obsolete">&lt;h3&gt;Números de Versão&lt;/h3&gt;&lt;table&gt;</translation>
+    </message>
+    <message>
+        <location filename="../UI/UserInterface.py" line="7326"/>
         <source>&lt;/table&gt;</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="3709"/>
+        <location filename="../UI/UserInterface.py" line="3723"/>
         <source>Email address or mail server address is empty. Please configure your Email settings in the Preferences Dialog.</source>
         <translation>A direção do correio eletrónico ou a direção do servidor de correio está vazia. Por favor configure as Definiçães de Correio Eletrónico na Caixa de Diálogo de Preferências.</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="3989"/>
+        <location filename="../UI/UserInterface.py" line="4003"/>
         <source>Restart application</source>
         <translation>Reiniciar a aplicação</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="3989"/>
+        <location filename="../UI/UserInterface.py" line="4003"/>
         <source>The application needs to be restarted. Do it now?</source>
         <translation>A aplicação necessita ser reiniciada. Reiniciar agora?</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4070"/>
+        <location filename="../UI/UserInterface.py" line="4084"/>
         <source>Configure Tool Groups ...</source>
         <translation>Configurar Grupos de Ferramentas...</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4074"/>
+        <location filename="../UI/UserInterface.py" line="4088"/>
         <source>Configure current Tool Group ...</source>
         <translation>Configurar o atual Grupo de Ferramentas ...</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4025"/>
+        <location filename="../UI/UserInterface.py" line="4039"/>
         <source>&amp;Builtin Tools</source>
         <translation>Ferramentas &amp;Internas</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4042"/>
+        <location filename="../UI/UserInterface.py" line="4056"/>
         <source>&amp;Plugin Tools</source>
         <translation>Ferramentas dos &amp;Complementos</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4190"/>
+        <location filename="../UI/UserInterface.py" line="4204"/>
         <source>&amp;Show all</source>
         <translation>&amp;Mostrar tudo</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4192"/>
+        <location filename="../UI/UserInterface.py" line="4206"/>
         <source>&amp;Hide all</source>
         <translation>&amp;Esconder tudo</translation>
     </message>
@@ -78597,210 +78737,210 @@
         <translation type="obsolete">O projeto atual não tem um script principal definido. A cancelar</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5048"/>
+        <location filename="../UI/UserInterface.py" line="5062"/>
         <source>Qt 3 support</source>
         <translation>Suporte Qt3</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5229"/>
+        <location filename="../UI/UserInterface.py" line="5243"/>
         <source>Problem</source>
         <translation>Problema</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5229"/>
+        <location filename="../UI/UserInterface.py" line="5243"/>
         <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; does not exist or is zero length.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5424"/>
+        <location filename="../UI/UserInterface.py" line="5438"/>
         <source>Process Generation Error</source>
         <translation>Erro na Criação de Processo</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4948"/>
+        <location filename="../UI/UserInterface.py" line="4962"/>
         <source>&lt;p&gt;Could not start Qt-Designer.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5020"/>
+        <location filename="../UI/UserInterface.py" line="5034"/>
         <source>&lt;p&gt;Could not start Qt-Linguist.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5073"/>
+        <location filename="../UI/UserInterface.py" line="5087"/>
         <source>&lt;p&gt;Could not start Qt-Assistant.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5101"/>
-        <source>Currently no custom viewer is selected. Please use the preferences dialog to specify one.</source>
-        <translation>Não há nenhum visor personalizado selecionado. Por favor use a caixa de diálogo das preferências para escolher um.</translation>
-    </message>
-    <message>
         <location filename="../UI/UserInterface.py" line="5115"/>
+        <source>Currently no custom viewer is selected. Please use the preferences dialog to specify one.</source>
+        <translation>Não há nenhum visor personalizado selecionado. Por favor use a caixa de diálogo das preferências para escolher um.</translation>
+    </message>
+    <message>
+        <location filename="../UI/UserInterface.py" line="5129"/>
         <source>&lt;p&gt;Could not start custom viewer.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5135"/>
+        <location filename="../UI/UserInterface.py" line="5149"/>
         <source>&lt;p&gt;Could not start the help viewer.&lt;br&gt;Ensure that it is available as &lt;b&gt;hh&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5185"/>
+        <location filename="../UI/UserInterface.py" line="5199"/>
         <source>&lt;p&gt;Could not start UI Previewer.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5242"/>
+        <location filename="../UI/UserInterface.py" line="5256"/>
         <source>&lt;p&gt;Could not start Translation Previewer.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5265"/>
+        <location filename="../UI/UserInterface.py" line="5279"/>
         <source>&lt;p&gt;Could not start SQL Browser.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5369"/>
+        <location filename="../UI/UserInterface.py" line="5383"/>
         <source>External Tools</source>
         <translation>Ferramentas Externas</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5360"/>
+        <location filename="../UI/UserInterface.py" line="5374"/>
         <source>No tool entry found for external tool &apos;{0}&apos; in tool group &apos;{1}&apos;.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5369"/>
+        <location filename="../UI/UserInterface.py" line="5383"/>
         <source>No toolgroup entry &apos;{0}&apos; found.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5408"/>
+        <location filename="../UI/UserInterface.py" line="5422"/>
         <source>Starting process &apos;{0} {1}&apos;.
 </source>
         <translation>A iniciar processo &apos;{0} {1}&apos;.
 </translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5424"/>
+        <location filename="../UI/UserInterface.py" line="5438"/>
         <source>&lt;p&gt;Could not start the tool entry &lt;b&gt;{0}&lt;/b&gt;.&lt;br&gt;Ensure that it is available as &lt;b&gt;{1}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5502"/>
+        <location filename="../UI/UserInterface.py" line="5516"/>
         <source>Process &apos;{0}&apos; has exited.
 </source>
         <translation>Processo &apos;{0}&apos; saiu.</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5905"/>
+        <location filename="../UI/UserInterface.py" line="5919"/>
         <source>Documentation Missing</source>
         <translation>Falta a Documentação</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5905"/>
+        <location filename="../UI/UserInterface.py" line="5919"/>
         <source>&lt;p&gt;The documentation starting point &quot;&lt;b&gt;{0}&lt;/b&gt;&quot; could not be found.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5888"/>
+        <location filename="../UI/UserInterface.py" line="5902"/>
         <source>Documentation</source>
         <translation>Documentação</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5713"/>
+        <location filename="../UI/UserInterface.py" line="5727"/>
         <source>&lt;p&gt;The PyQt4 documentation starting point has not been configured.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6339"/>
+        <location filename="../UI/UserInterface.py" line="6353"/>
         <source>Keyboard shortcut file (*.e4k)</source>
         <translation>Ficheiro de atalhos de teclado (*.e4k)</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6509"/>
+        <location filename="../UI/UserInterface.py" line="6523"/>
         <source>Save tasks</source>
         <translation>Gravar tarefas</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6509"/>
+        <location filename="../UI/UserInterface.py" line="6523"/>
         <source>&lt;p&gt;The tasks file &lt;b&gt;{0}&lt;/b&gt; could not be written.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6538"/>
+        <location filename="../UI/UserInterface.py" line="6552"/>
         <source>Read tasks</source>
         <translation>Ler tarefas</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6538"/>
+        <location filename="../UI/UserInterface.py" line="6552"/>
         <source>&lt;p&gt;The tasks file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6634"/>
+        <location filename="../UI/UserInterface.py" line="6648"/>
         <source>Save session</source>
         <translation>Guargar sessão</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6572"/>
+        <location filename="../UI/UserInterface.py" line="6586"/>
         <source>&lt;p&gt;The session file &lt;b&gt;{0}&lt;/b&gt; could not be written.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6618"/>
+        <location filename="../UI/UserInterface.py" line="6632"/>
         <source>Read session</source>
         <translation>Sessão de leitura</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6618"/>
+        <location filename="../UI/UserInterface.py" line="6632"/>
         <source>&lt;p&gt;The session file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6902"/>
+        <location filename="../UI/UserInterface.py" line="6916"/>
         <source>Drop Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6902"/>
+        <location filename="../UI/UserInterface.py" line="6916"/>
         <source>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; is not a file.&lt;/p&gt;</source>
         <translation>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; não é um ficheiro.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7087"/>
+        <location filename="../UI/UserInterface.py" line="7101"/>
         <source>&amp;Cancel</source>
         <translation>&amp;Cancelar</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7096"/>
+        <location filename="../UI/UserInterface.py" line="7110"/>
         <source>Trying host {0}</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7254"/>
+        <location filename="../UI/UserInterface.py" line="7268"/>
         <source>Update available</source>
         <translation>Atualização disponível</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7273"/>
+        <location filename="../UI/UserInterface.py" line="7287"/>
         <source>Error during updates check</source>
         <translation>Erro na verificação de atualizações</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7273"/>
+        <location filename="../UI/UserInterface.py" line="7287"/>
         <source>Could not perform updates check.</source>
         <translation>Não procurar atualizações.</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7297"/>
+        <location filename="../UI/UserInterface.py" line="7311"/>
         <source>&lt;h3&gt;Available versions&lt;/h3&gt;&lt;table&gt;</source>
         <translation>&lt;h3&gt;Versões Disponíveis&lt;/h3&gt;&lt;table&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7349"/>
+        <location filename="../UI/UserInterface.py" line="7363"/>
         <source>First time usage</source>
         <translation>Usado a primeira vez</translation>
     </message>
@@ -78840,27 +78980,27 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7162"/>
+        <location filename="../UI/UserInterface.py" line="7176"/>
         <source>Error getting versions information</source>
         <translation>Erro na obtenção da informação de versões</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7155"/>
+        <location filename="../UI/UserInterface.py" line="7169"/>
         <source>The versions information could not be downloaded. Please go online and try again.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6107"/>
+        <location filename="../UI/UserInterface.py" line="6121"/>
         <source>Open Browser</source>
         <translation>Abrir Navegador</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6107"/>
+        <location filename="../UI/UserInterface.py" line="6121"/>
         <source>Could not start a web browser</source>
         <translation>Não se pôde iniciar um navegador web</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7162"/>
+        <location filename="../UI/UserInterface.py" line="7176"/>
         <source>The versions information could not be downloaded for the last 7 days. Please go online and try again.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -78946,12 +79086,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5337"/>
+        <location filename="../UI/UserInterface.py" line="5351"/>
         <source>&lt;p&gt;Could not start Snapshot tool.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7368"/>
+        <location filename="../UI/UserInterface.py" line="7382"/>
         <source>Select Workspace Directory</source>
         <translation>Selecionar o Diretório de Trabalho</translation>
     </message>
@@ -79316,7 +79456,7 @@
         <translation>Abrir a Documentação de PyQt5</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5775"/>
+        <location filename="../UI/UserInterface.py" line="5789"/>
         <source>&lt;p&gt;The PyQt5 documentation starting point has not been configured.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -79326,7 +79466,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7087"/>
+        <location filename="../UI/UserInterface.py" line="7101"/>
         <source>%v/%m</source>
         <translation></translation>
     </message>
@@ -79411,32 +79551,32 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5048"/>
+        <location filename="../UI/UserInterface.py" line="5062"/>
         <source>Qt v.3 is not supported by eric6.</source>
         <translation>Qt v.3 não está suportado por eric6.</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7091"/>
+        <location filename="../UI/UserInterface.py" line="7105"/>
         <source>Version Check</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7254"/>
+        <location filename="../UI/UserInterface.py" line="7268"/>
         <source>The update to &lt;b&gt;{0}&lt;/b&gt; of eric6 is available at &lt;b&gt;{1}&lt;/b&gt;. Would you like to get it?</source>
         <translation>Atualização a &lt;b&gt;{0}&lt;/b&gt; de eric6 já está disponível em &lt;b&gt;{1}&lt;/b&gt;. Quere-a descarregar?</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7266"/>
+        <location filename="../UI/UserInterface.py" line="7280"/>
         <source>Eric6 is up to date</source>
         <translation>Eric6 está atualizado</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7266"/>
+        <location filename="../UI/UserInterface.py" line="7280"/>
         <source>You are using the latest version of eric6</source>
         <translation>Utiliza a última versão do eric6</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7349"/>
+        <location filename="../UI/UserInterface.py" line="7363"/>
         <source>eric6 has not been configured yet. The configuration dialog will be started.</source>
         <translation>eric6 ainda não foi configurado. A caixa de diálogo de configuração vai iniciar-se.</translation>
     </message>
@@ -79446,17 +79586,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4045"/>
+        <location filename="../UI/UserInterface.py" line="4059"/>
         <source>&amp;User Tools</source>
         <translation>Ferramentas de &amp;Utilizador</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4117"/>
+        <location filename="../UI/UserInterface.py" line="4131"/>
         <source>No User Tools Configured</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7107"/>
+        <location filename="../UI/UserInterface.py" line="7121"/>
         <source>The versions information cannot not be downloaded because you are &lt;b&gt;offline&lt;/b&gt;. Please go online and try again.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -79501,7 +79641,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6656"/>
+        <location filename="../UI/UserInterface.py" line="6670"/>
         <source>Load session</source>
         <translation type="unfinished">Carregar sessão</translation>
     </message>
@@ -79516,17 +79656,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6656"/>
+        <location filename="../UI/UserInterface.py" line="6670"/>
         <source>eric6 Session Files (*.e5s)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6707"/>
+        <location filename="../UI/UserInterface.py" line="6721"/>
         <source>Crash Session found!</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6707"/>
+        <location filename="../UI/UserInterface.py" line="6721"/>
         <source>A session file of a crashed session was found. Shall this session be restored?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -79541,17 +79681,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7242"/>
+        <location filename="../UI/UserInterface.py" line="7256"/>
         <source>Update Check</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7242"/>
+        <location filename="../UI/UserInterface.py" line="7256"/>
         <source>You installed eric directly from the source code. There is no possibility to check for the availability of an update.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7232"/>
+        <location filename="../UI/UserInterface.py" line="7246"/>
         <source>You are using a snapshot release of eric6. A more up-to-date stable release might be available.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -79606,7 +79746,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5888"/>
+        <location filename="../UI/UserInterface.py" line="5902"/>
         <source>&lt;p&gt;The PySide{0} documentation starting point has not been configured.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -79682,17 +79822,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6062"/>
+        <location filename="../UI/UserInterface.py" line="6076"/>
         <source>Start Web Browser</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6001"/>
+        <location filename="../UI/UserInterface.py" line="6015"/>
         <source>The eric6 web browser could not be started.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6062"/>
+        <location filename="../UI/UserInterface.py" line="6076"/>
         <source>&lt;p&gt;The eric6 web browser is not started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -79786,6 +79926,11 @@
         <source>Central Park</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../UI/UserInterface.py" line="3650"/>
+        <source>&lt;h2&gt;Version Numbers&lt;/h2&gt;&lt;table&gt;</source>
+        <translation type="unfinished">&lt;h3&gt;Números de Versão&lt;/h3&gt;&lt;table&gt; {2&gt;?} {2&gt;?}</translation>
+    </message>
 </context>
 <context>
     <name>UserPropertiesDialog</name>
@@ -80044,7 +80189,7 @@
 <context>
     <name>VariableItem</name>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="207"/>
+        <location filename="../Debugger/VariablesViewer.py" line="211"/>
         <source>&lt;double click to show value&gt;</source>
         <translation>&lt;clique duplo para mostrar valor&gt;</translation>
     </message>
@@ -80131,22 +80276,22 @@
 <context>
     <name>VariablesModel</name>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="278"/>
+        <location filename="../Debugger/VariablesViewer.py" line="282"/>
         <source>Globals</source>
         <translation type="unfinished">Globais</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="280"/>
+        <location filename="../Debugger/VariablesViewer.py" line="284"/>
         <source>Locals</source>
         <translation type="unfinished">Locais</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="282"/>
+        <location filename="../Debugger/VariablesViewer.py" line="286"/>
         <source>Type</source>
         <translation type="unfinished">Tipo</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="282"/>
+        <location filename="../Debugger/VariablesViewer.py" line="286"/>
         <source>Value</source>
         <translation type="unfinished">Valor</translation>
     </message>
@@ -80154,7 +80299,7 @@
 <context>
     <name>VariablesViewer</name>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="951"/>
+        <location filename="../Debugger/VariablesViewer.py" line="955"/>
         <source>Global Variables</source>
         <translation>Variáveis Globais</translation>
     </message>
@@ -80174,12 +80319,12 @@
         <translation type="obsolete">Tipo</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="952"/>
+        <location filename="../Debugger/VariablesViewer.py" line="956"/>
         <source>&lt;b&gt;The Global Variables Viewer Window&lt;/b&gt;&lt;p&gt;This window displays the global variables of the debugged program.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="958"/>
+        <location filename="../Debugger/VariablesViewer.py" line="962"/>
         <source>Local Variables</source>
         <translation>Variáveis Locais</translation>
     </message>
@@ -80189,17 +80334,17 @@
         <translation type="obsolete">Locais</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="959"/>
+        <location filename="../Debugger/VariablesViewer.py" line="963"/>
         <source>&lt;b&gt;The Local Variables Viewer Window&lt;/b&gt;&lt;p&gt;This window displays the local variables of the debugged program.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1076"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1080"/>
         <source>Show Details...</source>
         <translation>Mostrar Detalhes...</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1091"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1095"/>
         <source>Configure...</source>
         <translation>Configurar...</translation>
     </message>
@@ -80209,7 +80354,7 @@
         <translation>{0} elementos</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1089"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1093"/>
         <source>Refresh</source>
         <translation type="unfinished">Atualizar</translation>
     </message>
@@ -80219,25 +80364,30 @@
         <translation type="obsolete">Contrair tudo</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1078"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1082"/>
         <source>Expand</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1079"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1083"/>
         <source>Collapse</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1080"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1084"/>
         <source>Collapse All</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1092"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1096"/>
         <source>Variables Type Filter...</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../Debugger/VariablesViewer.py" line="47"/>
+        <source>unsized</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>VcsCommandOptionsDialog</name>
Binary file eric6/i18n/eric6_ru.qm has changed
--- a/eric6/i18n/eric6_ru.ts	Fri Nov 01 16:11:55 2019 +0100
+++ b/eric6/i18n/eric6_ru.ts	Sun Dec 01 16:38:47 2019 +0100
@@ -270,7 +270,7 @@
     <message>
         <location filename="../WebBrowser/AdBlock/AdBlockManager.py" line="335"/>
         <source>&lt;p&gt;Subscribe to this AdBlock subscription?&lt;/p&gt;&lt;p&gt;{0}&lt;/p&gt;</source>
-        <translation>&lt;p&gt;Подписаться на AdBlock подписку?&lt;/p&gt;&lt;p&gt;{0}&lt;/p&gt;</translation>
+        <translation>&lt;p&gt;Подписаться на эту подписку AdBlock?&lt;/p&gt;&lt;p&gt;{0}&lt;/p&gt;</translation>
     </message>
 </context>
 <context>
@@ -1284,7 +1284,7 @@
     <message>
         <location filename="../Preferences/ConfigurationPages/ApplicationPage.ui" line="116"/>
         <source>Last Multiproject</source>
-        <translation>Последний использованный список проектов</translation>
+        <translation>Последний мультипроект</translation>
     </message>
     <message>
         <location filename="../Preferences/ConfigurationPages/ApplicationPage.ui" line="123"/>
@@ -4685,7 +4685,7 @@
         <location filename="../CondaInterface/CondaExecDialog.py" line="213"/>
         <source> Done.
 </source>
-        <translation> Готово.
+        <translation> Выполнено.
 </translation>
     </message>
 </context>
@@ -6191,7 +6191,7 @@
     <message>
         <location filename="../Preferences/ConfigurationPages/CooperationPage.ui" line="205"/>
         <source>Add the user to the list of banned users</source>
-        <translation>Добавить пользователя в список запрещённых</translation>
+        <translation>Добавить пользователя в список забаненных</translation>
     </message>
     <message>
         <location filename="../Preferences/ConfigurationPages/CooperationPage.ui" line="208"/>
@@ -9097,7 +9097,7 @@
     <message>
         <location filename="../WebBrowser/Download/DownloadManager.ui" line="31"/>
         <source>Press to clean up the list of downloads</source>
-        <translation>Очистить список закачки</translation>
+        <translation>Очистить список закачек</translation>
     </message>
     <message numerus="yes">
         <location filename="../WebBrowser/Download/DownloadManager.py" line="169"/>
@@ -10538,7 +10538,7 @@
     <message>
         <location filename="../E5Gui/E5ToolBarDialog.ui" line="137"/>
         <source>&lt;b&gt;Current Toolbar Actions&lt;/b&gt;&lt;p&gt;This list shows the actions of the selected toolbar. Select an action and use the up or down button to change the order of actions or the left button to delete it. To add an action to the toolbar, select it in the list of available actions and press the right button.&lt;/p&gt;</source>
-        <translation>&lt;b&gt;Акции текущей панели инструментов&lt;/b&gt;&lt;p&gt;В этом список отображаются действия текущей панели инструментов. Выберите нужное действие. Используя кнопки вверх и вниз вы можете изменять порядок действий, или удалить с помощью кнопки влево. Чтобы добавить действие на текущую панель инструментов, выделите его в списке доступных действий и нажмите на кнопку вправо.&lt;/p&gt;</translation>
+        <translation>&lt;b&gt;Действия текущей панели инструментов&lt;/b&gt;&lt;p&gt;В этом список отображаются действия текущей панели инструментов. Выберите нужное действие. Используя кнопки вверх и вниз вы можете изменять порядок действий, или удалить с помощью кнопки влево. Чтобы добавить действие на текущую панель инструментов, выделите его в списке доступных действий и нажмите на кнопку вправо.&lt;/p&gt;</translation>
     </message>
     <message>
         <location filename="../E5Gui/E5ToolBarDialog.ui" line="149"/>
@@ -14099,7 +14099,7 @@
     <message>
         <location filename="../Preferences/ConfigurationPages/EditorPropertiesPage.ui" line="800"/>
         <source>Select to highlight sub-identifiers defined in keyword set 2</source>
-        <translation>Разрешить подсвечивать субидентификаторы, определенные в ключе set 2</translation>
+        <translation>Разрешить подсвечивать субидентификаторы, определенные в наборе ключевых слов 2</translation>
     </message>
     <message>
         <location filename="../Preferences/ConfigurationPages/EditorPropertiesPage.ui" line="171"/>
@@ -16977,52 +16977,52 @@
 <context>
     <name>EspDevice</name>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="67"/>
+        <location filename="../MicroPython/EspDevices.py" line="77"/>
         <source>ESP8266, ESP32</source>
         <translation>ESP8266, ESP32</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="160"/>
+        <location filename="../MicroPython/EspDevices.py" line="170"/>
         <source>Erase Flash</source>
         <translation>Очистить Flash-память</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="193"/>
+        <location filename="../MicroPython/EspDevices.py" line="203"/>
         <source>Flash MicroPython Firmware</source>
         <translation>Прошивка Flash MicroPython</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="217"/>
+        <location filename="../MicroPython/EspDevices.py" line="227"/>
         <source>Flash Additional Firmware</source>
         <translation>Дополнительная прошивка Flash</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="141"/>
+        <location filename="../MicroPython/EspDevices.py" line="151"/>
         <source>Install &apos;esptool.py&apos;</source>
         <translation>Установить &apos;esptool.py&apos;</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="148"/>
+        <location filename="../MicroPython/EspDevices.py" line="158"/>
         <source>Shall the flash of the selected device really be erased?</source>
         <translation>Действительно ли flash-память выбранного устройства должна быть очищена?</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="160"/>
+        <location filename="../MicroPython/EspDevices.py" line="170"/>
         <source>&apos;esptool erase_flash&apos; Output</source>
         <translation>Вывод команды &apos;esptool erase_flash&apos;</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="182"/>
+        <location filename="../MicroPython/EspDevices.py" line="192"/>
         <source>Unsupported chip type &apos;{0}&apos;.</source>
         <translation>Неподдерживаемый тип чипа &apos;{0}&apos;.</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="217"/>
+        <location filename="../MicroPython/EspDevices.py" line="227"/>
         <source>&apos;esptool write_flash&apos; Output</source>
         <translation>Вывод команды &apos;esptool write_flash&apos;</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="139"/>
+        <location filename="../MicroPython/EspDevices.py" line="149"/>
         <source>Reset Device</source>
         <translation>Сбросить устройство</translation>
     </message>
@@ -44075,44 +44075,79 @@
         <translation>Введите путь к исполняемому файлу кросс-компилятора</translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.py" line="39"/>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.py" line="42"/>
         <source>All Files (*)</source>
         <translation>Все файлы (*)</translation>
     </message>
     <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="255"/>
+        <source>Documentation</source>
+        <translation>Документация</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="261"/>
+        <source>MicroPython:</source>
+        <translation>MicroPython:</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="268"/>
+        <source>Enter the URL for the MicroPython documentation</source>
+        <translation>Введите URL для документации по MicroPython</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="275"/>
+        <source>CircuitPython:</source>
+        <translation>CircuitPython:</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="282"/>
+        <source>Enter the URL for the CircuitPython documentation</source>
+        <translation>Введите URL для документации по CircuitPython</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="289"/>
+        <source>BBC micro:bit:</source>
+        <translation>BBC micro:bit:</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="296"/>
+        <source>Enter the URL for the BBC micro:bit MicroPython documentation</source>
+        <translation>Введите URL для документации по BBC micro:bit MicroPython</translation>
+    </message>
+    <message>
         <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="172"/>
-        <source>Documentation</source>
-        <translation>Документация</translation>
+        <source>PyBoard</source>
+        <translation>PyBoard</translation>
     </message>
     <message>
         <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="178"/>
-        <source>MicroPython:</source>
-        <translation>MicroPython:</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="185"/>
-        <source>Enter the URL for the MicroPython documentation</source>
-        <translation>Введите URL для документации по MicroPython</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="192"/>
-        <source>CircuitPython:</source>
-        <translation>CircuitPython:</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="199"/>
-        <source>Enter the URL for the CircuitPython documentation</source>
-        <translation>Введите URL для документации по CircuitPython</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="206"/>
-        <source>BBC micro:bit:</source>
-        <translation>BBC micro:bit:</translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="213"/>
-        <source>Enter the URL for the BBC micro:bit MicroPython documentation</source>
-        <translation>Введите URL для документации по BBC micro:bit MicroPython</translation>
+        <source>dfu-util Path:</source>
+        <translation>Путь к dfu-util:</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="194"/>
+        <source>Enter the path of the dfu-util flashing executable</source>
+        <translation>Введите путь к исполняемому файлу утилиты dfu-util</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="204"/>
+        <source>Firmware</source>
+        <translation>Прошивка</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="217"/>
+        <source>Enter the URL for the MicroPython firmware for PyBoard, ESP8266 and ESP32</source>
+        <translation>Введите URL прошивки MicroPython для PyBoard, ESP8266 and ESP32</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="231"/>
+        <source>Enter the URL for the CircuitPython firmware</source>
+        <translation>Введите URL прошивки для CircuitPython</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="245"/>
+        <source>Enter the URL for the BBC micro:bit Firmware</source>
+        <translation>Введите URL прошивки для BBC micro:bit</translation>
     </message>
 </context>
 <context>
@@ -44313,7 +44348,7 @@
         <translation>Показать исполнение</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1202"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1210"/>
         <source>Synchronize Time</source>
         <translation>Синхронизировать время</translation>
     </message>
@@ -44328,107 +44363,107 @@
         <translation>Показать локальное время</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1366"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1421"/>
         <source>Compile Python File</source>
         <translation>Компилировать файл Python</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1386"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1441"/>
         <source>Compile Current Editor</source>
         <translation>Компилировать текущий редактор</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1140"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1148"/>
         <source>&lt;h3&gt;Device Version Information&lt;/h3&gt;</source>
         <translation>&lt;h3&gt;Информация о версии устройства&lt;/h3&gt;</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1149"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1157"/>
         <source>No version information available.</source>
         <translation>Информация о версии недоступна.</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1151"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1159"/>
         <source>Device Version Information</source>
         <translation>Информация о версии устройства</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1174"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1182"/>
         <source>unknown</source>
         <translation>unknown</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1178"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1186"/>
         <source>Device Implementation Information</source>
         <translation>Информация о исполнении устройства</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1178"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1186"/>
         <source>&lt;h3&gt;Device Implementation Information&lt;/h3&gt;&lt;p&gt;This device contains &lt;b&gt;{0} {1}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;h3&gt;Информация о исполнении устройства&lt;/h3&gt;&lt;p&gt;Это устройство содержит &lt;b&gt;{0} {1}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1202"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1210"/>
         <source>&lt;p&gt;The time of the connected device was synchronized with the local time.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Время подключенного устройства было синхронизировано с локальным временем.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1224"/>
-        <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
-        <translation>&lt;h3&gt;Дата и время устройства&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Дата&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Время&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
-    </message>
-    <message>
         <location filename="../MicroPython/MicroPythonWidget.py" line="1232"/>
+        <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+        <translation>&lt;h3&gt;Дата и время устройства&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Дата&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Время&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1240"/>
         <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;p&gt;{0}&lt;/p&gt;</source>
         <translation>&lt;h3&gt;Дата и время устройства&lt;/h3&gt;&lt;p&gt;{0}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1246"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1254"/>
         <source>Device Date and Time</source>
         <translation>Дата и время устройства</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1259"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1267"/>
         <source>Local Date and Time</source>
         <translation>Локальные дата и время</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1259"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1267"/>
         <source>&lt;h3&gt;Local Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
         <translation>&lt;h3&gt;Локальные дата и время&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Дата&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Время&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1279"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1334"/>
         <source>Error handling device</source>
         <translation>Ошибка обработки устройства</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1279"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1334"/>
         <source>&lt;p&gt;There was an error communicating with the connected device.&lt;/p&gt;&lt;p&gt;Method: {0}&lt;/p&gt;&lt;p&gt;Message: {1}&lt;/p&gt;</source>
         <translation>&lt;p&gt;Произошла ошибка связи с подключенным устройством.&lt;/p&gt;&lt;p&gt;Метод: {0}&lt;/p&gt;&lt;p&gt;Сообщение: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1318"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1373"/>
         <source>The MicroPython cross compiler &lt;b&gt;mpy-cross&lt;/b&gt; cannot be found. Ensure it is in the search path or configure it on the MicroPython configuration page.</source>
         <translation>Кросс-компилятор MicroPython &lt;b&gt;mpy-cross&lt;/b&gt; не найден. Убедитесь, что он находится в пути поиска, или настройте его на странице конфигурации MicroPython.</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1336"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1391"/>
         <source>Python Files (*.py);;All Files (*)</source>
         <translation>Файлы Python (*.py);;Все файлы (*)</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1346"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1401"/>
         <source>The Python file &lt;b&gt;{0}&lt;/b&gt; does not exist. Aborting...</source>
         <translation>Файл Python &lt;b&gt;{0}&lt;/b&gt; не существует. Отмена...</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1356"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1411"/>
         <source>&apos;mpy-cross&apos; Output</source>
-        <translation>Вывод &apos;mpy-cross&apos;</translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1379"/>
+        <translation>Вывод команды &apos;mpy-cross&apos;</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1434"/>
         <source>The current editor does not contain a Python file. Aborting...</source>
         <translation>Текущий редактор не содержит файл Python. Отмена...</translation>
     </message>
@@ -44453,14 +44488,39 @@
         <translation>µPy файлы</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1126"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1134"/>
         <source>Show Documentation</source>
         <translation>Обзор документации</translation>
     </message>
     <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1138"/>
+        <source>Configure</source>
+        <translation>Настройки</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1113"/>
+        <source>Show Time</source>
+        <translation>Показать время</translation>
+    </message>
+    <message>
         <location filename="../MicroPython/MicroPythonWidget.py" line="1130"/>
-        <source>Configure</source>
-        <translation>Настройки</translation>
+        <source>Download Firmware</source>
+        <translation>Загрузить прошивку</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1310"/>
+        <source>Date and Time</source>
+        <translation>Дата и время</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1293"/>
+        <source>&lt;table&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;Local Date and Time&lt;/th&gt;&lt;th&gt;Device Date and Time&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{0}&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{1}&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+        <translation>&lt;table&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;Дата и время локальные&lt;/th&gt;&lt;th&gt;Дата и время устройства&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Дата&lt;/b&gt;&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{0}&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Время&lt;/b&gt;&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{1}&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1310"/>
+        <source>&lt;table&gt;&lt;tr&gt;&lt;th&gt;Local Date and Time&lt;/th&gt;&lt;th&gt;Device Date and Time&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&apos;center&apos;&gt;{0} {1}&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+        <translation>&lt;table&gt;&lt;tr&gt;&lt;th&gt;Дата и время локальные&lt;/th&gt;&lt;th&gt;Дата и время устройства&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&apos;center&apos;&gt;{0} {1}&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
 </context>
 <context>
@@ -45317,7 +45377,7 @@
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="717"/>
         <source>format call uses missing keyword ({0})</source>
-        <translation>формат вызова использует недостающее ключевое слово ({0})</translation>
+        <translation>формат вызова использует отсутствующее ключевое слово ({0})</translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="720"/>
@@ -45342,7 +45402,7 @@
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="732"/>
         <source>format call provides unused keyword ({0})</source>
-        <translation>Формат вызова предоставляет неиспользованное ключевое слово ({0})</translation>
+        <translation>формат вызова предоставляет неиспользуемое ключевое слово ({0})</translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="751"/>
@@ -47090,7 +47150,7 @@
     <message>
         <location filename="../WebBrowser/OpenSearch/OpenSearchEngineModel.py" line="150"/>
         <source>Comma-separated list of keywords that may be entered in the location bar followed by search terms to search with this engine</source>
-        <translation>Список ключевых слов для поиска (через запятую)</translation>
+        <translation>Список ключевых слов, разделенный запятыми, которые могут быть введены в адресной строке, за которыми следуют поисковые термины для поиска с помощью этого механизма</translation>
     </message>
 </context>
 <context>
@@ -47994,7 +48054,7 @@
     <message>
         <location filename="../PipInterface/PipPackageDetailsDialog.ui" line="326"/>
         <source>Uploaded on</source>
-        <translation>Выложен</translation>
+        <translation>Выложено</translation>
     </message>
     <message>
         <location filename="../PipInterface/PipPackageDetailsDialog.ui" line="331"/>
@@ -48256,7 +48316,7 @@
     <message>
         <location filename="../PipInterface/PipPackagesWidget.ui" line="417"/>
         <source>Score</source>
-        <translation>Очки</translation>
+        <translation>Оценка</translation>
     </message>
     <message>
         <location filename="../PipInterface/PipPackagesWidget.ui" line="422"/>
@@ -49722,17 +49782,17 @@
 <context>
     <name>Preferences</name>
     <message>
-        <location filename="../Preferences/__init__.py" line="1606"/>
+        <location filename="../Preferences/__init__.py" line="1610"/>
         <source>Export Preferences</source>
         <translation>Экспорт предпочтений</translation>
     </message>
     <message>
-        <location filename="../Preferences/__init__.py" line="1634"/>
+        <location filename="../Preferences/__init__.py" line="1638"/>
         <source>Import Preferences</source>
         <translation>Импорт предпочтений</translation>
     </message>
     <message>
-        <location filename="../Preferences/__init__.py" line="1634"/>
+        <location filename="../Preferences/__init__.py" line="1638"/>
         <source>Properties File (*.ini);;All Files (*)</source>
         <translation>Файлы предпочтений (*.ini);;Все файлы (*)</translation>
     </message>
@@ -50090,7 +50150,7 @@
         <translation>Компилятор IDL CORBA</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="413"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="430"/>
         <source>(unknown)</source>
         <translation>(неизвестный)</translation>
     </message>
@@ -50100,17 +50160,17 @@
         <translation>Проверка орфографии - PyEnchant</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="361"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="378"/>
         <source>(not configured)</source>
         <translation>(не настроено)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="415"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="432"/>
         <source>(not executable)</source>
         <translation>(не исполняемый)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="452"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="469"/>
         <source>(not found)</source>
         <translation>(не найдено)</translation>
     </message>
@@ -50180,7 +50240,7 @@
         <translation>Компилятор gRPC</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="394"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="411"/>
         <source>(module not found)</source>
         <translation>(модуль не найден)</translation>
     </message>
@@ -50209,6 +50269,21 @@
         <source>PyPI Package Management</source>
         <translation>Менеджер пакетов PyPI</translation>
     </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="297"/>
+        <source>MicroPython - MPY Cross Compiler</source>
+        <translation>MicroPython - MPY Cross Compiler</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="300"/>
+        <source>MicroPython - ESP Tool</source>
+        <translation>MicroPython - ESP Tool</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="306"/>
+        <source>MicroPython - PyBoard Flasher</source>
+        <translation>MicroPython - PyBoard Flasher</translation>
+    </message>
 </context>
 <context>
     <name>Project</name>
@@ -53758,24 +53833,89 @@
 <context>
     <name>PyBoardDevice</name>
     <message>
-        <location filename="../MicroPython/PyBoardDevices.py" line="70"/>
+        <location filename="../MicroPython/PyBoardDevices.py" line="75"/>
         <source>PyBoard</source>
         <translation>PyBoard</translation>
     </message>
     <message>
-        <location filename="../MicroPython/PyBoardDevices.py" line="159"/>
+        <location filename="../MicroPython/PyBoardDevices.py" line="164"/>
         <source>Workspace Directory</source>
         <translation>Директория рабочей области</translation>
     </message>
     <message>
-        <location filename="../MicroPython/PyBoardDevices.py" line="159"/>
+        <location filename="../MicroPython/PyBoardDevices.py" line="164"/>
         <source>Python files for PyBoard devices are stored on the device. Therefore, to edit these files you need to have the device plugged in. Until you plug in a device, the standard directory will be used.</source>
         <translation>Файлы Python для устройств PyBoard хранятся на самом устройстве. Поэтому для редактирования этих файлов необходимо подключить устройство. Пока устройство не будет подключено, будет использоваться стандартная директория.</translation>
     </message>
     <message>
-        <location filename="../MicroPython/PyBoardDevices.py" line="186"/>
-        <source>MicroPython Install Instructions</source>
-        <translation>Инструкции по установке MicroPython</translation>
+        <location filename="../MicroPython/PyBoardDevices.py" line="202"/>
+        <source>List DFU-capable Devices</source>
+        <translation>Список устройств с DFU-поддержкой</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="356"/>
+        <source>Flash MicroPython Firmware</source>
+        <translation>Прошивка Flash MicroPython</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="209"/>
+        <source>MicroPython Flash Instructions</source>
+        <translation>Инструкции MicroPython Flash</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="239"/>
+        <source>dfu-util not available</source>
+        <translation>dfu-util не доступна</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="239"/>
+        <source>The dfu-util firmware flashing tool &lt;b&gt;dfu-util&lt;/b&gt; cannot be found or is not executable. Ensure it is in the search path or configure it on the MicroPython configuration page.</source>
+        <translation>Инструмент перезаписи прошивки &lt;b&gt;dfu-util&lt;/b&gt; не найден или не является исполняемым. Убедитесь, что он находится в пути поиска, или настройте его на странице настройки MicroPython.</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="260"/>
+        <source>&lt;h3&gt;Enable DFU Mode&lt;/h3&gt;&lt;p&gt;1. Disconnect everything from your board&lt;/p&gt;&lt;p&gt;2. Disconnect your board&lt;/p&gt;&lt;p&gt;3. Connect the DFU/BOOT0 pin with a 3.3V pin&lt;/p&gt;&lt;p&gt;4. Re-connect your board&lt;/p&gt;&lt;hr /&gt;</source>
+        <translation>&lt;h3&gt;Включение режима DFU&lt;/h3&gt;&lt;p&gt;1. Отключите все от вашего устройства&lt;/p&gt;&lt;p&gt;2. Отключите ваше устройство&lt;/p&gt;&lt;p&gt;3. Соедините контакт DFU/BOOT0 с контактом 3,3 В&lt;/p&gt;&lt;p&gt;4. Повторно подключите ваше устройство&lt;/p&gt;&lt;hr /&gt;</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="270"/>
+        <source>&lt;p&gt;&lt;b&gt;Warning:&lt;/b&gt; Make sure that all other DFU capable devices except your PyBoard are disconnected.&lt;hr /&gt;</source>
+        <translation>&lt;p&gt;&lt;b&gt;Предупреждение:&lt;/b&gt; Убедитесь, что все другие устройства с поддержкой DFU, кроме PyBoard, отключены.&lt;hr /&gt;</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="276"/>
+        <source>&lt;p&gt;Press &lt;b&gt;OK&lt;/b&gt; to continue...&lt;/p&gt;</source>
+        <translation>&lt;p&gt;Нажмите &lt;b&gt;OK&lt;/b&gt; для продолжения...&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="279"/>
+        <source>Enable DFU mode</source>
+        <translation>Включить режим DFU</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="293"/>
+        <source>&lt;h3&gt;Disable DFU Mode&lt;/h3&gt;&lt;p&gt;1. Disconnect your board&lt;/p&gt;&lt;p&gt;2. Remove the DFU jumper&lt;/p&gt;&lt;p&gt;3. Re-connect your board&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;Press &lt;b&gt;OK&lt;/b&gt; to continue...&lt;/p&gt;</source>
+        <translation>&lt;h3&gt;Выключение режима DFU&lt;/h3&gt;&lt;p&gt;1. Отключите ваше устройство&lt;/p&gt;&lt;p&gt;2. Удалите перемычку DFU&lt;/p&gt;&lt;p&gt;3. Повторно подключите устройство&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;Нажмите &lt;b&gt;ОК&lt;/b&gt; для продолжения...&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="301"/>
+        <source>Disable DFU mode</source>
+        <translation>Отключить режим DFU</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="356"/>
+        <source>&apos;dfu-util&apos; Output</source>
+        <translation>Вывод команды&apos;dfu-util&apos;</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="322"/>
+        <source>List DFU capable Devices</source>
+        <translation>Список устройств с поддержкой DFU</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="344"/>
+        <source>MicroPython Firmware Files (*.dfu);;All Files (*)</source>
+        <translation>Файлы прошивки MicroPython (*.dfu);;Все файлы (*)</translation>
     </message>
 </context>
 <context>
@@ -55237,7 +55377,7 @@
     <message>
         <location filename="../Plugins/VcsPlugins/vcsPySvn/ProjectHelper.py" line="377"/>
         <source>&lt;b&gt;List repository contents&lt;/b&gt;&lt;p&gt;This lists the contents of the repository.&lt;/p&gt;</source>
-        <translation>&lt;b&gt;Список содержания репозитория&lt;b&gt;&lt;p&gt;Эти списки отражают содержание репозитория.&lt;/p&gt;</translation>
+        <translation>&lt;b&gt;Список содержимого репозитория&lt;b&gt;&lt;p&gt;Здесь перечисляется содержимое репозитория.&lt;/p&gt;</translation>
     </message>
     <message>
         <location filename="../Plugins/VcsPlugins/vcsPySvn/ProjectHelper.py" line="384"/>
@@ -65512,14 +65652,14 @@
     <message>
         <location filename="../Plugins/VcsPlugins/vcsSubversion/SvnChangeListsDialog.ui" line="23"/>
         <source>Change Lists:</source>
-        <translation>Список изменений:</translation>
+        <translation>Списки изменений:</translation>
     </message>
     <message>
         <location filename="../Plugins/VcsPlugins/vcsSubversion/SvnChangeListsDialog.ui" line="36"/>
         <source>&lt;b&gt;Change Lists&lt;/b&gt;
 &lt;p&gt;Select a change list here to see the associated files in the list below.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Списки изменений&lt;/b&gt;
-&lt;p&gt;Выбор списка изменений. Соответствующие изменённые файлы будут перечислены ниже.&lt;/p&gt;</translation>
+&lt;p&gt;Выберите здесь список изменений чтобы в списке ниже увидеть связанные файлы.&lt;/p&gt;</translation>
     </message>
     <message>
         <location filename="../Plugins/VcsPlugins/vcsSubversion/SvnChangeListsDialog.ui" line="63"/>
@@ -67184,7 +67324,7 @@
     <message>
         <location filename="../Plugins/VcsPlugins/vcsSubversion/ProjectHelper.py" line="361"/>
         <source>&lt;b&gt;List repository contents&lt;/b&gt;&lt;p&gt;This lists the contents of the repository.&lt;/p&gt;</source>
-        <translation>&lt;b&gt;Список содержания репозитория&lt;b&gt;&lt;p&gt;Эти списки отражают содержание репозитория.&lt;/p&gt;</translation>
+        <translation>&lt;b&gt;Список содержимого репозитория&lt;b&gt;&lt;p&gt;Здесь перечисляется содержимое репозитория.&lt;/p&gt;</translation>
     </message>
     <message>
         <location filename="../Plugins/VcsPlugins/vcsSubversion/ProjectHelper.py" line="368"/>
@@ -67334,12 +67474,12 @@
     <message>
         <location filename="../Plugins/VcsPlugins/vcsSubversion/ProjectHelper.py" line="183"/>
         <source>Show the change lists and associated files of the local project</source>
-        <translation>Показать списки изменений и соответствующие файлы локального проекта</translation>
+        <translation>Показать списки изменений и связанные файлы локального проекта</translation>
     </message>
     <message>
         <location filename="../Plugins/VcsPlugins/vcsSubversion/ProjectHelper.py" line="186"/>
         <source>&lt;b&gt;Show change lists&lt;/b&gt;&lt;p&gt;This shows the change lists and associated files of the local project.&lt;/p&gt;</source>
-        <translation>&lt;b&gt;Показать списки изменений&lt;/b&gt;&lt;p&gt;Показать списки изменений и соответствующие файлы локального проекта.&lt;/p&gt;</translation>
+        <translation>&lt;b&gt;Показать списки изменений&lt;/b&gt;&lt;p&gt;Отображение списков изменений и связанных файлов локального проекта.&lt;/p&gt;</translation>
     </message>
     <message>
         <location filename="../Plugins/VcsPlugins/vcsSubversion/ProjectHelper.py" line="456"/>
@@ -70377,6 +70517,16 @@
         <source>JavaScript batch check</source>
         <translation>Пакетная проверка JavaScript</translation>
     </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="256"/>
+        <source>YAML batch check</source>
+        <translation>Пакетная проверка YAML</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py" line="272"/>
+        <source>JSON batch check</source>
+        <translation>Пакетная проверка JSON</translation>
+    </message>
 </context>
 <context>
     <name>SyntaxCheckerDialog</name>
@@ -70489,22 +70639,22 @@
 <context>
     <name>SyntaxCheckerPlugin</name>
     <message>
-        <location filename="../Plugins/PluginSyntaxChecker.py" line="247"/>
+        <location filename="../Plugins/PluginSyntaxChecker.py" line="267"/>
         <source>Check Syntax</source>
         <translation>Проверить синтаксис</translation>
     </message>
     <message>
-        <location filename="../Plugins/PluginSyntaxChecker.py" line="247"/>
+        <location filename="../Plugins/PluginSyntaxChecker.py" line="267"/>
         <source>&amp;Syntax...</source>
         <translation>&amp;Синтаксис...</translation>
     </message>
     <message>
-        <location filename="../Plugins/PluginSyntaxChecker.py" line="156"/>
+        <location filename="../Plugins/PluginSyntaxChecker.py" line="176"/>
         <source>Check syntax.</source>
         <translation>Проверить синтаксис.</translation>
     </message>
     <message>
-        <location filename="../Plugins/PluginSyntaxChecker.py" line="251"/>
+        <location filename="../Plugins/PluginSyntaxChecker.py" line="271"/>
         <source>&lt;b&gt;Check Syntax...&lt;/b&gt;&lt;p&gt;This checks Python files for syntax errors.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Проверить синтаксис...&lt;/b&gt;&lt;p&gt;Проверка файлов Python на синтаксические ошибки.&lt;/p&gt;</translation>
     </message>
@@ -74957,7 +75107,7 @@
         <translation>Показать версии, доступные для загрузки</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="3709"/>
+        <location filename="../UI/UserInterface.py" line="3723"/>
         <source>Report Bug</source>
         <translation>Сообщение об ошибке</translation>
     </message>
@@ -75347,7 +75497,7 @@
         <translation>&lt;b&gt;Горячие клавиши&lt;/b&gt;&lt;p&gt;Определите горячие клавиши приложения согласно вашим предпочтениям.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6315"/>
+        <location filename="../UI/UserInterface.py" line="6329"/>
         <source>Export Keyboard Shortcuts</source>
         <translation>Экспорт горячих клавиш</translation>
     </message>
@@ -75368,7 +75518,7 @@
 &lt;p&gt;Экспортировать горячие клавиши приложения.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6339"/>
+        <location filename="../UI/UserInterface.py" line="6353"/>
         <source>Import Keyboard Shortcuts</source>
         <translation>Импорт горячих клавиш</translation>
     </message>
@@ -75615,7 +75765,7 @@
         <translation>Настройки</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5101"/>
+        <location filename="../UI/UserInterface.py" line="5115"/>
         <source>Help</source>
         <translation>Справка</translation>
     </message>
@@ -75665,266 +75815,261 @@
         <translation>Внешние инструменты/{0}</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="3650"/>
-        <source>&lt;h3&gt;Version Numbers&lt;/h3&gt;&lt;table&gt;</source>
-        <translation>&lt;h3&gt;Номера версий&lt;/h3&gt;&lt;table&gt;</translation>
-    </message>
-    <message>
-        <location filename="../UI/UserInterface.py" line="7312"/>
+        <location filename="../UI/UserInterface.py" line="7326"/>
         <source>&lt;/table&gt;</source>
         <translation>&lt;/table&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="3709"/>
+        <location filename="../UI/UserInterface.py" line="3723"/>
         <source>Email address or mail server address is empty. Please configure your Email settings in the Preferences Dialog.</source>
         <translation>Почтовый адрес или адрес почтового сервера пуст. &lt;p&gt;Настройте параметры вашей электронной почты в диалоге предпочтений.</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="3989"/>
+        <location filename="../UI/UserInterface.py" line="4003"/>
         <source>Restart application</source>
         <translation>Перезапустить приложение</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="3989"/>
+        <location filename="../UI/UserInterface.py" line="4003"/>
         <source>The application needs to be restarted. Do it now?</source>
         <translation>Необходимо перезапустить приложение. Сделать это сейчас?</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4070"/>
+        <location filename="../UI/UserInterface.py" line="4084"/>
         <source>Configure Tool Groups ...</source>
         <translation>Настройка группы инструментов...</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4074"/>
+        <location filename="../UI/UserInterface.py" line="4088"/>
         <source>Configure current Tool Group ...</source>
         <translation>Настроить текущую группу инструментов...</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4025"/>
+        <location filename="../UI/UserInterface.py" line="4039"/>
         <source>&amp;Builtin Tools</source>
         <translation>&amp;Встроенные инструменты</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4042"/>
+        <location filename="../UI/UserInterface.py" line="4056"/>
         <source>&amp;Plugin Tools</source>
         <translation>Инструменты - &amp;плагины</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4190"/>
+        <location filename="../UI/UserInterface.py" line="4204"/>
         <source>&amp;Show all</source>
         <translation>Показать &amp;всё</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4192"/>
+        <location filename="../UI/UserInterface.py" line="4206"/>
         <source>&amp;Hide all</source>
         <translation>Ск&amp;рыть всё</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5048"/>
+        <location filename="../UI/UserInterface.py" line="5062"/>
         <source>Qt 3 support</source>
         <translation>Поддержка Qt3</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5229"/>
+        <location filename="../UI/UserInterface.py" line="5243"/>
         <source>Problem</source>
         <translation>Проблема</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5229"/>
+        <location filename="../UI/UserInterface.py" line="5243"/>
         <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; does not exist or is zero length.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Файл &lt;b&gt;{0}&lt;/b&gt; либо не существует, либо нулевой длины.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5424"/>
+        <location filename="../UI/UserInterface.py" line="5438"/>
         <source>Process Generation Error</source>
         <translation>Ошибка при запуске процесса</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4948"/>
+        <location filename="../UI/UserInterface.py" line="4962"/>
         <source>&lt;p&gt;Could not start Qt-Designer.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Невозможно запустить Qt-Designer.&lt;br&gt;Убедитесь, что он доступен в &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5020"/>
+        <location filename="../UI/UserInterface.py" line="5034"/>
         <source>&lt;p&gt;Could not start Qt-Linguist.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Невозможно запустить Qt-Linguist.&lt;br&gt;Убедитесь, что он доступен в &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5073"/>
+        <location filename="../UI/UserInterface.py" line="5087"/>
         <source>&lt;p&gt;Could not start Qt-Assistant.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Невозможно запустить Qt-Assistant.&lt;br&gt;Убедитесь, что он доступен в &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5101"/>
-        <source>Currently no custom viewer is selected. Please use the preferences dialog to specify one.</source>
-        <translation>В настоящее время просмотрщик пользователя не выбран. Используйте диалог предпочтений для его выбора.</translation>
-    </message>
-    <message>
         <location filename="../UI/UserInterface.py" line="5115"/>
+        <source>Currently no custom viewer is selected. Please use the preferences dialog to specify one.</source>
+        <translation>В настоящее время просмотрщик пользователя не выбран. Используйте диалог предпочтений для его выбора.</translation>
+    </message>
+    <message>
+        <location filename="../UI/UserInterface.py" line="5129"/>
         <source>&lt;p&gt;Could not start custom viewer.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Невозможно запустить пользовательский просмотрщик.&lt;br&gt;Убедитесь, что он находится в &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5135"/>
+        <location filename="../UI/UserInterface.py" line="5149"/>
         <source>&lt;p&gt;Could not start the help viewer.&lt;br&gt;Ensure that it is available as &lt;b&gt;hh&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Невозможно запустить просмотрщик справки.&lt;br&gt;Убедитесь, что он доступен под именем &lt;b&gt;hh&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5185"/>
+        <location filename="../UI/UserInterface.py" line="5199"/>
         <source>&lt;p&gt;Could not start UI Previewer.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Невозможно запустить UI Previewer (предпросмотр интерфейсов).&lt;br&gt;Убедитесь, что он находится в &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5242"/>
+        <location filename="../UI/UserInterface.py" line="5256"/>
         <source>&lt;p&gt;Could not start Translation Previewer.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Невозможно запустить Translation Previewer (предпросмотр переводов).&lt;br&gt;Убедитесь, что он находится в &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5265"/>
+        <location filename="../UI/UserInterface.py" line="5279"/>
         <source>&lt;p&gt;Could not start SQL Browser.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Невозможно запустить SQL браузер.&lt;br&gt;Убедитесь, что он доступен как &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5369"/>
+        <location filename="../UI/UserInterface.py" line="5383"/>
         <source>External Tools</source>
         <translation>Внешние инструменты</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5360"/>
+        <location filename="../UI/UserInterface.py" line="5374"/>
         <source>No tool entry found for external tool &apos;{0}&apos; in tool group &apos;{1}&apos;.</source>
         <translation>Запись для внешнего инструмента &apos;{0}&apos; не найдена в группе инструментов &apos;{1}&apos;.</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5369"/>
+        <location filename="../UI/UserInterface.py" line="5383"/>
         <source>No toolgroup entry &apos;{0}&apos; found.</source>
         <translation>Запись для группы инструментов &apos;{0}&apos; не найдена.</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5408"/>
+        <location filename="../UI/UserInterface.py" line="5422"/>
         <source>Starting process &apos;{0} {1}&apos;.
 </source>
         <translation>Запускается процесс &apos;{0} {1}&apos;.
 </translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5424"/>
+        <location filename="../UI/UserInterface.py" line="5438"/>
         <source>&lt;p&gt;Could not start the tool entry &lt;b&gt;{0}&lt;/b&gt;.&lt;br&gt;Ensure that it is available as &lt;b&gt;{1}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Невозможно запустить инструмент &lt;b&gt;{0}&lt;/b&gt;.&lt;br&gt;Убедитесь, что он доступен в &lt;b&gt;{1}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5502"/>
+        <location filename="../UI/UserInterface.py" line="5516"/>
         <source>Process &apos;{0}&apos; has exited.
 </source>
         <translation>Процесс &apos;{0}&apos; завершен.
 </translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5905"/>
+        <location filename="../UI/UserInterface.py" line="5919"/>
         <source>Documentation Missing</source>
         <translation>Документация отсутствует</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5905"/>
+        <location filename="../UI/UserInterface.py" line="5919"/>
         <source>&lt;p&gt;The documentation starting point &quot;&lt;b&gt;{0}&lt;/b&gt;&quot; could not be found.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Стартовый каталог документации &quot;&lt;b&gt;{0}&lt;/b&gt;&quot; не найден.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5888"/>
+        <location filename="../UI/UserInterface.py" line="5902"/>
         <source>Documentation</source>
         <translation>Документация</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5713"/>
+        <location filename="../UI/UserInterface.py" line="5727"/>
         <source>&lt;p&gt;The PyQt4 documentation starting point has not been configured.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Стартовый каталог документации PyQt4 не найден.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6339"/>
+        <location filename="../UI/UserInterface.py" line="6353"/>
         <source>Keyboard shortcut file (*.e4k)</source>
         <translation>Файл горячих клавиш (*.e4k)</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6509"/>
+        <location filename="../UI/UserInterface.py" line="6523"/>
         <source>Save tasks</source>
         <translation>Сохранить задачи</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6509"/>
+        <location filename="../UI/UserInterface.py" line="6523"/>
         <source>&lt;p&gt;The tasks file &lt;b&gt;{0}&lt;/b&gt; could not be written.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Невозможно сохранить файл с задачами: &lt;b&gt;{0}&lt;/b&gt;&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6538"/>
+        <location filename="../UI/UserInterface.py" line="6552"/>
         <source>Read tasks</source>
         <translation>Прочитать задачи</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6538"/>
+        <location filename="../UI/UserInterface.py" line="6552"/>
         <source>&lt;p&gt;The tasks file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Невозможно прочитать файл задач: &lt;b&gt;{0}&lt;/b&gt;&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6634"/>
+        <location filename="../UI/UserInterface.py" line="6648"/>
         <source>Save session</source>
         <translation>Сохранить сессию</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6572"/>
+        <location filename="../UI/UserInterface.py" line="6586"/>
         <source>&lt;p&gt;The session file &lt;b&gt;{0}&lt;/b&gt; could not be written.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Невозможно записать файл сессии &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6618"/>
+        <location filename="../UI/UserInterface.py" line="6632"/>
         <source>Read session</source>
         <translation>Загрузить сессию</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6618"/>
+        <location filename="../UI/UserInterface.py" line="6632"/>
         <source>&lt;p&gt;The session file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Невозможно прочитать файл сессии &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6902"/>
+        <location filename="../UI/UserInterface.py" line="6916"/>
         <source>Drop Error</source>
         <translation>Ошибка Drag&amp;&amp;Drop</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6902"/>
+        <location filename="../UI/UserInterface.py" line="6916"/>
         <source>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; is not a file.&lt;/p&gt;</source>
         <translation>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; не является файлом&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7087"/>
+        <location filename="../UI/UserInterface.py" line="7101"/>
         <source>&amp;Cancel</source>
         <translation>От&amp;мена</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7096"/>
+        <location filename="../UI/UserInterface.py" line="7110"/>
         <source>Trying host {0}</source>
         <translation>Подключение к хосту {0}</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7254"/>
+        <location filename="../UI/UserInterface.py" line="7268"/>
         <source>Update available</source>
         <translation>Обновления доступны</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7273"/>
+        <location filename="../UI/UserInterface.py" line="7287"/>
         <source>Error during updates check</source>
         <translation>Ошибка при проверке обновлений</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7273"/>
+        <location filename="../UI/UserInterface.py" line="7287"/>
         <source>Could not perform updates check.</source>
         <translation>Невозможно запустить проверку обновлений.</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7297"/>
+        <location filename="../UI/UserInterface.py" line="7311"/>
         <source>&lt;h3&gt;Available versions&lt;/h3&gt;&lt;table&gt;</source>
         <translation>&lt;h3&gt;Доступные версии&lt;/h3&gt;&lt;table&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7349"/>
+        <location filename="../UI/UserInterface.py" line="7363"/>
         <source>First time usage</source>
         <translation>Первое использование</translation>
     </message>
@@ -75964,27 +76109,27 @@
         <translation>&lt;b&gt;Документация Python 2&lt;/b&gt;&lt;p&gt;Показать документацию Python 2. Если местонахождение документации не было настроено, то искать в директории &lt;i&gt;doc&lt;/i&gt; каталога где находится исполняемый файл Python 2 под Windows и в директории &lt;i&gt;/usr/share/doc/packages/python/html/python-docs-html&lt;/i&gt; под UNIX. Местонахождение документации можно задать с помощью переменной среды окружения PYTHON2DOCDIR.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7162"/>
+        <location filename="../UI/UserInterface.py" line="7176"/>
         <source>Error getting versions information</source>
         <translation>Ошибка при получении информации о версии</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7155"/>
+        <location filename="../UI/UserInterface.py" line="7169"/>
         <source>The versions information could not be downloaded. Please go online and try again.</source>
         <translation>Невозможно загрузить информацию о версии. Пожалуйста попробуйте ещё раз.</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6107"/>
+        <location filename="../UI/UserInterface.py" line="6121"/>
         <source>Open Browser</source>
         <translation>Открыть браузер</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6107"/>
+        <location filename="../UI/UserInterface.py" line="6121"/>
         <source>Could not start a web browser</source>
         <translation>Невозможно запустить web-браузер</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7162"/>
+        <location filename="../UI/UserInterface.py" line="7176"/>
         <source>The versions information could not be downloaded for the last 7 days. Please go online and try again.</source>
         <translation>Невозможно загрузить информацию о версии в течении последних 7 дней. Пожалуйста попробуйте ещё раз.</translation>
     </message>
@@ -76070,12 +76215,12 @@
         <translation>&lt;b&gt;Снимки&lt;/b&gt;&lt;p&gt;Сделать снимок области экрана.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5337"/>
+        <location filename="../UI/UserInterface.py" line="5351"/>
         <source>&lt;p&gt;Could not start Snapshot tool.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Невозможно запустить программу для создания снимка экрана.&lt;br&gt;Убедитесь что она установлена как &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7368"/>
+        <location filename="../UI/UserInterface.py" line="7382"/>
         <source>Select Workspace Directory</source>
         <translation>Выбор директории рабочей области</translation>
     </message>
@@ -76440,7 +76585,7 @@
         <translation>Открыть документацию PyQt5</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5775"/>
+        <location filename="../UI/UserInterface.py" line="5789"/>
         <source>&lt;p&gt;The PyQt5 documentation starting point has not been configured.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Стартовый каталог документации PyQt5 не задан.&lt;/p&gt;</translation>
     </message>
@@ -76450,7 +76595,7 @@
         <translation>&lt;b&gt;Документация Python 3&lt;/b&gt;&lt;p&gt;Показать документацию Python 3. Если местонахождение документации не было настроено, то искать в директории &lt;i&gt;doc&lt;/i&gt; каталога где находится исполняемый файл Python 3 под Windows и в директории &lt;i&gt;/usr/share/doc/packages/python/html/python-docs-html&lt;/i&gt; под UNIX. Местонахождение документации можно задать с помощью переменной среды окружения PYTHON3DOCDIR.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7087"/>
+        <location filename="../UI/UserInterface.py" line="7101"/>
         <source>%v/%m</source>
         <translation>%v/%m</translation>
     </message>
@@ -76470,7 +76615,7 @@
         <translation>&lt;b&gt;Показать журнал ошибок...&lt;/b&gt;&lt;p&gt;Показать журнал ошибок.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7091"/>
+        <location filename="../UI/UserInterface.py" line="7105"/>
         <source>Version Check</source>
         <translation>Проверка версии</translation>
     </message>
@@ -76540,27 +76685,27 @@
         <translation>&lt;b&gt;Документация eric API&lt;/b&gt;&lt;p&gt;Показать документацию eric API. Местонахождение документации - каталог Documentation/Source, расположенный в директории инсталляции eric6.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5048"/>
+        <location filename="../UI/UserInterface.py" line="5062"/>
         <source>Qt v.3 is not supported by eric6.</source>
         <translation>eric6 не поддерживает Qt3.</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7254"/>
+        <location filename="../UI/UserInterface.py" line="7268"/>
         <source>The update to &lt;b&gt;{0}&lt;/b&gt; of eric6 is available at &lt;b&gt;{1}&lt;/b&gt;. Would you like to get it?</source>
         <translation>На сайте &lt;b&gt;{1}&lt;/b&gt; доступно обновление eric6 до версии &lt;b&gt;{0}&lt;/b&gt;. Загрузить?</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7266"/>
+        <location filename="../UI/UserInterface.py" line="7280"/>
         <source>Eric6 is up to date</source>
         <translation>Eric6 не требует обновлений</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7266"/>
+        <location filename="../UI/UserInterface.py" line="7280"/>
         <source>You are using the latest version of eric6</source>
         <translation>Вы используете самую последнюю версию eric6</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7349"/>
+        <location filename="../UI/UserInterface.py" line="7363"/>
         <source>eric6 has not been configured yet. The configuration dialog will be started.</source>
         <translation>Настройка eric6 ещё не выполнена. Сейчас будет запущен диалог конфигурации.</translation>
     </message>
@@ -76570,17 +76715,17 @@
         <translation>Генерация панели инструментов...</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4045"/>
+        <location filename="../UI/UserInterface.py" line="4059"/>
         <source>&amp;User Tools</source>
         <translation>&amp;Инструменты пользователя</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4117"/>
+        <location filename="../UI/UserInterface.py" line="4131"/>
         <source>No User Tools Configured</source>
         <translation>Инструменты пользователя не сконфигурированы</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7107"/>
+        <location filename="../UI/UserInterface.py" line="7121"/>
         <source>The versions information cannot not be downloaded because you are &lt;b&gt;offline&lt;/b&gt;. Please go online and try again.</source>
         <translation>Невозможно загрузить информацию о версии потому что вы &lt;b&gt;не в сети&lt;/b&gt;. Пожалуйста, подключитесь к интернету и повторите попытку.</translation>
     </message>
@@ -76625,7 +76770,7 @@
         <translation>&lt;b&gt;Сохранить сессию...&lt;/b&gt;&lt;p&gt;Позволяет сохранить текущую сессию на диск. Открывается диалог для выбора имени файла.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6656"/>
+        <location filename="../UI/UserInterface.py" line="6670"/>
         <source>Load session</source>
         <translation>Загрузить сессию</translation>
     </message>
@@ -76640,17 +76785,17 @@
         <translation>&lt;b&gt;Загрузить сессию...&lt;/b&gt;&lt;p&gt;Позволяет загрузить сессию, ранее сохраненную на диске. Открывается диалог для выбора имени файла.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6656"/>
+        <location filename="../UI/UserInterface.py" line="6670"/>
         <source>eric6 Session Files (*.e5s)</source>
         <translation>Файлы сессии eric6 (*.e5s)</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6707"/>
+        <location filename="../UI/UserInterface.py" line="6721"/>
         <source>Crash Session found!</source>
         <translation>Обнаружена crash-сессия!</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6707"/>
+        <location filename="../UI/UserInterface.py" line="6721"/>
         <source>A session file of a crashed session was found. Shall this session be restored?</source>
         <translation>Найден файл crashed-сессии. Должна ли эта сессия быть восстановлена?</translation>
     </message>
@@ -76665,18 +76810,18 @@
         <translation>Инициализация плагинов...</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7242"/>
+        <location filename="../UI/UserInterface.py" line="7256"/>
         <source>Update Check</source>
         <translation>Проверка обновлений</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7242"/>
+        <location filename="../UI/UserInterface.py" line="7256"/>
         <source>You installed eric directly from the source code. There is no possibility to check for the availability of an update.</source>
         <translation>Eric установлен непосредственно из исходного кода.
 Невозможно проверить наличие обновлений.</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7232"/>
+        <location filename="../UI/UserInterface.py" line="7246"/>
         <source>You are using a snapshot release of eric6. A more up-to-date stable release might be available.</source>
         <translation>Вы используете промежуточный релиз eric6. Возможно на сайте доступна и более свежий стабильный релиз.</translation>
     </message>
@@ -76731,7 +76876,7 @@
         <translation>&lt;b&gt;Документация PySide2&lt;/b&gt;&lt;p&gt;Отображение документации PySide2.  В зависимости от ваших настроек это может быть отображение справки либо во встроенных средствах просмотра справки Eric-вьюере/web-браузере, либо в Qt Assistant, либо во внешнем web-браузере. &lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5888"/>
+        <location filename="../UI/UserInterface.py" line="5902"/>
         <source>&lt;p&gt;The PySide{0} documentation starting point has not been configured.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Просмотр документации PySide{0} не настроен.&lt;/p&gt;</translation>
     </message>
@@ -76807,17 +76952,17 @@
         <translation>&lt;b&gt;Рестарт IDEE&lt;/b&gt;&lt;p&gt;Перезапуск среды IDE. Любые несохраненные изменения сохраняются в первую очередь. Любая программа Python, находящаяся в процессе отладки, будет остановлена, предпочтения будут записаны на диск.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6062"/>
+        <location filename="../UI/UserInterface.py" line="6076"/>
         <source>Start Web Browser</source>
         <translation>Запуск web-браузера</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6001"/>
+        <location filename="../UI/UserInterface.py" line="6015"/>
         <source>The eric6 web browser could not be started.</source>
         <translation>Невозможно запустить eric6 web-браузер.</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6062"/>
+        <location filename="../UI/UserInterface.py" line="6076"/>
         <source>&lt;p&gt;The eric6 web browser is not started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
         <translation>&lt;p&gt;Eric6 web-браузер не запущен.&lt;/p&gt;&lt;p&gt;Причина: {0}&lt;/p&gt;</translation>
     </message>
@@ -76911,6 +77056,11 @@
         <source>Central Park</source>
         <translation>Центральное окно</translation>
     </message>
+    <message>
+        <location filename="../UI/UserInterface.py" line="3650"/>
+        <source>&lt;h2&gt;Version Numbers&lt;/h2&gt;&lt;table&gt;</source>
+        <translation>&lt;h2&gt;Номера версий&lt;/h2&gt;&lt;table&gt;</translation>
+    </message>
 </context>
 <context>
     <name>UserPropertiesDialog</name>
@@ -77173,7 +77323,7 @@
 <context>
     <name>VariableItem</name>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="207"/>
+        <location filename="../Debugger/VariablesViewer.py" line="211"/>
         <source>&lt;double click to show value&gt;</source>
         <translation>&lt;дважды кликните чтобы показать значение&gt;</translation>
     </message>
@@ -77240,22 +77390,22 @@
 <context>
     <name>VariablesModel</name>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="278"/>
+        <location filename="../Debugger/VariablesViewer.py" line="282"/>
         <source>Globals</source>
         <translation>Глобальные</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="280"/>
+        <location filename="../Debugger/VariablesViewer.py" line="284"/>
         <source>Locals</source>
         <translation>Локальные</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="282"/>
+        <location filename="../Debugger/VariablesViewer.py" line="286"/>
         <source>Type</source>
         <translation>Тип</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="282"/>
+        <location filename="../Debugger/VariablesViewer.py" line="286"/>
         <source>Value</source>
         <translation>Значение</translation>
     </message>
@@ -77263,34 +77413,34 @@
 <context>
     <name>VariablesViewer</name>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="951"/>
+        <location filename="../Debugger/VariablesViewer.py" line="955"/>
         <source>Global Variables</source>
         <translation>Глобальные переменные</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="952"/>
+        <location filename="../Debugger/VariablesViewer.py" line="956"/>
         <source>&lt;b&gt;The Global Variables Viewer Window&lt;/b&gt;&lt;p&gt;This window displays the global variables of the debugged program.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Окно показа глобальных переменных&lt;/b&gt;
 &lt;p&gt;Это окно отображает глобальные переменные отлаживаемой программы.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="958"/>
+        <location filename="../Debugger/VariablesViewer.py" line="962"/>
         <source>Local Variables</source>
         <translation>Локальные переменные</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="959"/>
+        <location filename="../Debugger/VariablesViewer.py" line="963"/>
         <source>&lt;b&gt;The Local Variables Viewer Window&lt;/b&gt;&lt;p&gt;This window displays the local variables of the debugged program.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Окно показа локальных переменных&lt;/b&gt;
 &lt;p&gt;Это окно отображает локальные переменные отлаживаемой программы.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1076"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1080"/>
         <source>Show Details...</source>
         <translation>Показать подробности...</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1091"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1095"/>
         <source>Configure...</source>
         <translation>Настроить...</translation>
     </message>
@@ -77300,30 +77450,35 @@
         <translation>{0} элементов</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1089"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1093"/>
         <source>Refresh</source>
         <translation>Освежить</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1078"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1082"/>
         <source>Expand</source>
         <translation>Развернуть</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1079"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1083"/>
         <source>Collapse</source>
         <translation>Свернуть</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1080"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1084"/>
         <source>Collapse All</source>
         <translation>Свернуть все</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1092"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1096"/>
         <source>Variables Type Filter...</source>
         <translation>Фильтр типа переменных...</translation>
     </message>
+    <message>
+        <location filename="../Debugger/VariablesViewer.py" line="47"/>
+        <source>unsized</source>
+        <translation>unsized</translation>
+    </message>
 </context>
 <context>
     <name>VcsCommandOptionsDialog</name>
@@ -82468,7 +82623,7 @@
     <message>
         <location filename="../Plugins/PluginVmListspace.py" line="26"/>
         <source>Listspace</source>
-        <translation>Списки</translation>
+        <translation>Listspace</translation>
     </message>
 </context>
 <context>
--- a/eric6/i18n/eric6_tr.ts	Fri Nov 01 16:11:55 2019 +0100
+++ b/eric6/i18n/eric6_tr.ts	Sun Dec 01 16:38:47 2019 +0100
@@ -46410,43 +46410,78 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.py" line="39"/>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.py" line="42"/>
         <source>All Files (*)</source>
         <translation type="unfinished">Tüm Dosyalar (*)</translation>
     </message>
     <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="255"/>
+        <source>Documentation</source>
+        <translation type="unfinished">Belgeleme</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="261"/>
+        <source>MicroPython:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="268"/>
+        <source>Enter the URL for the MicroPython documentation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="275"/>
+        <source>CircuitPython:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="282"/>
+        <source>Enter the URL for the CircuitPython documentation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="289"/>
+        <source>BBC micro:bit:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="296"/>
+        <source>Enter the URL for the BBC micro:bit MicroPython documentation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="172"/>
-        <source>Documentation</source>
-        <translation type="unfinished">Belgeleme</translation>
+        <source>PyBoard</source>
+        <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="178"/>
-        <source>MicroPython:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="185"/>
-        <source>Enter the URL for the MicroPython documentation</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="192"/>
-        <source>CircuitPython:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="199"/>
-        <source>Enter the URL for the CircuitPython documentation</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="206"/>
-        <source>BBC micro:bit:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="213"/>
-        <source>Enter the URL for the BBC micro:bit MicroPython documentation</source>
+        <source>dfu-util Path:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="194"/>
+        <source>Enter the path of the dfu-util flashing executable</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="204"/>
+        <source>Firmware</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="217"/>
+        <source>Enter the URL for the MicroPython firmware for PyBoard, ESP8266 and ESP32</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="231"/>
+        <source>Enter the URL for the CircuitPython firmware</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="245"/>
+        <source>Enter the URL for the BBC micro:bit Firmware</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -46643,7 +46678,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1202"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1210"/>
         <source>Synchronize Time</source>
         <translation type="unfinished"></translation>
     </message>
@@ -46658,107 +46693,107 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1366"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1421"/>
         <source>Compile Python File</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1386"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1441"/>
         <source>Compile Current Editor</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1140"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1148"/>
         <source>&lt;h3&gt;Device Version Information&lt;/h3&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1149"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1157"/>
         <source>No version information available.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1151"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1159"/>
         <source>Device Version Information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1174"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1182"/>
         <source>unknown</source>
         <translation type="unfinished">bilinmeyen</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1178"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1186"/>
         <source>Device Implementation Information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1178"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1186"/>
         <source>&lt;h3&gt;Device Implementation Information&lt;/h3&gt;&lt;p&gt;This device contains &lt;b&gt;{0} {1}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1202"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1210"/>
         <source>&lt;p&gt;The time of the connected device was synchronized with the local time.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1224"/>
-        <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../MicroPython/MicroPythonWidget.py" line="1232"/>
+        <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1240"/>
         <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;p&gt;{0}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1246"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1254"/>
         <source>Device Date and Time</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1259"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1267"/>
         <source>Local Date and Time</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1259"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1267"/>
         <source>&lt;h3&gt;Local Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1279"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1334"/>
         <source>Error handling device</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1279"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1334"/>
         <source>&lt;p&gt;There was an error communicating with the connected device.&lt;/p&gt;&lt;p&gt;Method: {0}&lt;/p&gt;&lt;p&gt;Message: {1}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1318"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1373"/>
         <source>The MicroPython cross compiler &lt;b&gt;mpy-cross&lt;/b&gt; cannot be found. Ensure it is in the search path or configure it on the MicroPython configuration page.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1336"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1391"/>
         <source>Python Files (*.py);;All Files (*)</source>
         <translation type="unfinished">Python Dosyaları (*.py);;Tüm Dosyalar (*)</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1346"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1401"/>
         <source>The Python file &lt;b&gt;{0}&lt;/b&gt; does not exist. Aborting...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1356"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1411"/>
         <source>&apos;mpy-cross&apos; Output</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1379"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1434"/>
         <source>The current editor does not contain a Python file. Aborting...</source>
         <translation type="unfinished"></translation>
     </message>
@@ -46783,14 +46818,39 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1126"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1134"/>
         <source>Show Documentation</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1138"/>
+        <source>Configure</source>
+        <translation type="unfinished">Yapılandırma</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1113"/>
+        <source>Show Time</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../MicroPython/MicroPythonWidget.py" line="1130"/>
-        <source>Configure</source>
-        <translation type="unfinished">Yapılandırma</translation>
+        <source>Download Firmware</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1310"/>
+        <source>Date and Time</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1293"/>
+        <source>&lt;table&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;Local Date and Time&lt;/th&gt;&lt;th&gt;Device Date and Time&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{0}&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{1}&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1310"/>
+        <source>&lt;table&gt;&lt;tr&gt;&lt;th&gt;Local Date and Time&lt;/th&gt;&lt;th&gt;Device Date and Time&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&apos;center&apos;&gt;{0} {1}&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -52142,17 +52202,17 @@
 <context>
     <name>Preferences</name>
     <message>
-        <location filename="../Preferences/__init__.py" line="1606"/>
+        <location filename="../Preferences/__init__.py" line="1610"/>
         <source>Export Preferences</source>
         <translation>Seçenekleri Dışa Aktar</translation>
     </message>
     <message>
-        <location filename="../Preferences/__init__.py" line="1634"/>
+        <location filename="../Preferences/__init__.py" line="1638"/>
         <source>Import Preferences</source>
         <translation>Seçenekleri İçe Aktar</translation>
     </message>
     <message>
-        <location filename="../Preferences/__init__.py" line="1634"/>
+        <location filename="../Preferences/__init__.py" line="1638"/>
         <source>Properties File (*.ini);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -52510,7 +52570,7 @@
         <translation>CORBA IDL Derleyicisi</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="413"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="430"/>
         <source>(unknown)</source>
         <translation>(bilinmeyen)</translation>
     </message>
@@ -52520,17 +52580,17 @@
         <translation>Heceleme Kontrolü - PyEnchant</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="361"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="378"/>
         <source>(not configured)</source>
         <translation>(ayarlanmadı)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="415"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="432"/>
         <source>(not executable)</source>
         <translation>(yürütülemez)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="452"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="469"/>
         <source>(not found)</source>
         <translation>(bulunamadı)</translation>
     </message>
@@ -52600,7 +52660,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="394"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="411"/>
         <source>(module not found)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -52629,6 +52689,21 @@
         <source>PyPI Package Management</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="297"/>
+        <source>MicroPython - MPY Cross Compiler</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="300"/>
+        <source>MicroPython - ESP Tool</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="306"/>
+        <source>MicroPython - PyBoard Flasher</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>Project</name>
@@ -56156,23 +56231,88 @@
 <context>
     <name>PyBoardDevice</name>
     <message>
-        <location filename="../MicroPython/PyBoardDevices.py" line="70"/>
+        <location filename="../MicroPython/PyBoardDevices.py" line="75"/>
         <source>PyBoard</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/PyBoardDevices.py" line="159"/>
+        <location filename="../MicroPython/PyBoardDevices.py" line="164"/>
         <source>Workspace Directory</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/PyBoardDevices.py" line="159"/>
+        <location filename="../MicroPython/PyBoardDevices.py" line="164"/>
         <source>Python files for PyBoard devices are stored on the device. Therefore, to edit these files you need to have the device plugged in. Until you plug in a device, the standard directory will be used.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/PyBoardDevices.py" line="186"/>
-        <source>MicroPython Install Instructions</source>
+        <location filename="../MicroPython/PyBoardDevices.py" line="202"/>
+        <source>List DFU-capable Devices</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="356"/>
+        <source>Flash MicroPython Firmware</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="209"/>
+        <source>MicroPython Flash Instructions</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="239"/>
+        <source>dfu-util not available</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="239"/>
+        <source>The dfu-util firmware flashing tool &lt;b&gt;dfu-util&lt;/b&gt; cannot be found or is not executable. Ensure it is in the search path or configure it on the MicroPython configuration page.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="260"/>
+        <source>&lt;h3&gt;Enable DFU Mode&lt;/h3&gt;&lt;p&gt;1. Disconnect everything from your board&lt;/p&gt;&lt;p&gt;2. Disconnect your board&lt;/p&gt;&lt;p&gt;3. Connect the DFU/BOOT0 pin with a 3.3V pin&lt;/p&gt;&lt;p&gt;4. Re-connect your board&lt;/p&gt;&lt;hr /&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="270"/>
+        <source>&lt;p&gt;&lt;b&gt;Warning:&lt;/b&gt; Make sure that all other DFU capable devices except your PyBoard are disconnected.&lt;hr /&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="276"/>
+        <source>&lt;p&gt;Press &lt;b&gt;OK&lt;/b&gt; to continue...&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="279"/>
+        <source>Enable DFU mode</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="293"/>
+        <source>&lt;h3&gt;Disable DFU Mode&lt;/h3&gt;&lt;p&gt;1. Disconnect your board&lt;/p&gt;&lt;p&gt;2. Remove the DFU jumper&lt;/p&gt;&lt;p&gt;3. Re-connect your board&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;Press &lt;b&gt;OK&lt;/b&gt; to continue...&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="301"/>
+        <source>Disable DFU mode</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="356"/>
+        <source>&apos;dfu-util&apos; Output</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="322"/>
+        <source>List DFU capable Devices</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="344"/>
+        <source>MicroPython Firmware Files (*.dfu);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -77120,7 +77260,7 @@
         <translation>İndirmek için mümkün olan sürümü göster</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="3709"/>
+        <location filename="../UI/UserInterface.py" line="3723"/>
         <source>Report Bug</source>
         <translation>Hata Raporu</translation>
     </message>
@@ -77505,7 +77645,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6315"/>
+        <location filename="../UI/UserInterface.py" line="6329"/>
         <source>Export Keyboard Shortcuts</source>
         <translation>Kılavye Kısa Yollarını Dışa Aktar</translation>
     </message>
@@ -77525,7 +77665,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6339"/>
+        <location filename="../UI/UserInterface.py" line="6353"/>
         <source>Import Keyboard Shortcuts</source>
         <translation>Klavye kısayollarını İçe Aktar</translation>
     </message>
@@ -77770,7 +77910,7 @@
         <translation>Ayarlar</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5101"/>
+        <location filename="../UI/UserInterface.py" line="5115"/>
         <source>Help</source>
         <translation>Yardım</translation>
     </message>
@@ -77822,55 +77962,55 @@
     <message>
         <location filename="../UI/UserInterface.py" line="3650"/>
         <source>&lt;h3&gt;Version Numbers&lt;/h3&gt;&lt;table&gt;</source>
-        <translation>&lt;h3&gt;Sürüm Numaraları&lt;/h3&gt;&lt;table&gt;</translation>
-    </message>
-    <message>
-        <location filename="../UI/UserInterface.py" line="7312"/>
+        <translation type="obsolete">&lt;h3&gt;Sürüm Numaraları&lt;/h3&gt;&lt;table&gt;</translation>
+    </message>
+    <message>
+        <location filename="../UI/UserInterface.py" line="7326"/>
         <source>&lt;/table&gt;</source>
         <translation>&lt;/table&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="3709"/>
+        <location filename="../UI/UserInterface.py" line="3723"/>
         <source>Email address or mail server address is empty. Please configure your Email settings in the Preferences Dialog.</source>
         <translation>E-posta adresi veya posta  sunucu adresi  boş. Lütfen e-posta ayarlarını özellikler diyaloğundan giriniz.</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="3989"/>
+        <location filename="../UI/UserInterface.py" line="4003"/>
         <source>Restart application</source>
         <translation>Uygulmayı yeniden başlat</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="3989"/>
+        <location filename="../UI/UserInterface.py" line="4003"/>
         <source>The application needs to be restarted. Do it now?</source>
         <translation>Uygulama yeniden başlatılmaya ihtiyaç duyuyor. Şimdi yapılsın mı?</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4070"/>
+        <location filename="../UI/UserInterface.py" line="4084"/>
         <source>Configure Tool Groups ...</source>
         <translation>Alet Grupları Ayarlanıyor...</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4074"/>
+        <location filename="../UI/UserInterface.py" line="4088"/>
         <source>Configure current Tool Group ...</source>
         <translation>Geçerli alet grubunu ayarla...</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4025"/>
+        <location filename="../UI/UserInterface.py" line="4039"/>
         <source>&amp;Builtin Tools</source>
         <translation>Ya&amp;pılandırma Araçları</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4042"/>
+        <location filename="../UI/UserInterface.py" line="4056"/>
         <source>&amp;Plugin Tools</source>
         <translation>Eklen&amp;ti Araçları</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4190"/>
+        <location filename="../UI/UserInterface.py" line="4204"/>
         <source>&amp;Show all</source>
         <translation>Hepsini Gö&amp;ster</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4192"/>
+        <location filename="../UI/UserInterface.py" line="4206"/>
         <source>&amp;Hide all</source>
         <translation>&amp;Hepsini gizle</translation>
     </message>
@@ -77880,204 +78020,204 @@
         <translation type="obsolete">Bugeçerli projede tanımlanan ana betik değil. Durduruluyor</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5048"/>
+        <location filename="../UI/UserInterface.py" line="5062"/>
         <source>Qt 3 support</source>
         <translation>Qt3 Desteği</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5229"/>
+        <location filename="../UI/UserInterface.py" line="5243"/>
         <source>Problem</source>
         <translation>Problem</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5229"/>
+        <location filename="../UI/UserInterface.py" line="5243"/>
         <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; does not exist or is zero length.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5424"/>
+        <location filename="../UI/UserInterface.py" line="5438"/>
         <source>Process Generation Error</source>
         <translation>İşlem Üretecinde Hata</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4948"/>
+        <location filename="../UI/UserInterface.py" line="4962"/>
         <source>&lt;p&gt;Could not start Qt-Designer.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5020"/>
+        <location filename="../UI/UserInterface.py" line="5034"/>
         <source>&lt;p&gt;Could not start Qt-Linguist.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5073"/>
+        <location filename="../UI/UserInterface.py" line="5087"/>
         <source>&lt;p&gt;Could not start Qt-Assistant.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5101"/>
-        <source>Currently no custom viewer is selected. Please use the preferences dialog to specify one.</source>
-        <translation>Hali hazırda kullanıcı göstericisi seçilmedi. Lütfen .birini belirlemek için özellikler diyaloğunu kullanının.</translation>
-    </message>
-    <message>
         <location filename="../UI/UserInterface.py" line="5115"/>
+        <source>Currently no custom viewer is selected. Please use the preferences dialog to specify one.</source>
+        <translation>Hali hazırda kullanıcı göstericisi seçilmedi. Lütfen .birini belirlemek için özellikler diyaloğunu kullanının.</translation>
+    </message>
+    <message>
+        <location filename="../UI/UserInterface.py" line="5129"/>
         <source>&lt;p&gt;Could not start custom viewer.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5135"/>
+        <location filename="../UI/UserInterface.py" line="5149"/>
         <source>&lt;p&gt;Could not start the help viewer.&lt;br&gt;Ensure that it is available as &lt;b&gt;hh&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5185"/>
+        <location filename="../UI/UserInterface.py" line="5199"/>
         <source>&lt;p&gt;Could not start UI Previewer.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5242"/>
+        <location filename="../UI/UserInterface.py" line="5256"/>
         <source>&lt;p&gt;Could not start Translation Previewer.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5265"/>
+        <location filename="../UI/UserInterface.py" line="5279"/>
         <source>&lt;p&gt;Could not start SQL Browser.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5369"/>
+        <location filename="../UI/UserInterface.py" line="5383"/>
         <source>External Tools</source>
         <translation>Harici Araçlar</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5360"/>
+        <location filename="../UI/UserInterface.py" line="5374"/>
         <source>No tool entry found for external tool &apos;{0}&apos; in tool group &apos;{1}&apos;.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5369"/>
+        <location filename="../UI/UserInterface.py" line="5383"/>
         <source>No toolgroup entry &apos;{0}&apos; found.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5408"/>
+        <location filename="../UI/UserInterface.py" line="5422"/>
         <source>Starting process &apos;{0} {1}&apos;.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5424"/>
+        <location filename="../UI/UserInterface.py" line="5438"/>
         <source>&lt;p&gt;Could not start the tool entry &lt;b&gt;{0}&lt;/b&gt;.&lt;br&gt;Ensure that it is available as &lt;b&gt;{1}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5502"/>
+        <location filename="../UI/UserInterface.py" line="5516"/>
         <source>Process &apos;{0}&apos; has exited.
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5905"/>
+        <location filename="../UI/UserInterface.py" line="5919"/>
         <source>Documentation Missing</source>
         <translation>Eksik Belgeleme</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5905"/>
+        <location filename="../UI/UserInterface.py" line="5919"/>
         <source>&lt;p&gt;The documentation starting point &quot;&lt;b&gt;{0}&lt;/b&gt;&quot; could not be found.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5888"/>
+        <location filename="../UI/UserInterface.py" line="5902"/>
         <source>Documentation</source>
         <translation>Belgeleme</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5713"/>
+        <location filename="../UI/UserInterface.py" line="5727"/>
         <source>&lt;p&gt;The PyQt4 documentation starting point has not been configured.&lt;/p&gt;</source>
         <translation>&lt;p&gt;PyQt4 Belgelerinin başlama noktası ayarlanmamış.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6509"/>
+        <location filename="../UI/UserInterface.py" line="6523"/>
         <source>Save tasks</source>
         <translation>Görevleri kaydet</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6509"/>
+        <location filename="../UI/UserInterface.py" line="6523"/>
         <source>&lt;p&gt;The tasks file &lt;b&gt;{0}&lt;/b&gt; could not be written.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6538"/>
+        <location filename="../UI/UserInterface.py" line="6552"/>
         <source>Read tasks</source>
         <translation>Görevler Okunuyor</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6538"/>
+        <location filename="../UI/UserInterface.py" line="6552"/>
         <source>&lt;p&gt;The tasks file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6634"/>
+        <location filename="../UI/UserInterface.py" line="6648"/>
         <source>Save session</source>
         <translation>Oturumu kaydet</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6572"/>
+        <location filename="../UI/UserInterface.py" line="6586"/>
         <source>&lt;p&gt;The session file &lt;b&gt;{0}&lt;/b&gt; could not be written.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6618"/>
+        <location filename="../UI/UserInterface.py" line="6632"/>
         <source>Read session</source>
         <translation>Oturumu oku</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6618"/>
+        <location filename="../UI/UserInterface.py" line="6632"/>
         <source>&lt;p&gt;The session file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6902"/>
+        <location filename="../UI/UserInterface.py" line="6916"/>
         <source>Drop Error</source>
         <translation>Düşme hatası</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6902"/>
+        <location filename="../UI/UserInterface.py" line="6916"/>
         <source>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; is not a file.&lt;/p&gt;</source>
         <translation>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; bir dosya değil.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7087"/>
+        <location filename="../UI/UserInterface.py" line="7101"/>
         <source>&amp;Cancel</source>
         <translation>&amp;Vazgeç</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7096"/>
+        <location filename="../UI/UserInterface.py" line="7110"/>
         <source>Trying host {0}</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7254"/>
+        <location filename="../UI/UserInterface.py" line="7268"/>
         <source>Update available</source>
         <translation>Güncelleme mümkün değil</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7273"/>
+        <location filename="../UI/UserInterface.py" line="7287"/>
         <source>Error during updates check</source>
         <translation>Güncellemeleri kontrol esnasında hata</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7273"/>
+        <location filename="../UI/UserInterface.py" line="7287"/>
         <source>Could not perform updates check.</source>
         <translation>Güncellemelere ulaşamıyorum.</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7297"/>
+        <location filename="../UI/UserInterface.py" line="7311"/>
         <source>&lt;h3&gt;Available versions&lt;/h3&gt;&lt;table&gt;</source>
         <translation>&lt;h3&gt;Mümkün sürümler&lt;/h3&gt;&lt;table&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7349"/>
+        <location filename="../UI/UserInterface.py" line="7363"/>
         <source>First time usage</source>
         <translation>İlk kullanım</translation>
     </message>
@@ -78137,32 +78277,32 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6339"/>
+        <location filename="../UI/UserInterface.py" line="6353"/>
         <source>Keyboard shortcut file (*.e4k)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7162"/>
+        <location filename="../UI/UserInterface.py" line="7176"/>
         <source>Error getting versions information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7155"/>
+        <location filename="../UI/UserInterface.py" line="7169"/>
         <source>The versions information could not be downloaded. Please go online and try again.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6107"/>
+        <location filename="../UI/UserInterface.py" line="6121"/>
         <source>Open Browser</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6107"/>
+        <location filename="../UI/UserInterface.py" line="6121"/>
         <source>Could not start a web browser</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7162"/>
+        <location filename="../UI/UserInterface.py" line="7176"/>
         <source>The versions information could not be downloaded for the last 7 days. Please go online and try again.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -78248,12 +78388,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5337"/>
+        <location filename="../UI/UserInterface.py" line="5351"/>
         <source>&lt;p&gt;Could not start Snapshot tool.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7368"/>
+        <location filename="../UI/UserInterface.py" line="7382"/>
         <source>Select Workspace Directory</source>
         <translation type="unfinished"></translation>
     </message>
@@ -78618,7 +78758,7 @@
         <translation type="unfinished">PyQt4 Begelerini aç {5 ?}</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5775"/>
+        <location filename="../UI/UserInterface.py" line="5789"/>
         <source>&lt;p&gt;The PyQt5 documentation starting point has not been configured.&lt;/p&gt;</source>
         <translation type="unfinished">&lt;p&gt;PyQt4 Belgelerinin başlama noktası ayarlanmamış.&lt;/p&gt; {5 ?}</translation>
     </message>
@@ -78628,7 +78768,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7087"/>
+        <location filename="../UI/UserInterface.py" line="7101"/>
         <source>%v/%m</source>
         <translation type="unfinished"></translation>
     </message>
@@ -78648,7 +78788,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7091"/>
+        <location filename="../UI/UserInterface.py" line="7105"/>
         <source>Version Check</source>
         <translation type="unfinished"></translation>
     </message>
@@ -78718,27 +78858,27 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5048"/>
+        <location filename="../UI/UserInterface.py" line="5062"/>
         <source>Qt v.3 is not supported by eric6.</source>
         <translation type="unfinished">Qt v.3 eric5 tarafından desteklenmiyor. {3 ?} {6.?}</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7254"/>
+        <location filename="../UI/UserInterface.py" line="7268"/>
         <source>The update to &lt;b&gt;{0}&lt;/b&gt; of eric6 is available at &lt;b&gt;{1}&lt;/b&gt;. Would you like to get it?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7266"/>
+        <location filename="../UI/UserInterface.py" line="7280"/>
         <source>Eric6 is up to date</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7266"/>
+        <location filename="../UI/UserInterface.py" line="7280"/>
         <source>You are using the latest version of eric6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7349"/>
+        <location filename="../UI/UserInterface.py" line="7363"/>
         <source>eric6 has not been configured yet. The configuration dialog will be started.</source>
         <translation type="unfinished">Eric5 henüz ayarlanmadı. Ayarlar Diyaloğu başlatılıyor. {6 ?}</translation>
     </message>
@@ -78748,17 +78888,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4045"/>
+        <location filename="../UI/UserInterface.py" line="4059"/>
         <source>&amp;User Tools</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4117"/>
+        <location filename="../UI/UserInterface.py" line="4131"/>
         <source>No User Tools Configured</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7107"/>
+        <location filename="../UI/UserInterface.py" line="7121"/>
         <source>The versions information cannot not be downloaded because you are &lt;b&gt;offline&lt;/b&gt;. Please go online and try again.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -78803,7 +78943,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6656"/>
+        <location filename="../UI/UserInterface.py" line="6670"/>
         <source>Load session</source>
         <translation type="unfinished">Oturum yükleniyor</translation>
     </message>
@@ -78818,17 +78958,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6656"/>
+        <location filename="../UI/UserInterface.py" line="6670"/>
         <source>eric6 Session Files (*.e5s)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6707"/>
+        <location filename="../UI/UserInterface.py" line="6721"/>
         <source>Crash Session found!</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6707"/>
+        <location filename="../UI/UserInterface.py" line="6721"/>
         <source>A session file of a crashed session was found. Shall this session be restored?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -78843,17 +78983,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7242"/>
+        <location filename="../UI/UserInterface.py" line="7256"/>
         <source>Update Check</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7242"/>
+        <location filename="../UI/UserInterface.py" line="7256"/>
         <source>You installed eric directly from the source code. There is no possibility to check for the availability of an update.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7232"/>
+        <location filename="../UI/UserInterface.py" line="7246"/>
         <source>You are using a snapshot release of eric6. A more up-to-date stable release might be available.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -78908,7 +79048,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5888"/>
+        <location filename="../UI/UserInterface.py" line="5902"/>
         <source>&lt;p&gt;The PySide{0} documentation starting point has not been configured.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -78984,17 +79124,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6062"/>
+        <location filename="../UI/UserInterface.py" line="6076"/>
         <source>Start Web Browser</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6001"/>
+        <location filename="../UI/UserInterface.py" line="6015"/>
         <source>The eric6 web browser could not be started.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6062"/>
+        <location filename="../UI/UserInterface.py" line="6076"/>
         <source>&lt;p&gt;The eric6 web browser is not started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -79088,6 +79228,11 @@
         <source>Central Park</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../UI/UserInterface.py" line="3650"/>
+        <source>&lt;h2&gt;Version Numbers&lt;/h2&gt;&lt;table&gt;</source>
+        <translation type="unfinished">&lt;h3&gt;Sürüm Numaraları&lt;/h3&gt;&lt;table&gt; {2&gt;?} {2&gt;?}</translation>
+    </message>
 </context>
 <context>
     <name>UserPropertiesDialog</name>
@@ -79346,7 +79491,7 @@
 <context>
     <name>VariableItem</name>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="207"/>
+        <location filename="../Debugger/VariablesViewer.py" line="211"/>
         <source>&lt;double click to show value&gt;</source>
         <translation>&lt; değeri göstermek için iki tuş&gt;</translation>
     </message>
@@ -79433,22 +79578,22 @@
 <context>
     <name>VariablesModel</name>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="278"/>
+        <location filename="../Debugger/VariablesViewer.py" line="282"/>
         <source>Globals</source>
         <translation type="unfinished">Evrensel</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="280"/>
+        <location filename="../Debugger/VariablesViewer.py" line="284"/>
         <source>Locals</source>
         <translation type="unfinished">Yereller</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="282"/>
+        <location filename="../Debugger/VariablesViewer.py" line="286"/>
         <source>Type</source>
         <translation type="unfinished">Tip</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="282"/>
+        <location filename="../Debugger/VariablesViewer.py" line="286"/>
         <source>Value</source>
         <translation type="unfinished">Değer</translation>
     </message>
@@ -79456,7 +79601,7 @@
 <context>
     <name>VariablesViewer</name>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="951"/>
+        <location filename="../Debugger/VariablesViewer.py" line="955"/>
         <source>Global Variables</source>
         <translation>Evrensel Değişkenler</translation>
     </message>
@@ -79476,12 +79621,12 @@
         <translation type="obsolete">Tip</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="952"/>
+        <location filename="../Debugger/VariablesViewer.py" line="956"/>
         <source>&lt;b&gt;The Global Variables Viewer Window&lt;/b&gt;&lt;p&gt;This window displays the global variables of the debugged program.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="958"/>
+        <location filename="../Debugger/VariablesViewer.py" line="962"/>
         <source>Local Variables</source>
         <translation>Yerel Değişkenler</translation>
     </message>
@@ -79491,17 +79636,17 @@
         <translation type="obsolete">Yereller</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="959"/>
+        <location filename="../Debugger/VariablesViewer.py" line="963"/>
         <source>&lt;b&gt;The Local Variables Viewer Window&lt;/b&gt;&lt;p&gt;This window displays the local variables of the debugged program.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1076"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1080"/>
         <source>Show Details...</source>
         <translation>Detayları Göster...</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1091"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1095"/>
         <source>Configure...</source>
         <translation>Ayarlanıyor...</translation>
     </message>
@@ -79511,7 +79656,7 @@
         <translation>{0} madde</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1089"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1093"/>
         <source>Refresh</source>
         <translation type="unfinished">Tazele</translation>
     </message>
@@ -79521,25 +79666,30 @@
         <translation type="obsolete">Hepsini daralt</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1078"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1082"/>
         <source>Expand</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1079"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1083"/>
         <source>Collapse</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1080"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1084"/>
         <source>Collapse All</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1092"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1096"/>
         <source>Variables Type Filter...</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../Debugger/VariablesViewer.py" line="47"/>
+        <source>unsized</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>VcsCommandOptionsDialog</name>
--- a/eric6/i18n/eric6_zh_CN.ts	Fri Nov 01 16:11:55 2019 +0100
+++ b/eric6/i18n/eric6_zh_CN.ts	Sun Dec 01 16:38:47 2019 +0100
@@ -46921,43 +46921,78 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.py" line="39"/>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.py" line="42"/>
         <source>All Files (*)</source>
         <translation type="unfinished">所有文件 (*)</translation>
     </message>
     <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="255"/>
+        <source>Documentation</source>
+        <translation type="unfinished">文档</translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="261"/>
+        <source>MicroPython:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="268"/>
+        <source>Enter the URL for the MicroPython documentation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="275"/>
+        <source>CircuitPython:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="282"/>
+        <source>Enter the URL for the CircuitPython documentation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="289"/>
+        <source>BBC micro:bit:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="296"/>
+        <source>Enter the URL for the BBC micro:bit MicroPython documentation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="172"/>
-        <source>Documentation</source>
-        <translation type="unfinished">文档</translation>
+        <source>PyBoard</source>
+        <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="178"/>
-        <source>MicroPython:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="185"/>
-        <source>Enter the URL for the MicroPython documentation</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="192"/>
-        <source>CircuitPython:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="199"/>
-        <source>Enter the URL for the CircuitPython documentation</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="206"/>
-        <source>BBC micro:bit:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="213"/>
-        <source>Enter the URL for the BBC micro:bit MicroPython documentation</source>
+        <source>dfu-util Path:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="194"/>
+        <source>Enter the path of the dfu-util flashing executable</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="204"/>
+        <source>Firmware</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="217"/>
+        <source>Enter the URL for the MicroPython firmware for PyBoard, ESP8266 and ESP32</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="231"/>
+        <source>Enter the URL for the CircuitPython firmware</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ConfigurationPages/MicroPythonPage.ui" line="245"/>
+        <source>Enter the URL for the BBC micro:bit Firmware</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -47153,7 +47188,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1202"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1210"/>
         <source>Synchronize Time</source>
         <translation type="unfinished"></translation>
     </message>
@@ -47168,107 +47203,107 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1366"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1421"/>
         <source>Compile Python File</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1386"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1441"/>
         <source>Compile Current Editor</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1140"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1148"/>
         <source>&lt;h3&gt;Device Version Information&lt;/h3&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1149"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1157"/>
         <source>No version information available.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1151"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1159"/>
         <source>Device Version Information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1174"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1182"/>
         <source>unknown</source>
         <translation type="unfinished">未知</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1178"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1186"/>
         <source>Device Implementation Information</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1178"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1186"/>
         <source>&lt;h3&gt;Device Implementation Information&lt;/h3&gt;&lt;p&gt;This device contains &lt;b&gt;{0} {1}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1202"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1210"/>
         <source>&lt;p&gt;The time of the connected device was synchronized with the local time.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1224"/>
-        <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../MicroPython/MicroPythonWidget.py" line="1232"/>
+        <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1240"/>
         <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;p&gt;{0}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1246"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1254"/>
         <source>Device Date and Time</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1259"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1267"/>
         <source>Local Date and Time</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1259"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1267"/>
         <source>&lt;h3&gt;Local Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1279"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1334"/>
         <source>Error handling device</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1279"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1334"/>
         <source>&lt;p&gt;There was an error communicating with the connected device.&lt;/p&gt;&lt;p&gt;Method: {0}&lt;/p&gt;&lt;p&gt;Message: {1}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1318"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1373"/>
         <source>The MicroPython cross compiler &lt;b&gt;mpy-cross&lt;/b&gt; cannot be found. Ensure it is in the search path or configure it on the MicroPython configuration page.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1336"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1391"/>
         <source>Python Files (*.py);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1346"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1401"/>
         <source>The Python file &lt;b&gt;{0}&lt;/b&gt; does not exist. Aborting...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1356"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1411"/>
         <source>&apos;mpy-cross&apos; Output</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1379"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1434"/>
         <source>The current editor does not contain a Python file. Aborting...</source>
         <translation type="unfinished"></translation>
     </message>
@@ -47293,14 +47328,39 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicroPythonWidget.py" line="1126"/>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1134"/>
         <source>Show Documentation</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1138"/>
+        <source>Configure</source>
+        <translation type="unfinished">配置</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1113"/>
+        <source>Show Time</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="../MicroPython/MicroPythonWidget.py" line="1130"/>
-        <source>Configure</source>
-        <translation type="unfinished">配置</translation>
+        <source>Download Firmware</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1310"/>
+        <source>Date and Time</source>
+        <translation type="unfinished">日期和时间</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1293"/>
+        <source>&lt;table&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;Local Date and Time&lt;/th&gt;&lt;th&gt;Device Date and Time&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{0}&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{1}&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicroPythonWidget.py" line="1310"/>
+        <source>&lt;table&gt;&lt;tr&gt;&lt;th&gt;Local Date and Time&lt;/th&gt;&lt;th&gt;Device Date and Time&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&apos;center&apos;&gt;{0} {1}&lt;/td&gt;&lt;td align=&apos;center&apos;&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -52758,17 +52818,17 @@
 <context>
     <name>Preferences</name>
     <message>
-        <location filename="../Preferences/__init__.py" line="1606"/>
+        <location filename="../Preferences/__init__.py" line="1610"/>
         <source>Export Preferences</source>
         <translation>导出首选项</translation>
     </message>
     <message>
-        <location filename="../Preferences/__init__.py" line="1634"/>
+        <location filename="../Preferences/__init__.py" line="1638"/>
         <source>Import Preferences</source>
         <translation>导入首选项</translation>
     </message>
     <message>
-        <location filename="../Preferences/__init__.py" line="1634"/>
+        <location filename="../Preferences/__init__.py" line="1638"/>
         <source>Properties File (*.ini);;All Files (*)</source>
         <translation>属性文件 (*.ini);;所有文件 (*)</translation>
     </message>
@@ -53111,22 +53171,22 @@
         <translation>CORBA IDL 编译器</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="361"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="378"/>
         <source>(not configured)</source>
         <translation>(未配置)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="415"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="432"/>
         <source>(not executable)</source>
         <translation>(不可执行)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="452"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="469"/>
         <source>(not found)</source>
         <translation>(未找到)</translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="413"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="430"/>
         <source>(unknown)</source>
         <translation>(未知)</translation>
     </message>
@@ -53216,7 +53276,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Preferences/ProgramsDialog.py" line="394"/>
+        <location filename="../Preferences/ProgramsDialog.py" line="411"/>
         <source>(module not found)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -53245,6 +53305,21 @@
         <source>PyPI Package Management</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="297"/>
+        <source>MicroPython - MPY Cross Compiler</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="300"/>
+        <source>MicroPython - ESP Tool</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Preferences/ProgramsDialog.py" line="306"/>
+        <source>MicroPython - PyBoard Flasher</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>Project</name>
@@ -56771,23 +56846,88 @@
 <context>
     <name>PyBoardDevice</name>
     <message>
-        <location filename="../MicroPython/PyBoardDevices.py" line="70"/>
+        <location filename="../MicroPython/PyBoardDevices.py" line="75"/>
         <source>PyBoard</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/PyBoardDevices.py" line="159"/>
+        <location filename="../MicroPython/PyBoardDevices.py" line="164"/>
         <source>Workspace Directory</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/PyBoardDevices.py" line="159"/>
+        <location filename="../MicroPython/PyBoardDevices.py" line="164"/>
         <source>Python files for PyBoard devices are stored on the device. Therefore, to edit these files you need to have the device plugged in. Until you plug in a device, the standard directory will be used.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/PyBoardDevices.py" line="186"/>
-        <source>MicroPython Install Instructions</source>
+        <location filename="../MicroPython/PyBoardDevices.py" line="202"/>
+        <source>List DFU-capable Devices</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="356"/>
+        <source>Flash MicroPython Firmware</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="209"/>
+        <source>MicroPython Flash Instructions</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="239"/>
+        <source>dfu-util not available</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="239"/>
+        <source>The dfu-util firmware flashing tool &lt;b&gt;dfu-util&lt;/b&gt; cannot be found or is not executable. Ensure it is in the search path or configure it on the MicroPython configuration page.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="260"/>
+        <source>&lt;h3&gt;Enable DFU Mode&lt;/h3&gt;&lt;p&gt;1. Disconnect everything from your board&lt;/p&gt;&lt;p&gt;2. Disconnect your board&lt;/p&gt;&lt;p&gt;3. Connect the DFU/BOOT0 pin with a 3.3V pin&lt;/p&gt;&lt;p&gt;4. Re-connect your board&lt;/p&gt;&lt;hr /&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="270"/>
+        <source>&lt;p&gt;&lt;b&gt;Warning:&lt;/b&gt; Make sure that all other DFU capable devices except your PyBoard are disconnected.&lt;hr /&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="276"/>
+        <source>&lt;p&gt;Press &lt;b&gt;OK&lt;/b&gt; to continue...&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="279"/>
+        <source>Enable DFU mode</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="293"/>
+        <source>&lt;h3&gt;Disable DFU Mode&lt;/h3&gt;&lt;p&gt;1. Disconnect your board&lt;/p&gt;&lt;p&gt;2. Remove the DFU jumper&lt;/p&gt;&lt;p&gt;3. Re-connect your board&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;Press &lt;b&gt;OK&lt;/b&gt; to continue...&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="301"/>
+        <source>Disable DFU mode</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="356"/>
+        <source>&apos;dfu-util&apos; Output</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="322"/>
+        <source>List DFU capable Devices</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/PyBoardDevices.py" line="344"/>
+        <source>MicroPython Firmware Files (*.dfu);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -77879,7 +78019,7 @@
         <translation>显示可以下载的版本</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="3709"/>
+        <location filename="../UI/UserInterface.py" line="3723"/>
         <source>Report Bug</source>
         <translation>报告错误</translation>
     </message>
@@ -78234,7 +78374,7 @@
         <translation>&lt;b&gt;键盘快捷键&lt;/b&gt;&lt;p&gt;将程序的键盘快捷键设置成你喜欢的按键。&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6315"/>
+        <location filename="../UI/UserInterface.py" line="6329"/>
         <source>Export Keyboard Shortcuts</source>
         <translation>导出键盘快捷键</translation>
     </message>
@@ -78254,7 +78394,7 @@
         <translation>&lt;b&gt;导出键盘快捷键&lt;/b&gt;&lt;p&gt;导出程序的键盘快捷键。&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6339"/>
+        <location filename="../UI/UserInterface.py" line="6353"/>
         <source>Import Keyboard Shortcuts</source>
         <translation>导入键盘快捷键</translation>
     </message>
@@ -78484,7 +78624,7 @@
         <translation>设置</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5101"/>
+        <location filename="../UI/UserInterface.py" line="5115"/>
         <source>Help</source>
         <translation>帮助</translation>
     </message>
@@ -78531,55 +78671,55 @@
     <message>
         <location filename="../UI/UserInterface.py" line="3650"/>
         <source>&lt;h3&gt;Version Numbers&lt;/h3&gt;&lt;table&gt;</source>
-        <translation>&lt;h3&gt;版本号&lt;/h3&gt;&lt;table&gt;</translation>
-    </message>
-    <message>
-        <location filename="../UI/UserInterface.py" line="7312"/>
+        <translation type="obsolete">&lt;h3&gt;版本号&lt;/h3&gt;&lt;table&gt;</translation>
+    </message>
+    <message>
+        <location filename="../UI/UserInterface.py" line="7326"/>
         <source>&lt;/table&gt;</source>
         <translation>&lt;/table&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="3709"/>
+        <location filename="../UI/UserInterface.py" line="3723"/>
         <source>Email address or mail server address is empty. Please configure your Email settings in the Preferences Dialog.</source>
         <translation>电子邮件地址或邮件服务器地址为空。请在首选项对话框中配置你的电子邮件设置。</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="3989"/>
+        <location filename="../UI/UserInterface.py" line="4003"/>
         <source>Restart application</source>
         <translation>重启程序</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="3989"/>
+        <location filename="../UI/UserInterface.py" line="4003"/>
         <source>The application needs to be restarted. Do it now?</source>
         <translation>程序需要重启。现在重启?</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4070"/>
+        <location filename="../UI/UserInterface.py" line="4084"/>
         <source>Configure Tool Groups ...</source>
         <translation>配置工具组…</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4074"/>
+        <location filename="../UI/UserInterface.py" line="4088"/>
         <source>Configure current Tool Group ...</source>
         <translation>配置当前工具组…</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4025"/>
+        <location filename="../UI/UserInterface.py" line="4039"/>
         <source>&amp;Builtin Tools</source>
         <translation>内建工具(&amp;B)</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4042"/>
+        <location filename="../UI/UserInterface.py" line="4056"/>
         <source>&amp;Plugin Tools</source>
         <translation>插件工具(&amp;P)</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4190"/>
+        <location filename="../UI/UserInterface.py" line="4204"/>
         <source>&amp;Show all</source>
         <translation>全部显示(&amp;S)</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4192"/>
+        <location filename="../UI/UserInterface.py" line="4206"/>
         <source>&amp;Hide all</source>
         <translation>全部隐藏(&amp;H)</translation>
     </message>
@@ -78589,107 +78729,107 @@
         <translation type="obsolete">当前项目未定义主脚本。终止</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5229"/>
+        <location filename="../UI/UserInterface.py" line="5243"/>
         <source>Problem</source>
         <translation>问题</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5424"/>
+        <location filename="../UI/UserInterface.py" line="5438"/>
         <source>Process Generation Error</source>
         <translation>进程生成错误</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6107"/>
+        <location filename="../UI/UserInterface.py" line="6121"/>
         <source>Open Browser</source>
         <translation>打开浏览器</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6107"/>
+        <location filename="../UI/UserInterface.py" line="6121"/>
         <source>Could not start a web browser</source>
         <translation>无法启动网络浏览器</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5101"/>
+        <location filename="../UI/UserInterface.py" line="5115"/>
         <source>Currently no custom viewer is selected. Please use the preferences dialog to specify one.</source>
         <translation>目前没有选择自定义浏览器。请使用首选项对话框指定一个。</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5135"/>
+        <location filename="../UI/UserInterface.py" line="5149"/>
         <source>&lt;p&gt;Could not start the help viewer.&lt;br&gt;Ensure that it is available as &lt;b&gt;hh&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;无法开启帮助浏览器。&lt;br&gt;确保其有效如 &lt;b&gt;hh&lt;/b&gt;。&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5369"/>
+        <location filename="../UI/UserInterface.py" line="5383"/>
         <source>External Tools</source>
         <translation>外部工具</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5905"/>
+        <location filename="../UI/UserInterface.py" line="5919"/>
         <source>Documentation Missing</source>
         <translation>文档缺失</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5888"/>
+        <location filename="../UI/UserInterface.py" line="5902"/>
         <source>Documentation</source>
         <translation>文档</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5713"/>
+        <location filename="../UI/UserInterface.py" line="5727"/>
         <source>&lt;p&gt;The PyQt4 documentation starting point has not been configured.&lt;/p&gt;</source>
         <translation>&lt;p&gt;未配置 PyQt4 文档起点。&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6509"/>
+        <location filename="../UI/UserInterface.py" line="6523"/>
         <source>Save tasks</source>
         <translation>保存任务</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6538"/>
+        <location filename="../UI/UserInterface.py" line="6552"/>
         <source>Read tasks</source>
         <translation>读取任务</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6634"/>
+        <location filename="../UI/UserInterface.py" line="6648"/>
         <source>Save session</source>
         <translation>保存会话</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6618"/>
+        <location filename="../UI/UserInterface.py" line="6632"/>
         <source>Read session</source>
         <translation>读取会话</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6902"/>
+        <location filename="../UI/UserInterface.py" line="6916"/>
         <source>Drop Error</source>
         <translation>降落误差</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7273"/>
+        <location filename="../UI/UserInterface.py" line="7287"/>
         <source>Error during updates check</source>
         <translation>检查更新时出错</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7087"/>
+        <location filename="../UI/UserInterface.py" line="7101"/>
         <source>&amp;Cancel</source>
         <translation>取消(&amp;C)</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7254"/>
+        <location filename="../UI/UserInterface.py" line="7268"/>
         <source>Update available</source>
         <translation>可用更新</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7273"/>
+        <location filename="../UI/UserInterface.py" line="7287"/>
         <source>Could not perform updates check.</source>
         <translation>无法完成更新检查。</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7297"/>
+        <location filename="../UI/UserInterface.py" line="7311"/>
         <source>&lt;h3&gt;Available versions&lt;/h3&gt;&lt;table&gt;</source>
         <translation>&lt;h3&gt;可用版本&lt;/h3&gt;&lt;table&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7349"/>
+        <location filename="../UI/UserInterface.py" line="7363"/>
         <source>First time usage</source>
         <translation>第一次使用</translation>
     </message>
@@ -78769,7 +78909,7 @@
         <translation>图标编辑器(&amp;I)…</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5048"/>
+        <location filename="../UI/UserInterface.py" line="5062"/>
         <source>Qt 3 support</source>
         <translation>Qt 3 支持</translation>
     </message>
@@ -78809,106 +78949,106 @@
         <translation>外部工具/{0}</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5229"/>
+        <location filename="../UI/UserInterface.py" line="5243"/>
         <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; does not exist or is zero length.&lt;/p&gt;</source>
         <translation>&lt;p&gt;文件 &lt;b&gt;{0}&lt;/b&gt; 不存在或者长度为零。&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4948"/>
+        <location filename="../UI/UserInterface.py" line="4962"/>
         <source>&lt;p&gt;Could not start Qt-Designer.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;无法启动 Qt 设计师。&lt;br&gt;请确保它作为 &lt;b&gt;{0}&lt;/b&gt; 可用。&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5020"/>
+        <location filename="../UI/UserInterface.py" line="5034"/>
         <source>&lt;p&gt;Could not start Qt-Linguist.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;无法启动 Qt 语言家。&lt;br&gt;请确保它作为 &lt;b&gt;{0}&lt;/b&gt; 可用。&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5073"/>
+        <location filename="../UI/UserInterface.py" line="5087"/>
         <source>&lt;p&gt;Could not start Qt-Assistant.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;无法启动 Qt 助手。&lt;br&gt;请确保它作为 &lt;b&gt;{0}&lt;/b&gt; 可用。&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5115"/>
+        <location filename="../UI/UserInterface.py" line="5129"/>
         <source>&lt;p&gt;Could not start custom viewer.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;无法启动自定义的查看器。&lt;br&gt;请确保它作为 &lt;b&gt;{0}&lt;/b&gt; 可用。&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5185"/>
+        <location filename="../UI/UserInterface.py" line="5199"/>
         <source>&lt;p&gt;Could not start UI Previewer.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;无法启动 UI 预览器。&lt;br&gt;请确保它作为 &lt;b&gt;{0}&lt;/b&gt; 可用。&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5242"/>
+        <location filename="../UI/UserInterface.py" line="5256"/>
         <source>&lt;p&gt;Could not start Translation Previewer.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;无法启动翻译预览器。&lt;br&gt;请确保它作为 &lt;b&gt;{0}&lt;/b&gt; 可用。&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5265"/>
+        <location filename="../UI/UserInterface.py" line="5279"/>
         <source>&lt;p&gt;Could not start SQL Browser.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;无法启动 SQL 浏览器。&lt;br&gt;请确保它作为 &lt;b&gt;{0}&lt;/b&gt; 可用。&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5360"/>
+        <location filename="../UI/UserInterface.py" line="5374"/>
         <source>No tool entry found for external tool &apos;{0}&apos; in tool group &apos;{1}&apos;.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5369"/>
+        <location filename="../UI/UserInterface.py" line="5383"/>
         <source>No toolgroup entry &apos;{0}&apos; found.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5408"/>
+        <location filename="../UI/UserInterface.py" line="5422"/>
         <source>Starting process &apos;{0} {1}&apos;.
 </source>
         <translation>正在启动进程“{0} {1}”。
 </translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5424"/>
+        <location filename="../UI/UserInterface.py" line="5438"/>
         <source>&lt;p&gt;Could not start the tool entry &lt;b&gt;{0}&lt;/b&gt;.&lt;br&gt;Ensure that it is available as &lt;b&gt;{1}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5502"/>
+        <location filename="../UI/UserInterface.py" line="5516"/>
         <source>Process &apos;{0}&apos; has exited.
 </source>
         <translation>进程“{0}”已退出。
 </translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5905"/>
+        <location filename="../UI/UserInterface.py" line="5919"/>
         <source>&lt;p&gt;The documentation starting point &quot;&lt;b&gt;{0}&lt;/b&gt;&quot; could not be found.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6509"/>
+        <location filename="../UI/UserInterface.py" line="6523"/>
         <source>&lt;p&gt;The tasks file &lt;b&gt;{0}&lt;/b&gt; could not be written.&lt;/p&gt;</source>
         <translation>&lt;p&gt;任务文件 &lt;b&gt;{0}&lt;/b&gt; 无法写入。&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6538"/>
+        <location filename="../UI/UserInterface.py" line="6552"/>
         <source>&lt;p&gt;The tasks file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt;</source>
         <translation>&lt;p&gt;任务文件 &lt;b&gt;{0}&lt;/b&gt; 无法读取。&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6572"/>
+        <location filename="../UI/UserInterface.py" line="6586"/>
         <source>&lt;p&gt;The session file &lt;b&gt;{0}&lt;/b&gt; could not be written.&lt;/p&gt;</source>
         <translation>&lt;p&gt;会话文件 &lt;b&gt;{0}&lt;/b&gt; 无法写入。&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6618"/>
+        <location filename="../UI/UserInterface.py" line="6632"/>
         <source>&lt;p&gt;The session file &lt;b&gt;{0}&lt;/b&gt; could not be read.&lt;/p&gt;</source>
         <translation>&lt;p&gt;会话文件 &lt;b&gt;{0}&lt;/b&gt; 无法读取。&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6902"/>
+        <location filename="../UI/UserInterface.py" line="6916"/>
         <source>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; is not a file.&lt;/p&gt;</source>
         <translation>&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; 不是一个文件。&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7096"/>
+        <location filename="../UI/UserInterface.py" line="7110"/>
         <source>Trying host {0}</source>
         <translation>正在尝试主机 {0}</translation>
     </message>
@@ -78943,7 +79083,7 @@
         <translation>Alt+Shift+B</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6339"/>
+        <location filename="../UI/UserInterface.py" line="6353"/>
         <source>Keyboard shortcut file (*.e4k)</source>
         <translation>键盘快捷键文件 (*.e4k)</translation>
     </message>
@@ -78983,17 +79123,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7162"/>
+        <location filename="../UI/UserInterface.py" line="7176"/>
         <source>Error getting versions information</source>
         <translation>获取版本信息出错</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7155"/>
+        <location filename="../UI/UserInterface.py" line="7169"/>
         <source>The versions information could not be downloaded. Please go online and try again.</source>
         <translation>无法获取版本信息。请连线并再试一次。</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7162"/>
+        <location filename="../UI/UserInterface.py" line="7176"/>
         <source>The versions information could not be downloaded for the last 7 days. Please go online and try again.</source>
         <translation>过去7天均无法获取版本信息。请连线并再试一次。</translation>
     </message>
@@ -79079,12 +79219,12 @@
         <translation>&lt;b&gt;快照&lt;/b&gt;&lt;p&gt;打开一个对话框来截取屏幕一个区域的快照。&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5337"/>
+        <location filename="../UI/UserInterface.py" line="5351"/>
         <source>&lt;p&gt;Could not start Snapshot tool.&lt;br&gt;Ensure that it is available as &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
         <translation>&lt;p&gt;无法启动快照工具。&lt;br&gt;请确保它作为 &lt;b&gt;{0}&lt;/b&gt; 可用。&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7368"/>
+        <location filename="../UI/UserInterface.py" line="7382"/>
         <source>Select Workspace Directory</source>
         <translation>选择工作区目录</translation>
     </message>
@@ -79459,7 +79599,7 @@
         <translation>打开 PyQt5 文档</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5775"/>
+        <location filename="../UI/UserInterface.py" line="5789"/>
         <source>&lt;p&gt;The PyQt5 documentation starting point has not been configured.&lt;/p&gt;</source>
         <translation>&lt;p&gt;未配置 PyQt5 文档起始位置。&lt;/p&gt;</translation>
     </message>
@@ -79474,7 +79614,7 @@
         <translation>&lt;b&gt;Python 3 文档&lt;/b&gt;&lt;p&gt;显示 Python 3 文档。如果尚未配置文档目录,则在 Windows 系统上,文档位置将默认为 Python 3 可执行文件所在目录下的 doc 目录;在类 Unix 系统上,则默认为 &lt;i&gt;/usr/share/doc/packages/python/html&lt;/i&gt;。请在环境中设置 PYTHON3DOCDIR 以覆盖默认行为。&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7087"/>
+        <location filename="../UI/UserInterface.py" line="7101"/>
         <source>%v/%m</source>
         <translation type="unfinished"></translation>
     </message>
@@ -79494,7 +79634,7 @@
         <translation>&lt;b&gt;显示错误日志…&lt;/b&gt;&lt;p&gt;打开一个对话框显示最近的错误日志。&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7091"/>
+        <location filename="../UI/UserInterface.py" line="7105"/>
         <source>Version Check</source>
         <translation>版本检查</translation>
     </message>
@@ -79564,27 +79704,27 @@
         <translation>&lt;b&gt;Eric API 文档&lt;/b&gt;&lt;p&gt;显示 Eric API 文档。文档位置为 Eric6 安装文件夹下的文档或源代码子文件夹。&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5048"/>
+        <location filename="../UI/UserInterface.py" line="5062"/>
         <source>Qt v.3 is not supported by eric6.</source>
         <translation>Qt 版本3 不被 eric6 支持。</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7254"/>
+        <location filename="../UI/UserInterface.py" line="7268"/>
         <source>The update to &lt;b&gt;{0}&lt;/b&gt; of eric6 is available at &lt;b&gt;{1}&lt;/b&gt;. Would you like to get it?</source>
         <translation>eric6 的 &lt;b&gt;{0}&lt;/b&gt; 更新已经可用,位于 &lt;b&gt;{1}&lt;/b&gt;。您是否希望下载它?</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7266"/>
+        <location filename="../UI/UserInterface.py" line="7280"/>
         <source>Eric6 is up to date</source>
         <translation>Eric6 已是最新版本</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7266"/>
+        <location filename="../UI/UserInterface.py" line="7280"/>
         <source>You are using the latest version of eric6</source>
         <translation>您正在使用 eric6 的最新版本</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7349"/>
+        <location filename="../UI/UserInterface.py" line="7363"/>
         <source>eric6 has not been configured yet. The configuration dialog will be started.</source>
         <translation>尚未配置 eric6。将打开配置对话框。</translation>
     </message>
@@ -79594,17 +79734,17 @@
         <translation>生成插件工具栏…</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4045"/>
+        <location filename="../UI/UserInterface.py" line="4059"/>
         <source>&amp;User Tools</source>
         <translation>用户工具(&amp;U)</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="4117"/>
+        <location filename="../UI/UserInterface.py" line="4131"/>
         <source>No User Tools Configured</source>
         <translation>没有配置的用户工具</translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7107"/>
+        <location filename="../UI/UserInterface.py" line="7121"/>
         <source>The versions information cannot not be downloaded because you are &lt;b&gt;offline&lt;/b&gt;. Please go online and try again.</source>
         <translation>因为当前处在 &lt;b&gt;离线&lt;/b&gt; 状态,无法获取版本信息。请连线并再试一次。</translation>
     </message>
@@ -79649,7 +79789,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6656"/>
+        <location filename="../UI/UserInterface.py" line="6670"/>
         <source>Load session</source>
         <translation type="unfinished">载入会话</translation>
     </message>
@@ -79664,17 +79804,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6656"/>
+        <location filename="../UI/UserInterface.py" line="6670"/>
         <source>eric6 Session Files (*.e5s)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6707"/>
+        <location filename="../UI/UserInterface.py" line="6721"/>
         <source>Crash Session found!</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6707"/>
+        <location filename="../UI/UserInterface.py" line="6721"/>
         <source>A session file of a crashed session was found. Shall this session be restored?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -79689,17 +79829,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7242"/>
+        <location filename="../UI/UserInterface.py" line="7256"/>
         <source>Update Check</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7242"/>
+        <location filename="../UI/UserInterface.py" line="7256"/>
         <source>You installed eric directly from the source code. There is no possibility to check for the availability of an update.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="7232"/>
+        <location filename="../UI/UserInterface.py" line="7246"/>
         <source>You are using a snapshot release of eric6. A more up-to-date stable release might be available.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -79754,7 +79894,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="5888"/>
+        <location filename="../UI/UserInterface.py" line="5902"/>
         <source>&lt;p&gt;The PySide{0} documentation starting point has not been configured.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -79825,17 +79965,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6062"/>
+        <location filename="../UI/UserInterface.py" line="6076"/>
         <source>Start Web Browser</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6001"/>
+        <location filename="../UI/UserInterface.py" line="6015"/>
         <source>The eric6 web browser could not be started.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../UI/UserInterface.py" line="6062"/>
+        <location filename="../UI/UserInterface.py" line="6076"/>
         <source>&lt;p&gt;The eric6 web browser is not started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -79929,6 +80069,11 @@
         <source>Central Park</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../UI/UserInterface.py" line="3650"/>
+        <source>&lt;h2&gt;Version Numbers&lt;/h2&gt;&lt;table&gt;</source>
+        <translation type="unfinished">&lt;h3&gt;版本号&lt;/h3&gt;&lt;table&gt; {2&gt;?} {2&gt;?}</translation>
+    </message>
 </context>
 <context>
     <name>UserPropertiesDialog</name>
@@ -80187,7 +80332,7 @@
 <context>
     <name>VariableItem</name>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="207"/>
+        <location filename="../Debugger/VariablesViewer.py" line="211"/>
         <source>&lt;double click to show value&gt;</source>
         <translation>&lt;double click to show value&gt;</translation>
     </message>
@@ -80277,22 +80422,22 @@
 <context>
     <name>VariablesModel</name>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="278"/>
+        <location filename="../Debugger/VariablesViewer.py" line="282"/>
         <source>Globals</source>
         <translation type="unfinished">全局</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="280"/>
+        <location filename="../Debugger/VariablesViewer.py" line="284"/>
         <source>Locals</source>
         <translation type="unfinished">局部</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="282"/>
+        <location filename="../Debugger/VariablesViewer.py" line="286"/>
         <source>Type</source>
         <translation type="unfinished">类型</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="282"/>
+        <location filename="../Debugger/VariablesViewer.py" line="286"/>
         <source>Value</source>
         <translation type="unfinished">值</translation>
     </message>
@@ -80300,7 +80445,7 @@
 <context>
     <name>VariablesViewer</name>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="951"/>
+        <location filename="../Debugger/VariablesViewer.py" line="955"/>
         <source>Global Variables</source>
         <translation>全局变量</translation>
     </message>
@@ -80320,12 +80465,12 @@
         <translation type="obsolete">类型</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="952"/>
+        <location filename="../Debugger/VariablesViewer.py" line="956"/>
         <source>&lt;b&gt;The Global Variables Viewer Window&lt;/b&gt;&lt;p&gt;This window displays the global variables of the debugged program.&lt;/p&gt;</source>
         <translation>&lt;b&gt;全局变量浏览器窗口&lt;/b&gt;&lt;p&gt;该窗口显示调试程序的全局变量。&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="958"/>
+        <location filename="../Debugger/VariablesViewer.py" line="962"/>
         <source>Local Variables</source>
         <translation>局部变量</translation>
     </message>
@@ -80335,17 +80480,17 @@
         <translation type="obsolete">局部</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="959"/>
+        <location filename="../Debugger/VariablesViewer.py" line="963"/>
         <source>&lt;b&gt;The Local Variables Viewer Window&lt;/b&gt;&lt;p&gt;This window displays the local variables of the debugged program.&lt;/p&gt;</source>
         <translation>&lt;b&gt;局部变量浏览器窗口&lt;/b&gt;&lt;p&gt;该窗口显示高度程序的局部变量。&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1076"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1080"/>
         <source>Show Details...</source>
         <translation>显示细节…</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1091"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1095"/>
         <source>Configure...</source>
         <translation>配置…</translation>
     </message>
@@ -80355,7 +80500,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1089"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1093"/>
         <source>Refresh</source>
         <translation type="unfinished">刷新</translation>
     </message>
@@ -80365,25 +80510,30 @@
         <translation type="obsolete">折叠所有</translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1078"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1082"/>
         <source>Expand</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1079"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1083"/>
         <source>Collapse</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1080"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1084"/>
         <source>Collapse All</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Debugger/VariablesViewer.py" line="1092"/>
+        <location filename="../Debugger/VariablesViewer.py" line="1096"/>
         <source>Variables Type Filter...</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../Debugger/VariablesViewer.py" line="47"/>
+        <source>unsized</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>VcsCommandOptionsDialog</name>
--- a/scripts/install.py	Fri Nov 01 16:11:55 2019 +0100
+++ b/scripts/install.py	Sun Dec 01 16:38:47 2019 +0100
@@ -37,6 +37,7 @@
 doCleanDesktopLinks = False
 forceCleanDesktopLinks = False
 doCompile = True
+yes2All = False
 cfg = {}
 progLanguages = ["Python", "Ruby", "QSS"]
 sourceDir = "eric"
@@ -110,16 +111,16 @@
     print()
     print("Usage:")
     if sys.platform == "darwin":
-        print("    {0} [-chxyz] [-a dir] [-b dir] [-d dir] [-f file] [-i dir]"
-              " [-m name] [-n path] [-p python] [--no-apis]"
+        print("    {0} [-chxz] [-a dir] [-b dir] [-d dir] [-f file] [-i dir]"
+              " [-m name] [-n path] [-p python] [--no-apis] [--yes]"
               .format(progName))
     elif sys.platform.startswith(("win", "cygwin")):
-        print("    {0} [-chxyz] [-a dir] [-b dir] [-d dir] [-f file]"
-              " [--clean-desktop] [--no-apis]"
+        print("    {0} [-chxz] [-a dir] [-b dir] [-d dir] [-f file]"
+              " [--clean-desktop] [--no-apis] [--yes]"
               .format(progName))
     else:
-        print("    {0} [-chxyz] [-a dir] [-b dir] [-d dir] [-f file] [-i dir]"
-              " [--no-apis]"
+        print("    {0} [-chxz] [-a dir] [-b dir] [-d dir] [-f file] [-i dir]"
+              " [--no-apis] [--yes]"
               .format(progName))
     print("where:")
     print("    -h, --help display this help message")
@@ -152,6 +153,7 @@
     print("    -x         don't perform dependency checks (use on your own"
           " risk)")
     print("    -z         don't compile the installed python files")
+    print("    --yes      answer 'yes' to all questions")
     print()
     print("The file given to the -f option must be valid Python code"
           " defining a")
@@ -1288,10 +1290,15 @@
     @return flag indicating a successful installation
     @rtype bool
     """
+    global yes2All
+    
     ok = False
-    print("{0}\n\nShall '{1}' be installed using pip? (Y/n)"
-          .format(message, packageName), end=" ")
-    answer = input()
+    if yes2All:
+        answer = "y"
+    else:
+        print("{0}\n\nShall '{1}' be installed using pip? (Y/n)"
+              .format(message, packageName), end=" ")
+        answer = input()
     if answer in ("", "Y", "y"):
         exitCode = subprocess.call(
             [sys.executable, "-m", "pip", "install", packageName])
@@ -1542,6 +1549,17 @@
                 print('Please install another version.')
                 exit(5)
     
+    # print version info for additional modules
+    try:
+        print("PyQtChart:", QtChart.PYQT_CHART_VERSION_STR)
+    except (NameError, AttributeError):
+        pass
+    try:
+        from PyQt5 import QtWebEngine
+        print("PyQtWebEngine.", QtWebEngine.PYQT_WEBENGINE_VERSION_STR)
+    except (ImportError, AttributeError):
+        pass
+    
     print("All dependencies ok.")
     print()
 
@@ -1712,7 +1730,7 @@
     global progName, modDir, doCleanup, doCompile, distDir, cfg, apisDir
     global sourceDir, eric6SourceDir, configName
     global macAppBundlePath, macAppBundleName, macPythonExe
-    global installApis, doCleanDesktopLinks
+    global installApis, doCleanDesktopLinks, yes2All
     
     if sys.version_info < (3, 5, 0) or sys.version_info > (3, 99, 99):
         print('Sorry, eric6 requires at least Python 3.5 for running.')
@@ -1729,15 +1747,15 @@
         if sys.platform.startswith(("win", "cygwin")):
             optlist, args = getopt.getopt(
                 argv[1:], "chxza:b:d:f:",
-                ["help", "no-apis"])
+                ["help", "no-apis", "yes"])
         elif sys.platform == "darwin":
             optlist, args = getopt.getopt(
                 argv[1:], "chxza:b:d:f:i:m:n:p:",
-                ["help", "no-apis"])
+                ["help", "no-apis", "yes"])
         else:
             optlist, args = getopt.getopt(
                 argv[1:], "chxza:b:d:f:i:",
-                ["help", "no-apis"])
+                ["help", "no-apis", "yes"])
     except getopt.GetoptError as err:
         print(err)
         usage()
@@ -1782,6 +1800,8 @@
             installApis = False
         elif opt == "--clean-desktop":
             doCleanDesktopLinks = True
+        elif opt == "--yes":
+            yes2All = True
     
     infoName = ""
     installFromSource = not os.path.isdir(sourceDir)

eric ide

mercurial