beremiz

Parents 439fc5d13c41
Children 49a6738b7c63
Update list of files with strings for i18n and templates for translations
  • +12 -0
    i18n/app.fil
  • +1034 -912
    i18n/messages.po
  • +1043 -918
    i18n/messages.pot
  • --- a/i18n/app.fil Fri Jun 15 16:30:06 2018 +0300
    +++ b/i18n/app.fil Fri Jun 15 16:41:55 2018 +0300
    @@ -36,8 +36,10 @@
    ../graphics/SFC_Objects.py
    ../graphics/GraphicCommons.py
    ../connectors/PYRO/__init__.py
    +../connectors/PYRO/dialog.py
    ../connectors/__init__.py
    ../connectors/WAMP/__init__.py
    +../connectors/WAMP/dialog.py
    ../targets/Generic/XSD
    ../targets/XSD_toolchain_makefile
    ../targets/Xenomai/__init__.py
    @@ -53,7 +55,9 @@
    ../py_ext/PythonEditor.py
    ../py_ext/PythonFileCTNMixin.py
    ../wxglade_hmi/wxglade_hmi.py
    +../modbus/modbus.py
    ../runtime/NevowServer.py
    +../runtime/WampClient.py
    ../runtime/PLCObject.py
    ../runtime/ServicePublisher.py
    ../ConfigTreeNode.py
    @@ -77,6 +81,7 @@
    ../controls/CustomTable.py
    ../controls/EnhancedStatusBar.py
    ../controls/LibraryPanel.py
    +../controls/UriLocationEditor.py
    ../controls/CustomToolTip.py
    ../controls/LogViewer.py
    ../controls/FolderTree.py
    @@ -111,8 +116,15 @@
    ../svgui/svgui.py
    ../svgui/svgui_server.py
    ../svgui/svguilib.py
    +../plcopen/InstancesPathCollector.py
    +../plcopen/types_enums.py
    +../plcopen/InstanceTagnameCollector.py
    +../plcopen/BlockInstanceCollector.py
    ../plcopen/iec_std.csv
    ../plcopen/structures.py
    +../plcopen/XSLTModelQuery.py
    +../plcopen/POUVariablesCollector.py
    +../plcopen/VariableInfoCollector.py
    ../plcopen/plcopen.py
    ../plcopen/definitions.py
    ../IDEFrame.py
    --- a/i18n/messages.po Fri Jun 15 16:30:06 2018 +0300
    +++ b/i18n/messages.po Fri Jun 15 16:41:55 2018 +0300
    @@ -1,14 +1,14 @@
    # English translations for Beremiz package.
    -# Copyright (C) 2017 THE Beremiz'S COPYRIGHT HOLDER
    +# Copyright (C) 2018 THE Beremiz'S COPYRIGHT HOLDER
    # This file is distributed under the same license as the Beremiz package.
    -# Automatically generated, 2017.
    +# Automatically generated, 2018.
    #
    msgid ""
    msgstr ""
    "Project-Id-Version: Beremiz\n"
    "Report-Msgid-Bugs-To: \n"
    -"POT-Creation-Date: 2017-07-05 13:02+0300\n"
    -"PO-Revision-Date: 2017-07-05 13:02+0300\n"
    +"POT-Creation-Date: 2018-06-15 16:39+0300\n"
    +"PO-Revision-Date: 2018-06-15 16:39+0300\n"
    "Last-Translator: Automatically generated\n"
    "Language-Team: none\n"
    "Language: en_US\n"
    @@ -17,7 +17,7 @@
    "Content-Transfer-Encoding: 8bit\n"
    "Plural-Forms: nplurals=2; plural=(n != 1);\n"
    -#: ../BeremizIDE.py:1095 ../PLCOpenEditor.py:418
    +#: ../util/ExceptionHandler.py:58
    #, python-format
    msgid ""
    "\n"
    @@ -42,151 +42,156 @@
    "\n"
    "Traceback:\n"
    -#: ../controls/VariablePanel.py:72
    +#: ../controls/VariablePanel.py:90
    msgid " External"
    msgstr " External"
    -#: ../controls/VariablePanel.py:71
    +#: ../controls/VariablePanel.py:89
    msgid " InOut"
    msgstr " InOut"
    -#: ../controls/VariablePanel.py:71
    +#: ../controls/VariablePanel.py:89
    msgid " Input"
    msgstr " Input"
    -#: ../controls/VariablePanel.py:72
    +#: ../controls/VariablePanel.py:90
    msgid " Local"
    msgstr " Local"
    -#: ../controls/VariablePanel.py:71
    +#: ../controls/VariablePanel.py:89
    msgid " Output"
    msgstr " Output"
    -#: ../controls/VariablePanel.py:73
    +#: ../controls/VariablePanel.py:91
    msgid " Temp"
    msgstr " Temp"
    -#: ../dialogs/PouTransitionDialog.py:94 ../dialogs/ProjectDialog.py:69
    -#: ../dialogs/PouActionDialog.py:92 ../dialogs/PouDialog.py:114
    +#: ../dialogs/PouTransitionDialog.py:101 ../dialogs/ProjectDialog.py:74
    +#: ../dialogs/PouActionDialog.py:99 ../dialogs/PouDialog.py:122
    #, python-format
    msgid " and %s"
    msgstr " and %s"
    -#: ../ProjectController.py:1151
    +#: ../ProjectController.py:1182
    msgid " generation failed !\n"
    msgstr " generation failed !\n"
    -#: ../plcopen/plcopen.py:886
    +#: ../plcopen/plcopen.py:1029
    #, python-format
    msgid "\"%s\" Data Type doesn't exist !!!"
    msgstr "\"%s\" Data Type doesn't exist !!!"
    -#: ../plcopen/plcopen.py:904
    +#: ../plcopen/plcopen.py:1047
    #, python-format
    msgid "\"%s\" POU already exists !!!"
    msgstr "\"%s\" POU already exists !!!"
    -#: ../plcopen/plcopen.py:925
    +#: ../plcopen/plcopen.py:1068
    #, python-format
    msgid "\"%s\" POU doesn't exist !!!"
    msgstr "\"%s\" POU doesn't exist !!!"
    -#: ../editors/Viewer.py:247
    +#: ../editors/Viewer.py:288
    #, python-format
    msgid "\"%s\" can't use itself!"
    msgstr "\"%s\" can't use itself!"
    -#: ../IDEFrame.py:1655 ../IDEFrame.py:1674
    +#: ../IDEFrame.py:1688 ../IDEFrame.py:1707
    #, python-format
    msgid "\"%s\" config already exists!"
    msgstr "\"%s\" config already exists!"
    -#: ../plcopen/plcopen.py:472
    +#: ../plcopen/plcopen.py:531
    #, python-format
    msgid "\"%s\" configuration already exists !!!"
    msgstr "\"%s\" configuration already exists !!!"
    -#: ../IDEFrame.py:1605
    +#: ../plcopen/plcopen.py:540
    +#, python-format
    +msgid "\"%s\" configuration doesn't exist !!!"
    +msgstr "\"%s\" configuration doesn't exist !!!"
    +
    +#: ../IDEFrame.py:1638
    #, python-format
    msgid "\"%s\" data type already exists!"
    msgstr "\"%s\" data type already exists!"
    -#: ../dialogs/PouTransitionDialog.py:105 ../dialogs/BlockPreviewDialog.py:220
    -#: ../dialogs/PouActionDialog.py:103 ../editors/Viewer.py:263
    -#: ../editors/Viewer.py:331 ../editors/Viewer.py:355 ../editors/Viewer.py:375
    -#: ../editors/TextViewer.py:272 ../editors/TextViewer.py:301
    -#: ../controls/VariablePanel.py:396
    +#: ../dialogs/PouTransitionDialog.py:112 ../dialogs/BlockPreviewDialog.py:220
    +#: ../dialogs/PouActionDialog.py:110 ../editors/Viewer.py:304
    +#: ../editors/Viewer.py:374 ../editors/Viewer.py:398 ../editors/Viewer.py:418
    +#: ../editors/TextViewer.py:270 ../editors/TextViewer.py:299
    +#: ../controls/VariablePanel.py:425
    #, python-format
    msgid "\"%s\" element for this pou already exists!"
    msgstr "\"%s\" element for this pou already exists!"
    -#: ../BeremizIDE.py:897
    +#: ../BeremizIDE.py:928
    #, python-format
    msgid "\"%s\" folder is not a valid Beremiz project\n"
    msgstr "\"%s\" folder is not a valid Beremiz project\n"
    -#: ../dialogs/SFCStepNameDialog.py:52 ../dialogs/PouTransitionDialog.py:101
    -#: ../dialogs/BlockPreviewDialog.py:208 ../dialogs/PouNameDialog.py:50
    -#: ../dialogs/PouActionDialog.py:99 ../dialogs/PouDialog.py:121
    -#: ../editors/ResourceEditor.py:449 ../editors/ResourceEditor.py:484
    -#: ../editors/DataTypeEditor.py:555 ../editors/DataTypeEditor.py:587
    -#: ../editors/CodeFileEditor.py:776 ../controls/VariablePanel.py:773
    -#: ../IDEFrame.py:1596
    +#: ../dialogs/SFCStepNameDialog.py:56 ../dialogs/PouTransitionDialog.py:108
    +#: ../dialogs/BlockPreviewDialog.py:209 ../dialogs/PouNameDialog.py:54
    +#: ../dialogs/PouActionDialog.py:106 ../dialogs/PouDialog.py:129
    +#: ../editors/ResourceEditor.py:483 ../editors/ResourceEditor.py:518
    +#: ../editors/DataTypeEditor.py:571 ../editors/DataTypeEditor.py:603
    +#: ../editors/CodeFileEditor.py:774 ../controls/VariablePanel.py:787
    +#: ../IDEFrame.py:1629
    #, python-format
    msgid "\"%s\" is a keyword. It can't be used!"
    msgstr "\"%s\" is a keyword. It can't be used!"
    -#: ../plcopen/plcopen.py:2417
    +#: ../plcopen/plcopen.py:2836
    #, python-format
    msgid "\"%s\" is an invalid value!"
    msgstr "\"%s\" is an invalid value!"
    -#: ../PLCOpenEditor.py:349 ../PLCOpenEditor.py:391
    +#: ../PLCOpenEditor.py:323 ../PLCOpenEditor.py:365
    #, python-format
    msgid "\"%s\" is not a valid folder!"
    msgstr "\"%s\" is not a valid folder!"
    -#: ../dialogs/SFCStepNameDialog.py:50 ../dialogs/PouTransitionDialog.py:99
    -#: ../dialogs/BlockPreviewDialog.py:204 ../dialogs/PouNameDialog.py:48
    -#: ../dialogs/PouActionDialog.py:97 ../dialogs/PouDialog.py:119
    -#: ../editors/ResourceEditor.py:447 ../editors/ResourceEditor.py:482
    -#: ../editors/DataTypeEditor.py:585 ../editors/CodeFileEditor.py:774
    -#: ../controls/VariablePanel.py:771 ../IDEFrame.py:1594
    +#: ../dialogs/SFCStepNameDialog.py:54 ../dialogs/PouTransitionDialog.py:106
    +#: ../dialogs/BlockPreviewDialog.py:205 ../dialogs/PouNameDialog.py:52
    +#: ../dialogs/PouActionDialog.py:104 ../dialogs/PouDialog.py:127
    +#: ../editors/ResourceEditor.py:481 ../editors/ResourceEditor.py:516
    +#: ../editors/DataTypeEditor.py:601 ../editors/CodeFileEditor.py:772
    +#: ../controls/VariablePanel.py:785 ../IDEFrame.py:1627
    #, python-format
    msgid "\"%s\" is not a valid identifier!"
    msgstr "\"%s\" is not a valid identifier!"
    -#: ../IDEFrame.py:2410
    +#: ../IDEFrame.py:2436
    #, python-format
    msgid "\"%s\" is used by one or more POUs. Do you wish to continue?"
    msgstr "\"%s\" is used by one or more POUs. Do you wish to continue?"
    -#: ../dialogs/BlockPreviewDialog.py:212 ../dialogs/PouDialog.py:123
    -#: ../editors/Viewer.py:261 ../editors/Viewer.py:316 ../editors/Viewer.py:346
    -#: ../editors/Viewer.py:368 ../editors/TextViewer.py:270
    -#: ../editors/TextViewer.py:299 ../editors/TextViewer.py:350
    -#: ../editors/TextViewer.py:373 ../controls/VariablePanel.py:338
    -#: ../IDEFrame.py:1614
    +#: ../dialogs/BlockPreviewDialog.py:213 ../dialogs/PouDialog.py:131
    +#: ../editors/Viewer.py:302 ../editors/Viewer.py:359 ../editors/Viewer.py:389
    +#: ../editors/Viewer.py:411 ../editors/TextViewer.py:268
    +#: ../editors/TextViewer.py:297 ../editors/TextViewer.py:351
    +#: ../editors/TextViewer.py:374 ../controls/VariablePanel.py:364
    +#: ../IDEFrame.py:1647
    #, python-format
    msgid "\"%s\" pou already exists!"
    msgstr "\"%s\" pou already exists!"
    -#: ../dialogs/SFCStepNameDialog.py:58
    +#: ../dialogs/SFCStepNameDialog.py:62
    #, python-format
    msgid "\"%s\" step already exists!"
    msgstr "\"%s\" step already exists!"
    -#: ../editors/DataTypeEditor.py:550
    +#: ../editors/DataTypeEditor.py:566
    #, python-format
    msgid "\"%s\" value already defined!"
    msgstr "\"%s\" value already defined!"
    -#: ../dialogs/ArrayTypeDialog.py:97 ../editors/DataTypeEditor.py:743
    +#: ../dialogs/ArrayTypeDialog.py:105 ../editors/DataTypeEditor.py:759
    #, python-format
    msgid "\"%s\" value isn't a valid array dimension!"
    msgstr "\"%s\" value isn't a valid array dimension!"
    -#: ../dialogs/ArrayTypeDialog.py:103 ../editors/DataTypeEditor.py:750
    +#: ../dialogs/ArrayTypeDialog.py:109 ../editors/DataTypeEditor.py:766
    #, python-format
    msgid ""
    "\"%s\" value isn't a valid array dimension!\n"
    @@ -195,207 +200,203 @@
    "\"%s\" value isn't a valid array dimension!\n"
    "Right value must be greater than left value."
    -#: ../PLCGenerator.py:1101
    +#: ../PLCGenerator.py:1133
    #, python-brace-format
    msgid "\"{a1}\" function cancelled in \"{a2}\" POU: No input connected"
    msgstr "\"{a1}\" function cancelled in \"{a2}\" POU: No input connected"
    -#: ../editors/Viewer.py:251
    +#: ../editors/Viewer.py:292
    #, python-brace-format
    msgid "\"{a1}\" is already used by \"{a2}\"!"
    msgstr "\"{a1}\" is already used by \"{a2}\"!"
    -#: ../plcopen/plcopen.py:496
    +#: ../plcopen/plcopen.py:557
    #, python-brace-format
    msgid "\"{a1}\" resource already exists in \"{a2}\" configuration !!!"
    msgstr "\"{a1}\" resource already exists in \"{a2}\" configuration !!!"
    -#: ../plcopen/plcopen.py:514
    +#: ../plcopen/plcopen.py:577
    #, python-brace-format
    msgid "\"{a1}\" resource doesn't exist in \"{a2}\" configuration !!!"
    msgstr "\"{a1}\" resource doesn't exist in \"{a2}\" configuration !!!"
    -#: ../controls/DebugVariablePanel/DebugVariablePanel.py:578
    +#: ../controls/DebugVariablePanel/DebugVariablePanel.py:580
    #, python-format
    msgid "%03gms"
    msgstr "%03gms"
    -#: ../controls/DebugVariablePanel/DebugVariablePanel.py:569
    +#: ../controls/DebugVariablePanel/DebugVariablePanel.py:571
    #, python-format
    msgid "%dd"
    msgstr "%dd"
    -#: ../controls/DebugVariablePanel/DebugVariablePanel.py:56
    -#: ../controls/DebugVariablePanel/DebugVariablePanel.py:570
    +#: ../controls/DebugVariablePanel/DebugVariablePanel.py:61
    +#: ../controls/DebugVariablePanel/DebugVariablePanel.py:572
    #, python-format
    msgid "%dh"
    msgstr "%dh"
    -#: ../controls/DebugVariablePanel/DebugVariablePanel.py:55
    -#: ../controls/DebugVariablePanel/DebugVariablePanel.py:571
    +#: ../controls/DebugVariablePanel/DebugVariablePanel.py:60
    +#: ../controls/DebugVariablePanel/DebugVariablePanel.py:573
    #, python-format
    msgid "%dm"
    msgstr "%dm"
    -#: ../controls/DebugVariablePanel/DebugVariablePanel.py:53
    +#: ../controls/DebugVariablePanel/DebugVariablePanel.py:58
    #, python-format
    msgid "%dms"
    msgstr "%dms"
    -#: ../controls/DebugVariablePanel/DebugVariablePanel.py:54
    -#: ../controls/DebugVariablePanel/DebugVariablePanel.py:572
    +#: ../controls/DebugVariablePanel/DebugVariablePanel.py:59
    +#: ../controls/DebugVariablePanel/DebugVariablePanel.py:574
    #, python-format
    msgid "%ds"
    msgstr "%ds"
    -#: ../PLCControler.py:1533
    +#: ../PLCControler.py:1114
    #, python-format
    msgid "%s Data Types"
    msgstr "%s Data Types"
    -#: ../PLCControler.py:1516
    +#: ../PLCControler.py:1097
    #, python-format
    msgid "%s POUs"
    msgstr "%s POUs"
    -#: ../canfestival/SlaveEditor.py:69 ../canfestival/NetworkEditor.py:90
    +#: ../canfestival/SlaveEditor.py:73 ../canfestival/NetworkEditor.py:97
    #, python-format
    msgid "%s Profile"
    msgstr "%s Profile"
    -#: ../plcopen/plcopen.py:1650 ../plcopen/plcopen.py:1657
    -#: ../plcopen/plcopen.py:1669 ../plcopen/plcopen.py:1677
    -#: ../plcopen/plcopen.py:1687
    +#: ../plcopen/plcopen.py:1901 ../plcopen/plcopen.py:1908
    +#: ../plcopen/plcopen.py:1921 ../plcopen/plcopen.py:1929
    +#: ../plcopen/plcopen.py:1939 ../plcopen/plcopen.py:1950
    #, python-format
    msgid "%s body don't have instances!"
    msgstr "%s body don't have instances!"
    -#: ../plcopen/plcopen.py:1705 ../plcopen/plcopen.py:1712
    -#: ../plcopen/plcopen.py:1719
    +#: ../plcopen/plcopen.py:1957 ../plcopen/plcopen.py:1964
    +#: ../plcopen/plcopen.py:1971
    #, python-format
    msgid "%s body don't have text!"
    msgstr "%s body don't have text!"
    -#: ../IDEFrame.py:386
    +#: ../IDEFrame.py:388
    msgid "&Add Element"
    msgstr "&Add Element"
    -#: ../dialogs/AboutDialog.py:73 ../dialogs/AboutDialog.py:121
    -#: ../dialogs/AboutDialog.py:158
    +#: ../dialogs/AboutDialog.py:71 ../dialogs/AboutDialog.py:117
    +#: ../dialogs/AboutDialog.py:152
    msgid "&Close"
    msgstr "&Close"
    -#: ../IDEFrame.py:356
    +#: ../IDEFrame.py:361
    msgid "&Configuration"
    msgstr "&Configuration"
    -#: ../IDEFrame.py:345
    +#: ../IDEFrame.py:350
    msgid "&Data Type"
    msgstr "&Data Type"
    -#: ../IDEFrame.py:390
    +#: ../IDEFrame.py:392
    msgid "&Delete"
    msgstr "&Delete"
    -#: ../IDEFrame.py:337
    +#: ../IDEFrame.py:342
    msgid "&Display"
    msgstr "&Display"
    -#: ../IDEFrame.py:336
    +#: ../IDEFrame.py:341
    msgid "&Edit"
    msgstr "&Edit"
    -#: ../IDEFrame.py:335
    +#: ../IDEFrame.py:340
    msgid "&File"
    msgstr "&File"
    -#: ../IDEFrame.py:347
    +#: ../IDEFrame.py:352
    msgid "&Function"
    msgstr "&Function"
    -#: ../IDEFrame.py:338
    +#: ../IDEFrame.py:343
    msgid "&Help"
    msgstr "&Help"
    -#: ../dialogs/AboutDialog.py:72
    +#: ../dialogs/AboutDialog.py:70
    msgid "&License"
    msgstr "&License"
    -#: ../IDEFrame.py:351
    +#: ../IDEFrame.py:356
    msgid "&Program"
    msgstr "&Program"
    -#: ../PLCOpenEditor.py:127
    +#: ../PLCOpenEditor.py:98
    msgid "&Properties"
    msgstr "&Properties"
    -#: ../BeremizIDE.py:219
    +#: ../BeremizIDE.py:244
    msgid "&Recent Projects"
    msgstr "&Recent Projects"
    -#: ../IDEFrame.py:353
    +#: ../IDEFrame.py:358
    msgid "&Resource"
    msgstr "&Resource"
    -#: ../controls/SearchResultPanel.py:239
    +#: ../controls/SearchResultPanel.py:247
    #, python-brace-format
    msgid "'{a1}' - {a2} match in project"
    msgstr "'{a1}' - {a2} match in project"
    -#: ../controls/SearchResultPanel.py:241
    +#: ../controls/SearchResultPanel.py:249
    #, python-brace-format
    msgid "'{a1}' - {a2} matches in project"
    msgstr "'{a1}' - {a2} matches in project"
    -#: ../connectors/PYRO/__init__.py:90
    +#: ../connectors/PYRO/__init__.py:98
    #, python-brace-format
    msgid "'{a1}' is located at {a2}\n"
    msgstr "'{a1}' is located at {a2}\n"
    -#: ../controls/SearchResultPanel.py:291
    +#: ../controls/SearchResultPanel.py:298
    #, python-format
    msgid "(%d matches)"
    msgstr "(%d matches)"
    -#: ../PLCOpenEditor.py:406 ../PLCOpenEditor.py:408 ../PLCOpenEditor.py:409
    -msgid ", "
    -msgstr ", "
    -
    -#: ../dialogs/PouTransitionDialog.py:96 ../dialogs/PouActionDialog.py:94
    -#: ../dialogs/PouDialog.py:116
    +#: ../dialogs/PouTransitionDialog.py:103 ../dialogs/PouActionDialog.py:101
    +#: ../dialogs/PouDialog.py:124
    #, python-format
    msgid ", %s"
    msgstr ", %s"
    -#: ../PLCOpenEditor.py:404
    -msgid ". "
    -msgstr ". "
    -
    -#: ../controls/LogViewer.py:279
    +#: ../controls/UriLocationEditor.py:49
    +msgid "- Select URI type -"
    +msgstr "- Select URI type -"
    +
    +#: ../controls/LogViewer.py:287
    msgid "1d"
    msgstr "1d"
    -#: ../controls/LogViewer.py:280
    +#: ../controls/LogViewer.py:288
    msgid "1h"
    msgstr "1h"
    -#: ../controls/LogViewer.py:281
    +#: ../controls/LogViewer.py:289
    msgid "1m"
    msgstr "1m"
    -#: ../controls/LogViewer.py:282
    +#: ../controls/LogViewer.py:290
    msgid "1s"
    msgstr "1s"
    -#: ../dialogs/PouDialog.py:125 ../IDEFrame.py:1617 ../IDEFrame.py:1663
    -#: ../IDEFrame.py:1682
    +#: ../dialogs/PouDialog.py:133 ../IDEFrame.py:1650 ../IDEFrame.py:1696
    +#: ../IDEFrame.py:1715
    #, python-format
    msgid "A POU has an element named \"%s\". This could cause a conflict. Do you wish to continue?"
    msgstr "A POU has an element named \"%s\". This could cause a conflict. Do you wish to continue?"
    -#: ../dialogs/SFCStepNameDialog.py:54 ../dialogs/PouTransitionDialog.py:103
    -#: ../dialogs/PouNameDialog.py:52 ../dialogs/PouActionDialog.py:101
    -#: ../controls/VariablePanel.py:775 ../IDEFrame.py:1631 ../IDEFrame.py:1644
    +#: ../dialogs/SFCStepNameDialog.py:58 ../dialogs/PouTransitionDialog.py:110
    +#: ../dialogs/PouNameDialog.py:56 ../dialogs/PouActionDialog.py:108
    +#: ../controls/VariablePanel.py:789 ../IDEFrame.py:1664 ../IDEFrame.py:1677
    #, python-format
    msgid "A POU named \"%s\" already exists!"
    msgstr "A POU named \"%s\" already exists!"
    @@ -405,26 +406,26 @@
    msgid "A child named \"{a1}\" already exists -> \"{a2}\"\n"
    msgstr "A child named \"{a1}\" already exists -> \"{a2}\"\n"
    -#: ../dialogs/BrowseLocationsDialog.py:218
    +#: ../dialogs/BrowseLocationsDialog.py:229
    msgid "A location must be selected!"
    msgstr "A location must be selected!"
    -#: ../editors/ResourceEditor.py:451
    +#: ../editors/ResourceEditor.py:485
    msgid "A task with the same name already exists!"
    msgstr "A task with the same name already exists!"
    -#: ../dialogs/SFCStepNameDialog.py:56 ../controls/VariablePanel.py:777
    -#: ../IDEFrame.py:1633 ../IDEFrame.py:1646
    +#: ../dialogs/SFCStepNameDialog.py:60 ../controls/VariablePanel.py:791
    +#: ../IDEFrame.py:1666 ../IDEFrame.py:1679
    #, python-format
    msgid "A variable with \"%s\" as name already exists in this pou!"
    msgstr "A variable with \"%s\" as name already exists in this pou!"
    -#: ../editors/CodeFileEditor.py:780
    +#: ../editors/CodeFileEditor.py:778
    #, python-format
    msgid "A variable with \"%s\" as name already exists!"
    msgstr "A variable with \"%s\" as name already exists!"
    -#: ../BeremizIDE.py:283 ../dialogs/AboutDialog.py:48 ../PLCOpenEditor.py:168
    +#: ../BeremizIDE.py:311 ../dialogs/AboutDialog.py:46 ../PLCOpenEditor.py:142
    msgid "About"
    msgstr "About"
    @@ -432,125 +433,125 @@
    msgid "Absolute number"
    msgstr "Absolute number"
    -#: ../dialogs/SFCStepDialog.py:73 ../dialogs/ActionBlockDialog.py:43
    +#: ../dialogs/SFCStepDialog.py:75 ../dialogs/ActionBlockDialog.py:47
    msgid "Action"
    msgstr "Action"
    -#: ../editors/Viewer.py:614 ../editors/Viewer.py:2394
    +#: ../editors/Viewer.py:653 ../editors/Viewer.py:2427
    msgid "Action Block"
    msgstr "Action Block"
    -#: ../dialogs/PouActionDialog.py:82
    +#: ../dialogs/PouActionDialog.py:89
    msgid "Action Name"
    msgstr "Action Name"
    -#: ../dialogs/PouActionDialog.py:49
    +#: ../dialogs/PouActionDialog.py:56
    msgid "Action Name:"
    msgstr "Action Name:"
    -#: ../plcopen/plcopen.py:1364
    +#: ../plcopen/plcopen.py:1567
    #, python-format
    msgid "Action with name %s doesn't exist!"
    msgstr "Action with name %s doesn't exist!"
    -#: ../PLCControler.py:98
    +#: ../plcopen/types_enums.py:76
    msgid "Actions"
    msgstr "Actions"
    -#: ../dialogs/ActionBlockDialog.py:133
    +#: ../dialogs/ActionBlockDialog.py:139
    msgid "Actions:"
    msgstr "Actions:"
    -#: ../editors/Viewer.py:431
    +#: ../editors/Viewer.py:473
    msgid "Active"
    msgstr "Active"
    -#: ../canfestival/SlaveEditor.py:80 ../canfestival/NetworkEditor.py:101
    -#: ../BeremizIDE.py:965 ../editors/Viewer.py:647
    +#: ../canfestival/SlaveEditor.py:84 ../canfestival/NetworkEditor.py:108
    +#: ../BeremizIDE.py:1001 ../editors/Viewer.py:686
    msgid "Add"
    msgstr "Add"
    -#: ../IDEFrame.py:1893 ../IDEFrame.py:1928
    +#: ../IDEFrame.py:1924 ../IDEFrame.py:1959
    msgid "Add Action"
    msgstr "Add Action"
    -#: ../features.py:32
    +#: ../features.py:33
    msgid "Add C code accessing located variables synchronously"
    msgstr "Add C code accessing located variables synchronously"
    -#: ../IDEFrame.py:1876
    +#: ../IDEFrame.py:1907
    msgid "Add Configuration"
    msgstr "Add Configuration"
    -#: ../IDEFrame.py:1856
    +#: ../IDEFrame.py:1887
    msgid "Add DataType"
    msgstr "Add DataType"
    -#: ../editors/Viewer.py:572
    +#: ../editors/Viewer.py:609
    msgid "Add Divergence Branch"
    msgstr "Add Divergence Branch"
    -#: ../dialogs/DiscoveryDialog.py:117
    +#: ../dialogs/DiscoveryDialog.py:121
    msgid "Add IP"
    msgstr "Add IP"
    -#: ../IDEFrame.py:1864
    +#: ../IDEFrame.py:1895
    msgid "Add POU"
    msgstr "Add POU"
    -#: ../features.py:33
    +#: ../features.py:34
    msgid "Add Python code executed asynchronously"
    msgstr "Add Python code executed asynchronously"
    -#: ../IDEFrame.py:1904 ../IDEFrame.py:1954
    +#: ../IDEFrame.py:1935 ../IDEFrame.py:1985
    msgid "Add Resource"
    msgstr "Add Resource"
    -#: ../IDEFrame.py:1882 ../IDEFrame.py:1925
    +#: ../IDEFrame.py:1913 ../IDEFrame.py:1956
    msgid "Add Transition"
    msgstr "Add Transition"
    -#: ../editors/Viewer.py:559
    +#: ../editors/Viewer.py:596
    msgid "Add Wire Segment"
    msgstr "Add Wire Segment"
    -#: ../editors/SFCViewer.py:433
    +#: ../editors/SFCViewer.py:447
    msgid "Add a new initial step"
    msgstr "Add a new initial step"
    -#: ../editors/Viewer.py:2757 ../editors/SFCViewer.py:770
    +#: ../editors/Viewer.py:2791 ../editors/SFCViewer.py:784
    msgid "Add a new jump"
    msgstr "Add a new jump"
    -#: ../editors/SFCViewer.py:455
    +#: ../editors/SFCViewer.py:469
    msgid "Add a new step"
    msgstr "Add a new step"
    -#: ../features.py:34
    +#: ../features.py:35
    msgid "Add a simple WxGlade based GUI."
    msgstr "Add a simple WxGlade based GUI."
    -#: ../dialogs/ActionBlockDialog.py:137
    +#: ../dialogs/ActionBlockDialog.py:143
    msgid "Add action"
    msgstr "Add action"
    -#: ../editors/DataTypeEditor.py:352
    +#: ../editors/DataTypeEditor.py:364
    msgid "Add element"
    msgstr "Add element"
    -#: ../editors/ResourceEditor.py:268
    +#: ../editors/ResourceEditor.py:283
    msgid "Add instance"
    msgstr "Add instance"
    -#: ../canfestival/NetworkEditor.py:103
    +#: ../canfestival/NetworkEditor.py:110
    msgid "Add slave"
    msgstr "Add slave"
    -#: ../editors/ResourceEditor.py:239
    +#: ../editors/ResourceEditor.py:252
    msgid "Add task"
    msgstr "Add task"
    -#: ../editors/CodeFileEditor.py:658 ../controls/VariablePanel.py:450
    +#: ../editors/CodeFileEditor.py:654 ../controls/VariablePanel.py:481
    msgid "Add variable"
    msgstr "Add variable"
    @@ -558,44 +559,44 @@
    msgid "Addition"
    msgstr "Addition"
    -#: ../plcopen/definitions.py:49
    +#: ../plcopen/definitions.py:51
    msgid "Additional function blocks"
    msgstr "Additional function blocks"
    -#: ../editors/Viewer.py:630
    +#: ../editors/Viewer.py:669
    msgid "Adjust Block Size"
    msgstr "Adjust Block Size"
    -#: ../editors/Viewer.py:1686
    +#: ../editors/Viewer.py:1720
    msgid "Alignment"
    msgstr "Alignment"
    -#: ../dialogs/BrowseLocationsDialog.py:40
    -#: ../dialogs/BrowseLocationsDialog.py:48
    -#: ../dialogs/BrowseLocationsDialog.py:141
    -#: ../dialogs/BrowseLocationsDialog.py:144 ../controls/LogViewer.py:298
    -#: ../controls/VariablePanel.py:70
    +#: ../dialogs/BrowseLocationsDialog.py:42
    +#: ../dialogs/BrowseLocationsDialog.py:53
    +#: ../dialogs/BrowseLocationsDialog.py:152
    +#: ../dialogs/BrowseLocationsDialog.py:155 ../controls/LogViewer.py:307
    +#: ../controls/VariablePanel.py:88
    msgid "All"
    msgstr "All"
    -#: ../editors/FileManagementPanel.py:35
    +#: ../editors/FileManagementPanel.py:37
    msgid "All files (*.*)|*.*|CSV files (*.csv)|*.csv"
    msgstr "All files (*.*)|*.*|CSV files (*.csv)|*.csv"
    -#: ../ProjectController.py:1685
    +#: ../ProjectController.py:1670
    msgid "Already connected. Please disconnect\n"
    msgstr "Already connected. Please disconnect\n"
    -#: ../editors/DataTypeEditor.py:591
    +#: ../editors/DataTypeEditor.py:607
    #, python-format
    msgid "An element named \"%s\" already exists in this structure!"
    msgstr "An element named \"%s\" already exists in this structure!"
    -#: ../editors/ResourceEditor.py:486
    +#: ../editors/ResourceEditor.py:520
    msgid "An instance with the same name already exists!"
    msgstr "An instance with the same name already exists!"
    -#: ../dialogs/ConnectionDialog.py:100
    +#: ../dialogs/ConnectionDialog.py:103
    msgid "Apply name modification to all continuations with the same name"
    msgstr "Apply name modification to all continuations with the same name"
    @@ -615,8 +616,8 @@
    msgid "Arithmetic"
    msgstr "Arithmetic"
    -#: ../editors/DataTypeEditor.py:54 ../editors/DataTypeEditor.py:633
    -#: ../controls/VariablePanel.py:858
    +#: ../editors/DataTypeEditor.py:60 ../editors/DataTypeEditor.py:649
    +#: ../controls/VariablePanel.py:872
    msgid "Array"
    msgstr "Array"
    @@ -624,45 +625,37 @@
    msgid "Assignment"
    msgstr "Assignment"
    -#: ../dialogs/FBDVariableDialog.py:222
    +#: ../dialogs/FBDVariableDialog.py:226
    msgid "At least a variable or an expression must be selected!"
    msgstr "At least a variable or an expression must be selected!"
    -#: ../controls/ProjectPropertiesPanel.py:100
    +#: ../controls/ProjectPropertiesPanel.py:111
    msgid "Author"
    msgstr "Author"
    -#: ../controls/ProjectPropertiesPanel.py:97
    +#: ../controls/ProjectPropertiesPanel.py:108
    msgid "Author Name (optional):"
    msgstr "Author Name (optional):"
    -#: ../dialogs/FindInPouDialog.py:77
    +#: ../dialogs/FindInPouDialog.py:80
    msgid "Backward"
    msgstr "Backward"
    -#: ../util/Zeroconf.py:599
    -msgid "Bad domain name (circular) at "
    -msgstr "Bad domain name (circular) at "
    -
    -#: ../util/Zeroconf.py:602
    -msgid "Bad domain name at "
    -msgstr "Bad domain name at "
    -
    -#: ../canfestival/config_utils.py:342 ../canfestival/config_utils.py:630
    +#: ../canfestival/config_utils.py:365 ../canfestival/config_utils.py:672
    #, python-format
    msgid "Bad location size : %s"
    msgstr "Bad location size : %s"
    -#: ../dialogs/ArrayTypeDialog.py:54 ../editors/DataTypeEditor.py:175
    -#: ../editors/DataTypeEditor.py:205 ../editors/DataTypeEditor.py:297
    +#: ../dialogs/ArrayTypeDialog.py:57 ../editors/DataTypeEditor.py:183
    +#: ../editors/DataTypeEditor.py:213 ../editors/DataTypeEditor.py:307
    msgid "Base Type:"
    msgstr "Base Type:"
    -#: ../editors/DataTypeEditor.py:623 ../controls/VariablePanel.py:816
    +#: ../editors/DataTypeEditor.py:639 ../controls/VariablePanel.py:830
    msgid "Base Types"
    msgstr "Base Types"
    -#: ../BeremizIDE.py:455
    +#: ../BeremizIDE.py:483
    msgid "Beremiz"
    msgstr "Beremiz"
    @@ -694,85 +687,85 @@
    msgid "Bitwise inverting"
    msgstr "Bitwise inverting"
    -#: ../editors/Viewer.py:584 ../editors/Viewer.py:2407
    +#: ../editors/Viewer.py:621 ../editors/Viewer.py:2440
    msgid "Block"
    msgstr "Block"
    -#: ../dialogs/FBDBlockDialog.py:60
    +#: ../dialogs/FBDBlockDialog.py:63
    msgid "Block Properties"
    msgstr "Block Properties"
    -#: ../editors/TextViewer.py:262
    +#: ../editors/TextViewer.py:260
    msgid "Block name"
    msgstr "Block name"
    -#: ../editors/Viewer.py:550
    +#: ../editors/Viewer.py:586
    msgid "Bottom"
    msgstr "Bottom"
    -#: ../ProjectController.py:1363
    +#: ../ProjectController.py:1400
    msgid "Broken"
    msgstr "Broken"
    -#: ../dialogs/BrowseValuesLibraryDialog.py:38
    +#: ../dialogs/BrowseValuesLibraryDialog.py:40
    #, python-format
    msgid "Browse %s values library"
    msgstr "Browse %s values library"
    -#: ../dialogs/BrowseLocationsDialog.py:65
    +#: ../dialogs/BrowseLocationsDialog.py:72
    msgid "Browse Locations"
    msgstr "Browse Locations"
    -#: ../ProjectController.py:1832
    +#: ../ProjectController.py:1815
    msgid "Build"
    msgstr "Build"
    -#: ../ProjectController.py:1297
    +#: ../ProjectController.py:1335
    msgid "Build directory already clean\n"
    msgstr "Build directory already clean\n"
    -#: ../ProjectController.py:1833
    +#: ../ProjectController.py:1816
    msgid "Build project into build folder"
    msgstr "Build project into build folder"
    -#: ../ProjectController.py:1080
    +#: ../ProjectController.py:1108
    msgid "C Build crashed !\n"
    msgstr "C Build crashed !\n"
    -#: ../ProjectController.py:1077
    +#: ../ProjectController.py:1105
    msgid "C Build failed.\n"
    msgstr "C Build failed.\n"
    -#: ../c_ext/CFileEditor.py:63
    +#: ../c_ext/CFileEditor.py:66
    msgid "C code"
    msgstr "C code"
    -#: ../ProjectController.py:1155
    +#: ../ProjectController.py:1186
    msgid "C code generated successfully.\n"
    msgstr "C code generated successfully.\n"
    -#: ../targets/toolchain_makefile.py:122
    +#: ../targets/toolchain_makefile.py:126
    msgid "C compilation failed.\n"
    msgstr "C compilation failed.\n"
    -#: ../targets/toolchain_gcc.py:192
    +#: ../targets/toolchain_gcc.py:199
    #, python-format
    msgid "C compilation of %s failed.\n"
    msgstr "C compilation of %s failed.\n"
    -#: ../features.py:32
    +#: ../features.py:33
    msgid "C extension"
    msgstr "C extension"
    -#: ../dialogs/AboutDialog.py:71
    +#: ../dialogs/AboutDialog.py:69
    msgid "C&redits"
    msgstr "C&redits"
    -#: ../canfestival/NetworkEditor.py:52
    +#: ../canfestival/NetworkEditor.py:58
    msgid "CANOpen network"
    msgstr "CANOpen network"
    -#: ../canfestival/SlaveEditor.py:44
    +#: ../canfestival/SlaveEditor.py:48
    msgid "CANOpen slave"
    msgstr "CANOpen slave"
    @@ -780,34 +773,34 @@
    msgid "CANopen support"
    msgstr "CANopen support"
    -#: ../plcopen/plcopen.py:1589 ../plcopen/plcopen.py:1603
    -#: ../plcopen/plcopen.py:1627 ../plcopen/plcopen.py:1643
    +#: ../plcopen/plcopen.py:1839 ../plcopen/plcopen.py:1853
    +#: ../plcopen/plcopen.py:1878 ../plcopen/plcopen.py:1894
    msgid "Can only generate execution order on FBD networks!"
    msgstr "Can only generate execution order on FBD networks!"
    -#: ../controls/VariablePanel.py:267
    +#: ../controls/VariablePanel.py:291
    msgid "Can only give a location to local or global variables"
    msgstr "Can only give a location to local or global variables"
    -#: ../PLCOpenEditor.py:344
    +#: ../PLCOpenEditor.py:318
    #, python-format
    msgid "Can't generate program to file %s!"
    msgstr "Can't generate program to file %s!"
    -#: ../controls/VariablePanel.py:265
    +#: ../controls/VariablePanel.py:289
    msgid "Can't give a location to a function block instance"
    msgstr "Can't give a location to a function block instance"
    -#: ../PLCOpenEditor.py:389
    +#: ../PLCOpenEditor.py:363
    #, python-format
    msgid "Can't save project to file %s!"
    msgstr "Can't save project to file %s!"
    -#: ../controls/VariablePanel.py:313
    +#: ../controls/VariablePanel.py:339
    msgid "Can't set an initial value to a function block instance"
    msgstr "Can't set an initial value to a function block instance"
    -#: ../ConfigTreeNode.py:529
    +#: ../ConfigTreeNode.py:532
    #, python-brace-format
    msgid "Cannot create child {a1} of type {a2} "
    msgstr "Cannot create child {a1} of type {a2} "
    @@ -817,44 +810,48 @@
    msgid "Cannot find lower free IEC channel than %d\n"
    msgstr "Cannot find lower free IEC channel than %d\n"
    -#: ../connectors/PYRO/__init__.py:131
    +#: ../connectors/PYRO/__init__.py:139
    msgid "Cannot get PLC status - connection failed.\n"
    msgstr "Cannot get PLC status - connection failed.\n"
    -#: ../ProjectController.py:943
    +#: ../ProjectController.py:967
    msgid "Cannot open/parse VARIABLES.csv!\n"
    msgstr "Cannot open/parse VARIABLES.csv!\n"
    -#: ../canfestival/config_utils.py:374
    +#: ../canfestival/config_utils.py:400
    #, python-brace-format
    msgid "Cannot set bit offset for non bool '{a1}' variable (ID:{a2},Idx:{a3},sIdx:{a4}))"
    msgstr "Cannot set bit offset for non bool '{a1}' variable (ID:{a2},Idx:{a3},sIdx:{a4}))"
    -#: ../dialogs/SearchInProjectDialog.py:59 ../dialogs/FindInPouDialog.py:86
    +#: ../ProjectController.py:1761
    +msgid "Cannot transfer while PLC is running. Stop it now?"
    +msgstr "Cannot transfer while PLC is running. Stop it now?"
    +
    +#: ../dialogs/SearchInProjectDialog.py:63 ../dialogs/FindInPouDialog.py:89
    msgid "Case sensitive"
    msgstr "Case sensitive"
    -#: ../editors/Viewer.py:545
    +#: ../editors/Viewer.py:581
    msgid "Center"
    msgstr "Center"
    -#: ../Beremiz_service.py:268
    +#: ../Beremiz_service.py:276
    msgid "Change IP of interface to bind"
    msgstr "Change IP of interface to bind"
    -#: ../Beremiz_service.py:267
    +#: ../Beremiz_service.py:275
    msgid "Change Name"
    msgstr "Change Name"
    -#: ../IDEFrame.py:1946
    +#: ../IDEFrame.py:1977
    msgid "Change POU Type To"
    msgstr "Change POU Type To"
    -#: ../Beremiz_service.py:269
    +#: ../Beremiz_service.py:277
    msgid "Change Port Number"
    msgstr "Change Port Number"
    -#: ../Beremiz_service.py:270
    +#: ../Beremiz_service.py:278
    msgid "Change working directory"
    msgstr "Change working directory"
    @@ -862,115 +859,119 @@
    msgid "Character string"
    msgstr "Character string"
    -#: ../svgui/svgui.py:128
    +#: ../svgui/svgui.py:136
    msgid "Choose a SVG file"
    msgstr "Choose a SVG file"
    -#: ../ProjectController.py:542
    +#: ../ProjectController.py:561
    msgid "Choose a directory to save project"
    msgstr "Choose a directory to save project"
    -#: ../canfestival/canfestival.py:162 ../PLCOpenEditor.py:302
    -#: ../PLCOpenEditor.py:334 ../PLCOpenEditor.py:383
    +#: ../canfestival/canfestival.py:171 ../PLCOpenEditor.py:276
    +#: ../PLCOpenEditor.py:308 ../PLCOpenEditor.py:357
    msgid "Choose a file"
    msgstr "Choose a file"
    -#: ../BeremizIDE.py:833 ../BeremizIDE.py:869
    +#: ../BeremizIDE.py:900
    msgid "Choose a project"
    msgstr "Choose a project"
    -#: ../dialogs/BrowseValuesLibraryDialog.py:41
    +#: ../dialogs/BrowseValuesLibraryDialog.py:43
    #, python-format
    msgid "Choose a value for %s:"
    msgstr "Choose a value for %s:"
    -#: ../Beremiz_service.py:325
    +#: ../Beremiz_service.py:333
    msgid "Choose a working directory "
    msgstr "Choose a working directory "
    -#: ../ProjectController.py:449
    +#: ../BeremizIDE.py:864
    +msgid "Choose an empty directory for new project"
    +msgstr "Choose an empty directory for new project"
    +
    +#: ../ProjectController.py:468
    msgid "Chosen folder doesn't contain a program. It's not a valid project!"
    msgstr "Chosen folder doesn't contain a program. It's not a valid project!"
    -#: ../ProjectController.py:416
    +#: ../ProjectController.py:435
    msgid "Chosen folder isn't empty. You can't use it for a new project!"
    msgstr "Chosen folder isn't empty. You can't use it for a new project!"
    -#: ../controls/VariablePanel.py:53 ../controls/VariablePanel.py:54
    +#: ../controls/VariablePanel.py:60
    msgid "Class"
    msgstr "Class"
    -#: ../controls/VariablePanel.py:441
    +#: ../controls/VariablePanel.py:472
    msgid "Class Filter:"
    msgstr "Class Filter:"
    -#: ../dialogs/FBDVariableDialog.py:70
    +#: ../dialogs/FBDVariableDialog.py:74
    msgid "Class:"
    msgstr "Class:"
    -#: ../ProjectController.py:1836
    +#: ../ProjectController.py:1821
    msgid "Clean"
    msgstr "Clean"
    -#: ../controls/LogViewer.py:318
    +#: ../controls/LogViewer.py:327
    msgid "Clean log messages"
    msgstr "Clean log messages"
    -#: ../ProjectController.py:1838
    +#: ../ProjectController.py:1822
    msgid "Clean project build folder"
    msgstr "Clean project build folder"
    -#: ../ProjectController.py:1294
    +#: ../ProjectController.py:1332
    msgid "Cleaning the build directory\n"
    msgstr "Cleaning the build directory\n"
    -#: ../IDEFrame.py:435
    +#: ../IDEFrame.py:437
    msgid "Clear Errors"
    msgstr "Clear Errors"
    -#: ../editors/Viewer.py:641
    +#: ../editors/Viewer.py:680
    msgid "Clear Execution Order"
    msgstr "Clear Execution Order"
    -#: ../dialogs/SearchInProjectDialog.py:103 ../dialogs/FindInPouDialog.py:109
    +#: ../dialogs/SearchInProjectDialog.py:107 ../dialogs/FindInPouDialog.py:112
    msgid "Close"
    msgstr "Close"
    -#: ../BeremizIDE.py:595 ../PLCOpenEditor.py:209
    +#: ../BeremizIDE.py:627 ../PLCOpenEditor.py:183
    msgid "Close Application"
    msgstr "Close Application"
    -#: ../BeremizIDE.py:228 ../BeremizIDE.py:539 ../PLCOpenEditor.py:110
    -#: ../IDEFrame.py:1013
    +#: ../BeremizIDE.py:253 ../BeremizIDE.py:566 ../PLCOpenEditor.py:81
    +#: ../IDEFrame.py:1040
    msgid "Close Project"
    msgstr "Close Project"
    -#: ../BeremizIDE.py:226 ../PLCOpenEditor.py:108
    +#: ../BeremizIDE.py:251 ../PLCOpenEditor.py:79
    msgid "Close Tab"
    msgstr "Close Tab"
    -#: ../editors/Viewer.py:600 ../editors/Viewer.py:2415
    +#: ../editors/Viewer.py:638 ../editors/Viewer.py:2448
    msgid "Coil"
    msgstr "Coil"
    -#: ../editors/Viewer.py:620 ../editors/LDViewer.py:506
    +#: ../editors/Viewer.py:659 ../editors/LDViewer.py:517
    msgid "Comment"
    msgstr "Comment"
    -#: ../BeremizIDE.py:276 ../BeremizIDE.py:279 ../PLCOpenEditor.py:161
    -#: ../PLCOpenEditor.py:164
    +#: ../BeremizIDE.py:303 ../BeremizIDE.py:307 ../PLCOpenEditor.py:134
    +#: ../PLCOpenEditor.py:138
    msgid "Community support"
    msgstr "Community support"
    -#: ../dialogs/ProjectDialog.py:60
    +#: ../dialogs/ProjectDialog.py:65
    msgid "Company Name"
    msgstr "Company Name"
    -#: ../controls/ProjectPropertiesPanel.py:95
    +#: ../controls/ProjectPropertiesPanel.py:106
    msgid "Company Name (required):"
    msgstr "Company Name (required):"
    -#: ../controls/ProjectPropertiesPanel.py:96
    +#: ../controls/ProjectPropertiesPanel.py:107
    msgid "Company URL (optional):"
    msgstr "Company URL (optional):"
    @@ -978,7 +979,7 @@
    msgid "Comparison"
    msgstr "Comparison"
    -#: ../ProjectController.py:734
    +#: ../ProjectController.py:756
    msgid "Compiling IEC Program into C code...\n"
    msgstr "Compiling IEC Program into C code...\n"
    @@ -986,93 +987,93 @@
    msgid "Concatenation"
    msgstr "Concatenation"
    -#: ../editors/ConfTreeNodeEditor.py:230
    +#: ../editors/ConfTreeNodeEditor.py:241
    msgid "Config"
    msgstr "Config"
    -#: ../editors/ProjectNodeEditor.py:36
    +#: ../editors/ProjectNodeEditor.py:39
    msgid "Config variables"
    msgstr "Config variables"
    -#: ../dialogs/SearchInProjectDialog.py:40
    +#: ../dialogs/SearchInProjectDialog.py:43
    msgid "Configuration"
    msgstr "Configuration"
    -#: ../PLCControler.py:99
    +#: ../plcopen/types_enums.py:77
    msgid "Configurations"
    msgstr "Configurations"
    -#: ../editors/Viewer.py:308 ../editors/Viewer.py:338 ../editors/Viewer.py:360
    -#: ../editors/TextViewer.py:291 ../editors/TextViewer.py:342
    -#: ../editors/TextViewer.py:365 ../controls/VariablePanel.py:328
    +#: ../editors/Viewer.py:351 ../editors/Viewer.py:381 ../editors/Viewer.py:403
    +#: ../editors/TextViewer.py:289 ../editors/TextViewer.py:343
    +#: ../editors/TextViewer.py:366 ../controls/VariablePanel.py:354
    msgid "Confirm or change variable name"
    msgstr "Confirm or change variable name"
    -#: ../ProjectController.py:1851
    +#: ../ProjectController.py:1842
    msgid "Connect"
    msgstr "Connect"
    -#: ../ProjectController.py:1852
    +#: ../ProjectController.py:1843
    msgid "Connect to the target PLC"
    msgstr "Connect to the target PLC"
    -#: ../ProjectController.py:1354
    +#: ../ProjectController.py:1391
    #, python-format
    msgid "Connected to URI: %s"
    msgstr "Connected to URI: %s"
    -#: ../dialogs/SFCTransitionDialog.py:77 ../editors/Viewer.py:586
    -#: ../editors/Viewer.py:2408
    +#: ../dialogs/SFCTransitionDialog.py:78 ../editors/Viewer.py:623
    +#: ../editors/Viewer.py:2441
    msgid "Connection"
    msgstr "Connection"
    -#: ../dialogs/ConnectionDialog.py:53
    +#: ../dialogs/ConnectionDialog.py:55
    msgid "Connection Properties"
    msgstr "Connection Properties"
    -#: ../ProjectController.py:1709
    +#: ../ProjectController.py:1691
    msgid "Connection canceled!\n"
    msgstr "Connection canceled!\n"
    -#: ../ProjectController.py:1734
    +#: ../ProjectController.py:1714
    #, python-format
    msgid "Connection failed to %s!\n"
    msgstr "Connection failed to %s!\n"
    -#: ../connectors/PYRO/__init__.py:115 ../connectors/WAMP/__init__.py:111
    +#: ../connectors/PYRO/__init__.py:123 ../connectors/WAMP/__init__.py:120
    msgid "Connection lost!\n"
    msgstr "Connection lost!\n"
    -#: ../connectors/PYRO/__init__.py:102
    +#: ../connectors/PYRO/__init__.py:110
    #, python-format
    msgid "Connection to '%s' failed.\n"
    msgstr "Connection to '%s' failed.\n"
    -#: ../dialogs/ConnectionDialog.py:65 ../editors/Viewer.py:1643
    +#: ../dialogs/ConnectionDialog.py:67 ../editors/Viewer.py:1676
    msgid "Connector"
    msgstr "Connector"
    -#: ../dialogs/SFCStepDialog.py:66
    +#: ../dialogs/SFCStepDialog.py:68
    msgid "Connectors:"
    msgstr "Connectors:"
    -#: ../BeremizIDE.py:350
    +#: ../BeremizIDE.py:378
    msgid "Console"
    msgstr "Console"
    -#: ../controls/VariablePanel.py:60
    +#: ../controls/VariablePanel.py:75
    msgid "Constant"
    msgstr "Constant"
    -#: ../editors/Viewer.py:596 ../editors/Viewer.py:2411
    +#: ../editors/Viewer.py:634 ../editors/Viewer.py:2444
    msgid "Contact"
    msgstr "Contact"
    -#: ../controls/ProjectPropertiesPanel.py:198
    +#: ../controls/ProjectPropertiesPanel.py:217
    msgid "Content Description (optional):"
    msgstr "Content Description (optional):"
    -#: ../dialogs/ConnectionDialog.py:66 ../editors/Viewer.py:1644
    +#: ../dialogs/ConnectionDialog.py:68 ../editors/Viewer.py:1677
    msgid "Continuation"
    msgstr "Continuation"
    @@ -1092,20 +1093,20 @@
    msgid "Conversion to time-of-day"
    msgstr "Conversion to time-of-day"
    -#: ../editors/Viewer.py:656 ../controls/LogViewer.py:704 ../IDEFrame.py:370
    -#: ../IDEFrame.py:425
    +#: ../editors/Viewer.py:695 ../controls/LogViewer.py:713 ../IDEFrame.py:372
    +#: ../IDEFrame.py:427
    msgid "Copy"
    msgstr "Copy"
    -#: ../IDEFrame.py:1933
    +#: ../IDEFrame.py:1964
    msgid "Copy POU"
    msgstr "Copy POU"
    -#: ../editors/FileManagementPanel.py:65
    +#: ../editors/FileManagementPanel.py:68
    msgid "Copy file from left folder to right"
    msgstr "Copy file from left folder to right"
    -#: ../editors/FileManagementPanel.py:64
    +#: ../editors/FileManagementPanel.py:67
    msgid "Copy file from right folder to left"
    msgstr "Copy file from right folder to left"
    @@ -1113,7 +1114,7 @@
    msgid "Cosine"
    msgstr "Cosine"
    -#: ../ConfigTreeNode.py:656
    +#: ../ConfigTreeNode.py:660
    #, python-brace-format
    msgid ""
    "Could not add child \"{a1}\", type {a2} :\n"
    @@ -1122,12 +1123,12 @@
    "Could not add child \"{a1}\", type {a2} :\n"
    "{a3}\n"
    -#: ../py_ext/PythonFileCTNMixin.py:78
    +#: ../py_ext/PythonFileCTNMixin.py:81
    #, python-format
    msgid "Couldn't import old %s file."
    msgstr "Couldn't import old %s file."
    -#: ../ConfigTreeNode.py:626
    +#: ../ConfigTreeNode.py:630
    #, python-brace-format
    msgid ""
    "Couldn't load confnode base parameters {a1} :\n"
    @@ -1136,7 +1137,7 @@
    "Couldn't load confnode base parameters {a1} :\n"
    " {a2}"
    -#: ../ConfigTreeNode.py:643 ../CodeFileTreeNode.py:124
    +#: ../ConfigTreeNode.py:647 ../CodeFileTreeNode.py:127
    #, python-brace-format
    msgid ""
    "Couldn't load confnode parameters {a1} :\n"
    @@ -1145,111 +1146,107 @@
    "Couldn't load confnode parameters {a1} :\n"
    " {a2}"
    -#: ../PLCControler.py:948
    +#: ../PLCControler.py:552
    msgid "Couldn't paste non-POU object."
    msgstr "Couldn't paste non-POU object."
    -#: ../ProjectController.py:1651
    +#: ../ProjectController.py:1636
    msgid "Couldn't start PLC !\n"
    msgstr "Couldn't start PLC !\n"
    -#: ../ProjectController.py:1659
    +#: ../ProjectController.py:1644
    msgid "Couldn't stop PLC !\n"
    msgstr "Couldn't stop PLC !\n"
    -#: ../ProjectController.py:1623
    -msgid "Couldn't stop debugger.\n"
    -msgstr "Couldn't stop debugger.\n"
    -
    -#: ../svgui/svgui.py:49
    +#: ../svgui/svgui.py:57
    msgid "Create HMI"
    msgstr "Create HMI"
    -#: ../dialogs/PouDialog.py:46
    +#: ../dialogs/PouDialog.py:54
    msgid "Create a new POU"
    msgstr "Create a new POU"
    -#: ../dialogs/PouActionDialog.py:38
    +#: ../dialogs/PouActionDialog.py:45
    msgid "Create a new action"
    msgstr "Create a new action"
    -#: ../IDEFrame.py:159
    +#: ../IDEFrame.py:166
    msgid "Create a new action block"
    msgstr "Create a new action block"
    -#: ../IDEFrame.py:108 ../IDEFrame.py:138 ../IDEFrame.py:171
    +#: ../IDEFrame.py:115 ../IDEFrame.py:145 ../IDEFrame.py:178
    msgid "Create a new block"
    msgstr "Create a new block"
    -#: ../IDEFrame.py:132
    +#: ../IDEFrame.py:139
    msgid "Create a new branch"
    msgstr "Create a new branch"
    -#: ../IDEFrame.py:126
    +#: ../IDEFrame.py:133
    msgid "Create a new coil"
    msgstr "Create a new coil"
    -#: ../IDEFrame.py:102 ../IDEFrame.py:117 ../IDEFrame.py:147
    +#: ../IDEFrame.py:109 ../IDEFrame.py:124 ../IDEFrame.py:154
    msgid "Create a new comment"
    msgstr "Create a new comment"
    -#: ../IDEFrame.py:111 ../IDEFrame.py:141 ../IDEFrame.py:174
    +#: ../IDEFrame.py:118 ../IDEFrame.py:148 ../IDEFrame.py:181
    msgid "Create a new connection"
    msgstr "Create a new connection"
    -#: ../IDEFrame.py:129 ../IDEFrame.py:180
    +#: ../IDEFrame.py:136 ../IDEFrame.py:187
    msgid "Create a new contact"
    msgstr "Create a new contact"
    -#: ../IDEFrame.py:162
    +#: ../IDEFrame.py:169
    msgid "Create a new divergence"
    msgstr "Create a new divergence"
    -#: ../dialogs/SFCDivergenceDialog.py:53
    +#: ../dialogs/SFCDivergenceDialog.py:54
    msgid "Create a new divergence or convergence"
    msgstr "Create a new divergence or convergence"
    -#: ../IDEFrame.py:150
    +#: ../IDEFrame.py:157
    msgid "Create a new initial step"
    msgstr "Create a new initial step"
    -#: ../IDEFrame.py:165
    +#: ../IDEFrame.py:172
    msgid "Create a new jump"
    msgstr "Create a new jump"
    -#: ../IDEFrame.py:120 ../IDEFrame.py:177
    +#: ../IDEFrame.py:127 ../IDEFrame.py:184
    msgid "Create a new power rail"
    msgstr "Create a new power rail"
    -#: ../IDEFrame.py:123
    +#: ../IDEFrame.py:130
    msgid "Create a new rung"
    msgstr "Create a new rung"
    -#: ../IDEFrame.py:153
    +#: ../IDEFrame.py:160
    msgid "Create a new step"
    msgstr "Create a new step"
    -#: ../dialogs/PouTransitionDialog.py:42 ../IDEFrame.py:156
    +#: ../dialogs/PouTransitionDialog.py:49 ../IDEFrame.py:163
    msgid "Create a new transition"
    msgstr "Create a new transition"
    -#: ../IDEFrame.py:105 ../IDEFrame.py:135 ../IDEFrame.py:168
    +#: ../IDEFrame.py:112 ../IDEFrame.py:142 ../IDEFrame.py:175
    msgid "Create a new variable"
    msgstr "Create a new variable"
    -#: ../dialogs/AboutDialog.py:113
    +#: ../dialogs/AboutDialog.py:109
    msgid "Credits"
    msgstr "Credits"
    -#: ../Beremiz_service.py:434
    +#: ../Beremiz_service.py:424
    msgid "Current working directory :"
    msgstr "Current working directory :"
    -#: ../editors/Viewer.py:655 ../IDEFrame.py:368 ../IDEFrame.py:424
    +#: ../editors/Viewer.py:694 ../IDEFrame.py:370 ../IDEFrame.py:426
    msgid "Cut"
    msgstr "Cut"
    -#: ../editors/ResourceEditor.py:72
    +#: ../editors/ResourceEditor.py:81
    msgid "Cyclic"
    msgstr "Cyclic"
    @@ -1261,19 +1258,19 @@
    msgid "DEPRECATED"
    msgstr "DEPRECATED"
    -#: ../canfestival/SlaveEditor.py:76 ../canfestival/NetworkEditor.py:97
    +#: ../canfestival/SlaveEditor.py:80 ../canfestival/NetworkEditor.py:104
    msgid "DS-301 Profile"
    msgstr "DS-301 Profile"
    -#: ../canfestival/SlaveEditor.py:77 ../canfestival/NetworkEditor.py:98
    +#: ../canfestival/SlaveEditor.py:81 ../canfestival/NetworkEditor.py:105
    msgid "DS-302 Profile"
    msgstr "DS-302 Profile"
    -#: ../dialogs/SearchInProjectDialog.py:36
    +#: ../dialogs/SearchInProjectDialog.py:39
    msgid "Data Type"
    msgstr "Data Type"
    -#: ../PLCControler.py:98
    +#: ../plcopen/types_enums.py:76
    msgid "Data Types"
    msgstr "Data Types"
    @@ -1294,66 +1291,58 @@
    msgid "Date subtraction"
    msgstr "Date subtraction"
    -#: ../dialogs/DurationEditorDialog.py:44
    +#: ../dialogs/DurationEditorDialog.py:46
    msgid "Days:"
    msgstr "Days:"
    -#: ../ProjectController.py:1756
    +#: ../ProjectController.py:1729
    msgid "Debug does not match PLC - stop/transfert/start to re-enable\n"
    msgstr "Debug does not match PLC - stop/transfert/start to re-enable\n"
    -#: ../controls/PouInstanceVariablesPanel.py:134
    +#: ../controls/PouInstanceVariablesPanel.py:144
    msgid "Debug instance"
    msgstr "Debug instance"
    -#: ../editors/Viewer.py:448
    +#: ../editors/Viewer.py:490
    #, python-format
    msgid "Debug: %s"
    msgstr "Debug: %s"
    -#: ../ProjectController.py:1412
    +#: ../ProjectController.py:1471
    #, python-format
    msgid "Debug: Unknown variable '%s'\n"
    msgstr "Debug: Unknown variable '%s'\n"
    -#: ../ProjectController.py:1410
    +#: ../ProjectController.py:1469
    #, python-format
    msgid "Debug: Unsupported type to debug '%s'\n"
    msgstr "Debug: Unsupported type to debug '%s'\n"
    -#: ../IDEFrame.py:639
    +#: ../IDEFrame.py:660
    msgid "Debugger"
    msgstr "Debugger"
    -#: ../ProjectController.py:1592
    -msgid "Debugger disabled\n"
    -msgstr "Debugger disabled\n"
    -
    -#: ../ProjectController.py:1753
    +#: ../ProjectController.py:1726
    msgid "Debugger ready\n"
    msgstr "Debugger ready\n"
    -#: ../ProjectController.py:1625
    -msgid "Debugger stopped.\n"
    -msgstr "Debugger stopped.\n"
    -
    -#: ../BeremizIDE.py:968 ../editors/Viewer.py:631 ../IDEFrame.py:1962
    +#: ../BeremizIDE.py:1004 ../editors/Viewer.py:670 ../IDEFrame.py:1993
    msgid "Delete"
    msgstr "Delete"
    -#: ../editors/Viewer.py:573
    +#: ../editors/Viewer.py:610
    msgid "Delete Divergence Branch"
    msgstr "Delete Divergence Branch"
    -#: ../editors/FileManagementPanel.py:153
    +#: ../editors/FileManagementPanel.py:157
    msgid "Delete File"
    msgstr "Delete File"
    -#: ../editors/Viewer.py:560
    +#: ../editors/Viewer.py:597
    msgid "Delete Wire Segment"
    msgstr "Delete Wire Segment"
    -#: ../controls/CustomEditableListBox.py:41
    +#: ../controls/CustomEditableListBox.py:44
    msgid "Delete item"
    msgstr "Delete item"
    @@ -1361,47 +1350,47 @@
    msgid "Deletion (within)"
    msgstr "Deletion (within)"
    -#: ../editors/DataTypeEditor.py:153
    +#: ../editors/DataTypeEditor.py:161
    msgid "Derivation Type:"
    msgstr "Derivation Type:"
    -#: ../editors/CodeFileEditor.py:739
    +#: ../editors/CodeFileEditor.py:735
    msgid "Description"
    msgstr "Description"
    -#: ../controls/VariablePanel.py:432
    +#: ../controls/VariablePanel.py:463
    msgid "Description:"
    msgstr "Description:"
    -#: ../dialogs/ArrayTypeDialog.py:60 ../editors/DataTypeEditor.py:321
    +#: ../dialogs/ArrayTypeDialog.py:63 ../editors/DataTypeEditor.py:332
    msgid "Dimensions:"
    msgstr "Dimensions:"
    -#: ../dialogs/FindInPouDialog.py:66
    +#: ../dialogs/FindInPouDialog.py:69
    msgid "Direction"
    msgstr "Direction"
    -#: ../dialogs/BrowseLocationsDialog.py:91
    +#: ../dialogs/BrowseLocationsDialog.py:102
    msgid "Direction:"
    msgstr "Direction:"
    -#: ../editors/DataTypeEditor.py:54
    +#: ../editors/DataTypeEditor.py:60
    msgid "Directly"
    msgstr "Directly"
    -#: ../ProjectController.py:1860
    +#: ../ProjectController.py:1855
    msgid "Disconnect"
    msgstr "Disconnect"
    -#: ../ProjectController.py:1862
    +#: ../ProjectController.py:1856
    msgid "Disconnect from PLC"
    msgstr "Disconnect from PLC"
    -#: ../ProjectController.py:1364
    +#: ../ProjectController.py:1401
    msgid "Disconnected"
    msgstr "Disconnected"
    -#: ../editors/Viewer.py:615 ../editors/Viewer.py:2403
    +#: ../editors/Viewer.py:654 ../editors/Viewer.py:2436
    msgid "Divergence"
    msgstr "Divergence"
    @@ -1409,120 +1398,120 @@
    msgid "Division"
    msgstr "Division"
    -#: ../editors/FileManagementPanel.py:152
    +#: ../editors/FileManagementPanel.py:156
    #, python-format
    msgid "Do you really want to delete the file '%s'?"
    msgstr "Do you really want to delete the file '%s'?"
    -#: ../controls/VariablePanel.py:53 ../controls/VariablePanel.py:54
    +#: ../controls/VariablePanel.py:65
    msgid "Documentation"
    msgstr "Documentation"
    -#: ../PLCOpenEditor.py:338
    +#: ../PLCOpenEditor.py:312
    msgid "Done"
    msgstr "Done"
    -#: ../dialogs/ActionBlockDialog.py:39
    +#: ../dialogs/ActionBlockDialog.py:42
    msgid "Duration"
    msgstr "Duration"
    -#: ../canfestival/canfestival.py:165
    +#: ../canfestival/canfestival.py:174
    msgid "EDS files (*.eds)|*.eds|All files|*.*"
    msgstr "EDS files (*.eds)|*.eds|All files|*.*"
    -#: ../editors/Viewer.py:629
    +#: ../editors/Viewer.py:668
    msgid "Edit Block"
    msgstr "Edit Block"
    -#: ../dialogs/LDElementDialog.py:56
    +#: ../dialogs/LDElementDialog.py:58
    msgid "Edit Coil Values"
    msgstr "Edit Coil Values"
    -#: ../dialogs/LDElementDialog.py:54
    +#: ../dialogs/LDElementDialog.py:56
    msgid "Edit Contact Values"
    msgstr "Edit Contact Values"
    -#: ../dialogs/DurationEditorDialog.py:59
    +#: ../dialogs/DurationEditorDialog.py:62
    msgid "Edit Duration"
    msgstr "Edit Duration"
    -#: ../dialogs/SFCStepDialog.py:51
    +#: ../dialogs/SFCStepDialog.py:53
    msgid "Edit Step"
    msgstr "Edit Step"
    -#: ../wxglade_hmi/wxglade_hmi.py:38
    +#: ../wxglade_hmi/wxglade_hmi.py:45
    msgid "Edit a WxWidgets GUI with WXGlade"
    msgstr "Edit a WxWidgets GUI with WXGlade"
    -#: ../dialogs/ActionBlockDialog.py:121
    +#: ../dialogs/ActionBlockDialog.py:127
    msgid "Edit action block properties"
    msgstr "Edit action block properties"
    -#: ../dialogs/ArrayTypeDialog.py:44
    +#: ../dialogs/ArrayTypeDialog.py:47
    msgid "Edit array type properties"
    msgstr "Edit array type properties"
    -#: ../editors/Viewer.py:2626 ../editors/Viewer.py:3055
    +#: ../editors/Viewer.py:2660 ../editors/Viewer.py:3102
    msgid "Edit comment"
    msgstr "Edit comment"
    -#: ../editors/FileManagementPanel.py:66
    +#: ../editors/FileManagementPanel.py:69
    msgid "Edit file"
    msgstr "Edit file"
    -#: ../controls/CustomEditableListBox.py:39
    +#: ../controls/CustomEditableListBox.py:42
    msgid "Edit item"
    msgstr "Edit item"
    -#: ../editors/Viewer.py:3014
    +#: ../editors/Viewer.py:3059
    msgid "Edit jump target"
    msgstr "Edit jump target"
    -#: ../ProjectController.py:1874
    +#: ../ProjectController.py:1873
    msgid "Edit raw IEC code added to code generated by PLCGenerator"
    msgstr "Edit raw IEC code added to code generated by PLCGenerator"
    -#: ../editors/SFCViewer.py:799
    +#: ../editors/SFCViewer.py:815
    msgid "Edit step name"
    msgstr "Edit step name"
    -#: ../dialogs/SFCTransitionDialog.py:52
    +#: ../dialogs/SFCTransitionDialog.py:53
    msgid "Edit transition"
    msgstr "Edit transition"
    -#: ../IDEFrame.py:611
    +#: ../IDEFrame.py:632
    msgid "Editor ToolBar"
    msgstr "Editor ToolBar"
    -#: ../ProjectController.py:1257
    +#: ../ProjectController.py:1294
    msgid "Editor selection"
    msgstr "Editor selection"
    -#: ../editors/DataTypeEditor.py:348
    +#: ../editors/DataTypeEditor.py:360
    msgid "Elements :"
    msgstr "Elements :"
    -#: ../ProjectController.py:1362
    +#: ../ProjectController.py:1399
    msgid "Empty"
    msgstr "Empty"
    -#: ../IDEFrame.py:365
    -msgid "Enable Undo/Redo"
    -msgstr "Enable Undo/Redo"
    -
    -#: ../Beremiz_service.py:333
    +#: ../dialogs/ArrayTypeDialog.py:100
    +msgid "Empty dimension isn't allowed."
    +msgstr "Empty dimension isn't allowed."
    +
    +#: ../Beremiz_service.py:341
    msgid "Enter a name "
    msgstr "Enter a name "
    -#: ../Beremiz_service.py:318
    +#: ../Beremiz_service.py:326
    msgid "Enter a port number "
    msgstr "Enter a port number "
    -#: ../Beremiz_service.py:309
    +#: ../Beremiz_service.py:317
    msgid "Enter the IP of the interface to bind"
    msgstr "Enter the IP of the interface to bind"
    -#: ../editors/DataTypeEditor.py:54
    +#: ../editors/DataTypeEditor.py:60
    msgid "Enumerated"
    msgstr "Enumerated"
    @@ -1530,44 +1519,44 @@
    msgid "Equal to"
    msgstr "Equal to"
    -#: ../BeremizIDE.py:1107 ../dialogs/ForceVariableDialog.py:197
    -#: ../dialogs/SearchInProjectDialog.py:168 ../dialogs/SFCStepNameDialog.py:60
    -#: ../dialogs/DurationEditorDialog.py:121
    -#: ../dialogs/DurationEditorDialog.py:167 ../dialogs/PouTransitionDialog.py:107
    -#: ../dialogs/BlockPreviewDialog.py:237 ../dialogs/ProjectDialog.py:74
    -#: ../dialogs/ArrayTypeDialog.py:97 ../dialogs/ArrayTypeDialog.py:103
    -#: ../dialogs/PouNameDialog.py:54 ../dialogs/BrowseLocationsDialog.py:218
    -#: ../dialogs/BrowseValuesLibraryDialog.py:83 ../dialogs/PouActionDialog.py:105
    -#: ../dialogs/PouDialog.py:135 ../PLCOpenEditor.py:345 ../PLCOpenEditor.py:350
    -#: ../PLCOpenEditor.py:430 ../PLCOpenEditor.py:440
    -#: ../editors/ResourceEditor.py:436 ../editors/Viewer.py:424
    -#: ../editors/LDViewer.py:666 ../editors/LDViewer.py:882
    -#: ../editors/LDViewer.py:886 ../editors/DataTypeEditor.py:550
    -#: ../editors/DataTypeEditor.py:555 ../editors/DataTypeEditor.py:574
    -#: ../editors/DataTypeEditor.py:743 ../editors/DataTypeEditor.py:750
    -#: ../editors/TextViewer.py:389 ../editors/CodeFileEditor.py:762
    -#: ../ProjectController.py:372 ../ProjectController.py:512
    -#: ../ProjectController.py:519 ../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:759
    -#: ../IDEFrame.py:1007 ../IDEFrame.py:1617 ../IDEFrame.py:1658
    -#: ../IDEFrame.py:1663 ../IDEFrame.py:1677 ../IDEFrame.py:1682
    -#: ../Beremiz_service.py:213
    +#: ../dialogs/ForceVariableDialog.py:213
    +#: ../dialogs/SearchInProjectDialog.py:172 ../dialogs/SFCStepNameDialog.py:64
    +#: ../dialogs/DurationEditorDialog.py:124
    +#: ../dialogs/DurationEditorDialog.py:170 ../dialogs/PouTransitionDialog.py:114
    +#: ../dialogs/BlockPreviewDialog.py:237 ../dialogs/ProjectDialog.py:80
    +#: ../dialogs/ArrayTypeDialog.py:114 ../dialogs/PouNameDialog.py:58
    +#: ../dialogs/BrowseLocationsDialog.py:229
    +#: ../dialogs/BrowseValuesLibraryDialog.py:87 ../dialogs/PouActionDialog.py:112
    +#: ../dialogs/PouDialog.py:143 ../PLCOpenEditor.py:319 ../PLCOpenEditor.py:324
    +#: ../editors/ResourceEditor.py:470 ../editors/Viewer.py:467
    +#: ../editors/LDViewer.py:677 ../editors/LDViewer.py:893
    +#: ../editors/LDViewer.py:897 ../editors/DataTypeEditor.py:566
    +#: ../editors/DataTypeEditor.py:571 ../editors/DataTypeEditor.py:590
    +#: ../editors/DataTypeEditor.py:759 ../editors/DataTypeEditor.py:766
    +#: ../editors/TextViewer.py:390 ../editors/CodeFileEditor.py:760
    +#: ../ProjectController.py:391 ../ProjectController.py:531
    +#: ../ProjectController.py:538 ../controls/FolderTree.py:222
    +#: ../controls/ProjectPropertiesPanel.py:306
    +#: ../controls/DebugVariablePanel/DebugVariablePanel.py:173
    +#: ../controls/DebugVariablePanel/DebugVariableTextViewer.py:138
    +#: ../controls/DebugVariablePanel/DebugVariableGraphicViewer.py:227
    +#: ../controls/VariablePanel.py:431 ../controls/VariablePanel.py:773
    +#: ../util/ExceptionHandler.py:70 ../IDEFrame.py:1036 ../IDEFrame.py:1650
    +#: ../IDEFrame.py:1691 ../IDEFrame.py:1696 ../IDEFrame.py:1710
    +#: ../IDEFrame.py:1715 ../Beremiz_service.py:221
    msgid "Error"
    msgstr "Error"
    -#: ../ProjectController.py:789
    +#: ../ProjectController.py:811
    msgid "Error : At least one configuration and one resource must be declared in PLC !\n"
    msgstr "Error : At least one configuration and one resource must be declared in PLC !\n"
    -#: ../ProjectController.py:781
    +#: ../ProjectController.py:803
    #, python-format
    msgid "Error : IEC to C compiler returned %d\n"
    msgstr "Error : IEC to C compiler returned %d\n"
    -#: ../ProjectController.py:712
    +#: ../ProjectController.py:731
    #, python-format
    msgid ""
    "Error in ST/IL/SFC code generator :\n"
    @@ -1576,37 +1565,42 @@
    "Error in ST/IL/SFC code generator :\n"
    "%s\n"
    -#: ../ConfigTreeNode.py:216
    +#: ../ConfigTreeNode.py:219
    #, python-format
    msgid "Error while saving \"%s\"\n"
    msgstr "Error while saving \"%s\"\n"
    -#: ../canfestival/canfestival.py:170
    +#: ../canfestival/canfestival.py:179
    msgid "Error: Export slave failed\n"
    msgstr "Error: Export slave failed\n"
    -#: ../canfestival/canfestival.py:371
    +#: ../modbus/modbus.py:601
    +#, python-brace-format
    +msgid "Error: Modbus/IP Servers %{a1}.x and %{a2}.x use the same port number {a3}.\n"
    +msgstr "Error: Modbus/IP Servers %{a1}.x and %{a2}.x use the same port number {a3}.\n"
    +
    +#: ../canfestival/canfestival.py:388
    msgid "Error: No Master generated\n"
    msgstr "Error: No Master generated\n"
    -#: ../canfestival/canfestival.py:366
    +#: ../canfestival/canfestival.py:383
    msgid "Error: No PLC built\n"
    msgstr "Error: No PLC built\n"
    -#: ../ProjectController.py:1728
    +#: ../ProjectController.py:1708
    #, python-format
    msgid "Exception while connecting %s!\n"
    msgstr "Exception while connecting %s!\n"
    -#: ../dialogs/FBDBlockDialog.py:120
    +#: ../dialogs/FBDBlockDialog.py:123
    msgid "Execution Control:"
    msgstr "Execution Control:"
    -#: ../dialogs/FBDVariableDialog.py:80 ../dialogs/FBDBlockDialog.py:108
    +#: ../dialogs/FBDVariableDialog.py:84 ../dialogs/FBDBlockDialog.py:111
    msgid "Execution Order:"
    msgstr "Execution Order:"
    -#: ../features.py:35
    +#: ../features.py:36
    msgid "Experimental web based HMI"
    msgstr "Experimental web based HMI"
    @@ -1618,77 +1612,77 @@
    msgid "Exponentiation"
    msgstr "Exponentiation"
    -#: ../canfestival/canfestival.py:176
    +#: ../canfestival/canfestival.py:186
    msgid "Export CanOpen slave to EDS file"
    msgstr "Export CanOpen slave to EDS file"
    -#: ../controls/DebugVariablePanel/DebugVariablePanel.py:243
    +#: ../controls/DebugVariablePanel/DebugVariablePanel.py:246
    msgid "Export graph values to clipboard"
    msgstr "Export graph values to clipboard"
    -#: ../canfestival/canfestival.py:175
    +#: ../canfestival/canfestival.py:185
    msgid "Export slave"
    msgstr "Export slave"
    -#: ../dialogs/FBDVariableDialog.py:90
    +#: ../dialogs/FBDVariableDialog.py:94
    msgid "Expression:"
    msgstr "Expression:"
    -#: ../controls/VariablePanel.py:72
    +#: ../controls/VariablePanel.py:90
    msgid "External"
    msgstr "External"
    -#: ../ProjectController.py:802
    +#: ../ProjectController.py:826
    msgid "Extracting Located Variables...\n"
    msgstr "Extracting Located Variables...\n"
    -#: ../dialogs/PouTransitionDialog.py:36 ../dialogs/PouActionDialog.py:32
    -#: ../dialogs/PouDialog.py:37 ../controls/ProjectPropertiesPanel.py:144
    +#: ../dialogs/PouTransitionDialog.py:40 ../dialogs/PouActionDialog.py:36
    +#: ../dialogs/PouDialog.py:44 ../controls/ProjectPropertiesPanel.py:158
    msgid "FBD"
    msgstr "FBD"
    -#: ../ProjectController.py:1791
    +#: ../ProjectController.py:1773
    msgid "Failed : Must build before transfer.\n"
    msgstr "Failed : Must build before transfer.\n"
    -#: ../dialogs/LDElementDialog.py:77 ../editors/Viewer.py:521
    +#: ../dialogs/LDElementDialog.py:80 ../editors/Viewer.py:556
    msgid "Falling Edge"
    msgstr "Falling Edge"
    -#: ../ProjectController.py:1070
    +#: ../ProjectController.py:1098
    msgid "Fatal : cannot get builder.\n"
    msgstr "Fatal : cannot get builder.\n"
    -#: ../Beremiz.py:156
    +#: ../Beremiz.py:160
    #, python-format
    msgid "Fetching %s"
    msgstr "Fetching %s"
    -#: ../dialogs/DurationEditorDialog.py:164
    +#: ../dialogs/DurationEditorDialog.py:167
    #, python-format
    msgid "Field %s hasn't a valid value!"
    msgstr "Field %s hasn't a valid value!"
    -#: ../dialogs/DurationEditorDialog.py:166
    +#: ../dialogs/DurationEditorDialog.py:169
    #, python-format
    msgid "Fields %s haven't a valid value!"
    msgstr "Fields %s haven't a valid value!"
    -#: ../controls/FolderTree.py:216
    +#: ../controls/FolderTree.py:221
    #, python-format
    msgid "File '%s' already exists!"
    msgstr "File '%s' already exists!"
    -#: ../dialogs/SearchInProjectDialog.py:98 ../dialogs/FindInPouDialog.py:37
    -#: ../dialogs/FindInPouDialog.py:104 ../IDEFrame.py:375
    +#: ../dialogs/SearchInProjectDialog.py:102 ../dialogs/FindInPouDialog.py:40
    +#: ../dialogs/FindInPouDialog.py:107 ../IDEFrame.py:377
    msgid "Find"
    msgstr "Find"
    -#: ../IDEFrame.py:377
    +#: ../IDEFrame.py:379
    msgid "Find Next"
    msgstr "Find Next"
    -#: ../IDEFrame.py:379
    +#: ../IDEFrame.py:381
    msgid "Find Previous"
    msgstr "Find Previous"
    @@ -1696,93 +1690,89 @@
    msgid "Find position"
    msgstr "Find position"
    -#: ../dialogs/FindInPouDialog.py:55
    +#: ../dialogs/FindInPouDialog.py:58
    msgid "Find:"
    msgstr "Find:"
    -#: ../connectors/PYRO/__init__.py:163
    -msgid "Force runtime reload\n"
    -msgstr "Force runtime reload\n"
    -
    -#: ../editors/Viewer.py:1600
    +#: ../editors/Viewer.py:1633
    msgid "Force value"
    msgstr "Force value"
    -#: ../dialogs/ForceVariableDialog.py:162
    +#: ../dialogs/ForceVariableDialog.py:176
    msgid "Forcing Variable Value"
    msgstr "Forcing Variable Value"
    -#: ../dialogs/SFCTransitionDialog.py:182 ../dialogs/PouTransitionDialog.py:97
    -#: ../dialogs/ProjectDialog.py:73 ../dialogs/PouActionDialog.py:95
    -#: ../dialogs/PouDialog.py:117
    +#: ../dialogs/SFCTransitionDialog.py:184 ../dialogs/PouTransitionDialog.py:104
    +#: ../dialogs/ProjectDialog.py:79 ../dialogs/PouActionDialog.py:102
    +#: ../dialogs/PouDialog.py:125
    #, python-format
    msgid "Form isn't complete. %s must be filled!"
    msgstr "Form isn't complete. %s must be filled!"
    -#: ../dialogs/SFCStepDialog.py:147 ../dialogs/FBDBlockDialog.py:236
    -#: ../dialogs/ConnectionDialog.py:163
    +#: ../dialogs/SFCStepDialog.py:150 ../dialogs/FBDBlockDialog.py:239
    +#: ../dialogs/ConnectionDialog.py:166
    msgid "Form isn't complete. Name must be filled!"
    msgstr "Form isn't complete. Name must be filled!"
    -#: ../dialogs/FBDBlockDialog.py:232
    +#: ../dialogs/FBDBlockDialog.py:235
    msgid "Form isn't complete. Valid block type must be selected!"
    msgstr "Form isn't complete. Valid block type must be selected!"
    -#: ../dialogs/FindInPouDialog.py:72
    +#: ../dialogs/FindInPouDialog.py:75
    msgid "Forward"
    msgstr "Forward"
    -#: ../dialogs/SearchInProjectDialog.py:37 ../IDEFrame.py:1749
    +#: ../dialogs/SearchInProjectDialog.py:40 ../IDEFrame.py:1780
    msgid "Function"
    msgstr "Function"
    -#: ../IDEFrame.py:349
    +#: ../IDEFrame.py:354
    msgid "Function &Block"
    msgstr "Function &Block"
    -#: ../dialogs/SearchInProjectDialog.py:38 ../IDEFrame.py:1748
    -#: ../IDEFrame.py:1941
    +#: ../dialogs/SearchInProjectDialog.py:41 ../IDEFrame.py:1779
    +#: ../IDEFrame.py:1972
    msgid "Function Block"
    msgstr "Function Block"
    -#: ../controls/VariablePanel.py:854
    +#: ../controls/VariablePanel.py:868
    msgid "Function Block Types"
    msgstr "Function Block Types"
    -#: ../PLCControler.py:97
    +#: ../plcopen/types_enums.py:75
    msgid "Function Blocks"
    msgstr "Function Blocks"
    -#: ../editors/Viewer.py:249
    +#: ../editors/Viewer.py:290
    msgid "Function Blocks can't be used in Functions!"
    msgstr "Function Blocks can't be used in Functions!"
    -#: ../PLCControler.py:2343
    +#: ../PLCControler.py:1907
    #, python-format
    msgid "FunctionBlock \"%s\" can't be pasted in a Function!!!"
    msgstr "FunctionBlock \"%s\" can't be pasted in a Function!!!"
    -#: ../PLCControler.py:97
    +#: ../plcopen/types_enums.py:75
    msgid "Functions"
    msgstr "Functions"
    -#: ../PLCOpenEditor.py:117
    +#: ../PLCOpenEditor.py:88
    msgid "Generate Program"
    msgstr "Generate Program"
    -#: ../ProjectController.py:703
    +#: ../ProjectController.py:722
    msgid "Generating SoftPLC IEC-61131 ST/IL/SFC code...\n"
    msgstr "Generating SoftPLC IEC-61131 ST/IL/SFC code...\n"
    -#: ../controls/VariablePanel.py:73
    +#: ../controls/VariablePanel.py:91
    msgid "Global"
    msgstr "Global"
    -#: ../controls/DebugVariablePanel/DebugVariablePanel.py:242
    +#: ../controls/DebugVariablePanel/DebugVariablePanel.py:245
    msgid "Go to current value"
    msgstr "Go to current value"
    -#: ../controls/ProjectPropertiesPanel.py:174
    +#: ../controls/ProjectPropertiesPanel.py:189
    msgid "Graphics"
    msgstr "Graphics"
    @@ -1794,110 +1784,114 @@
    msgid "Greater than or equal to"
    msgstr "Greater than or equal to"
    -#: ../controls/ProjectPropertiesPanel.py:135
    +#: ../controls/ProjectPropertiesPanel.py:149
    msgid "Grid Resolution:"
    msgstr "Grid Resolution:"
    -#: ../runtime/NevowServer.py:182
    +#: ../runtime/NevowServer.py:192
    msgid "HTTP interface port :"
    msgstr "HTTP interface port :"
    -#: ../controls/ProjectPropertiesPanel.py:121
    +#: ../controls/ProjectPropertiesPanel.py:135
    msgid "Height:"
    msgstr "Height:"
    -#: ../editors/FileManagementPanel.py:85
    +#: ../editors/FileManagementPanel.py:89
    msgid "Home Directory:"
    msgstr "Home Directory:"
    -#: ../controls/ProjectPropertiesPanel.py:151
    +#: ../controls/ProjectPropertiesPanel.py:165
    msgid "Horizontal:"
    msgstr "Horizontal:"
    -#: ../dialogs/DurationEditorDialog.py:45
    +#: ../dialogs/DurationEditorDialog.py:47
    msgid "Hours:"
    msgstr "Hours:"
    -#: ../dialogs/PouTransitionDialog.py:36 ../dialogs/PouActionDialog.py:32
    -#: ../dialogs/PouDialog.py:37
    +#: ../dialogs/PouTransitionDialog.py:40 ../dialogs/PouActionDialog.py:36
    +#: ../dialogs/PouDialog.py:44
    msgid "IL"
    msgstr "IL"
    -#: ../dialogs/DiscoveryDialog.py:94
    +#: ../dialogs/DiscoveryDialog.py:91
    msgid "IP"
    msgstr "IP"
    -#: ../Beremiz_service.py:310 ../Beremiz_service.py:311
    +#: ../Beremiz_service.py:318 ../Beremiz_service.py:320
    msgid "IP is not valid!"
    msgstr "IP is not valid!"
    -#: ../svgui/svgui.py:44 ../svgui/svgui.py:45
    +#: ../svgui/svgui.py:50 ../svgui/svgui.py:51
    msgid "Import SVG"
    msgstr "Import SVG"
    -#: ../dialogs/FBDVariableDialog.py:39 ../editors/Viewer.py:1629
    -#: ../controls/VariablePanel.py:71
    +#: ../dialogs/FBDVariableDialog.py:41 ../editors/Viewer.py:1662
    +#: ../controls/VariablePanel.py:89
    msgid "InOut"
    msgstr "InOut"
    -#: ../editors/Viewer.py:431
    +#: ../PLCGenerator.py:1040
    +#, python-brace-format
    +msgid "InOut variable {a1} in block {a2} in POU {a3} must be connected."
    +msgstr "InOut variable {a1} in block {a2} in POU {a3} must be connected."
    +
    +#: ../editors/Viewer.py:473
    msgid "Inactive"
    msgstr "Inactive"
    -#: ../controls/VariablePanel.py:276
    +#: ../controls/VariablePanel.py:300
    #, python-brace-format
    msgid "Incompatible data types between \"{a1}\" and \"{a2}\""
    msgstr "Incompatible data types between \"{a1}\" and \"{a2}\""
    -#: ../controls/VariablePanel.py:282
    +#: ../controls/VariablePanel.py:306
    #, python-format
    msgid "Incompatible size of data between \"%s\" and \"BOOL\""
    msgstr "Incompatible size of data between \"%s\" and \"BOOL\""
    -#: ../controls/VariablePanel.py:286
    +#: ../controls/VariablePanel.py:310
    #, python-brace-format
    msgid "Incompatible size of data between \"{a1}\" and \"{a2}\""
    msgstr "Incompatible size of data between \"{a1}\" and \"{a2}\""
    -#: ../dialogs/ActionBlockDialog.py:39
    +#: ../dialogs/ActionBlockDialog.py:42
    msgid "Indicator"
    msgstr "Indicator"
    -#: ../editors/CodeFileEditor.py:739
    +#: ../editors/CodeFileEditor.py:734
    msgid "Initial"
    msgstr "Initial"
    -#: ../editors/Viewer.py:611
    +#: ../editors/Viewer.py:650
    msgid "Initial Step"
    msgstr "Initial Step"
    -#: ../editors/DataTypeEditor.py:50 ../controls/VariablePanel.py:53
    -#: ../controls/VariablePanel.py:54
    +#: ../editors/DataTypeEditor.py:55 ../controls/VariablePanel.py:63
    msgid "Initial Value"
    msgstr "Initial Value"
    -#: ../editors/DataTypeEditor.py:185 ../editors/DataTypeEditor.py:216
    -#: ../editors/DataTypeEditor.py:272 ../editors/DataTypeEditor.py:310
    +#: ../editors/DataTypeEditor.py:193 ../editors/DataTypeEditor.py:224
    +#: ../editors/DataTypeEditor.py:281 ../editors/DataTypeEditor.py:320
    msgid "Initial Value:"
    msgstr "Initial Value:"
    -#: ../svgui/svgui.py:48
    +#: ../svgui/svgui.py:56
    msgid "Inkscape"
    msgstr "Inkscape"
    -#: ../dialogs/SFCTransitionDialog.py:76 ../dialogs/ActionBlockDialog.py:43
    +#: ../dialogs/SFCTransitionDialog.py:77 ../dialogs/ActionBlockDialog.py:47
    msgid "Inline"
    msgstr "Inline"
    -#: ../dialogs/SFCStepDialog.py:71 ../dialogs/FBDVariableDialog.py:38
    -#: ../dialogs/BrowseLocationsDialog.py:41 ../editors/Viewer.py:290
    -#: ../editors/Viewer.py:1627 ../editors/TextViewer.py:307
    -#: ../controls/LocationCellEditor.py:98 ../controls/VariablePanel.py:71
    -#: ../controls/VariablePanel.py:291 ../controls/VariablePanel.py:351
    +#: ../dialogs/SFCStepDialog.py:73 ../dialogs/FBDVariableDialog.py:40
    +#: ../dialogs/BrowseLocationsDialog.py:43 ../editors/Viewer.py:333
    +#: ../editors/Viewer.py:1660 ../editors/TextViewer.py:307
    +#: ../controls/LocationCellEditor.py:103 ../controls/VariablePanel.py:89
    +#: ../controls/VariablePanel.py:317 ../controls/VariablePanel.py:380
    msgid "Input"
    msgstr "Input"
    -#: ../dialogs/FBDBlockDialog.py:96
    +#: ../dialogs/FBDBlockDialog.py:99
    msgid "Inputs:"
    msgstr "Inputs:"
    @@ -1905,64 +1899,72 @@
    msgid "Insertion (into)"
    msgstr "Insertion (into)"
    -#: ../plcopen/plcopen.py:1696
    +#: ../plcopen/plcopen.py:1948
    #, python-format
    msgid "Instance with id %d doesn't exist!"
    msgstr "Instance with id %d doesn't exist!"
    -#: ../editors/ResourceEditor.py:264
    +#: ../editors/ResourceEditor.py:279
    msgid "Instances:"
    msgstr "Instances:"
    -#: ../controls/VariablePanel.py:70
    +#: ../controls/VariablePanel.py:88
    msgid "Interface"
    msgstr "Interface"
    -#: ../editors/ResourceEditor.py:72
    +#: ../editors/ResourceEditor.py:81
    msgid "Interrupt"
    msgstr "Interrupt"
    -#: ../editors/ResourceEditor.py:68
    +#: ../editors/ResourceEditor.py:76
    msgid "Interval"
    msgstr "Interval"
    -#: ../PLCControler.py:2331
    +#: ../controls/ProjectPropertiesPanel.py:304
    +msgid ""
    +"Invalid URL!\n"
    +"Please enter correct URL address."
    +msgstr ""
    +"Invalid URL!\n"
    +"Please enter correct URL address."
    +
    +#: ../PLCControler.py:1895
    msgid "Invalid plcopen element(s)!!!"
    msgstr "Invalid plcopen element(s)!!!"
    -#: ../canfestival/config_utils.py:381
    +#: ../canfestival/config_utils.py:407
    #, python-brace-format
    -msgid "Invalid type \"{a1}\"-> {a2} != {a3} for location\"{a4}\""
    -msgstr "Invalid type \"{a1}\"-> {a2} != {a3} for location\"{a4}\""
    -
    -#: ../canfestival/config_utils.py:645
    +msgid "Invalid type \"{a1}\"-> {a2} != {a3} for location \"{a4}\""
    +msgstr "Invalid type \"{a1}\"-> {a2} != {a3} for location \"{a4}\""
    +
    +#: ../canfestival/config_utils.py:689
    #, python-brace-format
    msgid "Invalid type \"{a1}\"-> {a2} != {a3} for location \"{a4}\""
    msgstr "Invalid type \"{a1}\"-> {a2} != {a3} for location \"{a4}\""
    -#: ../controls/DebugVariablePanel/DebugVariablePanel.py:132
    -#: ../controls/DebugVariablePanel/DebugVariableTextViewer.py:92
    -#: ../controls/DebugVariablePanel/DebugVariableGraphicViewer.py:166
    +#: ../controls/DebugVariablePanel/DebugVariablePanel.py:139
    +#: ../controls/DebugVariablePanel/DebugVariableTextViewer.py:93
    +#: ../controls/DebugVariablePanel/DebugVariableGraphicViewer.py:162
    #, python-format
    msgid "Invalid value \"%s\" for debug variable"
    msgstr "Invalid value \"%s\" for debug variable"
    -#: ../controls/VariablePanel.py:255 ../controls/VariablePanel.py:258
    +#: ../controls/VariablePanel.py:279 ../controls/VariablePanel.py:282
    #, python-format
    msgid "Invalid value \"%s\" for variable grid element"
    msgstr "Invalid value \"%s\" for variable grid element"
    -#: ../editors/Viewer.py:234 ../editors/Viewer.py:237
    +#: ../editors/Viewer.py:276 ../editors/Viewer.py:279
    #, python-format
    msgid "Invalid value \"%s\" for viewer block"
    msgstr "Invalid value \"%s\" for viewer block"
    -#: ../dialogs/ForceVariableDialog.py:195
    +#: ../dialogs/ForceVariableDialog.py:211
    #, python-brace-format
    msgid "Invalid value \"{a1}\" for \"{a2}\" variable!"
    msgstr "Invalid value \"{a1}\" for \"{a2}\" variable!"
    -#: ../dialogs/DurationEditorDialog.py:121
    +#: ../dialogs/DurationEditorDialog.py:124
    msgid ""
    "Invalid value!\n"
    "You must fill a numeric value."
    @@ -1970,51 +1972,55 @@
    "Invalid value!\n"
    "You must fill a numeric value."
    -#: ../editors/Viewer.py:616 ../editors/Viewer.py:2392
    +#: ../connectors/WAMP/dialog.py:38
    +msgid "Is connection secure?"
    +msgstr "Is connection secure?"
    +
    +#: ../editors/Viewer.py:655 ../editors/Viewer.py:2425
    msgid "Jump"
    msgstr "Jump"
    -#: ../dialogs/PouTransitionDialog.py:36 ../dialogs/PouActionDialog.py:32
    -#: ../dialogs/PouDialog.py:37 ../controls/ProjectPropertiesPanel.py:144
    +#: ../dialogs/PouTransitionDialog.py:40 ../dialogs/PouActionDialog.py:36
    +#: ../dialogs/PouDialog.py:44 ../controls/ProjectPropertiesPanel.py:158
    msgid "LD"
    msgstr "LD"
    -#: ../editors/LDViewer.py:215 ../editors/LDViewer.py:231
    +#: ../editors/LDViewer.py:221 ../editors/LDViewer.py:240
    #, python-format
    msgid "Ladder element with id %d is on more than one rung."
    msgstr "Ladder element with id %d is on more than one rung."
    -#: ../dialogs/PouTransitionDialog.py:86 ../dialogs/PouActionDialog.py:84
    -#: ../dialogs/PouDialog.py:105
    +#: ../dialogs/PouTransitionDialog.py:93 ../dialogs/PouActionDialog.py:91
    +#: ../dialogs/PouDialog.py:113
    msgid "Language"
    msgstr "Language"
    -#: ../controls/ProjectPropertiesPanel.py:187
    +#: ../controls/ProjectPropertiesPanel.py:206
    msgid "Language (optional):"
    msgstr "Language (optional):"
    -#: ../dialogs/PouTransitionDialog.py:60 ../dialogs/PouActionDialog.py:56
    -#: ../dialogs/PouDialog.py:73
    +#: ../dialogs/PouTransitionDialog.py:67 ../dialogs/PouActionDialog.py:63
    +#: ../dialogs/PouDialog.py:81
    msgid "Language:"
    msgstr "Language:"
    -#: ../ProjectController.py:1797
    +#: ../ProjectController.py:1779
    msgid "Latest build already matches current target. Transfering anyway...\n"
    msgstr "Latest build already matches current target. Transfering anyway...\n"
    -#: ../Beremiz_service.py:273
    +#: ../Beremiz_service.py:281
    msgid "Launch WX GUI inspector"
    msgstr "Launch WX GUI inspector"
    -#: ../Beremiz_service.py:272
    +#: ../Beremiz_service.py:280
    msgid "Launch a live Python shell"
    msgstr "Launch a live Python shell"
    -#: ../editors/Viewer.py:544
    +#: ../editors/Viewer.py:580
    msgid "Left"
    msgstr "Left"
    -#: ../dialogs/LDPowerRailDialog.py:63
    +#: ../dialogs/LDPowerRailDialog.py:64
    msgid "Left PowerRail"
    msgstr "Left PowerRail"
    @@ -2030,11 +2036,11 @@
    msgid "Less than or equal to"
    msgstr "Less than or equal to"
    -#: ../IDEFrame.py:631
    +#: ../IDEFrame.py:652
    msgid "Library"
    msgstr "Library"
    -#: ../dialogs/AboutDialog.py:151
    +#: ../dialogs/AboutDialog.py:145
    msgid "License"
    msgstr "License"
    @@ -2042,27 +2048,27 @@
    msgid "Limitation"
    msgstr "Limitation"
    -#: ../targets/toolchain_gcc.py:202
    +#: ../targets/toolchain_gcc.py:209
    msgid "Linking :\n"
    msgstr "Linking :\n"
    -#: ../dialogs/DiscoveryDialog.py:112 ../controls/VariablePanel.py:72
    +#: ../dialogs/DiscoveryDialog.py:115 ../controls/VariablePanel.py:90
    msgid "Local"
    msgstr "Local"
    -#: ../canfestival/canfestival.py:348
    +#: ../canfestival/canfestival.py:359
    msgid "Local entries"
    msgstr "Local entries"
    -#: ../ProjectController.py:1703
    +#: ../ProjectController.py:1685
    msgid "Local service discovery failed!\n"
    msgstr "Local service discovery failed!\n"
    -#: ../controls/VariablePanel.py:53
    +#: ../controls/VariablePanel.py:62
    msgid "Location"
    msgstr "Location"
    -#: ../dialogs/BrowseLocationsDialog.py:72
    +#: ../dialogs/BrowseLocationsDialog.py:79
    msgid "Locations available:"
    msgstr "Locations available:"
    @@ -2070,12 +2076,12 @@
    msgid "Logarithm to base 10"
    msgstr "Logarithm to base 10"
    -#: ../connectors/PYRO/__init__.py:94
    +#: ../connectors/PYRO/__init__.py:102
    #, python-format
    msgid "MDNS resolution failure for '%s'\n"
    msgstr "MDNS resolution failure for '%s'\n"
    -#: ../canfestival/SlaveEditor.py:64 ../canfestival/NetworkEditor.py:85
    +#: ../canfestival/SlaveEditor.py:68 ../canfestival/NetworkEditor.py:92
    msgid "Map Variable"
    msgstr "Map Variable"
    @@ -2083,11 +2089,15 @@
    msgid "Map located variables over CANopen"
    msgstr "Map located variables over CANopen"
    -#: ../canfestival/NetworkEditor.py:106
    +#: ../features.py:32
    +msgid "Map located variables over Modbus"
    +msgstr "Map located variables over Modbus"
    +
    +#: ../canfestival/NetworkEditor.py:113
    msgid "Master"
    msgstr "Master"
    -#: ../ConfigTreeNode.py:539
    +#: ../ConfigTreeNode.py:544
    #, python-brace-format
    msgid "Max count ({a1}) reached for this confnode of type {a2} "
    msgstr "Max count ({a1}) reached for this confnode of type {a2} "
    @@ -2096,29 +2106,29 @@
    msgid "Maximum"
    msgstr "Maximum"
    -#: ../editors/DataTypeEditor.py:239
    +#: ../editors/DataTypeEditor.py:246
    msgid "Maximum:"
    msgstr "Maximum:"
    -#: ../dialogs/BrowseLocationsDialog.py:43 ../editors/Viewer.py:290
    -#: ../editors/TextViewer.py:307 ../controls/LocationCellEditor.py:98
    -#: ../controls/VariablePanel.py:291 ../controls/VariablePanel.py:351
    +#: ../dialogs/BrowseLocationsDialog.py:45 ../editors/Viewer.py:333
    +#: ../editors/TextViewer.py:307 ../controls/LocationCellEditor.py:103
    +#: ../controls/VariablePanel.py:317 ../controls/VariablePanel.py:380
    msgid "Memory"
    msgstr "Memory"
    -#: ../IDEFrame.py:599
    +#: ../IDEFrame.py:617
    msgid "Menu ToolBar"
    msgstr "Menu ToolBar"
    -#: ../dialogs/DurationEditorDialog.py:49
    +#: ../dialogs/DurationEditorDialog.py:51
    msgid "Microseconds:"
    msgstr "Microseconds:"
    -#: ../editors/Viewer.py:549
    +#: ../editors/Viewer.py:585
    msgid "Middle"
    msgstr "Middle"
    -#: ../dialogs/DurationEditorDialog.py:48
    +#: ../dialogs/DurationEditorDialog.py:50
    msgid "Milliseconds:"
    msgstr "Milliseconds:"
    @@ -2126,76 +2136,80 @@
    msgid "Minimum"
    msgstr "Minimum"
    -#: ../editors/DataTypeEditor.py:226
    +#: ../editors/DataTypeEditor.py:233
    msgid "Minimum:"
    msgstr "Minimum:"
    -#: ../dialogs/DurationEditorDialog.py:46
    +#: ../dialogs/DurationEditorDialog.py:48
    msgid "Minutes:"
    msgstr "Minutes:"
    -#: ../controls/ProjectPropertiesPanel.py:211
    +#: ../controls/ProjectPropertiesPanel.py:231
    msgid "Miscellaneous"
    msgstr "Miscellaneous"
    -#: ../dialogs/LDElementDialog.py:63
    +#: ../features.py:32
    +msgid "Modbus support"
    +msgstr "Modbus support"
    +
    +#: ../dialogs/LDElementDialog.py:65
    msgid "Modifier:"
    msgstr "Modifier:"
    -#: ../PLCGenerator.py:786 ../PLCGenerator.py:1230
    +#: ../PLCGenerator.py:795 ../PLCGenerator.py:1269
    #, python-brace-format
    msgid "More than one connector found corresponding to \"{a1}\" continuation in \"{a2}\" POU"
    msgstr "More than one connector found corresponding to \"{a1}\" continuation in \"{a2}\" POU"
    -#: ../dialogs/ActionBlockDialog.py:140
    +#: ../dialogs/ActionBlockDialog.py:146
    msgid "Move action down"
    msgstr "Move action down"
    -#: ../dialogs/ActionBlockDialog.py:139
    +#: ../dialogs/ActionBlockDialog.py:145
    msgid "Move action up"
    msgstr "Move action up"
    -#: ../controls/CustomEditableListBox.py:43
    +#: ../controls/CustomEditableListBox.py:46
    msgid "Move down"
    msgstr "Move down"
    -#: ../editors/DataTypeEditor.py:355
    +#: ../editors/DataTypeEditor.py:367
    msgid "Move element down"
    msgstr "Move element down"
    -#: ../editors/DataTypeEditor.py:354
    +#: ../editors/DataTypeEditor.py:366
    msgid "Move element up"
    msgstr "Move element up"
    -#: ../editors/ResourceEditor.py:271
    +#: ../editors/ResourceEditor.py:286
    msgid "Move instance down"
    msgstr "Move instance down"
    -#: ../editors/ResourceEditor.py:270
    +#: ../editors/ResourceEditor.py:285
    msgid "Move instance up"
    msgstr "Move instance up"
    -#: ../editors/ResourceEditor.py:242
    +#: ../editors/ResourceEditor.py:255
    msgid "Move task down"
    msgstr "Move task down"
    -#: ../editors/ResourceEditor.py:241
    +#: ../editors/ResourceEditor.py:254
    msgid "Move task up"
    msgstr "Move task up"
    -#: ../IDEFrame.py:99 ../IDEFrame.py:114 ../IDEFrame.py:144 ../IDEFrame.py:185
    +#: ../IDEFrame.py:106 ../IDEFrame.py:121 ../IDEFrame.py:151 ../IDEFrame.py:192
    msgid "Move the view"
    msgstr "Move the view"
    -#: ../controls/CustomEditableListBox.py:42
    +#: ../controls/CustomEditableListBox.py:45
    msgid "Move up"
    msgstr "Move up"
    -#: ../editors/CodeFileEditor.py:661 ../controls/VariablePanel.py:453
    +#: ../editors/CodeFileEditor.py:657 ../controls/VariablePanel.py:484
    msgid "Move variable down"
    msgstr "Move variable down"
    -#: ../editors/CodeFileEditor.py:660 ../controls/VariablePanel.py:452
    +#: ../editors/CodeFileEditor.py:656 ../controls/VariablePanel.py:483
    msgid "Move variable up"
    msgstr "Move variable up"
    @@ -2207,26 +2221,26 @@
    msgid "Multiplication"
    msgstr "Multiplication"
    -#: ../editors/FileManagementPanel.py:83
    +#: ../editors/FileManagementPanel.py:87
    msgid "My Computer:"
    msgstr "My Computer:"
    -#: ../dialogs/DiscoveryDialog.py:92
    +#: ../dialogs/DiscoveryDialog.py:89
    msgid "NAME"
    msgstr "NAME"
    -#: ../editors/ResourceEditor.py:68 ../editors/ResourceEditor.py:83
    -#: ../editors/DataTypeEditor.py:50 ../editors/CodeFileEditor.py:739
    -#: ../controls/VariablePanel.py:53 ../controls/VariablePanel.py:54
    +#: ../editors/ResourceEditor.py:76 ../editors/ResourceEditor.py:97
    +#: ../editors/DataTypeEditor.py:55 ../editors/CodeFileEditor.py:732
    +#: ../controls/VariablePanel.py:59
    msgid "Name"
    msgstr "Name"
    -#: ../Beremiz_service.py:334
    +#: ../Beremiz_service.py:342
    msgid "Name must not be null!"
    msgstr "Name must not be null!"
    -#: ../dialogs/SFCStepDialog.py:57 ../dialogs/FBDBlockDialog.py:86
    -#: ../dialogs/ConnectionDialog.py:76
    +#: ../dialogs/SFCStepDialog.py:59 ../dialogs/FBDBlockDialog.py:89
    +#: ../dialogs/ConnectionDialog.py:78
    msgid "Name:"
    msgstr "Name:"
    @@ -2234,46 +2248,46 @@
    msgid "Natural logarithm"
    msgstr "Natural logarithm"
    -#: ../dialogs/LDElementDialog.py:75 ../editors/Viewer.py:519
    +#: ../dialogs/LDElementDialog.py:78 ../editors/Viewer.py:554
    msgid "Negated"
    msgstr "Negated"
    +#: ../Beremiz_service.py:610
    +msgid "Nevow Web service failed. "
    +msgstr "Nevow Web service failed. "
    +
    #: ../Beremiz_service.py:580
    -msgid "Nevow Web service failed. "
    -msgstr "Nevow Web service failed. "
    -
    -#: ../Beremiz_service.py:556
    msgid "Nevow/Athena import failed :"
    msgstr "Nevow/Athena import failed :"
    -#: ../BeremizIDE.py:216 ../BeremizIDE.py:251 ../PLCOpenEditor.py:104
    -#: ../PLCOpenEditor.py:146
    +#: ../BeremizIDE.py:241 ../BeremizIDE.py:276 ../PLCOpenEditor.py:75
    +#: ../PLCOpenEditor.py:117
    msgid "New"
    msgstr "New"
    -#: ../controls/CustomEditableListBox.py:40
    +#: ../controls/CustomEditableListBox.py:43
    msgid "New item"
    msgstr "New item"
    -#: ../editors/Viewer.py:518
    +#: ../editors/Viewer.py:553
    msgid "No Modifier"
    msgstr "No Modifier"
    -#: ../ProjectController.py:1826
    +#: ../ProjectController.py:1808
    msgid "No PLC to transfer (did build succeed ?)\n"
    msgstr "No PLC to transfer (did build succeed ?)\n"
    -#: ../PLCGenerator.py:1631
    +#: ../PLCGenerator.py:1678
    #, python-format
    msgid "No body defined in \"%s\" POU"
    msgstr "No body defined in \"%s\" POU"
    -#: ../PLCGenerator.py:806 ../PLCGenerator.py:1241
    +#: ../PLCGenerator.py:816 ../PLCGenerator.py:1281
    #, python-brace-format
    msgid "No connector found corresponding to \"{a1}\" continuation in \"{a2}\" POU"
    msgstr "No connector found corresponding to \"{a1}\" continuation in \"{a2}\" POU"
    -#: ../PLCOpenEditor.py:357
    +#: ../PLCOpenEditor.py:331
    msgid ""
    "No documentation available.\n"
    "Coming soon."
    @@ -2281,58 +2295,58 @@
    "No documentation available.\n"
    "Coming soon."
    -#: ../PLCGenerator.py:829
    +#: ../PLCGenerator.py:841
    #, python-format
    msgid "No informations found for \"%s\" block"
    msgstr "No informations found for \"%s\" block"
    -#: ../PLCGenerator.py:1194
    +#: ../PLCGenerator.py:1232
    #, python-brace-format
    msgid "No output {a1} variable found in block {a2} in POU {a3}. Connection must be broken"
    msgstr "No output {a1} variable found in block {a2} in POU {a3}. Connection must be broken"
    -#: ../controls/SearchResultPanel.py:169
    +#: ../controls/SearchResultPanel.py:175
    msgid "No search results available."
    msgstr "No search results available."
    -#: ../svgui/svgui.py:134
    +#: ../svgui/svgui.py:142
    #, python-format
    msgid "No such SVG file: %s\n"
    msgstr "No such SVG file: %s\n"
    -#: ../canfestival/config_utils.py:639
    +#: ../canfestival/config_utils.py:682
    #, python-brace-format
    msgid "No such index/subindex ({a1},{a2}) (variable {a3})"
    msgstr "No such index/subindex ({a1},{a2}) (variable {a3})"
    -#: ../canfestival/config_utils.py:362
    +#: ../canfestival/config_utils.py:387
    #, python-brace-format
    msgid "No such index/subindex ({a1},{a2}) in ID : {a3} (variable {a4})"
    msgstr "No such index/subindex ({a1},{a2}) in ID : {a3} (variable {a4})"
    -#: ../dialogs/BrowseValuesLibraryDialog.py:83
    +#: ../dialogs/BrowseValuesLibraryDialog.py:87
    msgid "No valid value selected!"
    msgstr "No valid value selected!"
    -#: ../PLCGenerator.py:1629
    +#: ../PLCGenerator.py:1676
    #, python-format
    msgid "No variable defined in \"%s\" POU"
    msgstr "No variable defined in \"%s\" POU"
    -#: ../canfestival/config_utils.py:355
    +#: ../canfestival/config_utils.py:379
    #, python-brace-format
    msgid "Non existing node ID : {a1} (variable {a2})"
    msgstr "Non existing node ID : {a1} (variable {a2})"
    -#: ../controls/VariablePanel.py:64
    +#: ../controls/VariablePanel.py:79
    msgid "Non-Retain"
    msgstr "Non-Retain"
    -#: ../dialogs/LDElementDialog.py:75
    +#: ../dialogs/LDElementDialog.py:78
    msgid "Normal"
    msgstr "Normal"
    -#: ../canfestival/config_utils.py:389
    +#: ../canfestival/config_utils.py:426
    #, python-brace-format
    msgid "Not PDO mappable variable : '{a1}' (ID:{a2},Idx:{a3},sIdx:{a4}))"
    msgstr "Not PDO mappable variable : '{a1}' (ID:{a2},Idx:{a3},sIdx:{a4}))"
    @@ -2341,7 +2355,7 @@
    msgid "Not equal to"
    msgstr "Not equal to"
    -#: ../dialogs/SFCDivergenceDialog.py:89
    +#: ../dialogs/SFCDivergenceDialog.py:91
    msgid "Number of sequences:"
    msgstr "Number of sequences:"
    @@ -2349,88 +2363,88 @@
    msgid "Numerical"
    msgstr "Numerical"
    -#: ../editors/CodeFileEditor.py:739
    +#: ../editors/CodeFileEditor.py:736
    msgid "OnChange"
    msgstr "OnChange"
    -#: ../dialogs/SearchInProjectDialog.py:84
    +#: ../dialogs/SearchInProjectDialog.py:88
    msgid "Only Elements"
    msgstr "Only Elements"
    -#: ../BeremizIDE.py:218 ../BeremizIDE.py:252 ../PLCOpenEditor.py:106
    -#: ../PLCOpenEditor.py:147
    +#: ../BeremizIDE.py:243 ../BeremizIDE.py:277 ../PLCOpenEditor.py:77
    +#: ../PLCOpenEditor.py:118
    msgid "Open"
    msgstr "Open"
    -#: ../svgui/svgui.py:143
    +#: ../svgui/svgui.py:151
    msgid "Open Inkscape"
    msgstr "Open Inkscape"
    -#: ../version.py:77
    +#: ../version.py:86
    msgid "Open Source framework for automation, implemented IEC 61131 IDE with constantly growing set of extensions and flexible PLC runtime."
    msgstr "Open Source framework for automation, implemented IEC 61131 IDE with constantly growing set of extensions and flexible PLC runtime."
    -#: ../ProjectController.py:1878
    +#: ../ProjectController.py:1879
    msgid "Open a file explorer to manage project files"
    msgstr "Open a file explorer to manage project files"
    -#: ../wxglade_hmi/wxglade_hmi.py:155
    +#: ../wxglade_hmi/wxglade_hmi.py:161
    msgid "Open wxGlade"
    msgstr "Open wxGlade"
    -#: ../controls/VariablePanel.py:53 ../controls/VariablePanel.py:54
    +#: ../controls/VariablePanel.py:64
    msgid "Option"
    msgstr "Option"
    -#: ../dialogs/FindInPouDialog.py:81 ../editors/CodeFileEditor.py:739
    +#: ../dialogs/FindInPouDialog.py:84 ../editors/CodeFileEditor.py:737
    msgid "Options"
    msgstr "Options"
    -#: ../controls/ProjectPropertiesPanel.py:98
    +#: ../controls/ProjectPropertiesPanel.py:109
    msgid "Organization (optional):"
    msgstr "Organization (optional):"
    -#: ../canfestival/SlaveEditor.py:74 ../canfestival/NetworkEditor.py:95
    +#: ../canfestival/SlaveEditor.py:78 ../canfestival/NetworkEditor.py:102
    msgid "Other Profile"
    msgstr "Other Profile"
    -#: ../dialogs/SFCStepDialog.py:72 ../dialogs/FBDVariableDialog.py:40
    -#: ../dialogs/BrowseLocationsDialog.py:42 ../editors/Viewer.py:290
    -#: ../editors/Viewer.py:1628 ../editors/TextViewer.py:307
    -#: ../controls/LocationCellEditor.py:98 ../controls/VariablePanel.py:71
    -#: ../controls/VariablePanel.py:291 ../controls/VariablePanel.py:351
    +#: ../dialogs/SFCStepDialog.py:74 ../dialogs/FBDVariableDialog.py:42
    +#: ../dialogs/BrowseLocationsDialog.py:44 ../editors/Viewer.py:333
    +#: ../editors/Viewer.py:1661 ../editors/TextViewer.py:307
    +#: ../controls/LocationCellEditor.py:103 ../controls/VariablePanel.py:89
    +#: ../controls/VariablePanel.py:317 ../controls/VariablePanel.py:380
    msgid "Output"
    msgstr "Output"
    -#: ../canfestival/SlaveEditor.py:63 ../canfestival/NetworkEditor.py:84
    +#: ../canfestival/SlaveEditor.py:67 ../canfestival/NetworkEditor.py:91
    msgid "PDO Receive"
    msgstr "PDO Receive"
    -#: ../canfestival/SlaveEditor.py:62 ../canfestival/NetworkEditor.py:83
    +#: ../canfestival/SlaveEditor.py:66 ../canfestival/NetworkEditor.py:90
    msgid "PDO Transmit"
    msgstr "PDO Transmit"
    -#: ../targets/toolchain_gcc.py:167
    +#: ../targets/toolchain_gcc.py:174
    msgid "PLC :\n"
    msgstr "PLC :\n"
    -#: ../BeremizIDE.py:355
    +#: ../BeremizIDE.py:383
    msgid "PLC Log"
    msgstr "PLC Log"
    -#: ../ProjectController.py:1054
    +#: ../ProjectController.py:1082
    msgid "PLC code generation failed !\n"
    msgstr "PLC code generation failed !\n"
    -#: ../Beremiz_service.py:297
    +#: ../Beremiz_service.py:305
    msgid "PLC is empty or already started."
    msgstr "PLC is empty or already started."
    -#: ../Beremiz_service.py:304
    +#: ../Beremiz_service.py:312
    msgid "PLC is not started."
    msgstr "PLC is not started."
    -#: ../PLCOpenEditor.py:206 ../PLCOpenEditor.py:319
    +#: ../PLCOpenEditor.py:180 ../PLCOpenEditor.py:293
    #, python-brace-format
    msgid ""
    "PLC syntax error at line {a1}:\n"
    @@ -2439,15 +2453,15 @@
    "PLC syntax error at line {a1}:\n"
    "{a2}"
    -#: ../PLCOpenEditor.py:302 ../PLCOpenEditor.py:383
    +#: ../PLCOpenEditor.py:276 ../PLCOpenEditor.py:357
    msgid "PLCOpen files (*.xml)|*.xml|All files|*.*"
    msgstr "PLCOpen files (*.xml)|*.xml|All files|*.*"
    -#: ../PLCOpenEditor.py:154 ../PLCOpenEditor.py:219
    +#: ../PLCOpenEditor.py:125 ../PLCOpenEditor.py:193
    msgid "PLCOpenEditor"
    msgstr "PLCOpenEditor"
    -#: ../PLCOpenEditor.py:365
    +#: ../PLCOpenEditor.py:339
    msgid ""
    "PLCOpenEditor is part of Beremiz project.\n"
    "\n"
    @@ -2457,205 +2471,205 @@
    "\n"
    "Beremiz is an "
    -#: ../dialogs/DiscoveryDialog.py:95
    +#: ../dialogs/DiscoveryDialog.py:92
    msgid "PORT"
    msgstr "PORT"
    -#: ../dialogs/PouDialog.py:101
    +#: ../dialogs/PouDialog.py:109
    msgid "POU Name"
    msgstr "POU Name"
    -#: ../dialogs/PouDialog.py:58
    +#: ../dialogs/PouDialog.py:66
    msgid "POU Name:"
    msgstr "POU Name:"
    -#: ../dialogs/PouDialog.py:103
    +#: ../dialogs/PouDialog.py:111
    msgid "POU Type"
    msgstr "POU Type"
    -#: ../dialogs/PouDialog.py:65
    +#: ../dialogs/PouDialog.py:73
    msgid "POU Type:"
    msgstr "POU Type:"
    -#: ../connectors/PYRO/__init__.py:45
    +#: ../connectors/PYRO/__init__.py:52
    #, python-format
    msgid "PYRO connecting to URI : %s\n"
    msgstr "PYRO connecting to URI : %s\n"
    -#: ../connectors/PYRO/__init__.py:61
    +#: ../connectors/PYRO/__init__.py:68
    #, python-format
    msgid "PYRO using certificates in '%s' \n"
    msgstr "PYRO using certificates in '%s' \n"
    -#: ../BeremizIDE.py:231 ../PLCOpenEditor.py:120
    +#: ../BeremizIDE.py:256 ../PLCOpenEditor.py:91
    msgid "Page Setup"
    msgstr "Page Setup"
    -#: ../controls/ProjectPropertiesPanel.py:111
    +#: ../controls/ProjectPropertiesPanel.py:124
    msgid "Page Size (optional):"
    msgstr "Page Size (optional):"
    -#: ../IDEFrame.py:2613
    +#: ../IDEFrame.py:2640
    #, python-format
    msgid "Page: %d"
    msgstr "Page: %d"
    -#: ../controls/PouInstanceVariablesPanel.py:124
    +#: ../controls/PouInstanceVariablesPanel.py:134
    msgid "Parent instance"
    msgstr "Parent instance"
    -#: ../editors/Viewer.py:657 ../IDEFrame.py:372 ../IDEFrame.py:426
    +#: ../editors/Viewer.py:696 ../IDEFrame.py:374 ../IDEFrame.py:428
    msgid "Paste"
    msgstr "Paste"
    -#: ../IDEFrame.py:1868
    +#: ../IDEFrame.py:1899
    msgid "Paste POU"
    msgstr "Paste POU"
    -#: ../dialogs/SearchInProjectDialog.py:56
    +#: ../dialogs/SearchInProjectDialog.py:60
    msgid "Pattern to search:"
    msgstr "Pattern to search:"
    -#: ../dialogs/LDPowerRailDialog.py:74
    +#: ../dialogs/LDPowerRailDialog.py:75
    msgid "Pin number:"
    msgstr "Pin number:"
    -#: ../editors/Viewer.py:2757 ../editors/Viewer.py:3014
    -#: ../editors/SFCViewer.py:770
    +#: ../editors/Viewer.py:2792 ../editors/Viewer.py:3060
    +#: ../editors/SFCViewer.py:785
    msgid "Please choose a target"
    msgstr "Please choose a target"
    -#: ../editors/TextViewer.py:262
    +#: ../editors/TextViewer.py:260
    msgid "Please enter a block name"
    msgstr "Please enter a block name"
    -#: ../editors/Viewer.py:2627 ../editors/Viewer.py:3056
    +#: ../editors/Viewer.py:2661 ../editors/Viewer.py:3103
    msgid "Please enter comment text"
    msgstr "Please enter comment text"
    -#: ../editors/SFCViewer.py:433 ../editors/SFCViewer.py:455
    -#: ../editors/SFCViewer.py:799
    +#: ../editors/SFCViewer.py:447 ../editors/SFCViewer.py:469
    +#: ../editors/SFCViewer.py:815
    msgid "Please enter step name"
    msgstr "Please enter step name"
    -#: ../Beremiz_service.py:196
    +#: ../dialogs/PouNameDialog.py:37 ../Beremiz_service.py:209
    msgid "Please enter text"
    msgstr "Please enter text"
    -#: ../dialogs/ForceVariableDialog.py:163
    +#: ../dialogs/ForceVariableDialog.py:177
    #, python-format
    msgid "Please enter value for a \"%s\" variable:"
    msgstr "Please enter value for a \"%s\" variable:"
    -#: ../Beremiz_service.py:319
    +#: ../Beremiz_service.py:327
    msgid "Port number must be 0 <= port <= 65535!"
    msgstr "Port number must be 0 <= port <= 65535!"
    -#: ../Beremiz_service.py:319
    +#: ../Beremiz_service.py:327
    msgid "Port number must be an integer!"
    msgstr "Port number must be an integer!"
    -#: ../editors/Viewer.py:595 ../editors/Viewer.py:2416
    +#: ../editors/Viewer.py:633 ../editors/Viewer.py:2449
    msgid "Power Rail"
    msgstr "Power Rail"
    -#: ../dialogs/LDPowerRailDialog.py:51
    +#: ../dialogs/LDPowerRailDialog.py:52
    msgid "Power Rail Properties"
    msgstr "Power Rail Properties"
    -#: ../BeremizIDE.py:233 ../PLCOpenEditor.py:122
    +#: ../BeremizIDE.py:258 ../PLCOpenEditor.py:93
    msgid "Preview"
    msgstr "Preview"
    -#: ../dialogs/BlockPreviewDialog.py:57
    +#: ../dialogs/BlockPreviewDialog.py:59
    msgid "Preview:"
    msgstr "Preview:"
    -#: ../BeremizIDE.py:235 ../BeremizIDE.py:255 ../PLCOpenEditor.py:124
    -#: ../PLCOpenEditor.py:150
    +#: ../BeremizIDE.py:260 ../BeremizIDE.py:280 ../PLCOpenEditor.py:95
    +#: ../PLCOpenEditor.py:121
    msgid "Print"
    msgstr "Print"
    -#: ../IDEFrame.py:1079
    +#: ../IDEFrame.py:1110
    msgid "Print preview"
    msgstr "Print preview"
    -#: ../editors/ResourceEditor.py:68
    +#: ../editors/ResourceEditor.py:76
    msgid "Priority"
    msgstr "Priority"
    -#: ../dialogs/SFCTransitionDialog.py:90
    +#: ../dialogs/SFCTransitionDialog.py:91
    msgid "Priority:"
    msgstr "Priority:"
    -#: ../runtime/PLCObject.py:369
    +#: ../runtime/PLCObject.py:518
    #, python-format
    msgid "Problem starting PLC : error %d"
    msgstr "Problem starting PLC : error %d"
    -#: ../dialogs/ProjectDialog.py:58
    +#: ../dialogs/ProjectDialog.py:63
    msgid "Product Name"
    msgstr "Product Name"
    -#: ../controls/ProjectPropertiesPanel.py:81
    +#: ../controls/ProjectPropertiesPanel.py:90
    msgid "Product Name (required):"
    msgstr "Product Name (required):"
    -#: ../controls/ProjectPropertiesPanel.py:83
    +#: ../controls/ProjectPropertiesPanel.py:92
    msgid "Product Release (optional):"
    msgstr "Product Release (optional):"
    -#: ../dialogs/ProjectDialog.py:59
    +#: ../dialogs/ProjectDialog.py:64
    msgid "Product Version"
    msgstr "Product Version"
    -#: ../controls/ProjectPropertiesPanel.py:82
    +#: ../controls/ProjectPropertiesPanel.py:91
    msgid "Product Version (required):"
    msgstr "Product Version (required):"
    -#: ../dialogs/SearchInProjectDialog.py:39 ../IDEFrame.py:1747
    -#: ../IDEFrame.py:1944
    +#: ../dialogs/SearchInProjectDialog.py:42 ../IDEFrame.py:1778
    +#: ../IDEFrame.py:1975
    msgid "Program"
    msgstr "Program"
    -#: ../PLCOpenEditor.py:347
    +#: ../PLCOpenEditor.py:321
    msgid "Program was successfully generated!"
    msgstr "Program was successfully generated!"
    -#: ../PLCControler.py:98
    +#: ../plcopen/types_enums.py:76
    msgid "Programs"
    msgstr "Programs"
    -#: ../editors/Viewer.py:243
    +#: ../editors/Viewer.py:285
    msgid "Programs can't be used by other POUs!"
    msgstr "Programs can't be used by other POUs!"
    -#: ../controls/ProjectPropertiesPanel.py:85 ../IDEFrame.py:584
    +#: ../controls/ProjectPropertiesPanel.py:94 ../IDEFrame.py:601
    msgid "Project"
    msgstr "Project"
    -#: ../controls/SearchResultPanel.py:173
    +#: ../controls/SearchResultPanel.py:180
    #, python-format
    msgid "Project '%s':"
    msgstr "Project '%s':"
    -#: ../ProjectController.py:1877
    +#: ../ProjectController.py:1878
    msgid "Project Files"
    msgstr "Project Files"
    -#: ../dialogs/ProjectDialog.py:57
    +#: ../dialogs/ProjectDialog.py:62
    msgid "Project Name"
    msgstr "Project Name"
    -#: ../controls/ProjectPropertiesPanel.py:79
    +#: ../controls/ProjectPropertiesPanel.py:88
    msgid "Project Name (required):"
    msgstr "Project Name (required):"
    -#: ../controls/ProjectPropertiesPanel.py:80
    +#: ../controls/ProjectPropertiesPanel.py:89
    msgid "Project Version (optional):"
    msgstr "Project Version (optional):"
    -#: ../PLCControler.py:3164
    +#: ../PLCControler.py:2717
    msgid ""
    "Project file syntax error:\n"
    "\n"
    @@ -2663,90 +2677,90 @@
    "Project file syntax error:\n"
    "\n"
    -#: ../dialogs/ProjectDialog.py:33 ../editors/ProjectNodeEditor.py:37
    +#: ../dialogs/ProjectDialog.py:36 ../editors/ProjectNodeEditor.py:40
    msgid "Project properties"
    msgstr "Project properties"
    -#: ../ConfigTreeNode.py:566
    +#: ../ConfigTreeNode.py:571
    #, python-brace-format
    msgid "Project tree layout do not match confnode.xml {a1}!={a2} "
    msgstr "Project tree layout do not match confnode.xml {a1}!={a2} "
    -#: ../dialogs/ConnectionDialog.py:98
    +#: ../dialogs/ConnectionDialog.py:101
    msgid "Propagate Name"
    msgstr "Propagate Name"
    -#: ../PLCControler.py:99
    +#: ../plcopen/types_enums.py:77
    msgid "Properties"
    msgstr "Properties"
    -#: ../Beremiz_service.py:442
    +#: ../Beremiz_service.py:427
    msgid "Publishing service on local network"
    msgstr "Publishing service on local network"
    -#: ../connectors/PYRO/__init__.py:118
    +#: ../connectors/PYRO/__init__.py:126
    #, python-format
    msgid "Pyro exception: %s\n"
    msgstr "Pyro exception: %s\n"
    -#: ../Beremiz_service.py:429
    -msgid "Pyro object's uri :"
    -msgstr "Pyro object's uri :"
    -
    -#: ../Beremiz_service.py:428
    +#: ../Beremiz_service.py:420
    msgid "Pyro port :"
    msgstr "Pyro port :"
    -#: ../py_ext/PythonEditor.py:81
    +#: ../py_ext/PythonEditor.py:84
    msgid "Python code"
    msgstr "Python code"
    -#: ../features.py:33
    +#: ../features.py:34
    msgid "Python file"
    msgstr "Python file"
    -#: ../dialogs/ActionBlockDialog.py:39
    +#: ../dialogs/ActionBlockDialog.py:42
    msgid "Qualifier"
    msgstr "Qualifier"
    -#: ../BeremizIDE.py:238 ../PLCOpenEditor.py:130 ../Beremiz_service.py:275
    +#: ../BeremizIDE.py:263 ../PLCOpenEditor.py:101 ../Beremiz_service.py:283
    msgid "Quit"
    msgstr "Quit"
    -#: ../controls/DebugVariablePanel/DebugVariablePanel.py:225
    +#: ../controls/DebugVariablePanel/DebugVariablePanel.py:227
    msgid "Range:"
    msgstr "Range:"
    -#: ../ProjectController.py:1873
    +#: ../ProjectController.py:1872
    msgid "Raw IEC code"
    msgstr "Raw IEC code"
    -#: ../BeremizIDE.py:1047
    +#: ../BeremizIDE.py:1083
    #, python-format
    msgid "Really delete node '%s'?"
    msgstr "Really delete node '%s'?"
    -#: ../IDEFrame.py:362 ../IDEFrame.py:422
    +#: ../connectors/WAMP/dialog.py:50
    +msgid "Realm:"
    +msgstr "Realm:"
    +
    +#: ../IDEFrame.py:367 ../IDEFrame.py:424
    msgid "Redo"
    msgstr "Redo"
    -#: ../dialogs/SFCTransitionDialog.py:75
    +#: ../dialogs/SFCTransitionDialog.py:76
    msgid "Reference"
    msgstr "Reference"
    -#: ../dialogs/DiscoveryDialog.py:107 ../IDEFrame.py:432
    +#: ../dialogs/DiscoveryDialog.py:109 ../IDEFrame.py:434
    msgid "Refresh"
    msgstr "Refresh"
    -#: ../dialogs/SearchInProjectDialog.py:66
    +#: ../dialogs/SearchInProjectDialog.py:70
    msgid "Regular expression"
    msgstr "Regular expression"
    -#: ../dialogs/FindInPouDialog.py:96
    +#: ../dialogs/FindInPouDialog.py:99
    msgid "Regular expressions"
    msgstr "Regular expressions"
    -#: ../editors/Viewer.py:1603
    +#: ../editors/Viewer.py:1636
    msgid "Release value"
    msgstr "Release value"
    @@ -2754,56 +2768,56 @@
    msgid "Remainder (modulo)"
    msgstr "Remainder (modulo)"
    -#: ../BeremizIDE.py:1048
    +#: ../BeremizIDE.py:1084
    #, python-format
    msgid "Remove %s node"
    msgstr "Remove %s node"
    -#: ../IDEFrame.py:2419
    +#: ../IDEFrame.py:2445
    msgid "Remove Datatype"
    msgstr "Remove Datatype"
    -#: ../IDEFrame.py:2424
    +#: ../IDEFrame.py:2450
    msgid "Remove Pou"
    msgstr "Remove Pou"
    -#: ../dialogs/ActionBlockDialog.py:138
    +#: ../dialogs/ActionBlockDialog.py:144
    msgid "Remove action"
    msgstr "Remove action"
    -#: ../editors/DataTypeEditor.py:353
    +#: ../editors/DataTypeEditor.py:365
    msgid "Remove element"
    msgstr "Remove element"
    -#: ../editors/FileManagementPanel.py:63
    +#: ../editors/FileManagementPanel.py:66
    msgid "Remove file from left folder"
    msgstr "Remove file from left folder"
    -#: ../editors/ResourceEditor.py:269
    +#: ../editors/ResourceEditor.py:284
    msgid "Remove instance"
    msgstr "Remove instance"
    -#: ../canfestival/NetworkEditor.py:104
    +#: ../canfestival/NetworkEditor.py:111
    msgid "Remove slave"
    msgstr "Remove slave"
    -#: ../editors/ResourceEditor.py:240
    +#: ../editors/ResourceEditor.py:253
    msgid "Remove task"
    msgstr "Remove task"
    -#: ../editors/CodeFileEditor.py:659 ../controls/VariablePanel.py:451
    +#: ../editors/CodeFileEditor.py:655 ../controls/VariablePanel.py:482
    msgid "Remove variable"
    msgstr "Remove variable"
    -#: ../IDEFrame.py:1948
    +#: ../IDEFrame.py:1979
    msgid "Rename"
    msgstr "Rename"
    -#: ../editors/FileManagementPanel.py:181
    +#: ../editors/FileManagementPanel.py:187
    msgid "Replace File"
    msgstr "Replace File"
    -#: ../editors/Viewer.py:561
    +#: ../editors/Viewer.py:598
    msgid "Replace Wire by connections"
    msgstr "Replace Wire by connections"
    @@ -2811,43 +2825,43 @@
    msgid "Replacement (within)"
    msgstr "Replacement (within)"
    -#: ../dialogs/LDElementDialog.py:76
    +#: ../dialogs/LDElementDialog.py:79
    msgid "Reset"
    msgstr "Reset"
    -#: ../editors/Viewer.py:642
    +#: ../editors/Viewer.py:681
    msgid "Reset Execution Order"
    msgstr "Reset Execution Order"
    -#: ../IDEFrame.py:451
    +#: ../IDEFrame.py:453
    msgid "Reset Perspective"
    msgstr "Reset Perspective"
    -#: ../controls/SearchResultPanel.py:105
    +#: ../controls/SearchResultPanel.py:103
    msgid "Reset search result"
    msgstr "Reset search result"
    -#: ../BeremizIDE.py:979 ../PLCControler.py:99
    +#: ../BeremizIDE.py:1015 ../plcopen/types_enums.py:77
    msgid "Resources"
    msgstr "Resources"
    -#: ../controls/VariablePanel.py:62
    +#: ../controls/VariablePanel.py:77
    msgid "Retain"
    msgstr "Retain"
    -#: ../controls/VariablePanel.py:424
    +#: ../controls/VariablePanel.py:455
    msgid "Return Type:"
    msgstr "Return Type:"
    -#: ../editors/Viewer.py:546
    +#: ../editors/Viewer.py:582
    msgid "Right"
    msgstr "Right"
    -#: ../dialogs/LDPowerRailDialog.py:64
    +#: ../dialogs/LDPowerRailDialog.py:65
    msgid "Right PowerRail"
    msgstr "Right PowerRail"
    -#: ../dialogs/LDElementDialog.py:77 ../editors/Viewer.py:520
    +#: ../dialogs/LDElementDialog.py:80 ../editors/Viewer.py:555
    msgid "Rising Edge"
    msgstr "Rising Edge"
    @@ -2863,113 +2877,113 @@
    msgid "Rounding up/down"
    msgstr "Rounding up/down"
    -#: ../ProjectController.py:1841
    +#: ../ProjectController.py:1828
    msgid "Run"
    msgstr "Run"
    -#: ../ProjectController.py:1099
    +#: ../ProjectController.py:1127
    msgid "Runtime IO extensions C code generation failed !\n"
    msgstr "Runtime IO extensions C code generation failed !\n"
    -#: ../ProjectController.py:1108
    +#: ../ProjectController.py:1136
    msgid "Runtime library extensions C code generation failed !\n"
    msgstr "Runtime library extensions C code generation failed !\n"
    -#: ../canfestival/SlaveEditor.py:61 ../canfestival/NetworkEditor.py:82
    +#: ../canfestival/SlaveEditor.py:65 ../canfestival/NetworkEditor.py:89
    msgid "SDO Client"
    msgstr "SDO Client"
    -#: ../canfestival/SlaveEditor.py:60 ../canfestival/NetworkEditor.py:81
    +#: ../canfestival/SlaveEditor.py:64 ../canfestival/NetworkEditor.py:88
    msgid "SDO Server"
    msgstr "SDO Server"
    -#: ../dialogs/PouDialog.py:37 ../controls/ProjectPropertiesPanel.py:144
    +#: ../dialogs/PouDialog.py:44 ../controls/ProjectPropertiesPanel.py:158
    msgid "SFC"
    msgstr "SFC"
    -#: ../PLCGenerator.py:1392
    +#: ../PLCGenerator.py:1433
    #, python-brace-format
    msgid "SFC jump in pou \"{a1}\" refers to non-existent SFC step \"{a2}\""
    msgstr "SFC jump in pou \"{a1}\" refers to non-existent SFC step \"{a2}\""
    -#: ../PLCGenerator.py:773
    +#: ../PLCGenerator.py:780
    #, python-format
    msgid "SFC transition in POU \"%s\" must be connected."
    msgstr "SFC transition in POU \"%s\" must be connected."
    -#: ../dialogs/PouTransitionDialog.py:36 ../dialogs/PouActionDialog.py:32
    -#: ../dialogs/PouDialog.py:37
    +#: ../dialogs/PouTransitionDialog.py:40 ../dialogs/PouActionDialog.py:36
    +#: ../dialogs/PouDialog.py:44
    msgid "ST"
    msgstr "ST"
    -#: ../PLCOpenEditor.py:334
    +#: ../PLCOpenEditor.py:308
    msgid "ST files (*.st)|*.st|All files|*.*"
    msgstr "ST files (*.st)|*.st|All files|*.*"
    -#: ../svgui/svgui.py:128
    +#: ../svgui/svgui.py:136
    msgid "SVG files (*.svg)|*.svg|All files|*.*"
    msgstr "SVG files (*.svg)|*.svg|All files|*.*"
    -#: ../features.py:35
    +#: ../features.py:36
    msgid "SVGUI"
    msgstr "SVGUI"
    -#: ../BeremizIDE.py:222 ../BeremizIDE.py:253 ../PLCOpenEditor.py:113
    -#: ../PLCOpenEditor.py:148
    +#: ../BeremizIDE.py:247 ../BeremizIDE.py:278 ../PLCOpenEditor.py:84
    +#: ../PLCOpenEditor.py:119
    msgid "Save"
    msgstr "Save"
    -#: ../BeremizIDE.py:254 ../PLCOpenEditor.py:115 ../PLCOpenEditor.py:149
    +#: ../BeremizIDE.py:279 ../PLCOpenEditor.py:86 ../PLCOpenEditor.py:120
    msgid "Save As..."
    msgstr "Save As..."
    -#: ../BeremizIDE.py:224
    +#: ../BeremizIDE.py:249
    msgid "Save as"
    msgstr "Save as"
    -#: ../ProjectController.py:511
    +#: ../ProjectController.py:530
    msgid "Save path is the same as path of a project! \n"
    msgstr "Save path is the same as path of a project! \n"
    -#: ../dialogs/SearchInProjectDialog.py:69
    +#: ../dialogs/SearchInProjectDialog.py:73
    msgid "Scope"
    msgstr "Scope"
    -#: ../IDEFrame.py:623
    +#: ../IDEFrame.py:644
    msgid "Search"
    msgstr "Search"
    -#: ../dialogs/SearchInProjectDialog.py:45 ../IDEFrame.py:382 ../IDEFrame.py:428
    +#: ../dialogs/SearchInProjectDialog.py:49 ../IDEFrame.py:384 ../IDEFrame.py:430
    msgid "Search in Project"
    msgstr "Search in Project"
    -#: ../dialogs/DurationEditorDialog.py:47
    +#: ../dialogs/DurationEditorDialog.py:49
    msgid "Seconds:"
    msgstr "Seconds:"
    -#: ../IDEFrame.py:388
    +#: ../IDEFrame.py:390
    msgid "Select All"
    msgstr "Select All"
    -#: ../editors/Viewer.py:289 ../editors/TextViewer.py:306
    -#: ../controls/LocationCellEditor.py:97 ../controls/VariablePanel.py:290
    -#: ../controls/VariablePanel.py:350
    +#: ../editors/Viewer.py:331 ../editors/TextViewer.py:305
    +#: ../controls/LocationCellEditor.py:101 ../controls/VariablePanel.py:315
    +#: ../controls/VariablePanel.py:378
    msgid "Select a variable class:"
    msgstr "Select a variable class:"
    -#: ../ProjectController.py:1257
    +#: ../ProjectController.py:1293
    msgid "Select an editor:"
    msgstr "Select an editor:"
    -#: ../controls/PouInstanceVariablesPanel.py:281
    +#: ../controls/PouInstanceVariablesPanel.py:292
    msgid "Select an instance"
    msgstr "Select an instance"
    -#: ../IDEFrame.py:607
    +#: ../IDEFrame.py:628
    msgid "Select an object"
    msgstr "Select an object"
    -#: ../ProjectController.py:518
    +#: ../ProjectController.py:537
    msgid "Selected directory already contains another project. Overwrite? \n"
    msgstr "Selected directory already contains another project. Overwrite? \n"
    @@ -2977,23 +2991,23 @@
    msgid "Selection"
    msgstr "Selection"
    -#: ../dialogs/SFCDivergenceDialog.py:65
    +#: ../dialogs/SFCDivergenceDialog.py:66
    msgid "Selection Convergence"
    msgstr "Selection Convergence"
    -#: ../dialogs/SFCDivergenceDialog.py:64
    +#: ../dialogs/SFCDivergenceDialog.py:65
    msgid "Selection Divergence"
    msgstr "Selection Divergence"
    -#: ../dialogs/DiscoveryDialog.py:82
    +#: ../dialogs/DiscoveryDialog.py:135
    msgid "Service Discovery"
    msgstr "Service Discovery"
    -#: ../dialogs/DiscoveryDialog.py:85
    +#: ../dialogs/DiscoveryDialog.py:104
    msgid "Services available:"
    msgstr "Services available:"
    -#: ../dialogs/LDElementDialog.py:76
    +#: ../dialogs/LDElementDialog.py:79
    msgid "Set"
    msgstr "Set"
    @@ -3005,27 +3019,27 @@
    msgid "Shift right"
    msgstr "Shift right"
    -#: ../ProjectController.py:1867
    +#: ../ProjectController.py:1863
    msgid "Show IEC code generated by PLCGenerator"
    msgstr "Show IEC code generated by PLCGenerator"
    -#: ../canfestival/canfestival.py:389
    +#: ../canfestival/canfestival.py:407
    msgid "Show Master"
    msgstr "Show Master"
    -#: ../canfestival/canfestival.py:390
    +#: ../canfestival/canfestival.py:408
    msgid "Show Master generated by config_utils"
    msgstr "Show Master generated by config_utils"
    -#: ../ProjectController.py:1865
    +#: ../ProjectController.py:1862
    msgid "Show code"
    msgstr "Show code"
    +#: ../dialogs/SFCDivergenceDialog.py:68
    +msgid "Simultaneous Convergence"
    +msgstr "Simultaneous Convergence"
    +
    #: ../dialogs/SFCDivergenceDialog.py:67
    -msgid "Simultaneous Convergence"
    -msgstr "Simultaneous Convergence"
    -
    -#: ../dialogs/SFCDivergenceDialog.py:66
    msgid "Simultaneous Divergence"
    msgstr "Simultaneous Divergence"
    @@ -3033,15 +3047,15 @@
    msgid "Sine"
    msgstr "Sine"
    -#: ../editors/ResourceEditor.py:68
    +#: ../editors/ResourceEditor.py:76
    msgid "Single"
    msgstr "Single"
    -#: ../targets/toolchain_makefile.py:126
    +#: ../targets/toolchain_makefile.py:130
    msgid "Source didn't change, no build.\n"
    msgstr "Source didn't change, no build.\n"
    -#: ../PLCGenerator.py:397
    +#: ../PLCGenerator.py:404
    #, python-brace-format
    msgid "Source signal has to be defined for single task '{a1}' in resource '{a2}.{a3}'."
    msgstr "Source signal has to be defined for single task '{a1}' in resource '{a2}.{a3}'."
    @@ -3050,60 +3064,56 @@
    msgid "Square root (base 2)"
    msgstr "Square root (base 2)"
    -#: ../plcopen/definitions.py:48
    +#: ../plcopen/definitions.py:50
    msgid "Standard function blocks"
    msgstr "Standard function blocks"
    -#: ../ProjectController.py:1843 ../Beremiz_service.py:263
    +#: ../ProjectController.py:1829 ../Beremiz_service.py:271
    msgid "Start PLC"
    msgstr "Start PLC"
    -#: ../ProjectController.py:1046
    +#: ../ProjectController.py:1074
    #, python-format
    msgid "Start build in %s\n"
    msgstr "Start build in %s\n"
    -#: ../ProjectController.py:1360
    +#: ../ProjectController.py:1397
    msgid "Started"
    msgstr "Started"
    -#: ../ProjectController.py:1648
    +#: ../ProjectController.py:1633
    msgid "Starting PLC\n"
    msgstr "Starting PLC\n"
    -#: ../BeremizIDE.py:365
    +#: ../BeremizIDE.py:393
    msgid "Status ToolBar"
    msgstr "Status ToolBar"
    -#: ../editors/Viewer.py:612 ../editors/Viewer.py:2391
    +#: ../editors/Viewer.py:651 ../editors/Viewer.py:2424
    msgid "Step"
    msgstr "Step"
    -#: ../ProjectController.py:1846
    +#: ../ProjectController.py:1835
    msgid "Stop"
    msgstr "Stop"
    -#: ../Beremiz_service.py:264
    +#: ../Beremiz_service.py:272
    msgid "Stop PLC"
    msgstr "Stop PLC"
    -#: ../ProjectController.py:1848
    +#: ../ProjectController.py:1836
    msgid "Stop Running PLC"
    msgstr "Stop Running PLC"
    -#: ../ProjectController.py:1361
    +#: ../ProjectController.py:1398
    msgid "Stopped"
    msgstr "Stopped"
    -#: ../ProjectController.py:1620
    -msgid "Stopping debugger...\n"
    -msgstr "Stopping debugger...\n"
    -
    -#: ../editors/DataTypeEditor.py:54
    +#: ../editors/DataTypeEditor.py:60
    msgid "Structure"
    msgstr "Structure"
    -#: ../editors/DataTypeEditor.py:54
    +#: ../editors/DataTypeEditor.py:60
    msgid "Subrange"
    msgstr "Subrange"
    @@ -3111,19 +3121,19 @@
    msgid "Subtraction"
    msgstr "Subtraction"
    -#: ../ProjectController.py:1085
    +#: ../ProjectController.py:1113
    msgid "Successfully built.\n"
    msgstr "Successfully built.\n"
    -#: ../IDEFrame.py:447
    +#: ../IDEFrame.py:449
    msgid "Switch perspective"
    msgstr "Switch perspective"
    -#: ../dialogs/SearchInProjectDialog.py:165 ../dialogs/FindInPouDialog.py:115
    +#: ../dialogs/SearchInProjectDialog.py:169 ../dialogs/FindInPouDialog.py:118
    msgid "Syntax error in regular expression of pattern to search!"
    msgstr "Syntax error in regular expression of pattern to search!"
    -#: ../dialogs/DiscoveryDialog.py:93
    +#: ../dialogs/DiscoveryDialog.py:90
    msgid "TYPE"
    msgstr "TYPE"
    @@ -3131,19 +3141,19 @@
    msgid "Tangent"
    msgstr "Tangent"
    -#: ../editors/ResourceEditor.py:83
    +#: ../editors/ResourceEditor.py:97
    msgid "Task"
    msgstr "Task"
    -#: ../editors/ResourceEditor.py:235
    +#: ../editors/ResourceEditor.py:248
    msgid "Tasks:"
    msgstr "Tasks:"
    -#: ../controls/VariablePanel.py:73
    +#: ../controls/VariablePanel.py:91
    msgid "Temp"
    msgstr "Temp"
    -#: ../version.py:30
    +#: ../version.py:35
    msgid ""
    "The best place to ask questions about Beremiz/PLCOpenEditor\n"
    "is project's mailing list: beremiz-devel@lists.sourceforge.net\n"
    @@ -3163,7 +3173,7 @@
    "You can subscribe to the list here:\n"
    "https://lists.sourceforge.net/lists/listinfo/beremiz-devel"
    -#: ../editors/FileManagementPanel.py:180
    +#: ../editors/FileManagementPanel.py:186
    #, python-format
    msgid ""
    "The file '%s' already exist.\n"
    @@ -3172,20 +3182,20 @@
    "The file '%s' already exist.\n"
    "Do you want to replace it?"
    -#: ../editors/LDViewer.py:882
    +#: ../editors/LDViewer.py:893
    msgid "The group of block must be coherent!"
    msgstr "The group of block must be coherent!"
    -#: ../BeremizIDE.py:542 ../IDEFrame.py:1015
    +#: ../BeremizIDE.py:573 ../IDEFrame.py:1046
    msgid "There are changes, do you want to save?"
    msgstr "There are changes, do you want to save?"
    -#: ../IDEFrame.py:1658 ../IDEFrame.py:1677
    +#: ../IDEFrame.py:1691 ../IDEFrame.py:1710
    #, python-format
    msgid "There is a POU named \"%s\". This could cause a conflict. Do you wish to continue?"
    msgstr "There is a POU named \"%s\". This could cause a conflict. Do you wish to continue?"
    -#: ../IDEFrame.py:1102
    +#: ../IDEFrame.py:1133
    msgid ""
    "There was a problem printing.\n"
    "Perhaps your current printer is not set correctly?"
    @@ -3193,11 +3203,11 @@
    "There was a problem printing.\n"
    "Perhaps your current printer is not set correctly?"
    -#: ../editors/LDViewer.py:891
    +#: ../editors/LDViewer.py:902
    msgid "This option isn't available yet!"
    msgstr "This option isn't available yet!"
    -#: ../controls/DebugVariablePanel/DebugVariablePanel.py:565
    +#: ../controls/DebugVariablePanel/DebugVariablePanel.py:567
    #, python-format
    msgid "Tick: %d"
    msgstr "Tick: %d"
    @@ -3235,89 +3245,89 @@
    msgid "Time-of-day subtraction"
    msgstr "Time-of-day subtraction"
    -#: ../dialogs/ForceVariableDialog.py:172
    +#: ../dialogs/ForceVariableDialog.py:188
    msgid "Toggle value"
    msgstr "Toggle value"
    -#: ../editors/Viewer.py:548
    +#: ../editors/Viewer.py:584
    msgid "Top"
    msgstr "Top"
    -#: ../ProjectController.py:1855
    +#: ../ProjectController.py:1848
    msgid "Transfer"
    msgstr "Transfer"
    -#: ../ProjectController.py:1857
    +#: ../ProjectController.py:1849
    msgid "Transfer PLC"
    msgstr "Transfer PLC"
    -#: ../ProjectController.py:1820
    +#: ../ProjectController.py:1802
    msgid "Transfer completed successfully.\n"
    msgstr "Transfer completed successfully.\n"
    -#: ../ProjectController.py:1823
    +#: ../ProjectController.py:1805
    msgid "Transfer failed\n"
    msgstr "Transfer failed\n"
    -#: ../editors/Viewer.py:613 ../editors/Viewer.py:2393 ../editors/Viewer.py:2420
    +#: ../editors/Viewer.py:652 ../editors/Viewer.py:2426 ../editors/Viewer.py:2453
    msgid "Transition"
    msgstr "Transition"
    -#: ../PLCGenerator.py:1518
    +#: ../PLCGenerator.py:1564
    #, python-format
    msgid "Transition \"%s\" body must contain an output variable or coil referring to its name"
    msgstr "Transition \"%s\" body must contain an output variable or coil referring to its name"
    -#: ../dialogs/PouTransitionDialog.py:84
    +#: ../dialogs/PouTransitionDialog.py:91
    msgid "Transition Name"
    msgstr "Transition Name"
    -#: ../dialogs/PouTransitionDialog.py:53
    +#: ../dialogs/PouTransitionDialog.py:60
    msgid "Transition Name:"
    msgstr "Transition Name:"
    -#: ../PLCGenerator.py:1609
    +#: ../PLCGenerator.py:1657
    #, python-brace-format
    msgid "Transition with content \"{a1}\" not connected to a next step in \"{a2}\" POU"
    msgstr "Transition with content \"{a1}\" not connected to a next step in \"{a2}\" POU"
    -#: ../PLCGenerator.py:1598
    +#: ../PLCGenerator.py:1646
    #, python-brace-format
    msgid "Transition with content \"{a1}\" not connected to a previous step in \"{a2}\" POU"
    msgstr "Transition with content \"{a1}\" not connected to a previous step in \"{a2}\" POU"
    -#: ../plcopen/plcopen.py:1323
    +#: ../plcopen/plcopen.py:1526
    #, python-format
    msgid "Transition with name %s doesn't exist!"
    msgstr "Transition with name %s doesn't exist!"
    -#: ../PLCControler.py:98
    +#: ../plcopen/types_enums.py:76
    msgid "Transitions"
    msgstr "Transitions"
    -#: ../dialogs/AboutDialog.py:131
    +#: ../dialogs/AboutDialog.py:127
    msgid "Translated by"
    msgstr "Translated by"
    -#: ../editors/ResourceEditor.py:68
    +#: ../editors/ResourceEditor.py:76
    msgid "Triggering"
    msgstr "Triggering"
    -#: ../Beremiz_service.py:478
    +#: ../Beremiz_service.py:490
    msgid "Twisted unavailable."
    msgstr "Twisted unavailable."
    -#: ../dialogs/ActionBlockDialog.py:39 ../editors/ResourceEditor.py:83
    -#: ../editors/DataTypeEditor.py:50 ../editors/CodeFileEditor.py:739
    -#: ../controls/VariablePanel.py:53 ../controls/VariablePanel.py:54
    +#: ../dialogs/ActionBlockDialog.py:42 ../editors/ResourceEditor.py:97
    +#: ../editors/DataTypeEditor.py:55 ../editors/CodeFileEditor.py:733
    +#: ../controls/VariablePanel.py:61
    msgid "Type"
    msgstr "Type"
    -#: ../dialogs/BrowseLocationsDialog.py:49
    +#: ../dialogs/BrowseLocationsDialog.py:54
    msgid "Type and derivated"
    msgstr "Type and derivated"
    -#: ../canfestival/config_utils.py:336 ../canfestival/config_utils.py:624
    +#: ../canfestival/config_utils.py:359 ../canfestival/config_utils.py:666
    #, python-format
    msgid "Type conflict for location \"%s\""
    msgstr "Type conflict for location \"%s\""
    @@ -3326,179 +3336,233 @@
    msgid "Type conversion"
    msgstr "Type conversion"
    -#: ../editors/DataTypeEditor.py:162
    +#: ../editors/DataTypeEditor.py:170
    msgid "Type infos:"
    msgstr "Type infos:"
    -#: ../dialogs/BrowseLocationsDialog.py:50
    +#: ../dialogs/BrowseLocationsDialog.py:55
    msgid "Type strict"
    msgstr "Type strict"
    -#: ../dialogs/SFCDivergenceDialog.py:59 ../dialogs/SFCTransitionDialog.py:58
    -#: ../dialogs/LDPowerRailDialog.py:57 ../dialogs/BrowseLocationsDialog.py:100
    -#: ../dialogs/FBDBlockDialog.py:66 ../dialogs/ConnectionDialog.py:59
    +#: ../dialogs/SFCDivergenceDialog.py:60 ../dialogs/SFCTransitionDialog.py:59
    +#: ../dialogs/LDPowerRailDialog.py:58 ../dialogs/BrowseLocationsDialog.py:111
    +#: ../dialogs/FBDBlockDialog.py:69 ../dialogs/ConnectionDialog.py:61
    msgid "Type:"
    msgstr "Type:"
    -#: ../canfestival/config_utils.py:462 ../canfestival/config_utils.py:476
    +#: ../connectors/PYRO/dialog.py:39 ../connectors/WAMP/dialog.py:42
    +msgid "URI host:"
    +msgstr "URI host:"
    +
    +#: ../connectors/PYRO/dialog.py:43 ../connectors/WAMP/dialog.py:46
    +msgid "URI port:"
    +msgstr "URI port:"
    +
    +#: ../controls/UriLocationEditor.py:35
    +msgid "URI type:"
    +msgstr "URI type:"
    +
    +#: ../canfestival/config_utils.py:500 ../canfestival/config_utils.py:515
    #, python-format
    msgid "Unable to define PDO mapping for node %02x"
    msgstr "Unable to define PDO mapping for node %02x"
    -#: ../targets/Xenomai/__init__.py:39
    +#: ../targets/Xenomai/__init__.py:43
    #, python-format
    msgid "Unable to get Xenomai's %s \n"
    msgstr "Unable to get Xenomai's %s \n"
    -#: ../PLCGenerator.py:961 ../PLCGenerator.py:1214
    +#: ../PLCGenerator.py:974 ../PLCGenerator.py:1252
    #, python-brace-format
    msgid "Undefined block type \"{a1}\" in \"{a2}\" POU"
    msgstr "Undefined block type \"{a1}\" in \"{a2}\" POU"
    -#: ../PLCGenerator.py:254
    +#: ../PLCGenerator.py:261
    #, python-format
    msgid "Undefined pou type \"%s\""
    msgstr "Undefined pou type \"%s\""
    -#: ../IDEFrame.py:360 ../IDEFrame.py:421
    +#: ../IDEFrame.py:365 ../IDEFrame.py:423
    msgid "Undo"
    msgstr "Undo"
    -#: ../ProjectController.py:423
    +#: ../ProjectController.py:442
    msgid "Unknown"
    msgstr "Unknown"
    -#: ../editors/Viewer.py:394
    +#: ../editors/Viewer.py:437
    #, python-format
    msgid "Unknown variable \"%s\" for this POU!"
    msgstr "Unknown variable \"%s\" for this POU!"
    -#: ../ProjectController.py:420 ../ProjectController.py:421
    +#: ../ProjectController.py:439 ../ProjectController.py:440
    msgid "Unnamed"
    msgstr "Unnamed"
    -#: ../PLCControler.py:638
    +#: ../PLCControler.py:263
    #, python-format
    msgid "Unnamed%d"
    msgstr "Unnamed%d"
    -#: ../controls/VariablePanel.py:284
    +#: ../controls/VariablePanel.py:308
    #, python-format
    msgid "Unrecognized data size \"%s\""
    msgstr "Unrecognized data size \"%s\""
    -#: ../editors/DataTypeEditor.py:630 ../controls/VariablePanel.py:827
    +#: ../editors/DataTypeEditor.py:646 ../controls/VariablePanel.py:841
    msgid "User Data Types"
    msgstr "User Data Types"
    -#: ../canfestival/SlaveEditor.py:65 ../canfestival/NetworkEditor.py:86
    +#: ../canfestival/SlaveEditor.py:69 ../canfestival/NetworkEditor.py:93
    msgid "User Type"
    msgstr "User Type"
    -#: ../PLCControler.py:97
    +#: ../plcopen/types_enums.py:75
    msgid "User-defined POUs"
    msgstr "User-defined POUs"
    -#: ../dialogs/ActionBlockDialog.py:39
    +#: ../dialogs/ActionBlockDialog.py:42
    msgid "Value"
    msgstr "Value"
    -#: ../editors/DataTypeEditor.py:259
    +#: ../editors/DataTypeEditor.py:267
    msgid "Values:"
    msgstr "Values:"
    -#: ../dialogs/ActionBlockDialog.py:43 ../editors/Viewer.py:585
    -#: ../editors/Viewer.py:2423
    +#: ../dialogs/ActionBlockDialog.py:47 ../editors/Viewer.py:622
    +#: ../editors/Viewer.py:2456
    msgid "Variable"
    msgstr "Variable"
    -#: ../editors/Viewer.py:309 ../editors/Viewer.py:339 ../editors/Viewer.py:361
    -#: ../editors/TextViewer.py:292 ../editors/TextViewer.py:343
    -#: ../editors/TextViewer.py:366 ../controls/VariablePanel.py:329
    +#: ../editors/Viewer.py:352 ../editors/Viewer.py:382 ../editors/Viewer.py:404
    +#: ../editors/TextViewer.py:290 ../editors/TextViewer.py:344
    +#: ../editors/TextViewer.py:367 ../controls/VariablePanel.py:355
    msgid "Variable Drop"
    msgstr "Variable Drop"
    -#: ../dialogs/FBDVariableDialog.py:64
    +#: ../dialogs/FBDVariableDialog.py:68
    msgid "Variable Properties"
    msgstr "Variable Properties"
    -#: ../editors/Viewer.py:289 ../editors/TextViewer.py:306
    -#: ../controls/LocationCellEditor.py:97 ../controls/VariablePanel.py:290
    -#: ../controls/VariablePanel.py:350
    +#: ../editors/Viewer.py:332 ../editors/TextViewer.py:306
    +#: ../controls/LocationCellEditor.py:102 ../controls/VariablePanel.py:316
    +#: ../controls/VariablePanel.py:379
    msgid "Variable class"
    msgstr "Variable class"
    -#: ../editors/Viewer.py:396 ../editors/TextViewer.py:387
    +#: ../editors/Viewer.py:439 ../editors/TextViewer.py:388
    msgid "Variable don't belong to this POU!"
    msgstr "Variable don't belong to this POU!"
    -#: ../dialogs/LDElementDialog.py:89
    +#: ../dialogs/LDElementDialog.py:92
    msgid "Variable:"
    msgstr "Variable:"
    -#: ../controls/VariablePanel.py:72
    +#: ../controls/VariablePanel.py:90
    msgid "Variables"
    msgstr "Variables"
    -#: ../controls/ProjectPropertiesPanel.py:152
    +#: ../controls/ProjectPropertiesPanel.py:166
    msgid "Vertical:"
    msgstr "Vertical:"
    -#: ../Beremiz_service.py:588
    +#: ../runtime/WampClient.py:113
    +#, python-format
    +msgid "WAMP Client connection failed (%s) .. retrying .."
    +msgstr "WAMP Client connection failed (%s) .. retrying .."
    +
    +#: ../runtime/WampClient.py:117
    +#, python-format
    +msgid "WAMP Client connection lost (%s) .. retrying .."
    +msgstr "WAMP Client connection lost (%s) .. retrying .."
    +
    +#: ../connectors/WAMP/dialog.py:54
    +msgid "WAMP ID:"
    +msgstr "WAMP ID:"
    +
    +#: ../runtime/WampClient.py:172
    +msgid "WAMP client connecting to :"
    +msgstr "WAMP client connecting to :"
    +
    +#: ../runtime/WampClient.py:148
    +msgid "WAMP client connection not established!"
    +msgstr "WAMP client connection not established!"
    +
    +#: ../Beremiz_service.py:625
    msgid "WAMP client startup failed. "
    msgstr "WAMP client startup failed. "
    -#: ../connectors/WAMP/__init__.py:91
    +#: ../Beremiz_service.py:621
    +msgid "WAMP config is incomplete."
    +msgstr "WAMP config is incomplete."
    +
    +#: ../Beremiz_service.py:623
    +msgid "WAMP config is missing."
    +msgstr "WAMP config is missing."
    +
    +#: ../connectors/WAMP/__init__.py:99
    #, python-format
    msgid "WAMP connecting to URL : %s\n"
    msgstr "WAMP connecting to URL : %s\n"
    -#: ../connectors/WAMP/__init__.py:131
    +#: ../connectors/WAMP/__init__.py:140
    msgid "WAMP connection timeout"
    msgstr "WAMP connection timeout"
    -#: ../connectors/WAMP/__init__.py:150
    +#: ../connectors/WAMP/__init__.py:158
    #, python-format
    msgid "WAMP connection to '%s' failed.\n"
    msgstr "WAMP connection to '%s' failed.\n"
    -#: ../Beremiz_service.py:564
    +#: ../Beremiz_service.py:595
    msgid "WAMP import failed :"
    msgstr "WAMP import failed :"
    -#: ../wxglade_hmi/wxglade_hmi.py:37
    +#: ../runtime/WampClient.py:126
    +msgid "WAMP load error: "
    +msgstr "WAMP load error: "
    +
    +#: ../runtime/WampClient.py:108
    +msgid "WAMP session left"
    +msgstr "WAMP session left"
    +
    +#: ../wxglade_hmi/wxglade_hmi.py:44
    msgid "WXGLADE GUI"
    msgstr "WXGLADE GUI"
    -#: ../dialogs/PouDialog.py:129 ../editors/LDViewer.py:891
    +#: ../runtime/WampClient.py:137
    +msgid "Wamp secret load error:"
    +msgstr "Wamp secret load error:"
    +
    +#: ../dialogs/PouDialog.py:137 ../editors/LDViewer.py:902
    msgid "Warning"
    msgstr "Warning"
    -#: ../ProjectController.py:707
    +#: ../ProjectController.py:726
    msgid "Warnings in ST/IL/SFC code generator :\n"
    msgstr "Warnings in ST/IL/SFC code generator :\n"
    -#: ../dialogs/SearchInProjectDialog.py:78
    +#: ../dialogs/SearchInProjectDialog.py:82
    msgid "Whole Project"
    msgstr "Whole Project"
    -#: ../controls/ProjectPropertiesPanel.py:120
    +#: ../controls/ProjectPropertiesPanel.py:134
    msgid "Width:"
    msgstr "Width:"
    -#: ../dialogs/FindInPouDialog.py:91
    +#: ../dialogs/FindInPouDialog.py:94
    msgid "Wrap search"
    msgstr "Wrap search"
    -#: ../dialogs/AboutDialog.py:130
    +#: ../dialogs/AboutDialog.py:126
    msgid "Written by"
    msgstr "Written by"
    -#: ../features.py:34
    +#: ../features.py:35
    msgid "WxGlade GUI"
    msgstr "WxGlade GUI"
    -#: ../svgui/svgui.py:142
    +#: ../svgui/svgui.py:150
    msgid ""
    "You don't have write permissions.\n"
    "Open Inkscape anyway ?"
    @@ -3506,7 +3570,7 @@
    "You don't have write permissions.\n"
    "Open Inkscape anyway ?"
    -#: ../wxglade_hmi/wxglade_hmi.py:154
    +#: ../wxglade_hmi/wxglade_hmi.py:160
    msgid ""
    "You don't have write permissions.\n"
    "Open wxGlade anyway ?"
    @@ -3514,7 +3578,7 @@
    "You don't have write permissions.\n"
    "Open wxGlade anyway ?"
    -#: ../ProjectController.py:371
    +#: ../ProjectController.py:390
    msgid ""
    "You must have permission to work on the project\n"
    "Work on a project copy ?"
    @@ -3522,77 +3586,69 @@
    "You must have permission to work on the project\n"
    "Work on a project copy ?"
    -#: ../editors/LDViewer.py:886
    +#: ../editors/LDViewer.py:897
    msgid "You must select the block or group of blocks around which a branch should be added!"
    msgstr "You must select the block or group of blocks around which a branch should be added!"
    -#: ../editors/LDViewer.py:666
    +#: ../editors/LDViewer.py:677
    msgid "You must select the wire where a contact should be added!"
    msgstr "You must select the wire where a contact should be added!"
    -#: ../dialogs/SFCStepNameDialog.py:48 ../dialogs/PouNameDialog.py:46
    +#: ../dialogs/SFCStepNameDialog.py:52 ../dialogs/PouNameDialog.py:50
    msgid "You must type a name!"
    msgstr "You must type a name!"
    -#: ../dialogs/ForceVariableDialog.py:193
    +#: ../dialogs/ForceVariableDialog.py:209
    msgid "You must type a value!"
    msgstr "You must type a value!"
    -#: ../IDEFrame.py:438
    +#: ../IDEFrame.py:440
    msgid "Zoom"
    msgstr "Zoom"
    -#: ../dialogs/DurationEditorDialog.py:155
    +#: ../dialogs/DurationEditorDialog.py:158
    msgid "days"
    msgstr "days"
    -#: ../PLCOpenEditor.py:343
    +#: ../PLCOpenEditor.py:317
    #, python-format
    msgid "error: %s\n"
    msgstr "error: %s\n"
    -#: ../util/ProcessLogger.py:169
    +#: ../util/ProcessLogger.py:178
    #, python-brace-format
    msgid "exited with status {a1} (pid {a2})\n"
    msgstr "exited with status {a1} (pid {a2})\n"
    -#: ../PLCOpenEditor.py:406 ../PLCOpenEditor.py:408
    -msgid "file : "
    -msgstr "file : "
    -
    -#: ../dialogs/PouDialog.py:32
    +#: ../dialogs/PouDialog.py:36
    msgid "function"
    msgstr "function"
    -#: ../PLCOpenEditor.py:409
    -msgid "function : "
    -msgstr "function : "
    -
    -#: ../dialogs/PouDialog.py:32
    +#: ../dialogs/PouDialog.py:36
    msgid "functionBlock"
    msgstr "functionBlock"
    -#: ../dialogs/DurationEditorDialog.py:155
    +#: ../dialogs/DurationEditorDialog.py:158
    msgid "hours"
    msgstr "hours"
    -#: ../PLCOpenEditor.py:409
    -msgid "line : "
    -msgstr "line : "
    -
    -#: ../dialogs/DurationEditorDialog.py:157
    +#: ../ProjectController.py:753
    +msgid "matiec installation is not found\n"
    +msgstr "matiec installation is not found\n"
    +
    +#: ../dialogs/DurationEditorDialog.py:160
    msgid "milliseconds"
    msgstr "milliseconds"
    -#: ../dialogs/DurationEditorDialog.py:156
    +#: ../dialogs/DurationEditorDialog.py:159
    msgid "minutes"
    msgstr "minutes"
    -#: ../dialogs/PouDialog.py:32
    +#: ../dialogs/PouDialog.py:36
    msgid "program"
    msgstr "program"
    -#: ../dialogs/DurationEditorDialog.py:156
    +#: ../dialogs/DurationEditorDialog.py:159
    msgid "seconds"
    msgstr "seconds"
    @@ -3608,27 +3664,27 @@
    msgid "string right of"
    msgstr "string right of"
    -#: ../Beremiz.py:164
    +#: ../Beremiz.py:167
    msgid "update info unavailable."
    msgstr "update info unavailable."
    -#: ../PLCOpenEditor.py:341
    +#: ../PLCOpenEditor.py:315
    #, python-format
    msgid "warning: %s\n"
    msgstr "warning: %s\n"
    -#: ../PLCControler.py:972
    +#: ../PLCControler.py:576
    #, python-brace-format
    msgid "{a1} \"{a2}\" can't be pasted as a {a3}."
    msgstr "{a1} \"{a2}\" can't be pasted as a {a3}."
    -#: ../ConfigTreeNode.py:56
    +#: ../ConfigTreeNode.py:58
    #, python-brace-format
    msgid ""
    -"{a1} XML file doesn't follow XSD schema at line %{a2}:\n"
    +"{a1} XML file doesn't follow XSD schema at line {a2}:\n"
    "{a3}"
    msgstr ""
    -"{a1} XML file doesn't follow XSD schema at line %{a2}:\n"
    +"{a1} XML file doesn't follow XSD schema at line {a2}:\n"
    "{a3}"
    #: Extra XSD strings
    @@ -3692,6 +3748,72 @@
    msgid "Win32"
    msgstr "Win32"
    +msgid "ModbusRequest"
    +msgstr "ModbusRequest"
    +
    +msgid "SlaveID"
    +msgstr "SlaveID"
    +
    +msgid "Nr_of_Channels"
    +msgstr "Nr_of_Channels"
    +
    +msgid "Start_Address"
    +msgstr "Start_Address"
    +
    +msgid "Timeout_in_ms"
    +msgstr "Timeout_in_ms"
    +
    +msgid "MemoryArea"
    +msgstr "MemoryArea"
    +
    +msgid "MemoryAreaType"
    +msgstr "MemoryAreaType"
    +
    +msgid "ModbusTCPclient"
    +msgstr "ModbusTCPclient"
    +
    +msgid "Remote_IP_Address"
    +msgstr "Remote_IP_Address"
    +
    +msgid "Remote_Port_Number"
    +msgstr "Remote_Port_Number"
    +
    +msgid "Invocation_Rate_in_ms"
    +msgstr "Invocation_Rate_in_ms"
    +
    +msgid "ModbusServerNode"
    +msgstr "ModbusServerNode"
    +
    +msgid "Local_IP_Address"
    +msgstr "Local_IP_Address"
    +
    +msgid "Local_Port_Number"
    +msgstr "Local_Port_Number"
    +
    +msgid "ModbusRTUclient"
    +msgstr "ModbusRTUclient"
    +
    +msgid "Serial_Port"
    +msgstr "Serial_Port"
    +
    +msgid "Baud_Rate"
    +msgstr "Baud_Rate"
    +
    +msgid "Parity"
    +msgstr "Parity"
    +
    +msgid "Stop_Bits"
    +msgstr "Stop_Bits"
    +
    +msgid "ModbusRTUslave"
    +msgstr "ModbusRTUslave"
    +
    +msgid "ModbusRoot"
    +msgstr "ModbusRoot"
    +
    +msgid "MaxRemoteTCPclients"
    +msgstr "MaxRemoteTCPclients"
    +
    msgid "BaseParams"
    msgstr "BaseParams"
    @@ -3855,8 +3977,8 @@
    msgid "The RS bistable is a latch where the Reset dominates."
    msgstr "The RS bistable is a latch where the Reset dominates."
    -msgid "The semaphore provides a mechanism to allow software elements mutually exclusive access to certain ressources."
    -msgstr "The semaphore provides a mechanism to allow software elements mutually exclusive access to certain ressources."
    +msgid "The semaphore provides a mechanism to allow software elements mutually exclusive access to certain resources."
    +msgstr "The semaphore provides a mechanism to allow software elements mutually exclusive access to certain resources."
    msgid "The output produces a single pulse when a rising edge is detected."
    msgstr "The output produces a single pulse when a rising edge is detected."
    --- a/i18n/messages.pot Fri Jun 15 16:30:06 2018 +0300
    +++ b/i18n/messages.pot Fri Jun 15 16:41:55 2018 +0300
    @@ -8,7 +8,7 @@
    msgstr ""
    "Project-Id-Version: Beremiz\n"
    "Report-Msgid-Bugs-To: \n"
    -"POT-Creation-Date: 2017-09-13 15:37+0300\n"
    +"POT-Creation-Date: 2018-06-15 16:39+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"
    @@ -17,7 +17,7 @@
    "Content-Type: text/plain; charset=CHARSET\n"
    "Content-Transfer-Encoding: 8bit\n"
    -#: ../util/ExceptionHandler.py:56
    +#: ../util/ExceptionHandler.py:58
    #, python-format
    msgid ""
    "\n"
    @@ -32,244 +32,244 @@
    "Traceback:\n"
    msgstr ""
    -#: ../controls/VariablePanel.py:89
    +#: ../controls/VariablePanel.py:90
    msgid " External"
    msgstr ""
    -#: ../controls/VariablePanel.py:88
    -msgid " InOut"
    -msgstr ""
    -
    -#: ../controls/VariablePanel.py:88
    -msgid " Input"
    -msgstr ""
    -
    #: ../controls/VariablePanel.py:89
    -msgid " Local"
    -msgstr ""
    -
    -#: ../controls/VariablePanel.py:88
    -msgid " Output"
    +msgid " InOut"
    +msgstr ""
    +
    +#: ../controls/VariablePanel.py:89
    +msgid " Input"
    msgstr ""
    #: ../controls/VariablePanel.py:90
    +msgid " Local"
    +msgstr ""
    +
    +#: ../controls/VariablePanel.py:89
    +msgid " Output"
    +msgstr ""
    +
    +#: ../controls/VariablePanel.py:91
    msgid " Temp"
    msgstr ""
    -#: ../dialogs/PouTransitionDialog.py:99 ../dialogs/ProjectDialog.py:72
    -#: ../dialogs/PouActionDialog.py:97 ../dialogs/PouDialog.py:120
    +#: ../dialogs/PouTransitionDialog.py:101 ../dialogs/ProjectDialog.py:74
    +#: ../dialogs/PouActionDialog.py:99 ../dialogs/PouDialog.py:122
    #, python-format
    msgid " and %s"
    msgstr ""
    -#: ../ProjectController.py:1177
    +#: ../ProjectController.py:1182
    msgid " generation failed !\n"
    msgstr ""
    -#: ../plcopen/plcopen.py:936
    +#: ../plcopen/plcopen.py:1029
    #, python-format
    msgid "\"%s\" Data Type doesn't exist !!!"
    msgstr ""
    -#: ../plcopen/plcopen.py:954
    +#: ../plcopen/plcopen.py:1047
    #, python-format
    msgid "\"%s\" POU already exists !!!"
    msgstr ""
    -#: ../plcopen/plcopen.py:975
    +#: ../plcopen/plcopen.py:1068
    #, python-format
    msgid "\"%s\" POU doesn't exist !!!"
    msgstr ""
    -#: ../editors/Viewer.py:285
    +#: ../editors/Viewer.py:288
    #, python-format
    msgid "\"%s\" can't use itself!"
    msgstr ""
    -#: ../IDEFrame.py:1692 ../IDEFrame.py:1711
    +#: ../IDEFrame.py:1688 ../IDEFrame.py:1707
    #, python-format
    msgid "\"%s\" config already exists!"
    msgstr ""
    -#: ../plcopen/plcopen.py:509
    +#: ../plcopen/plcopen.py:531
    #, python-format
    msgid "\"%s\" configuration already exists !!!"
    msgstr ""
    -#: ../plcopen/plcopen.py:518
    +#: ../plcopen/plcopen.py:540
    #, python-format
    msgid "\"%s\" configuration doesn't exist !!!"
    msgstr ""
    -#: ../IDEFrame.py:1642
    +#: ../IDEFrame.py:1638
    #, python-format
    msgid "\"%s\" data type already exists!"
    msgstr ""
    -#: ../dialogs/PouTransitionDialog.py:110 ../dialogs/BlockPreviewDialog.py:220
    -#: ../dialogs/PouActionDialog.py:108 ../editors/Viewer.py:301
    -#: ../editors/Viewer.py:371 ../editors/Viewer.py:395 ../editors/Viewer.py:415
    -#: ../editors/TextViewer.py:275 ../editors/TextViewer.py:304
    +#: ../dialogs/PouTransitionDialog.py:112 ../dialogs/BlockPreviewDialog.py:220
    +#: ../dialogs/PouActionDialog.py:110 ../editors/Viewer.py:304
    +#: ../editors/Viewer.py:374 ../editors/Viewer.py:398 ../editors/Viewer.py:418
    +#: ../editors/TextViewer.py:270 ../editors/TextViewer.py:299
    #: ../controls/VariablePanel.py:425
    #, python-format
    msgid "\"%s\" element for this pou already exists!"
    msgstr ""
    -#: ../BeremizIDE.py:933
    +#: ../BeremizIDE.py:928
    #, python-format
    msgid "\"%s\" folder is not a valid Beremiz project\n"
    msgstr ""
    -#: ../dialogs/SFCStepNameDialog.py:53 ../dialogs/PouTransitionDialog.py:106
    -#: ../dialogs/BlockPreviewDialog.py:209 ../dialogs/PouNameDialog.py:51
    -#: ../dialogs/PouActionDialog.py:104 ../dialogs/PouDialog.py:127
    -#: ../editors/ResourceEditor.py:464 ../editors/ResourceEditor.py:499
    -#: ../editors/DataTypeEditor.py:570 ../editors/DataTypeEditor.py:602
    -#: ../editors/CodeFileEditor.py:789 ../controls/VariablePanel.py:808
    -#: ../IDEFrame.py:1633
    +#: ../dialogs/SFCStepNameDialog.py:56 ../dialogs/PouTransitionDialog.py:108
    +#: ../dialogs/BlockPreviewDialog.py:209 ../dialogs/PouNameDialog.py:54
    +#: ../dialogs/PouActionDialog.py:106 ../dialogs/PouDialog.py:129
    +#: ../editors/ResourceEditor.py:483 ../editors/ResourceEditor.py:518
    +#: ../editors/DataTypeEditor.py:571 ../editors/DataTypeEditor.py:603
    +#: ../editors/CodeFileEditor.py:774 ../controls/VariablePanel.py:787
    +#: ../IDEFrame.py:1629
    #, python-format
    msgid "\"%s\" is a keyword. It can't be used!"
    msgstr ""
    -#: ../plcopen/plcopen.py:2531
    +#: ../plcopen/plcopen.py:2836
    #, python-format
    msgid "\"%s\" is an invalid value!"
    msgstr ""
    -#: ../PLCOpenEditor.py:370 ../PLCOpenEditor.py:412
    +#: ../PLCOpenEditor.py:323 ../PLCOpenEditor.py:365
    #, python-format
    msgid "\"%s\" is not a valid folder!"
    msgstr ""
    -#: ../dialogs/SFCStepNameDialog.py:51 ../dialogs/PouTransitionDialog.py:104
    -#: ../dialogs/BlockPreviewDialog.py:205 ../dialogs/PouNameDialog.py:49
    -#: ../dialogs/PouActionDialog.py:102 ../dialogs/PouDialog.py:125
    -#: ../editors/ResourceEditor.py:462 ../editors/ResourceEditor.py:497
    -#: ../editors/DataTypeEditor.py:600 ../editors/CodeFileEditor.py:787
    -#: ../controls/VariablePanel.py:806 ../IDEFrame.py:1631
    +#: ../dialogs/SFCStepNameDialog.py:54 ../dialogs/PouTransitionDialog.py:106
    +#: ../dialogs/BlockPreviewDialog.py:205 ../dialogs/PouNameDialog.py:52
    +#: ../dialogs/PouActionDialog.py:104 ../dialogs/PouDialog.py:127
    +#: ../editors/ResourceEditor.py:481 ../editors/ResourceEditor.py:516
    +#: ../editors/DataTypeEditor.py:601 ../editors/CodeFileEditor.py:772
    +#: ../controls/VariablePanel.py:785 ../IDEFrame.py:1627
    #, python-format
    msgid "\"%s\" is not a valid identifier!"
    msgstr ""
    -#: ../IDEFrame.py:2445
    +#: ../IDEFrame.py:2436
    #, python-format
    msgid "\"%s\" is used by one or more POUs. Do you wish to continue?"
    msgstr ""
    -#: ../dialogs/BlockPreviewDialog.py:213 ../dialogs/PouDialog.py:129
    -#: ../editors/Viewer.py:299 ../editors/Viewer.py:356 ../editors/Viewer.py:386
    -#: ../editors/Viewer.py:408 ../editors/TextViewer.py:273
    -#: ../editors/TextViewer.py:302 ../editors/TextViewer.py:356
    -#: ../editors/TextViewer.py:379 ../controls/VariablePanel.py:364
    -#: ../IDEFrame.py:1651
    +#: ../dialogs/BlockPreviewDialog.py:213 ../dialogs/PouDialog.py:131
    +#: ../editors/Viewer.py:302 ../editors/Viewer.py:359 ../editors/Viewer.py:389
    +#: ../editors/Viewer.py:411 ../editors/TextViewer.py:268
    +#: ../editors/TextViewer.py:297 ../editors/TextViewer.py:351
    +#: ../editors/TextViewer.py:374 ../controls/VariablePanel.py:364
    +#: ../IDEFrame.py:1647
    #, python-format
    msgid "\"%s\" pou already exists!"
    msgstr ""
    -#: ../dialogs/SFCStepNameDialog.py:59
    +#: ../dialogs/SFCStepNameDialog.py:62
    #, python-format
    msgid "\"%s\" step already exists!"
    msgstr ""
    -#: ../editors/DataTypeEditor.py:565
    +#: ../editors/DataTypeEditor.py:566
    #, python-format
    msgid "\"%s\" value already defined!"
    msgstr ""
    -#: ../dialogs/ArrayTypeDialog.py:103 ../editors/DataTypeEditor.py:758
    +#: ../dialogs/ArrayTypeDialog.py:105 ../editors/DataTypeEditor.py:759
    #, python-format
    msgid "\"%s\" value isn't a valid array dimension!"
    msgstr ""
    -#: ../dialogs/ArrayTypeDialog.py:107 ../editors/DataTypeEditor.py:765
    +#: ../dialogs/ArrayTypeDialog.py:109 ../editors/DataTypeEditor.py:766
    #, python-format
    msgid ""
    "\"%s\" value isn't a valid array dimension!\n"
    "Right value must be greater than left value."
    msgstr ""
    -#: ../PLCGenerator.py:1114
    +#: ../PLCGenerator.py:1133
    #, python-brace-format
    msgid "\"{a1}\" function cancelled in \"{a2}\" POU: No input connected"
    msgstr ""
    -#: ../editors/Viewer.py:289
    +#: ../editors/Viewer.py:292
    #, python-brace-format
    msgid "\"{a1}\" is already used by \"{a2}\"!"
    msgstr ""
    -#: ../plcopen/plcopen.py:535
    +#: ../plcopen/plcopen.py:557
    #, python-brace-format
    msgid "\"{a1}\" resource already exists in \"{a2}\" configuration !!!"
    msgstr ""
    -#: ../plcopen/plcopen.py:555
    +#: ../plcopen/plcopen.py:577
    #, python-brace-format
    msgid "\"{a1}\" resource doesn't exist in \"{a2}\" configuration !!!"
    msgstr ""
    -#: ../controls/DebugVariablePanel/DebugVariablePanel.py:577
    +#: ../controls/DebugVariablePanel/DebugVariablePanel.py:580
    #, python-format
    msgid "%03gms"
    msgstr ""
    -#: ../controls/DebugVariablePanel/DebugVariablePanel.py:568
    +#: ../controls/DebugVariablePanel/DebugVariablePanel.py:571
    #, python-format
    msgid "%dd"
    msgstr ""
    +#: ../controls/DebugVariablePanel/DebugVariablePanel.py:61
    +#: ../controls/DebugVariablePanel/DebugVariablePanel.py:572
    +#, python-format
    +msgid "%dh"
    +msgstr ""
    +
    +#: ../controls/DebugVariablePanel/DebugVariablePanel.py:60
    +#: ../controls/DebugVariablePanel/DebugVariablePanel.py:573
    +#, python-format
    +msgid "%dm"
    +msgstr ""
    +
    #: ../controls/DebugVariablePanel/DebugVariablePanel.py:58
    -#: ../controls/DebugVariablePanel/DebugVariablePanel.py:569
    -#, python-format
    -msgid "%dh"
    -msgstr ""
    -
    -#: ../controls/DebugVariablePanel/DebugVariablePanel.py:57
    -#: ../controls/DebugVariablePanel/DebugVariablePanel.py:570
    -#, python-format
    -msgid "%dm"
    -msgstr ""
    -
    -#: ../controls/DebugVariablePanel/DebugVariablePanel.py:55
    #, python-format
    msgid "%dms"
    msgstr ""
    -#: ../controls/DebugVariablePanel/DebugVariablePanel.py:56
    -#: ../controls/DebugVariablePanel/DebugVariablePanel.py:571
    +#: ../controls/DebugVariablePanel/DebugVariablePanel.py:59
    +#: ../controls/DebugVariablePanel/DebugVariablePanel.py:574
    #, python-format
    msgid "%ds"
    msgstr ""
    -#: ../PLCControler.py:1591
    +#: ../PLCControler.py:1114
    #, python-format
    msgid "%s Data Types"
    msgstr ""
    -#: ../PLCControler.py:1574
    +#: ../PLCControler.py:1097
    #, python-format
    msgid "%s POUs"
    msgstr ""
    -#: ../canfestival/SlaveEditor.py:72 ../canfestival/NetworkEditor.py:97
    +#: ../canfestival/SlaveEditor.py:73 ../canfestival/NetworkEditor.py:97
    #, python-format
    msgid "%s Profile"
    msgstr ""
    -#: ../plcopen/plcopen.py:1727 ../plcopen/plcopen.py:1734
    -#: ../plcopen/plcopen.py:1747 ../plcopen/plcopen.py:1755
    -#: ../plcopen/plcopen.py:1765 ../plcopen/plcopen.py:1776
    +#: ../plcopen/plcopen.py:1901 ../plcopen/plcopen.py:1908
    +#: ../plcopen/plcopen.py:1921 ../plcopen/plcopen.py:1929
    +#: ../plcopen/plcopen.py:1939 ../plcopen/plcopen.py:1950
    #, python-format
    msgid "%s body don't have instances!"
    msgstr ""
    -#: ../plcopen/plcopen.py:1783 ../plcopen/plcopen.py:1790
    -#: ../plcopen/plcopen.py:1797
    +#: ../plcopen/plcopen.py:1957 ../plcopen/plcopen.py:1964
    +#: ../plcopen/plcopen.py:1971
    #, python-format
    msgid "%s body don't have text!"
    msgstr ""
    -#: ../IDEFrame.py:400
    +#: ../IDEFrame.py:388
    msgid "&Add Element"
    msgstr ""
    @@ -278,35 +278,35 @@
    msgid "&Close"
    msgstr ""
    -#: ../IDEFrame.py:370
    +#: ../IDEFrame.py:361
    msgid "&Configuration"
    msgstr ""
    -#: ../IDEFrame.py:359
    -msgid "&Data Type"
    -msgstr ""
    -
    -#: ../IDEFrame.py:404
    -msgid "&Delete"
    -msgstr ""
    -
    -#: ../IDEFrame.py:351
    -msgid "&Display"
    -msgstr ""
    -
    #: ../IDEFrame.py:350
    +msgid "&Data Type"
    +msgstr ""
    +
    +#: ../IDEFrame.py:392
    +msgid "&Delete"
    +msgstr ""
    +
    +#: ../IDEFrame.py:342
    +msgid "&Display"
    +msgstr ""
    +
    +#: ../IDEFrame.py:341
    msgid "&Edit"
    msgstr ""
    -#: ../IDEFrame.py:349
    +#: ../IDEFrame.py:340
    msgid "&File"
    msgstr ""
    -#: ../IDEFrame.py:361
    -msgid "&Function"
    -msgstr ""
    -
    #: ../IDEFrame.py:352
    +msgid "&Function"
    +msgstr ""
    +
    +#: ../IDEFrame.py:343
    msgid "&Help"
    msgstr ""
    @@ -314,19 +314,19 @@
    msgid "&License"
    msgstr ""
    -#: ../IDEFrame.py:365
    +#: ../IDEFrame.py:356
    msgid "&Program"
    msgstr ""
    -#: ../PLCOpenEditor.py:145
    +#: ../PLCOpenEditor.py:98
    msgid "&Properties"
    msgstr ""
    -#: ../BeremizIDE.py:249
    +#: ../BeremizIDE.py:244
    msgid "&Recent Projects"
    msgstr ""
    -#: ../IDEFrame.py:367
    +#: ../IDEFrame.py:358
    msgid "&Resource"
    msgstr ""
    @@ -340,52 +340,56 @@
    msgid "'{a1}' - {a2} matches in project"
    msgstr ""
    -#: ../connectors/PYRO/__init__.py:93
    +#: ../connectors/PYRO/__init__.py:98
    #, python-brace-format
    msgid "'{a1}' is located at {a2}\n"
    msgstr ""
    -#: ../controls/SearchResultPanel.py:299
    +#: ../controls/SearchResultPanel.py:298
    #, python-format
    msgid "(%d matches)"
    msgstr ""
    -#: ../dialogs/PouTransitionDialog.py:101 ../dialogs/PouActionDialog.py:99
    -#: ../dialogs/PouDialog.py:122
    +#: ../dialogs/PouTransitionDialog.py:103 ../dialogs/PouActionDialog.py:101
    +#: ../dialogs/PouDialog.py:124
    #, python-format
    msgid ", %s"
    msgstr ""
    -#: ../controls/LogViewer.py:286
    -msgid "1d"
    +#: ../controls/UriLocationEditor.py:49
    +msgid "- Select URI type -"
    msgstr ""
    #: ../controls/LogViewer.py:287
    -msgid "1h"
    +msgid "1d"
    msgstr ""
    #: ../controls/LogViewer.py:288
    -msgid "1m"
    +msgid "1h"
    msgstr ""
    #: ../controls/LogViewer.py:289
    +msgid "1m"
    +msgstr ""
    +
    +#: ../controls/LogViewer.py:290
    msgid "1s"
    msgstr ""
    -#: ../dialogs/PouDialog.py:131 ../IDEFrame.py:1654 ../IDEFrame.py:1700
    -#: ../IDEFrame.py:1719
    +#: ../dialogs/PouDialog.py:133 ../IDEFrame.py:1650 ../IDEFrame.py:1696
    +#: ../IDEFrame.py:1715
    #, python-format
    msgid "A POU has an element named \"%s\". This could cause a conflict. Do you wish to continue?"
    msgstr ""
    -#: ../dialogs/SFCStepNameDialog.py:55 ../dialogs/PouTransitionDialog.py:108
    -#: ../dialogs/PouNameDialog.py:53 ../dialogs/PouActionDialog.py:106
    -#: ../controls/VariablePanel.py:810 ../IDEFrame.py:1668 ../IDEFrame.py:1681
    +#: ../dialogs/SFCStepNameDialog.py:58 ../dialogs/PouTransitionDialog.py:110
    +#: ../dialogs/PouNameDialog.py:56 ../dialogs/PouActionDialog.py:108
    +#: ../controls/VariablePanel.py:789 ../IDEFrame.py:1664 ../IDEFrame.py:1677
    #, python-format
    msgid "A POU named \"%s\" already exists!"
    msgstr ""
    -#: ../ConfigTreeNode.py:427
    +#: ../ConfigTreeNode.py:424
    #, python-brace-format
    msgid "A child named \"{a1}\" already exists -> \"{a2}\"\n"
    msgstr ""
    @@ -394,22 +398,22 @@
    msgid "A location must be selected!"
    msgstr ""
    -#: ../editors/ResourceEditor.py:466
    +#: ../editors/ResourceEditor.py:485
    msgid "A task with the same name already exists!"
    msgstr ""
    -#: ../dialogs/SFCStepNameDialog.py:57 ../controls/VariablePanel.py:812
    -#: ../IDEFrame.py:1670 ../IDEFrame.py:1683
    +#: ../dialogs/SFCStepNameDialog.py:60 ../controls/VariablePanel.py:791
    +#: ../IDEFrame.py:1666 ../IDEFrame.py:1679
    #, python-format
    msgid "A variable with \"%s\" as name already exists in this pou!"
    msgstr ""
    -#: ../editors/CodeFileEditor.py:793
    +#: ../editors/CodeFileEditor.py:778
    #, python-format
    msgid "A variable with \"%s\" as name already exists!"
    msgstr ""
    -#: ../BeremizIDE.py:316 ../dialogs/AboutDialog.py:46 ../PLCOpenEditor.py:189
    +#: ../BeremizIDE.py:311 ../dialogs/AboutDialog.py:46 ../PLCOpenEditor.py:142
    msgid "About"
    msgstr ""
    @@ -417,113 +421,113 @@
    msgid "Absolute number"
    msgstr ""
    -#: ../dialogs/SFCStepDialog.py:73 ../dialogs/ActionBlockDialog.py:45
    +#: ../dialogs/SFCStepDialog.py:75 ../dialogs/ActionBlockDialog.py:47
    msgid "Action"
    msgstr ""
    -#: ../editors/Viewer.py:656 ../editors/Viewer.py:2437
    +#: ../editors/Viewer.py:653 ../editors/Viewer.py:2427
    msgid "Action Block"
    msgstr ""
    -#: ../dialogs/PouActionDialog.py:87
    +#: ../dialogs/PouActionDialog.py:89
    msgid "Action Name"
    msgstr ""
    -#: ../dialogs/PouActionDialog.py:54
    +#: ../dialogs/PouActionDialog.py:56
    msgid "Action Name:"
    msgstr ""
    -#: ../plcopen/plcopen.py:1423
    +#: ../plcopen/plcopen.py:1567
    #, python-format
    msgid "Action with name %s doesn't exist!"
    msgstr ""
    -#: ../PLCControler.py:105
    +#: ../plcopen/types_enums.py:76
    msgid "Actions"
    msgstr ""
    -#: ../dialogs/ActionBlockDialog.py:137
    +#: ../dialogs/ActionBlockDialog.py:139
    msgid "Actions:"
    msgstr ""
    -#: ../editors/Viewer.py:470
    +#: ../editors/Viewer.py:473
    msgid "Active"
    msgstr ""
    -#: ../canfestival/SlaveEditor.py:83 ../canfestival/NetworkEditor.py:108
    -#: ../BeremizIDE.py:1001 ../editors/Viewer.py:689
    +#: ../canfestival/SlaveEditor.py:84 ../canfestival/NetworkEditor.py:108
    +#: ../BeremizIDE.py:1001 ../editors/Viewer.py:686
    msgid "Add"
    msgstr ""
    -#: ../IDEFrame.py:1930 ../IDEFrame.py:1965
    +#: ../IDEFrame.py:1924 ../IDEFrame.py:1959
    msgid "Add Action"
    msgstr ""
    -#: ../features.py:32
    -msgid "Add C code accessing located variables synchronously"
    -msgstr ""
    -
    -#: ../IDEFrame.py:1913
    -msgid "Add Configuration"
    -msgstr ""
    -
    -#: ../IDEFrame.py:1893
    -msgid "Add DataType"
    -msgstr ""
    -
    -#: ../editors/Viewer.py:612
    -msgid "Add Divergence Branch"
    -msgstr ""
    -
    -#: ../dialogs/DiscoveryDialog.py:127
    -msgid "Add IP"
    -msgstr ""
    -
    -#: ../IDEFrame.py:1901
    -msgid "Add POU"
    -msgstr ""
    -
    #: ../features.py:33
    -msgid "Add Python code executed asynchronously"
    -msgstr ""
    -
    -#: ../IDEFrame.py:1941 ../IDEFrame.py:1991
    -msgid "Add Resource"
    -msgstr ""
    -
    -#: ../IDEFrame.py:1919 ../IDEFrame.py:1962
    -msgid "Add Transition"
    -msgstr ""
    -
    -#: ../editors/Viewer.py:599
    -msgid "Add Wire Segment"
    -msgstr ""
    -
    -#: ../editors/SFCViewer.py:433
    -msgid "Add a new initial step"
    -msgstr ""
    -
    -#: ../editors/Viewer.py:2801 ../editors/SFCViewer.py:770
    -msgid "Add a new jump"
    -msgstr ""
    -
    -#: ../editors/SFCViewer.py:455
    -msgid "Add a new step"
    +msgid "Add C code accessing located variables synchronously"
    +msgstr ""
    +
    +#: ../IDEFrame.py:1907
    +msgid "Add Configuration"
    +msgstr ""
    +
    +#: ../IDEFrame.py:1887
    +msgid "Add DataType"
    +msgstr ""
    +
    +#: ../editors/Viewer.py:609
    +msgid "Add Divergence Branch"
    +msgstr ""
    +
    +#: ../dialogs/DiscoveryDialog.py:121
    +msgid "Add IP"
    +msgstr ""
    +
    +#: ../IDEFrame.py:1895
    +msgid "Add POU"
    msgstr ""
    #: ../features.py:34
    +msgid "Add Python code executed asynchronously"
    +msgstr ""
    +
    +#: ../IDEFrame.py:1935 ../IDEFrame.py:1985
    +msgid "Add Resource"
    +msgstr ""
    +
    +#: ../IDEFrame.py:1913 ../IDEFrame.py:1956
    +msgid "Add Transition"
    +msgstr ""
    +
    +#: ../editors/Viewer.py:596
    +msgid "Add Wire Segment"
    +msgstr ""
    +
    +#: ../editors/SFCViewer.py:447
    +msgid "Add a new initial step"
    +msgstr ""
    +
    +#: ../editors/Viewer.py:2791 ../editors/SFCViewer.py:784
    +msgid "Add a new jump"
    +msgstr ""
    +
    +#: ../editors/SFCViewer.py:469
    +msgid "Add a new step"
    +msgstr ""
    +
    +#: ../features.py:35
    msgid "Add a simple WxGlade based GUI."
    msgstr ""
    -#: ../dialogs/ActionBlockDialog.py:141
    +#: ../dialogs/ActionBlockDialog.py:143
    msgid "Add action"
    msgstr ""
    -#: ../editors/DataTypeEditor.py:365
    +#: ../editors/DataTypeEditor.py:364
    msgid "Add element"
    msgstr ""
    -#: ../editors/ResourceEditor.py:281
    +#: ../editors/ResourceEditor.py:283
    msgid "Add instance"
    msgstr ""
    @@ -531,11 +535,11 @@
    msgid "Add slave"
    msgstr ""
    -#: ../editors/ResourceEditor.py:250
    +#: ../editors/ResourceEditor.py:252
    msgid "Add task"
    msgstr ""
    -#: ../editors/CodeFileEditor.py:659 ../controls/VariablePanel.py:481
    +#: ../editors/CodeFileEditor.py:654 ../controls/VariablePanel.py:481
    msgid "Add variable"
    msgstr ""
    @@ -543,44 +547,44 @@
    msgid "Addition"
    msgstr ""
    -#: ../plcopen/definitions.py:50
    +#: ../plcopen/definitions.py:51
    msgid "Additional function blocks"
    msgstr ""
    -#: ../editors/Viewer.py:672
    +#: ../editors/Viewer.py:669
    msgid "Adjust Block Size"
    msgstr ""
    -#: ../editors/Viewer.py:1728
    +#: ../editors/Viewer.py:1720
    msgid "Alignment"
    msgstr ""
    #: ../dialogs/BrowseLocationsDialog.py:42
    #: ../dialogs/BrowseLocationsDialog.py:53
    #: ../dialogs/BrowseLocationsDialog.py:152
    -#: ../dialogs/BrowseLocationsDialog.py:155 ../controls/LogViewer.py:306
    -#: ../controls/VariablePanel.py:87
    +#: ../dialogs/BrowseLocationsDialog.py:155 ../controls/LogViewer.py:307
    +#: ../controls/VariablePanel.py:88
    msgid "All"
    msgstr ""
    -#: ../editors/FileManagementPanel.py:35
    +#: ../editors/FileManagementPanel.py:37
    msgid "All files (*.*)|*.*|CSV files (*.csv)|*.csv"
    msgstr ""
    -#: ../ProjectController.py:1716
    +#: ../ProjectController.py:1670
    msgid "Already connected. Please disconnect\n"
    msgstr ""
    -#: ../editors/DataTypeEditor.py:606
    +#: ../editors/DataTypeEditor.py:607
    #, python-format
    msgid "An element named \"%s\" already exists in this structure!"
    msgstr ""
    -#: ../editors/ResourceEditor.py:501
    +#: ../editors/ResourceEditor.py:520
    msgid "An instance with the same name already exists!"
    msgstr ""
    -#: ../dialogs/ConnectionDialog.py:101
    +#: ../dialogs/ConnectionDialog.py:103
    msgid "Apply name modification to all continuations with the same name"
    msgstr ""
    @@ -600,8 +604,8 @@
    msgid "Arithmetic"
    msgstr ""
    -#: ../editors/DataTypeEditor.py:58 ../editors/DataTypeEditor.py:648
    -#: ../controls/VariablePanel.py:893
    +#: ../editors/DataTypeEditor.py:60 ../editors/DataTypeEditor.py:649
    +#: ../controls/VariablePanel.py:872
    msgid "Array"
    msgstr ""
    @@ -609,45 +613,37 @@
    msgid "Assignment"
    msgstr ""
    -#: ../dialogs/FBDVariableDialog.py:225
    +#: ../dialogs/FBDVariableDialog.py:226
    msgid "At least a variable or an expression must be selected!"
    msgstr ""
    -#: ../controls/ProjectPropertiesPanel.py:103
    +#: ../controls/ProjectPropertiesPanel.py:111
    msgid "Author"
    msgstr ""
    -#: ../controls/ProjectPropertiesPanel.py:100
    +#: ../controls/ProjectPropertiesPanel.py:108
    msgid "Author Name (optional):"
    msgstr ""
    -#: ../dialogs/FindInPouDialog.py:78
    +#: ../dialogs/FindInPouDialog.py:80
    msgid "Backward"
    msgstr ""
    -#: ../util/Zeroconf.py:619
    -msgid "Bad domain name (circular) at "
    -msgstr ""
    -
    -#: ../util/Zeroconf.py:622
    -msgid "Bad domain name at "
    -msgstr ""
    -
    -#: ../canfestival/config_utils.py:359 ../canfestival/config_utils.py:666
    +#: ../canfestival/config_utils.py:365 ../canfestival/config_utils.py:672
    #, python-format
    msgid "Bad location size : %s"
    msgstr ""
    -#: ../dialogs/ArrayTypeDialog.py:55 ../editors/DataTypeEditor.py:183
    -#: ../editors/DataTypeEditor.py:213 ../editors/DataTypeEditor.py:308
    +#: ../dialogs/ArrayTypeDialog.py:57 ../editors/DataTypeEditor.py:183
    +#: ../editors/DataTypeEditor.py:213 ../editors/DataTypeEditor.py:307
    msgid "Base Type:"
    msgstr ""
    -#: ../editors/DataTypeEditor.py:638 ../controls/VariablePanel.py:851
    +#: ../editors/DataTypeEditor.py:639 ../controls/VariablePanel.py:830
    msgid "Base Types"
    msgstr ""
    -#: ../BeremizIDE.py:487
    +#: ../BeremizIDE.py:483
    msgid "Beremiz"
    msgstr ""
    @@ -679,27 +675,27 @@
    msgid "Bitwise inverting"
    msgstr ""
    -#: ../editors/Viewer.py:624 ../editors/Viewer.py:2450
    +#: ../editors/Viewer.py:621 ../editors/Viewer.py:2440
    msgid "Block"
    msgstr ""
    -#: ../dialogs/FBDBlockDialog.py:61
    +#: ../dialogs/FBDBlockDialog.py:63
    msgid "Block Properties"
    msgstr ""
    -#: ../editors/TextViewer.py:265
    +#: ../editors/TextViewer.py:260
    msgid "Block name"
    msgstr ""
    -#: ../editors/Viewer.py:590
    +#: ../editors/Viewer.py:586
    msgid "Bottom"
    msgstr ""
    -#: ../ProjectController.py:1395
    +#: ../ProjectController.py:1400
    msgid "Broken"
    msgstr ""
    -#: ../dialogs/BrowseValuesLibraryDialog.py:38
    +#: ../dialogs/BrowseValuesLibraryDialog.py:40
    #, python-format
    msgid "Browse %s values library"
    msgstr ""
    @@ -708,44 +704,44 @@
    msgid "Browse Locations"
    msgstr ""
    -#: ../ProjectController.py:1858
    +#: ../ProjectController.py:1815
    msgid "Build"
    msgstr ""
    -#: ../ProjectController.py:1330
    +#: ../ProjectController.py:1335
    msgid "Build directory already clean\n"
    msgstr ""
    -#: ../ProjectController.py:1859
    +#: ../ProjectController.py:1816
    msgid "Build project into build folder"
    msgstr ""
    -#: ../ProjectController.py:1106
    +#: ../ProjectController.py:1108
    msgid "C Build crashed !\n"
    msgstr ""
    -#: ../ProjectController.py:1103
    +#: ../ProjectController.py:1105
    msgid "C Build failed.\n"
    msgstr ""
    -#: ../c_ext/CFileEditor.py:64
    +#: ../c_ext/CFileEditor.py:66
    msgid "C code"
    msgstr ""
    -#: ../ProjectController.py:1181
    +#: ../ProjectController.py:1186
    msgid "C code generated successfully.\n"
    msgstr ""
    -#: ../targets/toolchain_makefile.py:124
    +#: ../targets/toolchain_makefile.py:126
    msgid "C compilation failed.\n"
    msgstr ""
    -#: ../targets/toolchain_gcc.py:195
    +#: ../targets/toolchain_gcc.py:199
    #, python-format
    msgid "C compilation of %s failed.\n"
    msgstr ""
    -#: ../features.py:32
    +#: ../features.py:33
    msgid "C extension"
    msgstr ""
    @@ -757,7 +753,7 @@
    msgid "CANOpen network"
    msgstr ""
    -#: ../canfestival/SlaveEditor.py:47
    +#: ../canfestival/SlaveEditor.py:48
    msgid "CANOpen slave"
    msgstr ""
    @@ -765,8 +761,8 @@
    msgid "CANopen support"
    msgstr ""
    -#: ../plcopen/plcopen.py:1665 ../plcopen/plcopen.py:1679
    -#: ../plcopen/plcopen.py:1704 ../plcopen/plcopen.py:1720
    +#: ../plcopen/plcopen.py:1839 ../plcopen/plcopen.py:1853
    +#: ../plcopen/plcopen.py:1878 ../plcopen/plcopen.py:1894
    msgid "Can only generate execution order on FBD networks!"
    msgstr ""
    @@ -774,7 +770,7 @@
    msgid "Can only give a location to local or global variables"
    msgstr ""
    -#: ../PLCOpenEditor.py:365
    +#: ../PLCOpenEditor.py:318
    #, python-format
    msgid "Can't generate program to file %s!"
    msgstr ""
    @@ -783,7 +779,7 @@
    msgid "Can't give a location to a function block instance"
    msgstr ""
    -#: ../PLCOpenEditor.py:410
    +#: ../PLCOpenEditor.py:363
    #, python-format
    msgid "Can't save project to file %s!"
    msgstr ""
    @@ -797,29 +793,33 @@
    msgid "Cannot create child {a1} of type {a2} "
    msgstr ""
    -#: ../ConfigTreeNode.py:457
    +#: ../ConfigTreeNode.py:454
    #, python-format
    msgid "Cannot find lower free IEC channel than %d\n"
    msgstr ""
    -#: ../connectors/PYRO/__init__.py:134
    +#: ../connectors/PYRO/__init__.py:139
    msgid "Cannot get PLC status - connection failed.\n"
    msgstr ""
    -#: ../ProjectController.py:965
    +#: ../ProjectController.py:967
    msgid "Cannot open/parse VARIABLES.csv!\n"
    msgstr ""
    -#: ../canfestival/config_utils.py:394
    +#: ../canfestival/config_utils.py:400
    #, python-brace-format
    msgid "Cannot set bit offset for non bool '{a1}' variable (ID:{a2},Idx:{a3},sIdx:{a4}))"
    msgstr ""
    -#: ../dialogs/SearchInProjectDialog.py:62 ../dialogs/FindInPouDialog.py:87
    +#: ../ProjectController.py:1761
    +msgid "Cannot transfer while PLC is running. Stop it now?"
    +msgstr ""
    +
    +#: ../dialogs/SearchInProjectDialog.py:63 ../dialogs/FindInPouDialog.py:89
    msgid "Case sensitive"
    msgstr ""
    -#: ../editors/Viewer.py:585
    +#: ../editors/Viewer.py:581
    msgid "Center"
    msgstr ""
    @@ -831,7 +831,7 @@
    msgid "Change Name"
    msgstr ""
    -#: ../IDEFrame.py:1983
    +#: ../IDEFrame.py:1977
    msgid "Change POU Type To"
    msgstr ""
    @@ -847,24 +847,24 @@
    msgid "Character string"
    msgstr ""
    -#: ../svgui/svgui.py:135
    +#: ../svgui/svgui.py:136
    msgid "Choose a SVG file"
    msgstr ""
    -#: ../ProjectController.py:559
    +#: ../ProjectController.py:561
    msgid "Choose a directory to save project"
    msgstr ""
    -#: ../canfestival/canfestival.py:179 ../PLCOpenEditor.py:323
    -#: ../PLCOpenEditor.py:355 ../PLCOpenEditor.py:404
    +#: ../canfestival/canfestival.py:171 ../PLCOpenEditor.py:276
    +#: ../PLCOpenEditor.py:308 ../PLCOpenEditor.py:357
    msgid "Choose a file"
    msgstr ""
    -#: ../BeremizIDE.py:905
    +#: ../BeremizIDE.py:900
    msgid "Choose a project"
    msgstr ""
    -#: ../dialogs/BrowseValuesLibraryDialog.py:41
    +#: ../dialogs/BrowseValuesLibraryDialog.py:43
    #, python-format
    msgid "Choose a value for %s:"
    msgstr ""
    @@ -873,19 +873,19 @@
    msgid "Choose a working directory "
    msgstr ""
    -#: ../BeremizIDE.py:869
    +#: ../BeremizIDE.py:864
    msgid "Choose an empty directory for new project"
    msgstr ""
    -#: ../ProjectController.py:466
    +#: ../ProjectController.py:468
    msgid "Chosen folder doesn't contain a program. It's not a valid project!"
    msgstr ""
    -#: ../ProjectController.py:433
    +#: ../ProjectController.py:435
    msgid "Chosen folder isn't empty. You can't use it for a new project!"
    msgstr ""
    -#: ../controls/VariablePanel.py:59
    +#: ../controls/VariablePanel.py:60
    msgid "Class"
    msgstr ""
    @@ -893,73 +893,73 @@
    msgid "Class Filter:"
    msgstr ""
    -#: ../dialogs/FBDVariableDialog.py:73
    +#: ../dialogs/FBDVariableDialog.py:74
    msgid "Class:"
    msgstr ""
    -#: ../ProjectController.py:1864
    +#: ../ProjectController.py:1821
    msgid "Clean"
    msgstr ""
    -#: ../controls/LogViewer.py:326
    +#: ../controls/LogViewer.py:327
    msgid "Clean log messages"
    msgstr ""
    -#: ../ProjectController.py:1865
    +#: ../ProjectController.py:1822
    msgid "Clean project build folder"
    msgstr ""
    -#: ../ProjectController.py:1327
    +#: ../ProjectController.py:1332
    msgid "Cleaning the build directory\n"
    msgstr ""
    -#: ../IDEFrame.py:449
    +#: ../IDEFrame.py:437
    msgid "Clear Errors"
    msgstr ""
    -#: ../editors/Viewer.py:683
    +#: ../editors/Viewer.py:680
    msgid "Clear Execution Order"
    msgstr ""
    -#: ../dialogs/SearchInProjectDialog.py:106 ../dialogs/FindInPouDialog.py:110
    +#: ../dialogs/SearchInProjectDialog.py:107 ../dialogs/FindInPouDialog.py:112
    msgid "Close"
    msgstr ""
    -#: ../BeremizIDE.py:631 ../PLCOpenEditor.py:230
    +#: ../BeremizIDE.py:627 ../PLCOpenEditor.py:183
    msgid "Close Application"
    msgstr ""
    -#: ../BeremizIDE.py:258 ../BeremizIDE.py:570 ../PLCOpenEditor.py:128
    -#: ../IDEFrame.py:1046
    +#: ../BeremizIDE.py:253 ../BeremizIDE.py:566 ../PLCOpenEditor.py:81
    +#: ../IDEFrame.py:1040
    msgid "Close Project"
    msgstr ""
    -#: ../BeremizIDE.py:256 ../PLCOpenEditor.py:126
    +#: ../BeremizIDE.py:251 ../PLCOpenEditor.py:79
    msgid "Close Tab"
    msgstr ""
    -#: ../editors/Viewer.py:641 ../editors/Viewer.py:2458
    +#: ../editors/Viewer.py:638 ../editors/Viewer.py:2448
    msgid "Coil"
    msgstr ""
    -#: ../editors/Viewer.py:662 ../editors/LDViewer.py:515
    +#: ../editors/Viewer.py:659 ../editors/LDViewer.py:517
    msgid "Comment"
    msgstr ""
    -#: ../BeremizIDE.py:308 ../BeremizIDE.py:312 ../PLCOpenEditor.py:181
    -#: ../PLCOpenEditor.py:185
    +#: ../BeremizIDE.py:303 ../BeremizIDE.py:307 ../PLCOpenEditor.py:134
    +#: ../PLCOpenEditor.py:138
    msgid "Community support"
    msgstr ""
    -#: ../dialogs/ProjectDialog.py:63
    +#: ../dialogs/ProjectDialog.py:65
    msgid "Company Name"
    msgstr ""
    -#: ../controls/ProjectPropertiesPanel.py:98
    +#: ../controls/ProjectPropertiesPanel.py:106
    msgid "Company Name (required):"
    msgstr ""
    -#: ../controls/ProjectPropertiesPanel.py:99
    +#: ../controls/ProjectPropertiesPanel.py:107
    msgid "Company URL (optional):"
    msgstr ""
    @@ -967,7 +967,7 @@
    msgid "Comparison"
    msgstr ""
    -#: ../ProjectController.py:754
    +#: ../ProjectController.py:756
    msgid "Compiling IEC Program into C code...\n"
    msgstr ""
    @@ -975,93 +975,93 @@
    msgid "Concatenation"
    msgstr ""
    -#: ../editors/ConfTreeNodeEditor.py:240
    +#: ../editors/ConfTreeNodeEditor.py:241
    msgid "Config"
    msgstr ""
    -#: ../editors/ProjectNodeEditor.py:37
    +#: ../editors/ProjectNodeEditor.py:39
    msgid "Config variables"
    msgstr ""
    -#: ../dialogs/SearchInProjectDialog.py:42
    +#: ../dialogs/SearchInProjectDialog.py:43
    msgid "Configuration"
    msgstr ""
    -#: ../PLCControler.py:106
    +#: ../plcopen/types_enums.py:77
    msgid "Configurations"
    msgstr ""
    -#: ../editors/Viewer.py:348 ../editors/Viewer.py:378 ../editors/Viewer.py:400
    -#: ../editors/TextViewer.py:294 ../editors/TextViewer.py:348
    -#: ../editors/TextViewer.py:371 ../controls/VariablePanel.py:354
    +#: ../editors/Viewer.py:351 ../editors/Viewer.py:381 ../editors/Viewer.py:403
    +#: ../editors/TextViewer.py:289 ../editors/TextViewer.py:343
    +#: ../editors/TextViewer.py:366 ../controls/VariablePanel.py:354
    msgid "Confirm or change variable name"
    msgstr ""
    -#: ../ProjectController.py:1885
    +#: ../ProjectController.py:1842
    msgid "Connect"
    msgstr ""
    -#: ../ProjectController.py:1886
    +#: ../ProjectController.py:1843
    msgid "Connect to the target PLC"
    msgstr ""
    -#: ../ProjectController.py:1386
    +#: ../ProjectController.py:1391
    #, python-format
    msgid "Connected to URI: %s"
    msgstr ""
    -#: ../dialogs/SFCTransitionDialog.py:77 ../editors/Viewer.py:626
    -#: ../editors/Viewer.py:2451
    +#: ../dialogs/SFCTransitionDialog.py:78 ../editors/Viewer.py:623
    +#: ../editors/Viewer.py:2441
    msgid "Connection"
    msgstr ""
    -#: ../dialogs/ConnectionDialog.py:53
    +#: ../dialogs/ConnectionDialog.py:55
    msgid "Connection Properties"
    msgstr ""
    -#: ../ProjectController.py:1737
    +#: ../ProjectController.py:1691
    msgid "Connection canceled!\n"
    msgstr ""
    -#: ../ProjectController.py:1760
    +#: ../ProjectController.py:1714
    #, python-format
    msgid "Connection failed to %s!\n"
    msgstr ""
    -#: ../connectors/PYRO/__init__.py:118 ../connectors/WAMP/__init__.py:119
    +#: ../connectors/PYRO/__init__.py:123 ../connectors/WAMP/__init__.py:120
    msgid "Connection lost!\n"
    msgstr ""
    -#: ../connectors/PYRO/__init__.py:105
    +#: ../connectors/PYRO/__init__.py:110
    #, python-format
    msgid "Connection to '%s' failed.\n"
    msgstr ""
    -#: ../dialogs/ConnectionDialog.py:65 ../editors/Viewer.py:1684
    +#: ../dialogs/ConnectionDialog.py:67 ../editors/Viewer.py:1676
    msgid "Connector"
    msgstr ""
    -#: ../dialogs/SFCStepDialog.py:66
    +#: ../dialogs/SFCStepDialog.py:68
    msgid "Connectors:"
    msgstr ""
    -#: ../BeremizIDE.py:383
    +#: ../BeremizIDE.py:378
    msgid "Console"
    msgstr ""
    -#: ../controls/VariablePanel.py:74
    +#: ../controls/VariablePanel.py:75
    msgid "Constant"
    msgstr ""
    -#: ../editors/Viewer.py:637 ../editors/Viewer.py:2454
    +#: ../editors/Viewer.py:634 ../editors/Viewer.py:2444
    msgid "Contact"
    msgstr ""
    -#: ../controls/ProjectPropertiesPanel.py:203
    +#: ../controls/ProjectPropertiesPanel.py:217
    msgid "Content Description (optional):"
    msgstr ""
    -#: ../dialogs/ConnectionDialog.py:66 ../editors/Viewer.py:1685
    +#: ../dialogs/ConnectionDialog.py:68 ../editors/Viewer.py:1677
    msgid "Continuation"
    msgstr ""
    @@ -1081,20 +1081,20 @@
    msgid "Conversion to time-of-day"
    msgstr ""
    -#: ../editors/Viewer.py:698 ../controls/LogViewer.py:712 ../IDEFrame.py:384
    -#: ../IDEFrame.py:439
    +#: ../editors/Viewer.py:695 ../controls/LogViewer.py:713 ../IDEFrame.py:372
    +#: ../IDEFrame.py:427
    msgid "Copy"
    msgstr ""
    -#: ../IDEFrame.py:1970
    +#: ../IDEFrame.py:1964
    msgid "Copy POU"
    msgstr ""
    -#: ../editors/FileManagementPanel.py:66
    +#: ../editors/FileManagementPanel.py:68
    msgid "Copy file from left folder to right"
    msgstr ""
    -#: ../editors/FileManagementPanel.py:65
    +#: ../editors/FileManagementPanel.py:67
    msgid "Copy file from right folder to left"
    msgstr ""
    @@ -1102,121 +1102,117 @@
    msgid "Cosine"
    msgstr ""
    -#: ../ConfigTreeNode.py:661
    +#: ../ConfigTreeNode.py:660
    #, python-brace-format
    msgid ""
    "Could not add child \"{a1}\", type {a2} :\n"
    "{a3}\n"
    msgstr ""
    -#: ../py_ext/PythonFileCTNMixin.py:80
    +#: ../py_ext/PythonFileCTNMixin.py:81
    #, python-format
    msgid "Couldn't import old %s file."
    msgstr ""
    -#: ../ConfigTreeNode.py:631
    +#: ../ConfigTreeNode.py:630
    #, python-brace-format
    msgid ""
    "Couldn't load confnode base parameters {a1} :\n"
    " {a2}"
    msgstr ""
    -#: ../ConfigTreeNode.py:648 ../CodeFileTreeNode.py:127
    +#: ../ConfigTreeNode.py:647 ../CodeFileTreeNode.py:127
    #, python-brace-format
    msgid ""
    "Couldn't load confnode parameters {a1} :\n"
    " {a2}"
    msgstr ""
    -#: ../PLCControler.py:1004
    +#: ../PLCControler.py:552
    msgid "Couldn't paste non-POU object."
    msgstr ""
    -#: ../ProjectController.py:1682
    +#: ../ProjectController.py:1636
    msgid "Couldn't start PLC !\n"
    msgstr ""
    -#: ../ProjectController.py:1690
    +#: ../ProjectController.py:1644
    msgid "Couldn't stop PLC !\n"
    msgstr ""
    -#: ../ProjectController.py:1654
    -msgid "Couldn't stop debugger.\n"
    -msgstr ""
    -
    -#: ../svgui/svgui.py:56
    +#: ../svgui/svgui.py:57
    msgid "Create HMI"
    msgstr ""
    -#: ../dialogs/PouDialog.py:52
    +#: ../dialogs/PouDialog.py:54
    msgid "Create a new POU"
    msgstr ""
    -#: ../dialogs/PouActionDialog.py:43
    +#: ../dialogs/PouActionDialog.py:45
    msgid "Create a new action"
    msgstr ""
    -#: ../IDEFrame.py:165
    +#: ../IDEFrame.py:166
    msgid "Create a new action block"
    msgstr ""
    -#: ../IDEFrame.py:114 ../IDEFrame.py:144 ../IDEFrame.py:177
    +#: ../IDEFrame.py:115 ../IDEFrame.py:145 ../IDEFrame.py:178
    msgid "Create a new block"
    msgstr ""
    -#: ../IDEFrame.py:138
    +#: ../IDEFrame.py:139
    msgid "Create a new branch"
    msgstr ""
    -#: ../IDEFrame.py:132
    +#: ../IDEFrame.py:133
    msgid "Create a new coil"
    msgstr ""
    -#: ../IDEFrame.py:108 ../IDEFrame.py:123 ../IDEFrame.py:153
    +#: ../IDEFrame.py:109 ../IDEFrame.py:124 ../IDEFrame.py:154
    msgid "Create a new comment"
    msgstr ""
    -#: ../IDEFrame.py:117 ../IDEFrame.py:147 ../IDEFrame.py:180
    +#: ../IDEFrame.py:118 ../IDEFrame.py:148 ../IDEFrame.py:181
    msgid "Create a new connection"
    msgstr ""
    -#: ../IDEFrame.py:135 ../IDEFrame.py:186
    +#: ../IDEFrame.py:136 ../IDEFrame.py:187
    msgid "Create a new contact"
    msgstr ""
    -#: ../IDEFrame.py:168
    +#: ../IDEFrame.py:169
    msgid "Create a new divergence"
    msgstr ""
    -#: ../dialogs/SFCDivergenceDialog.py:53
    +#: ../dialogs/SFCDivergenceDialog.py:54
    msgid "Create a new divergence or convergence"
    msgstr ""
    -#: ../IDEFrame.py:156
    +#: ../IDEFrame.py:157
    msgid "Create a new initial step"
    msgstr ""
    -#: ../IDEFrame.py:171
    +#: ../IDEFrame.py:172
    msgid "Create a new jump"
    msgstr ""
    -#: ../IDEFrame.py:126 ../IDEFrame.py:183
    +#: ../IDEFrame.py:127 ../IDEFrame.py:184
    msgid "Create a new power rail"
    msgstr ""
    -#: ../IDEFrame.py:129
    +#: ../IDEFrame.py:130
    msgid "Create a new rung"
    msgstr ""
    -#: ../IDEFrame.py:159
    +#: ../IDEFrame.py:160
    msgid "Create a new step"
    msgstr ""
    -#: ../dialogs/PouTransitionDialog.py:47 ../IDEFrame.py:162
    +#: ../dialogs/PouTransitionDialog.py:49 ../IDEFrame.py:163
    msgid "Create a new transition"
    msgstr ""
    -#: ../IDEFrame.py:111 ../IDEFrame.py:141 ../IDEFrame.py:174
    +#: ../IDEFrame.py:112 ../IDEFrame.py:142 ../IDEFrame.py:175
    msgid "Create a new variable"
    msgstr ""
    @@ -1224,15 +1220,15 @@
    msgid "Credits"
    msgstr ""
    -#: ../Beremiz_service.py:442
    +#: ../Beremiz_service.py:424
    msgid "Current working directory :"
    msgstr ""
    -#: ../editors/Viewer.py:697 ../IDEFrame.py:382 ../IDEFrame.py:438
    +#: ../editors/Viewer.py:694 ../IDEFrame.py:370 ../IDEFrame.py:426
    msgid "Cut"
    msgstr ""
    -#: ../editors/ResourceEditor.py:79
    +#: ../editors/ResourceEditor.py:81
    msgid "Cyclic"
    msgstr ""
    @@ -1244,19 +1240,19 @@
    msgid "DEPRECATED"
    msgstr ""
    -#: ../canfestival/SlaveEditor.py:79 ../canfestival/NetworkEditor.py:104
    +#: ../canfestival/SlaveEditor.py:80 ../canfestival/NetworkEditor.py:104
    msgid "DS-301 Profile"
    msgstr ""
    -#: ../canfestival/SlaveEditor.py:80 ../canfestival/NetworkEditor.py:105
    +#: ../canfestival/SlaveEditor.py:81 ../canfestival/NetworkEditor.py:105
    msgid "DS-302 Profile"
    msgstr ""
    -#: ../dialogs/SearchInProjectDialog.py:38
    +#: ../dialogs/SearchInProjectDialog.py:39
    msgid "Data Type"
    msgstr ""
    -#: ../PLCControler.py:105
    +#: ../plcopen/types_enums.py:76
    msgid "Data Types"
    msgstr ""
    @@ -1277,66 +1273,58 @@
    msgid "Date subtraction"
    msgstr ""
    -#: ../dialogs/DurationEditorDialog.py:44
    +#: ../dialogs/DurationEditorDialog.py:46
    msgid "Days:"
    msgstr ""
    -#: ../ProjectController.py:1782
    +#: ../ProjectController.py:1729
    msgid "Debug does not match PLC - stop/transfert/start to re-enable\n"
    msgstr ""
    -#: ../controls/PouInstanceVariablesPanel.py:150
    +#: ../controls/PouInstanceVariablesPanel.py:144
    msgid "Debug instance"
    msgstr ""
    -#: ../editors/Viewer.py:487
    +#: ../editors/Viewer.py:490
    #, python-format
    msgid "Debug: %s"
    msgstr ""
    -#: ../ProjectController.py:1444
    +#: ../ProjectController.py:1471
    #, python-format
    msgid "Debug: Unknown variable '%s'\n"
    msgstr ""
    -#: ../ProjectController.py:1442
    +#: ../ProjectController.py:1469
    #, python-format
    msgid "Debug: Unsupported type to debug '%s'\n"
    msgstr ""
    -#: ../IDEFrame.py:675
    +#: ../IDEFrame.py:660
    msgid "Debugger"
    msgstr ""
    -#: ../ProjectController.py:1623
    -msgid "Debugger disabled\n"
    -msgstr ""
    -
    -#: ../ProjectController.py:1779
    +#: ../ProjectController.py:1726
    msgid "Debugger ready\n"
    msgstr ""
    -#: ../ProjectController.py:1656
    -msgid "Debugger stopped.\n"
    -msgstr ""
    -
    -#: ../BeremizIDE.py:1004 ../editors/Viewer.py:673 ../IDEFrame.py:1999
    +#: ../BeremizIDE.py:1004 ../editors/Viewer.py:670 ../IDEFrame.py:1993
    msgid "Delete"
    msgstr ""
    -#: ../editors/Viewer.py:613
    +#: ../editors/Viewer.py:610
    msgid "Delete Divergence Branch"
    msgstr ""
    -#: ../editors/FileManagementPanel.py:155
    +#: ../editors/FileManagementPanel.py:157
    msgid "Delete File"
    msgstr ""
    -#: ../editors/Viewer.py:600
    +#: ../editors/Viewer.py:597
    msgid "Delete Wire Segment"
    msgstr ""
    -#: ../controls/CustomEditableListBox.py:42
    +#: ../controls/CustomEditableListBox.py:44
    msgid "Delete item"
    msgstr ""
    @@ -1348,7 +1336,7 @@
    msgid "Derivation Type:"
    msgstr ""
    -#: ../editors/CodeFileEditor.py:750
    +#: ../editors/CodeFileEditor.py:735
    msgid "Description"
    msgstr ""
    @@ -1356,11 +1344,11 @@
    msgid "Description:"
    msgstr ""
    -#: ../dialogs/ArrayTypeDialog.py:61 ../editors/DataTypeEditor.py:333
    +#: ../dialogs/ArrayTypeDialog.py:63 ../editors/DataTypeEditor.py:332
    msgid "Dimensions:"
    msgstr ""
    -#: ../dialogs/FindInPouDialog.py:67
    +#: ../dialogs/FindInPouDialog.py:69
    msgid "Direction"
    msgstr ""
    @@ -1368,23 +1356,23 @@
    msgid "Direction:"
    msgstr ""
    -#: ../editors/DataTypeEditor.py:58
    +#: ../editors/DataTypeEditor.py:60
    msgid "Directly"
    msgstr ""
    -#: ../ProjectController.py:1898
    +#: ../ProjectController.py:1855
    msgid "Disconnect"
    msgstr ""
    -#: ../ProjectController.py:1899
    +#: ../ProjectController.py:1856
    msgid "Disconnect from PLC"
    msgstr ""
    -#: ../ProjectController.py:1396
    +#: ../ProjectController.py:1401
    msgid "Disconnected"
    msgstr ""
    -#: ../editors/Viewer.py:657 ../editors/Viewer.py:2446
    +#: ../editors/Viewer.py:654 ../editors/Viewer.py:2436
    msgid "Divergence"
    msgstr ""
    @@ -1392,111 +1380,107 @@
    msgid "Division"
    msgstr ""
    -#: ../editors/FileManagementPanel.py:154
    +#: ../editors/FileManagementPanel.py:156
    #, python-format
    msgid "Do you really want to delete the file '%s'?"
    msgstr ""
    -#: ../controls/VariablePanel.py:64
    +#: ../controls/VariablePanel.py:65
    msgid "Documentation"
    msgstr ""
    -#: ../PLCOpenEditor.py:359
    +#: ../PLCOpenEditor.py:312
    msgid "Done"
    msgstr ""
    -#: ../dialogs/ActionBlockDialog.py:40
    +#: ../dialogs/ActionBlockDialog.py:42
    msgid "Duration"
    msgstr ""
    -#: ../canfestival/canfestival.py:182
    +#: ../canfestival/canfestival.py:174
    msgid "EDS files (*.eds)|*.eds|All files|*.*"
    msgstr ""
    -#: ../editors/Viewer.py:671
    +#: ../editors/Viewer.py:668
    msgid "Edit Block"
    msgstr ""
    +#: ../dialogs/LDElementDialog.py:58
    +msgid "Edit Coil Values"
    +msgstr ""
    +
    #: ../dialogs/LDElementDialog.py:56
    -msgid "Edit Coil Values"
    -msgstr ""
    -
    -#: ../dialogs/LDElementDialog.py:54
    msgid "Edit Contact Values"
    msgstr ""
    -#: ../dialogs/DurationEditorDialog.py:60
    +#: ../dialogs/DurationEditorDialog.py:62
    msgid "Edit Duration"
    msgstr ""
    -#: ../dialogs/SFCStepDialog.py:51
    +#: ../dialogs/SFCStepDialog.py:53
    msgid "Edit Step"
    msgstr ""
    -#: ../wxglade_hmi/wxglade_hmi.py:42
    +#: ../wxglade_hmi/wxglade_hmi.py:45
    msgid "Edit a WxWidgets GUI with WXGlade"
    msgstr ""
    -#: ../dialogs/ActionBlockDialog.py:125
    +#: ../dialogs/ActionBlockDialog.py:127
    msgid "Edit action block properties"
    msgstr ""
    -#: ../dialogs/ArrayTypeDialog.py:45
    +#: ../dialogs/ArrayTypeDialog.py:47
    msgid "Edit array type properties"
    msgstr ""
    -#: ../editors/Viewer.py:2670 ../editors/Viewer.py:3112
    +#: ../editors/Viewer.py:2660 ../editors/Viewer.py:3102
    msgid "Edit comment"
    msgstr ""
    -#: ../editors/FileManagementPanel.py:67
    +#: ../editors/FileManagementPanel.py:69
    msgid "Edit file"
    msgstr ""
    -#: ../controls/CustomEditableListBox.py:40
    +#: ../controls/CustomEditableListBox.py:42
    msgid "Edit item"
    msgstr ""
    -#: ../editors/Viewer.py:3069
    +#: ../editors/Viewer.py:3059
    msgid "Edit jump target"
    msgstr ""
    -#: ../ProjectController.py:1916
    +#: ../ProjectController.py:1873
    msgid "Edit raw IEC code added to code generated by PLCGenerator"
    msgstr ""
    -#: ../editors/SFCViewer.py:801
    +#: ../editors/SFCViewer.py:815
    msgid "Edit step name"
    msgstr ""
    -#: ../dialogs/SFCTransitionDialog.py:52
    +#: ../dialogs/SFCTransitionDialog.py:53
    msgid "Edit transition"
    msgstr ""
    -#: ../IDEFrame.py:647
    +#: ../IDEFrame.py:632
    msgid "Editor ToolBar"
    msgstr ""
    -#: ../ProjectController.py:1289
    +#: ../ProjectController.py:1294
    msgid "Editor selection"
    msgstr ""
    -#: ../editors/DataTypeEditor.py:361
    +#: ../editors/DataTypeEditor.py:360
    msgid "Elements :"
    msgstr ""
    -#: ../ProjectController.py:1394
    +#: ../ProjectController.py:1399
    msgid "Empty"
    msgstr ""
    -#: ../dialogs/ArrayTypeDialog.py:98
    +#: ../dialogs/ArrayTypeDialog.py:100
    msgid "Empty dimension isn't allowed."
    msgstr ""
    -#: ../IDEFrame.py:379
    -msgid "Enable Undo/Redo"
    -msgstr ""
    -
    #: ../Beremiz_service.py:341
    msgid "Enter a name "
    msgstr ""
    @@ -1509,7 +1493,7 @@
    msgid "Enter the IP of the interface to bind"
    msgstr ""
    -#: ../editors/DataTypeEditor.py:58
    +#: ../editors/DataTypeEditor.py:60
    msgid "Enumerated"
    msgstr ""
    @@ -1517,43 +1501,44 @@
    msgid "Equal to"
    msgstr ""
    -#: ../dialogs/ForceVariableDialog.py:211
    -#: ../dialogs/SearchInProjectDialog.py:171 ../dialogs/SFCStepNameDialog.py:61
    -#: ../dialogs/DurationEditorDialog.py:122
    -#: ../dialogs/DurationEditorDialog.py:168 ../dialogs/PouTransitionDialog.py:112
    -#: ../dialogs/BlockPreviewDialog.py:237 ../dialogs/ProjectDialog.py:78
    -#: ../dialogs/ArrayTypeDialog.py:112 ../dialogs/PouNameDialog.py:55
    +#: ../dialogs/ForceVariableDialog.py:213
    +#: ../dialogs/SearchInProjectDialog.py:172 ../dialogs/SFCStepNameDialog.py:64
    +#: ../dialogs/DurationEditorDialog.py:124
    +#: ../dialogs/DurationEditorDialog.py:170 ../dialogs/PouTransitionDialog.py:114
    +#: ../dialogs/BlockPreviewDialog.py:237 ../dialogs/ProjectDialog.py:80
    +#: ../dialogs/ArrayTypeDialog.py:114 ../dialogs/PouNameDialog.py:58
    #: ../dialogs/BrowseLocationsDialog.py:229
    -#: ../dialogs/BrowseValuesLibraryDialog.py:83 ../dialogs/PouActionDialog.py:110
    -#: ../dialogs/PouDialog.py:141 ../PLCOpenEditor.py:366 ../PLCOpenEditor.py:371
    -#: ../editors/ResourceEditor.py:451 ../editors/Viewer.py:464
    -#: ../editors/LDViewer.py:675 ../editors/LDViewer.py:891
    -#: ../editors/LDViewer.py:895 ../editors/DataTypeEditor.py:565
    -#: ../editors/DataTypeEditor.py:570 ../editors/DataTypeEditor.py:589
    -#: ../editors/DataTypeEditor.py:758 ../editors/DataTypeEditor.py:765
    -#: ../editors/TextViewer.py:395 ../editors/CodeFileEditor.py:775
    -#: ../ProjectController.py:389 ../ProjectController.py:529
    -#: ../ProjectController.py:536 ../controls/FolderTree.py:220
    -#: ../controls/DebugVariablePanel/DebugVariablePanel.py:170
    -#: ../controls/DebugVariablePanel/DebugVariableTextViewer.py:137
    -#: ../controls/DebugVariablePanel/DebugVariableGraphicViewer.py:232
    -#: ../controls/VariablePanel.py:431 ../controls/VariablePanel.py:794
    -#: ../util/ExceptionHandler.py:68 ../IDEFrame.py:1042 ../IDEFrame.py:1654
    -#: ../IDEFrame.py:1695 ../IDEFrame.py:1700 ../IDEFrame.py:1714
    -#: ../IDEFrame.py:1719 ../Beremiz_service.py:221
    +#: ../dialogs/BrowseValuesLibraryDialog.py:87 ../dialogs/PouActionDialog.py:112
    +#: ../dialogs/PouDialog.py:143 ../PLCOpenEditor.py:319 ../PLCOpenEditor.py:324
    +#: ../editors/ResourceEditor.py:470 ../editors/Viewer.py:467
    +#: ../editors/LDViewer.py:677 ../editors/LDViewer.py:893
    +#: ../editors/LDViewer.py:897 ../editors/DataTypeEditor.py:566
    +#: ../editors/DataTypeEditor.py:571 ../editors/DataTypeEditor.py:590
    +#: ../editors/DataTypeEditor.py:759 ../editors/DataTypeEditor.py:766
    +#: ../editors/TextViewer.py:390 ../editors/CodeFileEditor.py:760
    +#: ../ProjectController.py:391 ../ProjectController.py:531
    +#: ../ProjectController.py:538 ../controls/FolderTree.py:222
    +#: ../controls/ProjectPropertiesPanel.py:306
    +#: ../controls/DebugVariablePanel/DebugVariablePanel.py:173
    +#: ../controls/DebugVariablePanel/DebugVariableTextViewer.py:138
    +#: ../controls/DebugVariablePanel/DebugVariableGraphicViewer.py:227
    +#: ../controls/VariablePanel.py:431 ../controls/VariablePanel.py:773
    +#: ../util/ExceptionHandler.py:70 ../IDEFrame.py:1036 ../IDEFrame.py:1650
    +#: ../IDEFrame.py:1691 ../IDEFrame.py:1696 ../IDEFrame.py:1710
    +#: ../IDEFrame.py:1715 ../Beremiz_service.py:221
    msgid "Error"
    msgstr ""
    -#: ../ProjectController.py:809
    +#: ../ProjectController.py:811
    msgid "Error : At least one configuration and one resource must be declared in PLC !\n"
    msgstr ""
    -#: ../ProjectController.py:801
    +#: ../ProjectController.py:803
    #, python-format
    msgid "Error : IEC to C compiler returned %d\n"
    msgstr ""
    -#: ../ProjectController.py:729
    +#: ../ProjectController.py:731
    #, python-format
    msgid ""
    "Error in ST/IL/SFC code generator :\n"
    @@ -1565,32 +1550,37 @@
    msgid "Error while saving \"%s\"\n"
    msgstr ""
    -#: ../canfestival/canfestival.py:187
    +#: ../canfestival/canfestival.py:179
    msgid "Error: Export slave failed\n"
    msgstr ""
    -#: ../canfestival/canfestival.py:397
    +#: ../modbus/modbus.py:601
    +#, python-brace-format
    +msgid "Error: Modbus/IP Servers %{a1}.x and %{a2}.x use the same port number {a3}.\n"
    +msgstr ""
    +
    +#: ../canfestival/canfestival.py:388
    msgid "Error: No Master generated\n"
    msgstr ""
    -#: ../canfestival/canfestival.py:392
    +#: ../canfestival/canfestival.py:383
    msgid "Error: No PLC built\n"
    msgstr ""
    -#: ../ProjectController.py:1754
    +#: ../ProjectController.py:1708
    #, python-format
    msgid "Exception while connecting %s!\n"
    msgstr ""
    -#: ../dialogs/FBDBlockDialog.py:121
    +#: ../dialogs/FBDBlockDialog.py:123
    msgid "Execution Control:"
    msgstr ""
    -#: ../dialogs/FBDVariableDialog.py:83 ../dialogs/FBDBlockDialog.py:109
    +#: ../dialogs/FBDVariableDialog.py:84 ../dialogs/FBDBlockDialog.py:111
    msgid "Execution Order:"
    msgstr ""
    -#: ../features.py:35
    +#: ../features.py:36
    msgid "Experimental web based HMI"
    msgstr ""
    @@ -1602,77 +1592,77 @@
    msgid "Exponentiation"
    msgstr ""
    -#: ../canfestival/canfestival.py:194
    +#: ../canfestival/canfestival.py:186
    msgid "Export CanOpen slave to EDS file"
    msgstr ""
    -#: ../controls/DebugVariablePanel/DebugVariablePanel.py:243
    +#: ../controls/DebugVariablePanel/DebugVariablePanel.py:246
    msgid "Export graph values to clipboard"
    msgstr ""
    -#: ../canfestival/canfestival.py:193
    +#: ../canfestival/canfestival.py:185
    msgid "Export slave"
    msgstr ""
    -#: ../dialogs/FBDVariableDialog.py:93
    +#: ../dialogs/FBDVariableDialog.py:94
    msgid "Expression:"
    msgstr ""
    -#: ../controls/VariablePanel.py:89
    +#: ../controls/VariablePanel.py:90
    msgid "External"
    msgstr ""
    -#: ../ProjectController.py:824
    +#: ../ProjectController.py:826
    msgid "Extracting Located Variables...\n"
    msgstr ""
    -#: ../dialogs/PouTransitionDialog.py:38 ../dialogs/PouActionDialog.py:34
    -#: ../dialogs/PouDialog.py:42 ../controls/ProjectPropertiesPanel.py:148
    +#: ../dialogs/PouTransitionDialog.py:40 ../dialogs/PouActionDialog.py:36
    +#: ../dialogs/PouDialog.py:44 ../controls/ProjectPropertiesPanel.py:158
    msgid "FBD"
    msgstr ""
    -#: ../ProjectController.py:1816
    +#: ../ProjectController.py:1773
    msgid "Failed : Must build before transfer.\n"
    msgstr ""
    -#: ../dialogs/LDElementDialog.py:78 ../editors/Viewer.py:560
    +#: ../dialogs/LDElementDialog.py:80 ../editors/Viewer.py:556
    msgid "Falling Edge"
    msgstr ""
    -#: ../ProjectController.py:1096
    +#: ../ProjectController.py:1098
    msgid "Fatal : cannot get builder.\n"
    msgstr ""
    -#: ../Beremiz.py:156
    +#: ../Beremiz.py:160
    #, python-format
    msgid "Fetching %s"
    msgstr ""
    -#: ../dialogs/DurationEditorDialog.py:165
    -#, python-format
    -msgid "Field %s hasn't a valid value!"
    -msgstr ""
    -
    #: ../dialogs/DurationEditorDialog.py:167
    #, python-format
    +msgid "Field %s hasn't a valid value!"
    +msgstr ""
    +
    +#: ../dialogs/DurationEditorDialog.py:169
    +#, python-format
    msgid "Fields %s haven't a valid value!"
    msgstr ""
    -#: ../controls/FolderTree.py:219
    +#: ../controls/FolderTree.py:221
    #, python-format
    msgid "File '%s' already exists!"
    msgstr ""
    -#: ../dialogs/SearchInProjectDialog.py:101 ../dialogs/FindInPouDialog.py:38
    -#: ../dialogs/FindInPouDialog.py:105 ../IDEFrame.py:389
    +#: ../dialogs/SearchInProjectDialog.py:102 ../dialogs/FindInPouDialog.py:40
    +#: ../dialogs/FindInPouDialog.py:107 ../IDEFrame.py:377
    msgid "Find"
    msgstr ""
    -#: ../IDEFrame.py:391
    +#: ../IDEFrame.py:379
    msgid "Find Next"
    msgstr ""
    -#: ../IDEFrame.py:393
    +#: ../IDEFrame.py:381
    msgid "Find Previous"
    msgstr ""
    @@ -1680,93 +1670,89 @@
    msgid "Find position"
    msgstr ""
    -#: ../dialogs/FindInPouDialog.py:56
    +#: ../dialogs/FindInPouDialog.py:58
    msgid "Find:"
    msgstr ""
    -#: ../connectors/PYRO/__init__.py:166
    -msgid "Force runtime reload\n"
    -msgstr ""
    -
    -#: ../editors/Viewer.py:1641
    +#: ../editors/Viewer.py:1633
    msgid "Force value"
    msgstr ""
    -#: ../dialogs/ForceVariableDialog.py:174
    +#: ../dialogs/ForceVariableDialog.py:176
    msgid "Forcing Variable Value"
    msgstr ""
    -#: ../dialogs/SFCTransitionDialog.py:183 ../dialogs/PouTransitionDialog.py:102
    -#: ../dialogs/ProjectDialog.py:77 ../dialogs/PouActionDialog.py:100
    -#: ../dialogs/PouDialog.py:123
    +#: ../dialogs/SFCTransitionDialog.py:184 ../dialogs/PouTransitionDialog.py:104
    +#: ../dialogs/ProjectDialog.py:79 ../dialogs/PouActionDialog.py:102
    +#: ../dialogs/PouDialog.py:125
    #, python-format
    msgid "Form isn't complete. %s must be filled!"
    msgstr ""
    -#: ../dialogs/SFCStepDialog.py:148 ../dialogs/FBDBlockDialog.py:237
    -#: ../dialogs/ConnectionDialog.py:164
    +#: ../dialogs/SFCStepDialog.py:150 ../dialogs/FBDBlockDialog.py:239
    +#: ../dialogs/ConnectionDialog.py:166
    msgid "Form isn't complete. Name must be filled!"
    msgstr ""
    -#: ../dialogs/FBDBlockDialog.py:233
    +#: ../dialogs/FBDBlockDialog.py:235
    msgid "Form isn't complete. Valid block type must be selected!"
    msgstr ""
    -#: ../dialogs/FindInPouDialog.py:73
    +#: ../dialogs/FindInPouDialog.py:75
    msgid "Forward"
    msgstr ""
    -#: ../dialogs/SearchInProjectDialog.py:39 ../IDEFrame.py:1786
    +#: ../dialogs/SearchInProjectDialog.py:40 ../IDEFrame.py:1780
    msgid "Function"
    msgstr ""
    -#: ../IDEFrame.py:363
    +#: ../IDEFrame.py:354
    msgid "Function &Block"
    msgstr ""
    -#: ../dialogs/SearchInProjectDialog.py:40 ../IDEFrame.py:1785
    -#: ../IDEFrame.py:1978
    +#: ../dialogs/SearchInProjectDialog.py:41 ../IDEFrame.py:1779
    +#: ../IDEFrame.py:1972
    msgid "Function Block"
    msgstr ""
    -#: ../controls/VariablePanel.py:889
    +#: ../controls/VariablePanel.py:868
    msgid "Function Block Types"
    msgstr ""
    -#: ../PLCControler.py:104
    +#: ../plcopen/types_enums.py:75
    msgid "Function Blocks"
    msgstr ""
    -#: ../editors/Viewer.py:287
    +#: ../editors/Viewer.py:290
    msgid "Function Blocks can't be used in Functions!"
    msgstr ""
    -#: ../PLCControler.py:2409
    +#: ../PLCControler.py:1907
    #, python-format
    msgid "FunctionBlock \"%s\" can't be pasted in a Function!!!"
    msgstr ""
    -#: ../PLCControler.py:104
    +#: ../plcopen/types_enums.py:75
    msgid "Functions"
    msgstr ""
    -#: ../PLCOpenEditor.py:135
    +#: ../PLCOpenEditor.py:88
    msgid "Generate Program"
    msgstr ""
    -#: ../ProjectController.py:720
    +#: ../ProjectController.py:722
    msgid "Generating SoftPLC IEC-61131 ST/IL/SFC code...\n"
    msgstr ""
    -#: ../controls/VariablePanel.py:90
    +#: ../controls/VariablePanel.py:91
    msgid "Global"
    msgstr ""
    -#: ../controls/DebugVariablePanel/DebugVariablePanel.py:242
    +#: ../controls/DebugVariablePanel/DebugVariablePanel.py:245
    msgid "Go to current value"
    msgstr ""
    -#: ../controls/ProjectPropertiesPanel.py:179
    +#: ../controls/ProjectPropertiesPanel.py:189
    msgid "Graphics"
    msgstr ""
    @@ -1778,36 +1764,36 @@
    msgid "Greater than or equal to"
    msgstr ""
    -#: ../controls/ProjectPropertiesPanel.py:139
    +#: ../controls/ProjectPropertiesPanel.py:149
    msgid "Grid Resolution:"
    msgstr ""
    -#: ../runtime/NevowServer.py:188
    +#: ../runtime/NevowServer.py:192
    msgid "HTTP interface port :"
    msgstr ""
    -#: ../controls/ProjectPropertiesPanel.py:125
    +#: ../controls/ProjectPropertiesPanel.py:135
    msgid "Height:"
    msgstr ""
    -#: ../editors/FileManagementPanel.py:87
    +#: ../editors/FileManagementPanel.py:89
    msgid "Home Directory:"
    msgstr ""
    -#: ../controls/ProjectPropertiesPanel.py:155
    +#: ../controls/ProjectPropertiesPanel.py:165
    msgid "Horizontal:"
    msgstr ""
    -#: ../dialogs/DurationEditorDialog.py:45
    +#: ../dialogs/DurationEditorDialog.py:47
    msgid "Hours:"
    msgstr ""
    -#: ../dialogs/PouTransitionDialog.py:38 ../dialogs/PouActionDialog.py:34
    -#: ../dialogs/PouDialog.py:42
    +#: ../dialogs/PouTransitionDialog.py:40 ../dialogs/PouActionDialog.py:36
    +#: ../dialogs/PouDialog.py:44
    msgid "IL"
    msgstr ""
    -#: ../dialogs/DiscoveryDialog.py:101
    +#: ../dialogs/DiscoveryDialog.py:91
    msgid "IP"
    msgstr ""
    @@ -1815,16 +1801,21 @@
    msgid "IP is not valid!"
    msgstr ""
    -#: ../svgui/svgui.py:49 ../svgui/svgui.py:50
    +#: ../svgui/svgui.py:50 ../svgui/svgui.py:51
    msgid "Import SVG"
    msgstr ""
    -#: ../dialogs/FBDVariableDialog.py:40 ../editors/Viewer.py:1670
    -#: ../controls/VariablePanel.py:88
    +#: ../dialogs/FBDVariableDialog.py:41 ../editors/Viewer.py:1662
    +#: ../controls/VariablePanel.py:89
    msgid "InOut"
    msgstr ""
    -#: ../editors/Viewer.py:470
    +#: ../PLCGenerator.py:1040
    +#, python-brace-format
    +msgid "InOut variable {a1} in block {a2} in POU {a3} must be connected."
    +msgstr ""
    +
    +#: ../editors/Viewer.py:473
    msgid "Inactive"
    msgstr ""
    @@ -1843,44 +1834,44 @@
    msgid "Incompatible size of data between \"{a1}\" and \"{a2}\""
    msgstr ""
    -#: ../dialogs/ActionBlockDialog.py:40
    +#: ../dialogs/ActionBlockDialog.py:42
    msgid "Indicator"
    msgstr ""
    -#: ../editors/CodeFileEditor.py:749
    +#: ../editors/CodeFileEditor.py:734
    msgid "Initial"
    msgstr ""
    -#: ../editors/Viewer.py:653
    +#: ../editors/Viewer.py:650
    msgid "Initial Step"
    msgstr ""
    -#: ../editors/DataTypeEditor.py:53 ../controls/VariablePanel.py:62
    +#: ../editors/DataTypeEditor.py:55 ../controls/VariablePanel.py:63
    msgid "Initial Value"
    msgstr ""
    #: ../editors/DataTypeEditor.py:193 ../editors/DataTypeEditor.py:224
    -#: ../editors/DataTypeEditor.py:282 ../editors/DataTypeEditor.py:321
    +#: ../editors/DataTypeEditor.py:281 ../editors/DataTypeEditor.py:320
    msgid "Initial Value:"
    msgstr ""
    -#: ../svgui/svgui.py:55
    +#: ../svgui/svgui.py:56
    msgid "Inkscape"
    msgstr ""
    -#: ../dialogs/SFCTransitionDialog.py:76 ../dialogs/ActionBlockDialog.py:45
    +#: ../dialogs/SFCTransitionDialog.py:77 ../dialogs/ActionBlockDialog.py:47
    msgid "Inline"
    msgstr ""
    -#: ../dialogs/SFCStepDialog.py:71 ../dialogs/FBDVariableDialog.py:39
    -#: ../dialogs/BrowseLocationsDialog.py:43 ../editors/Viewer.py:330
    -#: ../editors/Viewer.py:1668 ../editors/TextViewer.py:312
    -#: ../controls/LocationCellEditor.py:101 ../controls/VariablePanel.py:88
    +#: ../dialogs/SFCStepDialog.py:73 ../dialogs/FBDVariableDialog.py:40
    +#: ../dialogs/BrowseLocationsDialog.py:43 ../editors/Viewer.py:333
    +#: ../editors/Viewer.py:1660 ../editors/TextViewer.py:307
    +#: ../controls/LocationCellEditor.py:103 ../controls/VariablePanel.py:89
    #: ../controls/VariablePanel.py:317 ../controls/VariablePanel.py:380
    msgid "Input"
    msgstr ""
    -#: ../dialogs/FBDBlockDialog.py:97
    +#: ../dialogs/FBDBlockDialog.py:99
    msgid "Inputs:"
    msgstr ""
    @@ -1888,44 +1879,50 @@
    msgid "Insertion (into)"
    msgstr ""
    -#: ../plcopen/plcopen.py:1774
    +#: ../plcopen/plcopen.py:1948
    #, python-format
    msgid "Instance with id %d doesn't exist!"
    msgstr ""
    -#: ../editors/ResourceEditor.py:277
    +#: ../editors/ResourceEditor.py:279
    msgid "Instances:"
    msgstr ""
    -#: ../controls/VariablePanel.py:87
    +#: ../controls/VariablePanel.py:88
    msgid "Interface"
    msgstr ""
    -#: ../editors/ResourceEditor.py:79
    +#: ../editors/ResourceEditor.py:81
    msgid "Interrupt"
    msgstr ""
    -#: ../editors/ResourceEditor.py:74
    +#: ../editors/ResourceEditor.py:76
    msgid "Interval"
    msgstr ""
    -#: ../PLCControler.py:2397
    +#: ../controls/ProjectPropertiesPanel.py:304
    +msgid ""
    +"Invalid URL!\n"
    +"Please enter correct URL address."
    +msgstr ""
    +
    +#: ../PLCControler.py:1895
    msgid "Invalid plcopen element(s)!!!"
    msgstr ""
    -#: ../canfestival/config_utils.py:401
    +#: ../canfestival/config_utils.py:407
    #, python-brace-format
    msgid "Invalid type \"{a1}\"-> {a2} != {a3} for location \"{a4}\""
    msgstr ""
    -#: ../canfestival/config_utils.py:683
    +#: ../canfestival/config_utils.py:689
    #, python-brace-format
    msgid "Invalid type \"{a1}\"-> {a2} != {a3} for location \"{a4}\""
    msgstr ""
    -#: ../controls/DebugVariablePanel/DebugVariablePanel.py:136
    -#: ../controls/DebugVariablePanel/DebugVariableTextViewer.py:92
    -#: ../controls/DebugVariablePanel/DebugVariableGraphicViewer.py:167
    +#: ../controls/DebugVariablePanel/DebugVariablePanel.py:139
    +#: ../controls/DebugVariablePanel/DebugVariableTextViewer.py:93
    +#: ../controls/DebugVariablePanel/DebugVariableGraphicViewer.py:162
    #, python-format
    msgid "Invalid value \"%s\" for debug variable"
    msgstr ""
    @@ -1935,51 +1932,55 @@
    msgid "Invalid value \"%s\" for variable grid element"
    msgstr ""
    -#: ../editors/Viewer.py:272 ../editors/Viewer.py:275
    +#: ../editors/Viewer.py:276 ../editors/Viewer.py:279
    #, python-format
    msgid "Invalid value \"%s\" for viewer block"
    msgstr ""
    -#: ../dialogs/ForceVariableDialog.py:209
    +#: ../dialogs/ForceVariableDialog.py:211
    #, python-brace-format
    msgid "Invalid value \"{a1}\" for \"{a2}\" variable!"
    msgstr ""
    -#: ../dialogs/DurationEditorDialog.py:122
    +#: ../dialogs/DurationEditorDialog.py:124
    msgid ""
    "Invalid value!\n"
    "You must fill a numeric value."
    msgstr ""
    -#: ../editors/Viewer.py:658 ../editors/Viewer.py:2435
    +#: ../connectors/WAMP/dialog.py:38
    +msgid "Is connection secure?"
    +msgstr ""
    +
    +#: ../editors/Viewer.py:655 ../editors/Viewer.py:2425
    msgid "Jump"
    msgstr ""
    -#: ../dialogs/PouTransitionDialog.py:38 ../dialogs/PouActionDialog.py:34
    -#: ../dialogs/PouDialog.py:42 ../controls/ProjectPropertiesPanel.py:148
    +#: ../dialogs/PouTransitionDialog.py:40 ../dialogs/PouActionDialog.py:36
    +#: ../dialogs/PouDialog.py:44 ../controls/ProjectPropertiesPanel.py:158
    msgid "LD"
    msgstr ""
    -#: ../editors/LDViewer.py:219 ../editors/LDViewer.py:238
    +#: ../editors/LDViewer.py:221 ../editors/LDViewer.py:240
    #, python-format
    msgid "Ladder element with id %d is on more than one rung."
    msgstr ""
    -#: ../dialogs/PouTransitionDialog.py:91 ../dialogs/PouActionDialog.py:89
    -#: ../dialogs/PouDialog.py:111
    +#: ../dialogs/PouTransitionDialog.py:93 ../dialogs/PouActionDialog.py:91
    +#: ../dialogs/PouDialog.py:113
    msgid "Language"
    msgstr ""
    -#: ../controls/ProjectPropertiesPanel.py:192
    +#: ../controls/ProjectPropertiesPanel.py:206
    msgid "Language (optional):"
    msgstr ""
    -#: ../dialogs/PouTransitionDialog.py:65 ../dialogs/PouActionDialog.py:61
    -#: ../dialogs/PouDialog.py:79
    +#: ../dialogs/PouTransitionDialog.py:67 ../dialogs/PouActionDialog.py:63
    +#: ../dialogs/PouDialog.py:81
    msgid "Language:"
    msgstr ""
    -#: ../ProjectController.py:1822
    +#: ../ProjectController.py:1779
    msgid "Latest build already matches current target. Transfering anyway...\n"
    msgstr ""
    @@ -1991,11 +1992,11 @@
    msgid "Launch a live Python shell"
    msgstr ""
    -#: ../editors/Viewer.py:584
    +#: ../editors/Viewer.py:580
    msgid "Left"
    msgstr ""
    -#: ../dialogs/LDPowerRailDialog.py:62
    +#: ../dialogs/LDPowerRailDialog.py:64
    msgid "Left PowerRail"
    msgstr ""
    @@ -2011,7 +2012,7 @@
    msgid "Less than or equal to"
    msgstr ""
    -#: ../IDEFrame.py:667
    +#: ../IDEFrame.py:652
    msgid "Library"
    msgstr ""
    @@ -2023,23 +2024,23 @@
    msgid "Limitation"
    msgstr ""
    -#: ../targets/toolchain_gcc.py:205
    +#: ../targets/toolchain_gcc.py:209
    msgid "Linking :\n"
    msgstr ""
    -#: ../dialogs/DiscoveryDialog.py:121 ../controls/VariablePanel.py:89
    +#: ../dialogs/DiscoveryDialog.py:115 ../controls/VariablePanel.py:90
    msgid "Local"
    msgstr ""
    -#: ../canfestival/canfestival.py:368
    +#: ../canfestival/canfestival.py:359
    msgid "Local entries"
    msgstr ""
    -#: ../ProjectController.py:1731
    +#: ../ProjectController.py:1685
    msgid "Local service discovery failed!\n"
    msgstr ""
    -#: ../controls/VariablePanel.py:61
    +#: ../controls/VariablePanel.py:62
    msgid "Location"
    msgstr ""
    @@ -2051,12 +2052,12 @@
    msgid "Logarithm to base 10"
    msgstr ""
    -#: ../connectors/PYRO/__init__.py:97
    +#: ../connectors/PYRO/__init__.py:102
    #, python-format
    msgid "MDNS resolution failure for '%s'\n"
    msgstr ""
    -#: ../canfestival/SlaveEditor.py:67 ../canfestival/NetworkEditor.py:92
    +#: ../canfestival/SlaveEditor.py:68 ../canfestival/NetworkEditor.py:92
    msgid "Map Variable"
    msgstr ""
    @@ -2064,6 +2065,10 @@
    msgid "Map located variables over CANopen"
    msgstr ""
    +#: ../features.py:32
    +msgid "Map located variables over Modbus"
    +msgstr ""
    +
    #: ../canfestival/NetworkEditor.py:113
    msgid "Master"
    msgstr ""
    @@ -2077,29 +2082,29 @@
    msgid "Maximum"
    msgstr ""
    -#: ../editors/DataTypeEditor.py:247
    +#: ../editors/DataTypeEditor.py:246
    msgid "Maximum:"
    msgstr ""
    -#: ../dialogs/BrowseLocationsDialog.py:45 ../editors/Viewer.py:330
    -#: ../editors/TextViewer.py:312 ../controls/LocationCellEditor.py:101
    +#: ../dialogs/BrowseLocationsDialog.py:45 ../editors/Viewer.py:333
    +#: ../editors/TextViewer.py:307 ../controls/LocationCellEditor.py:103
    #: ../controls/VariablePanel.py:317 ../controls/VariablePanel.py:380
    msgid "Memory"
    msgstr ""
    -#: ../IDEFrame.py:632
    +#: ../IDEFrame.py:617
    msgid "Menu ToolBar"
    msgstr ""
    -#: ../dialogs/DurationEditorDialog.py:49
    +#: ../dialogs/DurationEditorDialog.py:51
    msgid "Microseconds:"
    msgstr ""
    -#: ../editors/Viewer.py:589
    +#: ../editors/Viewer.py:585
    msgid "Middle"
    msgstr ""
    -#: ../dialogs/DurationEditorDialog.py:48
    +#: ../dialogs/DurationEditorDialog.py:50
    msgid "Milliseconds:"
    msgstr ""
    @@ -2107,76 +2112,80 @@
    msgid "Minimum"
    msgstr ""
    -#: ../editors/DataTypeEditor.py:234
    +#: ../editors/DataTypeEditor.py:233
    msgid "Minimum:"
    msgstr ""
    -#: ../dialogs/DurationEditorDialog.py:46
    +#: ../dialogs/DurationEditorDialog.py:48
    msgid "Minutes:"
    msgstr ""
    -#: ../controls/ProjectPropertiesPanel.py:217
    +#: ../controls/ProjectPropertiesPanel.py:231
    msgid "Miscellaneous"
    msgstr ""
    -#: ../dialogs/LDElementDialog.py:63
    +#: ../features.py:32
    +msgid "Modbus support"
    +msgstr ""
    +
    +#: ../dialogs/LDElementDialog.py:65
    msgid "Modifier:"
    msgstr ""
    -#: ../PLCGenerator.py:794 ../PLCGenerator.py:1245
    +#: ../PLCGenerator.py:795 ../PLCGenerator.py:1269
    #, python-brace-format
    msgid "More than one connector found corresponding to \"{a1}\" continuation in \"{a2}\" POU"
    msgstr ""
    -#: ../dialogs/ActionBlockDialog.py:144
    +#: ../dialogs/ActionBlockDialog.py:146
    msgid "Move action down"
    msgstr ""
    -#: ../dialogs/ActionBlockDialog.py:143
    +#: ../dialogs/ActionBlockDialog.py:145
    msgid "Move action up"
    msgstr ""
    -#: ../controls/CustomEditableListBox.py:44
    +#: ../controls/CustomEditableListBox.py:46
    msgid "Move down"
    msgstr ""
    -#: ../editors/DataTypeEditor.py:368
    -msgid "Move element down"
    -msgstr ""
    -
    #: ../editors/DataTypeEditor.py:367
    +msgid "Move element down"
    +msgstr ""
    +
    +#: ../editors/DataTypeEditor.py:366
    msgid "Move element up"
    msgstr ""
    -#: ../editors/ResourceEditor.py:284
    +#: ../editors/ResourceEditor.py:286
    msgid "Move instance down"
    msgstr ""
    -#: ../editors/ResourceEditor.py:283
    +#: ../editors/ResourceEditor.py:285
    msgid "Move instance up"
    msgstr ""
    -#: ../editors/ResourceEditor.py:253
    +#: ../editors/ResourceEditor.py:255
    msgid "Move task down"
    msgstr ""
    -#: ../editors/ResourceEditor.py:252
    +#: ../editors/ResourceEditor.py:254
    msgid "Move task up"
    msgstr ""
    -#: ../IDEFrame.py:105 ../IDEFrame.py:120 ../IDEFrame.py:150 ../IDEFrame.py:191
    +#: ../IDEFrame.py:106 ../IDEFrame.py:121 ../IDEFrame.py:151 ../IDEFrame.py:192
    msgid "Move the view"
    msgstr ""
    -#: ../controls/CustomEditableListBox.py:43
    +#: ../controls/CustomEditableListBox.py:45
    msgid "Move up"
    msgstr ""
    -#: ../editors/CodeFileEditor.py:662 ../controls/VariablePanel.py:484
    +#: ../editors/CodeFileEditor.py:657 ../controls/VariablePanel.py:484
    msgid "Move variable down"
    msgstr ""
    -#: ../editors/CodeFileEditor.py:661 ../controls/VariablePanel.py:483
    +#: ../editors/CodeFileEditor.py:656 ../controls/VariablePanel.py:483
    msgid "Move variable up"
    msgstr ""
    @@ -2188,17 +2197,17 @@
    msgid "Multiplication"
    msgstr ""
    -#: ../editors/FileManagementPanel.py:85
    +#: ../editors/FileManagementPanel.py:87
    msgid "My Computer:"
    msgstr ""
    -#: ../dialogs/DiscoveryDialog.py:99
    +#: ../dialogs/DiscoveryDialog.py:89
    msgid "NAME"
    msgstr ""
    -#: ../editors/ResourceEditor.py:74 ../editors/ResourceEditor.py:95
    -#: ../editors/DataTypeEditor.py:53 ../editors/CodeFileEditor.py:747
    -#: ../controls/VariablePanel.py:58
    +#: ../editors/ResourceEditor.py:76 ../editors/ResourceEditor.py:97
    +#: ../editors/DataTypeEditor.py:55 ../editors/CodeFileEditor.py:732
    +#: ../controls/VariablePanel.py:59
    msgid "Name"
    msgstr ""
    @@ -2206,8 +2215,8 @@
    msgid "Name must not be null!"
    msgstr ""
    -#: ../dialogs/SFCStepDialog.py:57 ../dialogs/FBDBlockDialog.py:87
    -#: ../dialogs/ConnectionDialog.py:76
    +#: ../dialogs/SFCStepDialog.py:59 ../dialogs/FBDBlockDialog.py:89
    +#: ../dialogs/ConnectionDialog.py:78
    msgid "Name:"
    msgstr ""
    @@ -2215,57 +2224,57 @@
    msgid "Natural logarithm"
    msgstr ""
    -#: ../dialogs/LDElementDialog.py:76 ../editors/Viewer.py:558
    +#: ../dialogs/LDElementDialog.py:78 ../editors/Viewer.py:554
    msgid "Negated"
    msgstr ""
    -#: ../Beremiz_service.py:597
    +#: ../Beremiz_service.py:610
    msgid "Nevow Web service failed. "
    msgstr ""
    -#: ../Beremiz_service.py:573
    +#: ../Beremiz_service.py:580
    msgid "Nevow/Athena import failed :"
    msgstr ""
    -#: ../BeremizIDE.py:246 ../BeremizIDE.py:281 ../PLCOpenEditor.py:122
    -#: ../PLCOpenEditor.py:164
    +#: ../BeremizIDE.py:241 ../BeremizIDE.py:276 ../PLCOpenEditor.py:75
    +#: ../PLCOpenEditor.py:117
    msgid "New"
    msgstr ""
    -#: ../controls/CustomEditableListBox.py:41
    +#: ../controls/CustomEditableListBox.py:43
    msgid "New item"
    msgstr ""
    -#: ../editors/Viewer.py:557
    +#: ../editors/Viewer.py:553
    msgid "No Modifier"
    msgstr ""
    -#: ../ProjectController.py:1851
    +#: ../ProjectController.py:1808
    msgid "No PLC to transfer (did build succeed ?)\n"
    msgstr ""
    -#: ../PLCGenerator.py:1654
    +#: ../PLCGenerator.py:1678
    #, python-format
    msgid "No body defined in \"%s\" POU"
    msgstr ""
    -#: ../PLCGenerator.py:815 ../PLCGenerator.py:1257
    +#: ../PLCGenerator.py:816 ../PLCGenerator.py:1281
    #, python-brace-format
    msgid "No connector found corresponding to \"{a1}\" continuation in \"{a2}\" POU"
    msgstr ""
    -#: ../PLCOpenEditor.py:378
    +#: ../PLCOpenEditor.py:331
    msgid ""
    "No documentation available.\n"
    "Coming soon."
    msgstr ""
    -#: ../PLCGenerator.py:840
    +#: ../PLCGenerator.py:841
    #, python-format
    msgid "No informations found for \"%s\" block"
    msgstr ""
    -#: ../PLCGenerator.py:1208
    +#: ../PLCGenerator.py:1232
    #, python-brace-format
    msgid "No output {a1} variable found in block {a2} in POU {a3}. Connection must be broken"
    msgstr ""
    @@ -2274,44 +2283,44 @@
    msgid "No search results available."
    msgstr ""
    -#: ../svgui/svgui.py:141
    +#: ../svgui/svgui.py:142
    #, python-format
    msgid "No such SVG file: %s\n"
    msgstr ""
    -#: ../canfestival/config_utils.py:676
    +#: ../canfestival/config_utils.py:682
    #, python-brace-format
    msgid "No such index/subindex ({a1},{a2}) (variable {a3})"
    msgstr ""
    -#: ../canfestival/config_utils.py:381
    +#: ../canfestival/config_utils.py:387
    #, python-brace-format
    msgid "No such index/subindex ({a1},{a2}) in ID : {a3} (variable {a4})"
    msgstr ""
    -#: ../dialogs/BrowseValuesLibraryDialog.py:83
    +#: ../dialogs/BrowseValuesLibraryDialog.py:87
    msgid "No valid value selected!"
    msgstr ""
    -#: ../PLCGenerator.py:1652
    +#: ../PLCGenerator.py:1676
    #, python-format
    msgid "No variable defined in \"%s\" POU"
    msgstr ""
    -#: ../canfestival/config_utils.py:373
    +#: ../canfestival/config_utils.py:379
    #, python-brace-format
    msgid "Non existing node ID : {a1} (variable {a2})"
    msgstr ""
    -#: ../controls/VariablePanel.py:78
    +#: ../controls/VariablePanel.py:79
    msgid "Non-Retain"
    msgstr ""
    -#: ../dialogs/LDElementDialog.py:76
    +#: ../dialogs/LDElementDialog.py:78
    msgid "Normal"
    msgstr ""
    -#: ../canfestival/config_utils.py:420
    +#: ../canfestival/config_utils.py:426
    #, python-brace-format
    msgid "Not PDO mappable variable : '{a1}' (ID:{a2},Idx:{a3},sIdx:{a4}))"
    msgstr ""
    @@ -2320,7 +2329,7 @@
    msgid "Not equal to"
    msgstr ""
    -#: ../dialogs/SFCDivergenceDialog.py:90
    +#: ../dialogs/SFCDivergenceDialog.py:91
    msgid "Number of sequences:"
    msgstr ""
    @@ -2328,76 +2337,76 @@
    msgid "Numerical"
    msgstr ""
    -#: ../editors/CodeFileEditor.py:751
    +#: ../editors/CodeFileEditor.py:736
    msgid "OnChange"
    msgstr ""
    -#: ../dialogs/SearchInProjectDialog.py:87
    +#: ../dialogs/SearchInProjectDialog.py:88
    msgid "Only Elements"
    msgstr ""
    -#: ../BeremizIDE.py:248 ../BeremizIDE.py:282 ../PLCOpenEditor.py:124
    -#: ../PLCOpenEditor.py:165
    +#: ../BeremizIDE.py:243 ../BeremizIDE.py:277 ../PLCOpenEditor.py:77
    +#: ../PLCOpenEditor.py:118
    msgid "Open"
    msgstr ""
    -#: ../svgui/svgui.py:150
    +#: ../svgui/svgui.py:151
    msgid "Open Inkscape"
    msgstr ""
    -#: ../version.py:85
    +#: ../version.py:86
    msgid "Open Source framework for automation, implemented IEC 61131 IDE with constantly growing set of extensions and flexible PLC runtime."
    msgstr ""
    -#: ../ProjectController.py:1922
    +#: ../ProjectController.py:1879
    msgid "Open a file explorer to manage project files"
    msgstr ""
    -#: ../wxglade_hmi/wxglade_hmi.py:159
    +#: ../wxglade_hmi/wxglade_hmi.py:161
    msgid "Open wxGlade"
    msgstr ""
    -#: ../controls/VariablePanel.py:63
    +#: ../controls/VariablePanel.py:64
    msgid "Option"
    msgstr ""
    -#: ../dialogs/FindInPouDialog.py:82 ../editors/CodeFileEditor.py:752
    +#: ../dialogs/FindInPouDialog.py:84 ../editors/CodeFileEditor.py:737
    msgid "Options"
    msgstr ""
    -#: ../controls/ProjectPropertiesPanel.py:101
    +#: ../controls/ProjectPropertiesPanel.py:109
    msgid "Organization (optional):"
    msgstr ""
    -#: ../canfestival/SlaveEditor.py:77 ../canfestival/NetworkEditor.py:102
    +#: ../canfestival/SlaveEditor.py:78 ../canfestival/NetworkEditor.py:102
    msgid "Other Profile"
    msgstr ""
    -#: ../dialogs/SFCStepDialog.py:72 ../dialogs/FBDVariableDialog.py:41
    -#: ../dialogs/BrowseLocationsDialog.py:44 ../editors/Viewer.py:330
    -#: ../editors/Viewer.py:1669 ../editors/TextViewer.py:312
    -#: ../controls/LocationCellEditor.py:101 ../controls/VariablePanel.py:88
    +#: ../dialogs/SFCStepDialog.py:74 ../dialogs/FBDVariableDialog.py:42
    +#: ../dialogs/BrowseLocationsDialog.py:44 ../editors/Viewer.py:333
    +#: ../editors/Viewer.py:1661 ../editors/TextViewer.py:307
    +#: ../controls/LocationCellEditor.py:103 ../controls/VariablePanel.py:89
    #: ../controls/VariablePanel.py:317 ../controls/VariablePanel.py:380
    msgid "Output"
    msgstr ""
    -#: ../canfestival/SlaveEditor.py:66 ../canfestival/NetworkEditor.py:91
    +#: ../canfestival/SlaveEditor.py:67 ../canfestival/NetworkEditor.py:91
    msgid "PDO Receive"
    msgstr ""
    -#: ../canfestival/SlaveEditor.py:65 ../canfestival/NetworkEditor.py:90
    +#: ../canfestival/SlaveEditor.py:66 ../canfestival/NetworkEditor.py:90
    msgid "PDO Transmit"
    msgstr ""
    -#: ../targets/toolchain_gcc.py:170
    +#: ../targets/toolchain_gcc.py:174
    msgid "PLC :\n"
    msgstr ""
    -#: ../BeremizIDE.py:388
    +#: ../BeremizIDE.py:383
    msgid "PLC Log"
    msgstr ""
    -#: ../ProjectController.py:1080
    +#: ../ProjectController.py:1082
    msgid "PLC code generation failed !\n"
    msgstr ""
    @@ -2409,114 +2418,114 @@
    msgid "PLC is not started."
    msgstr ""
    -#: ../PLCOpenEditor.py:227 ../PLCOpenEditor.py:340
    +#: ../PLCOpenEditor.py:180 ../PLCOpenEditor.py:293
    #, python-brace-format
    msgid ""
    "PLC syntax error at line {a1}:\n"
    "{a2}"
    msgstr ""
    -#: ../PLCOpenEditor.py:323 ../PLCOpenEditor.py:404
    +#: ../PLCOpenEditor.py:276 ../PLCOpenEditor.py:357
    msgid "PLCOpen files (*.xml)|*.xml|All files|*.*"
    msgstr ""
    -#: ../PLCOpenEditor.py:172 ../PLCOpenEditor.py:240
    +#: ../PLCOpenEditor.py:125 ../PLCOpenEditor.py:193
    msgid "PLCOpenEditor"
    msgstr ""
    -#: ../PLCOpenEditor.py:386
    +#: ../PLCOpenEditor.py:339
    msgid ""
    "PLCOpenEditor is part of Beremiz project.\n"
    "\n"
    "Beremiz is an "
    msgstr ""
    -#: ../dialogs/DiscoveryDialog.py:102
    +#: ../dialogs/DiscoveryDialog.py:92
    msgid "PORT"
    msgstr ""
    -#: ../dialogs/PouDialog.py:107
    -msgid "POU Name"
    -msgstr ""
    -
    -#: ../dialogs/PouDialog.py:64
    -msgid "POU Name:"
    -msgstr ""
    -
    #: ../dialogs/PouDialog.py:109
    +msgid "POU Name"
    +msgstr ""
    +
    +#: ../dialogs/PouDialog.py:66
    +msgid "POU Name:"
    +msgstr ""
    +
    +#: ../dialogs/PouDialog.py:111
    msgid "POU Type"
    msgstr ""
    -#: ../dialogs/PouDialog.py:71
    +#: ../dialogs/PouDialog.py:73
    msgid "POU Type:"
    msgstr ""
    -#: ../connectors/PYRO/__init__.py:47
    +#: ../connectors/PYRO/__init__.py:52
    #, python-format
    msgid "PYRO connecting to URI : %s\n"
    msgstr ""
    -#: ../connectors/PYRO/__init__.py:63
    +#: ../connectors/PYRO/__init__.py:68
    #, python-format
    msgid "PYRO using certificates in '%s' \n"
    msgstr ""
    -#: ../BeremizIDE.py:261 ../PLCOpenEditor.py:138
    +#: ../BeremizIDE.py:256 ../PLCOpenEditor.py:91
    msgid "Page Setup"
    msgstr ""
    -#: ../controls/ProjectPropertiesPanel.py:114
    +#: ../controls/ProjectPropertiesPanel.py:124
    msgid "Page Size (optional):"
    msgstr ""
    -#: ../IDEFrame.py:2651
    +#: ../IDEFrame.py:2640
    #, python-format
    msgid "Page: %d"
    msgstr ""
    -#: ../controls/PouInstanceVariablesPanel.py:140
    +#: ../controls/PouInstanceVariablesPanel.py:134
    msgid "Parent instance"
    msgstr ""
    -#: ../editors/Viewer.py:699 ../IDEFrame.py:386 ../IDEFrame.py:440
    +#: ../editors/Viewer.py:696 ../IDEFrame.py:374 ../IDEFrame.py:428
    msgid "Paste"
    msgstr ""
    -#: ../IDEFrame.py:1905
    +#: ../IDEFrame.py:1899
    msgid "Paste POU"
    msgstr ""
    -#: ../dialogs/SearchInProjectDialog.py:59
    +#: ../dialogs/SearchInProjectDialog.py:60
    msgid "Pattern to search:"
    msgstr ""
    -#: ../dialogs/LDPowerRailDialog.py:73
    +#: ../dialogs/LDPowerRailDialog.py:75
    msgid "Pin number:"
    msgstr ""
    -#: ../editors/Viewer.py:2802 ../editors/Viewer.py:3070
    -#: ../editors/SFCViewer.py:771
    +#: ../editors/Viewer.py:2792 ../editors/Viewer.py:3060
    +#: ../editors/SFCViewer.py:785
    msgid "Please choose a target"
    msgstr ""
    -#: ../editors/TextViewer.py:265
    +#: ../editors/TextViewer.py:260
    msgid "Please enter a block name"
    msgstr ""
    -#: ../editors/Viewer.py:2671 ../editors/Viewer.py:3113
    +#: ../editors/Viewer.py:2661 ../editors/Viewer.py:3103
    msgid "Please enter comment text"
    msgstr ""
    -#: ../editors/SFCViewer.py:433 ../editors/SFCViewer.py:455
    -#: ../editors/SFCViewer.py:801
    +#: ../editors/SFCViewer.py:447 ../editors/SFCViewer.py:469
    +#: ../editors/SFCViewer.py:815
    msgid "Please enter step name"
    msgstr ""
    -#: ../dialogs/PouNameDialog.py:34 ../Beremiz_service.py:204
    +#: ../dialogs/PouNameDialog.py:37 ../Beremiz_service.py:209
    msgid "Please enter text"
    msgstr ""
    -#: ../dialogs/ForceVariableDialog.py:175
    +#: ../dialogs/ForceVariableDialog.py:177
    #, python-format
    msgid "Please enter value for a \"%s\" variable:"
    msgstr ""
    @@ -2529,82 +2538,82 @@
    msgid "Port number must be an integer!"
    msgstr ""
    -#: ../editors/Viewer.py:636 ../editors/Viewer.py:2459
    +#: ../editors/Viewer.py:633 ../editors/Viewer.py:2449
    msgid "Power Rail"
    msgstr ""
    -#: ../dialogs/LDPowerRailDialog.py:50
    +#: ../dialogs/LDPowerRailDialog.py:52
    msgid "Power Rail Properties"
    msgstr ""
    -#: ../BeremizIDE.py:263 ../PLCOpenEditor.py:140
    +#: ../BeremizIDE.py:258 ../PLCOpenEditor.py:93
    msgid "Preview"
    msgstr ""
    -#: ../dialogs/BlockPreviewDialog.py:57
    +#: ../dialogs/BlockPreviewDialog.py:59
    msgid "Preview:"
    msgstr ""
    -#: ../BeremizIDE.py:265 ../BeremizIDE.py:285 ../PLCOpenEditor.py:142
    -#: ../PLCOpenEditor.py:168
    +#: ../BeremizIDE.py:260 ../BeremizIDE.py:280 ../PLCOpenEditor.py:95
    +#: ../PLCOpenEditor.py:121
    msgid "Print"
    msgstr ""
    -#: ../IDEFrame.py:1116
    +#: ../IDEFrame.py:1110
    msgid "Print preview"
    msgstr ""
    -#: ../editors/ResourceEditor.py:74
    +#: ../editors/ResourceEditor.py:76
    msgid "Priority"
    msgstr ""
    -#: ../dialogs/SFCTransitionDialog.py:90
    +#: ../dialogs/SFCTransitionDialog.py:91
    msgid "Priority:"
    msgstr ""
    -#: ../runtime/PLCObject.py:375
    +#: ../runtime/PLCObject.py:518
    #, python-format
    msgid "Problem starting PLC : error %d"
    msgstr ""
    -#: ../dialogs/ProjectDialog.py:61
    +#: ../dialogs/ProjectDialog.py:63
    msgid "Product Name"
    msgstr ""
    -#: ../controls/ProjectPropertiesPanel.py:84
    +#: ../controls/ProjectPropertiesPanel.py:90
    msgid "Product Name (required):"
    msgstr ""
    -#: ../controls/ProjectPropertiesPanel.py:86
    +#: ../controls/ProjectPropertiesPanel.py:92
    msgid "Product Release (optional):"
    msgstr ""
    -#: ../dialogs/ProjectDialog.py:62
    +#: ../dialogs/ProjectDialog.py:64
    msgid "Product Version"
    msgstr ""
    -#: ../controls/ProjectPropertiesPanel.py:85
    +#: ../controls/ProjectPropertiesPanel.py:91
    msgid "Product Version (required):"
    msgstr ""
    -#: ../dialogs/SearchInProjectDialog.py:41 ../IDEFrame.py:1784
    -#: ../IDEFrame.py:1981
    +#: ../dialogs/SearchInProjectDialog.py:42 ../IDEFrame.py:1778
    +#: ../IDEFrame.py:1975
    msgid "Program"
    msgstr ""
    -#: ../PLCOpenEditor.py:368
    +#: ../PLCOpenEditor.py:321
    msgid "Program was successfully generated!"
    msgstr ""
    -#: ../PLCControler.py:105
    +#: ../plcopen/types_enums.py:76
    msgid "Programs"
    msgstr ""
    -#: ../editors/Viewer.py:281
    +#: ../editors/Viewer.py:285
    msgid "Programs can't be used by other POUs!"
    msgstr ""
    -#: ../controls/ProjectPropertiesPanel.py:88 ../IDEFrame.py:616
    +#: ../controls/ProjectPropertiesPanel.py:94 ../IDEFrame.py:601
    msgid "Project"
    msgstr ""
    @@ -2613,112 +2622,112 @@
    msgid "Project '%s':"
    msgstr ""
    -#: ../ProjectController.py:1921
    +#: ../ProjectController.py:1878
    msgid "Project Files"
    msgstr ""
    -#: ../dialogs/ProjectDialog.py:60
    +#: ../dialogs/ProjectDialog.py:62
    msgid "Project Name"
    msgstr ""
    -#: ../controls/ProjectPropertiesPanel.py:82
    +#: ../controls/ProjectPropertiesPanel.py:88
    msgid "Project Name (required):"
    msgstr ""
    -#: ../controls/ProjectPropertiesPanel.py:83
    +#: ../controls/ProjectPropertiesPanel.py:89
    msgid "Project Version (optional):"
    msgstr ""
    -#: ../PLCControler.py:3230
    +#: ../PLCControler.py:2717
    msgid ""
    "Project file syntax error:\n"
    "\n"
    msgstr ""
    -#: ../dialogs/ProjectDialog.py:34 ../editors/ProjectNodeEditor.py:38
    +#: ../dialogs/ProjectDialog.py:36 ../editors/ProjectNodeEditor.py:40
    msgid "Project properties"
    msgstr ""
    -#: ../ConfigTreeNode.py:572
    +#: ../ConfigTreeNode.py:571
    #, python-brace-format
    msgid "Project tree layout do not match confnode.xml {a1}!={a2} "
    msgstr ""
    -#: ../dialogs/ConnectionDialog.py:99
    +#: ../dialogs/ConnectionDialog.py:101
    msgid "Propagate Name"
    msgstr ""
    -#: ../PLCControler.py:106
    +#: ../plcopen/types_enums.py:77
    msgid "Properties"
    msgstr ""
    -#: ../Beremiz_service.py:450
    +#: ../Beremiz_service.py:427
    msgid "Publishing service on local network"
    msgstr ""
    -#: ../connectors/PYRO/__init__.py:121
    +#: ../connectors/PYRO/__init__.py:126
    #, python-format
    msgid "Pyro exception: %s\n"
    msgstr ""
    -#: ../Beremiz_service.py:437
    -msgid "Pyro object's uri :"
    -msgstr ""
    -
    -#: ../Beremiz_service.py:436
    +#: ../Beremiz_service.py:420
    msgid "Pyro port :"
    msgstr ""
    -#: ../py_ext/PythonEditor.py:82
    +#: ../py_ext/PythonEditor.py:84
    msgid "Python code"
    msgstr ""
    -#: ../features.py:33
    +#: ../features.py:34
    msgid "Python file"
    msgstr ""
    -#: ../dialogs/ActionBlockDialog.py:40
    +#: ../dialogs/ActionBlockDialog.py:42
    msgid "Qualifier"
    msgstr ""
    -#: ../BeremizIDE.py:268 ../PLCOpenEditor.py:148 ../Beremiz_service.py:283
    +#: ../BeremizIDE.py:263 ../PLCOpenEditor.py:101 ../Beremiz_service.py:283
    msgid "Quit"
    msgstr ""
    -#: ../controls/DebugVariablePanel/DebugVariablePanel.py:224
    +#: ../controls/DebugVariablePanel/DebugVariablePanel.py:227
    msgid "Range:"
    msgstr ""
    -#: ../ProjectController.py:1915
    +#: ../ProjectController.py:1872
    msgid "Raw IEC code"
    msgstr ""
    -#: ../BeremizIDE.py:1085
    +#: ../BeremizIDE.py:1083
    #, python-format
    msgid "Really delete node '%s'?"
    msgstr ""
    -#: ../IDEFrame.py:376 ../IDEFrame.py:436
    +#: ../connectors/WAMP/dialog.py:50
    +msgid "Realm:"
    +msgstr ""
    +
    +#: ../IDEFrame.py:367 ../IDEFrame.py:424
    msgid "Redo"
    msgstr ""
    -#: ../dialogs/SFCTransitionDialog.py:75
    +#: ../dialogs/SFCTransitionDialog.py:76
    msgid "Reference"
    msgstr ""
    -#: ../dialogs/DiscoveryDialog.py:115 ../IDEFrame.py:446
    +#: ../dialogs/DiscoveryDialog.py:109 ../IDEFrame.py:434
    msgid "Refresh"
    msgstr ""
    -#: ../dialogs/SearchInProjectDialog.py:69
    +#: ../dialogs/SearchInProjectDialog.py:70
    msgid "Regular expression"
    msgstr ""
    -#: ../dialogs/FindInPouDialog.py:97
    +#: ../dialogs/FindInPouDialog.py:99
    msgid "Regular expressions"
    msgstr ""
    -#: ../editors/Viewer.py:1644
    +#: ../editors/Viewer.py:1636
    msgid "Release value"
    msgstr ""
    @@ -2726,32 +2735,32 @@
    msgid "Remainder (modulo)"
    msgstr ""
    -#: ../BeremizIDE.py:1086
    +#: ../BeremizIDE.py:1084
    #, python-format
    msgid "Remove %s node"
    msgstr ""
    -#: ../IDEFrame.py:2454
    +#: ../IDEFrame.py:2445
    msgid "Remove Datatype"
    msgstr ""
    -#: ../IDEFrame.py:2459
    +#: ../IDEFrame.py:2450
    msgid "Remove Pou"
    msgstr ""
    -#: ../dialogs/ActionBlockDialog.py:142
    +#: ../dialogs/ActionBlockDialog.py:144
    msgid "Remove action"
    msgstr ""
    -#: ../editors/DataTypeEditor.py:366
    +#: ../editors/DataTypeEditor.py:365
    msgid "Remove element"
    msgstr ""
    -#: ../editors/FileManagementPanel.py:64
    +#: ../editors/FileManagementPanel.py:66
    msgid "Remove file from left folder"
    msgstr ""
    -#: ../editors/ResourceEditor.py:282
    +#: ../editors/ResourceEditor.py:284
    msgid "Remove instance"
    msgstr ""
    @@ -2759,23 +2768,23 @@
    msgid "Remove slave"
    msgstr ""
    -#: ../editors/ResourceEditor.py:251
    +#: ../editors/ResourceEditor.py:253
    msgid "Remove task"
    msgstr ""
    -#: ../editors/CodeFileEditor.py:660 ../controls/VariablePanel.py:482
    +#: ../editors/CodeFileEditor.py:655 ../controls/VariablePanel.py:482
    msgid "Remove variable"
    msgstr ""
    -#: ../IDEFrame.py:1985
    +#: ../IDEFrame.py:1979
    msgid "Rename"
    msgstr ""
    -#: ../editors/FileManagementPanel.py:185
    +#: ../editors/FileManagementPanel.py:187
    msgid "Replace File"
    msgstr ""
    -#: ../editors/Viewer.py:601
    +#: ../editors/Viewer.py:598
    msgid "Replace Wire by connections"
    msgstr ""
    @@ -2783,27 +2792,27 @@
    msgid "Replacement (within)"
    msgstr ""
    -#: ../dialogs/LDElementDialog.py:77
    +#: ../dialogs/LDElementDialog.py:79
    msgid "Reset"
    msgstr ""
    -#: ../editors/Viewer.py:684
    +#: ../editors/Viewer.py:681
    msgid "Reset Execution Order"
    msgstr ""
    -#: ../IDEFrame.py:465
    +#: ../IDEFrame.py:453
    msgid "Reset Perspective"
    msgstr ""
    -#: ../controls/SearchResultPanel.py:111
    +#: ../controls/SearchResultPanel.py:103
    msgid "Reset search result"
    msgstr ""
    -#: ../BeremizIDE.py:1015 ../PLCControler.py:106
    +#: ../BeremizIDE.py:1015 ../plcopen/types_enums.py:77
    msgid "Resources"
    msgstr ""
    -#: ../controls/VariablePanel.py:76
    +#: ../controls/VariablePanel.py:77
    msgid "Retain"
    msgstr ""
    @@ -2811,15 +2820,15 @@
    msgid "Return Type:"
    msgstr ""
    -#: ../editors/Viewer.py:586
    +#: ../editors/Viewer.py:582
    msgid "Right"
    msgstr ""
    -#: ../dialogs/LDPowerRailDialog.py:63
    +#: ../dialogs/LDPowerRailDialog.py:65
    msgid "Right PowerRail"
    msgstr ""
    -#: ../dialogs/LDElementDialog.py:78 ../editors/Viewer.py:559
    +#: ../dialogs/LDElementDialog.py:80 ../editors/Viewer.py:555
    msgid "Rising Edge"
    msgstr ""
    @@ -2835,113 +2844,113 @@
    msgid "Rounding up/down"
    msgstr ""
    -#: ../ProjectController.py:1871
    +#: ../ProjectController.py:1828
    msgid "Run"
    msgstr ""
    -#: ../ProjectController.py:1125
    +#: ../ProjectController.py:1127
    msgid "Runtime IO extensions C code generation failed !\n"
    msgstr ""
    -#: ../ProjectController.py:1134
    +#: ../ProjectController.py:1136
    msgid "Runtime library extensions C code generation failed !\n"
    msgstr ""
    -#: ../canfestival/SlaveEditor.py:64 ../canfestival/NetworkEditor.py:89
    +#: ../canfestival/SlaveEditor.py:65 ../canfestival/NetworkEditor.py:89
    msgid "SDO Client"
    msgstr ""
    -#: ../canfestival/SlaveEditor.py:63 ../canfestival/NetworkEditor.py:88
    +#: ../canfestival/SlaveEditor.py:64 ../canfestival/NetworkEditor.py:88
    msgid "SDO Server"
    msgstr ""
    -#: ../dialogs/PouDialog.py:42 ../controls/ProjectPropertiesPanel.py:148
    +#: ../dialogs/PouDialog.py:44 ../controls/ProjectPropertiesPanel.py:158
    msgid "SFC"
    msgstr ""
    -#: ../PLCGenerator.py:1409
    +#: ../PLCGenerator.py:1433
    #, python-brace-format
    msgid "SFC jump in pou \"{a1}\" refers to non-existent SFC step \"{a2}\""
    msgstr ""
    -#: ../PLCGenerator.py:779
    +#: ../PLCGenerator.py:780
    #, python-format
    msgid "SFC transition in POU \"%s\" must be connected."
    msgstr ""
    -#: ../dialogs/PouTransitionDialog.py:38 ../dialogs/PouActionDialog.py:34
    -#: ../dialogs/PouDialog.py:42
    +#: ../dialogs/PouTransitionDialog.py:40 ../dialogs/PouActionDialog.py:36
    +#: ../dialogs/PouDialog.py:44
    msgid "ST"
    msgstr ""
    -#: ../PLCOpenEditor.py:355
    +#: ../PLCOpenEditor.py:308
    msgid "ST files (*.st)|*.st|All files|*.*"
    msgstr ""
    -#: ../svgui/svgui.py:135
    +#: ../svgui/svgui.py:136
    msgid "SVG files (*.svg)|*.svg|All files|*.*"
    msgstr ""
    -#: ../features.py:35
    +#: ../features.py:36
    msgid "SVGUI"
    msgstr ""
    -#: ../BeremizIDE.py:252 ../BeremizIDE.py:283 ../PLCOpenEditor.py:131
    -#: ../PLCOpenEditor.py:166
    +#: ../BeremizIDE.py:247 ../BeremizIDE.py:278 ../PLCOpenEditor.py:84
    +#: ../PLCOpenEditor.py:119
    msgid "Save"
    msgstr ""
    -#: ../BeremizIDE.py:284 ../PLCOpenEditor.py:133 ../PLCOpenEditor.py:167
    +#: ../BeremizIDE.py:279 ../PLCOpenEditor.py:86 ../PLCOpenEditor.py:120
    msgid "Save As..."
    msgstr ""
    -#: ../BeremizIDE.py:254
    +#: ../BeremizIDE.py:249
    msgid "Save as"
    msgstr ""
    -#: ../ProjectController.py:528
    +#: ../ProjectController.py:530
    msgid "Save path is the same as path of a project! \n"
    msgstr ""
    -#: ../dialogs/SearchInProjectDialog.py:72
    +#: ../dialogs/SearchInProjectDialog.py:73
    msgid "Scope"
    msgstr ""
    -#: ../IDEFrame.py:659
    +#: ../IDEFrame.py:644
    msgid "Search"
    msgstr ""
    -#: ../dialogs/SearchInProjectDialog.py:48 ../IDEFrame.py:396 ../IDEFrame.py:442
    +#: ../dialogs/SearchInProjectDialog.py:49 ../IDEFrame.py:384 ../IDEFrame.py:430
    msgid "Search in Project"
    msgstr ""
    -#: ../dialogs/DurationEditorDialog.py:47
    +#: ../dialogs/DurationEditorDialog.py:49
    msgid "Seconds:"
    msgstr ""
    -#: ../IDEFrame.py:402
    +#: ../IDEFrame.py:390
    msgid "Select All"
    msgstr ""
    -#: ../editors/Viewer.py:328 ../editors/TextViewer.py:310
    -#: ../controls/LocationCellEditor.py:99 ../controls/VariablePanel.py:315
    +#: ../editors/Viewer.py:331 ../editors/TextViewer.py:305
    +#: ../controls/LocationCellEditor.py:101 ../controls/VariablePanel.py:315
    #: ../controls/VariablePanel.py:378
    msgid "Select a variable class:"
    msgstr ""
    -#: ../ProjectController.py:1288
    +#: ../ProjectController.py:1293
    msgid "Select an editor:"
    msgstr ""
    -#: ../controls/PouInstanceVariablesPanel.py:298
    +#: ../controls/PouInstanceVariablesPanel.py:292
    msgid "Select an instance"
    msgstr ""
    -#: ../IDEFrame.py:643
    +#: ../IDEFrame.py:628
    msgid "Select an object"
    msgstr ""
    -#: ../ProjectController.py:535
    +#: ../ProjectController.py:537
    msgid "Selected directory already contains another project. Overwrite? \n"
    msgstr ""
    @@ -2949,23 +2958,23 @@
    msgid "Selection"
    msgstr ""
    -#: ../dialogs/SFCDivergenceDialog.py:65
    +#: ../dialogs/SFCDivergenceDialog.py:66
    msgid "Selection Convergence"
    msgstr ""
    -#: ../dialogs/SFCDivergenceDialog.py:64
    +#: ../dialogs/SFCDivergenceDialog.py:65
    msgid "Selection Divergence"
    msgstr ""
    -#: ../dialogs/DiscoveryDialog.py:87
    +#: ../dialogs/DiscoveryDialog.py:135
    msgid "Service Discovery"
    msgstr ""
    -#: ../dialogs/DiscoveryDialog.py:91
    +#: ../dialogs/DiscoveryDialog.py:104
    msgid "Services available:"
    msgstr ""
    -#: ../dialogs/LDElementDialog.py:77
    +#: ../dialogs/LDElementDialog.py:79
    msgid "Set"
    msgstr ""
    @@ -2977,27 +2986,27 @@
    msgid "Shift right"
    msgstr ""
    -#: ../ProjectController.py:1906
    +#: ../ProjectController.py:1863
    msgid "Show IEC code generated by PLCGenerator"
    msgstr ""
    -#: ../canfestival/canfestival.py:416
    +#: ../canfestival/canfestival.py:407
    msgid "Show Master"
    msgstr ""
    -#: ../canfestival/canfestival.py:417
    +#: ../canfestival/canfestival.py:408
    msgid "Show Master generated by config_utils"
    msgstr ""
    -#: ../ProjectController.py:1905
    +#: ../ProjectController.py:1862
    msgid "Show code"
    msgstr ""
    +#: ../dialogs/SFCDivergenceDialog.py:68
    +msgid "Simultaneous Convergence"
    +msgstr ""
    +
    #: ../dialogs/SFCDivergenceDialog.py:67
    -msgid "Simultaneous Convergence"
    -msgstr ""
    -
    -#: ../dialogs/SFCDivergenceDialog.py:66
    msgid "Simultaneous Divergence"
    msgstr ""
    @@ -3005,15 +3014,15 @@
    msgid "Sine"
    msgstr ""
    -#: ../editors/ResourceEditor.py:74
    +#: ../editors/ResourceEditor.py:76
    msgid "Single"
    msgstr ""
    -#: ../targets/toolchain_makefile.py:128
    +#: ../targets/toolchain_makefile.py:130
    msgid "Source didn't change, no build.\n"
    msgstr ""
    -#: ../PLCGenerator.py:401
    +#: ../PLCGenerator.py:404
    #, python-brace-format
    msgid "Source signal has to be defined for single task '{a1}' in resource '{a2}.{a3}'."
    msgstr ""
    @@ -3022,36 +3031,36 @@
    msgid "Square root (base 2)"
    msgstr ""
    -#: ../plcopen/definitions.py:49
    +#: ../plcopen/definitions.py:50
    msgid "Standard function blocks"
    msgstr ""
    -#: ../ProjectController.py:1872 ../Beremiz_service.py:271
    +#: ../ProjectController.py:1829 ../Beremiz_service.py:271
    msgid "Start PLC"
    msgstr ""
    -#: ../ProjectController.py:1072
    +#: ../ProjectController.py:1074
    #, python-format
    msgid "Start build in %s\n"
    msgstr ""
    -#: ../ProjectController.py:1392
    +#: ../ProjectController.py:1397
    msgid "Started"
    msgstr ""
    -#: ../ProjectController.py:1679
    +#: ../ProjectController.py:1633
    msgid "Starting PLC\n"
    msgstr ""
    -#: ../BeremizIDE.py:398
    +#: ../BeremizIDE.py:393
    msgid "Status ToolBar"
    msgstr ""
    -#: ../editors/Viewer.py:654 ../editors/Viewer.py:2434
    +#: ../editors/Viewer.py:651 ../editors/Viewer.py:2424
    msgid "Step"
    msgstr ""
    -#: ../ProjectController.py:1878
    +#: ../ProjectController.py:1835
    msgid "Stop"
    msgstr ""
    @@ -3059,23 +3068,19 @@
    msgid "Stop PLC"
    msgstr ""
    -#: ../ProjectController.py:1879
    +#: ../ProjectController.py:1836
    msgid "Stop Running PLC"
    msgstr ""
    -#: ../ProjectController.py:1393
    +#: ../ProjectController.py:1398
    msgid "Stopped"
    msgstr ""
    -#: ../ProjectController.py:1651
    -msgid "Stopping debugger...\n"
    -msgstr ""
    -
    -#: ../editors/DataTypeEditor.py:58
    +#: ../editors/DataTypeEditor.py:60
    msgid "Structure"
    msgstr ""
    -#: ../editors/DataTypeEditor.py:58
    +#: ../editors/DataTypeEditor.py:60
    msgid "Subrange"
    msgstr ""
    @@ -3083,19 +3088,19 @@
    msgid "Subtraction"
    msgstr ""
    -#: ../ProjectController.py:1111
    +#: ../ProjectController.py:1113
    msgid "Successfully built.\n"
    msgstr ""
    -#: ../IDEFrame.py:461
    +#: ../IDEFrame.py:449
    msgid "Switch perspective"
    msgstr ""
    -#: ../dialogs/SearchInProjectDialog.py:168 ../dialogs/FindInPouDialog.py:116
    +#: ../dialogs/SearchInProjectDialog.py:169 ../dialogs/FindInPouDialog.py:118
    msgid "Syntax error in regular expression of pattern to search!"
    msgstr ""
    -#: ../dialogs/DiscoveryDialog.py:100
    +#: ../dialogs/DiscoveryDialog.py:90
    msgid "TYPE"
    msgstr ""
    @@ -3103,19 +3108,19 @@
    msgid "Tangent"
    msgstr ""
    -#: ../editors/ResourceEditor.py:95
    +#: ../editors/ResourceEditor.py:97
    msgid "Task"
    msgstr ""
    -#: ../editors/ResourceEditor.py:246
    +#: ../editors/ResourceEditor.py:248
    msgid "Tasks:"
    msgstr ""
    -#: ../controls/VariablePanel.py:90
    +#: ../controls/VariablePanel.py:91
    msgid "Temp"
    msgstr ""
    -#: ../version.py:34
    +#: ../version.py:35
    msgid ""
    "The best place to ask questions about Beremiz/PLCOpenEditor\n"
    "is project's mailing list: beremiz-devel@lists.sourceforge.net\n"
    @@ -3127,37 +3132,37 @@
    "https://lists.sourceforge.net/lists/listinfo/beremiz-devel"
    msgstr ""
    -#: ../editors/FileManagementPanel.py:184
    +#: ../editors/FileManagementPanel.py:186
    #, python-format
    msgid ""
    "The file '%s' already exist.\n"
    "Do you want to replace it?"
    msgstr ""
    -#: ../editors/LDViewer.py:891
    +#: ../editors/LDViewer.py:893
    msgid "The group of block must be coherent!"
    msgstr ""
    -#: ../BeremizIDE.py:577 ../IDEFrame.py:1052
    +#: ../BeremizIDE.py:573 ../IDEFrame.py:1046
    msgid "There are changes, do you want to save?"
    msgstr ""
    -#: ../IDEFrame.py:1695 ../IDEFrame.py:1714
    +#: ../IDEFrame.py:1691 ../IDEFrame.py:1710
    #, python-format
    msgid "There is a POU named \"%s\". This could cause a conflict. Do you wish to continue?"
    msgstr ""
    -#: ../IDEFrame.py:1139
    +#: ../IDEFrame.py:1133
    msgid ""
    "There was a problem printing.\n"
    "Perhaps your current printer is not set correctly?"
    msgstr ""
    -#: ../editors/LDViewer.py:900
    +#: ../editors/LDViewer.py:902
    msgid "This option isn't available yet!"
    msgstr ""
    -#: ../controls/DebugVariablePanel/DebugVariablePanel.py:564
    +#: ../controls/DebugVariablePanel/DebugVariablePanel.py:567
    #, python-format
    msgid "Tick: %d"
    msgstr ""
    @@ -3195,63 +3200,63 @@
    msgid "Time-of-day subtraction"
    msgstr ""
    -#: ../dialogs/ForceVariableDialog.py:186
    +#: ../dialogs/ForceVariableDialog.py:188
    msgid "Toggle value"
    msgstr ""
    -#: ../editors/Viewer.py:588
    +#: ../editors/Viewer.py:584
    msgid "Top"
    msgstr ""
    -#: ../ProjectController.py:1891
    -msgid "Transfer"
    -msgstr ""
    -
    -#: ../ProjectController.py:1892
    -msgid "Transfer PLC"
    -msgstr ""
    -
    -#: ../ProjectController.py:1845
    -msgid "Transfer completed successfully.\n"
    -msgstr ""
    -
    #: ../ProjectController.py:1848
    +msgid "Transfer"
    +msgstr ""
    +
    +#: ../ProjectController.py:1849
    +msgid "Transfer PLC"
    +msgstr ""
    +
    +#: ../ProjectController.py:1802
    +msgid "Transfer completed successfully.\n"
    +msgstr ""
    +
    +#: ../ProjectController.py:1805
    msgid "Transfer failed\n"
    msgstr ""
    -#: ../editors/Viewer.py:655 ../editors/Viewer.py:2436 ../editors/Viewer.py:2463
    +#: ../editors/Viewer.py:652 ../editors/Viewer.py:2426 ../editors/Viewer.py:2453
    msgid "Transition"
    msgstr ""
    -#: ../PLCGenerator.py:1540
    +#: ../PLCGenerator.py:1564
    #, python-format
    msgid "Transition \"%s\" body must contain an output variable or coil referring to its name"
    msgstr ""
    -#: ../dialogs/PouTransitionDialog.py:89
    +#: ../dialogs/PouTransitionDialog.py:91
    msgid "Transition Name"
    msgstr ""
    -#: ../dialogs/PouTransitionDialog.py:58
    +#: ../dialogs/PouTransitionDialog.py:60
    msgid "Transition Name:"
    msgstr ""
    -#: ../PLCGenerator.py:1633
    +#: ../PLCGenerator.py:1657
    #, python-brace-format
    msgid "Transition with content \"{a1}\" not connected to a next step in \"{a2}\" POU"
    msgstr ""
    -#: ../PLCGenerator.py:1622
    +#: ../PLCGenerator.py:1646
    #, python-brace-format
    msgid "Transition with content \"{a1}\" not connected to a previous step in \"{a2}\" POU"
    msgstr ""
    -#: ../plcopen/plcopen.py:1382
    +#: ../plcopen/plcopen.py:1526
    #, python-format
    msgid "Transition with name %s doesn't exist!"
    msgstr ""
    -#: ../PLCControler.py:105
    +#: ../plcopen/types_enums.py:76
    msgid "Transitions"
    msgstr ""
    @@ -3259,17 +3264,17 @@
    msgid "Translated by"
    msgstr ""
    -#: ../editors/ResourceEditor.py:74
    +#: ../editors/ResourceEditor.py:76
    msgid "Triggering"
    msgstr ""
    -#: ../Beremiz_service.py:487
    +#: ../Beremiz_service.py:490
    msgid "Twisted unavailable."
    msgstr ""
    -#: ../dialogs/ActionBlockDialog.py:40 ../editors/ResourceEditor.py:95
    -#: ../editors/DataTypeEditor.py:53 ../editors/CodeFileEditor.py:748
    -#: ../controls/VariablePanel.py:60
    +#: ../dialogs/ActionBlockDialog.py:42 ../editors/ResourceEditor.py:97
    +#: ../editors/DataTypeEditor.py:55 ../editors/CodeFileEditor.py:733
    +#: ../controls/VariablePanel.py:61
    msgid "Type"
    msgstr ""
    @@ -3277,7 +3282,7 @@
    msgid "Type and derivated"
    msgstr ""
    -#: ../canfestival/config_utils.py:353 ../canfestival/config_utils.py:660
    +#: ../canfestival/config_utils.py:359 ../canfestival/config_utils.py:666
    #, python-format
    msgid "Type conflict for location \"%s\""
    msgstr ""
    @@ -3294,50 +3299,62 @@
    msgid "Type strict"
    msgstr ""
    -#: ../dialogs/SFCDivergenceDialog.py:59 ../dialogs/SFCTransitionDialog.py:58
    -#: ../dialogs/LDPowerRailDialog.py:56 ../dialogs/BrowseLocationsDialog.py:111
    -#: ../dialogs/FBDBlockDialog.py:67 ../dialogs/ConnectionDialog.py:59
    +#: ../dialogs/SFCDivergenceDialog.py:60 ../dialogs/SFCTransitionDialog.py:59
    +#: ../dialogs/LDPowerRailDialog.py:58 ../dialogs/BrowseLocationsDialog.py:111
    +#: ../dialogs/FBDBlockDialog.py:69 ../dialogs/ConnectionDialog.py:61
    msgid "Type:"
    msgstr ""
    -#: ../canfestival/config_utils.py:494 ../canfestival/config_utils.py:509
    +#: ../connectors/PYRO/dialog.py:39 ../connectors/WAMP/dialog.py:42
    +msgid "URI host:"
    +msgstr ""
    +
    +#: ../connectors/PYRO/dialog.py:43 ../connectors/WAMP/dialog.py:46
    +msgid "URI port:"
    +msgstr ""
    +
    +#: ../controls/UriLocationEditor.py:35
    +msgid "URI type:"
    +msgstr ""
    +
    +#: ../canfestival/config_utils.py:500 ../canfestival/config_utils.py:515
    #, python-format
    msgid "Unable to define PDO mapping for node %02x"
    msgstr ""
    -#: ../targets/Xenomai/__init__.py:41
    +#: ../targets/Xenomai/__init__.py:43
    #, python-format
    msgid "Unable to get Xenomai's %s \n"
    msgstr ""
    -#: ../PLCGenerator.py:973 ../PLCGenerator.py:1228
    +#: ../PLCGenerator.py:974 ../PLCGenerator.py:1252
    #, python-brace-format
    msgid "Undefined block type \"{a1}\" in \"{a2}\" POU"
    msgstr ""
    -#: ../PLCGenerator.py:257
    +#: ../PLCGenerator.py:261
    #, python-format
    msgid "Undefined pou type \"%s\""
    msgstr ""
    -#: ../IDEFrame.py:374 ../IDEFrame.py:435
    +#: ../IDEFrame.py:365 ../IDEFrame.py:423
    msgid "Undo"
    msgstr ""
    -#: ../ProjectController.py:440
    +#: ../ProjectController.py:442
    msgid "Unknown"
    msgstr ""
    -#: ../editors/Viewer.py:434
    +#: ../editors/Viewer.py:437
    #, python-format
    msgid "Unknown variable \"%s\" for this POU!"
    msgstr ""
    -#: ../ProjectController.py:437 ../ProjectController.py:438
    +#: ../ProjectController.py:439 ../ProjectController.py:440
    msgid "Unnamed"
    msgstr ""
    -#: ../PLCControler.py:667
    +#: ../PLCControler.py:263
    #, python-format
    msgid "Unnamed%d"
    msgstr ""
    @@ -3347,73 +3364,103 @@
    msgid "Unrecognized data size \"%s\""
    msgstr ""
    -#: ../editors/DataTypeEditor.py:645 ../controls/VariablePanel.py:862
    +#: ../editors/DataTypeEditor.py:646 ../controls/VariablePanel.py:841
    msgid "User Data Types"
    msgstr ""
    -#: ../canfestival/SlaveEditor.py:68 ../canfestival/NetworkEditor.py:93
    +#: ../canfestival/SlaveEditor.py:69 ../canfestival/NetworkEditor.py:93
    msgid "User Type"
    msgstr ""
    -#: ../PLCControler.py:104
    +#: ../plcopen/types_enums.py:75
    msgid "User-defined POUs"
    msgstr ""
    -#: ../dialogs/ActionBlockDialog.py:40
    +#: ../dialogs/ActionBlockDialog.py:42
    msgid "Value"
    msgstr ""
    -#: ../editors/DataTypeEditor.py:268
    +#: ../editors/DataTypeEditor.py:267
    msgid "Values:"
    msgstr ""
    -#: ../dialogs/ActionBlockDialog.py:45 ../editors/Viewer.py:625
    -#: ../editors/Viewer.py:2466
    +#: ../dialogs/ActionBlockDialog.py:47 ../editors/Viewer.py:622
    +#: ../editors/Viewer.py:2456
    msgid "Variable"
    msgstr ""
    -#: ../editors/Viewer.py:349 ../editors/Viewer.py:379 ../editors/Viewer.py:401
    -#: ../editors/TextViewer.py:295 ../editors/TextViewer.py:349
    -#: ../editors/TextViewer.py:372 ../controls/VariablePanel.py:355
    +#: ../editors/Viewer.py:352 ../editors/Viewer.py:382 ../editors/Viewer.py:404
    +#: ../editors/TextViewer.py:290 ../editors/TextViewer.py:344
    +#: ../editors/TextViewer.py:367 ../controls/VariablePanel.py:355
    msgid "Variable Drop"
    msgstr ""
    -#: ../dialogs/FBDVariableDialog.py:67
    +#: ../dialogs/FBDVariableDialog.py:68
    msgid "Variable Properties"
    msgstr ""
    -#: ../editors/Viewer.py:329 ../editors/TextViewer.py:311
    -#: ../controls/LocationCellEditor.py:100 ../controls/VariablePanel.py:316
    +#: ../editors/Viewer.py:332 ../editors/TextViewer.py:306
    +#: ../controls/LocationCellEditor.py:102 ../controls/VariablePanel.py:316
    #: ../controls/VariablePanel.py:379
    msgid "Variable class"
    msgstr ""
    -#: ../editors/Viewer.py:436 ../editors/TextViewer.py:393
    +#: ../editors/Viewer.py:439 ../editors/TextViewer.py:388
    msgid "Variable don't belong to this POU!"
    msgstr ""
    -#: ../dialogs/LDElementDialog.py:90
    +#: ../dialogs/LDElementDialog.py:92
    msgid "Variable:"
    msgstr ""
    -#: ../controls/VariablePanel.py:89
    +#: ../controls/VariablePanel.py:90
    msgid "Variables"
    msgstr ""
    -#: ../controls/ProjectPropertiesPanel.py:156
    +#: ../controls/ProjectPropertiesPanel.py:166
    msgid "Vertical:"
    msgstr ""
    -#: ../Beremiz_service.py:605
    +#: ../runtime/WampClient.py:113
    +#, python-format
    +msgid "WAMP Client connection failed (%s) .. retrying .."
    +msgstr ""
    +
    +#: ../runtime/WampClient.py:117
    +#, python-format
    +msgid "WAMP Client connection lost (%s) .. retrying .."
    +msgstr ""
    +
    +#: ../connectors/WAMP/dialog.py:54
    +msgid "WAMP ID:"
    +msgstr ""
    +
    +#: ../runtime/WampClient.py:172
    +msgid "WAMP client connecting to :"
    +msgstr ""
    +
    +#: ../runtime/WampClient.py:148
    +msgid "WAMP client connection not established!"
    +msgstr ""
    +
    +#: ../Beremiz_service.py:625
    msgid "WAMP client startup failed. "
    msgstr ""
    -#: ../connectors/WAMP/__init__.py:97
    +#: ../Beremiz_service.py:621
    +msgid "WAMP config is incomplete."
    +msgstr ""
    +
    +#: ../Beremiz_service.py:623
    +msgid "WAMP config is missing."
    +msgstr ""
    +
    +#: ../connectors/WAMP/__init__.py:99
    #, python-format
    msgid "WAMP connecting to URL : %s\n"
    msgstr ""
    -#: ../connectors/WAMP/__init__.py:139
    +#: ../connectors/WAMP/__init__.py:140
    msgid "WAMP connection timeout"
    msgstr ""
    @@ -3422,31 +3469,43 @@
    msgid "WAMP connection to '%s' failed.\n"
    msgstr ""
    -#: ../Beremiz_service.py:581
    +#: ../Beremiz_service.py:595
    msgid "WAMP import failed :"
    msgstr ""
    -#: ../wxglade_hmi/wxglade_hmi.py:41
    +#: ../runtime/WampClient.py:126
    +msgid "WAMP load error: "
    +msgstr ""
    +
    +#: ../runtime/WampClient.py:108
    +msgid "WAMP session left"
    +msgstr ""
    +
    +#: ../wxglade_hmi/wxglade_hmi.py:44
    msgid "WXGLADE GUI"
    msgstr ""
    -#: ../dialogs/PouDialog.py:135 ../editors/LDViewer.py:900
    +#: ../runtime/WampClient.py:137
    +msgid "Wamp secret load error:"
    +msgstr ""
    +
    +#: ../dialogs/PouDialog.py:137 ../editors/LDViewer.py:902
    msgid "Warning"
    msgstr ""
    -#: ../ProjectController.py:724
    +#: ../ProjectController.py:726
    msgid "Warnings in ST/IL/SFC code generator :\n"
    msgstr ""
    -#: ../dialogs/SearchInProjectDialog.py:81
    +#: ../dialogs/SearchInProjectDialog.py:82
    msgid "Whole Project"
    msgstr ""
    -#: ../controls/ProjectPropertiesPanel.py:124
    +#: ../controls/ProjectPropertiesPanel.py:134
    msgid "Width:"
    msgstr ""
    -#: ../dialogs/FindInPouDialog.py:92
    +#: ../dialogs/FindInPouDialog.py:94
    msgid "Wrap search"
    msgstr ""
    @@ -3454,91 +3513,91 @@
    msgid "Written by"
    msgstr ""
    -#: ../features.py:34
    +#: ../features.py:35
    msgid "WxGlade GUI"
    msgstr ""
    -#: ../svgui/svgui.py:149
    +#: ../svgui/svgui.py:150
    msgid ""
    "You don't have write permissions.\n"
    "Open Inkscape anyway ?"
    msgstr ""
    -#: ../wxglade_hmi/wxglade_hmi.py:158
    +#: ../wxglade_hmi/wxglade_hmi.py:160
    msgid ""
    "You don't have write permissions.\n"
    "Open wxGlade anyway ?"
    msgstr ""
    -#: ../ProjectController.py:388
    +#: ../ProjectController.py:390
    msgid ""
    "You must have permission to work on the project\n"
    "Work on a project copy ?"
    msgstr ""
    -#: ../editors/LDViewer.py:895
    +#: ../editors/LDViewer.py:897
    msgid "You must select the block or group of blocks around which a branch should be added!"
    msgstr ""
    -#: ../editors/LDViewer.py:675
    +#: ../editors/LDViewer.py:677
    msgid "You must select the wire where a contact should be added!"
    msgstr ""
    -#: ../dialogs/SFCStepNameDialog.py:49 ../dialogs/PouNameDialog.py:47
    +#: ../dialogs/SFCStepNameDialog.py:52 ../dialogs/PouNameDialog.py:50
    msgid "You must type a name!"
    msgstr ""
    -#: ../dialogs/ForceVariableDialog.py:207
    +#: ../dialogs/ForceVariableDialog.py:209
    msgid "You must type a value!"
    msgstr ""
    -#: ../IDEFrame.py:452
    +#: ../IDEFrame.py:440
    msgid "Zoom"
    msgstr ""
    -#: ../dialogs/DurationEditorDialog.py:156
    -msgid "days"
    -msgstr ""
    -
    -#: ../PLCOpenEditor.py:364
    -#, python-format
    -msgid "error: %s\n"
    -msgstr ""
    -
    -#: ../util/ProcessLogger.py:174
    -#, python-brace-format
    -msgid "exited with status {a1} (pid {a2})\n"
    -msgstr ""
    -
    -#: ../dialogs/PouDialog.py:34
    -msgid "function"
    -msgstr ""
    -
    -#: ../dialogs/PouDialog.py:34
    -msgid "functionBlock"
    -msgstr ""
    -
    -#: ../dialogs/DurationEditorDialog.py:156
    -msgid "hours"
    -msgstr ""
    -
    -#: ../ProjectController.py:751
    -msgid "matiec installation is not found\n"
    -msgstr ""
    -
    #: ../dialogs/DurationEditorDialog.py:158
    +msgid "days"
    +msgstr ""
    +
    +#: ../PLCOpenEditor.py:317
    +#, python-format
    +msgid "error: %s\n"
    +msgstr ""
    +
    +#: ../util/ProcessLogger.py:178
    +#, python-brace-format
    +msgid "exited with status {a1} (pid {a2})\n"
    +msgstr ""
    +
    +#: ../dialogs/PouDialog.py:36
    +msgid "function"
    +msgstr ""
    +
    +#: ../dialogs/PouDialog.py:36
    +msgid "functionBlock"
    +msgstr ""
    +
    +#: ../dialogs/DurationEditorDialog.py:158
    +msgid "hours"
    +msgstr ""
    +
    +#: ../ProjectController.py:753
    +msgid "matiec installation is not found\n"
    +msgstr ""
    +
    +#: ../dialogs/DurationEditorDialog.py:160
    msgid "milliseconds"
    msgstr ""
    -#: ../dialogs/DurationEditorDialog.py:157
    +#: ../dialogs/DurationEditorDialog.py:159
    msgid "minutes"
    msgstr ""
    -#: ../dialogs/PouDialog.py:34
    +#: ../dialogs/PouDialog.py:36
    msgid "program"
    msgstr ""
    -#: ../dialogs/DurationEditorDialog.py:157
    +#: ../dialogs/DurationEditorDialog.py:159
    msgid "seconds"
    msgstr ""
    @@ -3554,16 +3613,16 @@
    msgid "string right of"
    msgstr ""
    -#: ../Beremiz.py:164
    +#: ../Beremiz.py:167
    msgid "update info unavailable."
    msgstr ""
    -#: ../PLCOpenEditor.py:362
    +#: ../PLCOpenEditor.py:315
    #, python-format
    msgid "warning: %s\n"
    msgstr ""
    -#: ../PLCControler.py:1028
    +#: ../PLCControler.py:576
    #, python-brace-format
    msgid "{a1} \"{a2}\" can't be pasted as a {a3}."
    msgstr ""
    @@ -3638,6 +3697,72 @@
    msgid "Win32"
    msgstr ""
    +msgid "ModbusRequest"
    +msgstr ""
    +
    +msgid "SlaveID"
    +msgstr ""
    +
    +msgid "Nr_of_Channels"
    +msgstr ""
    +
    +msgid "Start_Address"
    +msgstr ""
    +
    +msgid "Timeout_in_ms"
    +msgstr ""
    +
    +msgid "MemoryArea"
    +msgstr ""
    +
    +msgid "MemoryAreaType"
    +msgstr ""
    +
    +msgid "ModbusTCPclient"
    +msgstr ""
    +
    +msgid "Remote_IP_Address"
    +msgstr ""
    +
    +msgid "Remote_Port_Number"
    +msgstr ""
    +
    +msgid "Invocation_Rate_in_ms"
    +msgstr ""
    +
    +msgid "ModbusServerNode"
    +msgstr ""
    +
    +msgid "Local_IP_Address"
    +msgstr ""
    +
    +msgid "Local_Port_Number"
    +msgstr ""
    +
    +msgid "ModbusRTUclient"
    +msgstr ""
    +
    +msgid "Serial_Port"
    +msgstr ""
    +
    +msgid "Baud_Rate"
    +msgstr ""
    +
    +msgid "Parity"
    +msgstr ""
    +
    +msgid "Stop_Bits"
    +msgstr ""
    +
    +msgid "ModbusRTUslave"
    +msgstr ""
    +
    +msgid "ModbusRoot"
    +msgstr ""
    +
    +msgid "MaxRemoteTCPclients"
    +msgstr ""
    +
    msgid "BaseParams"
    msgstr ""