i18n/Beremiz_ru_RU.po
changeset 1588 9277d3174744
parent 1566 2ce8d970fc69
child 1627 c431d64589ef
--- a/i18n/Beremiz_ru_RU.po	Thu Dec 01 18:30:34 2016 +0300
+++ b/i18n/Beremiz_ru_RU.po	Thu Dec 01 18:31:10 2016 +0300
@@ -7,9 +7,9 @@
 msgstr ""
 "Project-Id-Version: Beremiz\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-11-17 12:41+0300\n"
-"PO-Revision-Date: 2016-11-17 13:11+0300\n"
-"Last-Translator: \n"
+"POT-Creation-Date: 2016-12-01 18:27+0300\n"
+"PO-Revision-Date: 2016-12-01 18:27+0300\n"
+"Last-Translator: Andrey Skvortsov <andrej.skvortzov@gmail.com>\n"
 "Language-Team: Andrey Skvortsov <andrej.skvortzov@gmail.com>\n"
 "Language: ru_RU\n"
 "MIME-Version: 1.0\n"
@@ -17,29 +17,7 @@
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: Poedit 1.8.11\n"
 
-#: ../PLCOpenEditor.py:408
-msgid ""
-"\n"
-"An error has occurred.\n"
-"\n"
-"Click OK to save an error report.\n"
-"\n"
-"Please be kind enough to send this file to:\n"
-"edouard.tisserant@gmail.com\n"
-"\n"
-"Error:\n"
-msgstr ""
-"\n"
-"Произошла ошибка.\n"
-"\n"
-"Нажмите OK, чтобы сохранить репорт об ошибке.\n"
-"\n"
-"Будьте так добры, пошлите этот файл:\n"
-"edouard.tisserant@gmail.com\n"
-"\n"
-"Ошибка:\n"
-
-#: ../Beremiz.py:1178
+#: ../PLCOpenEditor.py:408 ../Beremiz.py:1182
 #, python-format
 msgid ""
 "\n"
@@ -49,18 +27,18 @@
 "Please be kind enough to send this file to:\n"
 "beremiz-devel@lists.sourceforge.net\n"
 "\n"
-"You should now restart Beremiz.\n"
+"You should now restart program.\n"
 "\n"
 "Traceback:\n"
 msgstr ""
 "\n"
-"Произошла невосстанавливаемая ошибка (bug). Отчет об ошибке сохранен:\n"
+"Произошла невосстанавливаемая ошибка (bug). Отчет об ошибке сохранен в:\n"
 "(%s)\n"
 "\n"
 "Будьте добры, отправьте этот файл по адресу\n"
 "beremiz-devel@lists.sourceforge.net\n"
 "\n"
-"Для дальнейшей работы перезапустите Beremiz.\n"
+"Для дальнейшей работы перезапустите программу.\n"
 "\n"
 "Traceback:\n"
 
@@ -88,10 +66,6 @@
 msgid "   Temp"
 msgstr "Временный"
 
-#: ../PLCOpenEditor.py:418
-msgid " : "
-msgstr ""
-
 #: ../dialogs/PouTransitionDialog.py:94 ../dialogs/ProjectDialog.py:66
 #: ../dialogs/PouActionDialog.py:91 ../dialogs/PouDialog.py:113
 #, python-format
@@ -102,22 +76,22 @@
 msgid " generation failed !\n"
 msgstr "неудачная генерация кода!\n"
 
-#: ../plcopen/plcopen.py:888
+#: ../plcopen/plcopen.py:890
 #, python-format
 msgid "\"%s\" Data Type doesn't exist !!!"
 msgstr "Тип данных \"%s\" не существует!!!"
 
-#: ../plcopen/plcopen.py:906
+#: ../plcopen/plcopen.py:908
 #, python-format
 msgid "\"%s\" POU already exists !!!"
 msgstr "POU \"%s\"  уже существует!!!"
 
-#: ../plcopen/plcopen.py:927
+#: ../plcopen/plcopen.py:929
 #, python-format
 msgid "\"%s\" POU doesn't exist !!!"
 msgstr "POU \"%s\"  не найден!!!"
 
-#: ../editors/Viewer.py:242
+#: ../editors/Viewer.py:246
 #, python-format
 msgid "\"%s\" can't use itself!"
 msgstr "\"%s\" не может использовать сам себя!!!"
@@ -138,40 +112,30 @@
 msgstr "Тип данных \"%s\"  уже существует!!!"
 
 #: ../dialogs/PouTransitionDialog.py:105 ../dialogs/BlockPreviewDialog.py:219
-#: ../dialogs/PouActionDialog.py:102 ../editors/Viewer.py:258
-#: ../editors/Viewer.py:326 ../editors/Viewer.py:350 ../editors/Viewer.py:370
+#: ../dialogs/PouActionDialog.py:102 ../editors/Viewer.py:262
+#: ../editors/Viewer.py:330 ../editors/Viewer.py:354 ../editors/Viewer.py:374
 #: ../editors/TextViewer.py:272 ../editors/TextViewer.py:301
-#: ../controls/VariablePanel.py:394
+#: ../controls/VariablePanel.py:396
 #, python-format
 msgid "\"%s\" element for this pou already exists!"
 msgstr "Элемент с именем \"%s\" уже существует в этом POU!!!"
 
-#: ../Beremiz.py:984
+#: ../Beremiz.py:988
 #, python-format
 msgid "\"%s\" folder is not a valid Beremiz project\n"
 msgstr "Директория \"%s\" не является проектом Beremiz\n"
 
-#: ../PLCGenerator.py:1091
-#, python-format
-msgid "\"%s\" function cancelled in \"%s\" POU: No input connected"
-msgstr "Функция \"%s\" не используется  в POU \"%s\": входы не подключены"
-
-#: ../dialogs/SFCStepNameDialog.py:51 ../dialogs/PouTransitionDialog.py:101
-#: ../dialogs/BlockPreviewDialog.py:207 ../dialogs/PouNameDialog.py:49
+#: ../dialogs/SFCStepNameDialog.py:52 ../dialogs/PouTransitionDialog.py:101
+#: ../dialogs/BlockPreviewDialog.py:207 ../dialogs/PouNameDialog.py:50
 #: ../dialogs/PouActionDialog.py:98 ../dialogs/PouDialog.py:120
 #: ../editors/DataTypeEditor.py:555 ../editors/DataTypeEditor.py:584
-#: ../editors/CodeFileEditor.py:770 ../controls/VariablePanel.py:749
+#: ../editors/CodeFileEditor.py:770 ../controls/VariablePanel.py:751
 #: ../IDEFrame.py:1593
 #, python-format
 msgid "\"%s\" is a keyword. It can't be used!"
 msgstr "\"%s\" является ключевым словом и не может быть использован!"
 
-#: ../editors/Viewer.py:246
-#, python-format
-msgid "\"%s\" is already used by \"%s\"!"
-msgstr "\"%s\" уже используется \"%s\"!"
-
-#: ../plcopen/plcopen.py:2414
+#: ../plcopen/plcopen.py:2416
 #, python-format
 msgid "\"%s\" is an invalid value!"
 msgstr "\"%s\" недопустимое значение!"
@@ -181,11 +145,11 @@
 msgid "\"%s\" is not a valid folder!"
 msgstr "\"%s\" не является директорией!"
 
-#: ../dialogs/SFCStepNameDialog.py:49 ../dialogs/PouTransitionDialog.py:99
-#: ../dialogs/BlockPreviewDialog.py:203 ../dialogs/PouNameDialog.py:47
+#: ../dialogs/SFCStepNameDialog.py:50 ../dialogs/PouTransitionDialog.py:99
+#: ../dialogs/BlockPreviewDialog.py:203 ../dialogs/PouNameDialog.py:48
 #: ../dialogs/PouActionDialog.py:96 ../dialogs/PouDialog.py:118
 #: ../editors/DataTypeEditor.py:579 ../editors/CodeFileEditor.py:768
-#: ../controls/VariablePanel.py:747 ../IDEFrame.py:1591
+#: ../controls/VariablePanel.py:749 ../IDEFrame.py:1591
 #, python-format
 msgid "\"%s\" is not a valid identifier!"
 msgstr "\"%s\" неверный идентификатор!"
@@ -196,26 +160,16 @@
 msgstr "\"%s\" используется более чем одним POU. Продолжить?"
 
 #: ../dialogs/BlockPreviewDialog.py:211 ../dialogs/PouDialog.py:122
-#: ../editors/Viewer.py:256 ../editors/Viewer.py:311 ../editors/Viewer.py:341
-#: ../editors/Viewer.py:363 ../editors/TextViewer.py:270
+#: ../editors/Viewer.py:260 ../editors/Viewer.py:315 ../editors/Viewer.py:345
+#: ../editors/Viewer.py:367 ../editors/TextViewer.py:270
 #: ../editors/TextViewer.py:299 ../editors/TextViewer.py:350
-#: ../editors/TextViewer.py:373 ../controls/VariablePanel.py:336
+#: ../editors/TextViewer.py:373 ../controls/VariablePanel.py:338
 #: ../IDEFrame.py:1611
 #, python-format
 msgid "\"%s\" pou already exists!"
 msgstr "POU \"%s\" уже существует!"
 
-#: ../plcopen/plcopen.py:500
-#, python-format
-msgid "\"%s\" resource already exists in \"%s\" configuration !!!"
-msgstr "Ресурс \"%s\"  уже существует в конфигурации \"%s\"!!!"
-
-#: ../plcopen/plcopen.py:517
-#, python-format
-msgid "\"%s\" resource doesn't exist in \"%s\" configuration !!!"
-msgstr "Ресурс \"%s\"  отсутствует в конфигурации \"%s\"!!!"
-
-#: ../dialogs/SFCStepNameDialog.py:57
+#: ../dialogs/SFCStepNameDialog.py:58
 #, python-format
 msgid "\"%s\" step already exists!"
 msgstr "Шаг \"%s\" уже существует!"
@@ -237,20 +191,68 @@
 "Right value must be greater than left value."
 msgstr "\"%s\" не является корректной размерностью массива! Правое значение должно быть больше левого."
 
+#: ../PLCGenerator.py:1093
+#, python-brace-format
+msgid "\"{a1}\" function cancelled in \"{a2}\" POU: No input connected"
+msgstr "Функция \"{a1}\" не используется  в POU \"{a2}\": входы не подключены"
+
+#: ../editors/Viewer.py:250
+#, python-brace-format
+msgid "\"{a1}\" is already used by \"{a2}\"!"
+msgstr "\"{a1}\" уже используется \"{a2}\"!"
+
+#: ../plcopen/plcopen.py:500
+#, python-brace-format
+msgid "\"{a1}\" resource already exists in \"{a2}\" configuration !!!"
+msgstr "Ресурс \"{a1}\"  уже существует в конфигурации \"{a2}\"!!!"
+
+#: ../plcopen/plcopen.py:518
+#, python-brace-format
+msgid "\"{a1}\" resource doesn't exist in \"{a2}\" configuration !!!"
+msgstr "Ресурс \"{a1}\"  отсутствует в конфигурации \"{a2}\"!!!"
+
 msgid "%(codefile_name)s"
 msgstr "%(codefile_name)"
 
-#: ../PLCControler.py:970
-#, python-format
-msgid "%s \"%s\" can't be pasted as a %s."
-msgstr "%s \"%s\" не может быть вставлен как %s."
-
-#: ../PLCControler.py:1530
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:578
+#, python-format
+msgid "%03gms"
+msgstr "%03gмс"
+
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:569
+#, python-format
+msgid "%dd"
+msgstr "%dд"
+
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:56
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:570
+#, python-format
+msgid "%dh"
+msgstr "%dч"
+
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:55
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:571
+#, python-format
+msgid "%dm"
+msgstr "%dм"
+
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:53
+#, python-format
+msgid "%dms"
+msgstr "%dмс"
+
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:54
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:572
+#, python-format
+msgid "%ds"
+msgstr "%dc"
+
+#: ../PLCControler.py:1531
 #, python-format
 msgid "%s Data Types"
 msgstr "%s типы данных"
 
-#: ../PLCControler.py:1513
+#: ../PLCControler.py:1514
 #, python-format
 msgid "%s POUs"
 msgstr "%s POU"
@@ -260,24 +262,15 @@
 msgid "%s Profile"
 msgstr "%s профиль"
 
-#: ../ConfigTreeNode.py:56
-#, python-format
-msgid ""
-"%s XML file doesn't follow XSD schema at line %d:\n"
-"%s"
-msgstr ""
-"%s XML файл не следует XSD-схеме в строке %d:\n"
-"%s"
-
-#: ../plcopen/plcopen.py:1647 ../plcopen/plcopen.py:1654
-#: ../plcopen/plcopen.py:1666 ../plcopen/plcopen.py:1674
-#: ../plcopen/plcopen.py:1684
+#: ../plcopen/plcopen.py:1649 ../plcopen/plcopen.py:1656
+#: ../plcopen/plcopen.py:1668 ../plcopen/plcopen.py:1676
+#: ../plcopen/plcopen.py:1686
 #, python-format
 msgid "%s body don't have instances!"
 msgstr "Тело %s не содержит экземпляров!"
 
-#: ../plcopen/plcopen.py:1702 ../plcopen/plcopen.py:1709
-#: ../plcopen/plcopen.py:1716
+#: ../plcopen/plcopen.py:1704 ../plcopen/plcopen.py:1711
+#: ../plcopen/plcopen.py:1718
 #, python-format
 msgid "%s body don't have text!"
 msgstr "Тело %s не содержит никакой текст!"
@@ -335,7 +328,7 @@
 msgid "&Properties"
 msgstr "&Свойства"
 
