src/eric7/i18n/eric7_ru.ts

branch
eric7
changeset 9749
5d409223cf3f
parent 9747
b7976868d5b0
child 9754
ddf0407d42be
--- a/src/eric7/i18n/eric7_ru.ts	Wed Feb 08 11:54:36 2023 +0100
+++ b/src/eric7/i18n/eric7_ru.ts	Wed Feb 08 18:09:19 2023 +0100
@@ -2108,7 +2108,7 @@
       <translation>Релиз</translation>
     </message>
     <message>
-      <location filename="../MicroPython/BoardDataDialog.py" line="157" />
+      <location filename="../MicroPython/BoardDataDialog.py" line="158" />
       <location filename="../MicroPython/BoardDataDialog.py" line="90" />
       <source>Version</source>
       <translation>Версия</translation>
@@ -2124,49 +2124,49 @@
       <translation>Память</translation>
     </message>
     <message>
-      <location filename="../MicroPython/BoardDataDialog.py" line="128" />
+      <location filename="../MicroPython/BoardDataDialog.py" line="129" />
       <location filename="../MicroPython/BoardDataDialog.py" line="97" />
       <source>total</source>
       <translation>всего</translation>
     </message>
     <message>
-      <location filename="../MicroPython/BoardDataDialog.py" line="129" />
+      <location filename="../MicroPython/BoardDataDialog.py" line="130" />
       <location filename="../MicroPython/BoardDataDialog.py" line="98" />
       <source>{0} KBytes</source>
       <translation>{0} KBytes</translation>
     </message>
     <message>
-      <location filename="../MicroPython/BoardDataDialog.py" line="137" />
+      <location filename="../MicroPython/BoardDataDialog.py" line="138" />
       <location filename="../MicroPython/BoardDataDialog.py" line="106" />
       <source>used</source>
       <translation>использовано</translation>
     </message>
     <message>
-      <location filename="../MicroPython/BoardDataDialog.py" line="148" />
-      <location filename="../MicroPython/BoardDataDialog.py" line="138" />
+      <location filename="../MicroPython/BoardDataDialog.py" line="149" />
+      <location filename="../MicroPython/BoardDataDialog.py" line="139" />
       <location filename="../MicroPython/BoardDataDialog.py" line="117" />
       <location filename="../MicroPython/BoardDataDialog.py" line="107" />
       <source>{0} KBytes ({1}%)</source>
       <translation>{0} KBytes ({1}%)</translation>
     </message>
     <message>
-      <location filename="../MicroPython/BoardDataDialog.py" line="147" />
+      <location filename="../MicroPython/BoardDataDialog.py" line="148" />
       <location filename="../MicroPython/BoardDataDialog.py" line="116" />
       <source>free</source>
       <translation>свободно</translation>
     </message>
     <message>
-      <location filename="../MicroPython/BoardDataDialog.py" line="124" />
+      <location filename="../MicroPython/BoardDataDialog.py" line="125" />
       <source>Flash Memory</source>
       <translation>Память Flash</translation>
     </message>
     <message>
-      <location filename="../MicroPython/BoardDataDialog.py" line="155" />
+      <location filename="../MicroPython/BoardDataDialog.py" line="156" />
       <source>µLab</source>
       <translation>µLab</translation>
     </message>
     <message>
-      <location filename="../MicroPython/BoardDataDialog.py" line="159" />
+      <location filename="../MicroPython/BoardDataDialog.py" line="160" />
       <source>µLab is not available</source>
       <translation>µLab недоступна</translation>
     </message>
@@ -3817,16 +3817,16 @@
   <context>
     <name>CircuitPythonUpdaterInterface</name>
     <message>
-      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="590" />
-      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="582" />
-      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="569" />
-      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="538" />
-      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="509" />
-      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="499" />
-      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="478" />
-      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="461" />
-      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="452" />
-      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="438" />
+      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="595" />
+      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="587" />
+      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="574" />
+      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="543" />
+      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="514" />
+      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="504" />
+      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="484" />
+      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="467" />
+      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="458" />
+      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="444" />
       <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="54" />
       <source>Install Modules</source>
       <translation type="unfinished" />
@@ -3886,8 +3886,8 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="631" />
-      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="610" />
+      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="636" />
+      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="615" />
       <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="108" />
       <source>Uninstall Modules</source>
       <translation type="unfinished" />
@@ -4001,67 +4001,67 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="440" />
+      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="446" />
       <source>Text Files (*.txt);;All Files (*)</source>
       <translation type="unfinished">Файлы текстовые (*.txt);;Все файлы (*)</translation>
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="453" />
+      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="459" />
       <source>&lt;p&gt;The given requirements file &lt;b&gt;{0}&lt;/b&gt; does not contain valid modules.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="462" />
+      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="468" />
       <source>&lt;p&gt;The given requirements file &lt;b&gt;{0}&lt;/b&gt; does not exist.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="480" />
+      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="486" />
       <source>Python Files (*.py);;All Files (*)</source>
       <translation type="unfinished">Файлы Python (*.py);;Все файлы (*)</translation>
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="500" />
+      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="505" />
       <source>&lt;p&gt;The given code file &lt;b&gt;{0}&lt;/b&gt; does not contain valid import statements or does not import external modules.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="510" />
+      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="515" />
       <source>&lt;p&gt;The given code file &lt;b&gt;{0}&lt;/b&gt; does not exist.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="539" />
