apply constraints to names for tasks and task instances in resource configuration
The same rules as for IEC identifiers are applied.
- no non-lating characters, ...
- no IEC keywords
- check for duplicate names in resource configuration
closes #19
--- a/editors/ResourceEditor.py Thu Mar 09 13:01:28 2017 +0500
+++ b/editors/ResourceEditor.py Thu Mar 09 15:35:19 2017 +0300
@@ -31,7 +31,7 @@
from dialogs.DurationEditorDialog import IEC_TIME_MODEL
from EditorPanel import EditorPanel
from util.BitmapLibrary import GetBitmap
-
+from plcopen.structures import LOCATIONDATATYPES, TestIdentifier, IEC_KEYWORDS, DefaultType
#-------------------------------------------------------------------------------
# Configuration Editor class
#-------------------------------------------------------------------------------
@@ -108,7 +108,7 @@
def GetValue(self, row, col):
if row < self.GetNumberRows():
colname = self.GetColLabelValue(col, False)
- value = str(self.data[row].get(colname, ""))
+ value = self.data[row].get(colname, "")
if colname == "Triggering":
return _(value)
return value
@@ -432,9 +432,28 @@
self.TasksGrid.RefreshButtons()
self.InstancesGrid.RefreshButtons()
+ def ShowErrorMessage(self, message):
+ dialog = wx.MessageDialog(self, message, _("Error"), wx.OK|wx.ICON_ERROR)
+ dialog.ShowModal()
+ dialog.Destroy()
+
def OnTasksGridCellChange(self, event):
row, col = event.GetRow(), event.GetCol()
if self.TasksTable.GetColLabelValue(col, False) == "Name":
+ value = self.TasksTable.GetValue(row, col)
+ message = None
+
+ if not TestIdentifier(value):
+ message = _("\"%s\" is not a valid identifier!") % value
+ elif value.upper() in IEC_KEYWORDS:
+ message = _("\"%s\" is a keyword. It can't be used!") % value
+ elif value.upper() in [var["Name"].upper() for i, var in enumerate(self.TasksTable.data) if i!=row]:
+ message = _("A task with the same name already exists!")
+ if message is not None:
+ event.Veto()
+ wx.CallAfter(self.ShowErrorMessage, message)
+ return
+
tasklist = [name for name in self.TaskList.split(",") if name != ""]
for i in xrange(self.TasksTable.GetNumberRows()):
task = self.TasksTable.GetValueByName(i, "Name")
@@ -454,6 +473,22 @@
event.Skip()
def OnInstancesGridCellChange(self, event):
+ row, col = event.GetRow(), event.GetCol()
+ if self.InstancesTable.GetColLabelValue(col, False) == "Name":
+ value = self.InstancesTable.GetValue(row, col)
+ message = None
+
+ if not TestIdentifier(value):
+ message = _("\"%s\" is not a valid identifier!") % value
+ elif value.upper() in IEC_KEYWORDS:
+ message = _("\"%s\" is a keyword. It can't be used!") % value
+ elif value.upper() in [var["Name"].upper() for i ,var in enumerate(self.InstancesTable.data) if i!=row]:
+ message = _("An instance with the same name already exists!")
+ if message is not None:
+ event.Veto()
+ wx.CallAfter(self.ShowErrorMessage, message)
+ return
+
self.RefreshModel()
self.ParentWindow.RefreshPouInstanceVariablesPanel()
self.InstancesGrid.RefreshButtons()
--- a/i18n/Beremiz_ru_RU.po Thu Mar 09 13:01:28 2017 +0500
+++ b/i18n/Beremiz_ru_RU.po Thu Mar 09 15:35:19 2017 +0300
@@ -7,8 +7,8 @@
msgstr ""
"Project-Id-Version: Beremiz\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-01-12 14:39+0300\n"
-"PO-Revision-Date: 2017-01-12 14:41+0300\n"
+"POT-Creation-Date: 2017-03-09 15:28+0300\n"
+"PO-Revision-Date: 2017-03-09 15:30+0300\n"
"Last-Translator: Andrey Skvortsov <andrej.skvortzov@gmail.com>\n"
"Language-Team: Andrey Skvortsov <andrej.skvortzov@gmail.com>\n"
"Language: ru_RU\n"
@@ -72,7 +72,7 @@
msgid " and %s"
msgstr "и %s"
-#: ../ProjectController.py:1089
+#: ../ProjectController.py:1110
msgid " generation failed !\n"
msgstr "Ð½ÐµÑƒÐ´Ð°Ñ‡Ð½Ð°Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ñ ÐºÐ¾Ð´Ð°!\n"
@@ -96,7 +96,7 @@
msgid "\"%s\" can't use itself!"
msgstr "\"%s\" не может иÑпользовать Ñам ÑебÑ!!!"
-#: ../IDEFrame.py:1652 ../IDEFrame.py:1671
+#: ../IDEFrame.py:1651 ../IDEFrame.py:1670
#, python-format
msgid "\"%s\" config already exists!"
msgstr "ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ \"%s\" уже ÑущеÑтвует!!!"
@@ -106,7 +106,7 @@
msgid "\"%s\" configuration already exists !!!"
msgstr "ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ \"%s\" уже ÑущеÑтвует!!!"
-#: ../IDEFrame.py:1602
+#: ../IDEFrame.py:1601
#, python-format
msgid "\"%s\" data type already exists!"
msgstr "Тип данных \"%s\" уже ÑущеÑтвует!!!"
@@ -128,9 +128,10 @@
#: ../dialogs/SFCStepNameDialog.py:52 ../dialogs/PouTransitionDialog.py:106
#: ../dialogs/BlockPreviewDialog.py:207 ../dialogs/PouNameDialog.py:50
#: ../dialogs/PouActionDialog.py:98 ../dialogs/PouDialog.py:120
+#: ../editors/ResourceEditor.py:449 ../editors/ResourceEditor.py:484
#: ../editors/DataTypeEditor.py:555 ../editors/DataTypeEditor.py:584
-#: ../editors/CodeFileEditor.py:770 ../controls/VariablePanel.py:751
-#: ../IDEFrame.py:1593
+#: ../editors/CodeFileEditor.py:770 ../controls/VariablePanel.py:763
+#: ../IDEFrame.py:1592
#, python-format
msgid "\"%s\" is a keyword. It can't be used!"
msgstr "\"%s\" ÑвлÑетÑÑ ÐºÐ»ÑŽÑ‡ÐµÐ²Ñ‹Ð¼ Ñловом и не может быть иÑпользован!"
@@ -148,13 +149,14 @@
#: ../dialogs/SFCStepNameDialog.py:50 ../dialogs/PouTransitionDialog.py:104
#: ../dialogs/BlockPreviewDialog.py:203 ../dialogs/PouNameDialog.py:48
#: ../dialogs/PouActionDialog.py:96 ../dialogs/PouDialog.py:118
+#: ../editors/ResourceEditor.py:447 ../editors/ResourceEditor.py:482
#: ../editors/DataTypeEditor.py:579 ../editors/CodeFileEditor.py:768
-#: ../controls/VariablePanel.py:749 ../IDEFrame.py:1591
+#: ../controls/VariablePanel.py:761 ../IDEFrame.py:1590
#, python-format
msgid "\"%s\" is not a valid identifier!"
msgstr "\"%s\" неверный идентификатор!"
-#: ../IDEFrame.py:2396
+#: ../IDEFrame.py:2395
#, python-format
msgid "\"%s\" is used by one or more POUs. Do you wish to continue?"
msgstr "\"%s\" иÑпользуетÑÑ Ð±Ð¾Ð»ÐµÐµ чем одним POU. Продолжить?"
@@ -164,7 +166,7 @@
#: ../editors/Viewer.py:367 ../editors/TextViewer.py:270
#: ../editors/TextViewer.py:299 ../editors/TextViewer.py:350
#: ../editors/TextViewer.py:373 ../controls/VariablePanel.py:338
-#: ../IDEFrame.py:1611
+#: ../IDEFrame.py:1610
#, python-format
msgid "\"%s\" pou already exists!"
msgstr "POU \"%s\" уже ÑущеÑтвует!"
@@ -279,8 +281,8 @@
msgid "&Add Element"
msgstr "&Добавить Ñлемент"
-#: ../dialogs/AboutDialog.py:65 ../dialogs/AboutDialog.py:113
-#: ../dialogs/AboutDialog.py:150
+#: ../dialogs/AboutDialog.py:73 ../dialogs/AboutDialog.py:121
+#: ../dialogs/AboutDialog.py:158
msgid "&Close"
msgstr "&Закрыть"
@@ -316,7 +318,7 @@
msgid "&Help"
msgstr "&Помощь"
-#: ../dialogs/AboutDialog.py:64
+#: ../dialogs/AboutDialog.py:72
msgid "&License"
msgstr "&ЛицензиÑ"
@@ -402,15 +404,15 @@
msgid "1s"
msgstr "1 Ñек"
-#: ../dialogs/PouDialog.py:124 ../IDEFrame.py:1614 ../IDEFrame.py:1660
-#: ../IDEFrame.py:1679
+#: ../dialogs/PouDialog.py:124 ../IDEFrame.py:1613 ../IDEFrame.py:1659
+#: ../IDEFrame.py:1678
#, python-format
msgid "A POU has an element named \"%s\". This could cause a conflict. Do you wish to continue?"
msgstr "Ð’ POU приÑутÑтвует Ñлемент Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ \"%s\". Ðто может вызвать конфликт. Хотите продолжить?"
#: ../dialogs/SFCStepNameDialog.py:54 ../dialogs/PouTransitionDialog.py:108
#: ../dialogs/PouNameDialog.py:52 ../dialogs/PouActionDialog.py:100
-#: ../controls/VariablePanel.py:753 ../IDEFrame.py:1628 ../IDEFrame.py:1641
+#: ../controls/VariablePanel.py:765 ../IDEFrame.py:1627 ../IDEFrame.py:1640
#, python-format
msgid "A POU named \"%s\" already exists!"
msgstr "POU Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ \"%s\" уже ÑущеÑтвует!"
@@ -424,8 +426,12 @@
msgid "A location must be selected!"
msgstr "Ðеобходимо выбрать размещение!"
-#: ../dialogs/SFCStepNameDialog.py:56 ../controls/VariablePanel.py:755
-#: ../IDEFrame.py:1630 ../IDEFrame.py:1643
+#: ../editors/ResourceEditor.py:451
+msgid "A task with the same name already exists!"
+msgstr "Задача Ñ Ñ‚Ð°ÐºÐ¸Ð¼ именем уже ÑущеÑтвует!"
+
+#: ../dialogs/SFCStepNameDialog.py:56 ../controls/VariablePanel.py:767
+#: ../IDEFrame.py:1629 ../IDEFrame.py:1642
#, python-format
msgid "A variable with \"%s\" as name already exists in this pou!"
msgstr "ÐŸÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ \"%s\" уже ÑущеÑтвует в Ñтом POU!"
@@ -435,7 +441,7 @@
msgid "A variable with \"%s\" as name already exists!"
msgstr "ÐŸÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ \"%s\" уже ÑущеÑтвует!"
-#: ../dialogs/AboutDialog.py:40 ../PLCOpenEditor.py:158 ../Beremiz.py:381
+#: ../dialogs/AboutDialog.py:48 ../PLCOpenEditor.py:158 ../Beremiz.py:381
msgid "About"
msgstr "О программе"
@@ -447,7 +453,7 @@
msgid "Action"
msgstr "ДейÑтвие"
-#: ../editors/Viewer.py:555 ../editors/Viewer.py:2345
+#: ../editors/Viewer.py:555 ../editors/Viewer.py:2356
msgid "Action Block"
msgstr "Блок дейÑтвиÑ"
@@ -472,7 +478,7 @@
msgid "Actions:"
msgstr "ДейÑтвиÑ:"
-#: ../editors/Viewer.py:1100
+#: ../editors/Viewer.py:1110
msgid "Active"
msgstr "Ðктивный"
@@ -481,7 +487,7 @@
msgid "Add"
msgstr "Добавить"
-#: ../IDEFrame.py:1890 ../IDEFrame.py:1925
+#: ../IDEFrame.py:1889 ../IDEFrame.py:1924
msgid "Add Action"
msgstr "Добавить дейÑтвие"
@@ -489,11 +495,11 @@
msgid "Add C code accessing located variables synchronously"
msgstr "Добавить C-код Ñ Ñинхронным доÑтупом к локальным переменным"
-#: ../IDEFrame.py:1873
+#: ../IDEFrame.py:1872
msgid "Add Configuration"
msgstr "Добавить конфигурацию"
-#: ../IDEFrame.py:1853
+#: ../IDEFrame.py:1852
msgid "Add DataType"
msgstr "Добавить тип данных"
@@ -505,7 +511,7 @@
msgid "Add IP"
msgstr "Добавить IP адреÑ"
-#: ../IDEFrame.py:1861
+#: ../IDEFrame.py:1860
msgid "Add POU"
msgstr "Добавить POU"
@@ -513,11 +519,11 @@
msgid "Add Python code executed asynchronously"
msgstr "Добавить аÑинхронно вызываемый код на Python"
-#: ../IDEFrame.py:1901 ../IDEFrame.py:1951
+#: ../IDEFrame.py:1900 ../IDEFrame.py:1950
msgid "Add Resource"
msgstr "Добавить реÑурÑ"
-#: ../IDEFrame.py:1879 ../IDEFrame.py:1922
+#: ../IDEFrame.py:1878 ../IDEFrame.py:1921
msgid "Add Transition"
msgstr "Добавить переход"
@@ -529,7 +535,7 @@
msgid "Add a new initial step"
msgstr "Добавить новый иÑходный шаг"
-#: ../editors/Viewer.py:2706 ../editors/SFCViewer.py:770
+#: ../editors/Viewer.py:2717 ../editors/SFCViewer.py:770
msgid "Add a new jump"
msgstr "Добавить новый безуÑловный переход"
@@ -577,7 +583,7 @@
msgid "Adjust Block Size"
msgstr "Скорректировать размер Ñлемента"
-#: ../editors/Viewer.py:1637
+#: ../editors/Viewer.py:1648
msgid "Alignment"
msgstr "Выравнивание"
@@ -593,7 +599,7 @@
msgid "All files (*.*)|*.*|CSV files (*.csv)|*.csv"
msgstr "Ð’Ñе файлы (*.*)|*.*|CSV files (*.csv)|*.csv"
-#: ../ProjectController.py:1623
+#: ../ProjectController.py:1644
msgid "Already connected. Please disconnect\n"
msgstr "Уже подключен. ПожалуйÑта, отключитеÑÑŒ Ñначала.\n"
@@ -602,6 +608,10 @@
msgid "An element named \"%s\" already exists in this structure!"
msgstr "Поле Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ \"%s\" уже ÑущеÑтвует в данной Ñтруктуре!"
+#: ../editors/ResourceEditor.py:486
+msgid "An instance with the same name already exists!"
+msgstr "ÐкземплÑÑ€ задачи Ñ Ñ‚Ð°ÐºÐ¸Ð¼ именем уже ÑущеÑтвует!"
+
#: ../dialogs/ConnectionDialog.py:96
msgid "Apply name modification to all continuations with the same name"
msgstr "Переименовать вÑе цепи Ñ Ñ‚ÐµÐ¼ же Ñамым именем"
@@ -623,7 +633,7 @@
msgstr "Математика"
#: ../editors/DataTypeEditor.py:54 ../editors/DataTypeEditor.py:635
-#: ../controls/VariablePanel.py:829
+#: ../controls/VariablePanel.py:841
msgid "Array"
msgstr "МаÑÑив"
@@ -668,7 +678,7 @@
msgid "Base Type:"
msgstr "Базовый тип:"
-#: ../editors/DataTypeEditor.py:625 ../controls/VariablePanel.py:787
+#: ../editors/DataTypeEditor.py:625 ../controls/VariablePanel.py:799
msgid "Base Types"
msgstr "Базовые типы"
@@ -710,7 +720,7 @@
msgid "Bitwise inverting"
msgstr "Битовое ÐЕ"
-#: ../editors/Viewer.py:525 ../editors/Viewer.py:2358
+#: ../editors/Viewer.py:525 ../editors/Viewer.py:2369
msgid "Block"
msgstr "Блок"
@@ -726,7 +736,7 @@
msgid "Bottom"
msgstr "Ðиз"
-#: ../ProjectController.py:1301
+#: ../ProjectController.py:1322
msgid "Broken"
msgstr "Ошибка"
@@ -739,23 +749,23 @@
msgid "Browse Locations"
msgstr "ПроÑмотр директорий"
-#: ../ProjectController.py:1769
+#: ../ProjectController.py:1790
msgid "Build"
msgstr "Сборка"
-#: ../ProjectController.py:1235
+#: ../ProjectController.py:1256
msgid "Build directory already clean\n"
msgstr "Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ñборки уже пуÑта\n"
-#: ../ProjectController.py:1770
+#: ../ProjectController.py:1791
msgid "Build project into build folder"
msgstr "Сборка проекта в директории Ñборки"
-#: ../ProjectController.py:1018
+#: ../ProjectController.py:1039
msgid "C Build crashed !\n"
msgstr "КрÑш во Ð²Ñ€ÐµÐ¼Ñ Ñборки C-кода!\n"
-#: ../ProjectController.py:1015
+#: ../ProjectController.py:1036
msgid "C Build failed.\n"
msgstr "Ошибка Ñборки C-кода.\n"
@@ -763,7 +773,7 @@
msgid "C code"
msgstr "C код "
-#: ../ProjectController.py:1093
+#: ../ProjectController.py:1114
msgid "C code generated successfully.\n"
msgstr "C-код уÑпешно Ñгенерирован.\n"
@@ -780,7 +790,7 @@
msgid "C extension"
msgstr "С-раÑширение"
-#: ../dialogs/AboutDialog.py:63
+#: ../dialogs/AboutDialog.py:71
msgid "C&redits"
msgstr "&БлагодарноÑти"
@@ -859,7 +869,7 @@
msgid "Cannot get PLC status - connection failed.\n"
msgstr "Ðевозможно получить ÑоÑтоÑние ПЛК - ошибка подключениÑ.\n"
-#: ../ProjectController.py:881
+#: ../ProjectController.py:902
msgid "Cannot open/parse VARIABLES.csv!\n"
msgstr "Ðе удалоÑÑŒ открыть/прочитать VARIABLES.csv\n"
@@ -884,7 +894,7 @@
msgid "Change Name"
msgstr "Сменить имÑ"
-#: ../IDEFrame.py:1943
+#: ../IDEFrame.py:1942
msgid "Change POU Type To"
msgstr "Сменить тип POU на"
@@ -904,7 +914,7 @@
msgid "Choose a SVG file"
msgstr "Выберите SVG-файл"
-#: ../ProjectController.py:451
+#: ../ProjectController.py:501
msgid "Choose a directory to save project"
msgstr "Выберите директорию, чтобы Ñохранить проект"
@@ -926,11 +936,11 @@
msgid "Choose a working directory "
msgstr "Выберите рабочую директорию"
-#: ../ProjectController.py:358
+#: ../ProjectController.py:408
msgid "Chosen folder doesn't contain a program. It's not a valid project!"
msgstr "Ð’Ñ‹Ð±Ñ€Ð°Ð½Ð½Ð°Ñ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ðµ Ñодержит программы. Ðто некорректный проект!"
-#: ../ProjectController.py:325
+#: ../ProjectController.py:375
msgid "Chosen folder isn't empty. You can't use it for a new project!"
msgstr "Ð’Ñ‹Ð±Ñ€Ð°Ð½Ð½Ð°Ñ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ðµ пуÑта и не может иÑпользоватьÑÑ Ð´Ð»Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ проекта!"
@@ -946,7 +956,7 @@
msgid "Class:"
msgstr "КлаÑÑ:"
-#: ../ProjectController.py:1773
+#: ../ProjectController.py:1794
msgid "Clean"
msgstr "ОчиÑтить"
@@ -954,11 +964,11 @@
msgid "Clean log messages"
msgstr "ОчиÑтить лог"
-#: ../ProjectController.py:1775
+#: ../ProjectController.py:1796
msgid "Clean project build folder"
msgstr "ОчиÑтить директорию Ñборки проекта"
-#: ../ProjectController.py:1232
+#: ../ProjectController.py:1253
msgid "Cleaning the build directory\n"
msgstr "ОчиÑтка директории Ñборки\n"
@@ -987,7 +997,7 @@
msgid "Close Tab"
msgstr "Закрыть вкладку"
-#: ../editors/Viewer.py:541 ../editors/Viewer.py:2366
+#: ../editors/Viewer.py:541 ../editors/Viewer.py:2377
msgid "Coil"
msgstr "Катушка"
@@ -1017,7 +1027,7 @@
msgid "Compiler"
msgstr "КомпилÑтор"
-#: ../ProjectController.py:672
+#: ../ProjectController.py:693
msgid "Compiling IEC Program into C code...\n"
msgstr "КомпилÑÑ†Ð¸Ñ ÐœÐК-программы в C-код...\n"
@@ -1047,21 +1057,21 @@
msgid "Confirm or change variable name"
msgstr "Подтвердить или поменÑÑ‚ÑŒ Ð¸Ð¼Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð¾Ð¹"
-#: ../ProjectController.py:1788
+#: ../ProjectController.py:1809
msgid "Connect"
msgstr "ПодключитьÑÑ"
-#: ../ProjectController.py:1789
+#: ../ProjectController.py:1810
msgid "Connect to the target PLC"
msgstr "ПодключитьÑÑ Ðº целевому ПЛК"
-#: ../ProjectController.py:1292
+#: ../ProjectController.py:1313
#, python-format
msgid "Connected to URI: %s"
msgstr "Подключен к URI: %s"
#: ../dialogs/SFCTransitionDialog.py:76 ../editors/Viewer.py:527
-#: ../editors/Viewer.py:2359
+#: ../editors/Viewer.py:2370
msgid "Connection"
msgstr "Подключение"
@@ -1069,11 +1079,11 @@
msgid "Connection Properties"
msgstr "СвойÑтва подключение"
-#: ../ProjectController.py:1647
+#: ../ProjectController.py:1668
msgid "Connection canceled!\n"
msgstr "Подключение отменено!\n"
-#: ../ProjectController.py:1672
+#: ../ProjectController.py:1693
#, python-format
msgid "Connection failed to %s!\n"
msgstr "Ðеудачное подключение к %s!\n"
@@ -1087,7 +1097,7 @@
msgid "Connection to '%s' failed.\n"
msgstr "Ðеудачное подключение к %s!\n"
-#: ../dialogs/ConnectionDialog.py:64 ../editors/Viewer.py:1594
+#: ../dialogs/ConnectionDialog.py:64 ../editors/Viewer.py:1605
msgid "Connector"
msgstr "Коннектор"
@@ -1103,7 +1113,7 @@
msgid "Constant"
msgstr "КонÑтанта"
-#: ../editors/Viewer.py:537 ../editors/Viewer.py:2362
+#: ../editors/Viewer.py:537 ../editors/Viewer.py:2373
msgid "Contact"
msgstr "Контакт"
@@ -1111,7 +1121,7 @@
msgid "Content Description (optional):"
msgstr "ОпиÑание Ñодержимого (опционально):"
-#: ../dialogs/ConnectionDialog.py:65 ../editors/Viewer.py:1595
+#: ../dialogs/ConnectionDialog.py:65 ../editors/Viewer.py:1606
msgid "Continuation"
msgstr "Продолжение"
@@ -1136,7 +1146,7 @@
msgid "Copy"
msgstr "Копировать"
-#: ../IDEFrame.py:1930
+#: ../IDEFrame.py:1929
msgid "Copy POU"
msgstr "Копировать POU"
@@ -1191,15 +1201,15 @@
msgid "Couldn't paste non-POU object."
msgstr "Ðевозможно вÑтавить не-POU."
-#: ../ProjectController.py:1589
+#: ../ProjectController.py:1610
msgid "Couldn't start PLC !\n"
msgstr "Ðевозможно запуÑтить ПЛК!\n"
-#: ../ProjectController.py:1597
+#: ../ProjectController.py:1618
msgid "Couldn't stop PLC !\n"
msgstr "Ðевозможно оÑтановить ПЛК!\n"
-#: ../ProjectController.py:1561
+#: ../ProjectController.py:1582
msgid "Couldn't stop debugger.\n"
msgstr "Ðевозможно оÑтановить отладчик.\n"
@@ -1279,7 +1289,7 @@
msgid "Create a new variable"
msgstr "Создать новую переменную"
-#: ../dialogs/AboutDialog.py:105
+#: ../dialogs/AboutDialog.py:113
msgid "Credits"
msgstr "БлагодарноÑти"
@@ -1343,7 +1353,7 @@
msgid "Days:"
msgstr "Дни:"
-#: ../ProjectController.py:1694
+#: ../ProjectController.py:1715
msgid "Debug does not match PLC - stop/transfert/start to re-enable\n"
msgstr "ÐžÑ‚Ð»Ð°Ð¶Ð¸Ð²Ð°ÐµÐ¼Ð°Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð° не ÑоответÑтвует программе в ПЛК - оÑтановите/загрузите/запуÑтите, чтобы разрешить отладку\n"
@@ -1351,17 +1361,17 @@
msgid "Debug instance"
msgstr "Отладка ÑкземплÑра"
-#: ../editors/Viewer.py:1117 ../editors/Viewer.py:3653
+#: ../editors/Viewer.py:1127 ../editors/Viewer.py:3664
#, python-format
msgid "Debug: %s"
msgstr "Отладка: %s"
-#: ../ProjectController.py:1350
+#: ../ProjectController.py:1371
#, python-format
msgid "Debug: Unknown variable '%s'\n"
msgstr "Отладка: неизвеÑÑ‚Ð½Ð°Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ '%s'\n"
-#: ../ProjectController.py:1348
+#: ../ProjectController.py:1369
#, python-format
msgid "Debug: Unsupported type to debug '%s'\n"
msgstr "Отладка: неподдерживамый отладкой тип '%s'\n"
@@ -1370,19 +1380,19 @@
msgid "Debugger"
msgstr "Отладчик"
-#: ../ProjectController.py:1530
+#: ../ProjectController.py:1551
msgid "Debugger disabled\n"
msgstr "Отладчик запрещен\n"
-#: ../ProjectController.py:1691
+#: ../ProjectController.py:1712
msgid "Debugger ready\n"
msgstr "Отладчик готов\n"
-#: ../ProjectController.py:1563
+#: ../ProjectController.py:1584
msgid "Debugger stopped.\n"
msgstr "Отладчик оÑтановлен.\n"
-#: ../editors/Viewer.py:572 ../Beremiz.py:1064 ../IDEFrame.py:1959
+#: ../editors/Viewer.py:572 ../Beremiz.py:1064 ../IDEFrame.py:1958
msgid "Delete"
msgstr "Удалить"
@@ -1439,19 +1449,19 @@
msgid "Disable_Extensions"
msgstr "Запретить раÑширениÑ"
-#: ../ProjectController.py:1797
+#: ../ProjectController.py:1818
msgid "Disconnect"
msgstr "ОтключитьÑÑ"
-#: ../ProjectController.py:1799
+#: ../ProjectController.py:1820
msgid "Disconnect from PLC"
msgstr "ОтключитьÑÑ Ð¾Ñ‚ ПЛК"
-#: ../ProjectController.py:1302
+#: ../ProjectController.py:1323
msgid "Disconnected"
msgstr "Отключено"
-#: ../editors/Viewer.py:556 ../editors/Viewer.py:2354
+#: ../editors/Viewer.py:556 ../editors/Viewer.py:2365
msgid "Divergence"
msgstr "Ветвление"
@@ -1512,7 +1522,7 @@
msgid "Edit array type properties"
msgstr "Редактировать ÑвойÑтва маÑÑива"
-#: ../editors/Viewer.py:2575 ../editors/Viewer.py:3004
+#: ../editors/Viewer.py:2586 ../editors/Viewer.py:3015
msgid "Edit comment"
msgstr "Редактировать комментарий"
@@ -1524,11 +1534,11 @@
msgid "Edit item"
msgstr "Редактировать Ñлемент"
-#: ../editors/Viewer.py:2963
+#: ../editors/Viewer.py:2974
msgid "Edit jump target"
msgstr "Редактирование безуÑловного перехода"
-#: ../ProjectController.py:1811
+#: ../ProjectController.py:1832
msgid "Edit raw IEC code added to code generated by PLCGenerator"
msgstr "Редактировать ÐœÐК-код добавленный к коду Ñгенерированному PLCGenerator"
@@ -1544,7 +1554,7 @@
msgid "Editor ToolBar"
msgstr "Редактор панели инÑтрументов"
-#: ../ProjectController.py:1195
+#: ../ProjectController.py:1216
msgid "Editor selection"
msgstr "Редактор выделениÑ"
@@ -1555,7 +1565,7 @@
msgid "Elements :"
msgstr "Ðлементы:"
-#: ../ProjectController.py:1300
+#: ../ProjectController.py:1321
msgid "Empty"
msgstr "Ðет программы"
@@ -1595,35 +1605,36 @@
#: ../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:420 ../PLCOpenEditor.py:430 ../editors/Viewer.py:423
+#: ../PLCOpenEditor.py:420 ../PLCOpenEditor.py:430
+#: ../editors/ResourceEditor.py:436 ../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
#: ../editors/DataTypeEditor.py:584 ../editors/DataTypeEditor.py:594
#: ../editors/DataTypeEditor.py:745 ../editors/DataTypeEditor.py:752
#: ../editors/TextViewer.py:389 ../editors/CodeFileEditor.py:783
-#: ../ProjectController.py:293 ../ProjectController.py:421
-#: ../ProjectController.py:428 ../controls/FolderTree.py:217
+#: ../ProjectController.py:343 ../ProjectController.py:471
+#: ../ProjectController.py:478 ../controls/FolderTree.py:217
#: ../controls/DebugVariablePanel/DebugVariablePanel.py:166
#: ../controls/DebugVariablePanel/DebugVariableTextViewer.py:137
#: ../controls/DebugVariablePanel/DebugVariableGraphicViewer.py:231
-#: ../controls/VariablePanel.py:402 ../controls/VariablePanel.py:772
-#: ../Beremiz.py:1203 ../IDEFrame.py:1003 ../IDEFrame.py:1614
-#: ../IDEFrame.py:1655 ../IDEFrame.py:1660 ../IDEFrame.py:1674
-#: ../IDEFrame.py:1679 ../Beremiz_service.py:211
+#: ../controls/VariablePanel.py:402 ../controls/VariablePanel.py:784
+#: ../Beremiz.py:1203 ../IDEFrame.py:1003 ../IDEFrame.py:1613
+#: ../IDEFrame.py:1654 ../IDEFrame.py:1659 ../IDEFrame.py:1673
+#: ../IDEFrame.py:1678 ../Beremiz_service.py:211
msgid "Error"
msgstr "Ошибка"
-#: ../ProjectController.py:727
+#: ../ProjectController.py:748
msgid "Error : At least one configuration and one resource must be declared in PLC !\n"
msgstr "Ошибка: Как минимум одна ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð¸ один реÑÑƒÑ€Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ‹ быть задекларированы в ПЛК!\n"
-#: ../ProjectController.py:719
+#: ../ProjectController.py:740
#, python-format
msgid "Error : IEC to C compiler returned %d\n"
msgstr "Ошибка: компилÑтор ÐœÐК в C вернул код ошибки %d\n"
-#: ../ProjectController.py:621
+#: ../ProjectController.py:671
#, python-format
msgid ""
"Error in ST/IL/SFC code generator :\n"
@@ -1647,7 +1658,7 @@
msgid "Error: No PLC built\n"
msgstr "Ошибка: ПЛК не Ñобран\n"
-#: ../ProjectController.py:1666
+#: ../ProjectController.py:1687
#, python-format
msgid "Exception while connecting %s!\n"
msgstr "ИÑключение во Ð²Ñ€ÐµÐ¼Ñ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ %s!\n"
@@ -1692,7 +1703,7 @@
msgid "External"
msgstr "Внешний"
-#: ../ProjectController.py:740
+#: ../ProjectController.py:761
msgid "Extracting Located Variables...\n"
msgstr "ÐкÑпорт локальных переменных...\n"
@@ -1707,7 +1718,7 @@
msgid "FBD"
msgstr "FBD"
-#: ../ProjectController.py:1729
+#: ../ProjectController.py:1750
msgid "Failed : Must build before transfer.\n"
msgstr "Ошибка: необходима Ñборка перед передачей.\n"
@@ -1715,7 +1726,7 @@
msgid "Falling Edge"
msgstr "Спадающий фронт"
-#: ../ProjectController.py:1008
+#: ../ProjectController.py:1029
msgid "Fatal : cannot get builder.\n"
msgstr "Ошибка: невозможно получить Ñборщик.\n"
@@ -1764,7 +1775,7 @@
msgid "Force runtime reload\n"
msgstr "Принудительный перезапуÑк ÑиÑтемы иÑполнениÑ\n"
-#: ../editors/Viewer.py:1553
+#: ../editors/Viewer.py:1564
msgid "Force value"
msgstr "ФикÑировать значение"
@@ -1792,7 +1803,7 @@
msgid "Forward"
msgstr "Вперед"
-#: ../dialogs/SearchInProjectDialog.py:36 ../IDEFrame.py:1746
+#: ../dialogs/SearchInProjectDialog.py:36 ../IDEFrame.py:1745
msgid "Function"
msgstr "ФункциÑ"
@@ -1800,12 +1811,12 @@
msgid "Function &Block"
msgstr "Функциональный &блок"
-#: ../dialogs/SearchInProjectDialog.py:37 ../IDEFrame.py:1745
-#: ../IDEFrame.py:1938
+#: ../dialogs/SearchInProjectDialog.py:37 ../IDEFrame.py:1744
+#: ../IDEFrame.py:1937
msgid "Function Block"
msgstr "Функциональный блок"
-#: ../controls/VariablePanel.py:825
+#: ../controls/VariablePanel.py:837
msgid "Function Block Types"
msgstr "Типы функциональных блоков"
@@ -1830,7 +1841,7 @@
msgid "Generate Program"
msgstr "Сгенерировать программу"
-#: ../ProjectController.py:612
+#: ../ProjectController.py:662
msgid "Generating SoftPLC IEC-61131 ST/IL/SFC code...\n"
msgstr "Ð“ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ñ ÐœÐК-61131 ST/IL/SFC кода ПЛК...\n"
@@ -1900,12 +1911,12 @@
msgid "Import SVG"
msgstr "Импорт SVG"
-#: ../dialogs/FBDVariableDialog.py:38 ../editors/Viewer.py:1580
+#: ../dialogs/FBDVariableDialog.py:38 ../editors/Viewer.py:1591
#: ../controls/VariablePanel.py:71
msgid "InOut"
msgstr "Вход/Выход"
-#: ../editors/Viewer.py:1100
+#: ../editors/Viewer.py:1110
msgid "Inactive"
msgstr "Ðеактивный"
@@ -1955,7 +1966,7 @@
#: ../dialogs/SFCStepDialog.py:70 ../dialogs/FBDVariableDialog.py:37
#: ../dialogs/BrowseLocationsDialog.py:40 ../editors/Viewer.py:289
-#: ../editors/Viewer.py:1578 ../editors/TextViewer.py:307
+#: ../editors/Viewer.py:1589 ../editors/TextViewer.py:307
#: ../controls/LocationCellEditor.py:98 ../controls/VariablePanel.py:71
#: ../controls/VariablePanel.py:291 ../controls/VariablePanel.py:351
msgid "Input"
@@ -2043,7 +2054,7 @@
"Ðеверное значение!\n"
"Ðеобходимо ввеÑти чиÑловое значение."
-#: ../editors/Viewer.py:557 ../editors/Viewer.py:2343
+#: ../editors/Viewer.py:557 ../editors/Viewer.py:2354
msgid "Jump"
msgstr "БезуÑловный переход"
@@ -2074,7 +2085,7 @@
msgid "Language:"
msgstr "Язык:"
-#: ../ProjectController.py:1735
+#: ../ProjectController.py:1756
msgid "Latest build already matches current target. Transfering anyway...\n"
msgstr "Ð—Ð°Ð³Ñ€ÑƒÐ¶Ð°ÐµÐ¼Ð°Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð° Ñовпадает Ñ Ñ‚ÐµÐºÑƒÑ‰Ð¸Ð¹ программой в целевом ПЛК. Загрузка продолжена...\n"
@@ -2113,7 +2124,7 @@
msgid "Library"
msgstr "Библиотеки"
-#: ../dialogs/AboutDialog.py:143
+#: ../dialogs/AboutDialog.py:151
msgid "License"
msgstr "ЛицензиÑ"
@@ -2139,7 +2150,7 @@
msgid "Local entries"
msgstr "Локальные запиÑи"
-#: ../ProjectController.py:1641
+#: ../ProjectController.py:1662
msgid "Local service discovery failed!\n"
msgstr "Локальный ÑÐµÑ€Ð²Ð¸Ñ Ð½Ðµ найден!\n"
@@ -2350,7 +2361,7 @@
msgid "No Modifier"
msgstr "Ðет модификатора"
-#: ../ProjectController.py:1763
+#: ../ProjectController.py:1784
msgid "No PLC to transfer (did build succeed ?)\n"
msgstr "Ðет ПЛК Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ´Ð°Ñ‡Ð¸ (была Ñборка уÑпешна?)\n"
@@ -2460,7 +2471,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:1815
+#: ../ProjectController.py:1836
msgid "Open a file explorer to manage project files"
msgstr "Открыть файловый менеджер Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñмотра файлов проекта"
@@ -2486,7 +2497,7 @@
#: ../dialogs/SFCStepDialog.py:71 ../dialogs/FBDVariableDialog.py:39
#: ../dialogs/BrowseLocationsDialog.py:41 ../editors/Viewer.py:289
-#: ../editors/Viewer.py:1579 ../editors/TextViewer.py:307
+#: ../editors/Viewer.py:1590 ../editors/TextViewer.py:307
#: ../controls/LocationCellEditor.py:98 ../controls/VariablePanel.py:71
#: ../controls/VariablePanel.py:291 ../controls/VariablePanel.py:351
msgid "Output"
@@ -2514,7 +2525,7 @@
msgid "PLC Log"
msgstr "Лог ПЛК"
-#: ../ProjectController.py:992
+#: ../ProjectController.py:1013
msgid "PLC code generation failed !\n"
msgstr "ÐÐµÑƒÐ´Ð°Ñ‡Ð½Ð°Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ñ ÐºÐ¾Ð´Ð°!\n"
@@ -2594,7 +2605,7 @@
msgid "Page Size (optional):"
msgstr "Размер Ñтраницы (опционально):"
-#: ../IDEFrame.py:2599
+#: ../IDEFrame.py:2598
#, python-format
msgid "Page: %d"
msgstr "Страница: %d"
@@ -2607,7 +2618,7 @@
msgid "Paste"
msgstr "Ð’Ñтавить"
-#: ../IDEFrame.py:1865
+#: ../IDEFrame.py:1864
msgid "Paste POU"
msgstr "Ð’Ñтавить POU"
@@ -2619,7 +2630,7 @@
msgid "Pin number:"
msgstr "Ðомер пина:"
-#: ../editors/Viewer.py:2706 ../editors/Viewer.py:2963
+#: ../editors/Viewer.py:2717 ../editors/Viewer.py:2974
#: ../editors/SFCViewer.py:770
msgid "Please choose a target"
msgstr "Выберите цель перехода"
@@ -2628,7 +2639,7 @@
msgid "Please enter a block name"
msgstr "Введите Ð¸Ð¼Ñ Ð±Ð»Ð¾ÐºÐ°"
-#: ../editors/Viewer.py:2576 ../editors/Viewer.py:3005
+#: ../editors/Viewer.py:2587 ../editors/Viewer.py:3016
msgid "Please enter comment text"
msgstr "Введите текÑÑ‚ комментариÑ"
@@ -2654,7 +2665,7 @@
msgid "Port number must be an integer!"
msgstr "Ðомер порта должен быть целым чиÑлом!"
-#: ../editors/Viewer.py:536 ../editors/Viewer.py:2367
+#: ../editors/Viewer.py:536 ../editors/Viewer.py:2378
msgid "Power Rail"
msgstr "Шина питаниÑ"
@@ -2718,8 +2729,8 @@
msgid "Product Version (required):"
msgstr "ВерÑÐ¸Ñ Ð¿Ñ€Ð¾Ð´ÑƒÐºÑ‚Ð° (обÑзательно):"
-#: ../dialogs/SearchInProjectDialog.py:38 ../IDEFrame.py:1744
-#: ../IDEFrame.py:1941
+#: ../dialogs/SearchInProjectDialog.py:38 ../IDEFrame.py:1743
+#: ../IDEFrame.py:1940
msgid "Program"
msgstr "Программа"
@@ -2744,7 +2755,7 @@
msgid "Project '%s':"
msgstr "Проект '%s':"
-#: ../ProjectController.py:1814
+#: ../ProjectController.py:1835
msgid "Project Files"
msgstr "Файлы проекта"
@@ -2828,7 +2839,7 @@
msgid "Range:"
msgstr "Диапазон:"
-#: ../ProjectController.py:1810
+#: ../ProjectController.py:1831
msgid "Raw IEC code"
msgstr "ÐœÐК-код"
@@ -2857,7 +2868,7 @@
msgid "Regular expressions"
msgstr "РегулÑрные выражениÑ"
-#: ../editors/Viewer.py:1556
+#: ../editors/Viewer.py:1567
msgid "Release value"
msgstr "ОÑвободить значение"
@@ -2870,11 +2881,11 @@
msgid "Remove %s node"
msgstr "Удалить %s Ñлемент"
-#: ../IDEFrame.py:2405
+#: ../IDEFrame.py:2404
msgid "Remove Datatype"
msgstr "Удалить тип данных"
-#: ../IDEFrame.py:2410
+#: ../IDEFrame.py:2409
msgid "Remove Pou"
msgstr "Удалить POU"
@@ -2906,7 +2917,7 @@
msgid "Remove variable"
msgstr "Удалить переменную"
-#: ../IDEFrame.py:1945
+#: ../IDEFrame.py:1944
msgid "Rename"
msgstr "Переименовать"
@@ -2977,15 +2988,15 @@
msgid "Rounding up/down"
msgstr "Округление вверх/вниз"
-#: ../ProjectController.py:1778
+#: ../ProjectController.py:1799
msgid "Run"
msgstr "Старт"
-#: ../ProjectController.py:1037
+#: ../ProjectController.py:1058
msgid "Runtime IO extensions C code generation failed !\n"
msgstr "Ошибка генерации C-кода Ð´Ð»Ñ Ñ€Ð°Ñширений ввода-вывода!\n"
-#: ../ProjectController.py:1046
+#: ../ProjectController.py:1067
msgid "Runtime library extensions C code generation failed !\n"
msgstr "Ошибка генерации C-кода Ð´Ð»Ñ Ð±Ð¸Ð±Ð»Ð¸Ð¾Ñ‚ÐµÐºÐ¸ раÑширений ÑиÑтемы иÑполнениÑ!\n"
@@ -3044,7 +3055,7 @@
msgid "Save as"
msgstr "Сохранить как"
-#: ../ProjectController.py:420
+#: ../ProjectController.py:470
msgid "Save path is the same as path of a project! \n"
msgstr "Выбранный путь Ñовпадает Ñ Ð¿ÑƒÑ‚Ñ‘Ð¼ проекта!\n"
@@ -3074,7 +3085,7 @@
msgid "Select a variable class:"
msgstr "Выберите клаÑÑ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð¾Ð¹:"
-#: ../ProjectController.py:1195
+#: ../ProjectController.py:1216
msgid "Select an editor:"
msgstr "Выберите редактор:"
@@ -3086,7 +3097,7 @@
msgid "Select an object"
msgstr "Выберите объект"
-#: ../ProjectController.py:427
+#: ../ProjectController.py:477
msgid "Selected directory already contains another project. Overwrite? \n"
msgstr "Ð’Ñ‹Ð±Ñ€Ð°Ð½Ð½Ð°Ñ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ ÑƒÐ¶Ðµ Ñодержит другой проект. ПерезапиÑать?\n"
@@ -3125,7 +3136,7 @@
msgid "Shift right"
msgstr "Сдвиг вправо"
-#: ../ProjectController.py:1804
+#: ../ProjectController.py:1825
msgid "Show IEC code generated by PLCGenerator"
msgstr "Показать код, Ñгенерированный PLCGenerator"
@@ -3137,7 +3148,7 @@
msgid "Show Master generated by config_utils"
msgstr "Показать ведущий узел Ñгенерированный config_utils"
-#: ../ProjectController.py:1802
+#: ../ProjectController.py:1823
msgid "Show code"
msgstr "Показать код"
@@ -3174,20 +3185,20 @@
msgid "Standard function blocks"
msgstr "Стандартные функциональные блоки"
-#: ../ProjectController.py:1780 ../Beremiz_service.py:261
+#: ../ProjectController.py:1801 ../Beremiz_service.py:261
msgid "Start PLC"
msgstr "ЗапуÑтить ПЛК"
-#: ../ProjectController.py:984
+#: ../ProjectController.py:1005
#, python-format
msgid "Start build in %s\n"
msgstr "Сборка запущена в %s\n"
-#: ../ProjectController.py:1298
+#: ../ProjectController.py:1319
msgid "Started"
msgstr "Работа"
-#: ../ProjectController.py:1586
+#: ../ProjectController.py:1607
msgid "Starting PLC\n"
msgstr "ПЛК запуÑкаетÑÑ\n"
@@ -3195,11 +3206,11 @@
msgid "Status ToolBar"
msgstr "Панель ÑтатуÑа"
-#: ../editors/Viewer.py:553 ../editors/Viewer.py:2342
+#: ../editors/Viewer.py:553 ../editors/Viewer.py:2353
msgid "Step"
msgstr "Шаг"
-#: ../ProjectController.py:1783
+#: ../ProjectController.py:1804
msgid "Stop"
msgstr "Стоп"
@@ -3207,15 +3218,15 @@
msgid "Stop PLC"
msgstr "ОÑтановить ПЛК"
-#: ../ProjectController.py:1785
+#: ../ProjectController.py:1806
msgid "Stop Running PLC"
msgstr "ОÑтановить запущенный ПЛК"
-#: ../ProjectController.py:1299
+#: ../ProjectController.py:1320
msgid "Stopped"
msgstr "Стоп"
-#: ../ProjectController.py:1558
+#: ../ProjectController.py:1579
msgid "Stopping debugger...\n"
msgstr "ОÑтановка отладчика...\n"
@@ -3231,7 +3242,7 @@
msgid "Subtraction"
msgstr "Вычитание"
-#: ../ProjectController.py:1023
+#: ../ProjectController.py:1044
msgid "Successfully built.\n"
msgstr "Сборка прошла уÑпешно.\n"
@@ -3343,7 +3354,7 @@
msgid "There are changes, do you want to save?"
msgstr "Хотите Ñохранить изменениÑ?"
-#: ../IDEFrame.py:1655 ../IDEFrame.py:1674
+#: ../IDEFrame.py:1654 ../IDEFrame.py:1673
#, python-format
msgid "There is a POU named \"%s\". This could cause a conflict. Do you wish to continue?"
msgstr "СущеÑтвует POU Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ \"%s\". Ðто может вызвать конфликт. Хотите продолжить?"
@@ -3402,23 +3413,23 @@
msgid "Top"
msgstr "Верх"
-#: ../ProjectController.py:1792
+#: ../ProjectController.py:1813
msgid "Transfer"
msgstr "Передать"
-#: ../ProjectController.py:1794
+#: ../ProjectController.py:1815
msgid "Transfer PLC"
msgstr "Передать ПЛК"
-#: ../ProjectController.py:1758
+#: ../ProjectController.py:1779
msgid "Transfer completed successfully.\n"
msgstr "Передача уÑпешно завершена.\n"
-#: ../ProjectController.py:1760
+#: ../ProjectController.py:1781
msgid "Transfer failed\n"
msgstr "Ошибка передачи\n"
-#: ../editors/Viewer.py:554 ../editors/Viewer.py:2344 ../editors/Viewer.py:2371
+#: ../editors/Viewer.py:554 ../editors/Viewer.py:2355 ../editors/Viewer.py:2382
msgid "Transition"
msgstr "Переход"
@@ -3454,7 +3465,7 @@
msgid "Transitions"
msgstr "Переходы"
-#: ../dialogs/AboutDialog.py:123
+#: ../dialogs/AboutDialog.py:131
msgid "Translated by"
msgstr "Перевод"
@@ -3526,7 +3537,7 @@
msgid "Undo"
msgstr "Отмена"
-#: ../ProjectController.py:332
+#: ../ProjectController.py:382
msgid "Unknown"
msgstr "ÐеизвеÑтно"
@@ -3535,7 +3546,7 @@
msgid "Unknown variable \"%s\" for this POU!"
msgstr "ÐеизвеÑÑ‚Ð½Ð°Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ \"%s\" Ð´Ð»Ñ Ñтого POU!"
-#: ../ProjectController.py:329 ../ProjectController.py:330
+#: ../ProjectController.py:379 ../ProjectController.py:380
msgid "Unnamed"
msgstr "Unnamed"
@@ -3549,7 +3560,7 @@
msgid "Unrecognized data size \"%s\""
msgstr "Ðеопределенный размер данных \"%s\""
-#: ../editors/DataTypeEditor.py:632 ../controls/VariablePanel.py:798
+#: ../editors/DataTypeEditor.py:632 ../controls/VariablePanel.py:810
msgid "User Data Types"
msgstr "ПользовательÑкие типы данных"
@@ -3570,7 +3581,7 @@
msgstr "ЗначениÑ:"
#: ../dialogs/ActionBlockDialog.py:42 ../editors/Viewer.py:526
-#: ../editors/Viewer.py:2374
+#: ../editors/Viewer.py:2385
msgid "Variable"
msgstr "ПеременнаÑ"
@@ -3636,7 +3647,7 @@
msgid "Warning"
msgstr "Предупреждение"
-#: ../ProjectController.py:616
+#: ../ProjectController.py:666
msgid "Warnings in ST/IL/SFC code generator :\n"
msgstr "ÐŸÑ€ÐµÐ´ÑƒÐ¿Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ð² ST/IL/SFC коде генераторе:\n"
@@ -3655,7 +3666,7 @@
msgid "Wrap search"
msgstr "Продолжить поиÑк Ñначала"
-#: ../dialogs/AboutDialog.py:122
+#: ../dialogs/AboutDialog.py:130
msgid "Written by"
msgstr "Ðвторы"
@@ -3685,7 +3696,7 @@
"У Ð²Ð°Ñ Ð½ÐµÐ´Ð¾Ñтаточно прав Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи.\n"
"Открыть wxGlade вÑе равно?"
-#: ../ProjectController.py:292
+#: ../ProjectController.py:342
msgid ""
"You must have permission to work on the project\n"
"Work on a project copy ?"
--- a/i18n/messages.pot Thu Mar 09 13:01:28 2017 +0500
+++ b/i18n/messages.pot Thu Mar 09 15:35:19 2017 +0300
@@ -8,7 +8,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-01-12 14:39+0300\n"
+"POT-Creation-Date: 2017-03-09 15:28+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -62,7 +62,7 @@
msgid " and %s"
msgstr ""
-#: ../ProjectController.py:1089
+#: ../ProjectController.py:1110
msgid " generation failed !\n"
msgstr ""
@@ -86,7 +86,7 @@
msgid "\"%s\" can't use itself!"
msgstr ""
-#: ../IDEFrame.py:1652 ../IDEFrame.py:1671
+#: ../IDEFrame.py:1651 ../IDEFrame.py:1670
#, python-format
msgid "\"%s\" config already exists!"
msgstr ""
@@ -96,7 +96,7 @@
msgid "\"%s\" configuration already exists !!!"
msgstr ""
-#: ../IDEFrame.py:1602
+#: ../IDEFrame.py:1601
#, python-format
msgid "\"%s\" data type already exists!"
msgstr ""
@@ -118,9 +118,10 @@
#: ../dialogs/SFCStepNameDialog.py:52 ../dialogs/PouTransitionDialog.py:106
#: ../dialogs/BlockPreviewDialog.py:207 ../dialogs/PouNameDialog.py:50
#: ../dialogs/PouActionDialog.py:98 ../dialogs/PouDialog.py:120
+#: ../editors/ResourceEditor.py:449 ../editors/ResourceEditor.py:484
#: ../editors/DataTypeEditor.py:555 ../editors/DataTypeEditor.py:584
-#: ../editors/CodeFileEditor.py:770 ../controls/VariablePanel.py:751
-#: ../IDEFrame.py:1593
+#: ../editors/CodeFileEditor.py:770 ../controls/VariablePanel.py:763
+#: ../IDEFrame.py:1592
#, python-format
msgid "\"%s\" is a keyword. It can't be used!"
msgstr ""
@@ -138,13 +139,14 @@
#: ../dialogs/SFCStepNameDialog.py:50 ../dialogs/PouTransitionDialog.py:104
#: ../dialogs/BlockPreviewDialog.py:203 ../dialogs/PouNameDialog.py:48
#: ../dialogs/PouActionDialog.py:96 ../dialogs/PouDialog.py:118
+#: ../editors/ResourceEditor.py:447 ../editors/ResourceEditor.py:482
#: ../editors/DataTypeEditor.py:579 ../editors/CodeFileEditor.py:768
-#: ../controls/VariablePanel.py:749 ../IDEFrame.py:1591
+#: ../controls/VariablePanel.py:761 ../IDEFrame.py:1590
#, python-format
msgid "\"%s\" is not a valid identifier!"
msgstr ""
-#: ../IDEFrame.py:2396
+#: ../IDEFrame.py:2395
#, python-format
msgid "\"%s\" is used by one or more POUs. Do you wish to continue?"
msgstr ""
@@ -154,7 +156,7 @@
#: ../editors/Viewer.py:367 ../editors/TextViewer.py:270
#: ../editors/TextViewer.py:299 ../editors/TextViewer.py:350
#: ../editors/TextViewer.py:373 ../controls/VariablePanel.py:338
-#: ../IDEFrame.py:1611
+#: ../IDEFrame.py:1610
#, python-format
msgid "\"%s\" pou already exists!"
msgstr ""
@@ -266,8 +268,8 @@
msgid "&Add Element"
msgstr ""
-#: ../dialogs/AboutDialog.py:65 ../dialogs/AboutDialog.py:113
-#: ../dialogs/AboutDialog.py:150
+#: ../dialogs/AboutDialog.py:73 ../dialogs/AboutDialog.py:121
+#: ../dialogs/AboutDialog.py:158
msgid "&Close"
msgstr ""
@@ -303,7 +305,7 @@
msgid "&Help"
msgstr ""
-#: ../dialogs/AboutDialog.py:64
+#: ../dialogs/AboutDialog.py:72
msgid "&License"
msgstr ""
@@ -373,15 +375,15 @@
msgid "1s"
msgstr ""
-#: ../dialogs/PouDialog.py:124 ../IDEFrame.py:1614 ../IDEFrame.py:1660
-#: ../IDEFrame.py:1679
+#: ../dialogs/PouDialog.py:124 ../IDEFrame.py:1613 ../IDEFrame.py:1659
+#: ../IDEFrame.py:1678
#, python-format
msgid "A POU has an element named \"%s\". This could cause a conflict. Do you wish to continue?"
msgstr ""
#: ../dialogs/SFCStepNameDialog.py:54 ../dialogs/PouTransitionDialog.py:108
#: ../dialogs/PouNameDialog.py:52 ../dialogs/PouActionDialog.py:100
-#: ../controls/VariablePanel.py:753 ../IDEFrame.py:1628 ../IDEFrame.py:1641
+#: ../controls/VariablePanel.py:765 ../IDEFrame.py:1627 ../IDEFrame.py:1640
#, python-format
msgid "A POU named \"%s\" already exists!"
msgstr ""
@@ -395,8 +397,12 @@
msgid "A location must be selected!"
msgstr ""
-#: ../dialogs/SFCStepNameDialog.py:56 ../controls/VariablePanel.py:755
-#: ../IDEFrame.py:1630 ../IDEFrame.py:1643
+#: ../editors/ResourceEditor.py:451
+msgid "A task with the same name already exists!"
+msgstr ""
+
+#: ../dialogs/SFCStepNameDialog.py:56 ../controls/VariablePanel.py:767
+#: ../IDEFrame.py:1629 ../IDEFrame.py:1642
#, python-format
msgid "A variable with \"%s\" as name already exists in this pou!"
msgstr ""
@@ -406,7 +412,7 @@
msgid "A variable with \"%s\" as name already exists!"
msgstr ""
-#: ../dialogs/AboutDialog.py:40 ../PLCOpenEditor.py:158 ../Beremiz.py:381
+#: ../dialogs/AboutDialog.py:48 ../PLCOpenEditor.py:158 ../Beremiz.py:381
msgid "About"
msgstr ""
@@ -418,7 +424,7 @@
msgid "Action"
msgstr ""
-#: ../editors/Viewer.py:555 ../editors/Viewer.py:2345
+#: ../editors/Viewer.py:555 ../editors/Viewer.py:2356
msgid "Action Block"
msgstr ""
@@ -443,7 +449,7 @@
msgid "Actions:"
msgstr ""
-#: ../editors/Viewer.py:1100
+#: ../editors/Viewer.py:1110
msgid "Active"
msgstr ""
@@ -452,7 +458,7 @@
msgid "Add"
msgstr ""
-#: ../IDEFrame.py:1890 ../IDEFrame.py:1925
+#: ../IDEFrame.py:1889 ../IDEFrame.py:1924
msgid "Add Action"
msgstr ""
@@ -460,11 +466,11 @@
msgid "Add C code accessing located variables synchronously"
msgstr ""
-#: ../IDEFrame.py:1873
+#: ../IDEFrame.py:1872
msgid "Add Configuration"
msgstr ""
-#: ../IDEFrame.py:1853
+#: ../IDEFrame.py:1852
msgid "Add DataType"
msgstr ""
@@ -476,7 +482,7 @@
msgid "Add IP"
msgstr ""
-#: ../IDEFrame.py:1861
+#: ../IDEFrame.py:1860
msgid "Add POU"
msgstr ""
@@ -484,11 +490,11 @@
msgid "Add Python code executed asynchronously"
msgstr ""
-#: ../IDEFrame.py:1901 ../IDEFrame.py:1951
+#: ../IDEFrame.py:1900 ../IDEFrame.py:1950
msgid "Add Resource"
msgstr ""
-#: ../IDEFrame.py:1879 ../IDEFrame.py:1922
+#: ../IDEFrame.py:1878 ../IDEFrame.py:1921
msgid "Add Transition"
msgstr ""
@@ -500,7 +506,7 @@
msgid "Add a new initial step"
msgstr ""
-#: ../editors/Viewer.py:2706 ../editors/SFCViewer.py:770
+#: ../editors/Viewer.py:2717 ../editors/SFCViewer.py:770
msgid "Add a new jump"
msgstr ""
@@ -548,7 +554,7 @@
msgid "Adjust Block Size"
msgstr ""
-#: ../editors/Viewer.py:1637
+#: ../editors/Viewer.py:1648
msgid "Alignment"
msgstr ""
@@ -564,7 +570,7 @@
msgid "All files (*.*)|*.*|CSV files (*.csv)|*.csv"
msgstr ""
-#: ../ProjectController.py:1623
+#: ../ProjectController.py:1644
msgid "Already connected. Please disconnect\n"
msgstr ""
@@ -573,6 +579,10 @@
msgid "An element named \"%s\" already exists in this structure!"
msgstr ""
+#: ../editors/ResourceEditor.py:486
+msgid "An instance with the same name already exists!"
+msgstr ""
+
#: ../dialogs/ConnectionDialog.py:96
msgid "Apply name modification to all continuations with the same name"
msgstr ""
@@ -594,7 +604,7 @@
msgstr ""
#: ../editors/DataTypeEditor.py:54 ../editors/DataTypeEditor.py:635
-#: ../controls/VariablePanel.py:829
+#: ../controls/VariablePanel.py:841
msgid "Array"
msgstr ""
@@ -636,7 +646,7 @@
msgid "Base Type:"
msgstr ""
-#: ../editors/DataTypeEditor.py:625 ../controls/VariablePanel.py:787
+#: ../editors/DataTypeEditor.py:625 ../controls/VariablePanel.py:799
msgid "Base Types"
msgstr ""
@@ -672,7 +682,7 @@
msgid "Bitwise inverting"
msgstr ""
-#: ../editors/Viewer.py:525 ../editors/Viewer.py:2358
+#: ../editors/Viewer.py:525 ../editors/Viewer.py:2369
msgid "Block"
msgstr ""
@@ -688,7 +698,7 @@
msgid "Bottom"
msgstr ""
-#: ../ProjectController.py:1301
+#: ../ProjectController.py:1322
msgid "Broken"
msgstr ""
@@ -701,23 +711,23 @@
msgid "Browse Locations"
msgstr ""
-#: ../ProjectController.py:1769
+#: ../ProjectController.py:1790
msgid "Build"
msgstr ""
-#: ../ProjectController.py:1235
+#: ../ProjectController.py:1256
msgid "Build directory already clean\n"
msgstr ""
-#: ../ProjectController.py:1770
+#: ../ProjectController.py:1791
msgid "Build project into build folder"
msgstr ""
-#: ../ProjectController.py:1018
+#: ../ProjectController.py:1039
msgid "C Build crashed !\n"
msgstr ""
-#: ../ProjectController.py:1015
+#: ../ProjectController.py:1036
msgid "C Build failed.\n"
msgstr ""
@@ -725,7 +735,7 @@
msgid "C code"
msgstr ""
-#: ../ProjectController.py:1093
+#: ../ProjectController.py:1114
msgid "C code generated successfully.\n"
msgstr ""
@@ -742,7 +752,7 @@
msgid "C extension"
msgstr ""
-#: ../dialogs/AboutDialog.py:63
+#: ../dialogs/AboutDialog.py:71
msgid "C&redits"
msgstr ""
@@ -799,7 +809,7 @@
msgid "Cannot get PLC status - connection failed.\n"
msgstr ""
-#: ../ProjectController.py:881
+#: ../ProjectController.py:902
msgid "Cannot open/parse VARIABLES.csv!\n"
msgstr ""
@@ -824,7 +834,7 @@
msgid "Change Name"
msgstr ""
-#: ../IDEFrame.py:1943
+#: ../IDEFrame.py:1942
msgid "Change POU Type To"
msgstr ""
@@ -844,7 +854,7 @@
msgid "Choose a SVG file"
msgstr ""
-#: ../ProjectController.py:451
+#: ../ProjectController.py:501
msgid "Choose a directory to save project"
msgstr ""
@@ -866,11 +876,11 @@
msgid "Choose a working directory "
msgstr ""
-#: ../ProjectController.py:358
+#: ../ProjectController.py:408
msgid "Chosen folder doesn't contain a program. It's not a valid project!"
msgstr ""
-#: ../ProjectController.py:325
+#: ../ProjectController.py:375
msgid "Chosen folder isn't empty. You can't use it for a new project!"
msgstr ""
@@ -886,7 +896,7 @@
msgid "Class:"
msgstr ""
-#: ../ProjectController.py:1773
+#: ../ProjectController.py:1794
msgid "Clean"
msgstr ""
@@ -894,11 +904,11 @@
msgid "Clean log messages"
msgstr ""
-#: ../ProjectController.py:1775
+#: ../ProjectController.py:1796
msgid "Clean project build folder"
msgstr ""
-#: ../ProjectController.py:1232
+#: ../ProjectController.py:1253
msgid "Cleaning the build directory\n"
msgstr ""
@@ -927,7 +937,7 @@
msgid "Close Tab"
msgstr ""
-#: ../editors/Viewer.py:541 ../editors/Viewer.py:2366
+#: ../editors/Viewer.py:541 ../editors/Viewer.py:2377
msgid "Coil"
msgstr ""
@@ -951,7 +961,7 @@
msgid "Comparison"
msgstr ""
-#: ../ProjectController.py:672
+#: ../ProjectController.py:693
msgid "Compiling IEC Program into C code...\n"
msgstr ""
@@ -981,21 +991,21 @@
msgid "Confirm or change variable name"
msgstr ""
-#: ../ProjectController.py:1788
+#: ../ProjectController.py:1809
msgid "Connect"
msgstr ""
-#: ../ProjectController.py:1789
+#: ../ProjectController.py:1810
msgid "Connect to the target PLC"
msgstr ""
-#: ../ProjectController.py:1292
+#: ../ProjectController.py:1313
#, python-format
msgid "Connected to URI: %s"
msgstr ""
#: ../dialogs/SFCTransitionDialog.py:76 ../editors/Viewer.py:527
-#: ../editors/Viewer.py:2359
+#: ../editors/Viewer.py:2370
msgid "Connection"
msgstr ""
@@ -1003,11 +1013,11 @@
msgid "Connection Properties"
msgstr ""
-#: ../ProjectController.py:1647
+#: ../ProjectController.py:1668
msgid "Connection canceled!\n"
msgstr ""
-#: ../ProjectController.py:1672
+#: ../ProjectController.py:1693
#, python-format
msgid "Connection failed to %s!\n"
msgstr ""
@@ -1021,7 +1031,7 @@
msgid "Connection to '%s' failed.\n"
msgstr ""
-#: ../dialogs/ConnectionDialog.py:64 ../editors/Viewer.py:1594
+#: ../dialogs/ConnectionDialog.py:64 ../editors/Viewer.py:1605
msgid "Connector"
msgstr ""
@@ -1037,7 +1047,7 @@
msgid "Constant"
msgstr ""
-#: ../editors/Viewer.py:537 ../editors/Viewer.py:2362
+#: ../editors/Viewer.py:537 ../editors/Viewer.py:2373
msgid "Contact"
msgstr ""
@@ -1045,7 +1055,7 @@
msgid "Content Description (optional):"
msgstr ""
-#: ../dialogs/ConnectionDialog.py:65 ../editors/Viewer.py:1595
+#: ../dialogs/ConnectionDialog.py:65 ../editors/Viewer.py:1606
msgid "Continuation"
msgstr ""
@@ -1070,7 +1080,7 @@
msgid "Copy"
msgstr ""
-#: ../IDEFrame.py:1930
+#: ../IDEFrame.py:1929
msgid "Copy POU"
msgstr ""
@@ -1116,15 +1126,15 @@
msgid "Couldn't paste non-POU object."
msgstr ""
-#: ../ProjectController.py:1589
+#: ../ProjectController.py:1610
msgid "Couldn't start PLC !\n"
msgstr ""
-#: ../ProjectController.py:1597
+#: ../ProjectController.py:1618
msgid "Couldn't stop PLC !\n"
msgstr ""
-#: ../ProjectController.py:1561
+#: ../ProjectController.py:1582
msgid "Couldn't stop debugger.\n"
msgstr ""
@@ -1204,7 +1214,7 @@
msgid "Create a new variable"
msgstr ""
-#: ../dialogs/AboutDialog.py:105
+#: ../dialogs/AboutDialog.py:113
msgid "Credits"
msgstr ""
@@ -1265,7 +1275,7 @@
msgid "Days:"
msgstr ""
-#: ../ProjectController.py:1694
+#: ../ProjectController.py:1715
msgid "Debug does not match PLC - stop/transfert/start to re-enable\n"
msgstr ""
@@ -1273,17 +1283,17 @@
msgid "Debug instance"
msgstr ""
-#: ../editors/Viewer.py:1117 ../editors/Viewer.py:3653
+#: ../editors/Viewer.py:1127 ../editors/Viewer.py:3664
#, python-format
msgid "Debug: %s"
msgstr ""
-#: ../ProjectController.py:1350
+#: ../ProjectController.py:1371
#, python-format
msgid "Debug: Unknown variable '%s'\n"
msgstr ""
-#: ../ProjectController.py:1348
+#: ../ProjectController.py:1369
#, python-format
msgid "Debug: Unsupported type to debug '%s'\n"
msgstr ""
@@ -1292,19 +1302,19 @@
msgid "Debugger"
msgstr ""
-#: ../ProjectController.py:1530
+#: ../ProjectController.py:1551
msgid "Debugger disabled\n"
msgstr ""
-#: ../ProjectController.py:1691
+#: ../ProjectController.py:1712
msgid "Debugger ready\n"
msgstr ""
-#: ../ProjectController.py:1563
+#: ../ProjectController.py:1584
msgid "Debugger stopped.\n"
msgstr ""
-#: ../editors/Viewer.py:572 ../Beremiz.py:1064 ../IDEFrame.py:1959
+#: ../editors/Viewer.py:572 ../Beremiz.py:1064 ../IDEFrame.py:1958
msgid "Delete"
msgstr ""
@@ -1352,19 +1362,19 @@
msgid "Directly"
msgstr ""
-#: ../ProjectController.py:1797
+#: ../ProjectController.py:1818
msgid "Disconnect"
msgstr ""
-#: ../ProjectController.py:1799
+#: ../ProjectController.py:1820
msgid "Disconnect from PLC"
msgstr ""
-#: ../ProjectController.py:1302
+#: ../ProjectController.py:1323
msgid "Disconnected"
msgstr ""
-#: ../editors/Viewer.py:556 ../editors/Viewer.py:2354
+#: ../editors/Viewer.py:556 ../editors/Viewer.py:2365
msgid "Divergence"
msgstr ""
@@ -1425,7 +1435,7 @@
msgid "Edit array type properties"
msgstr ""
-#: ../editors/Viewer.py:2575 ../editors/Viewer.py:3004
+#: ../editors/Viewer.py:2586 ../editors/Viewer.py:3015
msgid "Edit comment"
msgstr ""
@@ -1437,11 +1447,11 @@
msgid "Edit item"
msgstr ""
-#: ../editors/Viewer.py:2963
+#: ../editors/Viewer.py:2974
msgid "Edit jump target"
msgstr ""
-#: ../ProjectController.py:1811
+#: ../ProjectController.py:1832
msgid "Edit raw IEC code added to code generated by PLCGenerator"
msgstr ""
@@ -1457,7 +1467,7 @@
msgid "Editor ToolBar"
msgstr ""
-#: ../ProjectController.py:1195
+#: ../ProjectController.py:1216
msgid "Editor selection"
msgstr ""
@@ -1465,7 +1475,7 @@
msgid "Elements :"
msgstr ""
-#: ../ProjectController.py:1300
+#: ../ProjectController.py:1321
msgid "Empty"
msgstr ""
@@ -1502,35 +1512,36 @@
#: ../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:420 ../PLCOpenEditor.py:430 ../editors/Viewer.py:423
+#: ../PLCOpenEditor.py:420 ../PLCOpenEditor.py:430
+#: ../editors/ResourceEditor.py:436 ../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
#: ../editors/DataTypeEditor.py:584 ../editors/DataTypeEditor.py:594
#: ../editors/DataTypeEditor.py:745 ../editors/DataTypeEditor.py:752
#: ../editors/TextViewer.py:389 ../editors/CodeFileEditor.py:783
-#: ../ProjectController.py:293 ../ProjectController.py:421
-#: ../ProjectController.py:428 ../controls/FolderTree.py:217
+#: ../ProjectController.py:343 ../ProjectController.py:471
+#: ../ProjectController.py:478 ../controls/FolderTree.py:217
#: ../controls/DebugVariablePanel/DebugVariablePanel.py:166
#: ../controls/DebugVariablePanel/DebugVariableTextViewer.py:137
#: ../controls/DebugVariablePanel/DebugVariableGraphicViewer.py:231
-#: ../controls/VariablePanel.py:402 ../controls/VariablePanel.py:772
-#: ../Beremiz.py:1203 ../IDEFrame.py:1003 ../IDEFrame.py:1614
-#: ../IDEFrame.py:1655 ../IDEFrame.py:1660 ../IDEFrame.py:1674
-#: ../IDEFrame.py:1679 ../Beremiz_service.py:211
+#: ../controls/VariablePanel.py:402 ../controls/VariablePanel.py:784
+#: ../Beremiz.py:1203 ../IDEFrame.py:1003 ../IDEFrame.py:1613
+#: ../IDEFrame.py:1654 ../IDEFrame.py:1659 ../IDEFrame.py:1673
+#: ../IDEFrame.py:1678 ../Beremiz_service.py:211
msgid "Error"
msgstr ""
-#: ../ProjectController.py:727
+#: ../ProjectController.py:748
msgid "Error : At least one configuration and one resource must be declared in PLC !\n"
msgstr ""
-#: ../ProjectController.py:719
+#: ../ProjectController.py:740
#, python-format
msgid "Error : IEC to C compiler returned %d\n"
msgstr ""
-#: ../ProjectController.py:621
+#: ../ProjectController.py:671
#, python-format
msgid ""
"Error in ST/IL/SFC code generator :\n"
@@ -1554,7 +1565,7 @@
msgid "Error: No PLC built\n"
msgstr ""
-#: ../ProjectController.py:1666
+#: ../ProjectController.py:1687
#, python-format
msgid "Exception while connecting %s!\n"
msgstr ""
@@ -1599,7 +1610,7 @@
msgid "External"
msgstr ""
-#: ../ProjectController.py:740
+#: ../ProjectController.py:761
msgid "Extracting Located Variables...\n"
msgstr ""
@@ -1608,7 +1619,7 @@
msgid "FBD"
msgstr ""
-#: ../ProjectController.py:1729
+#: ../ProjectController.py:1750
msgid "Failed : Must build before transfer.\n"
msgstr ""
@@ -1616,7 +1627,7 @@
msgid "Falling Edge"
msgstr ""
-#: ../ProjectController.py:1008
+#: ../ProjectController.py:1029
msgid "Fatal : cannot get builder.\n"
msgstr ""
@@ -1665,7 +1676,7 @@
msgid "Force runtime reload\n"
msgstr ""
-#: ../editors/Viewer.py:1553
+#: ../editors/Viewer.py:1564
msgid "Force value"
msgstr ""
@@ -1693,7 +1704,7 @@
msgid "Forward"
msgstr ""
-#: ../dialogs/SearchInProjectDialog.py:36 ../IDEFrame.py:1746
+#: ../dialogs/SearchInProjectDialog.py:36 ../IDEFrame.py:1745
msgid "Function"
msgstr ""
@@ -1701,12 +1712,12 @@
msgid "Function &Block"
msgstr ""
-#: ../dialogs/SearchInProjectDialog.py:37 ../IDEFrame.py:1745
-#: ../IDEFrame.py:1938
+#: ../dialogs/SearchInProjectDialog.py:37 ../IDEFrame.py:1744
+#: ../IDEFrame.py:1937
msgid "Function Block"
msgstr ""
-#: ../controls/VariablePanel.py:825
+#: ../controls/VariablePanel.py:837
msgid "Function Block Types"
msgstr ""
@@ -1731,7 +1742,7 @@
msgid "Generate Program"
msgstr ""
-#: ../ProjectController.py:612
+#: ../ProjectController.py:662
msgid "Generating SoftPLC IEC-61131 ST/IL/SFC code...\n"
msgstr ""
@@ -1795,12 +1806,12 @@
msgid "Import SVG"
msgstr ""
-#: ../dialogs/FBDVariableDialog.py:38 ../editors/Viewer.py:1580
+#: ../dialogs/FBDVariableDialog.py:38 ../editors/Viewer.py:1591
#: ../controls/VariablePanel.py:71
msgid "InOut"
msgstr ""
-#: ../editors/Viewer.py:1100
+#: ../editors/Viewer.py:1110
msgid "Inactive"
msgstr ""
@@ -1847,7 +1858,7 @@
#: ../dialogs/SFCStepDialog.py:70 ../dialogs/FBDVariableDialog.py:37
#: ../dialogs/BrowseLocationsDialog.py:40 ../editors/Viewer.py:289
-#: ../editors/Viewer.py:1578 ../editors/TextViewer.py:307
+#: ../editors/Viewer.py:1589 ../editors/TextViewer.py:307
#: ../controls/LocationCellEditor.py:98 ../controls/VariablePanel.py:71
#: ../controls/VariablePanel.py:291 ../controls/VariablePanel.py:351
msgid "Input"
@@ -1924,7 +1935,7 @@
"You must fill a numeric value."
msgstr ""
-#: ../editors/Viewer.py:557 ../editors/Viewer.py:2343
+#: ../editors/Viewer.py:557 ../editors/Viewer.py:2354
msgid "Jump"
msgstr ""
@@ -1952,7 +1963,7 @@
msgid "Language:"
msgstr ""
-#: ../ProjectController.py:1735
+#: ../ProjectController.py:1756
msgid "Latest build already matches current target. Transfering anyway...\n"
msgstr ""
@@ -1988,7 +1999,7 @@
msgid "Library"
msgstr ""
-#: ../dialogs/AboutDialog.py:143
+#: ../dialogs/AboutDialog.py:151
msgid "License"
msgstr ""
@@ -2008,7 +2019,7 @@
msgid "Local entries"
msgstr ""
-#: ../ProjectController.py:1641
+#: ../ProjectController.py:1662
msgid "Local service discovery failed!\n"
msgstr ""
@@ -2213,7 +2224,7 @@
msgid "No Modifier"
msgstr ""
-#: ../ProjectController.py:1763
+#: ../ProjectController.py:1784
msgid "No PLC to transfer (did build succeed ?)\n"
msgstr ""
@@ -2318,7 +2329,7 @@
msgid "Open Source framework for automation, implemented IEC 61131 IDE with constantly growing set of extensions and flexible PLC runtime."
msgstr ""
-#: ../ProjectController.py:1815
+#: ../ProjectController.py:1836
msgid "Open a file explorer to manage project files"
msgstr ""
@@ -2344,7 +2355,7 @@
#: ../dialogs/SFCStepDialog.py:71 ../dialogs/FBDVariableDialog.py:39
#: ../dialogs/BrowseLocationsDialog.py:41 ../editors/Viewer.py:289
-#: ../editors/Viewer.py:1579 ../editors/TextViewer.py:307
+#: ../editors/Viewer.py:1590 ../editors/TextViewer.py:307
#: ../controls/LocationCellEditor.py:98 ../controls/VariablePanel.py:71
#: ../controls/VariablePanel.py:291 ../controls/VariablePanel.py:351
msgid "Output"
@@ -2366,7 +2377,7 @@
msgid "PLC Log"
msgstr ""
-#: ../ProjectController.py:992
+#: ../ProjectController.py:1013
msgid "PLC code generation failed !\n"
msgstr ""
@@ -2438,7 +2449,7 @@
msgid "Page Size (optional):"
msgstr ""
-#: ../IDEFrame.py:2599
+#: ../IDEFrame.py:2598
#, python-format
msgid "Page: %d"
msgstr ""
@@ -2451,7 +2462,7 @@
msgid "Paste"
msgstr ""
-#: ../IDEFrame.py:1865
+#: ../IDEFrame.py:1864
msgid "Paste POU"
msgstr ""
@@ -2463,7 +2474,7 @@
msgid "Pin number:"
msgstr ""
-#: ../editors/Viewer.py:2706 ../editors/Viewer.py:2963
+#: ../editors/Viewer.py:2717 ../editors/Viewer.py:2974
#: ../editors/SFCViewer.py:770
msgid "Please choose a target"
msgstr ""
@@ -2472,7 +2483,7 @@
msgid "Please enter a block name"
msgstr ""
-#: ../editors/Viewer.py:2576 ../editors/Viewer.py:3005
+#: ../editors/Viewer.py:2587 ../editors/Viewer.py:3016
msgid "Please enter comment text"
msgstr ""
@@ -2498,7 +2509,7 @@
msgid "Port number must be an integer!"
msgstr ""
-#: ../editors/Viewer.py:536 ../editors/Viewer.py:2367
+#: ../editors/Viewer.py:536 ../editors/Viewer.py:2378
msgid "Power Rail"
msgstr ""
@@ -2556,8 +2567,8 @@
msgid "Product Version (required):"
msgstr ""
-#: ../dialogs/SearchInProjectDialog.py:38 ../IDEFrame.py:1744
-#: ../IDEFrame.py:1941
+#: ../dialogs/SearchInProjectDialog.py:38 ../IDEFrame.py:1743
+#: ../IDEFrame.py:1940
msgid "Program"
msgstr ""
@@ -2582,7 +2593,7 @@
msgid "Project '%s':"
msgstr ""
-#: ../ProjectController.py:1814
+#: ../ProjectController.py:1835
msgid "Project Files"
msgstr ""
@@ -2658,7 +2669,7 @@
msgid "Range:"
msgstr ""
-#: ../ProjectController.py:1810
+#: ../ProjectController.py:1831
msgid "Raw IEC code"
msgstr ""
@@ -2687,7 +2698,7 @@
msgid "Regular expressions"
msgstr ""
-#: ../editors/Viewer.py:1556
+#: ../editors/Viewer.py:1567
msgid "Release value"
msgstr ""
@@ -2700,11 +2711,11 @@
msgid "Remove %s node"
msgstr ""
-#: ../IDEFrame.py:2405
+#: ../IDEFrame.py:2404
msgid "Remove Datatype"
msgstr ""
-#: ../IDEFrame.py:2410
+#: ../IDEFrame.py:2409
msgid "Remove Pou"
msgstr ""
@@ -2736,7 +2747,7 @@
msgid "Remove variable"
msgstr ""
-#: ../IDEFrame.py:1945
+#: ../IDEFrame.py:1944
msgid "Rename"
msgstr ""
@@ -2804,15 +2815,15 @@
msgid "Rounding up/down"
msgstr ""
-#: ../ProjectController.py:1778
+#: ../ProjectController.py:1799
msgid "Run"
msgstr ""
-#: ../ProjectController.py:1037
+#: ../ProjectController.py:1058
msgid "Runtime IO extensions C code generation failed !\n"
msgstr ""
-#: ../ProjectController.py:1046
+#: ../ProjectController.py:1067
msgid "Runtime library extensions C code generation failed !\n"
msgstr ""
@@ -2868,7 +2879,7 @@
msgid "Save as"
msgstr ""
-#: ../ProjectController.py:420
+#: ../ProjectController.py:470
msgid "Save path is the same as path of a project! \n"
msgstr ""
@@ -2898,7 +2909,7 @@
msgid "Select a variable class:"
msgstr ""
-#: ../ProjectController.py:1195
+#: ../ProjectController.py:1216
msgid "Select an editor:"
msgstr ""
@@ -2910,7 +2921,7 @@
msgid "Select an object"
msgstr ""
-#: ../ProjectController.py:427
+#: ../ProjectController.py:477
msgid "Selected directory already contains another project. Overwrite? \n"
msgstr ""
@@ -2946,7 +2957,7 @@
msgid "Shift right"
msgstr ""
-#: ../ProjectController.py:1804
+#: ../ProjectController.py:1825
msgid "Show IEC code generated by PLCGenerator"
msgstr ""
@@ -2958,7 +2969,7 @@
msgid "Show Master generated by config_utils"
msgstr ""
-#: ../ProjectController.py:1802
+#: ../ProjectController.py:1823
msgid "Show code"
msgstr ""
@@ -2995,20 +3006,20 @@
msgid "Standard function blocks"
msgstr ""
-#: ../ProjectController.py:1780 ../Beremiz_service.py:261
+#: ../ProjectController.py:1801 ../Beremiz_service.py:261
msgid "Start PLC"
msgstr ""
-#: ../ProjectController.py:984
+#: ../ProjectController.py:1005
#, python-format
msgid "Start build in %s\n"
msgstr ""
-#: ../ProjectController.py:1298
+#: ../ProjectController.py:1319
msgid "Started"
msgstr ""
-#: ../ProjectController.py:1586
+#: ../ProjectController.py:1607
msgid "Starting PLC\n"
msgstr ""
@@ -3016,11 +3027,11 @@
msgid "Status ToolBar"
msgstr ""
-#: ../editors/Viewer.py:553 ../editors/Viewer.py:2342
+#: ../editors/Viewer.py:553 ../editors/Viewer.py:2353
msgid "Step"
msgstr ""
-#: ../ProjectController.py:1783
+#: ../ProjectController.py:1804
msgid "Stop"
msgstr ""
@@ -3028,15 +3039,15 @@
msgid "Stop PLC"
msgstr ""
-#: ../ProjectController.py:1785
+#: ../ProjectController.py:1806
msgid "Stop Running PLC"
msgstr ""
-#: ../ProjectController.py:1299
+#: ../ProjectController.py:1320
msgid "Stopped"
msgstr ""
-#: ../ProjectController.py:1558
+#: ../ProjectController.py:1579
msgid "Stopping debugger...\n"
msgstr ""
@@ -3052,7 +3063,7 @@
msgid "Subtraction"
msgstr ""
-#: ../ProjectController.py:1023
+#: ../ProjectController.py:1044
msgid "Successfully built.\n"
msgstr ""
@@ -3099,7 +3110,7 @@
msgid "There are changes, do you want to save?"
msgstr ""
-#: ../IDEFrame.py:1655 ../IDEFrame.py:1674
+#: ../IDEFrame.py:1654 ../IDEFrame.py:1673
#, python-format
msgid "There is a POU named \"%s\". This could cause a conflict. Do you wish to continue?"
msgstr ""
@@ -3156,23 +3167,23 @@
msgid "Top"
msgstr ""
-#: ../ProjectController.py:1792
+#: ../ProjectController.py:1813
msgid "Transfer"
msgstr ""
-#: ../ProjectController.py:1794
+#: ../ProjectController.py:1815
msgid "Transfer PLC"
msgstr ""
-#: ../ProjectController.py:1758
+#: ../ProjectController.py:1779
msgid "Transfer completed successfully.\n"
msgstr ""
-#: ../ProjectController.py:1760
+#: ../ProjectController.py:1781
msgid "Transfer failed\n"
msgstr ""
-#: ../editors/Viewer.py:554 ../editors/Viewer.py:2344 ../editors/Viewer.py:2371
+#: ../editors/Viewer.py:554 ../editors/Viewer.py:2355 ../editors/Viewer.py:2382
msgid "Transition"
msgstr ""
@@ -3208,7 +3219,7 @@
msgid "Transitions"
msgstr ""
-#: ../dialogs/AboutDialog.py:123
+#: ../dialogs/AboutDialog.py:131
msgid "Translated by"
msgstr ""
@@ -3277,7 +3288,7 @@
msgid "Undo"
msgstr ""
-#: ../ProjectController.py:332
+#: ../ProjectController.py:382
msgid "Unknown"
msgstr ""
@@ -3286,7 +3297,7 @@
msgid "Unknown variable \"%s\" for this POU!"
msgstr ""
-#: ../ProjectController.py:329 ../ProjectController.py:330
+#: ../ProjectController.py:379 ../ProjectController.py:380
msgid "Unnamed"
msgstr ""
@@ -3300,7 +3311,7 @@
msgid "Unrecognized data size \"%s\""
msgstr ""
-#: ../editors/DataTypeEditor.py:632 ../controls/VariablePanel.py:798
+#: ../editors/DataTypeEditor.py:632 ../controls/VariablePanel.py:810
msgid "User Data Types"
msgstr ""
@@ -3321,7 +3332,7 @@
msgstr ""
#: ../dialogs/ActionBlockDialog.py:42 ../editors/Viewer.py:526
-#: ../editors/Viewer.py:2374
+#: ../editors/Viewer.py:2385
msgid "Variable"
msgstr ""
@@ -3387,7 +3398,7 @@
msgid "Warning"
msgstr ""
-#: ../ProjectController.py:616
+#: ../ProjectController.py:666
msgid "Warnings in ST/IL/SFC code generator :\n"
msgstr ""
@@ -3403,7 +3414,7 @@
msgid "Wrap search"
msgstr ""
-#: ../dialogs/AboutDialog.py:122
+#: ../dialogs/AboutDialog.py:130
msgid "Written by"
msgstr ""
@@ -3423,7 +3434,7 @@
"Open wxGlade anyway ?"
msgstr ""
-#: ../ProjectController.py:292
+#: ../ProjectController.py:342
msgid ""
"You must have permission to work on the project\n"
"Work on a project copy ?"
Binary file locale/ru_RU/LC_MESSAGES/Beremiz.mo has changed