-#: ../Beremiz.py:323
+#: ../Beremiz.py:324
 msgid "&Recent Projects"
 msgstr "&Недавние проекты"
 
@@ -344,19 +337,19 @@
 msgstr "&Ресурсы"
 
 #: ../controls/SearchResultPanel.py:252
-#, python-format
-msgid "'%s' - %d match in project"
-msgstr "'%s'- %d совпадений в проекте"
+#, python-brace-format
+msgid "'{a1}' - {a2} match in project"
+msgstr "'{a1}'- {a2} совпадений в проекте"
 
 #: ../controls/SearchResultPanel.py:254
-#, python-format
-msgid "'%s' - %d matches in project"
-msgstr "'%s' - %d совпадений в проекте"
-
-#: ../connectors/PYRO/__init__.py:86
-#, python-format
-msgid "'%s' is located at %s\n"
-msgstr "'%s' находится %s\n"
+#, python-brace-format
+msgid "'{a1}' - {a2} matches in project"
+msgstr "'{a1}' - {a2} совпадений в проекте"
+
+#: ../connectors/PYRO/__init__.py:90
+#, python-brace-format
+msgid "'{a1}' is located at {a2}\n"
+msgstr "'{a1}' находится {a2}\n"
 
 #: ../controls/SearchResultPanel.py:304
 #, python-format
@@ -365,31 +358,31 @@
 
 #: ../PLCOpenEditor.py:396 ../PLCOpenEditor.py:398 ../PLCOpenEditor.py:399
 msgid ",   "
-msgstr ""
+msgstr ",   "
 
 #: ../dialogs/PouTransitionDialog.py:96 ../dialogs/PouActionDialog.py:93
 #: ../dialogs/PouDialog.py:115
 #, python-format
 msgid ", %s"
-msgstr ""
+msgstr ", %s"
 
 #: ../PLCOpenEditor.py:394
 msgid ". "
-msgstr ""
-
-#: ../controls/LogViewer.py:278
+msgstr ". "
+
+#: ../controls/LogViewer.py:279
 msgid "1d"
 msgstr "1 день"
 
-#: ../controls/LogViewer.py:279
+#: ../controls/LogViewer.py:280
 msgid "1h"
 msgstr "1 час"
 
-#: ../controls/LogViewer.py:280
+#: ../controls/LogViewer.py:281
 msgid "1m"
 msgstr "1 мин"
 
-#: ../controls/LogViewer.py:281
+#: ../controls/LogViewer.py:282
 msgid "1s"
 msgstr "1 сек"
 
@@ -399,23 +392,23 @@
 msgid "A POU has an element named \"%s\". This could cause a conflict. Do you wish to continue?"
 msgstr "В POU присутствует элемент с именем \"%s\". Это может вызвать конфликт. Хотите продолжить?"
 
-#: ../dialogs/SFCStepNameDialog.py:53 ../dialogs/PouTransitionDialog.py:103
-#: ../dialogs/PouNameDialog.py:51 ../dialogs/PouActionDialog.py:100
-#: ../controls/VariablePanel.py:751 ../IDEFrame.py:1626 ../IDEFrame.py:1637
+#: ../dialogs/SFCStepNameDialog.py:54 ../dialogs/PouTransitionDialog.py:103
+#: ../dialogs/PouNameDialog.py:52 ../dialogs/PouActionDialog.py:100
+#: ../controls/VariablePanel.py:753 ../IDEFrame.py:1626 ../IDEFrame.py:1637
 #, python-format
 msgid "A POU named \"%s\" already exists!"
 msgstr "POU с именем \"%s\" уже существует!"
 
 #: ../ConfigTreeNode.py:424
-#, python-format
-msgid "A child named \"%s\" already exist -> \"%s\"\n"
-msgstr "Дочерний элемент с именем \"%s\" уже существует -> \"%s\"\n"
-
-#: ../dialogs/BrowseLocationsDialog.py:211
+#, python-brace-format
+msgid "A child named \"{a1}\" already exists -> \"{a2}\"\n"
+msgstr "Дочерний элемент с именем \"{a1}\" уже существует -> \"{a2}\"\n"
+
+#: ../dialogs/BrowseLocationsDialog.py:216
 msgid "A location must be selected!"
 msgstr "Необходимо выбрать размещение!"
 
-#: ../dialogs/SFCStepNameDialog.py:55 ../controls/VariablePanel.py:753
+#: ../dialogs/SFCStepNameDialog.py:56 ../controls/VariablePanel.py:755
 #: ../IDEFrame.py:1628 ../IDEFrame.py:1639
 #, python-format
 msgid "A variable with \"%s\" as name already exists in this pou!"
@@ -426,7 +419,7 @@
 msgid "A variable with \"%s\" as name already exists!"
 msgstr "Переменная с именем \"%s\" уже существует!"
 
-#: ../dialogs/AboutDialog.py:40 ../PLCOpenEditor.py:158 ../Beremiz.py:380
+#: ../dialogs/AboutDialog.py:40 ../PLCOpenEditor.py:158 ../Beremiz.py:381
 msgid "About"
 msgstr "О программе"
 
@@ -434,11 +427,11 @@
 msgid "Absolute number"
 msgstr "Абсолютный номер"
 
-#: ../dialogs/SFCStepDialog.py:71 ../dialogs/ActionBlockDialog.py:42
+#: ../dialogs/SFCStepDialog.py:72 ../dialogs/ActionBlockDialog.py:42
 msgid "Action"
 msgstr "Действие"
 
-#: ../editors/Viewer.py:551 ../editors/Viewer.py:2077
+#: ../editors/Viewer.py:555 ../editors/Viewer.py:2336
 msgid "Action Block"
 msgstr "Блок действия"
 
@@ -450,7 +443,7 @@
 msgid "Action Name:"
 msgstr "Имя действия:"
 
-#: ../plcopen/plcopen.py:1361
+#: ../plcopen/plcopen.py:1363
 #, python-format
 msgid "Action with name %s doesn't exist!"
 msgstr "Действие с именем %s не существует!"
@@ -463,12 +456,12 @@
 msgid "Actions:"
 msgstr "Действия:"
 
-#: ../editors/Viewer.py:1087
+#: ../editors/Viewer.py:1091
 msgid "Active"
 msgstr "Активный"
 
 #: ../canfestival/SlaveEditor.py:80 ../canfestival/NetworkEditor.py:101
-#: ../editors/Viewer.py:584 ../Beremiz.py:1047
+#: ../editors/Viewer.py:588 ../Beremiz.py:1051
 msgid "Add"
 msgstr "Добавить"
 
@@ -488,11 +481,11 @@
 msgid "Add DataType"
 msgstr "Добавить тип данных"
 
-#: ../editors/Viewer.py:509
+#: ../editors/Viewer.py:513
 msgid "Add Divergence Branch"
 msgstr "Добавить ветвление"
 
-#: ../dialogs/DiscoveryDialog.py:115
+#: ../dialogs/DiscoveryDialog.py:116
 msgid "Add IP"
 msgstr "Добавить IP адрес"
 
@@ -512,19 +505,19 @@
 msgid "Add Transition"
 msgstr "Добавить переход"
 
-#: ../editors/Viewer.py:496
+#: ../editors/Viewer.py:500
 msgid "Add Wire Segment"
 msgstr "Добавить провод"
 
-#: ../editors/SFCViewer.py:359
+#: ../editors/SFCViewer.py:433
 msgid "Add a new initial step"
 msgstr "Добавить новый исходный шаг"
 
-#: ../editors/Viewer.py:2681 ../editors/SFCViewer.py:696
+#: ../editors/Viewer.py:2697 ../editors/SFCViewer.py:770
 msgid "Add a new jump"
 msgstr "Добавить новый безусловный переход"
 
-#: ../editors/SFCViewer.py:381
+#: ../editors/SFCViewer.py:455
 msgid "Add a new step"
 msgstr "Добавить новый шаг"
 
@@ -552,7 +545,7 @@
 msgid "Add task"
 msgstr "Добавить задачу"
 
-#: ../editors/CodeFileEditor.py:658 ../controls/VariablePanel.py:448
+#: ../editors/CodeFileEditor.py:658 ../controls/VariablePanel.py:450
 msgid "Add variable"
 msgstr "Добавить переменную"
 
@@ -564,18 +557,18 @@
 msgid "Additional function blocks"
 msgstr "Дополнительные функциональные блоки"
 
-#: ../editors/Viewer.py:567
+#: ../editors/Viewer.py:571
 msgid "Adjust Block Size"
 msgstr "Скорректировать размер элемента"
 
-#: ../editors/Viewer.py:1620
+#: ../editors/Viewer.py:1628
 msgid "Alignment"
 msgstr "Выравнивание"
 
-#: ../dialogs/BrowseLocationsDialog.py:34
-#: ../dialogs/BrowseLocationsDialog.py:42
-#: ../dialogs/BrowseLocationsDialog.py:135
-#: ../dialogs/BrowseLocationsDialog.py:138 ../controls/LogViewer.py:297
+#: ../dialogs/BrowseLocationsDialog.py:39
+#: ../dialogs/BrowseLocationsDialog.py:47
+#: ../dialogs/BrowseLocationsDialog.py:140
+#: ../dialogs/BrowseLocationsDialog.py:143 ../controls/LogViewer.py:298
 #: ../controls/VariablePanel.py:70
 msgid "All"
 msgstr "Все"
@@ -584,7 +577,7 @@
 msgid "All files (*.*)|*.*|CSV files (*.csv)|*.csv"
 msgstr "Все файлы  (*.*)|*.*|CSV files (*.csv)|*.csv"
 
-#: ../ProjectController.py:1579
+#: ../ProjectController.py:1607
 msgid "Already connected. Please disconnect\n"
 msgstr "Уже подключен. Пожалуйста, отключитесь сначала.\n"
 
@@ -614,7 +607,7 @@
 msgstr "Математика"
 
 #: ../editors/DataTypeEditor.py:54 ../editors/DataTypeEditor.py:635
-#: ../controls/VariablePanel.py:827
+#: ../controls/VariablePanel.py:829
 msgid "Array"
 msgstr "Массив"
 
@@ -646,7 +639,7 @@
 msgid "Bad domain name at "
 msgstr "Неправильное доменное имя в"
 
-#: ../canfestival/config_utils.py:342 ../canfestival/config_utils.py:624
+#: ../canfestival/config_utils.py:342 ../canfestival/config_utils.py:630
 #, python-format
 msgid "Bad location size : %s"
 msgstr "Неправильный размер: %s"
@@ -656,16 +649,16 @@
 msgid "Base Type:"
 msgstr "Базовый тип:"
 
-#: ../editors/DataTypeEditor.py:625 ../controls/VariablePanel.py:785
+#: ../editors/DataTypeEditor.py:625 ../controls/VariablePanel.py:787
 msgid "Base Types"
 msgstr "Базовые типы"
 
 msgid "BaseParams"
 msgstr "Базовые параметры"
 
-#: ../Beremiz.py:549
+#: ../Beremiz.py:553
 msgid "Beremiz"
-msgstr ""
+msgstr "Beremiz"
 
 msgid "BeremizRoot"
 msgstr "Настройки Beremiz "
@@ -698,7 +691,7 @@
 msgid "Bitwise inverting"
 msgstr "Битовое НЕ"
 
-#: ../editors/Viewer.py:521 ../editors/Viewer.py:2081
+#: ../editors/Viewer.py:525 ../editors/Viewer.py:2349
 msgid "Block"
 msgstr "Блок"
 
@@ -710,28 +703,32 @@
 msgid "Block name"
 msgstr "Имя блока"
 
-#: ../editors/Viewer.py:487
+#: ../editors/Viewer.py:491
 msgid "Bottom"
 msgstr "Низ"
 
+#: ../ProjectController.py:1285
+msgid "Broken"
+msgstr "Ошибка"
+
 #: ../dialogs/BrowseValuesLibraryDialog.py:37
 #, python-format
 msgid "Browse %s values library"
-msgstr ""
-
-#: ../dialogs/BrowseLocationsDialog.py:60
+msgstr "Browse %s values library"
+
+#: ../dialogs/BrowseLocationsDialog.py:65
 msgid "Browse Locations"
 msgstr "Просмотр директорий"
 
-#: ../ProjectController.py:1724
+#: ../ProjectController.py:1753
 msgid "Build"
 msgstr "Сборка"
 
-#: ../ProjectController.py:1213
+#: ../ProjectController.py:1219
 msgid "Build directory already clean\n"
 msgstr "Директория сборки уже пуста\n"
 
-#: ../ProjectController.py:1725
+#: ../ProjectController.py:1754
 msgid "Build project into build folder"
 msgstr "Сборка проекта в директории сборки"
 
@@ -751,7 +748,7 @@
 msgid "C code generated successfully.\n"
 msgstr "C-код успешно сгенерирован.\n"
 
-#: ../targets/toolchain_makefile.py:126
+#: ../targets/toolchain_makefile.py:122
 msgid "C compilation failed.\n"
 msgstr "Ошибка компиляции.\n"
 
@@ -790,10 +787,10 @@
 msgstr "Поддержка CANOpen"
 
 msgid "CFLAGS"
-msgstr ""
-
-#: ../plcopen/plcopen.py:1586 ../plcopen/plcopen.py:1600
-#: ../plcopen/plcopen.py:1624 ../plcopen/plcopen.py:1640
+msgstr "CFLAGS"
+
+#: ../plcopen/plcopen.py:1588 ../plcopen/plcopen.py:1602
+#: ../plcopen/plcopen.py:1626 ../plcopen/plcopen.py:1642
 msgid "Can only generate execution order on FBD networks!"
 msgstr "Можно сгенерировать порядок исполнения только для FBD!"
 
@@ -815,7 +812,7 @@
 msgid "Can't save project to file %s!"
 msgstr "Нельзя сохранить проект в файл %s!"
 