+      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="544" />
       <source>&lt;p&gt;Ready to install these modules?{0}{1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="543" />
+      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="548" />
       <source>Dependencies:</source>
       <translation type="unfinished">Зависимости:</translation>
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="570" />
+      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="575" />
       <source>&lt;p&gt;Installation complete. These modules were installed successfully.{0}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="583" />
+      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="588" />
       <source>&lt;p&gt;Installation complete. No modules were installed.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="591" />
+      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="596" />
       <source>&lt;p&gt;No modules installation is required.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="611" />
+      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="616" />
       <source>Select the modules/packages to be uninstalled:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="632" />
+      <location filename="../MicroPython/CircuitPythonUpdater/CircuitPythonUpdaterInterface.py" line="637" />
       <source>&lt;p&gt;These modules/packages were uninstalled from the connected device.{0}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
@@ -4079,7 +4079,7 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonUpdater/CircupFunctions.py" line="145" />
+      <location filename="../MicroPython/CircuitPythonUpdater/CircupFunctions.py" line="143" />
       <location filename="../MicroPython/CircuitPythonUpdater/CircupFunctions.py" line="104" />
       <source>Download Bundle</source>
       <translation type="unfinished" />
@@ -4090,23 +4090,23 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonUpdater/CircupFunctions.py" line="146" />
+      <location filename="../MicroPython/CircuitPythonUpdater/CircupFunctions.py" line="144" />
       <source>&lt;p&gt;Missing file &lt;b&gt;boot_out.txt&lt;/b&gt; on the device: wrong path or drive corrupted.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonUpdater/CircupFunctions.py" line="240" />
-      <location filename="../MicroPython/CircuitPythonUpdater/CircupFunctions.py" line="229" />
+      <location filename="../MicroPython/CircuitPythonUpdater/CircupFunctions.py" line="238" />
+      <location filename="../MicroPython/CircuitPythonUpdater/CircupFunctions.py" line="227" />
       <source>Install Modules</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonUpdater/CircupFunctions.py" line="230" />
+      <location filename="../MicroPython/CircuitPythonUpdater/CircupFunctions.py" line="228" />
       <source>&lt;p&gt;The compiled version of module &lt;b&gt;{0}&lt;/b&gt; cannot be found.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonUpdater/CircupFunctions.py" line="241" />
+      <location filename="../MicroPython/CircuitPythonUpdater/CircupFunctions.py" line="239" />
       <source>&lt;p&gt;The module name &lt;b&gt;{0}&lt;/b&gt; is not known.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
@@ -19935,103 +19935,134 @@
   <context>
     <name>EspDevice</name>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="68" />
+      <location filename="../MicroPython/EspDevices.py" line="69" />
       <source>ESP8266, ESP32</source>
       <translation>ESP8266, ESP32</translation>
     </message>
     <message>
+      <location filename="../MicroPython/EspDevices.py" line="377" />
+      <location filename="../MicroPython/EspDevices.py" line="132" />
+      <source>Show MicroPython Versions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="198" />
+      <location filename="../MicroPython/EspDevices.py" line="184" />
+      <location filename="../MicroPython/EspDevices.py" line="134" />
+      <source>Erase Flash</source>
+      <translation>Очистить Flash-память</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="235" />
+      <location filename="../MicroPython/EspDevices.py" line="138" />
+      <source>Flash MicroPython Firmware</source>
+      <translation>Прошить микрокод MicroPython</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="272" />
+      <location filename="../MicroPython/EspDevices.py" line="142" />
+      <source>Flash Additional Firmware</source>
+      <translation>Прошить дополнительный микрокод</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="306" />
+      <location filename="../MicroPython/EspDevices.py" line="145" />
+      <source>Backup Firmware</source>
+      <translation>Резервировать микрокод</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="357" />
+      <location filename="../MicroPython/EspDevices.py" line="148" />
+      <source>Restore Firmware</source>
+      <translation>Восстановить микрокод</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="446" />
+      <location filename="../MicroPython/EspDevices.py" line="152" />
+      <source>Show Chip ID</source>
+      <translation>Показать ID чипа</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="466" />
+      <location filename="../MicroPython/EspDevices.py" line="155" />
+      <source>Show Flash ID</source>
+      <translation>Показать ID Flash</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="486" />
+      <location filename="../MicroPython/EspDevices.py" line="158" />
+      <source>Show MAC Address</source>
+      <translation>Показать MAC-адрес</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="162" />
+      <source>Reset Device</source>
+      <translation>Сбросить устройство</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="166" />
+      <source>Install 'esptool.py'</source>
+      <translation>Установить 'esptool.py'</translation>
+    </message>
+    <message>
       <location filename="../MicroPython/EspDevices.py" line="185" />
-      <location filename="../MicroPython/EspDevices.py" line="171" />
-      <location filename="../MicroPython/EspDevices.py" line="129" />
-      <source>Erase Flash</source>
-      <translation>Очистить Flash-память</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspDevices.py" line="222" />
-      <location filename="../MicroPython/EspDevices.py" line="132" />
-      <source>Flash MicroPython Firmware</source>
-      <translation>Прошить микрокод MicroPython</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspDevices.py" line="259" />
-      <location filename="../MicroPython/EspDevices.py" line="136" />
-      <source>Flash Additional Firmware</source>
-      <translation>Прошить дополнительный микрокод</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspDevices.py" line="293" />
-      <location filename="../MicroPython/EspDevices.py" line="139" />
-      <source>Backup Firmware</source>
-      <translation>Резервировать микрокод</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspDevices.py" line="344" />
-      <location filename="../MicroPython/EspDevices.py" line="141" />
-      <source>Restore Firmware</source>
-      <translation>Восстановить микрокод</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspDevices.py" line="365" />
-      <location filename="../MicroPython/EspDevices.py" line="144" />
-      <source>Show Chip ID</source>
-      <translation>Показать ID чипа</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspDevices.py" line="385" />
-      <location filename="../MicroPython/EspDevices.py" line="146" />
-      <source>Show Flash ID</source>
-      <translation>Показать ID Flash</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspDevices.py" line="405" />
-      <location filename="../MicroPython/EspDevices.py" line="148" />
-      <source>Show MAC Address</source>
-      <translation>Показать MAC-адрес</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspDevices.py" line="151" />
-      <source>Reset Device</source>
-      <translation>Сбросить устройство</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspDevices.py" line="153" />
-      <source>Install 'esptool.py'</source>
-      <translation>Установить 'esptool.py'</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspDevices.py" line="172" />
       <source>Shall the flash of the selected device really be erased?</source>
       <translation>Действительно ли flash-память выбранного устройства должна быть очищена?</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="184" />
+      <location filename="../MicroPython/EspDevices.py" line="197" />
       <source>'esptool erase_flash' Output</source>
       <translation>Вывод команды 'esptool erase_flash'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="343" />
-      <location filename="../MicroPython/EspDevices.py" line="258" />
-      <location filename="../MicroPython/EspDevices.py" line="221" />
+      <location filename="../MicroPython/EspDevices.py" line="356" />
+      <location filename="../MicroPython/EspDevices.py" line="271" />
+      <location filename="../MicroPython/EspDevices.py" line="234" />
       <source>'esptool write_flash' Output</source>
       <translation>Вывод команды 'esptool write_flash'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="292" />
+      <location filename="../MicroPython/EspDevices.py" line="305" />
       <source>'esptool read_flash' Output</source>
       <translation>Вывод команды 'esptool read_flash'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="365" />
+      <location filename="../MicroPython/EspDevices.py" line="378" />
+      <source>The firmware of the connected device cannot be determined or the board does not run MicroPython. Aborting...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="410" />
+      <source>unknown</source>
+      <translation type="unfinished">неизвестный</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="416" />
+      <source>&lt;h4&gt;MicroPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="424" />
+      <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="428" />
+      <source>MicroPython Version</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="446" />
       <source>'esptool chip_id' Output</source>
       <translation>Вывод команды 'esptool chip_id'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="385" />
+      <location filename="../MicroPython/EspDevices.py" line="466" />
       <source>'esptool flash_id' Output</source>
       <translation>Вывод команды 'esptool flash_id'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="405" />
+      <location filename="../MicroPython/EspDevices.py" line="486" />
       <source>'esptool read_mac' Output</source>
       <translation>Вывод команды 'esptool read_mac'</translation>
     </message>
@@ -48888,7 +48919,7 @@
   <context>
     <name>MicroPythonCommandsInterface</name>
     <message>
-      <location filename="../MicroPython/MicroPythonCommandsInterface.py" line="292" />
+      <location filename="../MicroPython/MicroPythonCommandsInterface.py" line="322" />
       <source>Detected an error without indications.</source>
       <translation>Обнаружена неиндексированная ошибка.</translation>
     </message>
@@ -48906,43 +48937,43 @@
       <translation>Универсальная плата</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="400" />
-      <location filename="../MicroPython/MicroPythonDevices.py" line="389" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="404" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="393" />
       <source>Unknown Device</source>
       <translation>Неизвестное устройство</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="523" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="527" />
       <source>Unsupported Device</source>
       <translation>Неподдерживаемое устройство</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="533" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="537" />
       <source>REPL is not supported by this device.</source>
       <translation>REPL не поддерживается этим устройством.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="552" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="556" />
       <source>Plotter is not supported by this device.</source>
       <translation>Плоттер не поддерживается этим устройством.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="571" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="575" />
       <source>Running scripts is not supported by this device.</source>
       <translation>Выполнение скриптов не поддерживается этим устройством.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="590" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="594" />
       <source>File Manager is not supported by this device.</source>
       <translation>Менеджер файлов не поддерживается этим устройством.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="635" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="639" />
       <source>Select Device Directory</source>
       <translation>Выберите директорию устройства</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="636" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="640" />
       <source>Select the directory for the connected device:</source>
       <translation>Выберите директорию для подсоединенного устройства:</translation>
     </message>
@@ -49588,12 +49619,12 @@
       <translation>Меню MicroPython</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="286" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="287" />
       <source>&lt;h3&gt;The QtSerialPort package is not available.&lt;br/&gt;MicroPython support is deactivated.&lt;/h3&gt;</source>
       <translation>&lt;h3&gt;Пакет QtSerialPort недоступен.&lt;br/&gt;Поддержка MicroPython деактивирована.&lt;/h3&gt;</translation>
     </message>
     <message numerus="yes">
-      <location filename="../MicroPython/MicroPythonWidget.py" line="327" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="328" />
       <source>%n supported device(s) detected.</source>
       <translation>
         <numerusform>Обнаружено %n поддерживаемое устройство.</numerusform>
@@ -49602,18 +49633,18 @@
       </translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="340" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="341" />
       <source>{0} - {1} ({2})</source>
       <comment>board name, description, port name</comment>
       <translation>{0} - {1} ({2})</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="357" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="358" />
       <source>No supported devices detected.</source>
       <translation>Не обнаружены поддерживаемые устройства.</translation>
     </message>
     <message numerus="yes">
-      <location filename="../MicroPython/MicroPythonWidget.py" line="361" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="362" />
       <source>
 %n unknown device(s) for manual selection.</source>
       <translation>
@@ -49626,44 +49657,44 @@
       </translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="368" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="369" />
       <source>Manual Selection</source>
       <translation>Ручной выбор</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="430" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="401" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="431" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="402" />
       <source>Unknown MicroPython Device</source>
       <translation>Неизвестное устройство MicroPython</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="402" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="403" />
       <source>&lt;p&gt;Detected these unknown serial devices&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Please report them together with the board name and a short description to &lt;a href="mailto:{1}"&gt; the eric bug reporting address&lt;/a&gt; if it is a MicroPython board.&lt;/p&gt;</source>
       <translation>&lt;p&gt;Обнаружены следующие неизвестные последовательные устройства&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Если это плата MicroPython, то сообщите о ней вместе с названием платы и кратким описанием по адресу &lt;a href="mailto:{1}"&gt; the eric bug reporting&lt;/a&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="414" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="415" />
       <source>{0} (0x{1:04x}/0x{2:04x})</source>
       <comment>description, VId, PId</comment>
       <translation>{0} (0x{1:04x}/0x{2:04x})</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="431" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="432" />
       <source>Would you like to add them to the list of manually configured devices?</source>
       <translation>Хотите добавить их в список вручную настроенных устройств?</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="558" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="561" />
       <source>Clear</source>
       <translation>Очистить</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="564" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="566" />
       <source>Copy</source>
       <translation>Копировать</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="571" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="572" />
       <source>Paste</source>
       <translation>Вставить</translation>
     </message>
@@ -49684,12 +49715,12 @@
       <translation>Подключить выбранное устройство</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="628" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="637" />
       <source>No device attached</source>
       <translation>Устройство не подключено</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="629" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="638" />
       <source>Please ensure the device is plugged into your computer and selected.
 
 It must have a version of MicroPython (or CircuitPython) flashed onto it before anything will work.
@@ -49702,309 +49733,325 @@
 И наконец, нажмите кнопку перезагрузки устройства и подождите несколько секунд, прежде чем повторить попытку.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="658" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="667" />
       <source>Start REPL</source>
       <translation>Запустить REPL</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="659" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="668" />
       <source>&lt;p&gt;The REPL cannot be started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Не удается запустить REPL.&lt;/p&gt;&lt;p&gt;Причина:&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1131" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1151" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1140" />
       <source>Serial Device Connect</source>
       <translation>Подсоединение последовательного устройства</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1132" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1141" />
+      <source>&lt;p&gt;The device at serial port &lt;b&gt;{0}&lt;/b&gt; does not respond. It may not have a MicroPython firmware flashed.&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1152" />
       <source>&lt;p&gt;Cannot connect to device at serial port &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation>&lt;p&gt;Не удается соединиться с устройством через последовательный порт &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1180" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1171" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1162" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1202" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1193" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1184" />
       <source>Run Script</source>
       <translation>Выполнить скрипт</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1163" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1185" />
       <source>There is no editor open. Abort...</source>
       <translation>Редактор не открыт. Прерывание...</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1172" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1194" />
       <source>The current editor does not contain a script. Abort...</source>
       <translation>Текущий редактор не содержит скрипт. Прервать...</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1181" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1203" />
       <source>&lt;p&gt;Cannot run script.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Не удается выполнить скрипт.&lt;/p&gt;&lt;p&gt;Причина: {0}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1206" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1228" />
       <source>Open Python File</source>
       <translation>Открыть файл Python</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1208" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1230" />
       <source>Python3 Files (*.py);;All Files (*)</source>
       <translation>Файлы Python3 (*.py);;Все файлы (*)</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1252" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1274" />
       <source>Start Chart</source>
       <translation>Построить диаграмму</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1253" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1275" />
       <source>&lt;p&gt;The Chart cannot be started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Не удается построить диаграмму.&lt;/p&gt;&lt;p&gt;Причина: {0}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1268" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1290" />
       <source>µPy Chart</source>
       <translation>µPy диаграммы</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1285" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1307" />
       <source>Unsaved Chart Data</source>
       <translation>Несохраненные данные диаграммы</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1286" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1308" />
       <source>The chart contains unsaved data.</source>
       <translation>Диаграмма содержит несохраненные данные.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1334" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1356" />
       <source>Start File Manager</source>
       <translation>Запустить менеджер файлов</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1335" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1357" />
       <source>&lt;p&gt;The File Manager cannot be started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Не удается запустить менеджер файлов.&lt;/p&gt;&lt;p&gt;Причина: {0}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1354" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1376" />
       <source>µPy Files</source>
       <translation>µPy файлы</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1390" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1412" />
       <source>Downloads</source>
       <translation>Загрузить микрокод / библиотеки</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1405" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1427" />
       <source>Show Version</source>
       <translation>Показать версию</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1409" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1431" />
       <source>Show Implementation</source>
       <translation>Показать исполнение</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1413" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1435" />
       <source>Show Board Data</source>
       <translation>Показать данные платы</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1566" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1419" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1592" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1441" />
       <source>Synchronize Time</source>
       <translation>Синхронизировать время</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1423" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1445" />
       <source>Show Device Time</source>
       <translation>Показать время устройства</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1426" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1448" />
       <source>Show Local Time</source>
       <translation>Показать локальное время</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1429" />
-      <source>Show Time</source>
-      <translation>Показать время</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1790" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1436" />
-      <source>Compile Python File</source>
-      <translation>Компилировать файл Python</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1814" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1805" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1440" />
-      <source>Compile Current Editor</source>
-      <translation>Компилировать текущий редактор</translation>
-    </message>
-    <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1451" />
+      <source>Show Time</source>
+      <translation>Показать время</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1456" />
+      <source>Show Builtin Modules</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1816" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1462" />
+      <source>Compile Python File</source>
+      <translation>Компилировать файл Python</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1840" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1831" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1466" />
+      <source>Compile Current Editor</source>
+      <translation>Компилировать текущий редактор</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1477" />
       <source>Download Firmware</source>
       <translation>Загрузить микрокод</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1459" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1485" />
       <source>Show Documentation</source>
       <translation>Просмотр документации</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1464" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1490" />
       <source>Flash UF2 Device</source>
       <translation>Прошивка UF2-устройств</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1467" />
-      <source>Manage Unknown Devices</source>
-      <translation>Менеджер неизвестных устройств</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1470" />
-      <source>Ignored Serial Devices</source>
-      <translation>Проигнорированные последовательные устройства</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1473" />
-      <source>Configure</source>
-      <translation>Настройки</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1483" />
-      <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="1491" />
-      <source>No version information available.</source>
-      <translation>Информация о версии недоступна.</translation>
-    </message>
-    <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1493" />
+      <source>Manage Unknown Devices</source>
+      <translation>Менеджер неизвестных устройств</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1496" />
+      <source>Ignored Serial Devices</source>
+      <translation>Проигнорированные последовательные устройства</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1499" />
+      <source>Configure</source>
+      <translation>Настройки</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1509" />
+      <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="1517" />
+      <source>No version information available.</source>
+      <translation>Информация о версии недоступна.</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1519" />
       <source>Device Version Information</source>
       <translation>Информация о версии устройства</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1513" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1509" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1539" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1535" />
       <source>unknown</source>
       <translation>unknown</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1518" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1544" />
       <source> ({0})</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1525" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1551" />
       <source>Device Implementation Information</source>
       <translation>Информация о исполнении устройства</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1526" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1552" />
       <source>&lt;h3&gt;Device Implementation Information&lt;/h3&gt;&lt;p&gt;This device contains &lt;b&gt;{0} {1}{2}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1567" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1593" />
       <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="1589" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1615" />
       <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="1597" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1623" />
       <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="1613" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1639" />
       <source>Device Date and Time</source>
       <translation>Дата и время устройства</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1625" />
-      <source>Local Date and Time</source>
-      <translation>Локальные дата и время</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1626" />
-      <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="1667" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1650" />
-      <source>Date and Time</source>
-      <translation>Дата и время</translation>
-    </message>
-    <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1651" />
-      <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='center'&gt;{0}&lt;/td&gt;&lt;td align='center'&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='center'&gt;{1}&lt;/td&gt;&lt;td align='center'&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='center'&gt;{0}&lt;/td&gt;&lt;td align='center'&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='center'&gt;{1}&lt;/td&gt;&lt;td align='center'&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1668" />
-      <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='center'&gt;{0} {1}&lt;/td&gt;&lt;td align='center'&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='center'&gt;{0} {1}&lt;/td&gt;&lt;td align='center'&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1692" />
-      <source>Error handling device</source>
-      <translation>Ошибка при работе с устройством</translation>
+      <source>Local Date and Time</source>
+      <translation>Локальные дата и время</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1652" />
+      <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="1693" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1676" />
+      <source>Date and Time</source>
+      <translation>Дата и время</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1677" />
+      <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='center'&gt;{0}&lt;/td&gt;&lt;td align='center'&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='center'&gt;{1}&lt;/td&gt;&lt;td align='center'&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='center'&gt;{0}&lt;/td&gt;&lt;td align='center'&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='center'&gt;{1}&lt;/td&gt;&lt;td align='center'&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1694" />
+      <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='center'&gt;{0} {1}&lt;/td&gt;&lt;td align='center'&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='center'&gt;{0} {1}&lt;/td&gt;&lt;td align='center'&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1718" />
+      <source>Error handling device</source>
+      <translation>Ошибка при работе с устройством</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1719" />
       <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="1735" />
-      <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="1761" />
+      <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="1787" />
       <source>Python Files (*.py);;All Files (*)</source>
       <translation>Файлы Python (*.py);;Все файлы (*)</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1771" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1797" />
       <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="1780" />
-      <source>'mpy-cross' Output</source>
-      <translation>Вывод команды 'mpy-cross'</translation>
-    </message>
-    <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1806" />
+      <source>'mpy-cross' Output</source>
+      <translation>Вывод команды 'mpy-cross'</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1832" />
       <source>The current editor does not contain a Python file. Aborting...</source>
       <translation>Текущий редактор не содержит файл Python. Отмена...</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1898" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1924" />
       <source>Add Unknown Devices</source>
       <translation>Добавить неизвестное устройство</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1899" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1925" />
       <source>Select the devices to be added:</source>
       <translation>Выбор устройств для добавления:</translation>
     </message>
     <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1966" />
+      <source>Plus any modules on the filesystem.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../MicroPython/MicroPythonWidget.ui" line="0" />
       <source>Press to check for connected devices</source>
       <translation>Проверить подключенные устройства</translation>
@@ -50047,138 +50094,185 @@
   <context>
     <name>MicrobitDevice</name>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="72" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="73" />
       <source>BBC micro:bit</source>
       <translation>BBC micro:bit</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="75" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="76" />
       <source>Calliope mini</source>
       <translation>Calliope mini</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="147" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="338" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="328" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="311" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="150" />
+      <source>Show MicroPython Versions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="153" />
       <source>Flash MicroPython</source>
       <translation>Прошить MicroPython</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="150" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="156" />
       <source>Flash Firmware</source>
       <translation>Прошить микрокод</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="317" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="154" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="418" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="159" />
       <source>Save Script</source>
       <translation>Сохранить скрипт</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="155" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="160" />
       <source>Save the current script to the selected device</source>
       <translation>Сохранить текущий скрипт на выбранном устройстве</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="157" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="162" />
       <source>Save Script as 'main.py'</source>
       <translation>Сохранить скрипт как 'main.py'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="159" />
-      <source>Save the current script as 'main.py' on the connected device</source>
-      <translation>Сохранить текущий скрипт как 'main.py' на подключенном устройстве</translation>
-    </message>
-    <message>
       <location filename="../MicroPython/MicrobitDevices.py" line="164" />
+      <source>Save the current script as 'main.py' on the connected device</source>
+      <translation>Сохранить текущий скрипт как 'main.py' на подключенном устройстве</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="169" />
       <source>Reset {0}</source>
       <translation>Сбросить {0}</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="286" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="277" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="263" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="246" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="233" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="213" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="290" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="281" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="267" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="250" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="237" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="217" />
       <source>Flash MicroPython/Firmware</source>
       <translation>Прошить MicroPython/микрокод</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="214" />
-      <source>&lt;p&gt;The BBC micro:bit is not ready for flashing the DAPLink firmware. Follow these instructions. &lt;/p&gt;&lt;ul&gt;&lt;li&gt;unplug USB cable and any batteries&lt;/li&gt;&lt;li&gt;keep RESET button pressed an plug USB cable back in&lt;/li&gt;&lt;li&gt;a drive called MAINTENANCE should be available&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;See the &lt;a href="https://microbit.org/guide/firmware/"&gt;micro:bit web site&lt;/a&gt; for details.&lt;/p&gt;</source>
-      <translation>&lt;p&gt;BBC micro:bit не готово к загрузке прошивки DAPLink. Следуйте данным инструкциям. &lt;/p&gt;&lt;ul&gt;&lt;li&gt;отключите USB-кабель и всевозможные аккумуляторы&lt;/li&gt;&lt;li&gt;удерживая кнопку RESET нажатой вставьте USB-кабель обратно&lt;/li&gt;&lt;li&gt;должен быть доступен диск под названием MAINTENANCE&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Подробнее на вебсайте &lt;a href="https://microbit.org/guide/firmware/"&gt;micro:bit&lt;/a&gt;.&lt;/p&gt;</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="234" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="218" />
+      <source>&lt;p&gt;The BBC micro:bit is not ready for flashing the DAPLink firmware. Follow these instructions. &lt;/p&gt;&lt;ul&gt;&lt;li&gt;unplug USB cable and any batteries&lt;/li&gt;&lt;li&gt;keep RESET button pressed and plug USB cable back in&lt;/li&gt;&lt;li&gt;a drive called MAINTENANCE should be available&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;See the &lt;a href="https://microbit.org/guide/firmware/"&gt;micro:bit web site&lt;/a&gt; for details.&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="238" />
       <source>&lt;p&gt;The BBC micro:bit is not ready for flashing the MicroPython firmware. Please make sure, that a drive called MICROBIT is available.&lt;/p&gt;</source>
       <translation>&lt;p&gt;BBC micro:bit не готово к прошивке микрокода MicroPython. Пожалуйста убедитесь, что устройство, называемое MICROBIT, доступно.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="247" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="251" />
       <source>&lt;p&gt;The "Calliope mini" is not ready for flashing the DAPLink firmware. Follow these instructions. &lt;/p&gt;&lt;ul&gt;&lt;li&gt;unplug USB cable and any batteries&lt;/li&gt;&lt;li&gt;keep RESET button pressed an plug USB cable back in&lt;/li&gt;&lt;li&gt;a drive called MAINTENANCE should be available&lt;/li&gt;&lt;/ul&gt;</source>
       <translation>&lt;p&gt;"Calliope mini" не готово к прошивке микрокода DAPLink. Следуйте данным инструкциям. &lt;/p&gt;&lt;ul&gt;&lt;li&gt;отключите USB-кабель и все аккумуляторы&lt;/li&gt;&lt;li&gt;удерживая кнопку RESET нажатой вставьте USB-кабель обратно&lt;/li&gt;&lt;li&gt;должен быть доступен диск под названием MAINTENANCE&lt;/li&gt;&lt;/ul&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="264" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="268" />
       <source>&lt;p&gt;The "Calliope mini" is not ready for flashing the MicroPython firmware. Please make sure, that a drive called MINI is available.&lt;/p&gt;</source>
       <translation>&lt;p&gt;"Calliope mini" не готово к прошивке микрокода MicroPython. Пожалуйста убедитесь, что устройство, называемое MICROBIT, доступно.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="279" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="283" />
       <source>MicroPython/Firmware Files (*.hex *.bin);;All Files (*)</source>
       <translation>Файлы MicroPython/микрокода (*.hex *.bin);;Все файлы (*)</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="287" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="291" />
       <source>There are multiple devices ready for flashing. Please make sure, that only one device is prepared.</source>
       <translation>Несколько устройств готовы для прошивки. Пожалуйста убедитесь, что подготовлено только одно устройство.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="351" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="315" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="312" />
+      <source>The firmware of the connected device cannot be determined or the board does not run MicroPython. Aborting...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="329" />
+      <source>&lt;p&gt;The BBC micro:bit generation cannot be determined. Aborting...&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="339" />
+      <source>&lt;p&gt;The firmware URL for the device type &lt;b&gt;{0}&lt;/b&gt; is not known. Aborting...&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="371" />
+      <source>unknown</source>
+      <translation type="unfinished">неизвестный</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="377" />
+      <source>&lt;h4&gt;MicroPython Version Information&lt;br/&gt;(BBC micro:bit v{2})&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="386" />
+      <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="390" />
+      <source>MicroPython Version</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="452" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="416" />
       <source>Save Script as '{0}'</source>
       <translation>Сохранить скрипт как '{0}'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="324" />
-      <source>The current editor does not contain a Python script. Write it anyway?</source>
-      <translation>Текущий редактор не содержит скрипт Python. Все равно записать?</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="335" />
-      <source>The script is empty. Aborting.</source>
-      <translation>Скрипт пуст. Прерывание.</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="344" />
-      <source>Enter a file name on the device:</source>
-      <translation>Введите имя файла на устройстве:</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="365" />
-      <source>&lt;p&gt;The script could not be saved to the device.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
-      <translation>&lt;p&gt;Не удается сохранить скрипт на устройстве.&lt;/p&gt;&lt;p&gt;Причина: {0}&lt;/p&gt;</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="421" />
-      <source>MicroPython Firmware for BBC micro:bit V1</source>
-      <translation>Микрокод MicroPython для BBC micro:bit V1</translation>
-    </message>
-    <message>
       <location filename="../MicroPython/MicrobitDevices.py" line="425" />
-      <source>MicroPython Firmware for BBC micro:bit V2</source>
-      <translation>Микрокод MicroPython для BBC micro:bit V2</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="440" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="429" />
-      <source>DAPLink Firmware</source>
-      <translation>Микрокод DAPLink</translation>
+      <source>The current editor does not contain a Python script. Write it anyway?</source>
+      <translation>Текущий редактор не содержит скрипт Python. Все равно записать?</translation>
     </message>
     <message>
       <location filename="../MicroPython/MicrobitDevices.py" line="436" />
+      <source>The script is empty. Aborting.</source>
+      <translation>Скрипт пуст. Прерывание.</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="445" />
+      <source>Enter a file name on the device:</source>
+      <translation>Введите имя файла на устройстве:</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="466" />
+      <source>&lt;p&gt;The script could not be saved to the device.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
+      <translation>&lt;p&gt;Не удается сохранить скрипт на устройстве.&lt;/p&gt;&lt;p&gt;Причина: {0}&lt;/p&gt;</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="522" />
+      <source>MicroPython Firmware for BBC micro:bit V1</source>
+      <translation>Микрокод MicroPython для BBC micro:bit V1</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="526" />
+      <source>MicroPython Firmware for BBC micro:bit V2</source>
+      <translation>Микрокод MicroPython для BBC micro:bit V2</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="541" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="530" />
+      <source>DAPLink Firmware</source>
+      <translation>Микрокод DAPLink</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="537" />
       <source>MicroPython Firmware</source>
       <translation>Микрокод MicroPython</translation>
     </message>
+    <message>
+      <source>&lt;p&gt;The BBC micro:bit is not ready for flashing the DAPLink firmware. Follow these instructions. &lt;/p&gt;&lt;ul&gt;&lt;li&gt;unplug USB cable and any batteries&lt;/li&gt;&lt;li&gt;keep RESET button pressed an plug USB cable back in&lt;/li&gt;&lt;li&gt;a drive called MAINTENANCE should be available&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;See the &lt;a href="https://microbit.org/guide/firmware/"&gt;micro:bit web site&lt;/a&gt; for details.&lt;/p&gt;</source>
+      <translation type="vanished">&lt;p&gt;BBC micro:bit не готово к загрузке прошивки DAPLink. Следуйте данным инструкциям. &lt;/p&gt;&lt;ul&gt;&lt;li&gt;отключите USB-кабель и всевозможные аккумуляторы&lt;/li&gt;&lt;li&gt;удерживая кнопку RESET нажатой вставьте USB-кабель обратно&lt;/li&gt;&lt;li&gt;должен быть доступен диск под названием MAINTENANCE&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Подробнее на вебсайте &lt;a href="https://microbit.org/guide/firmware/"&gt;micro:bit&lt;/a&gt;.&lt;/p&gt;</translation>
+    </message>
   </context>
   <context>
     <name>MicrosoftEngine</name>
@@ -61963,98 +62057,129 @@
   <context>
     <name>PyBoardDevice</name>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="79" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="80" />
       <source>PyBoard</source>
       <translation>PyBoard</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="194" />
-      <source>Workspace Directory</source>
-      <translation>Директория рабочей области</translation>
-    </message>
-    <message>
       <location filename="../MicroPython/PyBoardDevices.py" line="195" />
+      <source>Workspace Directory</source>
+      <translation>Директория рабочей области</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/PyBoardDevices.py" line="196" />
       <source>Python files for PyBoard can be edited in place, if the device volume is locally available. Such a volume was not found. In place editing will not be available.</source>
       <translation>Файлы Python для PyBoard можно редактировать по месту, если том устройства доступен локально. Такой том найти не удалось. Редактирование по месту будет недоступно.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="232" />
-      <source>Activate Bootloader</source>
-      <translation>Активировать загрузчик</translation>
-    </message>
-    <message>
       <location filename="../MicroPython/PyBoardDevices.py" line="235" />
+      <source>Activate Bootloader</source>
+      <translation>Активировать загрузчик</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/PyBoardDevices.py" line="238" />
       <source>List DFU-capable Devices</source>
       <translation>Список DFU-устройств</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="399" />
-      <location filename="../MicroPython/PyBoardDevices.py" line="386" />
-      <location filename="../MicroPython/PyBoardDevices.py" line="239" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="423" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="242" />
+      <source>Show MicroPython Versions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/PyBoardDevices.py" line="403" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="390" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="245" />
       <source>Flash MicroPython Firmware</source>
       <translation>Прошить микрокод MicroPython</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="244" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="248" />
       <source>MicroPython Flash Instructions</source>
       <translation>Инструкция прошивки MicroPython</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="286" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="290" />
       <source>dfu-util not available</source>
       <translation>dfu-util не доступна</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="287" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="291" />
       <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="307" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="311" />
       <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="317" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="321" />
       <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="323" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="327" />
       <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="326" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="330" />
       <source>Enable DFU mode</source>
       <translation>Включить режим DFU</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="337" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="341" />
       <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="345" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="349" />
       <source>Disable DFU mode</source>
       <translation>Отключить режим DFU</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="398" />
-      <location filename="../MicroPython/PyBoardDevices.py" line="363" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="402" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="367" />
       <source>'dfu-util' Output</source>
       <translation>Вывод команды'dfu-util'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="363" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="367" />
       <source>List DFU capable Devices</source>
       <translation>Список устройств с поддержкой DFU</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="388" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="392" />
       <source>MicroPython Firmware Files (*.dfu);;All Files (*)</source>
       <translation>Файлы микрокода MicroPython (*.dfu);;Все файлы (*)</translation>
     </message>
+    <message>
+      <location filename="../MicroPython/PyBoardDevices.py" line="424" />
+      <source>The firmware of the connected device cannot be determined or the board does not run MicroPython. Aborting...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/PyBoardDevices.py" line="456" />
+      <source>unknown</source>
+      <translation type="unfinished">неизвестный</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/PyBoardDevices.py" line="462" />
+      <source>&lt;h4&gt;MicroPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/PyBoardDevices.py" line="470" />
+      <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/PyBoardDevices.py" line="474" />
+      <source>MicroPython Version</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>PyCoverageDialog</name>
@@ -67245,68 +67370,68 @@
       <translation>RP2040</translation>
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="183" />
-      <location filename="../MicroPython/RP2040Devices.py" line="128" />
+      <location filename="../MicroPython/RP2040Devices.py" line="184" />
+      <location filename="../MicroPython/RP2040Devices.py" line="129" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="131" />
+      <location filename="../MicroPython/RP2040Devices.py" line="132" />
       <source>Activate Bootloader</source>
       <translation>Активировать загрузчик</translation>
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="134" />
+      <location filename="../MicroPython/RP2040Devices.py" line="135" />
       <source>Flash MicroPython Firmware</source>
       <translation type="unfinished">Прошить микрокод MicroPython</translation>
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="184" />
+      <location filename="../MicroPython/RP2040Devices.py" line="185" />
       <source>The firmware of the connected device cannot be determined or the board does not run MicroPython. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="223" />
+      <location filename="../MicroPython/RP2040Devices.py" line="222" />
       <source>unknown</source>
       <translation type="unfinished">неизвестный</translation>
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="229" />
-      <source>&lt;h4&gt;MicroPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;td&gt;&lt;/td&gt;{2}&lt;/tr&gt;&lt;/table&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="238" />
+      <location filename="../MicroPython/RP2040Devices.py" line="228" />
+      <source>&lt;h4&gt;MicroPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;td&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/RP2040Devices.py" line="237" />
       <source>({0})</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="247" />
+      <location filename="../MicroPython/RP2040Devices.py" line="246" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="251" />
+      <location filename="../MicroPython/RP2040Devices.py" line="250" />
       <source>MicroPython Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="274" />
+      <location filename="../MicroPython/RP2040Devices.py" line="273" />
       <source>MicroPython Firmware</source>
       <translation>Микрокод MicroPython</translation>
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="279" />
+      <location filename="../MicroPython/RP2040Devices.py" line="277" />
       <source>Pimoroni Pico Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="283" />
+      <location filename="../MicroPython/RP2040Devices.py" line="280" />
       <source>CircuitPython Firmware</source>
       <translation>Микрокод CircuitPython</translation>
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="287" />
+      <location filename="../MicroPython/RP2040Devices.py" line="284" />
       <source>CircuitPython Libraries</source>
       <translation>Библиотеки CircuitPython</translation>
     </message>
@@ -70942,32 +71067,32 @@
   <context>
     <name>ShowModulesDialog</name>
     <message>
-      <location filename="../MicroPython/CircuitPythonUpdater/ShowModulesDialog.py" line="82" />
+      <location filename="../MicroPython/ShowModulesDialog.py" line="87" />
       <source>Showing {0} of {1} modules/packages</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonUpdater/ShowModulesDialog.ui" line="0" />
+      <location filename="../MicroPython/ShowModulesDialog.ui" line="0" />
       <source>Available Modules</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonUpdater/ShowModulesDialog.ui" line="0" />
+      <location filename="../MicroPython/ShowModulesDialog.ui" line="0" />
       <source>Filter:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonUpdater/ShowModulesDialog.ui" line="0" />
+      <location filename="../MicroPython/ShowModulesDialog.ui" line="0" />
       <source>Enter a string used to filter the list below.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonUpdater/ShowModulesDialog.ui" line="0" />
+      <location filename="../MicroPython/ShowModulesDialog.ui" line="0" />
       <source>Enter Filter String</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonUpdater/ShowModulesDialog.ui" line="0" />
+      <location filename="../MicroPython/ShowModulesDialog.ui" line="0" />
       <source>Press to apply the entered filter.</source>
       <translation type="unfinished" />
     </message>

eric ide

mercurial