-#: ../controls/VariablePanel.py:311
+#: ../controls/VariablePanel.py:313
 msgid "Can't set an initial value to a function block instance"
 msgstr "Нельзя задать исходное значение экземпляру функционального блока"
 
@@ -829,17 +826,17 @@
 msgid "CanFestivalSlaveNode"
 msgstr ""
 
-#: ../ConfigTreeNode.py:528
-#, python-format
-msgid "Cannot create child %s of type %s "
-msgstr "Нельзя создать дочерний элемент %s типа %s"
-
-#: ../ConfigTreeNode.py:453
+#: ../ConfigTreeNode.py:529
+#, python-brace-format
+msgid "Cannot create child {a1} of type {a2} "
+msgstr "Нельзя создать дочерний элемент {a1} типа {a2}"
+
+#: ../ConfigTreeNode.py:454
 #, python-format
 msgid "Cannot find lower free IEC channel than %d\n"
 msgstr "Не удалось найти свободный МЭК-канал с номером меньше чем %d\n"
 
-#: ../connectors/PYRO/__init__.py:127
+#: ../connectors/PYRO/__init__.py:131
 msgid "Cannot get PLC status - connection failed.\n"
 msgstr "Невозможно получить состояние ПЛК - ошибка подключения.\n"
 
@@ -847,16 +844,16 @@
 msgid "Cannot open/parse VARIABLES.csv!\n"
 msgstr "Не удалось открыть/прочитать VARIABLES.csv\n"
 
-#: ../canfestival/config_utils.py:372
-#, python-format
-msgid "Cannot set bit offset for non bool '%s' variable (ID:%d,Idx:%x,sIdx:%x))"
-msgstr "Невозможно установить битовое смещение для небулевой переменной '%s' (ID:%d,Idx:%x,sIdx:%x))"
+#: ../canfestival/config_utils.py:374
+#, python-brace-format
+msgid "Cannot set bit offset for non bool '{a1}' variable (ID:{a2},Idx:{a3},sIdx:{a4}))"
+msgstr "Невозможно установить битовое смещение для небулевой переменной '{a1}' (ID:{a2},Idx:{a3},sIdx:{a4}))"
 
 #: ../dialogs/SearchInProjectDialog.py:59 ../dialogs/FindInPouDialog.py:90
 msgid "Case sensitive"
 msgstr "Регистрозависимый"
 
-#: ../editors/Viewer.py:482
+#: ../editors/Viewer.py:486
 msgid "Center"
 msgstr "Центр"
 
@@ -886,29 +883,29 @@
 
 #: ../svgui/svgui.py:125
 msgid "Choose a SVG file"
-msgstr "Выберете SVG-файл"
+msgstr "Выберите SVG-файл"
 
 #: ../ProjectController.py:436
 msgid "Choose a directory to save project"
-msgstr "Выберете директорию, чтобы сохранить проект"
+msgstr "Выберите директорию, чтобы сохранить проект"
 
 #: ../canfestival/canfestival.py:160 ../PLCOpenEditor.py:292
 #: ../PLCOpenEditor.py:324 ../PLCOpenEditor.py:373
 msgid "Choose a file"
-msgstr "Выберете файл"
-
-#: ../Beremiz.py:921 ../Beremiz.py:956
+msgstr "Выберите файл"
+
+#: ../Beremiz.py:925 ../Beremiz.py:960
 msgid "Choose a project"
-msgstr "Выберете проект"
+msgstr "Выберите проект"
 
 #: ../dialogs/BrowseValuesLibraryDialog.py:42
 #, python-format
 msgid "Choose a value for %s:"
-msgstr "Выберете значение для %s:"
+msgstr "Выберите значение для %s:"
 
 #: ../Beremiz_service.py:293
 msgid "Choose a working directory "
-msgstr "Выберете рабочую директорию"
+msgstr "Выберите рабочую директорию"
 
 #: ../ProjectController.py:358
 msgid "Chosen folder doesn't contain a program. It's not a valid project!"
@@ -922,7 +919,7 @@
 msgid "Class"
 msgstr "Класс"
 
-#: ../controls/VariablePanel.py:439
+#: ../controls/VariablePanel.py:441
 msgid "Class Filter:"
 msgstr "Фильтр класса:"
 
@@ -930,19 +927,19 @@
 msgid "Class:"
 msgstr "Класс:"
 
-#: ../ProjectController.py:1728
+#: ../ProjectController.py:1757
 msgid "Clean"
 msgstr "Очистить"
 
-#: ../controls/LogViewer.py:317
+#: ../controls/LogViewer.py:318
 msgid "Clean log messages"
 msgstr "Очистить лог"
 
-#: ../ProjectController.py:1730
+#: ../ProjectController.py:1759
 msgid "Clean project build folder"
 msgstr "Очистить директорию сборки проекта"
 
-#: ../ProjectController.py:1210
+#: ../ProjectController.py:1216
 msgid "Cleaning the build directory\n"
 msgstr "Очистка директории сборки\n"
 
@@ -950,7 +947,7 @@
 msgid "Clear Errors"
 msgstr "Очистить ошибки"
 
-#: ../editors/Viewer.py:577
+#: ../editors/Viewer.py:582
 msgid "Clear Execution Order"
 msgstr "Очистить порядок исполнения"
 
@@ -958,27 +955,27 @@
 msgid "Close"
 msgstr "Закрыть"
 
-#: ../PLCOpenEditor.py:199 ../Beremiz.py:689
+#: ../PLCOpenEditor.py:199 ../Beremiz.py:693
 msgid "Close Application"
 msgstr "Закрыть приложение"
 
-#: ../PLCOpenEditor.py:108 ../Beremiz.py:332 ../Beremiz.py:633
+#: ../PLCOpenEditor.py:108 ../Beremiz.py:333 ../Beremiz.py:637
 #: ../IDEFrame.py:1009
 msgid "Close Project"
 msgstr "Закрыть проект"
 
-#: ../PLCOpenEditor.py:106 ../Beremiz.py:330
+#: ../PLCOpenEditor.py:106 ../Beremiz.py:331
 msgid "Close Tab"
 msgstr "Закрыть вкладку"
 
-#: ../editors/Viewer.py:537 ../editors/Viewer.py:2092
+#: ../editors/Viewer.py:541 ../editors/Viewer.py:2357
 msgid "Coil"
 msgstr "Катушка"
 
 msgid "Command"
 msgstr "Комманда"
 
-#: ../editors/Viewer.py:557 ../editors/LDViewer.py:506
+#: ../editors/Viewer.py:561 ../editors/LDViewer.py:506
 msgid "Comment"
 msgstr "Комментарий"
 
@@ -1025,27 +1022,27 @@
 msgid "Configurations"
 msgstr "Конфигурации"
 
-#: ../editors/Viewer.py:303 ../editors/Viewer.py:333 ../editors/Viewer.py:355
+#: ../editors/Viewer.py:307 ../editors/Viewer.py:337 ../editors/Viewer.py:359
 #: ../editors/TextViewer.py:291 ../editors/TextViewer.py:342
-#: ../editors/TextViewer.py:365 ../controls/VariablePanel.py:326
+#: ../editors/TextViewer.py:365 ../controls/VariablePanel.py:328
 msgid "Confirm or change variable name"
 msgstr "Подтвердить или поменять имя переменной"
 
-#: ../ProjectController.py:1743
+#: ../ProjectController.py:1772
 msgid "Connect"
 msgstr "Подключиться"
 
-#: ../ProjectController.py:1744
+#: ../ProjectController.py:1773
 msgid "Connect to the target PLC"
 msgstr "Подключиться к целевому ПЛК"
 
-#: ../ProjectController.py:1270
+#: ../ProjectController.py:1276
 #, python-format
 msgid "Connected to URI: %s"
 msgstr "Подключен к URI: %s"
 
-#: ../dialogs/SFCTransitionDialog.py:75 ../editors/Viewer.py:523
-#: ../editors/Viewer.py:2083
+#: ../dialogs/SFCTransitionDialog.py:76 ../editors/Viewer.py:527
+#: ../editors/Viewer.py:2350
 msgid "Connection"
 msgstr "Подключение"
 
@@ -1053,29 +1050,29 @@
 msgid "Connection Properties"
 msgstr "Свойства подключение"
 
-#: ../ProjectController.py:1603
+#: ../ProjectController.py:1631
 msgid "Connection canceled!\n"
 msgstr "Подключение отменено!\n"
 
-#: ../ProjectController.py:1628
+#: ../ProjectController.py:1656
 #, python-format
 msgid "Connection failed to %s!\n"
 msgstr "Неудачное подключение к %s!\n"
 
-#: ../connectors/PYRO/__init__.py:98
+#: ../connectors/PYRO/__init__.py:102
 #, python-format
 msgid "Connection to '%s' failed.\n"
 msgstr "Неудачное подключение к %s!\n"
 
-#: ../dialogs/ConnectionDialog.py:64 ../editors/Viewer.py:1577
+#: ../dialogs/ConnectionDialog.py:64 ../editors/Viewer.py:1585
 msgid "Connector"
 msgstr "Коннектор"
 
-#: ../dialogs/SFCStepDialog.py:64
+#: ../dialogs/SFCStepDialog.py:65
 msgid "Connectors:"
 msgstr "Коннекторы:"
 
-#: ../Beremiz.py:447
+#: ../Beremiz.py:448
 msgid "Console"
 msgstr "Консоль"
 
@@ -1083,7 +1080,7 @@
 msgid "Constant"
 msgstr "Константа"
 
-#: ../editors/Viewer.py:533 ../editors/Viewer.py:2088
+#: ../editors/Viewer.py:537 ../editors/Viewer.py:2353
 msgid "Contact"
 msgstr "Контакт"
 
@@ -1091,7 +1088,7 @@
 msgid "Content Description (optional):"
 msgstr "Описание содержимого (опционально):"
 
-#: ../dialogs/ConnectionDialog.py:65 ../editors/Viewer.py:1578
+#: ../dialogs/ConnectionDialog.py:65 ../editors/Viewer.py:1586
 msgid "Continuation"
 msgstr "Продолжение"
 
@@ -1111,7 +1108,7 @@
 msgid "Conversion to time-of-day"
 msgstr "Преобразование во время суток"
 
-#: ../editors/Viewer.py:593 ../controls/LogViewer.py:692 ../IDEFrame.py:370
+#: ../editors/Viewer.py:597 ../controls/LogViewer.py:693 ../IDEFrame.py:370
 #: ../IDEFrame.py:425
 msgid "Copy"
 msgstr "Копировать"
@@ -1132,47 +1129,51 @@
 msgid "Cosine"
 msgstr "Косинус"
 
-#: ../ConfigTreeNode.py:650
-#, python-format
+#: ../ConfigTreeNode.py:656
+#, python-brace-format
 msgid ""
-"Could not add child \"%s\", type %s :\n"
-"%s\n"
-msgstr ""
-"Невозможно добавить дочерний элемент \"%s\", тип %s:\n"
-"%s\n"
+"Could not add child \"{a1}\", type {a2} :\n"
+"{a3}\n"
+msgstr ""
+"Невозможно добавить дочерний элемент \"{a1}\", тип {a2}:\n"
+"{a3}\n"
 
 #: ../py_ext/PythonFileCTNMixin.py:77
 #, python-format
 msgid "Couldn't import old %s file."
 msgstr "Невозможно импортировать старый файл %s."
 
-#: ../ConfigTreeNode.py:622
-#, python-format
+#: ../ConfigTreeNode.py:626
+#, python-brace-format
 msgid ""
-"Couldn't load confnode base parameters %s :\n"
-" %s"
-msgstr "Невозможно загрузить базовые параметры confnode %s: %s"
-
-#: ../ConfigTreeNode.py:638 ../CodeFileTreeNode.py:124
-#, python-format
+"Couldn't load confnode base parameters {a1} :\n"
+" {a2}"
+msgstr ""
+"Невозможно загрузить базовые параметры confnode {a1}:\n"
+" {a2}"
+
+#: ../ConfigTreeNode.py:643 ../CodeFileTreeNode.py:124
+#, python-brace-format
 msgid ""
-"Couldn't load confnode parameters %s :\n"
-" %s"
-msgstr "Невозможно загрузить параметры confnode %s: %s"
+"Couldn't load confnode parameters {a1} :\n"
+" {a2}"
+msgstr ""
+"Невозможно загрузить параметры confnode {a1}:\n"
+" {a2}"
 
 #: ../PLCControler.py:946
 msgid "Couldn't paste non-POU object."
 msgstr "Невозможно вставить не-POU."
 
-#: ../ProjectController.py:1545
+#: ../ProjectController.py:1573
 msgid "Couldn't start PLC !\n"
 msgstr "Невозможно запустить ПЛК!\n"
 
-#: ../ProjectController.py:1553
+#: ../ProjectController.py:1581
 msgid "Couldn't stop PLC !\n"
 msgstr "Невозможно остановить ПЛК!\n"
 
-#: ../ProjectController.py:1517
+#: ../ProjectController.py:1545
 msgid "Couldn't stop debugger.\n"
 msgstr "Невозможно остановить отладчик.\n"
 
@@ -1220,7 +1221,7 @@
 msgid "Create a new divergence"
 msgstr "Создать новое ветвление"
 
-#: ../dialogs/SFCDivergenceDialog.py:51
+#: ../dialogs/SFCDivergenceDialog.py:53
 msgid "Create a new divergence or convergence"
 msgstr "Создать новое ветвление или объединение"
 
@@ -1230,7 +1231,7 @@
 
 #: ../IDEFrame.py:165
 msgid "Create a new jump"
-msgstr "Создать новый переход"
+msgstr "Создать новый безусловный переход"
 
 #: ../IDEFrame.py:120 ../IDEFrame.py:177
 msgid "Create a new power rail"
@@ -1256,7 +1257,7 @@
 msgid "Credits"
 msgstr "Благодарности"
 
-#: ../editors/Viewer.py:592 ../IDEFrame.py:368 ../IDEFrame.py:424
+#: ../editors/Viewer.py:596 ../IDEFrame.py:368 ../IDEFrame.py:424
 msgid "Cut"
 msgstr "Вырезать"
 
@@ -1309,7 +1310,7 @@
 msgid "Days:"
 msgstr "Дни:"
 
-#: ../ProjectController.py:1650
+#: ../ProjectController.py:1678
 msgid "Debug does not match PLC - stop/transfert/start to re-enable\n"
 msgstr "Отлаживаемая программа не соответствует программе в ПЛК - остановите/загрузите/запустите, чтобы разрешить отладку\n"
 
@@ -1317,17 +1318,17 @@
 msgid "Debug instance"
 msgstr "Отладка экземпляра"
 
-#: ../editors/Viewer.py:1104 ../editors/Viewer.py:3598
+#: ../editors/Viewer.py:1108 ../editors/Viewer.py:3614
 #, python-format
 msgid "Debug: %s"
 msgstr "Отладка: %s"
 
-#: ../ProjectController.py:1306
+#: ../ProjectController.py:1334
 #, python-format
 msgid "Debug: Unknown variable '%s'\n"
 msgstr "Отладка: неизвестная переменная '%s'\n"
 
-#: ../ProjectController.py:1304
+#: ../ProjectController.py:1332
 #, python-format
 msgid "Debug: Unsupported type to debug '%s'\n"
 msgstr "Отладка: неподдерживамый отладкой тип '%s'\n"
@@ -1336,23 +1337,23 @@
 msgid "Debugger"
 msgstr "Отладчик"
 
-#: ../ProjectController.py:1486
+#: ../ProjectController.py:1514
 msgid "Debugger disabled\n"
 msgstr "Отладчик запрещен\n"
 
-#: ../ProjectController.py:1647
+#: ../ProjectController.py:1675
 msgid "Debugger ready\n"
 msgstr "Отладчик готов\n"
 
-#: ../ProjectController.py:1519
+#: ../ProjectController.py:1547
 msgid "Debugger stopped.\n"
 msgstr "Отладчик остановлен.\n"
 
-#: ../editors/Viewer.py:568 ../Beremiz.py:1051 ../IDEFrame.py:1955
+#: ../editors/Viewer.py:572 ../Beremiz.py:1055 ../IDEFrame.py:1955
 msgid "Delete"
 msgstr "Удалить"
 
-#: ../editors/Viewer.py:510
+#: ../editors/Viewer.py:514
 msgid "Delete Divergence Branch"
 msgstr "Удалить ветвь"
 
@@ -1360,7 +1361,7 @@
 msgid "Delete File"
 msgstr "Удалить файл"
 
-#: ../editors/Viewer.py:497
+#: ../editors/Viewer.py:501
 msgid "Delete Wire Segment"
 msgstr "Удалить сегмент цепи"
 
@@ -1384,7 +1385,7 @@
 "Производная\n"
 "Функциональный блок формирует выход XOUT пропорционально частоте изменения входа XIN."
 
-#: ../controls/VariablePanel.py:430
+#: ../controls/VariablePanel.py:432
 msgid "Description:"
 msgstr "Описание:"
 
@@ -1396,7 +1397,7 @@
 msgid "Direction"
 msgstr "Направление"
 
-#: ../dialogs/BrowseLocationsDialog.py:85
+#: ../dialogs/BrowseLocationsDialog.py:90
 msgid "Direction:"
 msgstr "Направление:"
 
@@ -1407,15 +1408,19 @@
 msgid "Disable_Extensions"
 msgstr "Запретить расширения"
 
-#: ../ProjectController.py:1752
+#: ../ProjectController.py:1781
 msgid "Disconnect"
 msgstr "Отключиться"
 
-#: ../ProjectController.py:1754
+#: ../ProjectController.py:1783
 msgid "Disconnect from PLC"
 msgstr "Отключиться от ПЛК"
 
-#: ../editors/Viewer.py:552 ../editors/Viewer.py:2069
+#: ../ProjectController.py:1286
+msgid "Disconnected"
+msgstr "Отключено"
+
+#: ../editors/Viewer.py:556 ../editors/Viewer.py:2345
 msgid "Divergence"
 msgstr "Ветвление"
 
@@ -1452,7 +1457,7 @@
 msgid "EDS files (*.eds)|*.eds|All files|*.*"
 msgstr "Файлы EDS (*.eds)|*.eds|All files|*.*"
 
-#: ../editors/Viewer.py:566
+#: ../editors/Viewer.py:570
 msgid "Edit Block"
 msgstr "Редактировать блок"
 
@@ -1468,7 +1473,7 @@
 msgid "Edit Duration"
 msgstr "Редактировать длительность"
 
-#: ../dialogs/SFCStepDialog.py:49
+#: ../dialogs/SFCStepDialog.py:50
 msgid "Edit Step"
 msgstr "Редактировать шаг"
 
@@ -1484,7 +1489,7 @@
 msgid "Edit array type properties"
 msgstr "Редактировать свойства массива"
 
-#: ../editors/Viewer.py:2550 ../editors/Viewer.py:2961
+#: ../editors/Viewer.py:2566 ../editors/Viewer.py:2977
 msgid "Edit comment"
 msgstr "Редактировать комментарий"
 
@@ -1496,19 +1501,19 @@
 msgid "Edit item"
 msgstr "Редактировать элемент"
 
-#: ../editors/Viewer.py:2925
+#: ../editors/Viewer.py:2941
 msgid "Edit jump target"
 msgstr "Редактирование безусловного перехода"
 
-#: ../ProjectController.py:1766
+#: ../ProjectController.py:1795
 msgid "Edit raw IEC code added to code generated by PLCGenerator"
 msgstr "Редактировать МЭК-код добавленный к коду сгенерированному PLCGenerator"
 
-#: ../editors/SFCViewer.py:725
+#: ../editors/SFCViewer.py:799
 msgid "Edit step name"
 msgstr "Редактировать имя шага"
 
-#: ../dialogs/SFCTransitionDialog.py:50
+#: ../dialogs/SFCTransitionDialog.py:51
 msgid "Edit transition"
 msgstr "Редактировать переход"
 
@@ -1516,7 +1521,7 @@
 msgid "Editor ToolBar"
 msgstr "Редактор панели инструментов"
 
-#: ../ProjectController.py:1173
+#: ../ProjectController.py:1179
 msgid "Editor selection"
 msgstr "Редактор выделения"
 
@@ -1524,6 +1529,10 @@
 msgid "Elements :"
 msgstr "Элементы:"
 
+#: ../ProjectController.py:1284
+msgid "Empty"
+msgstr "Нет программы"
+
 #: ../IDEFrame.py:365
 msgid "Enable Undo/Redo"
 msgstr "Разрешить отмену и повтор операций"
@@ -1552,15 +1561,15 @@
 msgstr "Равно"
 
 #: ../dialogs/ForceVariableDialog.py:179
-#: ../dialogs/SearchInProjectDialog.py:168 ../dialogs/SFCStepNameDialog.py:59
+#: ../dialogs/SearchInProjectDialog.py:168 ../dialogs/SFCStepNameDialog.py:60
 #: ../dialogs/DurationEditorDialog.py:121
 #: ../dialogs/DurationEditorDialog.py:163 ../dialogs/PouTransitionDialog.py:107
 #: ../dialogs/BlockPreviewDialog.py:236 ../dialogs/ProjectDialog.py:71
 #: ../dialogs/ArrayTypeDialog.py:97 ../dialogs/ArrayTypeDialog.py:103
-#: ../dialogs/PouNameDialog.py:53 ../dialogs/BrowseLocationsDialog.py:211
+#: ../dialogs/PouNameDialog.py:54 ../dialogs/BrowseLocationsDialog.py:216
 #: ../dialogs/BrowseValuesLibraryDialog.py:83 ../dialogs/PouActionDialog.py:104
 #: ../dialogs/PouDialog.py:134 ../PLCOpenEditor.py:335 ../PLCOpenEditor.py:340
-#: ../PLCOpenEditor.py:419 ../PLCOpenEditor.py:429 ../editors/Viewer.py:419
+#: ../PLCOpenEditor.py:420 ../PLCOpenEditor.py:430 ../editors/Viewer.py:423
 #: ../editors/LDViewer.py:666 ../editors/LDViewer.py:882
 #: ../editors/LDViewer.py:886 ../editors/DataTypeEditor.py:550
 #: ../editors/DataTypeEditor.py:555 ../editors/DataTypeEditor.py:579
@@ -1571,8 +1580,8 @@
 #: ../controls/DebugVariablePanel/DebugVariablePanel.py:166
 #: ../controls/DebugVariablePanel/DebugVariableTextViewer.py:137
 #: ../controls/DebugVariablePanel/DebugVariableGraphicViewer.py:231
-#: ../controls/VariablePanel.py:400 ../controls/VariablePanel.py:770
-#: ../Beremiz.py:1190 ../IDEFrame.py:1003 ../IDEFrame.py:1614
+#: ../controls/VariablePanel.py:402 ../controls/VariablePanel.py:772
+#: ../Beremiz.py:1194 ../IDEFrame.py:1003 ../IDEFrame.py:1614
 #: ../IDEFrame.py:1651 ../IDEFrame.py:1656 ../IDEFrame.py:1670
 #: ../IDEFrame.py:1675 ../Beremiz_service.py:190
 msgid "Error"
@@ -1611,7 +1620,7 @@
 msgid "Error: No PLC built\n"
 msgstr "Ошибка: ПЛК не собран\n"
 
-#: ../ProjectController.py:1622
+#: ../ProjectController.py:1650
 #, python-format
 msgid "Exception while connecting %s!\n"
 msgstr "Исключение во время подключения %s!\n"
@@ -1663,13 +1672,13 @@
 #: ../dialogs/PouTransitionDialog.py:35 ../dialogs/PouActionDialog.py:31
 #: ../dialogs/PouDialog.py:36 ../controls/ProjectPropertiesPanel.py:143
 msgid "FBD"
-msgstr ""
-
-#: ../ProjectController.py:1685
+msgstr "FBD"
+
+#: ../ProjectController.py:1713
 msgid "Failed : Must build before transfer.\n"
 msgstr "Ошибка: необходима сборка перед передачей.\n"
 
-#: ../dialogs/LDElementDialog.py:77 ../editors/Viewer.py:458
+#: ../dialogs/LDElementDialog.py:77 ../editors/Viewer.py:462
 msgid "Falling Edge"
 msgstr "Спадающий фронт"
 
@@ -1685,6 +1694,11 @@
 msgid "Fatal : cannot get builder.\n"
 msgstr "Ошибка: невозможно получить сборщик.\n"
 
+#: ../Beremiz.py:118
+#, python-format
+msgid "Fetching %s"
+msgstr "Проверка %s"
+
 #: ../dialogs/DurationEditorDialog.py:160
 #, python-format
 msgid "Field %s hasn't a valid value!"
@@ -1721,11 +1735,11 @@
 msgid "Find:"
 msgstr "Поиск:"
 
-#: ../connectors/PYRO/__init__.py:159
+#: ../connectors/PYRO/__init__.py:163
 msgid "Force runtime reload\n"
 msgstr "Принудительный перезапуск системы исполнения\n"
 
-#: ../editors/Viewer.py:1536
+#: ../editors/Viewer.py:1544
 msgid "Force value"
 msgstr "Фиксировать значение"
 
@@ -1733,14 +1747,14 @@
 msgid "Forcing Variable Value"
 msgstr "Форсировать значение переменной"
 
-#: ../dialogs/SFCTransitionDialog.py:178 ../dialogs/PouTransitionDialog.py:97
+#: ../dialogs/SFCTransitionDialog.py:179 ../dialogs/PouTransitionDialog.py:97
 #: ../dialogs/ProjectDialog.py:70 ../dialogs/PouActionDialog.py:94
 #: ../dialogs/PouDialog.py:116
 #, python-format
 msgid "Form isn't complete. %s must be filled!"
 msgstr "Форма заполнена неполностью. %s должен быть заполнен!"
 
-#: ../dialogs/SFCStepDialog.py:141 ../dialogs/FBDBlockDialog.py:232
+#: ../dialogs/SFCStepDialog.py:142 ../dialogs/FBDBlockDialog.py:232
 #: ../dialogs/ConnectionDialog.py:160
 msgid "Form isn't complete. Name must be filled!"
 msgstr "Форма заполнена неполностью. Имя должно быть заполнено!"
@@ -1766,7 +1780,7 @@
 msgid "Function Block"
 msgstr "Функциональный блок"
 
-#: ../controls/VariablePanel.py:823
+#: ../controls/VariablePanel.py:825
 msgid "Function Block Types"
 msgstr "Типы функциональных блоков"
 
@@ -1774,11 +1788,11 @@
 msgid "Function Blocks"
 msgstr "Функциональные блоки"
 
-#: ../editors/Viewer.py:244
+#: ../editors/Viewer.py:248
 msgid "Function Blocks can't be used in Functions!"
 msgstr "Функциональные блоки не могут использоваться в функциях!"
 
-#: ../PLCControler.py:2336
+#: ../PLCControler.py:2337
 #, python-format
 msgid "FunctionBlock \"%s\" can't be pasted in a Function!!!"
 msgstr "Функциональный блок \"%s\" не может быть вставлен в функцию!!!"
@@ -1796,7 +1810,7 @@
 msgstr "Генерация МЭК-61131 ST/IL/SFC кода ПЛК...\n"
 
 msgid "Generic"
-msgstr ""
+msgstr "Generic"
 
 #: ../controls/VariablePanel.py:73
 msgid "Global"
@@ -1852,11 +1866,11 @@
 #: ../dialogs/PouTransitionDialog.py:35 ../dialogs/PouActionDialog.py:31
 #: ../dialogs/PouDialog.py:36
 msgid "IL"
-msgstr ""
-
-#: ../dialogs/DiscoveryDialog.py:93
+msgstr "IL"
+
+#: ../dialogs/DiscoveryDialog.py:94
 msgid "IP"
-msgstr ""
+msgstr "IP"
 
 #: ../Beremiz_service.py:278 ../Beremiz_service.py:279
 msgid "IP is not valid!"
@@ -1866,35 +1880,35 @@
 msgid "Import SVG"
 msgstr "Импорт SVG"
 
-#: ../dialogs/FBDVariableDialog.py:38 ../editors/Viewer.py:1563
+#: ../dialogs/FBDVariableDialog.py:38 ../editors/Viewer.py:1571
 #: ../controls/VariablePanel.py:71
 msgid "InOut"
 msgstr "Вход/Выход"
 
-#: ../editors/Viewer.py:1087
+#: ../editors/Viewer.py:1091
 msgid "Inactive"
 msgstr "Неактивный"
 
 #: ../controls/VariablePanel.py:276
-#, python-format
-msgid "Incompatible data types between \"%s\" and \"%s\""
-msgstr "\"%s\" и \"%s\" имеют несовместимые типы данных"
-
-#: ../controls/VariablePanel.py:285
-#, python-format
-msgid "Incompatible size of data between \"%s\" and \"%s\""
-msgstr "\"%s\" и \"%s\" имеют несовместимый размер данных"
-
-#: ../controls/VariablePanel.py:281
+#, python-brace-format
+msgid "Incompatible data types between \"{a1}\" and \"{a2}\""
+msgstr "\"{a1}\" и \"{a2}\" имеют несовместимые типы данных"
+
+#: ../controls/VariablePanel.py:282
 #, python-format
 msgid "Incompatible size of data between \"%s\" and \"BOOL\""
 msgstr "Несовместимый размер данных \"%s\" с типом \"BOOL\""
 
+#: ../controls/VariablePanel.py:286
+#, python-brace-format
+msgid "Incompatible size of data between \"{a1}\" and \"{a2}\""
+msgstr "\"{a1}\" и \"{a2}\" имеют несовместимый размер данных"
+
 #: ../dialogs/ActionBlockDialog.py:38
 msgid "Indicator"
 msgstr "Индикатор"
 
-#: ../editors/Viewer.py:548 ../editors/Viewer.py:2066
+#: ../editors/Viewer.py:552
 msgid "Initial Step"
 msgstr "Исходный шаг"
 
@@ -1910,15 +1924,17 @@
 
 #: ../svgui/svgui.py:46
 msgid "Inkscape"
-msgstr ""
-
-#: ../dialogs/SFCTransitionDialog.py:74 ../dialogs/ActionBlockDialog.py:42
+msgstr "Inkscape"
+
+#: ../dialogs/SFCTransitionDialog.py:75 ../dialogs/ActionBlockDialog.py:42
 msgid "Inline"
 msgstr "Непосредственно"
 
-#: ../dialogs/SFCStepDialog.py:69 ../dialogs/FBDVariableDialog.py:37
-#: ../dialogs/BrowseLocationsDialog.py:35 ../editors/Viewer.py:1561
-#: ../controls/VariablePanel.py:71
+#: ../dialogs/SFCStepDialog.py:70 ../dialogs/FBDVariableDialog.py:37
+#: ../dialogs/BrowseLocationsDialog.py:40 ../editors/Viewer.py:289
+#: ../editors/Viewer.py:1569 ../editors/TextViewer.py:307
+#: ../controls/LocationCellEditor.py:98 ../controls/VariablePanel.py:71
+#: ../controls/VariablePanel.py:291 ../controls/VariablePanel.py:351
 msgid "Input"
 msgstr "Вход"
 
@@ -1930,7 +1946,7 @@
 msgid "Insertion (into)"
 msgstr "Вставка подстроки"
 
-#: ../plcopen/plcopen.py:1693
+#: ../plcopen/plcopen.py:1695
 #, python-format
 msgid "Instance with id %d doesn't exist!"
 msgstr "Экземпляр с id %d не существует!"
@@ -1959,19 +1975,19 @@
 msgid "Interval"
 msgstr "Интервал"
 
-#: ../PLCControler.py:2324
+#: ../PLCControler.py:2325
 msgid "Invalid plcopen element(s)!!!"
 msgstr "Некорректный PlcOpen элемент(ы)!!!"
 
-#: ../canfestival/config_utils.py:377 ../canfestival/config_utils.py:638
-#, python-format
-msgid "Invalid type \"%s\"-> %d != %d  for location\"%s\""
-msgstr "Неправильный тип \"%s\"->\"%d != %d для \"%s\""
-
-#: ../dialogs/ForceVariableDialog.py:177
-#, python-format
-msgid "Invalid value \"%s\" for \"%s\" variable!"
-msgstr "Неверное значение \"%s\" для переменной \"%s\"!"
+#: ../canfestival/config_utils.py:381
+#, python-brace-format
+msgid "Invalid type \"{a1}\"-> {a2} != {a3}  for location\"{a4}\""
+msgstr "Неправильный тип \"{a1}\"-> {a2} != {a3} для \"{a4}\""
+
+#: ../canfestival/config_utils.py:645
+#, python-brace-format
+msgid "Invalid type \"{a1}\"-> {a2} != {a3} for location \"{a4}\""
+msgstr "Неправильный тип \"{a1}\"-> {a2} != {a3} для \"{a4}\""
 
 #: ../controls/DebugVariablePanel/DebugVariablePanel.py:132
 #: ../controls/DebugVariablePanel/DebugVariableTextViewer.py:92
@@ -1983,12 +1999,17 @@
 #: ../controls/VariablePanel.py:255 ../controls/VariablePanel.py:258
 #, python-format
 msgid "Invalid value \"%s\" for variable grid element"
-msgstr ""
-
-#: ../editors/Viewer.py:229 ../editors/Viewer.py:232
+msgstr "Неверное значение \"%s\" для значения размещения переменной"
+
+#: ../editors/Viewer.py:233 ../editors/Viewer.py:236
 #, python-format
 msgid "Invalid value \"%s\" for viewer block"
-msgstr ""
+msgstr "Неверное значение \"%s\" для вставки в редактор"
+
+#: ../dialogs/ForceVariableDialog.py:177
+#, python-brace-format
+msgid "Invalid value \"{a1}\" for \"{a2}\" variable!"
+msgstr "Неверное значение \"{a1}\" для переменной \"{a2}\"!"
 
 #: ../dialogs/DurationEditorDialog.py:121
 msgid ""
@@ -1998,17 +2019,17 @@
 "Неверное значение!\n"
 "Необходимо ввести числовое значение."
 
-#: ../editors/Viewer.py:553 ../editors/Viewer.py:2070
+#: ../editors/Viewer.py:557 ../editors/Viewer.py:2334
 msgid "Jump"
-msgstr "Переход"
+msgstr "Безусловный переход"
 
 #: ../dialogs/PouTransitionDialog.py:35 ../dialogs/PouActionDialog.py:31
 #: ../dialogs/PouDialog.py:36 ../controls/ProjectPropertiesPanel.py:143
 msgid "LD"
-msgstr ""
+msgstr "LD"
 
 msgid "LDFLAGS"
-msgstr ""
+msgstr "LDFLAGS"
 
 #: ../editors/LDViewer.py:215 ../editors/LDViewer.py:231
 #, python-format
@@ -2029,7 +2050,7 @@
 msgid "Language:"
 msgstr "Язык:"
 
-#: ../ProjectController.py:1691
+#: ../ProjectController.py:1719
 msgid "Latest build already matches current target. Transfering anyway...\n"
 msgstr "Загружаемая программа совпадает с текущий программой в целевом ПЛК. Загрузка продолжена...\n"
 
@@ -2041,11 +2062,11 @@
 msgid "Launch a live Python shell"
 msgstr "Запустить консоль Python"
 
-#: ../editors/Viewer.py:481
+#: ../editors/Viewer.py:485
 msgid "Left"
 msgstr "Слева"
 
-#: ../dialogs/LDPowerRailDialog.py:61
+#: ../dialogs/LDPowerRailDialog.py:62
 msgid "Left PowerRail"
 msgstr "Левая шина питания"
 
@@ -2070,7 +2091,7 @@
 
 #: ../dialogs/AboutDialog.py:142
 msgid "License"
-msgstr ""
+msgstr "Лицензия"
 
 #: ../plcopen/iec_std.csv:73
 msgid "Limitation"
@@ -2086,7 +2107,7 @@
 msgid "Linux"
 msgstr "GNU/Linux"
 
-#: ../dialogs/DiscoveryDialog.py:110 ../controls/VariablePanel.py:72
+#: ../dialogs/DiscoveryDialog.py:111 ../controls/VariablePanel.py:72
 msgid "Local"
 msgstr "Локальный"
 
@@ -2094,7 +2115,7 @@
 msgid "Local entries"
 msgstr "Локальные записи"
 
-#: ../ProjectController.py:1597
+#: ../ProjectController.py:1625
 msgid "Local service discovery failed!\n"
 msgstr "Локальный сервис не найден!\n"
 
@@ -2102,7 +2123,7 @@
 msgid "Location"
 msgstr "Размещение"
 
-#: ../dialogs/BrowseLocationsDialog.py:67
+#: ../dialogs/BrowseLocationsDialog.py:72
 msgid "Locations available:"
 msgstr "Доступные размещения:"
 
@@ -2110,7 +2131,7 @@
 msgid "Logarithm to base 10"
 msgstr "Десятичный логарифм"
 
-#: ../connectors/PYRO/__init__.py:90
+#: ../connectors/PYRO/__init__.py:94
 #, python-format
 msgid "MDNS resolution failure for '%s'\n"
 msgstr "MDNS разрешение неудачно для '%s'\n"
@@ -2127,10 +2148,10 @@
 msgid "Master"
 msgstr "Ведущий"
 
-#: ../ConfigTreeNode.py:538
-#, python-format
-msgid "Max count (%d) reached for this confnode of type %s "
-msgstr "Достигнуто максимальное количество (%d) для типа узла конфигурации %s"
+#: ../ConfigTreeNode.py:539
+#, python-brace-format
+msgid "Max count ({a1}) reached for this confnode of type {a2} "
+msgstr "Достигнуто максимальное количество ({a1}) для типа узла конфигурации {a2} "
 
 #: ../plcopen/iec_std.csv:71
 msgid "Maximum"
@@ -2140,7 +2161,9 @@
 msgid "Maximum:"
 msgstr "Максимум:"
 
-#: ../dialogs/BrowseLocationsDialog.py:37
+#: ../dialogs/BrowseLocationsDialog.py:42 ../editors/Viewer.py:289
+#: ../editors/TextViewer.py:307 ../controls/LocationCellEditor.py:98
+#: ../controls/VariablePanel.py:291 ../controls/VariablePanel.py:351
 msgid "Memory"
 msgstr "Память"
 
@@ -2152,7 +2175,7 @@
 msgid "Microseconds:"
 msgstr "Микросекунды:"
 
-#: ../editors/Viewer.py:486
+#: ../editors/Viewer.py:490
 msgid "Middle"
 msgstr "Посередине"
 
@@ -2180,10 +2203,10 @@
 msgid "Modifier:"
 msgstr "Модификатор:"
 
-#: ../PLCGenerator.py:778 ../PLCGenerator.py:1217
-#, python-format
-msgid "More than one connector found corresponding to \"%s\" continuation in \"%s\" POU"
-msgstr "Более одного коннектора соответствуют продолжению цепи \"%s\" в POU \"%s\""
+#: ../PLCGenerator.py:778 ../PLCGenerator.py:1222
+#, python-brace-format
+msgid "More than one connector found corresponding to \"{a1}\" continuation in \"{a2}\" POU"
+msgstr "Более одного коннектора соответствуют продолжению цепи \"{a1}\" в POU \"{a2}\""
 
 #: ../dialogs/ActionBlockDialog.py:140
 msgid "Move action down"
@@ -2229,11 +2252,11 @@
 msgid "Move up"
 msgstr "Переместить выше"
 
-#: ../editors/CodeFileEditor.py:661 ../controls/VariablePanel.py:451
+#: ../editors/CodeFileEditor.py:661 ../controls/VariablePanel.py:453
 msgid "Move variable down"
 msgstr "Переместить переменную ниже"
 
-#: ../editors/CodeFileEditor.py:660 ../controls/VariablePanel.py:450
+#: ../editors/CodeFileEditor.py:660 ../controls/VariablePanel.py:452
 msgid "Move variable up"
 msgstr "Переместить переменную выше"
 
@@ -2249,7 +2272,7 @@
 msgid "My Computer:"
 msgstr "Мой компьютер:"
 
-#: ../dialogs/DiscoveryDialog.py:91
+#: ../dialogs/DiscoveryDialog.py:92
 msgid "NAME"
 msgstr "Имя"
 
@@ -2263,7 +2286,7 @@
 msgid "Name must not be null!"
 msgstr "Имя не может быть null!"
 
-#: ../dialogs/SFCStepDialog.py:55 ../dialogs/FBDBlockDialog.py:83
+#: ../dialogs/SFCStepDialog.py:56 ../dialogs/FBDBlockDialog.py:83
 #: ../dialogs/ConnectionDialog.py:75
 msgid "Name:"
 msgstr "Имя:"
@@ -2272,12 +2295,12 @@
 msgid "Natural logarithm"
 msgstr "Натуральный логарифм"
 
-#: ../dialogs/LDElementDialog.py:75 ../editors/Viewer.py:456
+#: ../dialogs/LDElementDialog.py:75 ../editors/Viewer.py:460
 msgid "Negated"
 msgstr "Инверсия"
 
-#: ../PLCOpenEditor.py:102 ../PLCOpenEditor.py:144 ../Beremiz.py:320
-#: ../Beremiz.py:355
+#: ../PLCOpenEditor.py:102 ../PLCOpenEditor.py:144 ../Beremiz.py:321
+#: ../Beremiz.py:356
 msgid "New"
 msgstr "Новый"
 
@@ -2285,23 +2308,23 @@
 msgid "New item"
 msgstr "Новый элемент"
 
-#: ../editors/Viewer.py:455
+#: ../editors/Viewer.py:459
 msgid "No Modifier"
 msgstr "Нет модификатора"
 
-#: ../ProjectController.py:1718
+#: ../ProjectController.py:1747
 msgid "No PLC to transfer (did build succeed ?)\n"
 msgstr "Нет ПЛК для передачи (была сборка успешна?)\n"
 
-#: ../PLCGenerator.py:1608
+#: ../PLCGenerator.py:1619
 #, python-format
 msgid "No body defined in \"%s\" POU"
 msgstr "Нет тела для POU \"%s\""
 
-#: ../PLCGenerator.py:797 ../PLCGenerator.py:1227
-#, python-format
-msgid "No connector found corresponding to \"%s\" continuation in \"%s\" POU"
-msgstr "Не найден коннектор, соответствующий продолжению цепи \"%s\" в POU \"%s\""
+#: ../PLCGenerator.py:798 ../PLCGenerator.py:1233
+#, python-brace-format
+msgid "No connector found corresponding to \"{a1}\" continuation in \"{a2}\" POU"
+msgstr "Не найден коннектор, соответствующий продолжению цепи \"{a1}\" в POU \"{a2}\""
 
 #: ../PLCOpenEditor.py:347
 msgid ""
@@ -2311,15 +2334,15 @@
 "Документация отсутствует.\n"
 "В разработке."
 
-#: ../PLCGenerator.py:819
+#: ../PLCGenerator.py:821
 #, python-format
 msgid "No informations found for \"%s\" block"
 msgstr "Не найдена информация по блоку \"%s\""
 
-#: ../PLCGenerator.py:1183
-#, python-format
-msgid "No output %s variable found in block %s in POU %s. Connection must be broken"
-msgstr "Выходная переменная %s не найдена в блоке %s в POU %s."
+#: ../PLCGenerator.py:1186
+#, python-brace-format
+msgid "No output {a1} variable found in block {a2} in POU {a3}. Connection must be broken"
+msgstr "Выходная переменная {a1} не найдена в блоке {a2} в POU {a3}."
 
 #: ../controls/SearchResultPanel.py:169
 msgid "No search results available."
@@ -2330,21 +2353,21 @@
 msgid "No such SVG file: %s\n"
 msgstr "Нет такого SVG файла: %s\n"
 
-#: ../canfestival/config_utils.py:633
-#, python-format
-msgid "No such index/subindex (%x,%x) (variable %s)"
-msgstr "Нет индекса/подиндекса (%x,%x) (переменная %s)"
+#: ../canfestival/config_utils.py:639
+#, python-brace-format
+msgid "No such index/subindex ({a1},{a2}) (variable {a3})"
+msgstr "Нет индекса/подиндекса ({a1},{a2}) (переменная {a3})"
 
 #: ../canfestival/config_utils.py:362
-#, python-format
-msgid "No such index/subindex (%x,%x) in ID : %d (variable %s)"
-msgstr "Нет индекса/подиндекса (%x,%x) в ID: %d (переменная %s)"
+#, python-brace-format
+msgid "No such index/subindex ({a1},{a2}) in ID : {a3} (variable {a4})"
+msgstr "Нет индекса/подиндекса ({a1},{a2}) в ID: {a3} (переменная {a4})"
 
 #: ../dialogs/BrowseValuesLibraryDialog.py:83
 msgid "No valid value selected!"
 msgstr "Не выбрано допустимое значение!"
 
-#: ../PLCGenerator.py:1606
+#: ../PLCGenerator.py:1617
 #, python-format
 msgid "No variable defined in \"%s\" POU"
 msgstr "Переменная не определена в POU \"%s\""
@@ -2353,9 +2376,9 @@
 msgstr "ID узла"
 
 #: ../canfestival/config_utils.py:355
-#, python-format
-msgid "Non existing node ID : %d (variable %s)"
-msgstr "Несуществующий ID узла: %d (переменная %s)"
+#, python-brace-format
+msgid "Non existing node ID : {a1} (variable {a2})"
+msgstr "Несуществующий ID узла: {a1} (переменная {a2})"
 
 #: ../controls/VariablePanel.py:64
 msgid "Non-Retain"
@@ -2365,16 +2388,16 @@
 msgid "Normal"
 msgstr "Обычный"
 
-#: ../canfestival/config_utils.py:384
-#, python-format
-msgid "Not PDO mappable variable : '%s' (ID:%d,Idx:%x,sIdx:%x))"
-msgstr "Не переменная для отображения в PDO: '%s' (ID:%d,Idx:%x,sIdx:%x))"
+#: ../canfestival/config_utils.py:389
+#, python-brace-format
+msgid "Not PDO mappable variable : '{a1}' (ID:{a2},Idx:{a3},sIdx:{a4}))"
+msgstr "Не переменная для отображения в PDO: '{a1}' (ID:{a2},Idx:{a3},sIdx:{a4}))"
 
 #: ../plcopen/iec_std.csv:80
 msgid "Not equal to"
 msgstr "Не равно"
 
-#: ../dialogs/SFCDivergenceDialog.py:78
+#: ../dialogs/SFCDivergenceDialog.py:89
 msgid "Number of sequences:"
 msgstr "Число ветвей:"
 
@@ -2402,8 +2425,8 @@
 msgid "Only Elements"
 msgstr "Только элементы"
 
-#: ../PLCOpenEditor.py:104 ../PLCOpenEditor.py:145 ../Beremiz.py:322
-#: ../Beremiz.py:356
+#: ../PLCOpenEditor.py:104 ../PLCOpenEditor.py:145 ../Beremiz.py:323
+#: ../Beremiz.py:357
 msgid "Open"
 msgstr "Открыть"
 
@@ -2415,7 +2438,7 @@
 msgid "Open Source framework for automation, implemented IEC 61131 IDE with constantly growing set of extensions and flexible PLC runtime."
 msgstr "Свободное программное обеспечение для промышленной автоматизации, состоящие из среды разработки программ по стандарту МЭК 61131 с постоянно расширяющимся набором плагинов и гибкой системой исполнения для ПЛК."
 
-#: ../ProjectController.py:1770
+#: ../ProjectController.py:1799
 msgid "Open a file explorer to manage project files"
 msgstr "Открыть файловый менеджер для просмотра файлов проекта"
 
@@ -2439,9 +2462,11 @@
 msgid "Other Profile"
 msgstr "Другой профиль"
 
-#: ../dialogs/SFCStepDialog.py:70 ../dialogs/FBDVariableDialog.py:39
-#: ../dialogs/BrowseLocationsDialog.py:36 ../editors/Viewer.py:1562
-#: ../controls/VariablePanel.py:71
+#: ../dialogs/SFCStepDialog.py:71 ../dialogs/FBDVariableDialog.py:39
+#: ../dialogs/BrowseLocationsDialog.py:41 ../editors/Viewer.py:289
+#: ../editors/Viewer.py:1570 ../editors/TextViewer.py:307
+#: ../controls/LocationCellEditor.py:98 ../controls/VariablePanel.py:71
+#: ../controls/VariablePanel.py:291 ../controls/VariablePanel.py:351
 msgid "Output"
 msgstr "Выход"
 
@@ -2468,7 +2493,7 @@
 msgid "PLC :\n"
 msgstr "ПЛК:\n"
 
-#: ../Beremiz.py:452
+#: ../Beremiz.py:453
 msgid "PLC Log"
 msgstr "Лог ПЛК"
 
@@ -2477,13 +2502,13 @@
 msgstr "Неудачная генерация кода!\n"
 
 #: ../PLCOpenEditor.py:196 ../PLCOpenEditor.py:309
-#, python-format
+#, python-brace-format
 msgid ""
-"PLC syntax error at line %d:\n"
-"%s"
-msgstr ""
-"Синтаксическая ошибка в строке %d:\n"
-"%s"
+"PLC syntax error at line {a1}:\n"
+"{a2}"
+msgstr ""
+"Синтаксическая ошибка в строке {a1}:\n"
+"{a2}"
 
 #: ../PLCOpenEditor.py:292 ../PLCOpenEditor.py:373
 msgid "PLCOpen files (*.xml)|*.xml|All files|*.*"
@@ -2491,7 +2516,7 @@
 
 #: ../PLCOpenEditor.py:152 ../PLCOpenEditor.py:209
 msgid "PLCOpenEditor"
-msgstr ""
+msgstr "PLCOpenEditor"
 
 #: ../PLCOpenEditor.py:355
 msgid ""
@@ -2503,7 +2528,7 @@
 "\n"
 "Beremiz — "
 
-#: ../dialogs/DiscoveryDialog.py:94
+#: ../dialogs/DiscoveryDialog.py:95
 msgid "PORT"
 msgstr "Порт"
 
@@ -2523,17 +2548,17 @@
 msgid "POU Type:"
 msgstr "Тип POU:"
 
-#: ../connectors/PYRO/__init__.py:41
+#: ../connectors/PYRO/__init__.py:45
 #, python-format
 msgid "PYRO connecting to URI : %s\n"
 msgstr "PYRO подключение к URI: %s\n"
 
-#: ../connectors/PYRO/__init__.py:57
+#: ../connectors/PYRO/__init__.py:61
 #, python-format
 msgid "PYRO using certificates in '%s' \n"
 msgstr "PYRO использует сертификаты в '%s'\n"
 
-#: ../PLCOpenEditor.py:118 ../Beremiz.py:335
+#: ../PLCOpenEditor.py:118 ../Beremiz.py:336
 msgid "Page Setup"
 msgstr "Настройки страницы"
 
@@ -2550,7 +2575,7 @@
 msgid "Parent instance"
 msgstr "Родительский экземпляр"
 
-#: ../editors/Viewer.py:594 ../IDEFrame.py:372 ../IDEFrame.py:426
+#: ../editors/Viewer.py:598 ../IDEFrame.py:372 ../IDEFrame.py:426
 msgid "Paste"
 msgstr "Вставить"
 
@@ -2562,25 +2587,25 @@
 msgid "Pattern to search:"
 msgstr "Шаблон поиска:"
 
-#: ../dialogs/LDPowerRailDialog.py:72
+#: ../dialogs/LDPowerRailDialog.py:73
 msgid "Pin number:"
 msgstr "Номер пина:"
 
-#: ../editors/Viewer.py:2681 ../editors/Viewer.py:2925
-#: ../editors/SFCViewer.py:696
+#: ../editors/Viewer.py:2697 ../editors/Viewer.py:2941
+#: ../editors/SFCViewer.py:770
 msgid "Please choose a target"
-msgstr "Выберете цель перехода"
+msgstr "Выберите цель перехода"
 
 #: ../editors/TextViewer.py:262
 msgid "Please enter a block name"
 msgstr "Введите имя блока"
 
-#: ../editors/Viewer.py:2551 ../editors/Viewer.py:2962
+#: ../editors/Viewer.py:2567 ../editors/Viewer.py:2978
 msgid "Please enter comment text"
 msgstr "Введите текст комментария"
 
-#: ../editors/SFCViewer.py:359 ../editors/SFCViewer.py:381
-#: ../editors/SFCViewer.py:725
+#: ../editors/SFCViewer.py:433 ../editors/SFCViewer.py:455
+#: ../editors/SFCViewer.py:799
 msgid "Please enter step name"
 msgstr "Введите имя шага"
 
@@ -2597,15 +2622,15 @@
 msgid "Port number must be an integer!"
 msgstr "Номер порта должен быть целым числом!"
 
-#: ../editors/Viewer.py:532 ../editors/Viewer.py:2093
+#: ../editors/Viewer.py:536 ../editors/Viewer.py:2358
 msgid "Power Rail"
 msgstr "Шина питания"
 
-#: ../dialogs/LDPowerRailDialog.py:49
+#: ../dialogs/LDPowerRailDialog.py:50
 msgid "Power Rail Properties"
 msgstr "Свойства шины питания"
 
-#: ../PLCOpenEditor.py:120 ../Beremiz.py:337
+#: ../PLCOpenEditor.py:120 ../Beremiz.py:338
 msgid "Preview"
 msgstr "Просмотр"
 
@@ -2613,8 +2638,8 @@
 msgid "Preview:"
 msgstr "Просмотр:"
 
-#: ../PLCOpenEditor.py:122 ../PLCOpenEditor.py:148 ../Beremiz.py:339
-#: ../Beremiz.py:359
+#: ../PLCOpenEditor.py:122 ../PLCOpenEditor.py:148 ../Beremiz.py:340
+#: ../Beremiz.py:360
 msgid "Print"
 msgstr "Печать"
 
@@ -2626,11 +2651,11 @@
 msgid "Priority"
 msgstr "Приоритет"
 
-#: ../dialogs/SFCTransitionDialog.py:88
+#: ../dialogs/SFCTransitionDialog.py:89
 msgid "Priority:"
 msgstr "Приоритет:"
 
-#: ../runtime/PLCObject.py:369
+#: ../runtime/PLCObject.py:370
 #, python-format
 msgid "Problem starting PLC : error %d"
 msgstr "Проблема запуска ПЛК: ошибка %d"
@@ -2668,7 +2693,7 @@
 msgid "Programs"
 msgstr "Программы"
 
-#: ../editors/Viewer.py:238
+#: ../editors/Viewer.py:242
 msgid "Programs can't be used by other POUs!"
 msgstr "Программы не могут использоваться другими POU!"
 
@@ -2681,7 +2706,7 @@
 msgid "Project '%s':"
 msgstr "Проект '%s':"
 
-#: ../ProjectController.py:1769
+#: ../ProjectController.py:1798
 msgid "Project Files"
 msgstr "Файлы проекта"
 
@@ -2697,7 +2722,7 @@
 msgid "Project Version (optional):"
 msgstr "Версия проекта (опционально):"
 
-#: ../PLCControler.py:3157
+#: ../PLCControler.py:3158
 msgid ""
 "Project file syntax error:\n"
 "\n"
@@ -2709,10 +2734,10 @@
 msgid "Project properties"
 msgstr "Свойства проекта"
 
-#: ../ConfigTreeNode.py:564
-#, python-format
-msgid "Project tree layout do not match confnode.xml %s!=%s "
-msgstr "Дерево проекта не соответствует confnode.xml %s!=%s"
+#: ../ConfigTreeNode.py:566
+#, python-brace-format
+msgid "Project tree layout do not match confnode.xml {a1}!={a2} "
+msgstr "Дерево проекта не соответствует confnode.xml {a1}!={a2} "
 
 #: ../dialogs/ConnectionDialog.py:94
 msgid "Propagate Name"
@@ -2742,7 +2767,7 @@
 msgid "Qualifier"
 msgstr "Спецификатор"
 
-#: ../PLCOpenEditor.py:128 ../Beremiz.py:342 ../Beremiz_service.py:252
+#: ../PLCOpenEditor.py:128 ../Beremiz.py:343 ../Beremiz_service.py:252
 msgid "Quit"
 msgstr "Выход"
 
@@ -2766,7 +2791,7 @@
 msgid "Range:"
 msgstr "Диапазон:"
 
-#: ../ProjectController.py:1765
+#: ../ProjectController.py:1794
 msgid "Raw IEC code"
 msgstr "МЭК-код"
 
@@ -2778,7 +2803,7 @@
 "RTC часы\n"
 "Часы реального времени используется для получения меток времени, установки даты и времени дня в отчетах, сообщениях об авариях и пр."
 
-#: ../Beremiz.py:1130
+#: ../Beremiz.py:1134
 #, python-format
 msgid "Really delete node '%s'?"
 msgstr "Действительно удалить элемент '%s'?"
@@ -2787,11 +2812,11 @@
 msgid "Redo"
 msgstr "Повторить"
 
-#: ../dialogs/SFCTransitionDialog.py:73
+#: ../dialogs/SFCTransitionDialog.py:74
 msgid "Reference"
 msgstr "Ссылка"
 
-#: ../dialogs/DiscoveryDialog.py:105 ../IDEFrame.py:432
+#: ../dialogs/DiscoveryDialog.py:106 ../IDEFrame.py:432
 msgid "Refresh"
 msgstr "Обновить"
 
@@ -2803,7 +2828,7 @@
 msgid "Regular expressions"
 msgstr "Регулярные выражения"
 
-#: ../editors/Viewer.py:1539
+#: ../editors/Viewer.py:1547
 msgid "Release value"
 msgstr "Освободить значение"
 
@@ -2811,7 +2836,7 @@
 msgid "Remainder (modulo)"
 msgstr "Остаток от деления (modulo)"
 
-#: ../Beremiz.py:1131
+#: ../Beremiz.py:1135
 #, python-format
 msgid "Remove %s node"
 msgstr "Удалить %s элемент"
@@ -2848,7 +2873,7 @@
 msgid "Remove task"
 msgstr "Удалить задачу"
 
-#: ../editors/CodeFileEditor.py:659 ../controls/VariablePanel.py:449
+#: ../editors/CodeFileEditor.py:659 ../controls/VariablePanel.py:451
 msgid "Remove variable"
 msgstr "Удалить переменную"
 
@@ -2860,7 +2885,7 @@
 msgid "Replace File"
 msgstr "Заменить файл"
 
-#: ../editors/Viewer.py:498
+#: ../editors/Viewer.py:502
 msgid "Replace Wire by connections"
 msgstr "Заменить цепь подключениями"
 
@@ -2872,7 +2897,7 @@
 msgid "Reset"
 msgstr "Сброс"
 
-#: ../editors/Viewer.py:578
+#: ../editors/Viewer.py:583
 msgid "Reset Execution Order"
 msgstr "Сбросить порядок исполнения"
 
@@ -2884,27 +2909,27 @@
 msgid "Reset search result"
 msgstr "Сбросить результаты поиска"
 
-#: ../PLCControler.py:97 ../Beremiz.py:1062
+#: ../PLCControler.py:97 ../Beremiz.py:1066
 msgid "Resources"
 msgstr "Ресурсы"
 
 #: ../controls/VariablePanel.py:62
 msgid "Retain"
-msgstr ""
-
-#: ../controls/VariablePanel.py:422
+msgstr "Retain"
+
+#: ../controls/VariablePanel.py:424
 msgid "Return Type:"
 msgstr "Возвращаемый тип:"
 
-#: ../editors/Viewer.py:483
+#: ../editors/Viewer.py:487
 msgid "Right"
 msgstr "Право"
 
-#: ../dialogs/LDPowerRailDialog.py:62
+#: ../dialogs/LDPowerRailDialog.py:63
 msgid "Right PowerRail"
 msgstr "Правая шина питания"
 
-#: ../dialogs/LDElementDialog.py:77 ../editors/Viewer.py:457
+#: ../dialogs/LDElementDialog.py:77 ../editors/Viewer.py:461
 msgid "Rising Edge"
 msgstr "Нарастающий фронт"
 
@@ -2928,7 +2953,7 @@
 msgid "Rounding up/down"
 msgstr "Округление вверх/вниз"
 
-#: ../ProjectController.py:1733
+#: ../ProjectController.py:1762
 msgid "Run"
 msgstr "Старт"
 
@@ -2950,7 +2975,7 @@
 
 #: ../dialogs/PouDialog.py:36 ../controls/ProjectPropertiesPanel.py:143
 msgid "SFC"
-msgstr ""
+msgstr "SFC"
 
 #: ../plcopen/definitions.py:53
 msgid ""
@@ -2963,7 +2988,7 @@
 #: ../dialogs/PouTransitionDialog.py:35 ../dialogs/PouActionDialog.py:31
 #: ../dialogs/PouDialog.py:36
 msgid "ST"
-msgstr ""
+msgstr "ST"
 
 #: ../PLCOpenEditor.py:324
 msgid "ST files (*.st)|*.st|All files|*.*"
@@ -2975,18 +3000,18 @@
 
 #: ../features.py:35
 msgid "SVGUI"
-msgstr ""
-
-#: ../PLCOpenEditor.py:111 ../PLCOpenEditor.py:146 ../Beremiz.py:326
-#: ../Beremiz.py:357
+msgstr "SVGUI"
+
+#: ../PLCOpenEditor.py:111 ../PLCOpenEditor.py:146 ../Beremiz.py:327
+#: ../Beremiz.py:358
 msgid "Save"
 msgstr "Сохранить"
 
-#: ../PLCOpenEditor.py:113 ../PLCOpenEditor.py:147 ../Beremiz.py:358
+#: ../PLCOpenEditor.py:113 ../PLCOpenEditor.py:147 ../Beremiz.py:359
 msgid "Save As..."
 msgstr "Сохранить как..."
 
-#: ../Beremiz.py:328
+#: ../Beremiz.py:329
 msgid "Save as"
 msgstr "Сохранить как"
 
@@ -3010,23 +3035,23 @@
 msgid "Select All"
 msgstr "Выделить все"
 
-#: ../editors/Viewer.py:284 ../editors/TextViewer.py:306
-#: ../controls/LocationCellEditor.py:97 ../controls/VariablePanel.py:288
-#: ../controls/VariablePanel.py:348
+#: ../editors/Viewer.py:288 ../editors/TextViewer.py:306
+#: ../controls/LocationCellEditor.py:97 ../controls/VariablePanel.py:290
+#: ../controls/VariablePanel.py:350
 msgid "Select a variable class:"
-msgstr ""
-
-#: ../ProjectController.py:1173
+msgstr "Выберите класс переменной:"
+
+#: ../ProjectController.py:1179
 msgid "Select an editor:"
-msgstr "Выберете редактор:"
+msgstr "Выберите редактор:"
 
 #: ../controls/PouInstanceVariablesPanel.py:276
 msgid "Select an instance"
-msgstr "Выберете экземпляр"
+msgstr "Выберите экземпляр"
 
 #: ../IDEFrame.py:607
 msgid "Select an object"
-msgstr "Выберете объект"
+msgstr "Выберите объект"
 
 #: ../plcopen/iec_std.csv:70
 msgid "Selection"
@@ -3048,11 +3073,11 @@
 "Семафор\n"
 "Семафор предоставляет собой программный механизм синхронизации для обеспечения исключительного доступа к определенным ресурсам."
 
-#: ../dialogs/DiscoveryDialog.py:81
+#: ../dialogs/DiscoveryDialog.py:82
 msgid "Service Discovery"
 msgstr "Поиск сервиса"
 
-#: ../dialogs/DiscoveryDialog.py:84
+#: ../dialogs/DiscoveryDialog.py:85
 msgid "Services available:"
 msgstr "Сервисы доступны:"
 
@@ -3068,7 +3093,7 @@
 msgid "Shift right"
 msgstr "Сдвиг вправо"
 
-#: ../ProjectController.py:1759
+#: ../ProjectController.py:1788
 msgid "Show IEC code generated by PLCGenerator"
 msgstr "Показать год, сгенерированный PLCGenerator"
 
@@ -3080,7 +3105,7 @@
 msgid "Show Master generated by config_utils"
 msgstr "Показать ведущий узел сгенерированный config_utils"
 
-#: ../ProjectController.py:1757
+#: ../ProjectController.py:1786
 msgid "Show code"
 msgstr "Показать код"
 
@@ -3100,7 +3125,7 @@
 msgid "Single"
 msgstr "Источник прерывания"
 
-#: ../targets/toolchain_makefile.py:130
+#: ../targets/toolchain_makefile.py:126
 msgid "Source didn't change, no build.\n"
 msgstr "Исходные файлы не изменились, сборка не нужна.\n"
 
@@ -3112,7 +3137,7 @@
 msgid "Standard function blocks"
 msgstr "Стандартные функциональные блоки"
 
-#: ../ProjectController.py:1735 ../Beremiz_service.py:240
+#: ../ProjectController.py:1764 ../Beremiz_service.py:240
 msgid "Start PLC"
 msgstr "Запустить ПЛК"
 
@@ -3121,19 +3146,23 @@
 msgid "Start build in %s\n"
 msgstr "Сборка запущена в %s\n"
 
-#: ../ProjectController.py:1542
+#: ../ProjectController.py:1282
+msgid "Started"
+msgstr "Работа"
+
+#: ../ProjectController.py:1570
 msgid "Starting PLC\n"
 msgstr "ПЛК запускается\\n\n"
 
-#: ../Beremiz.py:462
+#: ../Beremiz.py:463
 msgid "Status ToolBar"
 msgstr "Панель статуса"
 
-#: ../editors/Viewer.py:549 ../editors/Viewer.py:2067
+#: ../editors/Viewer.py:553 ../editors/Viewer.py:2333
 msgid "Step"
 msgstr "Шаг"
 
-#: ../ProjectController.py:1738
+#: ../ProjectController.py:1767
 msgid "Stop"
 msgstr "Стоп"
 
@@ -3141,11 +3170,15 @@
 msgid "Stop PLC"
 msgstr "Остановить ПЛК"
 
-#: ../ProjectController.py:1740
+#: ../ProjectController.py:1769
 msgid "Stop Running PLC"
 msgstr "Остановить запущенный ПЛК"
 
-#: ../ProjectController.py:1514
+#: ../ProjectController.py:1283
+msgid "Stopped"
+msgstr "Стоп"
+
+#: ../ProjectController.py:1542
 msgid "Stopping debugger...\n"
 msgstr "Остановка отладчика...\n"
 
@@ -3182,7 +3215,7 @@
 msgid "Syntax error in regular expression of pattern to search!"
 msgstr "Синтаксическая ошибка в регулярном выражении шаблона поиска!"
 
-#: ../dialogs/DiscoveryDialog.py:92
+#: ../dialogs/DiscoveryDialog.py:93
 msgid "TYPE"
 msgstr "Тип"
 
@@ -3216,9 +3249,9 @@
 
 #: ../editors/LDViewer.py:882
 msgid "The group of block must be coherent!"
-msgstr ""
-
-#: ../Beremiz.py:636 ../IDEFrame.py:1011
+msgstr "Группа блоков должна быть связанной!"
+
+#: ../Beremiz.py:640 ../IDEFrame.py:1011
 msgid "There are changes, do you want to save?"
 msgstr "Хотите сохранить изменения?"
 
@@ -3277,31 +3310,31 @@
 msgid "Time-of-day subtraction"
 msgstr "Вычитание времени суток"
 
-#: ../editors/Viewer.py:485
+#: ../editors/Viewer.py:489
 msgid "Top"
 msgstr "Верх"
 
-#: ../ProjectController.py:1747
+#: ../ProjectController.py:1776
 msgid "Transfer"
 msgstr "Передать"
 
-#: ../ProjectController.py:1749
+#: ../ProjectController.py:1778
 msgid "Transfer PLC"
 msgstr "Передать ПЛК"
 
-#: ../ProjectController.py:1714
+#: ../ProjectController.py:1742
 msgid "Transfer completed successfully.\n"
 msgstr "Передача успешно завершена.\n"
 
-#: ../ProjectController.py:1716
+#: ../ProjectController.py:1744
 msgid "Transfer failed\n"
 msgstr "Ошибка передачи\n"
 
-#: ../editors/Viewer.py:550 ../editors/Viewer.py:2068 ../editors/Viewer.py:2097
+#: ../editors/Viewer.py:554 ../editors/Viewer.py:2335 ../editors/Viewer.py:2362
 msgid "Transition"
 msgstr "Переход"
 
-#: ../PLCGenerator.py:1499
+#: ../PLCGenerator.py:1506
 #, python-format
 msgid "Transition \"%s\" body must contain an output variable or coil referring to its name"
 msgstr "Тело перехода \"%s\" должно содержать выходную переменную или катушку, ссылающуюся на его имя"
@@ -3314,17 +3347,17 @@
 msgid "Transition Name:"
 msgstr "Имя перехода:"
 
-#: ../PLCGenerator.py:1588
-#, python-format
-msgid "Transition with content \"%s\" not connected to a next step in \"%s\" POU"
-msgstr "Переход с содержимым \"%s\" не подключен к следующему шагу в POU \"%s\""
-
-#: ../PLCGenerator.py:1579
-#, python-format
-msgid "Transition with content \"%s\" not connected to a previous step in \"%s\" POU"
-msgstr "Переход с содержимым \"%s\" не подключен к предыдущему шагу в POU \"%s\""
-
-#: ../plcopen/plcopen.py:1320
+#: ../PLCGenerator.py:1597
+#, python-brace-format
+msgid "Transition with content \"{a1}\" not connected to a next step in \"{a2}\" POU"
+msgstr "Переход с содержимым \"{a1}\" не подключен к следующему шагу в POU \"{a2}\""
+
+#: ../PLCGenerator.py:1586
+#, python-brace-format
+msgid "Transition with content \"{a1}\" not connected to a previous step in \"{a2}\" POU"
+msgstr "Переход с содержимым \"{a1}\" не подключен к предыдущему шагу в POU \"{a2}\""
+
+#: ../plcopen/plcopen.py:1322
 #, python-format
 msgid "Transition with name %s doesn't exist!"
 msgstr "Переход с именем %s отсутствует!"
@@ -3347,11 +3380,11 @@
 msgid "Type"
 msgstr "Тип"
 
-#: ../dialogs/BrowseLocationsDialog.py:43
+#: ../dialogs/BrowseLocationsDialog.py:48
 msgid "Type and derivated"
 msgstr "Тип и его производные"
 
-#: ../canfestival/config_utils.py:336 ../canfestival/config_utils.py:618
+#: ../canfestival/config_utils.py:336 ../canfestival/config_utils.py:624
 #, python-format
 msgid "Type conflict for location \"%s\""
 msgstr "Конфликт типов \"%s\""
@@ -3364,12 +3397,12 @@
 msgid "Type infos:"
 msgstr "Информация о типе:"
 
-#: ../dialogs/BrowseLocationsDialog.py:44
+#: ../dialogs/BrowseLocationsDialog.py:49
 msgid "Type strict"
 msgstr "Только данный тип"
 
-#: ../dialogs/SFCDivergenceDialog.py:57 ../dialogs/SFCTransitionDialog.py:56
-#: ../dialogs/LDPowerRailDialog.py:55 ../dialogs/BrowseLocationsDialog.py:94
+#: ../dialogs/SFCDivergenceDialog.py:59 ../dialogs/SFCTransitionDialog.py:57
+#: ../dialogs/LDPowerRailDialog.py:56 ../dialogs/BrowseLocationsDialog.py:99
 #: ../dialogs/FBDBlockDialog.py:65 ../dialogs/ConnectionDialog.py:58
 msgid "Type:"
 msgstr "Тип:"
@@ -3377,7 +3410,7 @@
 msgid "URI_location"
 msgstr "URI системы исполнения"
 
-#: ../canfestival/config_utils.py:456 ../canfestival/config_utils.py:470
+#: ../canfestival/config_utils.py:462 ../canfestival/config_utils.py:476
 #, python-format
 msgid "Unable to define PDO mapping for node %02x"
 msgstr "Невозможно определить отображение PDO для узла %02x"
@@ -3387,10 +3420,10 @@
 msgid "Unable to get Xenomai's %s \n"
 msgstr "Невозможно получить Xenomai %s\n"
 
-#: ../PLCGenerator.py:951 ../PLCGenerator.py:1202
-#, python-format
-msgid "Undefined block type \"%s\" in \"%s\" POU"
-msgstr "Неопределенный тип блока \"%s\" в POU \"%s\""
+#: ../PLCGenerator.py:953 ../PLCGenerator.py:1206
+#, python-brace-format
+msgid "Undefined block type \"{a1}\" in \"{a2}\" POU"
+msgstr "Неопределенный тип блока \"{a1}\" в POU \"{a2}\""
 
 #: ../PLCGenerator.py:254
 #, python-format
@@ -3405,21 +3438,21 @@
 msgid "Unknown"
 msgstr "Неизвестно"
 
-#: ../editors/Viewer.py:389
+#: ../editors/Viewer.py:393
 #, python-format
 msgid "Unknown variable \"%s\" for this POU!"
 msgstr "Неизвестная переменная \"%s\" для этого POU!"
 
 #: ../ProjectController.py:329 ../ProjectController.py:330
 msgid "Unnamed"
-msgstr ""
+msgstr "Unnamed"
 
 #: ../PLCControler.py:636
 #, python-format
 msgid "Unnamed%d"
-msgstr ""
-
-#: ../controls/VariablePanel.py:283
+msgstr "Unnamed%d"
+
+#: ../controls/VariablePanel.py:284
 #, python-format
 msgid "Unrecognized data size \"%s\""
 msgstr "Неопределенный размер данных \"%s\""
@@ -3440,7 +3473,7 @@
 "Инкрементный/декрементный счетчик\n"
 "Инкрементный/декрементный счетчик имеет два входа CU и CD. Он может использоваться для счета вверх по одному входу и для счета низ по другому."
 
-#: ../editors/DataTypeEditor.py:632 ../controls/VariablePanel.py:796
+#: ../editors/DataTypeEditor.py:632 ../controls/VariablePanel.py:798
 msgid "User Data Types"
 msgstr "Пользовательские типы данных"
 
@@ -3460,22 +3493,28 @@
 msgid "Values:"
 msgstr "Значения:"
 
-#: ../dialogs/ActionBlockDialog.py:42 ../editors/Viewer.py:522
-#: ../editors/Viewer.py:2082
+#: ../dialogs/ActionBlockDialog.py:42 ../editors/Viewer.py:526
+#: ../editors/Viewer.py:2365
 msgid "Variable"
 msgstr "Переменная"
 
+#: ../editors/Viewer.py:308 ../editors/Viewer.py:338 ../editors/Viewer.py:360
+#: ../editors/TextViewer.py:292 ../editors/TextViewer.py:343
+#: ../editors/TextViewer.py:366 ../controls/VariablePanel.py:329
+msgid "Variable Drop"
+msgstr "Перетаскивание переменной"
+
 #: ../dialogs/FBDVariableDialog.py:63
 msgid "Variable Properties"
 msgstr "Свойства переменных"
 
-#: ../editors/Viewer.py:284 ../editors/TextViewer.py:306
-#: ../controls/LocationCellEditor.py:97 ../controls/VariablePanel.py:288
-#: ../controls/VariablePanel.py:348
+#: ../editors/Viewer.py:288 ../editors/TextViewer.py:306
+#: ../controls/LocationCellEditor.py:97 ../controls/VariablePanel.py:290
+#: ../controls/VariablePanel.py:350
 msgid "Variable class"
-msgstr ""
-
-#: ../editors/Viewer.py:391 ../editors/TextViewer.py:387
+msgstr "Класс переменной"
+
+#: ../editors/Viewer.py:395 ../editors/TextViewer.py:387
 msgid "Variable don't belong to this POU!"
 msgstr "Переменная не принадлежит этому POU!"
 
@@ -3491,23 +3530,23 @@
 msgid "Vertical:"
 msgstr "Вертикальный:"
 
-#: ../connectors/WAMP/__init__.py:88
+#: ../connectors/WAMP/__init__.py:91
 #, python-format
 msgid "WAMP connecting to URL : %s\n"
 msgstr "WAMP подключение к URI: %s\n"
 
-#: ../connectors/WAMP/__init__.py:128
+#: ../connectors/WAMP/__init__.py:131
 msgid "WAMP connection timeout"
 msgstr "Тайм-аут WAMP подключения "
 
-#: ../connectors/WAMP/__init__.py:147
+#: ../connectors/WAMP/__init__.py:150
 #, python-format
 msgid "WAMP connection to '%s' failed.\n"
 msgstr "Не удалось установить WAMP подключение к %s.\n"
 
 #: ../wxglade_hmi/wxglade_hmi.py:35
 msgid "WXGLADE GUI"
-msgstr ""
+msgstr "WXGLADE GUI"
 
 #: ../dialogs/PouDialog.py:128 ../editors/LDViewer.py:891
 msgid "Warning"
@@ -3526,7 +3565,7 @@
 msgstr "Ширина:"
 
 msgid "Win32"
-msgstr ""
+msgstr "Win32"
 
 #: ../dialogs/FindInPouDialog.py:95
 msgid "Wrap search"
@@ -3538,13 +3577,13 @@
 
 #: ../features.py:34
 msgid "WxGlade GUI"
-msgstr ""
+msgstr "WxGlade GUI"
 
 msgid "XenoConfig"
 msgstr "Настройки Xenomai"
 
 msgid "Xenomai"
-msgstr ""
+msgstr "Xenomai"
 
 #: ../svgui/svgui.py:139
 msgid ""
@@ -3572,13 +3611,13 @@
 
 #: ../editors/LDViewer.py:886
 msgid "You must select the block or group of blocks around which a branch should be added!"
-msgstr "Выберете блок или группу блоков, вокруг которых нужно добавить ветвление!"
+msgstr "Выберите блок или группу блоков, вокруг которых нужно добавить ветвление!"
 
 #: ../editors/LDViewer.py:666
 msgid "You must select the wire where a contact should be added!"
-msgstr "Выберете провод, куда должен быть добавлен контакт!"
-
-#: ../dialogs/SFCStepNameDialog.py:47 ../dialogs/PouNameDialog.py:45
+msgstr "Выберите провод, куда должен быть добавлен контакт!"
+
+#: ../dialogs/SFCStepNameDialog.py:48 ../dialogs/PouNameDialog.py:46
 msgid "You must type a name!"
 msgstr "Введите имя!"
 
@@ -3605,10 +3644,10 @@
 msgid "error: %s\n"
 msgstr "ошибка: %s\n"
 
-#: ../util/ProcessLogger.py:170
-#, python-format
-msgid "exited with status %s (pid %s)\n"
-msgstr "завершился с кодом %s (pid %s)\n"
+#: ../util/ProcessLogger.py:169
+#, python-brace-format
+msgid "exited with status {a1} (pid {a2})\n"
+msgstr "завершился с кодом {a1} (pid {a2})\n"
 
 #: ../PLCOpenEditor.py:396 ../PLCOpenEditor.py:398
 msgid "file : "
@@ -3677,6 +3716,10 @@
 msgid "type"
 msgstr "тип"
 
+#: ../Beremiz.py:126
+msgid "update info unavailable."
+msgstr "информация об обновлениях недоступна."
+
 msgid "variable"
 msgstr "переменная"
 
@@ -3688,6 +3731,44 @@
 msgid "warning: %s\n"
 msgstr "предупреждение: %s\n"
 
+#: ../PLCControler.py:970
+#, python-brace-format
+msgid "{a1} \"{a2}\" can't be pasted as a {a3}."
+msgstr "{a1} \"{a2}\" не может быть вставлен как {a3}."
+
+#: ../ConfigTreeNode.py:56
+#, python-brace-format
+msgid ""
+"{a1} XML file doesn't follow XSD schema at line %{a2}:\n"
+"{a3}"
+msgstr ""
+"{a1} XML файл не следует XSD-схеме в строке {a2}:\n"
+"{a3}"
+
+#~ msgid ""
+#~ "\n"
+#~ "An error has occurred.\n"
+#~ "\n"
+#~ "Click OK to save an error report.\n"
+#~ "\n"
+#~ "Please be kind enough to send this file to:\n"
+#~ "edouard.tisserant@gmail.com\n"
+#~ "\n"
+#~ "Error:\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Произошла ошибка.\n"
+#~ "\n"
+#~ "Нажмите OK, чтобы сохранить репорт об ошибке.\n"
+#~ "\n"
+#~ "Будьте так добры, пошлите этот файл:\n"
+#~ "edouard.tisserant@gmail.com\n"
+#~ "\n"
+#~ "Ошибка:\n"
+
+#~ msgid " : "
+#~ msgstr " : "
+
 #~ msgid "\"%s\" element can't be pasted here!!!"
 #~ msgstr "Элемент \"%s\" не может быть вставлен сюда!!!"
 
@@ -3706,6 +3787,9 @@
 #~ msgid "Description"
 #~ msgstr "Описание"
 
+#~ msgid "Enable_Native_Library"
+#~ msgstr "Разрешить библиотеку Native"
+
 #~ msgid "Form isn't complete. Pattern to search must be filled!"
 #~ msgstr "Форма заполнена неполностью. Шаблон поиска должен быть заполнен!"