Update internationalization
authorlaurent
Fri, 09 Oct 2009 17:34:18 +0200
changeset 446 0dd1a5f2a7a1
parent 445 755af2768962
child 447 6083dcecd2c5
Update internationalization
VariablePanel.py
dialogs/PouNameDialog.py
dialogs/SFCStepDialog.py
dialogs/SFCStepNameDialog.py
i18n/PLCOpenEditor_fr_FR.po
i18n/app.fil
i18n/messages.pot
locale/fr_FR/LC_MESSAGES/PLCOpenEditor.mo
locale/zh_CN/LC_MESSAGES/PLCOpenEditor.mo
plcopen/iec_std.csv
--- a/VariablePanel.py	Fri Oct 09 15:38:11 2009 +0200
+++ b/VariablePanel.py	Fri Oct 09 17:34:18 2009 +0200
@@ -691,7 +691,7 @@
                 message.Destroy()
                 event.Veto()
             elif value.upper() in self.PouNames:
-                message = wx.MessageDialog(self, _("A pou with \"%s\" as name exists!")%value, _("Error"), wx.OK|wx.ICON_ERROR)
+                message = wx.MessageDialog(self, _("A POU named \"%s\" already exists!")%value, _("Error"), wx.OK|wx.ICON_ERROR)
                 message.ShowModal()
                 message.Destroy()
                 event.Veto()
--- a/dialogs/PouNameDialog.py	Fri Oct 09 15:38:11 2009 +0200
+++ b/dialogs/PouNameDialog.py	Fri Oct 09 17:34:18 2009 +0200
@@ -64,7 +64,7 @@
             message.ShowModal()
             message.Destroy()
         elif step_name.upper() in self.PouNames:
-            message = wx.MessageDialog(self, _("A pou with \"%s\" as name exists!")%step_name, _("Error"), wx.OK|wx.ICON_ERROR)
+            message = wx.MessageDialog(self, _("A POU named \"%s\" already exists!")%step_name, _("Error"), wx.OK|wx.ICON_ERROR)
             message.ShowModal()
             message.Destroy()
         else:
--- a/dialogs/SFCStepDialog.py	Fri Oct 09 15:38:11 2009 +0200
+++ b/dialogs/SFCStepDialog.py	Fri Oct 09 17:34:18 2009 +0200
@@ -184,7 +184,7 @@
             message.ShowModal()
             message.Destroy()
         elif step_name.upper() in self.PouNames:
-            message = wx.MessageDialog(self, _("A pou with \"%s\" as name exists!")%step_name, _("Error"), wx.OK|wx.ICON_ERROR)
+            message = wx.MessageDialog(self, _("A POU named \"%s\" already exists!")%step_name, _("Error"), wx.OK|wx.ICON_ERROR)
             message.ShowModal()
             message.Destroy()
         elif step_name.upper() in self.Variables:
--- a/dialogs/SFCStepNameDialog.py	Fri Oct 09 15:38:11 2009 +0200
+++ b/dialogs/SFCStepNameDialog.py	Fri Oct 09 17:34:18 2009 +0200
@@ -66,7 +66,7 @@
             message.ShowModal()
             message.Destroy()
         elif step_name.upper() in self.PouNames:
-            message = wx.MessageDialog(self, _("A pou with \"%s\" as name exists!")%step_name, _("Error"), wx.OK|wx.ICON_ERROR)
+            message = wx.MessageDialog(self, _("A POU named \"%s\" already exists!")%step_name, _("Error"), wx.OK|wx.ICON_ERROR)
             message.ShowModal()
             message.Destroy()
         elif step_name.upper() in self.Variables:
--- a/i18n/PLCOpenEditor_fr_FR.po	Fri Oct 09 15:38:11 2009 +0200
+++ b/i18n/PLCOpenEditor_fr_FR.po	Fri Oct 09 17:34:18 2009 +0200
@@ -7,15 +7,15 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-26 19:19+0200\n"
-"PO-Revision-Date: 2009-08-26 19:25+0100\n"
+"POT-Creation-Date: 2009-10-09 17:24+0200\n"
+"PO-Revision-Date: 2009-10-09 17:27+0100\n"
 "Last-Translator: \n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: ../PLCOpenEditor.py:5046
+#: ../PLCOpenEditor.py:4279
 msgid ""
 "\n"
 "An error has occurred.\n"
@@ -41,42 +41,38 @@
 "\n"
 "Erreur:\n"
 
-#: ../PLCOpenEditor.py:3862
+#: ../VariablePanel.py:64
 msgid "   External"
 msgstr "  Externe"
 
-#: ../PLCOpenEditor.py:3861
+#: ../VariablePanel.py:63
 msgid "   InOut"
 msgstr "  Entrée-Sortie"
 
-#: ../PLCOpenEditor.py:3861
+#: ../VariablePanel.py:63
 msgid "   Input"
 msgstr "  Entrée"
 
-#: ../PLCOpenEditor.py:3862
+#: ../VariablePanel.py:64
 msgid "   Local"
 msgstr "  Locale"
 
-#: ../PLCOpenEditor.py:3861
+#: ../VariablePanel.py:63
 msgid "   Output"
 msgstr "  Sortie"
 
-#: ../PLCOpenEditor.py:3863
+#: ../VariablePanel.py:65
 msgid "   Temp"
 msgstr "  Temporaire"
 
-#: ../PLCOpenEditor.py:842
-msgid " (Debug)"
-msgstr " (Debug)"
-
-#: ../PLCOpenEditor.py:5058
+#: ../PLCOpenEditor.py:4291
 msgid " : "
 msgstr " : "
 
-#: ../PLCOpenEditor.py:3285
-#: ../PLCOpenEditor.py:3448
-#: ../PLCOpenEditor.py:3592
-#: ../Dialogs.py:1800
+#: ../PLCOpenEditor.py:3280
+#: ../PLCOpenEditor.py:3443
+#: ../PLCOpenEditor.py:3587
+#: ../dialogs/SFCTransitionDialog.py:206
 #, python-format
 msgid " and %s"
 msgstr " et %s"
@@ -96,13 +92,13 @@
 msgid "\"%s\" POU doesn't exist !!!"
 msgstr "Le POU \"%s\" n'existe pas !!!"
 
-#: ../Viewer.py:225
+#: ../Viewer.py:227
 #, python-format
 msgid "\"%s\" can't use itself!"
 msgstr "\"%s\" ne peut pas s'utiliser lui-même !"
 
-#: ../PLCOpenEditor.py:1619
-#: ../PLCOpenEditor.py:1639
+#: ../PLCOpenEditor.py:1405
+#: ../PLCOpenEditor.py:1425
 #, python-format
 msgid "\"%s\" config already exists!"
 msgstr "La configuration \"%s\" existe déjà !"
@@ -112,22 +108,24 @@
 msgid "\"%s\" configuration already exists !!!"
 msgstr "La configuration \"%s\" existe déjà !!!"
 
-#: ../PLCOpenEditor.py:1573
-#: ../PLCOpenEditor.py:3147
+#: ../PLCOpenEditor.py:1359
+#: ../PLCOpenEditor.py:3142
 #, python-format
 msgid "\"%s\" data type already exists!"
 msgstr "Le type de données \"%s\" existe déjà !"
 
-#: ../PLCControler.py:1663
+#: ../PLCControler.py:1709
+#: ../PLCControler.py:1713
 #, python-format
 msgid "\"%s\" element can't be pasted here!!!"
 msgstr "L'élément \"%s\" ne peut être collé ici !!!"
 
-#: ../PLCOpenEditor.py:3467
-#: ../PLCOpenEditor.py:3611
-#: ../Viewer.py:248
-#: ../Dialogs.py:261
-#: ../Dialogs.py:898
+#: ../PLCOpenEditor.py:3462
+#: ../PLCOpenEditor.py:3606
+#: ../Viewer.py:250
+#: ../TextViewer.py:231
+#: ../dialogs/ConnectionDialog.py:215
+#: ../dialogs/FBDBlockDialog.py:260
 #, python-format
 msgid "\"%s\" element for this pou already exists!"
 msgstr "Un élément \"%s\" existe déjà dans ce POU !"
@@ -137,72 +135,74 @@
 msgid "\"%s\" function cancelled in \"%s\" POU: No input connected"
 msgstr "L'appel à la fonction \"%s\" dans le POU \"%s\" a été abandonné : aucune entrée connectée"
 
-#: ../PLCOpenEditor.py:1564
-#: ../PLCOpenEditor.py:3143
-#: ../PLCOpenEditor.py:3296
-#: ../PLCOpenEditor.py:3459
-#: ../PLCOpenEditor.py:3603
-#: ../PLCOpenEditor.py:3674
-#: ../PLCOpenEditor.py:3737
-#: ../PLCOpenEditor.py:4451
-#: ../Dialogs.py:253
-#: ../Dialogs.py:652
-#: ../Dialogs.py:890
-#: ../Dialogs.py:1533
-#: ../Dialogs.py:2516
-#: ../Dialogs.py:2583
-#: ../DataTypeEditor.py:702
-#: ../DataTypeEditor.py:762
+#: ../PLCOpenEditor.py:1350
+#: ../PLCOpenEditor.py:3138
+#: ../PLCOpenEditor.py:3291
+#: ../PLCOpenEditor.py:3454
+#: ../PLCOpenEditor.py:3598
+#: ../PLCOpenEditor.py:3669
+#: ../PLCOpenEditor.py:3732
+#: ../VariablePanel.py:689
+#: ../dialogs/ConnectionDialog.py:207
+#: ../dialogs/FBDBlockDialog.py:252
+#: ../dialogs/FBDVariableDialog.py:268
+#: ../dialogs/PouNameDialog.py:63
+#: ../dialogs/SFCStepDialog.py:183
+#: ../dialogs/SFCStepNameDialog.py:65
+#: ../DataTypeEditor.py:705
+#: ../DataTypeEditor.py:765
 #, python-format
 msgid "\"%s\" is a keyword. It can't be used!"
 msgstr "\"%s\" est un mot réservé. Il ne peut être utilisé !"
 
-#: ../Viewer.py:231
+#: ../Viewer.py:233
 #, python-format
 msgid "\"%s\" is already used by \"%s\"!"
 msgstr "\"%s\" est déjà utilisé par \"%s\" !"
 
-#: ../plcopen/plcopen.py:2120
+#: ../plcopen/plcopen.py:2135
 #, python-format
 msgid "\"%s\" is an invalid value!"
 msgstr "\"%s\" n'est pas une valeur valide !"
 
-#: ../PLCOpenEditor.py:1099
-#: ../PLCOpenEditor.py:1128
+#: ../PLCOpenEditor.py:2628
+#: ../PLCOpenEditor.py:2656
 #, python-format
 msgid "\"%s\" is not a valid folder!"
 msgstr "\"%s\" n'est pas un répertoire valide !"
 
-#: ../PLCOpenEditor.py:1562
-#: ../PLCOpenEditor.py:3139
-#: ../PLCOpenEditor.py:3292
-#: ../PLCOpenEditor.py:3455
-#: ../PLCOpenEditor.py:3599
-#: ../PLCOpenEditor.py:3670
-#: ../PLCOpenEditor.py:3733
-#: ../PLCOpenEditor.py:4446
-#: ../Dialogs.py:249
-#: ../Dialogs.py:886
-#: ../Dialogs.py:1529
-#: ../Dialogs.py:2512
-#: ../Dialogs.py:2579
-#: ../DataTypeEditor.py:757
+#: ../PLCOpenEditor.py:1348
+#: ../PLCOpenEditor.py:3134
+#: ../PLCOpenEditor.py:3287
+#: ../PLCOpenEditor.py:3450
+#: ../PLCOpenEditor.py:3594
+#: ../PLCOpenEditor.py:3665
+#: ../PLCOpenEditor.py:3728
+#: ../VariablePanel.py:684
+#: ../dialogs/ConnectionDialog.py:203
+#: ../dialogs/FBDBlockDialog.py:248
+#: ../dialogs/PouNameDialog.py:59
+#: ../dialogs/SFCStepDialog.py:179
+#: ../dialogs/SFCStepNameDialog.py:61
+#: ../DataTypeEditor.py:760
 #, python-format
 msgid "\"%s\" is not a valid identifier!"
 msgstr "\"%s\" n'est pas un identifiant valide !"
 
 #: ../PLCOpenEditor.py:283
-#: ../PLCOpenEditor.py:2493
-#: ../PLCOpenEditor.py:2522
+#: ../PLCOpenEditor.py:2293
+#: ../PLCOpenEditor.py:2313
 #, python-format
 msgid "\"%s\" is used by one or more POUs. It can't be removed!"
 msgstr "Le POU \"%s\" est utilisé par un ou plusieurs POUs. Il ne peut être supprimé !"
 
-#: ../PLCOpenEditor.py:1582
-#: ../PLCOpenEditor.py:3300
-#: ../Viewer.py:246
-#: ../Dialogs.py:257
-#: ../Dialogs.py:894
+#: ../PLCOpenEditor.py:1368
+#: ../PLCOpenEditor.py:3295
+#: ../Viewer.py:248
+#: ../Viewer.py:274
+#: ../TextViewer.py:229
+#: ../dialogs/ConnectionDialog.py:211
+#: ../dialogs/FBDBlockDialog.py:256
 #, python-format
 msgid "\"%s\" pou already exists!"
 msgstr "Le POU \"%s\" existe déjà !"
@@ -217,23 +217,23 @@
 msgid "\"%s\" resource doesn't exist in \"%s\" configuration !!!"
 msgstr "La ressource \"%s\" n'existe pas dans la configuration \"%s\" !!!"
 
-#: ../Dialogs.py:1545
-#: ../Dialogs.py:2528
+#: ../dialogs/SFCStepDialog.py:195
+#: ../dialogs/SFCStepNameDialog.py:77
 #, python-format
 msgid "\"%s\" step already exists!"
 msgstr "L'étape \"%s\" existe déjà !"
 
-#: ../DataTypeEditor.py:697
+#: ../DataTypeEditor.py:700
 #, python-format
 msgid "\"%s\" value already defined!"
 msgstr "La valeur \"%s\" est déjà définie !"
 
-#: ../DataTypeEditor.py:899
+#: ../DataTypeEditor.py:901
 #, python-format
 msgid "\"%s\" value isn't a valid array dimension!"
 msgstr "\"%s\" n'est pas une dimension de tableau valide !"
 
-#: ../DataTypeEditor.py:906
+#: ../DataTypeEditor.py:908
 #, python-format
 msgid ""
 "\"%s\" value isn't a valid array dimension!\n"
@@ -242,93 +242,91 @@
 "\"%s\" n'est pas une dimension de tableau valide !\n"
 "La valeur de droite doit être supérieur à celle de gauche."
 
-#: ../GraphicViewer.py:181
+#: ../PLCControler.py:631
+#, python-format
+msgid "%s \"%s\" can't be pasted as a %s."
+msgstr "Le %s \"%s\" ne peut être collé en tant que %s."
+
+#: ../GraphicViewer.py:180
 #, python-format
 msgid "%s Graphics"
 msgstr "Graphique %s"
 
-#: ../plcopen/plcopen.py:1276
-#: ../plcopen/plcopen.py:1286
-#: ../plcopen/plcopen.py:1296
-#: ../plcopen/plcopen.py:1306
-#: ../plcopen/plcopen.py:1315
+#: ../plcopen/plcopen.py:1291
+#: ../plcopen/plcopen.py:1301
+#: ../plcopen/plcopen.py:1311
+#: ../plcopen/plcopen.py:1321
+#: ../plcopen/plcopen.py:1330
 #, python-format
 msgid "%s body don't have instances!"
 msgstr "Le code d'un %s n'a pas d'instances !"
 
-#: ../plcopen/plcopen.py:1338
-#: ../plcopen/plcopen.py:1345
+#: ../plcopen/plcopen.py:1353
+#: ../plcopen/plcopen.py:1360
 #, python-format
 msgid "%s body don't have text!"
 msgstr "Le code d'un %s n'a pas de texte !"
 
-#: ../PLCOpenEditor.py:5034
-#: ../PLCOpenEditor.py:5036
-#: ../PLCOpenEditor.py:5037
+#: ../PLCOpenEditor.py:4267
+#: ../PLCOpenEditor.py:4269
+#: ../PLCOpenEditor.py:4270
 msgid ",   "
 msgstr ",   "
 
-#: ../PLCOpenEditor.py:3287
-#: ../PLCOpenEditor.py:3450
-#: ../PLCOpenEditor.py:3594
-#: ../Dialogs.py:1802
+#: ../PLCOpenEditor.py:3282
+#: ../PLCOpenEditor.py:3445
+#: ../PLCOpenEditor.py:3589
+#: ../dialogs/SFCTransitionDialog.py:208
 #, python-format
 msgid ", %s"
 msgstr ", %s"
 
-#: ../PLCOpenEditor.py:5032
+#: ../PLCOpenEditor.py:4265
 msgid ". "
 msgstr ". "
 
-#: ../DataTypeEditor.py:772
-#, python-format
-msgid "An element named \"%s\" already exists in this structure!"
-msgstr "Un élément nommé \"%s\" existe déjà dans la structure !"
-
-#: ../PLCOpenEditor.py:1585
-#: ../PLCOpenEditor.py:1627
-#: ../PLCOpenEditor.py:1647
-#: ../PLCOpenEditor.py:3304
-#: ../PLCOpenEditor.py:3682
-#: ../PLCOpenEditor.py:3745
+#: ../PLCOpenEditor.py:1371
+#: ../PLCOpenEditor.py:1413
+#: ../PLCOpenEditor.py:1433
+#: ../PLCOpenEditor.py:3299
+#: ../PLCOpenEditor.py:3677
+#: ../PLCOpenEditor.py:3740
 #, python-format
 msgid "A POU has an element named \"%s\". This could cause a conflict. Do you wish to continue?"
 msgstr "Un POU a un élément nommé \"%s\". Cela peut générer des conflits. Voulez-vous continuer ?"
 
-#: ../PLCOpenEditor.py:1622
-#: ../PLCOpenEditor.py:1642
-#, python-format
-msgid "There is a POU named \"%s\". This could cause a conflict. Do you wish to continue?"
-msgstr "Un POU a pour nom \"%s\". Cela peut générer des conflits. Voulez-vous continuer ?"
-
-#: ../PLCOpenEditor.py:1598
-#: ../PLCOpenEditor.py:1609
-#: ../PLCOpenEditor.py:3463
-#: ../PLCOpenEditor.py:3607
-#: ../PLCOpenEditor.py:3678
-#: ../PLCOpenEditor.py:3741
-#: ../PLCOpenEditor.py:4456
-#: ../Dialogs.py:1537
-#: ../Dialogs.py:2520
-#: ../Dialogs.py:2587
+#: ../PLCOpenEditor.py:1384
+#: ../PLCOpenEditor.py:1395
+#: ../PLCOpenEditor.py:3458
+#: ../PLCOpenEditor.py:3602
+#: ../PLCOpenEditor.py:3673
+#: ../PLCOpenEditor.py:3736
+#: ../VariablePanel.py:694
+#: ../dialogs/PouNameDialog.py:67
+#: ../dialogs/SFCStepDialog.py:187
+#: ../dialogs/SFCStepNameDialog.py:69
 #, python-format
 msgid "A POU named \"%s\" already exists!"
 msgstr "Un POU nommé \"%s\" existe déjà !"
 
-#: ../PLCOpenEditor.py:1600
-#: ../PLCOpenEditor.py:1611
-#: ../PLCOpenEditor.py:4461
-#: ../Dialogs.py:1541
-#: ../Dialogs.py:2524
+#: ../VariablePanel.py:1173
+msgid "A location must be selected!"
+msgstr "Une adresse doit être sélectionné !"
+
+#: ../PLCOpenEditor.py:1386
+#: ../PLCOpenEditor.py:1397
+#: ../VariablePanel.py:699
+#: ../dialogs/SFCStepDialog.py:191
+#: ../dialogs/SFCStepNameDialog.py:73
 #, python-format
 msgid "A variable with \"%s\" as name already exists in this pou!"
 msgstr "Une variable nommée \"%s\" existe déjà dans ce POU !"
 
-#: ../PLCOpenEditor.py:447
+#: ../PLCOpenEditor.py:2485
 msgid "About"
 msgstr "A propos"
 
-#: ../PLCOpenEditor.py:2616
+#: ../PLCOpenEditor.py:2388
 msgid "About PLCOpenEditor"
 msgstr "A propos de PLCOpenEditor"
 
@@ -336,86 +334,86 @@
 msgid "Absolute number"
 msgstr "Nombre absolu"
 
-#: ../Dialogs.py:1482
-#: ../Dialogs.py:2109
+#: ../dialogs/ActionBlockDialog.py:37
+#: ../dialogs/SFCStepDialog.py:132
 msgid "Action"
 msgstr "Action"
 
-#: ../PLCOpenEditor.py:3583
+#: ../PLCOpenEditor.py:3578
 msgid "Action Name"
 msgstr "Nom de l'action"
 
-#: ../PLCOpenEditor.py:3550
+#: ../PLCOpenEditor.py:3545
 msgid "Action Name:"
 msgstr "Nom de l'action :"
 
-#: ../plcopen/plcopen.py:1073
+#: ../plcopen/plcopen.py:1088
 #, python-format
 msgid "Action with name %s doesn't exist!"
 msgstr "L'action nommée %s n'existe pas !"
 
-#: ../PLCControler.py:83
+#: ../PLCControler.py:90
 msgid "Actions"
 msgstr "Actions"
 
-#: ../Dialogs.py:2332
+#: ../dialogs/ActionBlockDialog.py:260
 msgid "Actions:"
 msgstr "Actions :"
 
-#: ../PLCOpenEditor.py:4246
-#: ../Dialogs.py:2346
+#: ../VariablePanel.py:456
+#: ../dialogs/ActionBlockDialog.py:274
 #: ../DataTypeEditor.py:539
 msgid "Add"
 msgstr "Ajouter"
 
-#: ../PLCOpenEditor.py:1802
-#: ../PLCOpenEditor.py:1875
+#: ../PLCOpenEditor.py:1589
+#: ../PLCOpenEditor.py:1675
 msgid "Add Action"
 msgstr "Ajouter une action"
 
-#: ../PLCOpenEditor.py:1858
+#: ../PLCOpenEditor.py:1658
 msgid "Add Configuration"
 msgstr "Ajouter une configuration"
 
-#: ../PLCOpenEditor.py:1846
+#: ../PLCOpenEditor.py:1638
 msgid "Add DataType"
 msgstr "Ajouter un type de donnée"
 
-#: ../Viewer.py:402
+#: ../Viewer.py:436
 msgid "Add Divergence Branch"
 msgstr "Ajouter une branche à la divergence"
 
-#: ../PLCOpenEditor.py:386
+#: ../PLCOpenEditor.py:328
 msgid "Add Element"
 msgstr "Ajouter un élément"
 
-#: ../RessourceEditor.py:409
+#: ../RessourceEditor.py:412
 msgid "Add Instance"
 msgstr "Ajouter une instance"
 
-#: ../PLCOpenEditor.py:1852
+#: ../PLCOpenEditor.py:1645
 msgid "Add Pou"
 msgstr "Ajouter un POU"
 
-#: ../PLCOpenEditor.py:1829
-#: ../PLCOpenEditor.py:1886
+#: ../PLCOpenEditor.py:1621
+#: ../PLCOpenEditor.py:1686
 msgid "Add Resource"
 msgstr "Ajouter une resource"
 
-#: ../RessourceEditor.py:373
+#: ../RessourceEditor.py:376
 msgid "Add Task"
 msgstr "Ajouter une tâche"
 
-#: ../PLCOpenEditor.py:1799
-#: ../PLCOpenEditor.py:1864
+#: ../PLCOpenEditor.py:1586
+#: ../PLCOpenEditor.py:1664
 msgid "Add Transition"
 msgstr "Ajouter une transition"
 
-#: ../Viewer.py:397
+#: ../Viewer.py:431
 msgid "Add Wire Segment"
 msgstr "Ajouter un segment au fil"
 
-#: ../PLCOpenEditor.py:2361
+#: ../PLCOpenEditor.py:2164
 msgid "Add a new data type"
 msgstr "Ajouter un nouveau type de données"
 
@@ -423,7 +421,7 @@
 msgid "Add a new initial step"
 msgstr "Ajouter une nouvelle étape initiale"
 
-#: ../Viewer.py:1971
+#: ../Viewer.py:1995
 #: ../SFCViewer.py:698
 msgid "Add a new jump"
 msgstr "Ajouter un nouveau renvoi"
@@ -432,11 +430,11 @@
 msgid "Add a new step"
 msgstr "Ajouter une nouvelle étape"
 
-#: ../PLCOpenEditor.py:2418
+#: ../PLCOpenEditor.py:2208
 msgid "Add new configuration"
 msgstr "Ajouter une nouvelle configuration"
 
-#: ../PLCOpenEditor.py:2433
+#: ../PLCOpenEditor.py:2219
 msgid "Add new resource"
 msgstr "Ajouter une nouvelle resource"
 
@@ -448,14 +446,21 @@
 msgid "Additional function blocks"
 msgstr "Blocs fonctionnels additionnels"
 
-#: ../Viewer.py:411
+#: ../Viewer.py:445
 msgid "Alignment"
 msgstr "Alignement"
 
-#: ../PLCOpenEditor.py:3860
+#: ../VariablePanel.py:62
+#: ../VariablePanel.py:990
+#: ../VariablePanel.py:1107
 msgid "All"
 msgstr "Toutes"
 
+#: ../DataTypeEditor.py:775
+#, python-format
+msgid "An element named \"%s\" already exists in this structure!"
+msgstr "Un élément nommé \"%s\" existe déjà dans la structure !"
+
 #: ../plcopen/iec_std.csv:31
 msgid "Arc cosine"
 msgstr "Arc cosinus"
@@ -480,15 +485,15 @@
 msgid "Assignment"
 msgstr "Assignation"
 
-#: ../Dialogs.py:648
+#: ../dialogs/FBDVariableDialog.py:264
 msgid "At least a variable or an expression must be selected!"
 msgstr "Au moins une variable ou une expression doit être sélectionné !"
 
-#: ../PLCOpenEditor.py:2943
+#: ../PLCOpenEditor.py:2938
 msgid "Author"
 msgstr "Auteur"
 
-#: ../PLCOpenEditor.py:2928
+#: ../PLCOpenEditor.py:2923
 msgid "Author Name (optional):"
 msgstr "Nom de l'auteur (optionel) :"
 
@@ -498,8 +503,8 @@
 msgid "Base Type:"
 msgstr "Type de base :"
 
-#: ../PLCOpenEditor.py:4493
-#: ../DataTypeEditor.py:798
+#: ../VariablePanel.py:732
+#: ../DataTypeEditor.py:801
 msgid "Base Types"
 msgstr "Types de base"
 
@@ -531,53 +536,57 @@
 msgid "Bitwise inverting"
 msgstr "Inversion bit à bit"
 
-#: ../Dialogs.py:114
+#: ../dialogs/FBDBlockDialog.py:113
 msgid "Block Properties"
 msgstr "Propriétés du bloc"
 
-#: ../PLCOpenEditor.py:2079
-#: ../Dialogs.py:269
+#: ../PLCOpenEditor.py:1883
+#: ../dialogs/FBDBlockDialog.py:268
 msgid "Block Types"
 msgstr "Types de blocs"
 
-#: ../Viewer.py:369
+#: ../Viewer.py:403
 msgid "Bottom"
 msgstr "Bas"
 
-#: ../PLCOpenEditor.py:2033
+#: ../VariablePanel.py:1049
+msgid "Browse Locations"
+msgstr "Naviger dans les adresses"
+
+#: ../PLCOpenEditor.py:1838
 msgid "CSV Log"
 msgstr "Log CVS"
 
-#: ../PLCOpenEditor.py:4074
+#: ../plcopen/plcopen.py:1233
+#: ../plcopen/plcopen.py:1247
+#: ../plcopen/plcopen.py:1268
+#: ../plcopen/plcopen.py:1284
+msgid "Can only generate execution order on FBD networks!"
+msgstr "L'ordre d'exécution ne peut être généré que dans les FBD !"
+
+#: ../VariablePanel.py:284
 msgid "Can only give a location to local or global variables"
 msgstr "Une adresse ne peut être affecté qu'à des variables locales ou globales"
 
-#: ../plcopen/plcopen.py:1218
-#: ../plcopen/plcopen.py:1232
-#: ../plcopen/plcopen.py:1253
-#: ../plcopen/plcopen.py:1269
-msgid "Can only generate execution order on FBD networks!"
-msgstr "L'ordre d'exécution ne peut être généré que dans les FBD !"
-
-#: ../PLCOpenEditor.py:4072
+#: ../PLCOpenEditor.py:2623
+#, python-format
+msgid "Can't generate program to file %s!"
+msgstr "Le programme n'a pu être généré dans le fichier \"%s\" !"
+
+#: ../VariablePanel.py:282
 msgid "Can't give a location to a function block instance"
 msgstr "Une adresse ne peut être affectée une instance de Function Block"
 
-#: ../PLCOpenEditor.py:1094
-#, python-format
-msgid "Can't generate program to file %s!"
-msgstr "Le programme n'a pu être généré dans le fichier \"%s\" !"
-
-#: ../PLCOpenEditor.py:1126
+#: ../PLCOpenEditor.py:2654
 #, python-format
 msgid "Can't save project to file %s!"
 msgstr "Le projet n'a pu être sauvé dans le fichier \"%s\" !"
 
-#: ../Viewer.py:360
+#: ../Viewer.py:394
 msgid "Center"
 msgstr "Centre"
 
-#: ../PLCOpenEditor.py:1818
+#: ../PLCOpenEditor.py:1610
 msgid "Change POU Type To"
 msgstr "Changer le type du POU pour"
 
@@ -585,46 +594,42 @@
 msgid "Character string"
 msgstr "Chaîne de caractères"
 
-#: ../PLCOpenEditor.py:1033
-#: ../PLCOpenEditor.py:1084
-#: ../PLCOpenEditor.py:1120
+#: ../PLCOpenEditor.py:2589
+#: ../PLCOpenEditor.py:2613
+#: ../PLCOpenEditor.py:2648
 msgid "Choose a file"
 msgstr "Choisissez un fichier"
 
-#: ../PLCOpenEditor.py:3850
-#: ../PLCOpenEditor.py:3851
+#: ../VariablePanel.py:52
+#: ../VariablePanel.py:53
 msgid "Class"
 msgstr "Classe"
 
-#: ../PLCOpenEditor.py:4238
+#: ../VariablePanel.py:448
 msgid "Class Filter:"
 msgstr "Filtre de classe :"
 
-#: ../Dialogs.py:508
+#: ../dialogs/FBDVariableDialog.py:124
 msgid "Class:"
 msgstr "Classe :"
 
-#: ../PLCOpenEditor.py:425
+#: ../PLCOpenEditor.py:367
 msgid "Clear Errors\tCTRL+K"
 msgstr "Effacer les erreurs\tCTRL+K"
 
-#: ../Viewer.py:407
+#: ../Viewer.py:441
 msgid "Clear Execution Order"
 msgstr "Effacer l'ordre d'exécution"
 
-#: ../PLCOpenEditor.py:346
-msgid "Close\tCTRL+Q"
-msgstr "Fermer\tCTRL+Q"
-
-#: ../PLCOpenEditor.py:963
+#: ../PLCOpenEditor.py:873
 msgid "Close Application"
 msgstr "Fermer l'application"
 
-#: ../PLCOpenEditor.py:319
+#: ../PLCOpenEditor.py:2441
 msgid "Close Project"
 msgstr "Fermer le projet"
 
-#: ../PLCOpenEditor.py:316
+#: ../PLCOpenEditor.py:2439
 msgid "Close Tab\tCTRL+W"
 msgstr "Fermer l'onglet\tCTRL+W"
 
@@ -632,11 +637,11 @@
 msgid "Comment"
 msgstr "Commentaire"
 
-#: ../PLCOpenEditor.py:2912
+#: ../PLCOpenEditor.py:2907
 msgid "Company Name (required):"
 msgstr "Nom de l'entreprise (obligatoire) :"
 
-#: ../PLCOpenEditor.py:2920
+#: ../PLCOpenEditor.py:2915
 msgid "Company URL (optional):"
 msgstr "URL de l'entreprise (optionel) :"
 
@@ -648,40 +653,40 @@
 msgid "Concatenation"
 msgstr "Concaténation"
 
-#: ../PLCOpenEditor.py:396
+#: ../PLCOpenEditor.py:338
 msgid "Configuration"
 msgstr "Configuration"
 
-#: ../PLCControler.py:84
+#: ../PLCControler.py:91
 msgid "Configurations"
 msgstr "Configurations"
 
-#: ../Dialogs.py:1737
+#: ../dialogs/SFCTransitionDialog.py:143
 msgid "Connection"
 msgstr "Connexion"
 
-#: ../Dialogs.py:784
+#: ../dialogs/ConnectionDialog.py:101
 msgid "Connection Properties"
 msgstr "Propriétés de la connexion"
 
-#: ../Dialogs.py:800
+#: ../dialogs/ConnectionDialog.py:117
 msgid "Connector"
 msgstr "Connecteur"
 
-#: ../Dialogs.py:1459
+#: ../dialogs/SFCStepDialog.py:109
 msgid "Connectors:"
 msgstr "Connecteurs :"
 
-#: ../PLCOpenEditor.py:3850
-#: ../PLCOpenEditor.py:3851
+#: ../VariablePanel.py:52
+#: ../VariablePanel.py:53
 msgid "Constant"
 msgstr "Constante"
 
-#: ../PLCOpenEditor.py:3002
+#: ../PLCOpenEditor.py:2997
 msgid "Content Description (optional):"
 msgstr "Description du contenu (optionel) :"
 
-#: ../Dialogs.py:806
+#: ../dialogs/ConnectionDialog.py:123
 msgid "Continuation"
 msgstr "Prolongement"
 
@@ -701,7 +706,11 @@
 msgid "Conversion to time-of-day"
 msgstr "Conversion en heure de la journée"
 
-#: ../PLCOpenEditor.py:381
+#: ../PLCOpenEditor.py:1597
+msgid "Copy"
+msgstr "Copier"
+
+#: ../PLCOpenEditor.py:323
 msgid "Copy\tCTRL+C"
 msgstr "Copier\tCtrl+C"
 
@@ -709,103 +718,108 @@
 msgid "Cosine"
 msgstr "Cosinus"
 
-#: ../PLCOpenEditor.py:3225
+#: ../PLCControler.py:617
+#: ../PLCControler.py:652
+msgid "Couldn't paste non-POU object."
+msgstr "Impossible de coller autre chose qu'un POU."
+
+#: ../PLCOpenEditor.py:3220
 msgid "Create a new POU"
 msgstr "Créer un nouveau POU"
 
-#: ../PLCOpenEditor.py:1806
-#: ../PLCOpenEditor.py:2463
+#: ../PLCOpenEditor.py:1594
+#: ../PLCOpenEditor.py:2240
 msgid "Create a new POU from"
 msgstr "Créer un nouveau POU à partir de"
 
-#: ../PLCOpenEditor.py:3546
+#: ../PLCOpenEditor.py:3541
 msgid "Create a new action"
 msgstr "Créer une nouvelle action"
 
-#: ../PLCOpenEditor.py:214
+#: ../PLCOpenEditor.py:215
 msgid "Create a new action block"
 msgstr "Créer un nouveau bloc d'actions"
 
-#: ../PLCOpenEditor.py:169
-#: ../PLCOpenEditor.py:196
-#: ../PLCOpenEditor.py:226
+#: ../PLCOpenEditor.py:170
+#: ../PLCOpenEditor.py:197
+#: ../PLCOpenEditor.py:227
 msgid "Create a new block"
 msgstr "Créer un nouveau bloc"
 
-#: ../PLCOpenEditor.py:190
+#: ../PLCOpenEditor.py:191
 msgid "Create a new branch"
 msgstr "Créer une nouvelle branche"
 
-#: ../PLCOpenEditor.py:184
+#: ../PLCOpenEditor.py:185
 msgid "Create a new coil"
 msgstr "Créer un nouveau relai"
 
-#: ../PLCOpenEditor.py:163
-#: ../PLCOpenEditor.py:175
-#: ../PLCOpenEditor.py:202
+#: ../PLCOpenEditor.py:164
+#: ../PLCOpenEditor.py:176
+#: ../PLCOpenEditor.py:203
 msgid "Create a new comment"
 msgstr "Créer un nouveau copmmentaire"
 
-#: ../PLCOpenEditor.py:172
-#: ../PLCOpenEditor.py:199
-#: ../PLCOpenEditor.py:229
+#: ../PLCOpenEditor.py:173
+#: ../PLCOpenEditor.py:200
+#: ../PLCOpenEditor.py:230
 msgid "Create a new connection"
 msgstr "Créer une nouvelle connexion"
 
-#: ../PLCOpenEditor.py:187
-#: ../PLCOpenEditor.py:235
+#: ../PLCOpenEditor.py:188
+#: ../PLCOpenEditor.py:236
 msgid "Create a new contact"
 msgstr "Créer un nouveau contact"
 
-#: ../PLCOpenEditor.py:217
+#: ../PLCOpenEditor.py:218
 msgid "Create a new divergence"
 msgstr "Créer une nouvelle divergence"
 
-#: ../Dialogs.py:1976
+#: ../dialogs/SFCDivergenceDialog.py:103
 msgid "Create a new divergence or convergence"
 msgstr "Créer une nouvelle divergence ou convergence"
 
-#: ../PLCOpenEditor.py:205
+#: ../PLCOpenEditor.py:206
 msgid "Create a new initial step"
 msgstr "Créer une nouvelle étape initiale"
 
-#: ../PLCOpenEditor.py:220
+#: ../PLCOpenEditor.py:221
 msgid "Create a new jump"
 msgstr "Créer un nouveau renvoi"
 
-#: ../PLCOpenEditor.py:178
-#: ../PLCOpenEditor.py:232
+#: ../PLCOpenEditor.py:179
+#: ../PLCOpenEditor.py:233
 msgid "Create a new power rail"
 msgstr "Créer une nouvelle barre d'alimentation"
 
-#: ../PLCOpenEditor.py:181
+#: ../PLCOpenEditor.py:182
 msgid "Create a new rung"
 msgstr "Créer un nouvel échelon"
 
-#: ../PLCOpenEditor.py:208
+#: ../PLCOpenEditor.py:209
 msgid "Create a new step"
 msgstr "Créer une nouvelle étape"
 
-#: ../PLCOpenEditor.py:211
-#: ../PLCOpenEditor.py:3402
+#: ../PLCOpenEditor.py:212
+#: ../PLCOpenEditor.py:3397
 msgid "Create a new transition"
 msgstr "Créer une nouvelle transition"
 
-#: ../PLCOpenEditor.py:166
-#: ../PLCOpenEditor.py:193
-#: ../PLCOpenEditor.py:223
+#: ../PLCOpenEditor.py:167
+#: ../PLCOpenEditor.py:194
+#: ../PLCOpenEditor.py:224
 msgid "Create a new variable"
 msgstr "Créer une nouvelle variable"
 
-#: ../PLCOpenEditor.py:379
+#: ../PLCOpenEditor.py:321
 msgid "Cut\tCTRL+X"
 msgstr "Couper\tCTRL+X"
 
-#: ../PLCOpenEditor.py:388
+#: ../PLCOpenEditor.py:330
 msgid "Data Type"
 msgstr "Type de donnée"
 
-#: ../PLCControler.py:83
+#: ../PLCControler.py:90
 msgid "Data Types"
 msgstr "Types de données"
 
@@ -826,31 +840,40 @@
 msgid "Date subtraction"
 msgstr "Soustraction de date"
 
-#: ../PLCOpenEditor.py:400
-#: ../PLCOpenEditor.py:1823
-#: ../PLCOpenEditor.py:1832
-#: ../PLCOpenEditor.py:1838
-#: ../PLCOpenEditor.py:4251
-#: ../PLCOpenEditor.py:4864
-#: ../Viewer.py:416
-#: ../Dialogs.py:2351
+#: ../Viewer.py:2848
+#, python-format
+msgid "Debug: %s"
+msgstr "Déboggage : %s"
+
+#: ../PLCOpenEditor.py:618
+msgid "Debugger"
+msgstr "Débuggueur"
+
+#: ../PLCOpenEditor.py:342
+#: ../PLCOpenEditor.py:1615
+#: ../PLCOpenEditor.py:1624
+#: ../PLCOpenEditor.py:1630
+#: ../PLCOpenEditor.py:4091
+#: ../Viewer.py:450
+#: ../VariablePanel.py:461
+#: ../dialogs/ActionBlockDialog.py:279
 #: ../DataTypeEditor.py:544
 msgid "Delete"
 msgstr "Supprimer"
 
-#: ../Viewer.py:404
+#: ../Viewer.py:438
 msgid "Delete Divergence Branch"
 msgstr "Supprimer une branche de divergence"
 
-#: ../RessourceEditor.py:414
+#: ../RessourceEditor.py:417
 msgid "Delete Instance"
 msgstr "Supprimer une instance"
 
-#: ../RessourceEditor.py:378
+#: ../RessourceEditor.py:381
 msgid "Delete Task"
 msgstr "Supprimer une tâche"
 
-#: ../Viewer.py:399
+#: ../Viewer.py:433
 msgid "Delete Wire Segment"
 msgstr "Supprimer un segment de fil"
 
@@ -879,6 +902,10 @@
 msgid "Dimensions:"
 msgstr "Dimensions :"
 
+#: ../VariablePanel.py:1066
+msgid "Direction:"
+msgstr "Direction :"
+
 #: ../DataTypeEditor.py:236
 msgid "Directly"
 msgstr "Direct"
@@ -891,7 +918,12 @@
 msgid "Division"
 msgstr "Division"
 
-#: ../PLCOpenEditor.py:1088
+#: ../VariablePanel.py:52
+#: ../VariablePanel.py:53
+msgid "Documentation"
+msgstr "Documentation"
+
+#: ../PLCOpenEditor.py:2617
 msgid "Done"
 msgstr "Terminé"
 
@@ -903,7 +935,7 @@
 "Compteur décrémental\n"
 "Le compteur décrémental peut être utilisé pour signaler lorsque le compteur atteint zéro en partant d'une valeur prédéfinie."
 
-#: ../Dialogs.py:2105
+#: ../dialogs/ActionBlockDialog.py:33
 msgid "Duration"
 msgstr "Durée"
 
@@ -911,30 +943,30 @@
 msgid "Edit"
 msgstr "Editer"
 
-#: ../Viewer.py:414
+#: ../Viewer.py:448
 msgid "Edit Block"
 msgstr "Editer le block"
 
-#: ../Dialogs.py:1098
+#: ../dialogs/LDElementDialog.py:193
 msgid "Edit Coil Values"
 msgstr "Editer les valeurs du relai"
 
-#: ../Dialogs.py:1093
+#: ../dialogs/LDElementDialog.py:188
 msgid "Edit Contact Values"
 msgstr "Editer les valeurs du contact"
 
-#: ../Dialogs.py:1451
+#: ../dialogs/SFCStepDialog.py:101
 msgid "Edit Step"
 msgstr "Editer l'étape"
 
-#: ../Dialogs.py:2328
+#: ../dialogs/ActionBlockDialog.py:256
 msgid "Edit action block properties"
 msgstr "Editer les propriétés du block d'actions"
 
-#: ../Viewer.py:1796
-#: ../Viewer.py:1798
-#: ../Viewer.py:2297
-#: ../Viewer.py:2299
+#: ../Viewer.py:1820
+#: ../Viewer.py:1822
+#: ../Viewer.py:2321
+#: ../Viewer.py:2323
 msgid "Edit comment"
 msgstr "Editer le commentaire"
 
@@ -943,7 +975,7 @@
 msgid "Edit item"
 msgstr "Editer l'élément"
 
-#: ../Viewer.py:2262
+#: ../Viewer.py:2286
 msgid "Edit jump target"
 msgstr "Editer la cible du renvoi"
 
@@ -951,7 +983,7 @@
 msgid "Edit step name"
 msgstr "Editer le nom de l'étape"
 
-#: ../Dialogs.py:1698
+#: ../dialogs/SFCTransitionDialog.py:104
 msgid "Edit transition"
 msgstr "Editer la transition"
 
@@ -959,7 +991,7 @@
 msgid "Elements :"
 msgstr "Eléments :"
 
-#: ../PLCOpenEditor.py:376
+#: ../PLCOpenEditor.py:318
 msgid "Enable Undo/Redo"
 msgstr "Activer Défaire/Refaire"
 
@@ -971,102 +1003,102 @@
 msgid "Equal to"
 msgstr "Egal à"
 
-#: ../PLCOpenEditor.py:955
-#: ../PLCOpenEditor.py:1095
-#: ../PLCOpenEditor.py:1100
-#: ../PLCOpenEditor.py:1585
-#: ../PLCOpenEditor.py:1622
-#: ../PLCOpenEditor.py:1627
-#: ../PLCOpenEditor.py:1642
-#: ../PLCOpenEditor.py:1647
-#: ../PLCOpenEditor.py:2493
-#: ../PLCOpenEditor.py:2522
-#: ../PLCOpenEditor.py:3043
-#: ../PLCOpenEditor.py:3135
-#: ../PLCOpenEditor.py:3139
-#: ../PLCOpenEditor.py:3143
-#: ../PLCOpenEditor.py:3147
-#: ../PLCOpenEditor.py:3288
-#: ../PLCOpenEditor.py:3292
-#: ../PLCOpenEditor.py:3296
-#: ../PLCOpenEditor.py:3300
-#: ../PLCOpenEditor.py:3451
-#: ../PLCOpenEditor.py:3455
-#: ../PLCOpenEditor.py:3459
-#: ../PLCOpenEditor.py:3463
-#: ../PLCOpenEditor.py:3467
-#: ../PLCOpenEditor.py:3595
-#: ../PLCOpenEditor.py:3599
-#: ../PLCOpenEditor.py:3603
-#: ../PLCOpenEditor.py:3607
-#: ../PLCOpenEditor.py:3611
-#: ../PLCOpenEditor.py:3666
-#: ../PLCOpenEditor.py:3670
-#: ../PLCOpenEditor.py:3674
-#: ../PLCOpenEditor.py:3678
-#: ../PLCOpenEditor.py:3729
-#: ../PLCOpenEditor.py:3733
-#: ../PLCOpenEditor.py:3737
-#: ../PLCOpenEditor.py:3741
-#: ../PLCOpenEditor.py:4121
-#: ../PLCOpenEditor.py:4446
-#: ../PLCOpenEditor.py:4451
-#: ../PLCOpenEditor.py:4456
-#: ../PLCOpenEditor.py:4461
-#: ../PLCOpenEditor.py:4797
-#: ../PLCOpenEditor.py:5059
-#: ../PLCOpenEditor.py:5069
-#: ../Viewer.py:335
-#: ../TextViewer.py:224
+#: ../PLCOpenEditor.py:865
+#: ../PLCOpenEditor.py:1371
+#: ../PLCOpenEditor.py:1408
+#: ../PLCOpenEditor.py:1413
+#: ../PLCOpenEditor.py:1428
+#: ../PLCOpenEditor.py:1433
+#: ../PLCOpenEditor.py:2267
+#: ../PLCOpenEditor.py:2624
+#: ../PLCOpenEditor.py:2629
+#: ../PLCOpenEditor.py:3038
+#: ../PLCOpenEditor.py:3130
+#: ../PLCOpenEditor.py:3134
+#: ../PLCOpenEditor.py:3138
+#: ../PLCOpenEditor.py:3142
+#: ../PLCOpenEditor.py:3283
+#: ../PLCOpenEditor.py:3287
+#: ../PLCOpenEditor.py:3291
+#: ../PLCOpenEditor.py:3295
+#: ../PLCOpenEditor.py:3446
+#: ../PLCOpenEditor.py:3450
+#: ../PLCOpenEditor.py:3454
+#: ../PLCOpenEditor.py:3458
+#: ../PLCOpenEditor.py:3462
+#: ../PLCOpenEditor.py:3590
+#: ../PLCOpenEditor.py:3594
+#: ../PLCOpenEditor.py:3598
+#: ../PLCOpenEditor.py:3602
+#: ../PLCOpenEditor.py:3606
+#: ../PLCOpenEditor.py:3661
+#: ../PLCOpenEditor.py:3665
+#: ../PLCOpenEditor.py:3669
+#: ../PLCOpenEditor.py:3673
+#: ../PLCOpenEditor.py:3724
+#: ../PLCOpenEditor.py:3728
+#: ../PLCOpenEditor.py:3732
+#: ../PLCOpenEditor.py:3736
+#: ../PLCOpenEditor.py:4024
+#: ../PLCOpenEditor.py:4292
+#: ../PLCOpenEditor.py:4302
+#: ../Viewer.py:369
+#: ../TextViewer.py:250
 #: ../LDViewer.py:628
 #: ../LDViewer.py:850
 #: ../LDViewer.py:854
-#: ../Dialogs.py:241
-#: ../Dialogs.py:245
-#: ../Dialogs.py:249
-#: ../Dialogs.py:253
-#: ../Dialogs.py:257
-#: ../Dialogs.py:261
-#: ../Dialogs.py:648
-#: ../Dialogs.py:652
-#: ../Dialogs.py:882
-#: ../Dialogs.py:886
-#: ../Dialogs.py:890
-#: ../Dialogs.py:894
-#: ../Dialogs.py:898
-#: ../Dialogs.py:1525
-#: ../Dialogs.py:1529
-#: ../Dialogs.py:1533
-#: ../Dialogs.py:1537
-#: ../Dialogs.py:1541
-#: ../Dialogs.py:1545
-#: ../Dialogs.py:1803
-#: ../Dialogs.py:2508
-#: ../Dialogs.py:2512
-#: ../Dialogs.py:2516
-#: ../Dialogs.py:2520
-#: ../Dialogs.py:2524
-#: ../Dialogs.py:2528
-#: ../Dialogs.py:2575
-#: ../Dialogs.py:2579
-#: ../Dialogs.py:2583
-#: ../Dialogs.py:2587
-#: ../DataTypeEditor.py:697
-#: ../DataTypeEditor.py:702
-#: ../DataTypeEditor.py:757
-#: ../DataTypeEditor.py:762
-#: ../DataTypeEditor.py:772
-#: ../DataTypeEditor.py:899
-#: ../DataTypeEditor.py:906
+#: ../VariablePanel.py:331
+#: ../VariablePanel.py:684
+#: ../VariablePanel.py:689
+#: ../VariablePanel.py:694
+#: ../VariablePanel.py:699
+#: ../VariablePanel.py:1173
+#: ../dialogs/ConnectionDialog.py:199
+#: ../dialogs/ConnectionDialog.py:203
+#: ../dialogs/ConnectionDialog.py:207
+#: ../dialogs/ConnectionDialog.py:211
+#: ../dialogs/ConnectionDialog.py:215
+#: ../dialogs/FBDBlockDialog.py:240
+#: ../dialogs/FBDBlockDialog.py:244
+#: ../dialogs/FBDBlockDialog.py:248
+#: ../dialogs/FBDBlockDialog.py:252
+#: ../dialogs/FBDBlockDialog.py:256
+#: ../dialogs/FBDBlockDialog.py:260
+#: ../dialogs/FBDVariableDialog.py:264
+#: ../dialogs/FBDVariableDialog.py:268
+#: ../dialogs/PouNameDialog.py:55
+#: ../dialogs/PouNameDialog.py:59
+#: ../dialogs/PouNameDialog.py:63
+#: ../dialogs/PouNameDialog.py:67
+#: ../dialogs/SFCStepDialog.py:175
+#: ../dialogs/SFCStepDialog.py:179
+#: ../dialogs/SFCStepDialog.py:183
+#: ../dialogs/SFCStepDialog.py:187
+#: ../dialogs/SFCStepDialog.py:191
+#: ../dialogs/SFCStepDialog.py:195
+#: ../dialogs/SFCStepNameDialog.py:57
+#: ../dialogs/SFCStepNameDialog.py:61
+#: ../dialogs/SFCStepNameDialog.py:65
+#: ../dialogs/SFCStepNameDialog.py:69
+#: ../dialogs/SFCStepNameDialog.py:73
+#: ../dialogs/SFCStepNameDialog.py:77
+#: ../dialogs/SFCTransitionDialog.py:209
+#: ../DataTypeEditor.py:700
+#: ../DataTypeEditor.py:705
+#: ../DataTypeEditor.py:760
+#: ../DataTypeEditor.py:765
+#: ../DataTypeEditor.py:775
+#: ../DataTypeEditor.py:901
+#: ../DataTypeEditor.py:908
 msgid "Error"
 msgstr "Erreur"
 
-#: ../Dialogs.py:134
+#: ../dialogs/FBDBlockDialog.py:133
 msgid "Execution Control:"
 msgstr "Contrôle d'exécution :"
 
-#: ../Dialogs.py:130
-#: ../Dialogs.py:516
+#: ../dialogs/FBDBlockDialog.py:129
+#: ../dialogs/FBDVariableDialog.py:132
 msgid "Execution Order:"
 msgstr "Ordre d'exécution :"
 
@@ -1078,24 +1110,24 @@
 msgid "Exponentiation"
 msgstr "Exponentiel"
 
-#: ../Dialogs.py:512
+#: ../dialogs/FBDVariableDialog.py:128
 msgid "Expression:"
 msgstr "Expression :"
 
-#: ../PLCOpenEditor.py:3862
+#: ../VariablePanel.py:64
 msgid "External"
 msgstr "Externe"
 
-#: ../PLCOpenEditor.py:2980
-#: ../PLCOpenEditor.py:3170
-#: ../PLCOpenEditor.py:3180
-#: ../PLCOpenEditor.py:3359
-#: ../PLCOpenEditor.py:3503
+#: ../PLCOpenEditor.py:2975
+#: ../PLCOpenEditor.py:3165
+#: ../PLCOpenEditor.py:3175
+#: ../PLCOpenEditor.py:3354
+#: ../PLCOpenEditor.py:3498
 msgid "FBD"
 msgstr "FBD"
 
-#: ../Viewer.py:394
-#: ../Dialogs.py:1060
+#: ../Viewer.py:428
+#: ../dialogs/LDElementDialog.py:155
 msgid "Falling Edge"
 msgstr "Front descendant"
 
@@ -1107,7 +1139,7 @@
 "Détecteur de front descendant\n"
 "La sortie produit une impulsion unique lorsqu'un front descendant est détecté."
 
-#: ../PLCOpenEditor.py:303
+#: ../PLCOpenEditor.py:304
 msgid "File"
 msgstr "Fichier"
 
@@ -1115,71 +1147,71 @@
 msgid "Find position"
 msgstr "Trouver la position"
 
-#: ../PLCOpenEditor.py:3043
-#: ../PLCOpenEditor.py:3288
-#: ../PLCOpenEditor.py:3451
-#: ../PLCOpenEditor.py:3595
-#: ../Dialogs.py:1803
+#: ../PLCOpenEditor.py:3038
+#: ../PLCOpenEditor.py:3283
+#: ../PLCOpenEditor.py:3446
+#: ../PLCOpenEditor.py:3590
+#: ../dialogs/SFCTransitionDialog.py:209
 #, python-format
 msgid "Form isn't complete. %s must be filled!"
 msgstr "Le formulaire est incomplet. %s doit être complété !"
 
-#: ../Dialogs.py:245
-#: ../Dialogs.py:882
+#: ../dialogs/ConnectionDialog.py:199
+#: ../dialogs/FBDBlockDialog.py:244
 msgid "Form isn't complete. Name must be filled!"
 msgstr "Le formulaire est incomplet. Le nom doit être complété !"
 
-#: ../Dialogs.py:241
+#: ../dialogs/FBDBlockDialog.py:240
 msgid "Form isn't complete. Valid block type must be selected!"
 msgstr "Le formulaire est incomplet. Un type de bloc valide doit être sélectionné !"
 
-#: ../PLCOpenEditor.py:390
+#: ../PLCOpenEditor.py:332
 msgid "Function"
 msgstr "Fonction"
 
-#: ../PLCOpenEditor.py:392
-#: ../PLCOpenEditor.py:1813
+#: ../PLCOpenEditor.py:334
+#: ../PLCOpenEditor.py:1605
 msgid "Function Block"
 msgstr "Bloc fonctionnel"
 
-#: ../PLCOpenEditor.py:4508
+#: ../VariablePanel.py:758
 msgid "Function Block Types"
 msgstr "Types de blocs fonctionnels"
 
-#: ../PLCControler.py:82
+#: ../PLCControler.py:89
 msgid "Function Blocks"
 msgstr "Blocs fonctionnels"
 
-#: ../Viewer.py:227
+#: ../Viewer.py:229
 msgid "Function Blocks can't be used in Functions!"
 msgstr "Les blocs fonctionnels ne peuvent être utilisés dans des functions !"
 
-#: ../Viewer.py:229
+#: ../Viewer.py:231
 msgid "Function Blocks can't be used in Transitions!"
 msgstr "Les blocs fonctionnels ne peuvent être utilisés dans des transitions"
 
-#: ../PLCControler.py:1673
+#: ../PLCControler.py:1724
 #, python-format
 msgid "FunctionBlock \"%s\" can't be pasted in a Function!!!"
 msgstr "Le bloc fonctionnel \"%s\" ne peuvent être collés dans une function !"
 
-#: ../PLCControler.py:82
+#: ../PLCControler.py:89
 msgid "Functions"
 msgstr "Fonctions"
 
-#: ../PLCOpenEditor.py:328
+#: ../PLCOpenEditor.py:2448
 msgid "Generate Program\tCTRL+G"
 msgstr "Générer le program\tCTRL+G"
 
-#: ../PLCOpenEditor.py:3863
+#: ../VariablePanel.py:65
 msgid "Global"
 msgstr "Globale"
 
-#: ../PLCOpenEditor.py:2030
+#: ../PLCOpenEditor.py:1835
 msgid "Graphic Panel"
 msgstr "Graphique"
 
-#: ../PLCOpenEditor.py:2985
+#: ../PLCOpenEditor.py:2980
 msgid "Graphics"
 msgstr "Graphiques"
 
@@ -1191,7 +1223,7 @@
 msgid "Greater than or equal to"
 msgstr "Supérieur ou égal à"
 
-#: ../PLCOpenEditor.py:2964
+#: ../PLCOpenEditor.py:2959
 msgid "Height:"
 msgstr "Hauteur :"
 
@@ -1205,39 +1237,39 @@
 "The hysteresis function block provides a hysteresis boolean output driven by the difference of two floating point (REAL) inputs XIN1 and XIN2."
 msgstr ""
 
-#: ../PLCOpenEditor.py:3170
-#: ../PLCOpenEditor.py:3180
-#: ../PLCOpenEditor.py:3359
-#: ../PLCOpenEditor.py:3503
+#: ../PLCOpenEditor.py:3165
+#: ../PLCOpenEditor.py:3175
+#: ../PLCOpenEditor.py:3354
+#: ../PLCOpenEditor.py:3498
 msgid "IL"
 msgstr "IL"
 
-#: ../PLCOpenEditor.py:3861
-#: ../Dialogs.py:426
+#: ../VariablePanel.py:63
+#: ../dialogs/FBDVariableDialog.py:42
 msgid "InOut"
 msgstr "Entrée-Sortie"
 
-#: ../PLCOpenEditor.py:4091
+#: ../VariablePanel.py:301
 #, python-format
 msgid "Incompatible data types between \"%s\" and \"%s\""
 msgstr "Types de donnée imcompatible entre \"%s\" et \"%s\""
 
-#: ../PLCOpenEditor.py:4102
+#: ../VariablePanel.py:312
 #, python-format
 msgid "Incompatible size of data between \"%s\" and \"%s\""
 msgstr "Taille de donnée incompatible entre \"%s\" et \"%s\""
 
-#: ../PLCOpenEditor.py:4098
+#: ../VariablePanel.py:308
 #, python-format
 msgid "Incompatible size of data between \"%s\" and \"BOOL\""
 msgstr "Taille de donnée incompatible entre \"%s\" et \"BOOL\""
 
-#: ../Dialogs.py:2105
+#: ../dialogs/ActionBlockDialog.py:33
 msgid "Indicator"
 msgstr "Indicateur"
 
-#: ../PLCOpenEditor.py:3850
-#: ../PLCOpenEditor.py:3851
+#: ../VariablePanel.py:52
+#: ../VariablePanel.py:53
 #: ../DataTypeEditor.py:46
 msgid "Initial Value"
 msgstr "Valeur initiale"
@@ -1249,19 +1281,20 @@
 msgid "Initial Value:"
 msgstr "Valeur initiale :"
 
-#: ../Dialogs.py:1725
-#: ../Dialogs.py:1793
-#: ../Dialogs.py:2109
+#: ../dialogs/ActionBlockDialog.py:37
+#: ../dialogs/SFCTransitionDialog.py:131
+#: ../dialogs/SFCTransitionDialog.py:199
 msgid "Inline"
 msgstr "Inline"
 
-#: ../PLCOpenEditor.py:3861
-#: ../Dialogs.py:425
-#: ../Dialogs.py:1472
+#: ../VariablePanel.py:63
+#: ../VariablePanel.py:991
+#: ../dialogs/FBDVariableDialog.py:41
+#: ../dialogs/SFCStepDialog.py:122
 msgid "Input"
 msgstr "Entrée"
 
-#: ../Dialogs.py:126
+#: ../dialogs/FBDBlockDialog.py:125
 msgid "Inputs:"
 msgstr "Entrées :"
 
@@ -1269,17 +1302,16 @@
 msgid "Insertion (into)"
 msgstr "Insertion (au milieu)"
 
-#: ../plcopen/plcopen.py:1329
+#: ../plcopen/plcopen.py:1344
 #, python-format
 msgid "Instance with id %d doesn't exist!"
 msgstr "L'instance dont l'id est %d n'existe pas !"
 
-#: ../PLCOpenEditor.py:561
-#: ../PLCOpenEditor.py:599
+#: ../PLCOpenEditor.py:559
 msgid "Instances"
 msgstr "Instances"
 
-#: ../RessourceEditor.py:394
+#: ../RessourceEditor.py:397
 msgid "Instances:"
 msgstr "Instances :"
 
@@ -1291,42 +1323,42 @@
 "Intégrale\n"
 "Le bloc fonctionnel INTEGRAL intègre les valeurs de l'entrée XIN en fonction du temps."
 
-#: ../PLCOpenEditor.py:3860
+#: ../VariablePanel.py:62
 msgid "Interface"
 msgstr "Interface"
 
-#: ../RessourceEditor.py:79
+#: ../RessourceEditor.py:82
 msgid "Interval"
 msgstr "Interval"
 
-#: ../PLCControler.py:1654
-#: ../PLCControler.py:1688
+#: ../PLCControler.py:1701
+#: ../PLCControler.py:1739
 msgid "Invalid plcopen element(s)!!!"
 msgstr "Les éléments plcopen ne sont pas valides !!! "
 
-#: ../PLCOpenEditor.py:4786
-#: ../PLCOpenEditor.py:4789
+#: ../PLCOpenEditor.py:4013
+#: ../PLCOpenEditor.py:4016
 #, python-format
 msgid "Invalid value \"%s\" for debug variable"
 msgstr "Chemin de variable à déboguer \"%s\" invalide"
 
-#: ../PLCOpenEditor.py:4079
-#: ../PLCOpenEditor.py:4082
+#: ../VariablePanel.py:289
+#: ../VariablePanel.py:292
 #, python-format
 msgid "Invalid value \"%s\" for location"
 msgstr "Adresse \"%s\" invalide "
 
-#: ../Viewer.py:211
 #: ../Viewer.py:214
+#: ../Viewer.py:217
 #, python-format
 msgid "Invalid value \"%s\" for viewer block"
 msgstr "Valeur \"%s\" invalide pour un élément graphique"
 
-#: ../PLCOpenEditor.py:2980
-#: ../PLCOpenEditor.py:3170
-#: ../PLCOpenEditor.py:3180
-#: ../PLCOpenEditor.py:3359
-#: ../PLCOpenEditor.py:3503
+#: ../PLCOpenEditor.py:2975
+#: ../PLCOpenEditor.py:3165
+#: ../PLCOpenEditor.py:3175
+#: ../PLCOpenEditor.py:3354
+#: ../PLCOpenEditor.py:3498
 msgid "LD"
 msgstr "LD"
 
@@ -1336,27 +1368,27 @@
 msgid "Ladder element with id %d is on more than one rung."
 msgstr "L'élément de LD dont l'id est %d apparait dans plusieurs échelons. "
 
-#: ../PLCOpenEditor.py:3278
-#: ../PLCOpenEditor.py:3441
-#: ../PLCOpenEditor.py:3585
+#: ../PLCOpenEditor.py:3273
+#: ../PLCOpenEditor.py:3436
+#: ../PLCOpenEditor.py:3580
 msgid "Language"
 msgstr "Langue"
 
-#: ../PLCOpenEditor.py:2994
+#: ../PLCOpenEditor.py:2989
 msgid "Language (optional):"
 msgstr "Langue (optionnel) :"
 
-#: ../PLCOpenEditor.py:3246
-#: ../PLCOpenEditor.py:3414
-#: ../PLCOpenEditor.py:3558
+#: ../PLCOpenEditor.py:3241
+#: ../PLCOpenEditor.py:3409
+#: ../PLCOpenEditor.py:3553
 msgid "Language:"
 msgstr "Langue :"
 
-#: ../Viewer.py:358
+#: ../Viewer.py:392
 msgid "Left"
 msgstr "Gauche"
 
-#: ../Dialogs.py:1287
+#: ../dialogs/LDPowerRailDialog.py:118
 msgid "Left PowerRail"
 msgstr "Barre d'alimentation à gauche"
 
@@ -1372,7 +1404,7 @@
 msgid "Less than or equal to"
 msgstr "Inférieur ou égal à"
 
-#: ../PLCOpenEditor.py:640
+#: ../PLCOpenEditor.py:594
 msgid "Library"
 msgstr "Librairie"
 
@@ -1380,14 +1412,18 @@
 msgid "Limitation"
 msgstr "Limitation"
 
-#: ../PLCOpenEditor.py:3862
+#: ../VariablePanel.py:64
 msgid "Local"
 msgstr "Locale"
 
-#: ../PLCOpenEditor.py:3850
+#: ../VariablePanel.py:52
 msgid "Location"
 msgstr "Adresse"
 
+#: ../VariablePanel.py:1052
+msgid "Locations available:"
+msgstr "Adresses disponibles :"
+
 #: ../plcopen/iec_std.csv:25
 msgid "Logarithm to base 10"
 msgstr "Logarithme de base 10"
@@ -1400,7 +1436,11 @@
 msgid "Maximum:"
 msgstr "Maximum :"
 
-#: ../Viewer.py:367
+#: ../VariablePanel.py:993
+msgid "Memory"
+msgstr "Mémoire"
+
+#: ../Viewer.py:401
 msgid "Middle"
 msgstr "Milieu"
 
@@ -1412,11 +1452,11 @@
 msgid "Minimum:"
 msgstr "Minimum :"
 
-#: ../PLCOpenEditor.py:3009
+#: ../PLCOpenEditor.py:3004
 msgid "Miscellaneous"
 msgstr "Divers"
 
-#: ../Dialogs.py:1022
+#: ../dialogs/LDElementDialog.py:117
 msgid "Modifier:"
 msgstr "Modificateur :"
 
@@ -1444,19 +1484,19 @@
 msgid "Multiplication"
 msgstr "Multiplication"
 
-#: ../PLCOpenEditor.py:3850
-#: ../PLCOpenEditor.py:3851
-#: ../RessourceEditor.py:79
-#: ../RessourceEditor.py:83
+#: ../RessourceEditor.py:82
+#: ../RessourceEditor.py:86
+#: ../VariablePanel.py:52
+#: ../VariablePanel.py:53
 #: ../DataTypeEditor.py:46
 msgid "Name"
 msgstr "Nom"
 
-#: ../Dialogs.py:122
-#: ../Dialogs.py:520
-#: ../Dialogs.py:792
-#: ../Dialogs.py:1026
-#: ../Dialogs.py:1455
+#: ../dialogs/ConnectionDialog.py:109
+#: ../dialogs/FBDBlockDialog.py:121
+#: ../dialogs/FBDVariableDialog.py:136
+#: ../dialogs/LDElementDialog.py:121
+#: ../dialogs/SFCStepDialog.py:105
 msgid "Name:"
 msgstr "Nom :"
 
@@ -1464,12 +1504,12 @@
 msgid "Natural logarithm"
 msgstr "Logarithme népérien"
 
-#: ../Viewer.py:390
-#: ../Dialogs.py:1040
+#: ../Viewer.py:424
+#: ../dialogs/LDElementDialog.py:135
 msgid "Negated"
 msgstr "Inversé"
 
-#: ../PLCOpenEditor.py:312
+#: ../PLCOpenEditor.py:2435
 msgid "New\tCTRL+N"
 msgstr "Nouveau\tCTRL+N"
 
@@ -1478,15 +1518,15 @@
 msgid "New item"
 msgstr "Nouvel élément"
 
-#: ../PLCOpenEditor.py:3855
+#: ../VariablePanel.py:57
 msgid "No"
 msgstr "Non"
 
-#: ../Viewer.py:388
+#: ../Viewer.py:422
 msgid "No Modifier"
 msgstr "Pas de modificateur"
 
-#: ../PLCControler.py:2535
+#: ../PLCControler.py:2583
 msgid "No PLC project found"
 msgstr "Pas de projet d'automate trouvé"
 
@@ -1501,7 +1541,7 @@
 msgid "No connector found corresponding to \"%s\" continuation in \"%s\" POU"
 msgstr "Pas de connecteur trouvé pour le prolongement \"%s\" dans le POU \"%s\""
 
-#: ../PLCOpenEditor.py:2608
+#: ../PLCOpenEditor.py:2382
 msgid ""
 "No documentation available.\n"
 "Coming soon."
@@ -1512,7 +1552,7 @@
 #: ../PLCGenerator.py:743
 #, python-format
 msgid "No informations found for \"%s\" block"
-msgstr ""
+msgstr "Aucune information trouvée pour le block \"%s\""
 
 #: ../plcopen/structures.py:139
 msgid "No output variable found"
@@ -1523,7 +1563,7 @@
 msgid "No variable defined in \"%s\" POU"
 msgstr "Pas de varaibles définies dans le POU \"%s\""
 
-#: ../Dialogs.py:1034
+#: ../dialogs/LDElementDialog.py:129
 msgid "Normal"
 msgstr "Normal"
 
@@ -1531,7 +1571,7 @@
 msgid "Not equal to"
 msgstr "Non égal à"
 
-#: ../Dialogs.py:2008
+#: ../dialogs/SFCDivergenceDialog.py:135
 msgid "Number of sequences:"
 msgstr "Nombre de branches :"
 
@@ -1551,17 +1591,18 @@
 "The on-delay timer can be used to delay setting an output true, for fixed period after an input becomes true."
 msgstr ""
 
-#: ../PLCOpenEditor.py:314
+#: ../PLCOpenEditor.py:2437
 msgid "Open\tCTRL+O"
 msgstr "Ouvrir\tCTRL+O"
 
-#: ../PLCOpenEditor.py:2936
+#: ../PLCOpenEditor.py:2931
 msgid "Organization (optional):"
 msgstr "Groupe (optionnel) :"
 
-#: ../PLCOpenEditor.py:3861
-#: ../Dialogs.py:427
-#: ../Dialogs.py:1477
+#: ../VariablePanel.py:63
+#: ../VariablePanel.py:992
+#: ../dialogs/FBDVariableDialog.py:43
+#: ../dialogs/SFCStepDialog.py:127
 msgid "Output"
 msgstr "Sortie"
 
@@ -1573,85 +1614,88 @@
 "PID\n"
 "Le bloc fonctionnel PID (Proportionnel, Intégrale, Dérivée) fournit un controller de boucle fermé classique à trois paramètres."
 
-#: ../PLCOpenEditor.py:1033
-#: ../PLCOpenEditor.py:1120
+#: ../PLCOpenEditor.py:2589
+#: ../PLCOpenEditor.py:2648
 msgid "PLCOpen files (*.xml)|*.xml|All files|*.*"
 msgstr "Fichiers PLCOpen (*.xml)|*.xml|Tous les fichiers|*.*"
 
-#: ../PLCOpenEditor.py:487
-#: ../PLCOpenEditor.py:840
+#: ../PLCOpenEditor.py:2521
 msgid "PLCOpenEditor"
 msgstr "PLCOpenEditor"
 
-#: ../PLCOpenEditor.py:440
+#: ../PLCOpenEditor.py:2479
 msgid "PLCOpenEditor\tF1"
 msgstr "PLCOpenEditor\tF1"
 
-#: ../PLCOpenEditor.py:3274
+#: ../PLCOpenEditor.py:3269
 msgid "POU Name"
 msgstr "Nom du POU"
 
-#: ../PLCOpenEditor.py:3229
+#: ../PLCOpenEditor.py:3224
 msgid "POU Name:"
 msgstr "Nom du POU :"
 
-#: ../PLCOpenEditor.py:3276
+#: ../PLCOpenEditor.py:3271
 msgid "POU Type"
 msgstr "Type du POU"
 
-#: ../PLCOpenEditor.py:3237
+#: ../PLCOpenEditor.py:3232
 msgid "POU Type:"
 msgstr "Type du POU :"
 
-#: ../PLCOpenEditor.py:331
+#: ../PLCOpenEditor.py:2451
 msgid "Page Setup"
 msgstr "Mise en page..."
 
-#: ../PLCOpenEditor.py:2952
+#: ../PLCOpenEditor.py:2947
 msgid "Page Size (optional):"
 msgstr "Taille de la page (optionnel) :"
 
-#: ../PLCOpenEditor.py:5002
+#: ../PLCOpenEditor.py:4235
 #, python-format
 msgid "Page: %d"
 msgstr "Page: %d"
 
-#: ../PLCOpenEditor.py:383
+#: ../PLCOpenEditor.py:1648
+msgid "Paste"
+msgstr "Coller"
+
+#: ../PLCOpenEditor.py:325
 msgid "Paste\tCTRL+V"
 msgstr "Coller\tCTRL+V"
 
-#: ../Dialogs.py:1279
+#: ../dialogs/LDPowerRailDialog.py:110
 msgid "Pin number:"
 msgstr "Nombre de pattes :"
 
-#: ../Viewer.py:1971
-#: ../Viewer.py:2262
+#: ../Viewer.py:1995
+#: ../Viewer.py:2286
 #: ../SFCViewer.py:698
 msgid "Please choose a target"
 msgstr "Choisissez une cible"
 
-#: ../PLCOpenEditor.py:2463
+#: ../PLCOpenEditor.py:2240
 msgid "Please enter POU name"
 msgstr "Saisissez le nom du POU"
 
-#: ../Viewer.py:1796
-#: ../Viewer.py:1798
-#: ../Viewer.py:2297
-#: ../Viewer.py:2299
+#: ../Viewer.py:1820
+#: ../Viewer.py:1822
+#: ../Viewer.py:2321
+#: ../Viewer.py:2323
 msgid "Please enter comment text"
 msgstr "Saisissez le texte du commentaire"
 
-#: ../PLCOpenEditor.py:2418
-#: ../PLCOpenEditor.py:3649
+#: ../PLCOpenEditor.py:2208
+#: ../PLCOpenEditor.py:3644
 msgid "Please enter configuration name"
 msgstr "Saisissez le nom de la configuration"
 
-#: ../PLCOpenEditor.py:2361
+#: ../PLCOpenEditor.py:2164
 msgid "Please enter data type name"
 msgstr "Saisissez le nom du type de donnée"
 
-#: ../PLCOpenEditor.py:2433
-#: ../PLCOpenEditor.py:3712
+#: ../PLCOpenEditor.py:2219
+#: ../PLCOpenEditor.py:3707
 msgid "Please enter resource name"
 msgstr "Saisissez le nom de la ressource"
 
@@ -1661,97 +1705,101 @@
 msgid "Please enter step name"
 msgstr "Saisissez le nom de l'étape"
 
-#: ../PLCOpenEditor.py:3120
+#: ../PLCOpenEditor.py:3115
 msgid "Please enter text"
 msgstr "Saisissez le texte"
 
+#: ../VariablePanel.py:1119
+msgid "Plugins"
+msgstr "Plugins"
+
 #: ../GraphicViewer.py:117
 msgid "Position:"
 msgstr "Position :"
 
-#: ../Dialogs.py:1271
+#: ../dialogs/LDPowerRailDialog.py:102
 msgid "Power Rail Properties"
 msgstr "Propriétés de la barre d'alimentation"
 
-#: ../PLCOpenEditor.py:333
+#: ../PLCOpenEditor.py:2453
 msgid "Preview"
 msgstr "Aperçu avant impression"
 
-#: ../Dialogs.py:138
-#: ../Dialogs.py:524
-#: ../Dialogs.py:796
-#: ../Dialogs.py:1030
-#: ../Dialogs.py:1283
-#: ../Dialogs.py:1463
-#: ../Dialogs.py:1706
-#: ../Dialogs.py:2017
+#: ../dialogs/ConnectionDialog.py:113
+#: ../dialogs/FBDBlockDialog.py:137
+#: ../dialogs/FBDVariableDialog.py:140
+#: ../dialogs/LDElementDialog.py:125
+#: ../dialogs/LDPowerRailDialog.py:114
+#: ../dialogs/SFCDivergenceDialog.py:144
+#: ../dialogs/SFCStepDialog.py:113
+#: ../dialogs/SFCTransitionDialog.py:112
 msgid "Preview:"
 msgstr "Aperçu :"
 
-#: ../PLCOpenEditor.py:335
+#: ../PLCOpenEditor.py:2455
 msgid "Print"
 msgstr "Imprimer"
 
-#: ../PLCOpenEditor.py:1152
+#: ../PLCOpenEditor.py:932
 msgid "Print preview"
 msgstr "Aperçu avant impression"
 
-#: ../RessourceEditor.py:79
+#: ../RessourceEditor.py:82
 msgid "Priority"
 msgstr "Priorité"
 
-#: ../Dialogs.py:1710
+#: ../dialogs/SFCTransitionDialog.py:116
 msgid "Priority:"
 msgstr "Priorité :"
 
-#: ../PLCOpenEditor.py:2880
+#: ../PLCOpenEditor.py:2875
 msgid "Product Name (required):"
 msgstr "Nom du produit (obligatoire) :"
 
-#: ../PLCOpenEditor.py:2896
+#: ../PLCOpenEditor.py:2891
 msgid "Product Release (optional):"
 msgstr "Publication du produit (optionnel) :"
 
-#: ../PLCOpenEditor.py:2888
+#: ../PLCOpenEditor.py:2883
 msgid "Product Version (required):"
 msgstr "Version du produit (obligatoire) :"
 
-#: ../PLCOpenEditor.py:394
-#: ../PLCOpenEditor.py:1816
+#: ../PLCOpenEditor.py:336
+#: ../PLCOpenEditor.py:1608
 msgid "Program"
 msgstr "Programme"
 
-#: ../PLCOpenEditor.py:1097
+#: ../PLCOpenEditor.py:2626
 msgid "Program was successfully generated!"
 msgstr "Le programme a été généré avec succès !"
 
-#: ../PLCControler.py:83
+#: ../PLCControler.py:90
 msgid "Programs"
 msgstr "Programmes"
 
-#: ../Viewer.py:220
+#: ../Viewer.py:223
 msgid "Programs can't be used by other POUs!"
 msgstr "Les programmes ne peuvent être utilisés par les autres POUs !"
 
-#: ../PLCOpenEditor.py:499
-#: ../PLCOpenEditor.py:2903
+#: ../PLCOpenEditor.py:437
+#: ../PLCOpenEditor.py:2898
 msgid "Project"
 msgstr "Projet"
 
-#: ../PLCOpenEditor.py:2864
+#: ../PLCOpenEditor.py:2859
 msgid "Project Name (required):"
 msgstr "Nom du projet (obligatoire) :"
 
-#: ../PLCOpenEditor.py:2872
+#: ../PLCOpenEditor.py:2867
 msgid "Project Version (optional):"
 msgstr "Version du projet (optionnel) :"
 
-#: ../PLCOpenEditor.py:2850
+#: ../PLCOpenEditor.py:2845
 msgid "Project properties"
 msgstr "Propriétés du projet"
 
-#: ../PLCOpenEditor.py:339
-#: ../PLCControler.py:84
+#: ../PLCOpenEditor.py:2458
+#: ../PLCControler.py:91
 msgid "Properties"
 msgstr "Propriétés"
 
@@ -1761,11 +1809,11 @@
 "The pulse timer can be used to generate output pulses of a given time duration."
 msgstr ""
 
-#: ../Dialogs.py:2105
+#: ../dialogs/ActionBlockDialog.py:33
 msgid "Qualifier"
 msgstr "Qualificatif"
 
-#: ../PLCOpenEditor.py:343
+#: ../PLCOpenEditor.py:2461
 msgid "Quit\tCTRL+Q"
 msgstr "Quitter\tCTRL+Q"
 
@@ -1789,16 +1837,16 @@
 msgid "Range:"
 msgstr "Echelle :"
 
-#: ../PLCOpenEditor.py:374
+#: ../PLCOpenEditor.py:316
 msgid "Redo\tCTRL+Y"
 msgstr "Refaire\tCTRL+Y"
 
-#: ../Dialogs.py:1714
-#: ../Dialogs.py:1791
+#: ../dialogs/SFCTransitionDialog.py:120
+#: ../dialogs/SFCTransitionDialog.py:197
 msgid "Reference"
 msgstr "Référence"
 
-#: ../PLCOpenEditor.py:422
+#: ../PLCOpenEditor.py:364
 msgid "Refresh\tF5"
 msgstr "Actualiser\tF5"
 
@@ -1806,7 +1854,7 @@
 msgid "Remainder (modulo)"
 msgstr "Modulo"
 
-#: ../PLCOpenEditor.py:1820
+#: ../PLCOpenEditor.py:1612
 msgid "Rename"
 msgstr "Renommer"
 
@@ -1814,37 +1862,37 @@
 msgid "Replacement (within)"
 msgstr "Remplacement (au milieu)"
 
-#: ../Dialogs.py:1050
+#: ../dialogs/LDElementDialog.py:145
 msgid "Reset"
 msgstr "Mise à zéro"
 
-#: ../Viewer.py:409
+#: ../Viewer.py:443
 msgid "Reset Execution Order"
 msgstr "Réinitialiser l'order d'exécution"
 
-#: ../PLCControler.py:84
+#: ../PLCControler.py:91
 msgid "Resources"
 msgstr "Ressources"
 
-#: ../PLCOpenEditor.py:3850
-#: ../PLCOpenEditor.py:3851
+#: ../VariablePanel.py:52
+#: ../VariablePanel.py:53
 msgid "Retain"
 msgstr "Persistante"
 
-#: ../PLCOpenEditor.py:4229
+#: ../VariablePanel.py:439
 msgid "Return Type:"
 msgstr "Type de retour :"
 
-#: ../Viewer.py:362
+#: ../Viewer.py:396
 msgid "Right"
 msgstr "Droite"
 
-#: ../Dialogs.py:1293
+#: ../dialogs/LDPowerRailDialog.py:124
 msgid "Right PowerRail"
 msgstr "Barre d'alimentation à droite"
 
-#: ../Viewer.py:392
-#: ../Dialogs.py:1055
+#: ../Viewer.py:426
+#: ../dialogs/LDElementDialog.py:150
 msgid "Rising Edge"
 msgstr "Front montant"
 
@@ -1868,8 +1916,8 @@
 msgid "Rounding up/down"
 msgstr "Arrondi"
 
-#: ../PLCOpenEditor.py:2980
-#: ../PLCOpenEditor.py:3180
+#: ../PLCOpenEditor.py:2975
+#: ../PLCOpenEditor.py:3175
 msgid "SFC"
 msgstr "SFC"
 
@@ -1881,39 +1929,39 @@
 "Bascule SR\n"
 "La bascule SR est une bascule où le Set est dominant."
 
-#: ../PLCOpenEditor.py:3170
-#: ../PLCOpenEditor.py:3180
-#: ../PLCOpenEditor.py:3359
-#: ../PLCOpenEditor.py:3503
+#: ../PLCOpenEditor.py:3165
+#: ../PLCOpenEditor.py:3175
+#: ../PLCOpenEditor.py:3354
+#: ../PLCOpenEditor.py:3498
 msgid "ST"
 msgstr "ST"
 
-#: ../PLCOpenEditor.py:1084
+#: ../PLCOpenEditor.py:2613
 msgid "ST files (*.st)|*.st|All files|*.*"
 msgstr "Fichiers ST (*.st)|*.st|Tous les fichiers|*.*"
 
-#: ../PLCOpenEditor.py:323
+#: ../PLCOpenEditor.py:2444
 msgid "Save\tCTRL+S"
 msgstr "Enregistrer\tCTRL+S"
 
-#: ../PLCOpenEditor.py:326
+#: ../PLCOpenEditor.py:2446
 msgid "Save As...\tCTRL+SHIFT+S"
 msgstr "Enregistrer sous...\tCTRL+SHIFT+S"
 
-#: ../PLCOpenEditor.py:2972
+#: ../PLCOpenEditor.py:2967
 msgid "Scaling:"
 msgstr "Echelle :"
 
-#: ../PLCOpenEditor.py:398
+#: ../PLCOpenEditor.py:340
 msgid "Select All\tCTRL+A"
 msgstr "Tout sélectionner\tCTRL+A"
 
-#: ../PLCOpenEditor.py:4104
+#: ../VariablePanel.py:314
 msgid "Select a variable class:"
 msgstr "Sélectionner une direction pour la variable :"
 
-#: ../PLCOpenEditor.py:606
-#: ../PLCOpenEditor.py:618
+#: ../PLCOpenEditor.py:570
+#: ../PLCOpenEditor.py:582
 msgid "Select an object"
 msgstr "Sélectionner un objet"
 
@@ -1921,11 +1969,11 @@
 msgid "Selection"
 msgstr "Sélection"
 
-#: ../Dialogs.py:1990
+#: ../dialogs/SFCDivergenceDialog.py:117
 msgid "Selection Convergence"
 msgstr "Convergence simple"
 
-#: ../Dialogs.py:1984
+#: ../dialogs/SFCDivergenceDialog.py:111
 msgid "Selection Divergence"
 msgstr "Divergence simple"
 
@@ -1937,7 +1985,7 @@
 "Sémaphore\n"
 "La sémaphore fournit un mécanisme permettant à des éléments du programme d'accéder de façon exclusive à certaines resources."
 
-#: ../Dialogs.py:1045
+#: ../dialogs/LDElementDialog.py:140
 msgid "Set"
 msgstr "Mise à 1"
 
@@ -1949,11 +1997,11 @@
 msgid "Shift right"
 msgstr "Décalage à droite"
 
-#: ../Dialogs.py:2002
+#: ../dialogs/SFCDivergenceDialog.py:129
 msgid "Simultaneous Convergence"
 msgstr "Convergence double"
 
-#: ../Dialogs.py:1996
+#: ../dialogs/SFCDivergenceDialog.py:123
 msgid "Simultaneous Divergence"
 msgstr "Divergence double"
 
@@ -1961,7 +2009,7 @@
 msgid "Sine"
 msgstr "Sinus"
 
-#: ../RessourceEditor.py:79
+#: ../RessourceEditor.py:82
 msgid "Single"
 msgstr "Evènement"
 
@@ -1989,15 +2037,15 @@
 msgid "Tangent"
 msgstr "Tangente"
 
-#: ../RessourceEditor.py:83
+#: ../RessourceEditor.py:86
 msgid "Task"
 msgstr "Tâche"
 
-#: ../RessourceEditor.py:358
+#: ../RessourceEditor.py:361
 msgid "Tasks:"
 msgstr "Tâches :"
 
-#: ../PLCOpenEditor.py:3863
+#: ../VariablePanel.py:65
 msgid "Temp"
 msgstr "Temporaire"
 
@@ -2005,11 +2053,17 @@
 msgid "The group of block must be coherent!"
 msgstr "Le groupe de blocs doit être cohérent !"
 
-#: ../PLCOpenEditor.py:963
+#: ../PLCOpenEditor.py:873
 msgid "There are changes, do you want to save?"
 msgstr "Le projet a été modifié. Voulez-vous l'enregistrer ?"
 
-#: ../PLCOpenEditor.py:1171
+#: ../PLCOpenEditor.py:1408
+#: ../PLCOpenEditor.py:1428
+#, python-format
+msgid "There is a POU named \"%s\". This could cause a conflict. Do you wish to continue?"
+msgstr "Un POU a pour nom \"%s\". Cela peut générer des conflits. Voulez-vous continuer ?"
+
+#: ../PLCOpenEditor.py:951
 msgid ""
 "There was a problem printing.\n"
 "Perhaps your current printer is not set correctly?"
@@ -2021,7 +2075,7 @@
 msgid "This option isn't available yet!"
 msgstr "Cette option n'a pas encore disponible"
 
-#: ../GraphicViewer.py:181
+#: ../GraphicViewer.py:180
 msgid "Tick"
 msgstr "Tick"
 
@@ -2054,19 +2108,19 @@
 msgid "Time-of-day subtraction"
 msgstr "Soustraction d'horodatage"
 
-#: ../PLCOpenEditor.py:610
+#: ../PLCOpenEditor.py:574
 msgid "Toolbar"
 msgstr "Barre d'outils"
 
-#: ../Viewer.py:365
+#: ../Viewer.py:399
 msgid "Top"
 msgstr "Haut"
 
-#: ../PLCOpenEditor.py:3439
+#: ../PLCOpenEditor.py:3434
 msgid "Transition Name"
 msgstr "Nom de la transition"
 
-#: ../PLCOpenEditor.py:3406
+#: ../PLCOpenEditor.py:3401
 msgid "Transition Name:"
 msgstr "Nom de la transition :"
 
@@ -2080,19 +2134,19 @@
 msgid "Transition with content \"%s\" not connected to a previous step in \"%s\" POU"
 msgstr "La transition contenant \"%s\" n'est pas connectée à une étape en entrée dans le POU \"%s\" !"
 
-#: ../plcopen/plcopen.py:1035
+#: ../plcopen/plcopen.py:1050
 #, python-format
 msgid "Transition with name %s doesn't exist!"
 msgstr "La transition nommée %s n'existe pas !"
 
-#: ../PLCControler.py:83
+#: ../PLCControler.py:90
 msgid "Transitions"
 msgstr "Transitions"
 
-#: ../PLCOpenEditor.py:3850
-#: ../PLCOpenEditor.py:3851
-#: ../RessourceEditor.py:83
-#: ../Dialogs.py:2105
+#: ../RessourceEditor.py:86
+#: ../VariablePanel.py:52
+#: ../VariablePanel.py:53
+#: ../dialogs/ActionBlockDialog.py:33
 #: ../DataTypeEditor.py:46
 msgid "Type"
 msgstr "Type"
@@ -2105,16 +2159,15 @@
 msgid "Type infos:"
 msgstr "Propriétés du type :"
 
-#: ../Dialogs.py:118
-#: ../Dialogs.py:788
-#: ../Dialogs.py:1275
-#: ../Dialogs.py:1702
-#: ../Dialogs.py:1980
+#: ../dialogs/ConnectionDialog.py:105
+#: ../dialogs/FBDBlockDialog.py:117
+#: ../dialogs/LDPowerRailDialog.py:106
+#: ../dialogs/SFCDivergenceDialog.py:107
+#: ../dialogs/SFCTransitionDialog.py:108
 msgid "Type:"
 msgstr "Type :"
 
-#: ../PLCOpenEditor.py:562
-#: ../PLCOpenEditor.py:598
+#: ../PLCOpenEditor.py:540
 msgid "Types"
 msgstr "Types"
 
@@ -2123,21 +2176,21 @@
 msgid "Undefined pou type \"%s\""
 msgstr "Type de POU \"%s\" indéterminé !"
 
-#: ../PLCOpenEditor.py:372
+#: ../PLCOpenEditor.py:314
 msgid "Undo\tCTRL+Z"
 msgstr "Défaire\tCTRL+Z"
 
-#: ../Viewer.py:286
+#: ../Viewer.py:320
 #, python-format
 msgid "Unknown variable \"%s\" for this POU!"
 msgstr "Variable \"%s\" inconnue dans ce POU !"
 
-#: ../PLCControler.py:293
+#: ../PLCControler.py:300
 #, python-format
 msgid "Unnamed%d"
 msgstr "Sansnom%d"
 
-#: ../PLCOpenEditor.py:4100
+#: ../VariablePanel.py:310
 #, python-format
 msgid "Unrecognized data size \"%s\""
 msgstr "Taille de donnée \"%s\" non identifié !"
@@ -2158,21 +2211,21 @@
 "Compteur bidirectionnel\n"
 "Le compteur bidirectionnel a deux entrées CU et CD. Il peut être utilisé pour compter de façon incrémentale ou décrémentale sur l'une ou l'autre des entrées."
 
-#: ../PLCOpenEditor.py:4499
-#: ../DataTypeEditor.py:804
+#: ../VariablePanel.py:742
+#: ../DataTypeEditor.py:807
 msgid "User Data Types"
 msgstr "Types de donnée du projet"
 
-#: ../PLCControler.py:82
+#: ../PLCControler.py:89
 msgid "User-defined POUs"
 msgstr "POUs du projet"
 
-#: ../PLCOpenEditor.py:4616
-#: ../Dialogs.py:2105
+#: ../PLCOpenEditor.py:3843
+#: ../dialogs/ActionBlockDialog.py:33
 msgid "Value"
 msgstr "Valeur"
 
-#: ../GraphicViewer.py:181
+#: ../GraphicViewer.py:180
 msgid "Values"
 msgstr "Valeurs"
 
@@ -2180,50 +2233,49 @@
 msgid "Values:"
 msgstr "Valeurs"
 
-#: ../PLCOpenEditor.py:4616
-#: ../Dialogs.py:2109
+#: ../PLCOpenEditor.py:3843
+#: ../dialogs/ActionBlockDialog.py:37
 msgid "Variable"
 msgstr "Variable"
 
-#: ../Dialogs.py:504
+#: ../dialogs/FBDVariableDialog.py:120
 msgid "Variable Properties"
 msgstr "Propriétés de la variable"
 
-#: ../PLCOpenEditor.py:4104
+#: ../VariablePanel.py:314
 msgid "Variable class"
 msgstr "Direction de la variable"
 
-#: ../Viewer.py:288
-#: ../TextViewer.py:224
+#: ../Viewer.py:322
+#: ../TextViewer.py:248
 msgid "Variable don't belong to this POU!"
 msgstr "La variable n'appartient pas à ce POU !"
 
-#: ../PLCOpenEditor.py:575
-#: ../PLCOpenEditor.py:626
-#: ../PLCOpenEditor.py:3862
+#: ../PLCOpenEditor.py:589
+#: ../VariablePanel.py:64
 msgid "Variables"
 msgstr "Variables"
 
-#: ../PLCOpenEditor.py:3304
-#: ../PLCOpenEditor.py:3682
-#: ../PLCOpenEditor.py:3745
+#: ../PLCOpenEditor.py:3299
+#: ../PLCOpenEditor.py:3677
+#: ../PLCOpenEditor.py:3740
 #: ../LDViewer.py:859
 msgid "Warning"
 msgstr "Attention"
 
-#: ../PLCOpenEditor.py:2956
+#: ../PLCOpenEditor.py:2951
 msgid "Width:"
 msgstr "Longueur :"
 
-#: ../PLCOpenEditor.py:2699
+#: ../PLCOpenEditor.py:2694
 msgid "X Scale:"
 msgstr "Echelle X :"
 
-#: ../PLCOpenEditor.py:2707
+#: ../PLCOpenEditor.py:2702
 msgid "Y Scale:"
 msgstr "Echelle Y :"
 
-#: ../PLCOpenEditor.py:3855
+#: ../VariablePanel.py:57
 msgid "Yes"
 msgstr "Oui"
 
@@ -2235,46 +2287,46 @@
 msgid "You must select the wire where a contact should be added!"
 msgstr "Vous devez sélectionner le fil sur lequel le contact doit être ajouté !"
 
-#: ../PLCOpenEditor.py:3135
-#: ../PLCOpenEditor.py:3666
-#: ../PLCOpenEditor.py:3729
-#: ../Dialogs.py:1525
-#: ../Dialogs.py:2508
-#: ../Dialogs.py:2575
+#: ../PLCOpenEditor.py:3130
+#: ../PLCOpenEditor.py:3661
+#: ../PLCOpenEditor.py:3724
+#: ../dialogs/PouNameDialog.py:55
+#: ../dialogs/SFCStepDialog.py:175
+#: ../dialogs/SFCStepNameDialog.py:57
 msgid "You must type a name!"
 msgstr "Vous devez saisir un nom !"
 
-#: ../PLCOpenEditor.py:428
+#: ../PLCOpenEditor.py:370
 msgid "Zoom"
 msgstr "Zoom"
 
-#: ../PLCOpenEditor.py:1093
+#: ../PLCOpenEditor.py:2622
 #, python-format
 msgid "error: %s\n"
 msgstr "erreur: %s\n"
 
-#: ../PLCOpenEditor.py:5034
-#: ../PLCOpenEditor.py:5036
+#: ../PLCOpenEditor.py:4267
+#: ../PLCOpenEditor.py:4269
 msgid "file : "
 msgstr "fichier :"
 
-#: ../PLCOpenEditor.py:3175
+#: ../PLCOpenEditor.py:3170
 msgid "function"
 msgstr "fonction"
 
-#: ../PLCOpenEditor.py:5037
+#: ../PLCOpenEditor.py:4270
 msgid "function : "
 msgstr "fonction :"
 
-#: ../PLCOpenEditor.py:3175
+#: ../PLCOpenEditor.py:3170
 msgid "functionBlock"
 msgstr "Bloc fonctionnel"
 
-#: ../PLCOpenEditor.py:5037
+#: ../PLCOpenEditor.py:4270
 msgid "line : "
 msgstr "ligne :"
 
-#: ../PLCOpenEditor.py:3175
+#: ../PLCOpenEditor.py:3170
 msgid "program"
 msgstr "programme"
 
@@ -2290,17 +2342,20 @@
 msgid "string right of"
 msgstr "Caractères à droite de"
 
-#: ../PLCOpenEditor.py:1091
+#: ../PLCOpenEditor.py:2620
 #, python-format
 msgid "warning: %s\n"
 msgstr "attention: %s\n"
 
+#, fuzzy
+#~ msgid "A pou with \"%s\" as name exists!"
+#~ msgstr "Un POU nommé \"%s\" existe déjà !"
+#~ msgid "Close\tCTRL+Q"
+#~ msgstr "Fermer\tCTRL+Q"
 #~ msgid ""
 #~ "A variable is defined with \"%s\" as name. It can generate a conflict. Do "
 #~ "you wish to continue?"
 #~ msgstr "Une variable"
-#~ msgid "A pou with \"%s\" for name exists!"
-#~ msgstr "Un POU nommé \"%s\" existe déjà !"
 #~ msgid "Create A New POU From"
 #~ msgstr "Créer un nouveau POU à partir de"
 
--- a/i18n/app.fil	Fri Oct 09 15:38:11 2009 +0200
+++ b/i18n/app.fil	Fri Oct 09 17:34:18 2009 +0200
@@ -7,6 +7,7 @@
 ../SFCViewer.py
 ../LDViewer.py
 ../GraphicViewer.py
+../VariablePanel.py
 ../dialogs/ActionBlockDialog.py
 ../dialogs/ConnectionDialog.py
 ../dialogs/FBDBlockDialog.py
@@ -18,7 +19,6 @@
 ../dialogs/SFCStepDialog.py
 ../dialogs/SFCStepNameDialog.py
 ../dialogs/SFCTransitionDialog.py
-../Dialogs.py
 ../DataTypeEditor.py
 ../plcopen/iec_std.csv
 ../plcopen/plcopen.py
--- a/i18n/messages.pot	Fri Oct 09 15:38:11 2009 +0200
+++ b/i18n/messages.pot	Fri Oct 09 17:34:18 2009 +0200
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-26 19:19+0200\n"
+"POT-Creation-Date: 2009-10-09 17:24+0200\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"
@@ -16,7 +16,7 @@
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: ../PLCOpenEditor.py:5046
+#: ../PLCOpenEditor.py:4279
 msgid ""
 "\n"
 "An error has occurred.\n"
@@ -31,40 +31,36 @@
 "Error:\n"
 msgstr ""
 
-#: ../PLCOpenEditor.py:3862
+#: ../VariablePanel.py:64
 msgid "   External"
 msgstr ""
 
-#: ../PLCOpenEditor.py:3861
+#: ../VariablePanel.py:63
 msgid "   InOut"
 msgstr ""
 
-#: ../PLCOpenEditor.py:3861
+#: ../VariablePanel.py:63
 msgid "   Input"
 msgstr ""
 
-#: ../PLCOpenEditor.py:3862
+#: ../VariablePanel.py:64
 msgid "   Local"
 msgstr ""
 
-#: ../PLCOpenEditor.py:3861
+#: ../VariablePanel.py:63
 msgid "   Output"
 msgstr ""
 
-#: ../PLCOpenEditor.py:3863
+#: ../VariablePanel.py:65
 msgid "   Temp"
 msgstr ""
 
-#: ../PLCOpenEditor.py:842
-msgid " (Debug)"
-msgstr ""
-
-#: ../PLCOpenEditor.py:5058
+#: ../PLCOpenEditor.py:4291
 msgid " : "
 msgstr ""
 
-#: ../PLCOpenEditor.py:3285 ../PLCOpenEditor.py:3448 ../PLCOpenEditor.py:3592
-#: ../Dialogs.py:1800
+#: ../PLCOpenEditor.py:3280 ../PLCOpenEditor.py:3443 ../PLCOpenEditor.py:3587
+#: ../dialogs/SFCTransitionDialog.py:206
 #, python-format
 msgid " and %s"
 msgstr ""
@@ -84,12 +80,12 @@
 msgid "\"%s\" POU doesn't exist !!!"
 msgstr ""
 
-#: ../Viewer.py:225
+#: ../Viewer.py:227
 #, python-format
 msgid "\"%s\" can't use itself!"
 msgstr ""
 
-#: ../PLCOpenEditor.py:1619 ../PLCOpenEditor.py:1639
+#: ../PLCOpenEditor.py:1405 ../PLCOpenEditor.py:1425
 #, python-format
 msgid "\"%s\" config already exists!"
 msgstr ""
@@ -99,18 +95,19 @@
 msgid "\"%s\" configuration already exists !!!"
 msgstr ""
 
-#: ../PLCOpenEditor.py:1573 ../PLCOpenEditor.py:3147
+#: ../PLCOpenEditor.py:1359 ../PLCOpenEditor.py:3142
 #, python-format
 msgid "\"%s\" data type already exists!"
 msgstr ""
 
-#: ../PLCControler.py:1663
+#: ../PLCControler.py:1709 ../PLCControler.py:1713
 #, python-format
 msgid "\"%s\" element can't be pasted here!!!"
 msgstr ""
 
-#: ../PLCOpenEditor.py:3467 ../PLCOpenEditor.py:3611 ../Viewer.py:248
-#: ../Dialogs.py:261 ../Dialogs.py:898
+#: ../PLCOpenEditor.py:3462 ../PLCOpenEditor.py:3606 ../Viewer.py:250
+#: ../TextViewer.py:231 ../dialogs/ConnectionDialog.py:215
+#: ../dialogs/FBDBlockDialog.py:260
 #, python-format
 msgid "\"%s\" element for this pou already exists!"
 msgstr ""
@@ -120,46 +117,50 @@
 msgid "\"%s\" function cancelled in \"%s\" POU: No input connected"
 msgstr ""
 
-#: ../PLCOpenEditor.py:1564 ../PLCOpenEditor.py:3143 ../PLCOpenEditor.py:3296
-#: ../PLCOpenEditor.py:3459 ../PLCOpenEditor.py:3603 ../PLCOpenEditor.py:3674
-#: ../PLCOpenEditor.py:3737 ../PLCOpenEditor.py:4451 ../Dialogs.py:253
-#: ../Dialogs.py:652 ../Dialogs.py:890 ../Dialogs.py:1533 ../Dialogs.py:2516
-#: ../Dialogs.py:2583 ../DataTypeEditor.py:702 ../DataTypeEditor.py:762
+#: ../PLCOpenEditor.py:1350 ../PLCOpenEditor.py:3138 ../PLCOpenEditor.py:3291
+#: ../PLCOpenEditor.py:3454 ../PLCOpenEditor.py:3598 ../PLCOpenEditor.py:3669
+#: ../PLCOpenEditor.py:3732 ../VariablePanel.py:689
+#: ../dialogs/ConnectionDialog.py:207 ../dialogs/FBDBlockDialog.py:252
+#: ../dialogs/FBDVariableDialog.py:268 ../dialogs/PouNameDialog.py:63
+#: ../dialogs/SFCStepDialog.py:183 ../dialogs/SFCStepNameDialog.py:65
+#: ../DataTypeEditor.py:705 ../DataTypeEditor.py:765
 #, python-format
 msgid "\"%s\" is a keyword. It can't be used!"
 msgstr ""
 
-#: ../Viewer.py:231
+#: ../Viewer.py:233
 #, python-format
 msgid "\"%s\" is already used by \"%s\"!"
 msgstr ""
 
-#: ../plcopen/plcopen.py:2120
+#: ../plcopen/plcopen.py:2135
 #, python-format
 msgid "\"%s\" is an invalid value!"
 msgstr ""
 
-#: ../PLCOpenEditor.py:1099 ../PLCOpenEditor.py:1128
+#: ../PLCOpenEditor.py:2628 ../PLCOpenEditor.py:2656
 #, python-format
 msgid "\"%s\" is not a valid folder!"
 msgstr ""
 
-#: ../PLCOpenEditor.py:1562 ../PLCOpenEditor.py:3139 ../PLCOpenEditor.py:3292
-#: ../PLCOpenEditor.py:3455 ../PLCOpenEditor.py:3599 ../PLCOpenEditor.py:3670
-#: ../PLCOpenEditor.py:3733 ../PLCOpenEditor.py:4446 ../Dialogs.py:249
-#: ../Dialogs.py:886 ../Dialogs.py:1529 ../Dialogs.py:2512 ../Dialogs.py:2579
-#: ../DataTypeEditor.py:757
+#: ../PLCOpenEditor.py:1348 ../PLCOpenEditor.py:3134 ../PLCOpenEditor.py:3287
+#: ../PLCOpenEditor.py:3450 ../PLCOpenEditor.py:3594 ../PLCOpenEditor.py:3665
+#: ../PLCOpenEditor.py:3728 ../VariablePanel.py:684
+#: ../dialogs/ConnectionDialog.py:203 ../dialogs/FBDBlockDialog.py:248
+#: ../dialogs/PouNameDialog.py:59 ../dialogs/SFCStepDialog.py:179
+#: ../dialogs/SFCStepNameDialog.py:61 ../DataTypeEditor.py:760
 #, python-format
 msgid "\"%s\" is not a valid identifier!"
 msgstr ""
 
-#: ../PLCOpenEditor.py:283 ../PLCOpenEditor.py:2493 ../PLCOpenEditor.py:2522
+#: ../PLCOpenEditor.py:283 ../PLCOpenEditor.py:2293 ../PLCOpenEditor.py:2313
 #, python-format
 msgid "\"%s\" is used by one or more POUs. It can't be removed!"
 msgstr ""
 
-#: ../PLCOpenEditor.py:1582 ../PLCOpenEditor.py:3300 ../Viewer.py:246
-#: ../Dialogs.py:257 ../Dialogs.py:894
+#: ../PLCOpenEditor.py:1368 ../PLCOpenEditor.py:3295 ../Viewer.py:248
+#: ../Viewer.py:274 ../TextViewer.py:229 ../dialogs/ConnectionDialog.py:211
+#: ../dialogs/FBDBlockDialog.py:256
 #, python-format
 msgid "\"%s\" pou already exists!"
 msgstr ""
@@ -174,94 +175,93 @@
 msgid "\"%s\" resource doesn't exist in \"%s\" configuration !!!"
 msgstr ""
 
-#: ../Dialogs.py:1545 ../Dialogs.py:2528
+#: ../dialogs/SFCStepDialog.py:195 ../dialogs/SFCStepNameDialog.py:77
 #, python-format
 msgid "\"%s\" step already exists!"
 msgstr ""
 
-#: ../DataTypeEditor.py:697
+#: ../DataTypeEditor.py:700
 #, python-format
 msgid "\"%s\" value already defined!"
 msgstr ""
 
-#: ../DataTypeEditor.py:899
+#: ../DataTypeEditor.py:901
 #, python-format
 msgid "\"%s\" value isn't a valid array dimension!"
 msgstr ""
 
-#: ../DataTypeEditor.py:906
+#: ../DataTypeEditor.py:908
 #, python-format
 msgid ""
 "\"%s\" value isn't a valid array dimension!\n"
 "Right value must be greater than left value."
 msgstr ""
 
-#: ../GraphicViewer.py:181
+#: ../PLCControler.py:631
+#, python-format
+msgid "%s \"%s\" can't be pasted as a %s."
+msgstr ""
+
+#: ../GraphicViewer.py:180
 #, python-format
 msgid "%s Graphics"
 msgstr ""
 
-#: ../plcopen/plcopen.py:1276 ../plcopen/plcopen.py:1286
-#: ../plcopen/plcopen.py:1296 ../plcopen/plcopen.py:1306
-#: ../plcopen/plcopen.py:1315
+#: ../plcopen/plcopen.py:1291 ../plcopen/plcopen.py:1301
+#: ../plcopen/plcopen.py:1311 ../plcopen/plcopen.py:1321
+#: ../plcopen/plcopen.py:1330
 #, python-format
 msgid "%s body don't have instances!"
 msgstr ""
 
-#: ../plcopen/plcopen.py:1338 ../plcopen/plcopen.py:1345
+#: ../plcopen/plcopen.py:1353 ../plcopen/plcopen.py:1360
 #, python-format
 msgid "%s body don't have text!"
 msgstr ""
 
-#: ../PLCOpenEditor.py:5034 ../PLCOpenEditor.py:5036 ../PLCOpenEditor.py:5037
+#: ../PLCOpenEditor.py:4267 ../PLCOpenEditor.py:4269 ../PLCOpenEditor.py:4270
 msgid ",   "
 msgstr ""
 
-#: ../PLCOpenEditor.py:3287 ../PLCOpenEditor.py:3450 ../PLCOpenEditor.py:3594
-#: ../Dialogs.py:1802
+#: ../PLCOpenEditor.py:3282 ../PLCOpenEditor.py:3445 ../PLCOpenEditor.py:3589
+#: ../dialogs/SFCTransitionDialog.py:208
 #, python-format
 msgid ", %s"
 msgstr ""
 
-#: ../PLCOpenEditor.py:5032
+#: ../PLCOpenEditor.py:4265
 msgid ". "
 msgstr ""
 
-#: ../DataTypeEditor.py:772
-#, python-format
-msgid "A element named \"%s\" already exists in this structure!"
-msgstr ""
-
-#: ../PLCOpenEditor.py:1585 ../PLCOpenEditor.py:1627 ../PLCOpenEditor.py:1647
-#: ../PLCOpenEditor.py:3304 ../PLCOpenEditor.py:3682 ../PLCOpenEditor.py:3745
+#: ../PLCOpenEditor.py:1371 ../PLCOpenEditor.py:1413 ../PLCOpenEditor.py:1433
+#: ../PLCOpenEditor.py:3299 ../PLCOpenEditor.py:3677 ../PLCOpenEditor.py:3740
 #, python-format
 msgid "A POU has an element named \"%s\". This could cause a conflict. Do you wish to continue?"
 msgstr ""
 
-#: ../PLCOpenEditor.py:1622 ../PLCOpenEditor.py:1642
-#, python-format
-msgid "There is a POU named \"%s\". This could cause a conflict. Do you wish to continue?"
-msgstr ""
-
-#: ../PLCOpenEditor.py:1598 ../PLCOpenEditor.py:1609 ../PLCOpenEditor.py:3463
-#: ../PLCOpenEditor.py:3607 ../PLCOpenEditor.py:3678 ../PLCOpenEditor.py:3741
-#: ../PLCOpenEditor.py:4456 ../Dialogs.py:1537 ../Dialogs.py:2520
-#: ../Dialogs.py:2587
+#: ../PLCOpenEditor.py:1384 ../PLCOpenEditor.py:1395 ../PLCOpenEditor.py:3458
+#: ../PLCOpenEditor.py:3602 ../PLCOpenEditor.py:3673 ../PLCOpenEditor.py:3736
+#: ../VariablePanel.py:694 ../dialogs/PouNameDialog.py:67
+#: ../dialogs/SFCStepDialog.py:187 ../dialogs/SFCStepNameDialog.py:69
 #, python-format
 msgid "A POU named \"%s\" already exists!"
 msgstr ""
 
-#: ../PLCOpenEditor.py:1600 ../PLCOpenEditor.py:1611 ../PLCOpenEditor.py:4461
-#: ../Dialogs.py:1541 ../Dialogs.py:2524
+#: ../VariablePanel.py:1173
+msgid "A location must be selected!"
+msgstr ""
+
+#: ../PLCOpenEditor.py:1386 ../PLCOpenEditor.py:1397 ../VariablePanel.py:699
+#: ../dialogs/SFCStepDialog.py:191 ../dialogs/SFCStepNameDialog.py:73
 #, python-format
 msgid "A variable with \"%s\" as name already exists in this pou!"
 msgstr ""
 
-#: ../PLCOpenEditor.py:447
+#: ../PLCOpenEditor.py:2485
 msgid "About"
 msgstr ""
 
-#: ../PLCOpenEditor.py:2616
+#: ../PLCOpenEditor.py:2388
 msgid "About PLCOpenEditor"
 msgstr ""
 
@@ -269,80 +269,81 @@
 msgid "Absolute number"
 msgstr ""
 
-#: ../Dialogs.py:1482 ../Dialogs.py:2109
+#: ../dialogs/ActionBlockDialog.py:37 ../dialogs/SFCStepDialog.py:132
 msgid "Action"
 msgstr ""
 
-#: ../PLCOpenEditor.py:3583
+#: ../PLCOpenEditor.py:3578
 msgid "Action Name"
 msgstr ""
 
-#: ../PLCOpenEditor.py:3550
+#: ../PLCOpenEditor.py:3545
 msgid "Action Name:"
 msgstr ""
 
-#: ../plcopen/plcopen.py:1073
+#: ../plcopen/plcopen.py:1088
 #, python-format
 msgid "Action with name %s doesn't exist!"
 msgstr ""
 
-#: ../PLCControler.py:83
+#: ../PLCControler.py:90
 msgid "Actions"
 msgstr ""
 
-#: ../Dialogs.py:2332
+#: ../dialogs/ActionBlockDialog.py:260
 msgid "Actions:"
 msgstr ""
 
-#: ../PLCOpenEditor.py:4246 ../Dialogs.py:2346 ../DataTypeEditor.py:539
+#: ../VariablePanel.py:456 ../dialogs/ActionBlockDialog.py:274
+#: ../DataTypeEditor.py:539
 msgid "Add"
 msgstr ""
 
-#: ../PLCOpenEditor.py:1802 ../PLCOpenEditor.py:1875
+#: ../PLCOpenEditor.py:1589 ../PLCOpenEditor.py:1675
 msgid "Add Action"
 msgstr ""
 
-#: ../PLCOpenEditor.py:1858
+#: ../PLCOpenEditor.py:1658
 msgid "Add Configuration"
 msgstr ""
 
-#: ../PLCOpenEditor.py:1846
+#: ../PLCOpenEditor.py:1638
 msgid "Add DataType"
 msgstr ""
 
-#: ../Viewer.py:402
+#: ../Viewer.py:436
 msgid "Add Divergence Branch"
 msgstr ""
 
-#: ../PLCOpenEditor.py:386
+#: ../PLCOpenEditor.py:328
 msgid "Add Element"
 msgstr ""
 
-#: ../RessourceEditor.py:409
+#: ../RessourceEditor.py:412
 msgid "Add Instance"
 msgstr ""
 
-#: ../PLCOpenEditor.py:1852
+#: ../PLCOpenEditor.py:1645
 msgid "Add Pou"
 msgstr ""
 
-#: ../PLCOpenEditor.py:1829 ../PLCOpenEditor.py:1886
+#: ../PLCOpenEditor.py:1621 ../PLCOpenEditor.py:1686
 msgid "Add Resource"
 msgstr ""
 
-#: ../RessourceEditor.py:373
+#: ../RessourceEditor.py:376
 msgid "Add Task"
 msgstr ""
 
-#: ../PLCOpenEditor.py:1799 ../PLCOpenEditor.py:1864
+#: ../PLCOpenEditor.py:1586 ../PLCOpenEditor.py:1664
 msgid "Add Transition"
 msgstr ""
 
-#: ../Viewer.py:397
+#: ../Viewer.py:431
 msgid "Add Wire Segment"
 msgstr ""
 
-#: ../PLCOpenEditor.py:2361
+#: ../PLCOpenEditor.py:2164
 msgid "Add a new data type"
 msgstr ""
 
@@ -350,7 +351,7 @@
 msgid "Add a new initial step"
 msgstr ""
 
-#: ../Viewer.py:1971 ../SFCViewer.py:698
+#: ../Viewer.py:1995 ../SFCViewer.py:698
 msgid "Add a new jump"
 msgstr ""
 
@@ -358,11 +359,11 @@
 msgid "Add a new step"
 msgstr ""
 
-#: ../PLCOpenEditor.py:2418
+#: ../PLCOpenEditor.py:2208
 msgid "Add new configuration"
 msgstr ""
 
-#: ../PLCOpenEditor.py:2433
+#: ../PLCOpenEditor.py:2219
 msgid "Add new resource"
 msgstr ""
 
@@ -374,14 +375,19 @@
 msgid "Additional function blocks"
 msgstr ""
 
-#: ../Viewer.py:411
+#: ../Viewer.py:445
 msgid "Alignment"
 msgstr ""
 
-#: ../PLCOpenEditor.py:3860
+#: ../VariablePanel.py:62 ../VariablePanel.py:990 ../VariablePanel.py:1107
 msgid "All"
 msgstr ""
 
+#: ../DataTypeEditor.py:775
+#, python-format
+msgid "An element named \"%s\" already exists in this structure!"
+msgstr ""
+
 #: ../plcopen/iec_std.csv:31
 msgid "Arc cosine"
 msgstr ""
@@ -406,15 +412,15 @@
 msgid "Assignment"
 msgstr ""
 
-#: ../Dialogs.py:648
+#: ../dialogs/FBDVariableDialog.py:264
 msgid "At least a variable or an expression must be selected!"
 msgstr ""
 
-#: ../PLCOpenEditor.py:2943
+#: ../PLCOpenEditor.py:2938
 msgid "Author"
 msgstr ""
 
-#: ../PLCOpenEditor.py:2928
+#: ../PLCOpenEditor.py:2923
 msgid "Author Name (optional):"
 msgstr ""
 
@@ -422,7 +428,7 @@
 msgid "Base Type:"
 msgstr ""
 
-#: ../PLCOpenEditor.py:4493 ../DataTypeEditor.py:798
+#: ../VariablePanel.py:732 ../DataTypeEditor.py:801
 msgid "Base Types"
 msgstr ""
 
@@ -454,50 +460,54 @@
 msgid "Bitwise inverting"
 msgstr ""
 
-#: ../Dialogs.py:114
+#: ../dialogs/FBDBlockDialog.py:113
 msgid "Block Properties"
 msgstr ""
 
-#: ../PLCOpenEditor.py:2079 ../Dialogs.py:269
+#: ../PLCOpenEditor.py:1883 ../dialogs/FBDBlockDialog.py:268
 msgid "Block Types"
 msgstr ""
 
-#: ../Viewer.py:369
+#: ../Viewer.py:403
 msgid "Bottom"
 msgstr ""
 
-#: ../PLCOpenEditor.py:2033
+#: ../VariablePanel.py:1049
+msgid "Browse Locations"
+msgstr ""
+
+#: ../PLCOpenEditor.py:1838
 msgid "CSV Log"
 msgstr ""
 
-#: ../PLCOpenEditor.py:4074
+#: ../plcopen/plcopen.py:1233 ../plcopen/plcopen.py:1247
+#: ../plcopen/plcopen.py:1268 ../plcopen/plcopen.py:1284
+msgid "Can only generate execution order on FBD networks!"
+msgstr ""
+
+#: ../VariablePanel.py:284
 msgid "Can only give a location to local or global variables"
 msgstr ""
 
-#: ../plcopen/plcopen.py:1218 ../plcopen/plcopen.py:1232
-#: ../plcopen/plcopen.py:1253 ../plcopen/plcopen.py:1269
-msgid "Can only generate execution order on FBD networks!"
-msgstr ""
-
-#: ../PLCOpenEditor.py:4072
+#: ../PLCOpenEditor.py:2623
+#, python-format
+msgid "Can't generate program to file %s!"
+msgstr ""
+
+#: ../VariablePanel.py:282
 msgid "Can't give a location to a function block instance"
 msgstr ""
 
-#: ../PLCOpenEditor.py:1094
-#, python-format
-msgid "Can't generate program to file %s!"
-msgstr ""
-
-#: ../PLCOpenEditor.py:1126
+#: ../PLCOpenEditor.py:2654
 #, python-format
 msgid "Can't save project to file %s!"
 msgstr ""
 
-#: ../Viewer.py:360
+#: ../Viewer.py:394
 msgid "Center"
 msgstr ""
 
-#: ../PLCOpenEditor.py:1818
+#: ../PLCOpenEditor.py:1610
 msgid "Change POU Type To"
 msgstr ""
 
@@ -505,43 +515,39 @@
 msgid "Character string"
 msgstr ""
 
-#: ../PLCOpenEditor.py:1033 ../PLCOpenEditor.py:1084 ../PLCOpenEditor.py:1120
+#: ../PLCOpenEditor.py:2589 ../PLCOpenEditor.py:2613 ../PLCOpenEditor.py:2648
 msgid "Choose a file"
 msgstr ""
 
-#: ../PLCOpenEditor.py:3850 ../PLCOpenEditor.py:3851
+#: ../VariablePanel.py:52 ../VariablePanel.py:53
 msgid "Class"
 msgstr ""
 
-#: ../PLCOpenEditor.py:4238
+#: ../VariablePanel.py:448
 msgid "Class Filter:"
 msgstr ""
 
-#: ../Dialogs.py:508
+#: ../dialogs/FBDVariableDialog.py:124
 msgid "Class:"
 msgstr ""
 
-#: ../PLCOpenEditor.py:425
+#: ../PLCOpenEditor.py:367
 msgid "Clear Errors\tCTRL+K"
 msgstr ""
 
-#: ../Viewer.py:407
+#: ../Viewer.py:441
 msgid "Clear Execution Order"
 msgstr ""
 
-#: ../PLCOpenEditor.py:346
-msgid "Close\tCTRL+Q"
-msgstr ""
-
-#: ../PLCOpenEditor.py:963
+#: ../PLCOpenEditor.py:873
 msgid "Close Application"
 msgstr ""
 
-#: ../PLCOpenEditor.py:319
+#: ../PLCOpenEditor.py:2441
 msgid "Close Project"
 msgstr ""
 
-#: ../PLCOpenEditor.py:316
+#: ../PLCOpenEditor.py:2439
 msgid "Close Tab\tCTRL+W"
 msgstr ""
 
@@ -549,11 +555,11 @@
 msgid "Comment"
 msgstr ""
 
-#: ../PLCOpenEditor.py:2912
+#: ../PLCOpenEditor.py:2907
 msgid "Company Name (required):"
 msgstr ""
 
-#: ../PLCOpenEditor.py:2920
+#: ../PLCOpenEditor.py:2915
 msgid "Company URL (optional):"
 msgstr ""
 
@@ -565,39 +571,39 @@
 msgid "Concatenation"
 msgstr ""
 
-#: ../PLCOpenEditor.py:396
+#: ../PLCOpenEditor.py:338
 msgid "Configuration"
 msgstr ""
 
-#: ../PLCControler.py:84
+#: ../PLCControler.py:91
 msgid "Configurations"
 msgstr ""
 
-#: ../Dialogs.py:1737
+#: ../dialogs/SFCTransitionDialog.py:143
 msgid "Connection"
 msgstr ""
 
-#: ../Dialogs.py:784
+#: ../dialogs/ConnectionDialog.py:101
 msgid "Connection Properties"
 msgstr ""
 
-#: ../Dialogs.py:800
+#: ../dialogs/ConnectionDialog.py:117
 msgid "Connector"
 msgstr ""
 
-#: ../Dialogs.py:1459
+#: ../dialogs/SFCStepDialog.py:109
 msgid "Connectors:"
 msgstr ""
 
-#: ../PLCOpenEditor.py:3850 ../PLCOpenEditor.py:3851
+#: ../VariablePanel.py:52 ../VariablePanel.py:53
 msgid "Constant"
 msgstr ""
 
-#: ../PLCOpenEditor.py:3002
+#: ../PLCOpenEditor.py:2997
 msgid "Content Description (optional):"
 msgstr ""
 
-#: ../Dialogs.py:806
+#: ../dialogs/ConnectionDialog.py:123
 msgid "Continuation"
 msgstr ""
 
@@ -617,7 +623,11 @@
 msgid "Conversion to time-of-day"
 msgstr ""
 
-#: ../PLCOpenEditor.py:381
+#: ../PLCOpenEditor.py:1597
+msgid "Copy"
+msgstr ""
+
+#: ../PLCOpenEditor.py:323
 msgid "Copy\tCTRL+C"
 msgstr ""
 
@@ -625,91 +635,95 @@
 msgid "Cosine"
 msgstr ""
 
-#: ../PLCOpenEditor.py:3225
+#: ../PLCControler.py:617 ../PLCControler.py:652
+msgid "Couldn't paste non-POU object."
+msgstr ""
+
+#: ../PLCOpenEditor.py:3220
 msgid "Create a new POU"
 msgstr ""
 
-#: ../PLCOpenEditor.py:1806 ../PLCOpenEditor.py:2463
+#: ../PLCOpenEditor.py:1594 ../PLCOpenEditor.py:2240
 msgid "Create a new POU from"
 msgstr ""
 
-#: ../PLCOpenEditor.py:3546
+#: ../PLCOpenEditor.py:3541
 msgid "Create a new action"
 msgstr ""
 
-#: ../PLCOpenEditor.py:214
+#: ../PLCOpenEditor.py:215
 msgid "Create a new action block"
 msgstr ""
 
-#: ../PLCOpenEditor.py:169 ../PLCOpenEditor.py:196 ../PLCOpenEditor.py:226
+#: ../PLCOpenEditor.py:170 ../PLCOpenEditor.py:197 ../PLCOpenEditor.py:227
 msgid "Create a new block"
 msgstr ""
 
-#: ../PLCOpenEditor.py:190
+#: ../PLCOpenEditor.py:191
 msgid "Create a new branch"
 msgstr ""
 
-#: ../PLCOpenEditor.py:184
+#: ../PLCOpenEditor.py:185
 msgid "Create a new coil"
 msgstr ""
 
-#: ../PLCOpenEditor.py:163 ../PLCOpenEditor.py:175 ../PLCOpenEditor.py:202
+#: ../PLCOpenEditor.py:164 ../PLCOpenEditor.py:176 ../PLCOpenEditor.py:203
 msgid "Create a new comment"
 msgstr ""
 
-#: ../PLCOpenEditor.py:172 ../PLCOpenEditor.py:199 ../PLCOpenEditor.py:229
+#: ../PLCOpenEditor.py:173 ../PLCOpenEditor.py:200 ../PLCOpenEditor.py:230
 msgid "Create a new connection"
 msgstr ""
 
-#: ../PLCOpenEditor.py:187 ../PLCOpenEditor.py:235
+#: ../PLCOpenEditor.py:188 ../PLCOpenEditor.py:236
 msgid "Create a new contact"
 msgstr ""
 
-#: ../PLCOpenEditor.py:217
+#: ../PLCOpenEditor.py:218
 msgid "Create a new divergence"
 msgstr ""
 
-#: ../Dialogs.py:1976
+#: ../dialogs/SFCDivergenceDialog.py:103
 msgid "Create a new divergence or convergence"
 msgstr ""
 
-#: ../PLCOpenEditor.py:205
+#: ../PLCOpenEditor.py:206
 msgid "Create a new initial step"
 msgstr ""
 
-#: ../PLCOpenEditor.py:220
+#: ../PLCOpenEditor.py:221
 msgid "Create a new jump"
 msgstr ""
 
-#: ../PLCOpenEditor.py:178 ../PLCOpenEditor.py:232
+#: ../PLCOpenEditor.py:179 ../PLCOpenEditor.py:233
 msgid "Create a new power rail"
 msgstr ""
 
-#: ../PLCOpenEditor.py:181
+#: ../PLCOpenEditor.py:182
 msgid "Create a new rung"
 msgstr ""
 
-#: ../PLCOpenEditor.py:208
+#: ../PLCOpenEditor.py:209
 msgid "Create a new step"
 msgstr ""
 
-#: ../PLCOpenEditor.py:211 ../PLCOpenEditor.py:3402
+#: ../PLCOpenEditor.py:212 ../PLCOpenEditor.py:3397
 msgid "Create a new transition"
 msgstr ""
 
-#: ../PLCOpenEditor.py:166 ../PLCOpenEditor.py:193 ../PLCOpenEditor.py:223
+#: ../PLCOpenEditor.py:167 ../PLCOpenEditor.py:194 ../PLCOpenEditor.py:224
 msgid "Create a new variable"
 msgstr ""
 
-#: ../PLCOpenEditor.py:379
+#: ../PLCOpenEditor.py:321
 msgid "Cut\tCTRL+X"
 msgstr ""
 
-#: ../PLCOpenEditor.py:388
+#: ../PLCOpenEditor.py:330
 msgid "Data Type"
 msgstr ""
 
-#: ../PLCControler.py:83
+#: ../PLCControler.py:90
 msgid "Data Types"
 msgstr ""
 
@@ -729,25 +743,35 @@
 msgid "Date subtraction"
 msgstr ""
 
-#: ../PLCOpenEditor.py:400 ../PLCOpenEditor.py:1823 ../PLCOpenEditor.py:1832
-#: ../PLCOpenEditor.py:1838 ../PLCOpenEditor.py:4251 ../PLCOpenEditor.py:4864
-#: ../Viewer.py:416 ../Dialogs.py:2351 ../DataTypeEditor.py:544
+#: ../Viewer.py:2848
+#, python-format
+msgid "Debug: %s"
+msgstr ""
+
+#: ../PLCOpenEditor.py:618
+msgid "Debugger"
+msgstr ""
+
+#: ../PLCOpenEditor.py:342 ../PLCOpenEditor.py:1615 ../PLCOpenEditor.py:1624
+#: ../PLCOpenEditor.py:1630 ../PLCOpenEditor.py:4091 ../Viewer.py:450
+#: ../VariablePanel.py:461 ../dialogs/ActionBlockDialog.py:279
+#: ../DataTypeEditor.py:544
 msgid "Delete"
 msgstr ""
 
-#: ../Viewer.py:404
+#: ../Viewer.py:438
 msgid "Delete Divergence Branch"
 msgstr ""
 
-#: ../RessourceEditor.py:414
+#: ../RessourceEditor.py:417
 msgid "Delete Instance"
 msgstr ""
 
-#: ../RessourceEditor.py:378
+#: ../RessourceEditor.py:381
 msgid "Delete Task"
 msgstr ""
 
-#: ../Viewer.py:399
+#: ../Viewer.py:433
 msgid "Delete Wire Segment"
 msgstr ""
 
@@ -773,6 +797,10 @@
 msgid "Dimensions:"
 msgstr ""
 
+#: ../VariablePanel.py:1066
+msgid "Direction:"
+msgstr ""
+
 #: ../DataTypeEditor.py:236
 msgid "Directly"
 msgstr ""
@@ -785,7 +813,11 @@
 msgid "Division"
 msgstr ""
 
-#: ../PLCOpenEditor.py:1088
+#: ../VariablePanel.py:52 ../VariablePanel.py:53
+msgid "Documentation"
+msgstr ""
+
+#: ../PLCOpenEditor.py:2617
 msgid "Done"
 msgstr ""
 
@@ -795,7 +827,7 @@
 "The down-counter can be used to signal when a count has reached zero, on counting down from a preset value."
 msgstr ""
 
-#: ../Dialogs.py:2105
+#: ../dialogs/ActionBlockDialog.py:33
 msgid "Duration"
 msgstr ""
 
@@ -803,27 +835,27 @@
 msgid "Edit"
 msgstr ""
 
-#: ../Viewer.py:414
+#: ../Viewer.py:448
 msgid "Edit Block"
 msgstr ""
 
-#: ../Dialogs.py:1098
+#: ../dialogs/LDElementDialog.py:193
 msgid "Edit Coil Values"
 msgstr ""
 
-#: ../Dialogs.py:1093
+#: ../dialogs/LDElementDialog.py:188
 msgid "Edit Contact Values"
 msgstr ""
 
-#: ../Dialogs.py:1451
+#: ../dialogs/SFCStepDialog.py:101
 msgid "Edit Step"
 msgstr ""
 
-#: ../Dialogs.py:2328
+#: ../dialogs/ActionBlockDialog.py:256
 msgid "Edit action block properties"
 msgstr ""
 
-#: ../Viewer.py:1796 ../Viewer.py:1798 ../Viewer.py:2297 ../Viewer.py:2299
+#: ../Viewer.py:1820 ../Viewer.py:1822 ../Viewer.py:2321 ../Viewer.py:2323
 msgid "Edit comment"
 msgstr ""
 
@@ -831,7 +863,7 @@
 msgid "Edit item"
 msgstr ""
 
-#: ../Viewer.py:2262
+#: ../Viewer.py:2286
 msgid "Edit jump target"
 msgstr ""
 
@@ -839,7 +871,7 @@
 msgid "Edit step name"
 msgstr ""
 
-#: ../Dialogs.py:1698
+#: ../dialogs/SFCTransitionDialog.py:104
 msgid "Edit transition"
 msgstr ""
 
@@ -847,7 +879,7 @@
 msgid "Elements :"
 msgstr ""
 
-#: ../PLCOpenEditor.py:376
+#: ../PLCOpenEditor.py:318
 msgid "Enable Undo/Redo"
 msgstr ""
 
@@ -859,41 +891,48 @@
 msgid "Equal to"
 msgstr ""
 
-#: ../PLCOpenEditor.py:955 ../PLCOpenEditor.py:1095 ../PLCOpenEditor.py:1100
-#: ../PLCOpenEditor.py:1585 ../PLCOpenEditor.py:1622 ../PLCOpenEditor.py:1627
-#: ../PLCOpenEditor.py:1642 ../PLCOpenEditor.py:1647 ../PLCOpenEditor.py:2493
-#: ../PLCOpenEditor.py:2522 ../PLCOpenEditor.py:3043 ../PLCOpenEditor.py:3135
-#: ../PLCOpenEditor.py:3139 ../PLCOpenEditor.py:3143 ../PLCOpenEditor.py:3147
-#: ../PLCOpenEditor.py:3288 ../PLCOpenEditor.py:3292 ../PLCOpenEditor.py:3296
-#: ../PLCOpenEditor.py:3300 ../PLCOpenEditor.py:3451 ../PLCOpenEditor.py:3455
-#: ../PLCOpenEditor.py:3459 ../PLCOpenEditor.py:3463 ../PLCOpenEditor.py:3467
-#: ../PLCOpenEditor.py:3595 ../PLCOpenEditor.py:3599 ../PLCOpenEditor.py:3603
-#: ../PLCOpenEditor.py:3607 ../PLCOpenEditor.py:3611 ../PLCOpenEditor.py:3666
-#: ../PLCOpenEditor.py:3670 ../PLCOpenEditor.py:3674 ../PLCOpenEditor.py:3678
-#: ../PLCOpenEditor.py:3729 ../PLCOpenEditor.py:3733 ../PLCOpenEditor.py:3737
-#: ../PLCOpenEditor.py:3741 ../PLCOpenEditor.py:4121 ../PLCOpenEditor.py:4446
-#: ../PLCOpenEditor.py:4451 ../PLCOpenEditor.py:4456 ../PLCOpenEditor.py:4461
-#: ../PLCOpenEditor.py:4797 ../PLCOpenEditor.py:5059 ../PLCOpenEditor.py:5069
-#: ../Viewer.py:335 ../TextViewer.py:224 ../LDViewer.py:628 ../LDViewer.py:850
-#: ../LDViewer.py:854 ../Dialogs.py:241 ../Dialogs.py:245 ../Dialogs.py:249
-#: ../Dialogs.py:253 ../Dialogs.py:257 ../Dialogs.py:261 ../Dialogs.py:648
-#: ../Dialogs.py:652 ../Dialogs.py:882 ../Dialogs.py:886 ../Dialogs.py:890
-#: ../Dialogs.py:894 ../Dialogs.py:898 ../Dialogs.py:1525 ../Dialogs.py:1529
-#: ../Dialogs.py:1533 ../Dialogs.py:1537 ../Dialogs.py:1541 ../Dialogs.py:1545
-#: ../Dialogs.py:1803 ../Dialogs.py:2508 ../Dialogs.py:2512 ../Dialogs.py:2516
-#: ../Dialogs.py:2520 ../Dialogs.py:2524 ../Dialogs.py:2528 ../Dialogs.py:2575
-#: ../Dialogs.py:2579 ../Dialogs.py:2583 ../Dialogs.py:2587
-#: ../DataTypeEditor.py:697 ../DataTypeEditor.py:702 ../DataTypeEditor.py:757
-#: ../DataTypeEditor.py:762 ../DataTypeEditor.py:772 ../DataTypeEditor.py:899
-#: ../DataTypeEditor.py:906
+#: ../PLCOpenEditor.py:865 ../PLCOpenEditor.py:1371 ../PLCOpenEditor.py:1408
+#: ../PLCOpenEditor.py:1413 ../PLCOpenEditor.py:1428 ../PLCOpenEditor.py:1433
+#: ../PLCOpenEditor.py:2267 ../PLCOpenEditor.py:2624 ../PLCOpenEditor.py:2629
+#: ../PLCOpenEditor.py:3038 ../PLCOpenEditor.py:3130 ../PLCOpenEditor.py:3134
+#: ../PLCOpenEditor.py:3138 ../PLCOpenEditor.py:3142 ../PLCOpenEditor.py:3283
+#: ../PLCOpenEditor.py:3287 ../PLCOpenEditor.py:3291 ../PLCOpenEditor.py:3295
+#: ../PLCOpenEditor.py:3446 ../PLCOpenEditor.py:3450 ../PLCOpenEditor.py:3454
+#: ../PLCOpenEditor.py:3458 ../PLCOpenEditor.py:3462 ../PLCOpenEditor.py:3590
+#: ../PLCOpenEditor.py:3594 ../PLCOpenEditor.py:3598 ../PLCOpenEditor.py:3602
+#: ../PLCOpenEditor.py:3606 ../PLCOpenEditor.py:3661 ../PLCOpenEditor.py:3665
+#: ../PLCOpenEditor.py:3669 ../PLCOpenEditor.py:3673 ../PLCOpenEditor.py:3724
+#: ../PLCOpenEditor.py:3728 ../PLCOpenEditor.py:3732 ../PLCOpenEditor.py:3736
+#: ../PLCOpenEditor.py:4024 ../PLCOpenEditor.py:4292 ../PLCOpenEditor.py:4302
+#: ../Viewer.py:369 ../TextViewer.py:250 ../LDViewer.py:628 ../LDViewer.py:850
+#: ../LDViewer.py:854 ../VariablePanel.py:331 ../VariablePanel.py:684
+#: ../VariablePanel.py:689 ../VariablePanel.py:694 ../VariablePanel.py:699
+#: ../VariablePanel.py:1173 ../dialogs/ConnectionDialog.py:199
+#: ../dialogs/ConnectionDialog.py:203 ../dialogs/ConnectionDialog.py:207
+#: ../dialogs/ConnectionDialog.py:211 ../dialogs/ConnectionDialog.py:215
+#: ../dialogs/FBDBlockDialog.py:240 ../dialogs/FBDBlockDialog.py:244
+#: ../dialogs/FBDBlockDialog.py:248 ../dialogs/FBDBlockDialog.py:252
+#: ../dialogs/FBDBlockDialog.py:256 ../dialogs/FBDBlockDialog.py:260
+#: ../dialogs/FBDVariableDialog.py:264 ../dialogs/FBDVariableDialog.py:268
+#: ../dialogs/PouNameDialog.py:55 ../dialogs/PouNameDialog.py:59
+#: ../dialogs/PouNameDialog.py:63 ../dialogs/PouNameDialog.py:67
+#: ../dialogs/SFCStepDialog.py:175 ../dialogs/SFCStepDialog.py:179
+#: ../dialogs/SFCStepDialog.py:183 ../dialogs/SFCStepDialog.py:187
+#: ../dialogs/SFCStepDialog.py:191 ../dialogs/SFCStepDialog.py:195
+#: ../dialogs/SFCStepNameDialog.py:57 ../dialogs/SFCStepNameDialog.py:61
+#: ../dialogs/SFCStepNameDialog.py:65 ../dialogs/SFCStepNameDialog.py:69
+#: ../dialogs/SFCStepNameDialog.py:73 ../dialogs/SFCStepNameDialog.py:77
+#: ../dialogs/SFCTransitionDialog.py:209 ../DataTypeEditor.py:700
+#: ../DataTypeEditor.py:705 ../DataTypeEditor.py:760 ../DataTypeEditor.py:765
+#: ../DataTypeEditor.py:775 ../DataTypeEditor.py:901 ../DataTypeEditor.py:908
 msgid "Error"
 msgstr ""
 
-#: ../Dialogs.py:134
+#: ../dialogs/FBDBlockDialog.py:133
 msgid "Execution Control:"
 msgstr ""
 
-#: ../Dialogs.py:130 ../Dialogs.py:516
+#: ../dialogs/FBDBlockDialog.py:129 ../dialogs/FBDVariableDialog.py:132
 msgid "Execution Order:"
 msgstr ""
 
@@ -905,20 +944,20 @@
 msgid "Exponentiation"
 msgstr ""
 
-#: ../Dialogs.py:512
+#: ../dialogs/FBDVariableDialog.py:128
 msgid "Expression:"
 msgstr ""
 
-#: ../PLCOpenEditor.py:3862
+#: ../VariablePanel.py:64
 msgid "External"
 msgstr ""
 
-#: ../PLCOpenEditor.py:2980 ../PLCOpenEditor.py:3170 ../PLCOpenEditor.py:3180
-#: ../PLCOpenEditor.py:3359 ../PLCOpenEditor.py:3503
+#: ../PLCOpenEditor.py:2975 ../PLCOpenEditor.py:3165 ../PLCOpenEditor.py:3175
+#: ../PLCOpenEditor.py:3354 ../PLCOpenEditor.py:3498
 msgid "FBD"
 msgstr ""
 
-#: ../Viewer.py:394 ../Dialogs.py:1060
+#: ../Viewer.py:428 ../dialogs/LDElementDialog.py:155
 msgid "Falling Edge"
 msgstr ""
 
@@ -928,7 +967,7 @@
 "The output produces a single pulse when a falling edge is detected."
 msgstr ""
 
-#: ../PLCOpenEditor.py:303
+#: ../PLCOpenEditor.py:304
 msgid "File"
 msgstr ""
 
@@ -936,66 +975,66 @@
 msgid "Find position"
 msgstr ""
 
-#: ../PLCOpenEditor.py:3043 ../PLCOpenEditor.py:3288 ../PLCOpenEditor.py:3451
-#: ../PLCOpenEditor.py:3595 ../Dialogs.py:1803
+#: ../PLCOpenEditor.py:3038 ../PLCOpenEditor.py:3283 ../PLCOpenEditor.py:3446
+#: ../PLCOpenEditor.py:3590 ../dialogs/SFCTransitionDialog.py:209
 #, python-format
 msgid "Form isn't complete. %s must be filled!"
 msgstr ""
 
-#: ../Dialogs.py:245 ../Dialogs.py:882
+#: ../dialogs/ConnectionDialog.py:199 ../dialogs/FBDBlockDialog.py:244
 msgid "Form isn't complete. Name must be filled!"
 msgstr ""
 
-#: ../Dialogs.py:241
+#: ../dialogs/FBDBlockDialog.py:240
 msgid "Form isn't complete. Valid block type must be selected!"
 msgstr ""
 
-#: ../PLCOpenEditor.py:390
+#: ../PLCOpenEditor.py:332
 msgid "Function"
 msgstr ""
 
-#: ../PLCOpenEditor.py:392 ../PLCOpenEditor.py:1813
+#: ../PLCOpenEditor.py:334 ../PLCOpenEditor.py:1605
 msgid "Function Block"
 msgstr ""
 
-#: ../PLCOpenEditor.py:4508
+#: ../VariablePanel.py:758
 msgid "Function Block Types"
 msgstr ""
 
-#: ../PLCControler.py:82
+#: ../PLCControler.py:89
 msgid "Function Blocks"
 msgstr ""
 
-#: ../Viewer.py:227
+#: ../Viewer.py:229
 msgid "Function Blocks can't be used in Functions!"
 msgstr ""
 
-#: ../Viewer.py:229
+#: ../Viewer.py:231
 msgid "Function Blocks can't be used in Transitions!"
 msgstr ""
 
-#: ../PLCControler.py:1673
+#: ../PLCControler.py:1724
 #, python-format
 msgid "FunctionBlock \"%s\" can't be pasted in a Function!!!"
 msgstr ""
 
-#: ../PLCControler.py:82
+#: ../PLCControler.py:89
 msgid "Functions"
 msgstr ""
 
-#: ../PLCOpenEditor.py:328
+#: ../PLCOpenEditor.py:2448
 msgid "Generate Program\tCTRL+G"
 msgstr ""
 
-#: ../PLCOpenEditor.py:3863
+#: ../VariablePanel.py:65
 msgid "Global"
 msgstr ""
 
-#: ../PLCOpenEditor.py:2030
+#: ../PLCOpenEditor.py:1835
 msgid "Graphic Panel"
 msgstr ""
 
-#: ../PLCOpenEditor.py:2985
+#: ../PLCOpenEditor.py:2980
 msgid "Graphics"
 msgstr ""
 
@@ -1007,7 +1046,7 @@
 msgid "Greater than or equal to"
 msgstr ""
 
-#: ../PLCOpenEditor.py:2964
+#: ../PLCOpenEditor.py:2959
 msgid "Height:"
 msgstr ""
 
@@ -1021,35 +1060,35 @@
 "The hysteresis function block provides a hysteresis boolean output driven by the difference of two floating point (REAL) inputs XIN1 and XIN2."
 msgstr ""
 
-#: ../PLCOpenEditor.py:3170 ../PLCOpenEditor.py:3180 ../PLCOpenEditor.py:3359
-#: ../PLCOpenEditor.py:3503
+#: ../PLCOpenEditor.py:3165 ../PLCOpenEditor.py:3175 ../PLCOpenEditor.py:3354
+#: ../PLCOpenEditor.py:3498
 msgid "IL"
 msgstr ""
 
-#: ../PLCOpenEditor.py:3861 ../Dialogs.py:426
+#: ../VariablePanel.py:63 ../dialogs/FBDVariableDialog.py:42
 msgid "InOut"
 msgstr ""
 
-#: ../PLCOpenEditor.py:4091
+#: ../VariablePanel.py:301
 #, python-format
 msgid "Incompatible data types between \"%s\" and \"%s\""
 msgstr ""
 
-#: ../PLCOpenEditor.py:4102
+#: ../VariablePanel.py:312
 #, python-format
 msgid "Incompatible size of data between \"%s\" and \"%s\""
 msgstr ""
 
-#: ../PLCOpenEditor.py:4098
+#: ../VariablePanel.py:308
 #, python-format
 msgid "Incompatible size of data between \"%s\" and \"BOOL\""
 msgstr ""
 
-#: ../Dialogs.py:2105
+#: ../dialogs/ActionBlockDialog.py:33
 msgid "Indicator"
 msgstr ""
 
-#: ../PLCOpenEditor.py:3850 ../PLCOpenEditor.py:3851 ../DataTypeEditor.py:46
+#: ../VariablePanel.py:52 ../VariablePanel.py:53 ../DataTypeEditor.py:46
 msgid "Initial Value"
 msgstr ""
 
@@ -1058,15 +1097,17 @@
 msgid "Initial Value:"
 msgstr ""
 
-#: ../Dialogs.py:1725 ../Dialogs.py:1793 ../Dialogs.py:2109
+#: ../dialogs/ActionBlockDialog.py:37 ../dialogs/SFCTransitionDialog.py:131
+#: ../dialogs/SFCTransitionDialog.py:199
 msgid "Inline"
 msgstr ""
 
-#: ../PLCOpenEditor.py:3861 ../Dialogs.py:425 ../Dialogs.py:1472
+#: ../VariablePanel.py:63 ../VariablePanel.py:991
+#: ../dialogs/FBDVariableDialog.py:41 ../dialogs/SFCStepDialog.py:122
 msgid "Input"
 msgstr ""
 
-#: ../Dialogs.py:126
+#: ../dialogs/FBDBlockDialog.py:125
 msgid "Inputs:"
 msgstr ""
 
@@ -1074,16 +1115,16 @@
 msgid "Insertion (into)"
 msgstr ""
 
-#: ../plcopen/plcopen.py:1329
+#: ../plcopen/plcopen.py:1344
 #, python-format
 msgid "Instance with id %d doesn't exist!"
 msgstr ""
 
-#: ../PLCOpenEditor.py:561 ../PLCOpenEditor.py:599
+#: ../PLCOpenEditor.py:559
 msgid "Instances"
 msgstr ""
 
-#: ../RessourceEditor.py:394
+#: ../RessourceEditor.py:397
 msgid "Instances:"
 msgstr ""
 
@@ -1093,35 +1134,35 @@
 "The integral function block integrates the value of input XIN over time."
 msgstr ""
 
-#: ../PLCOpenEditor.py:3860
+#: ../VariablePanel.py:62
 msgid "Interface"
 msgstr ""
 
-#: ../RessourceEditor.py:79
+#: ../RessourceEditor.py:82
 msgid "Interval"
 msgstr ""
 
-#: ../PLCControler.py:1654 ../PLCControler.py:1688
+#: ../PLCControler.py:1701 ../PLCControler.py:1739
 msgid "Invalid plcopen element(s)!!!"
 msgstr ""
 
-#: ../PLCOpenEditor.py:4786 ../PLCOpenEditor.py:4789
+#: ../PLCOpenEditor.py:4013 ../PLCOpenEditor.py:4016
 #, python-format
 msgid "Invalid value \"%s\" for debug variable"
 msgstr ""
 
-#: ../PLCOpenEditor.py:4079 ../PLCOpenEditor.py:4082
+#: ../VariablePanel.py:289 ../VariablePanel.py:292
 #, python-format
 msgid "Invalid value \"%s\" for location"
 msgstr ""
 
-#: ../Viewer.py:211 ../Viewer.py:214
+#: ../Viewer.py:214 ../Viewer.py:217
 #, python-format
 msgid "Invalid value \"%s\" for viewer block"
 msgstr ""
 
-#: ../PLCOpenEditor.py:2980 ../PLCOpenEditor.py:3170 ../PLCOpenEditor.py:3180
-#: ../PLCOpenEditor.py:3359 ../PLCOpenEditor.py:3503
+#: ../PLCOpenEditor.py:2975 ../PLCOpenEditor.py:3165 ../PLCOpenEditor.py:3175
+#: ../PLCOpenEditor.py:3354 ../PLCOpenEditor.py:3498
 msgid "LD"
 msgstr ""
 
@@ -1130,23 +1171,23 @@
 msgid "Ladder element with id %d is on more than one rung."
 msgstr ""
 
-#: ../PLCOpenEditor.py:3278 ../PLCOpenEditor.py:3441 ../PLCOpenEditor.py:3585
+#: ../PLCOpenEditor.py:3273 ../PLCOpenEditor.py:3436 ../PLCOpenEditor.py:3580
 msgid "Language"
 msgstr ""
 
-#: ../PLCOpenEditor.py:2994
+#: ../PLCOpenEditor.py:2989
 msgid "Language (optional):"
 msgstr ""
 
-#: ../PLCOpenEditor.py:3246 ../PLCOpenEditor.py:3414 ../PLCOpenEditor.py:3558
+#: ../PLCOpenEditor.py:3241 ../PLCOpenEditor.py:3409 ../PLCOpenEditor.py:3553
 msgid "Language:"
 msgstr ""
 
-#: ../Viewer.py:358
+#: ../Viewer.py:392
 msgid "Left"
 msgstr ""
 
-#: ../Dialogs.py:1287
+#: ../dialogs/LDPowerRailDialog.py:118
 msgid "Left PowerRail"
 msgstr ""
 
@@ -1162,7 +1203,7 @@
 msgid "Less than or equal to"
 msgstr ""
 
-#: ../PLCOpenEditor.py:640
+#: ../PLCOpenEditor.py:594
 msgid "Library"
 msgstr ""
 
@@ -1170,14 +1211,18 @@
 msgid "Limitation"
 msgstr ""
 
-#: ../PLCOpenEditor.py:3862
+#: ../VariablePanel.py:64
 msgid "Local"
 msgstr ""
 
-#: ../PLCOpenEditor.py:3850
+#: ../VariablePanel.py:52
 msgid "Location"
 msgstr ""
 
+#: ../VariablePanel.py:1052
+msgid "Locations available:"
+msgstr ""
+
 #: ../plcopen/iec_std.csv:25
 msgid "Logarithm to base 10"
 msgstr ""
@@ -1190,7 +1235,11 @@
 msgid "Maximum:"
 msgstr ""
 
-#: ../Viewer.py:367
+#: ../VariablePanel.py:993
+msgid "Memory"
+msgstr ""
+
+#: ../Viewer.py:401
 msgid "Middle"
 msgstr ""
 
@@ -1202,11 +1251,11 @@
 msgid "Minimum:"
 msgstr ""
 
-#: ../PLCOpenEditor.py:3009
+#: ../PLCOpenEditor.py:3004
 msgid "Miscellaneous"
 msgstr ""
 
-#: ../Dialogs.py:1022
+#: ../dialogs/LDElementDialog.py:117
 msgid "Modifier:"
 msgstr ""
 
@@ -1231,13 +1280,14 @@
 msgid "Multiplication"
 msgstr ""
 
-#: ../PLCOpenEditor.py:3850 ../PLCOpenEditor.py:3851 ../RessourceEditor.py:79
-#: ../RessourceEditor.py:83 ../DataTypeEditor.py:46
+#: ../RessourceEditor.py:82 ../RessourceEditor.py:86 ../VariablePanel.py:52
+#: ../VariablePanel.py:53 ../DataTypeEditor.py:46
 msgid "Name"
 msgstr ""
 
-#: ../Dialogs.py:122 ../Dialogs.py:520 ../Dialogs.py:792 ../Dialogs.py:1026
-#: ../Dialogs.py:1455
+#: ../dialogs/ConnectionDialog.py:109 ../dialogs/FBDBlockDialog.py:121
+#: ../dialogs/FBDVariableDialog.py:136 ../dialogs/LDElementDialog.py:121
+#: ../dialogs/SFCStepDialog.py:105
 msgid "Name:"
 msgstr ""
 
@@ -1245,11 +1295,11 @@
 msgid "Natural logarithm"
 msgstr ""
 
-#: ../Viewer.py:390 ../Dialogs.py:1040
+#: ../Viewer.py:424 ../dialogs/LDElementDialog.py:135
 msgid "Negated"
 msgstr ""
 
-#: ../PLCOpenEditor.py:312
+#: ../PLCOpenEditor.py:2435
 msgid "New\tCTRL+N"
 msgstr ""
 
@@ -1257,15 +1307,15 @@
 msgid "New item"
 msgstr ""
 
-#: ../PLCOpenEditor.py:3855
+#: ../VariablePanel.py:57
 msgid "No"
 msgstr ""
 
-#: ../Viewer.py:388
+#: ../Viewer.py:422
 msgid "No Modifier"
 msgstr ""
 
-#: ../PLCControler.py:2535
+#: ../PLCControler.py:2583
 msgid "No PLC project found"
 msgstr ""
 
@@ -1279,7 +1329,7 @@
 msgid "No connector found corresponding to \"%s\" continuation in \"%s\" POU"
 msgstr ""
 
-#: ../PLCOpenEditor.py:2608
+#: ../PLCOpenEditor.py:2382
 msgid ""
 "No documentation available.\n"
 "Coming soon."
@@ -1299,7 +1349,7 @@
 msgid "No variable defined in \"%s\" POU"
 msgstr ""
 
-#: ../Dialogs.py:1034
+#: ../dialogs/LDElementDialog.py:129
 msgid "Normal"
 msgstr ""
 
@@ -1307,7 +1357,7 @@
 msgid "Not equal to"
 msgstr ""
 
-#: ../Dialogs.py:2008
+#: ../dialogs/SFCDivergenceDialog.py:135
 msgid "Number of sequences:"
 msgstr ""
 
@@ -1327,15 +1377,16 @@
 "The on-delay timer can be used to delay setting an output true, for fixed period after an input becomes true."
 msgstr ""
 
-#: ../PLCOpenEditor.py:314
+#: ../PLCOpenEditor.py:2437
 msgid "Open\tCTRL+O"
 msgstr ""
 
-#: ../PLCOpenEditor.py:2936
+#: ../PLCOpenEditor.py:2931
 msgid "Organization (optional):"
 msgstr ""
 
-#: ../PLCOpenEditor.py:3861 ../Dialogs.py:427 ../Dialogs.py:1477
+#: ../VariablePanel.py:63 ../VariablePanel.py:992
+#: ../dialogs/FBDVariableDialog.py:43 ../dialogs/SFCStepDialog.py:127
 msgid "Output"
 msgstr ""
 
@@ -1345,76 +1396,80 @@
 "The PID (proportional, Integral, Derivative) function block provides the classical three term controller for closed loop control."
 msgstr ""
 
-#: ../PLCOpenEditor.py:1033 ../PLCOpenEditor.py:1120
+#: ../PLCOpenEditor.py:2589 ../PLCOpenEditor.py:2648
 msgid "PLCOpen files (*.xml)|*.xml|All files|*.*"
 msgstr ""
 
-#: ../PLCOpenEditor.py:487 ../PLCOpenEditor.py:840
+#: ../PLCOpenEditor.py:2521
 msgid "PLCOpenEditor"
 msgstr ""
 
-#: ../PLCOpenEditor.py:440
+#: ../PLCOpenEditor.py:2479
 msgid "PLCOpenEditor\tF1"
 msgstr ""
 
-#: ../PLCOpenEditor.py:3274
+#: ../PLCOpenEditor.py:3269
 msgid "POU Name"
 msgstr ""
 
-#: ../PLCOpenEditor.py:3229
+#: ../PLCOpenEditor.py:3224
 msgid "POU Name:"
 msgstr ""
 
-#: ../PLCOpenEditor.py:3276
+#: ../PLCOpenEditor.py:3271
 msgid "POU Type"
 msgstr ""
 
-#: ../PLCOpenEditor.py:3237
+#: ../PLCOpenEditor.py:3232
 msgid "POU Type:"
 msgstr ""
 
-#: ../PLCOpenEditor.py:331
+#: ../PLCOpenEditor.py:2451
 msgid "Page Setup"
 msgstr ""
 
-#: ../PLCOpenEditor.py:2952
+#: ../PLCOpenEditor.py:2947
 msgid "Page Size (optional):"
 msgstr ""
 
-#: ../PLCOpenEditor.py:5002
+#: ../PLCOpenEditor.py:4235
 #, python-format
 msgid "Page: %d"
 msgstr ""
 
-#: ../PLCOpenEditor.py:383
+#: ../PLCOpenEditor.py:1648
+msgid "Paste"
+msgstr ""
+
+#: ../PLCOpenEditor.py:325
 msgid "Paste\tCTRL+V"
 msgstr ""
 
-#: ../Dialogs.py:1279
+#: ../dialogs/LDPowerRailDialog.py:110
 msgid "Pin number:"
 msgstr ""
 
-#: ../Viewer.py:1971 ../Viewer.py:2262 ../SFCViewer.py:698
+#: ../Viewer.py:1995 ../Viewer.py:2286 ../SFCViewer.py:698
 msgid "Please choose a target"
 msgstr ""
 
-#: ../PLCOpenEditor.py:2463
+#: ../PLCOpenEditor.py:2240
 msgid "Please enter POU name"
 msgstr ""
 
-#: ../Viewer.py:1796 ../Viewer.py:1798 ../Viewer.py:2297 ../Viewer.py:2299
+#: ../Viewer.py:1820 ../Viewer.py:1822 ../Viewer.py:2321 ../Viewer.py:2323
 msgid "Please enter comment text"
 msgstr ""
 
-#: ../PLCOpenEditor.py:2418 ../PLCOpenEditor.py:3649
+#: ../PLCOpenEditor.py:2208 ../PLCOpenEditor.py:3644
 msgid "Please enter configuration name"
 msgstr ""
 
-#: ../PLCOpenEditor.py:2361
+#: ../PLCOpenEditor.py:2164
 msgid "Please enter data type name"
 msgstr ""
 
-#: ../PLCOpenEditor.py:2433 ../PLCOpenEditor.py:3712
+#: ../PLCOpenEditor.py:2219 ../PLCOpenEditor.py:3707
 msgid "Please enter resource name"
 msgstr ""
 
@@ -1422,88 +1477,94 @@
 msgid "Please enter step name"
 msgstr ""
 
-#: ../PLCOpenEditor.py:3120
+#: ../PLCOpenEditor.py:3115
 msgid "Please enter text"
 msgstr ""
 
+#: ../VariablePanel.py:1119
+msgid "Plugins"
+msgstr ""
+
 #: ../GraphicViewer.py:117
 msgid "Position:"
 msgstr ""
 
-#: ../Dialogs.py:1271
+#: ../dialogs/LDPowerRailDialog.py:102
 msgid "Power Rail Properties"
 msgstr ""
 
-#: ../PLCOpenEditor.py:333
+#: ../PLCOpenEditor.py:2453
 msgid "Preview"
 msgstr ""
 
-#: ../Dialogs.py:138 ../Dialogs.py:524 ../Dialogs.py:796 ../Dialogs.py:1030
-#: ../Dialogs.py:1283 ../Dialogs.py:1463 ../Dialogs.py:1706 ../Dialogs.py:2017
+#: ../dialogs/ConnectionDialog.py:113 ../dialogs/FBDBlockDialog.py:137
+#: ../dialogs/FBDVariableDialog.py:140 ../dialogs/LDElementDialog.py:125
+#: ../dialogs/LDPowerRailDialog.py:114 ../dialogs/SFCDivergenceDialog.py:144
+#: ../dialogs/SFCStepDialog.py:113 ../dialogs/SFCTransitionDialog.py:112
 msgid "Preview:"
 msgstr ""
 
-#: ../PLCOpenEditor.py:335
+#: ../PLCOpenEditor.py:2455
 msgid "Print"
 msgstr ""
 
-#: ../PLCOpenEditor.py:1152
+#: ../PLCOpenEditor.py:932
 msgid "Print preview"
 msgstr ""
 
-#: ../RessourceEditor.py:79
+#: ../RessourceEditor.py:82
 msgid "Priority"
 msgstr ""
 
-#: ../Dialogs.py:1710
+#: ../dialogs/SFCTransitionDialog.py:116
 msgid "Priority:"
 msgstr ""
 
-#: ../PLCOpenEditor.py:2880
+#: ../PLCOpenEditor.py:2875
 msgid "Product Name (required):"
 msgstr ""
 
-#: ../PLCOpenEditor.py:2896
+#: ../PLCOpenEditor.py:2891
 msgid "Product Release (optional):"
 msgstr ""
 
-#: ../PLCOpenEditor.py:2888
+#: ../PLCOpenEditor.py:2883
 msgid "Product Version (required):"
 msgstr ""
 
-#: ../PLCOpenEditor.py:394 ../PLCOpenEditor.py:1816
+#: ../PLCOpenEditor.py:336 ../PLCOpenEditor.py:1608
 msgid "Program"
 msgstr ""
 
-#: ../PLCOpenEditor.py:1097
+#: ../PLCOpenEditor.py:2626
 msgid "Program was successfully generated!"
 msgstr ""
 
-#: ../PLCControler.py:83
+#: ../PLCControler.py:90
 msgid "Programs"
 msgstr ""
 
-#: ../Viewer.py:220
+#: ../Viewer.py:223
 msgid "Programs can't be used by other POUs!"
 msgstr ""
 
-#: ../PLCOpenEditor.py:499 ../PLCOpenEditor.py:2903
+#: ../PLCOpenEditor.py:437 ../PLCOpenEditor.py:2898
 msgid "Project"
 msgstr ""
 
-#: ../PLCOpenEditor.py:2864
+#: ../PLCOpenEditor.py:2859
 msgid "Project Name (required):"
 msgstr ""
 
-#: ../PLCOpenEditor.py:2872
+#: ../PLCOpenEditor.py:2867
 msgid "Project Version (optional):"
 msgstr ""
 
-#: ../PLCOpenEditor.py:2850
+#: ../PLCOpenEditor.py:2845
 msgid "Project properties"
 msgstr ""
 
-#: ../PLCOpenEditor.py:339 ../PLCControler.py:84
+#: ../PLCOpenEditor.py:2458 ../PLCControler.py:91
 msgid "Properties"
 msgstr ""
 
@@ -1513,11 +1574,11 @@
 "The pulse timer can be used to generate output pulses of a given time duration."
 msgstr ""
 
-#: ../Dialogs.py:2105
+#: ../dialogs/ActionBlockDialog.py:33
 msgid "Qualifier"
 msgstr ""
 
-#: ../PLCOpenEditor.py:343
+#: ../PLCOpenEditor.py:2461
 msgid "Quit\tCTRL+Q"
 msgstr ""
 
@@ -1537,15 +1598,15 @@
 msgid "Range:"
 msgstr ""
 
-#: ../PLCOpenEditor.py:374
+#: ../PLCOpenEditor.py:316
 msgid "Redo\tCTRL+Y"
 msgstr ""
 
-#: ../Dialogs.py:1714 ../Dialogs.py:1791
+#: ../dialogs/SFCTransitionDialog.py:120 ../dialogs/SFCTransitionDialog.py:197
 msgid "Reference"
 msgstr ""
 
-#: ../PLCOpenEditor.py:422
+#: ../PLCOpenEditor.py:364
 msgid "Refresh\tF5"
 msgstr ""
 
@@ -1553,7 +1614,7 @@
 msgid "Remainder (modulo)"
 msgstr ""
 
-#: ../PLCOpenEditor.py:1820
+#: ../PLCOpenEditor.py:1612
 msgid "Rename"
 msgstr ""
 
@@ -1561,35 +1622,35 @@
 msgid "Replacement (within)"
 msgstr ""
 
-#: ../Dialogs.py:1050
+#: ../dialogs/LDElementDialog.py:145
 msgid "Reset"
 msgstr ""
 
-#: ../Viewer.py:409
+#: ../Viewer.py:443
 msgid "Reset Execution Order"
 msgstr ""
 
-#: ../PLCControler.py:84
+#: ../PLCControler.py:91
 msgid "Resources"
 msgstr ""
 
-#: ../PLCOpenEditor.py:3850 ../PLCOpenEditor.py:3851
+#: ../VariablePanel.py:52 ../VariablePanel.py:53
 msgid "Retain"
 msgstr ""
 
-#: ../PLCOpenEditor.py:4229
+#: ../VariablePanel.py:439
 msgid "Return Type:"
 msgstr ""
 
-#: ../Viewer.py:362
+#: ../Viewer.py:396
 msgid "Right"
 msgstr ""
 
-#: ../Dialogs.py:1293
+#: ../dialogs/LDPowerRailDialog.py:124
 msgid "Right PowerRail"
 msgstr ""
 
-#: ../Viewer.py:392 ../Dialogs.py:1055
+#: ../Viewer.py:426 ../dialogs/LDElementDialog.py:150
 msgid "Rising Edge"
 msgstr ""
 
@@ -1611,7 +1672,7 @@
 msgid "Rounding up/down"
 msgstr ""
 
-#: ../PLCOpenEditor.py:2980 ../PLCOpenEditor.py:3180
+#: ../PLCOpenEditor.py:2975 ../PLCOpenEditor.py:3175
 msgid "SFC"
 msgstr ""
 
@@ -1621,36 +1682,36 @@
 "The SR bistable is a latch where the Set dominates."
 msgstr ""
 
-#: ../PLCOpenEditor.py:3170 ../PLCOpenEditor.py:3180 ../PLCOpenEditor.py:3359
-#: ../PLCOpenEditor.py:3503
+#: ../PLCOpenEditor.py:3165 ../PLCOpenEditor.py:3175 ../PLCOpenEditor.py:3354
+#: ../PLCOpenEditor.py:3498
 msgid "ST"
 msgstr ""
 
-#: ../PLCOpenEditor.py:1084
+#: ../PLCOpenEditor.py:2613
 msgid "ST files (*.st)|*.st|All files|*.*"
 msgstr ""
 
-#: ../PLCOpenEditor.py:323
+#: ../PLCOpenEditor.py:2444
 msgid "Save\tCTRL+S"
 msgstr ""
 
-#: ../PLCOpenEditor.py:326
+#: ../PLCOpenEditor.py:2446
 msgid "Save As...\tCTRL+SHIFT+S"
 msgstr ""
 
-#: ../PLCOpenEditor.py:2972
+#: ../PLCOpenEditor.py:2967
 msgid "Scaling:"
 msgstr ""
 
-#: ../PLCOpenEditor.py:398
+#: ../PLCOpenEditor.py:340
 msgid "Select All\tCTRL+A"
 msgstr ""
 
-#: ../PLCOpenEditor.py:4104
+#: ../VariablePanel.py:314
 msgid "Select a variable class:"
 msgstr ""
 
-#: ../PLCOpenEditor.py:606 ../PLCOpenEditor.py:618
+#: ../PLCOpenEditor.py:570 ../PLCOpenEditor.py:582
 msgid "Select an object"
 msgstr ""
 
@@ -1658,11 +1719,11 @@
 msgid "Selection"
 msgstr ""
 
-#: ../Dialogs.py:1990
+#: ../dialogs/SFCDivergenceDialog.py:117
 msgid "Selection Convergence"
 msgstr ""
 
-#: ../Dialogs.py:1984
+#: ../dialogs/SFCDivergenceDialog.py:111
 msgid "Selection Divergence"
 msgstr ""
 
@@ -1672,7 +1733,7 @@
 "The semaphore provides a mechanism to allow software elements mutually exclusive access to certain ressources."
 msgstr ""
 
-#: ../Dialogs.py:1045
+#: ../dialogs/LDElementDialog.py:140
 msgid "Set"
 msgstr ""
 
@@ -1684,11 +1745,11 @@
 msgid "Shift right"
 msgstr ""
 
-#: ../Dialogs.py:2002
+#: ../dialogs/SFCDivergenceDialog.py:129
 msgid "Simultaneous Convergence"
 msgstr ""
 
-#: ../Dialogs.py:1996
+#: ../dialogs/SFCDivergenceDialog.py:123
 msgid "Simultaneous Divergence"
 msgstr ""
 
@@ -1696,7 +1757,7 @@
 msgid "Sine"
 msgstr ""
 
-#: ../RessourceEditor.py:79
+#: ../RessourceEditor.py:82
 msgid "Single"
 msgstr ""
 
@@ -1724,15 +1785,15 @@
 msgid "Tangent"
 msgstr ""
 
-#: ../RessourceEditor.py:83
+#: ../RessourceEditor.py:86
 msgid "Task"
 msgstr ""
 
-#: ../RessourceEditor.py:358
+#: ../RessourceEditor.py:361
 msgid "Tasks:"
 msgstr ""
 
-#: ../PLCOpenEditor.py:3863
+#: ../VariablePanel.py:65
 msgid "Temp"
 msgstr ""
 
@@ -1740,11 +1801,16 @@
 msgid "The group of block must be coherent!"
 msgstr ""
 
-#: ../PLCOpenEditor.py:963
+#: ../PLCOpenEditor.py:873
 msgid "There are changes, do you want to save?"
 msgstr ""
 
-#: ../PLCOpenEditor.py:1171
+#: ../PLCOpenEditor.py:1408 ../PLCOpenEditor.py:1428
+#, python-format
+msgid "There is a POU named \"%s\". This could cause a conflict. Do you wish to continue?"
+msgstr ""
+
+#: ../PLCOpenEditor.py:951
 msgid ""
 "There was a problem printing.\n"
 "Perhaps your current printer is not set correctly?"
@@ -1754,7 +1820,7 @@
 msgid "This option isn't available yet!"
 msgstr ""
 
-#: ../GraphicViewer.py:181
+#: ../GraphicViewer.py:180
 msgid "Tick"
 msgstr ""
 
@@ -1786,19 +1852,19 @@
 msgid "Time-of-day subtraction"
 msgstr ""
 
-#: ../PLCOpenEditor.py:610
+#: ../PLCOpenEditor.py:574
 msgid "Toolbar"
 msgstr ""
 
-#: ../Viewer.py:365
+#: ../Viewer.py:399
 msgid "Top"
 msgstr ""
 
-#: ../PLCOpenEditor.py:3439
+#: ../PLCOpenEditor.py:3434
 msgid "Transition Name"
 msgstr ""
 
-#: ../PLCOpenEditor.py:3406
+#: ../PLCOpenEditor.py:3401
 msgid "Transition Name:"
 msgstr ""
 
@@ -1812,17 +1878,17 @@
 msgid "Transition with content \"%s\" not connected to a previous step in \"%s\" POU"
 msgstr ""
 
-#: ../plcopen/plcopen.py:1035
+#: ../plcopen/plcopen.py:1050
 #, python-format
 msgid "Transition with name %s doesn't exist!"
 msgstr ""
 
-#: ../PLCControler.py:83
+#: ../PLCControler.py:90
 msgid "Transitions"
 msgstr ""
 
-#: ../PLCOpenEditor.py:3850 ../PLCOpenEditor.py:3851 ../RessourceEditor.py:83
-#: ../Dialogs.py:2105 ../DataTypeEditor.py:46
+#: ../RessourceEditor.py:86 ../VariablePanel.py:52 ../VariablePanel.py:53
+#: ../dialogs/ActionBlockDialog.py:33 ../DataTypeEditor.py:46
 msgid "Type"
 msgstr ""
 
@@ -1834,12 +1900,13 @@
 msgid "Type infos:"
 msgstr ""
 
-#: ../Dialogs.py:118 ../Dialogs.py:788 ../Dialogs.py:1275 ../Dialogs.py:1702
-#: ../Dialogs.py:1980
+#: ../dialogs/ConnectionDialog.py:105 ../dialogs/FBDBlockDialog.py:117
+#: ../dialogs/LDPowerRailDialog.py:106 ../dialogs/SFCDivergenceDialog.py:107
+#: ../dialogs/SFCTransitionDialog.py:108
 msgid "Type:"
 msgstr ""
 
-#: ../PLCOpenEditor.py:562 ../PLCOpenEditor.py:598
+#: ../PLCOpenEditor.py:540
 msgid "Types"
 msgstr ""
 
@@ -1848,21 +1915,21 @@
 msgid "Undefined pou type \"%s\""
 msgstr ""
 
-#: ../PLCOpenEditor.py:372
+#: ../PLCOpenEditor.py:314
 msgid "Undo\tCTRL+Z"
 msgstr ""
 
-#: ../Viewer.py:286
+#: ../Viewer.py:320
 #, python-format
 msgid "Unknown variable \"%s\" for this POU!"
 msgstr ""
 
-#: ../PLCControler.py:293
+#: ../PLCControler.py:300
 #, python-format
 msgid "Unnamed%d"
 msgstr ""
 
-#: ../PLCOpenEditor.py:4100
+#: ../VariablePanel.py:310
 #, python-format
 msgid "Unrecognized data size \"%s\""
 msgstr ""
@@ -1879,19 +1946,19 @@
 "The up-down counter has two inputs CU and CD. It can be used to both count up on one input and down on the other."
 msgstr ""
 
-#: ../PLCOpenEditor.py:4499 ../DataTypeEditor.py:804
+#: ../VariablePanel.py:742 ../DataTypeEditor.py:807
 msgid "User Data Types"
 msgstr ""
 
-#: ../PLCControler.py:82
+#: ../PLCControler.py:89
 msgid "User-defined POUs"
 msgstr ""
 
-#: ../PLCOpenEditor.py:4616 ../Dialogs.py:2105
+#: ../PLCOpenEditor.py:3843 ../dialogs/ActionBlockDialog.py:33
 msgid "Value"
 msgstr ""
 
-#: ../GraphicViewer.py:181
+#: ../GraphicViewer.py:180
 msgid "Values"
 msgstr ""
 
@@ -1899,44 +1966,44 @@
 msgid "Values:"
 msgstr ""
 
-#: ../PLCOpenEditor.py:4616 ../Dialogs.py:2109
+#: ../PLCOpenEditor.py:3843 ../dialogs/ActionBlockDialog.py:37
 msgid "Variable"
 msgstr ""
 
-#: ../Dialogs.py:504
+#: ../dialogs/FBDVariableDialog.py:120
 msgid "Variable Properties"
 msgstr ""
 
-#: ../PLCOpenEditor.py:4104
+#: ../VariablePanel.py:314
 msgid "Variable class"
 msgstr ""
 
-#: ../Viewer.py:288 ../TextViewer.py:224
+#: ../Viewer.py:322 ../TextViewer.py:248
 msgid "Variable don't belong to this POU!"
 msgstr ""
 
-#: ../PLCOpenEditor.py:575 ../PLCOpenEditor.py:626 ../PLCOpenEditor.py:3862
+#: ../PLCOpenEditor.py:589 ../VariablePanel.py:64
 msgid "Variables"
 msgstr ""
 
-#: ../PLCOpenEditor.py:3304 ../PLCOpenEditor.py:3682 ../PLCOpenEditor.py:3745
+#: ../PLCOpenEditor.py:3299 ../PLCOpenEditor.py:3677 ../PLCOpenEditor.py:3740
 #: ../LDViewer.py:859
 msgid "Warning"
 msgstr ""
 
-#: ../PLCOpenEditor.py:2956
+#: ../PLCOpenEditor.py:2951
 msgid "Width:"
 msgstr ""
 
-#: ../PLCOpenEditor.py:2699
+#: ../PLCOpenEditor.py:2694
 msgid "X Scale:"
 msgstr ""
 
-#: ../PLCOpenEditor.py:2707
+#: ../PLCOpenEditor.py:2702
 msgid "Y Scale:"
 msgstr ""
 
-#: ../PLCOpenEditor.py:3855
+#: ../VariablePanel.py:57
 msgid "Yes"
 msgstr ""
 
@@ -1948,41 +2015,42 @@
 msgid "You must select the wire where a contact should be added!"
 msgstr ""
 
-#: ../PLCOpenEditor.py:3135 ../PLCOpenEditor.py:3666 ../PLCOpenEditor.py:3729
-#: ../Dialogs.py:1525 ../Dialogs.py:2508 ../Dialogs.py:2575
+#: ../PLCOpenEditor.py:3130 ../PLCOpenEditor.py:3661 ../PLCOpenEditor.py:3724
+#: ../dialogs/PouNameDialog.py:55 ../dialogs/SFCStepDialog.py:175
+#: ../dialogs/SFCStepNameDialog.py:57
 msgid "You must type a name!"
 msgstr ""
 
-#: ../PLCOpenEditor.py:428
+#: ../PLCOpenEditor.py:370
 msgid "Zoom"
 msgstr ""
 
-#: ../PLCOpenEditor.py:1093
+#: ../PLCOpenEditor.py:2622
 #, python-format
 msgid "error: %s\n"
 msgstr ""
 
-#: ../PLCOpenEditor.py:5034 ../PLCOpenEditor.py:5036
+#: ../PLCOpenEditor.py:4267 ../PLCOpenEditor.py:4269
 msgid "file : "
 msgstr ""
 
-#: ../PLCOpenEditor.py:3175
+#: ../PLCOpenEditor.py:3170
 msgid "function"
 msgstr ""
 
-#: ../PLCOpenEditor.py:5037
+#: ../PLCOpenEditor.py:4270
 msgid "function : "
 msgstr ""
 
-#: ../PLCOpenEditor.py:3175
+#: ../PLCOpenEditor.py:3170
 msgid "functionBlock"
 msgstr ""
 
-#: ../PLCOpenEditor.py:5037
+#: ../PLCOpenEditor.py:4270
 msgid "line : "
 msgstr ""
 
-#: ../PLCOpenEditor.py:3175
+#: ../PLCOpenEditor.py:3170
 msgid "program"
 msgstr ""
 
@@ -1998,7 +2066,7 @@
 msgid "string right of"
 msgstr ""
 
-#: ../PLCOpenEditor.py:1091
+#: ../PLCOpenEditor.py:2620
 #, python-format
 msgid "warning: %s\n"
 msgstr ""
Binary file locale/fr_FR/LC_MESSAGES/PLCOpenEditor.mo has changed
Binary file locale/zh_CN/LC_MESSAGES/PLCOpenEditor.mo has changed
--- a/plcopen/iec_std.csv	Fri Oct 09 15:38:11 2009 +0200
+++ b/plcopen/iec_std.csv	Fri Oct 09 17:34:18 2009 +0200
@@ -13,67 +13,67 @@
 ;;;;;;;;
 ;;;;;;;;
 Standard_functions_type;name;baseinputnumber;inputs;outputs;comment;extensible;python_eval_c_code_format;return_type_rule
-Type conversion;*_TO_**;1;(ANY);ANY;Data type conversion;no;ANY_TO_ANY_FORMAT_GEN(ANY_TO_ANY_LIST,fdecl);defined
-;TRUNC;1;(ANY_REAL);ANY_INT;Rounding up/down;no;("int", None, None);&search_constant_type_c::integer
-;BCD_TO_**;1;(ANY_BIT);ANY_INT;Conversion from BCD;no;ANY_TO_ANY_FORMAT_GEN(BCD_TO_ANY_LIST,fdecl);defined
-;*_TO_BCD;1;(ANY_INT);ANY_BIT;Conversion to BCD;no;ANY_TO_ANY_FORMAT_GEN(ANY_TO_BCD_LIST,fdecl);&search_constant_type_c::integer
-;DATE_AND_TIME_TO_TIME_OF_DAY;1;(DT);TOD;Conversion to time-of-day;no;(None, "__date_and_time_to_time_of_day", None);defined
-;DATE_AND_TIME_TO_DATE;1;(DT);DATE;Conversion to date;no;(None, "__date_and_time_to_date", None);defined
-Numerical;ABS;1;(ANY_NUM);ANY_NUM;Absolute number;no;(None, "__abs_", "IN_type");IN_type_symbol
-;SQRT;1;(ANY_REAL);ANY_REAL;Square root (base 2);no;(None, "__sqrt_", "IN_type");IN_type_symbol
-;LN;1;(ANY_REAL);ANY_REAL;Natural logarithm;no;(None, "__ln_", "IN_type");IN_type_symbol
-;LOG;1;(ANY_REAL);ANY_REAL;Logarithm to base 10;no;(None, "__log_", "IN_type");IN_type_symbol
-;EXP;1;(ANY_REAL);ANY_REAL;Exponentiation;no;(None, "__exp_", "IN_type");IN_type_symbol
-;SIN;1;(ANY_REAL);ANY_REAL;Sine;no;(None, "__sin_", "IN_type");IN_type_symbol
-;COS;1;(ANY_REAL);ANY_REAL;Cosine;no;(None, "__cos_", "IN_type");IN_type_symbol
-;TAN;1;(ANY_REAL);ANY_REAL;Tangent;no;(None, "__tan_", "IN_type");IN_type_symbol
-;ASIN;1;(ANY_REAL);ANY_REAL;Arc sine;no;(None, "__asin_", "IN_type");IN_type_symbol
-;ACOS;1;(ANY_REAL);ANY_REAL;Arc cosine;no;(None, "__acos_", "IN_type");IN_type_symbol
-;ATAN;1;(ANY_REAL);ANY_REAL;Arc tangent;no;(None, "__atan_", "IN_type");IN_type_symbol
-Arithmetic;ADD;1;(ANY_NUM, ANY_NUM);ANY_NUM;Addition;yes;(None, "__add_", "return_type");copy_input
-;ADD;1;(TIME, TIME);TIME;Time addition;no;(None, "__time_add", None);defined
-;ADD;1;(TOD, TIME);TOD;Time-of-day addition;no;(None, "__time_add", None);defined
-;ADD;1;(DT, TIME);DT;Date addition;no;(None, "__time_add", None);defined
-;MUL;1;(ANY_NUM, ANY_NUM);ANY_NUM;Multiplication;yes;(None, "__mul_", "return_type");copy_input
-;MUL;1;(TIME, ANY_NUM);TIME;Time multiplication;no;(None, "__time_mul", None);defined
-;SUB;1;(ANY_NUM, ANY_NUM);ANY_NUM;Subtraction;no;(None, "__sub_", "return_type");copy_input
-;SUB;1;(TIME, TIME);TIME;Time subtraction;no;(None, "__time_sub", None);defined
-;SUB;1;(DATE, DATE);TIME;Date subtraction;no;(None, "__time_sub", None);defined
-;SUB;1;(TOD, TIME);TOD;Time-of-day subtraction;no;(None, "__time_sub", None);defined
-;SUB;1;(TOD, TOD);TIME;Time-of-day subtraction;no;(None, "__time_sub", None);defined
-;SUB;1;(DT, TIME);DT;Date and time subtraction;no;(None, "__time_sub", None);defined
-;SUB;1;(DT, DT);TIME;Date and time subtraction;no;(None, "__time_sub", None);defined
-;DIV;1;(ANY_NUM, ANY_NUM);ANY_NUM;Division;no;(None, "__div_", "return_type");copy_input
-;DIV;1;(TIME, ANY_NUM);TIME;Time division;no;(None, "__time_div", None);defined
-;MOD;1;(ANY_NUM, ANY_NUM);ANY_NUM;Remainder (modulo);no;(None, "__mod_", "return_type");copy_input
-;EXPT;1;(ANY_REAL, ANY_NUM);ANY_REAL;Exponent;no;(None, "__expt_", "IN1_type");copy_input
-;MOVE;1;(ANY);ANY;Assignment;no;(None, "__move_", "return_type");copy_input
-Bit-shift;SHL;1;(ANY_BIT, N);ANY_BIT;Shift left;no;(None, "__shl_", "IN_type");IN_type_symbol
-;SHR;1;(ANY_BIT, N);ANY_BIT;Shift right;no;(None, "__shr_", "IN_type");IN_type_symbol
-;ROR;1;(ANY_NBIT, N);ANY_NBIT;Rotate right;no;(None, "__ror_", "IN_type");IN_type_symbol
-;ROL;1;(ANY_NBIT, N);ANY_NBIT;Rotate left;no;(None, "__rol_", "IN_type");IN_type_symbol
-Bitwise;AND;1;(ANY_BIT, ANY_BIT);ANY_BIT;Bitwise AND;yes;(None, "__and_", "return_type");copy_input
-;OR;1;(ANY_BIT, ANY_BIT);ANY_BIT;Bitwise OR;yes;(None, "__or_", "return_type");copy_input
-;XOR;1;(ANY_BIT, ANY_BIT);ANY_BIT;Bitwise EXOR;yes;(None, "__xor_", "return_type");copy_input
-;NOT;1;(ANY_BIT);ANY_BIT;Bitwise inverting;no;(None, "__not_", "return_type");IN_type_symbol
-Selection;SEL;0;(G, ANY, ANY);ANY;Binary selection (1 of 2);no;(None, "__sel_", "IN0_type");copy_input
-;MAX;1;(ANY, ANY);ANY;Maximum;yes;(None, "__max_", "return_type");copy_input
-;MIN;1;(ANY, ANY);ANY;Minimum;yes;(None, "__min_", "return_type");copy_input
-;LIMIT;1;(MN, ANY, MX);ANY;Limitation;no;(None, "__limit_", "IN_type");IN_type_symbol
-;MUX;0;(K, ANY, ANY);ANY;Multiplexer (select 1 of N);yes;(None, "__mux_", "return_type");copy_input
-Comparison;GT;1;(ANY, ANY);BOOL;Greater than;yes;(None, "__gt_", "common_type");defined
-;GE;1;(ANY, ANY);BOOL;Greater than or equal to;yes;(None, "__ge_", "common_type");defined
-;EQ;1;(ANY, ANY);BOOL;Equal to;yes;(None, "__eq_", "common_type");defined
-;LT;1;(ANY, ANY);BOOL;Less than;yes;(None, "__lt_", "common_type");defined
-;LE;1;(ANY, ANY);BOOL;Less than or equal to;yes;(None, "__le_", "common_type");defined
-;NE;1;(ANY, ANY);BOOL;Not equal to;yes;(None, "__ne_", "common_type");defined
-Character string;LEN;1;(STRING);INT;Length of string;no;(None, "__len", None);defined
-;LEFT;1;(STRING, L);STRING;string left of;no;(None, "__left", None);defined
-;RIGHT;1;(STRING, L);STRING;string right of;no;(None, "__right", None);defined
-;MID;1;(STRING, L, P);STRING;string from the middle;no;(None, "__mid", None);defined
-;CONCAT;1;(STRING, STRING);STRING;Concatenation;yes;(None, "__concat", None);defined
-;CONCAT;1;(DATE, TOD);DT;Time concatenation;no;(None, "__time_add", None);defined
-;INSERT;1;(STRING, STRING, P);STRING;Insertion (into);no;(None, "__insert", None);defined
-;DELETE;1;(STRING, L, P);STRING;Deletion (within);no;(None, "__delete", None);defined
-;REPLACE;1;(STRING, STRING, L, P);STRING;Replacement (within);no;(None, "__replace", None);defined
-;FIND;1;(STRING, STRING);INT;Find position;no;(None, "__find", None);defined
+_("Type conversion");*_TO_**;1;(ANY);ANY;_("Data type conversion");no;ANY_TO_ANY_FORMAT_GEN(ANY_TO_ANY_LIST,fdecl);defined
+;TRUNC;1;(ANY_REAL);ANY_INT;_("Rounding up/down");no;("int", None, None);&search_constant_type_c::integer
+;BCD_TO_**;1;(ANY_BIT);ANY_INT;_("Conversion from BCD");no;ANY_TO_ANY_FORMAT_GEN(BCD_TO_ANY_LIST,fdecl);defined
+;*_TO_BCD;1;(ANY_INT);ANY_BIT;_("Conversion to BCD");no;ANY_TO_ANY_FORMAT_GEN(ANY_TO_BCD_LIST,fdecl);&search_constant_type_c::integer
+;DATE_AND_TIME_TO_TIME_OF_DAY;1;(DT);TOD;_("Conversion to time-of-day");no;(None, "__date_and_time_to_time_of_day", None);defined
+;DATE_AND_TIME_TO_DATE;1;(DT);DATE;_("Conversion to date");no;(None, "__date_and_time_to_date", None);defined
+_("Numerical");ABS;1;(ANY_NUM);ANY_NUM;_("Absolute number");no;(None, "__abs_", "IN_type");IN_type_symbol
+;SQRT;1;(ANY_REAL);ANY_REAL;_("Square root (base 2)");no;(None, "__sqrt_", "IN_type");IN_type_symbol
+;LN;1;(ANY_REAL);ANY_REAL;_("Natural logarithm");no;(None, "__ln_", "IN_type");IN_type_symbol
+;LOG;1;(ANY_REAL);ANY_REAL;_("Logarithm to base 10");no;(None, "__log_", "IN_type");IN_type_symbol
+;EXP;1;(ANY_REAL);ANY_REAL;_("Exponentiation");no;(None, "__exp_", "IN_type");IN_type_symbol
+;SIN;1;(ANY_REAL);ANY_REAL;_("Sine");no;(None, "__sin_", "IN_type");IN_type_symbol
+;COS;1;(ANY_REAL);ANY_REAL;_("Cosine");no;(None, "__cos_", "IN_type");IN_type_symbol
+;TAN;1;(ANY_REAL);ANY_REAL;_("Tangent");no;(None, "__tan_", "IN_type");IN_type_symbol
+;ASIN;1;(ANY_REAL);ANY_REAL;_("Arc sine");no;(None, "__asin_", "IN_type");IN_type_symbol
+;ACOS;1;(ANY_REAL);ANY_REAL;_("Arc cosine");no;(None, "__acos_", "IN_type");IN_type_symbol
+;ATAN;1;(ANY_REAL);ANY_REAL;_("Arc tangent");no;(None, "__atan_", "IN_type");IN_type_symbol
+_("Arithmetic");ADD;1;(ANY_NUM, ANY_NUM);ANY_NUM;_("Addition");yes;(None, "__add_", "return_type");copy_input
+;ADD;1;(TIME, TIME);TIME;_("Time addition");no;(None, "__time_add", None);defined
+;ADD;1;(TOD, TIME);TOD;_("Time-of-day addition");no;(None, "__time_add", None);defined
+;ADD;1;(DT, TIME);DT;_("Date addition");no;(None, "__time_add", None);defined
+;MUL;1;(ANY_NUM, ANY_NUM);ANY_NUM;_("Multiplication");yes;(None, "__mul_", "return_type");copy_input
+;MUL;1;(TIME, ANY_NUM);TIME;_("Time multiplication");no;(None, "__time_mul", None);defined
+;SUB;1;(ANY_NUM, ANY_NUM);ANY_NUM;_("Subtraction");no;(None, "__sub_", "return_type");copy_input
+;SUB;1;(TIME, TIME);TIME;_("Time subtraction");no;(None, "__time_sub", None);defined
+;SUB;1;(DATE, DATE);TIME;_("Date subtraction");no;(None, "__time_sub", None);defined
+;SUB;1;(TOD, TIME);TOD;_("Time-of-day subtraction");no;(None, "__time_sub", None);defined
+;SUB;1;(TOD, TOD);TIME;_("Time-of-day subtraction");no;(None, "__time_sub", None);defined
+;SUB;1;(DT, TIME);DT;_("Date and time subtraction");no;(None, "__time_sub", None);defined
+;SUB;1;(DT, DT);TIME;_("Date and time subtraction");no;(None, "__time_sub", None);defined
+;DIV;1;(ANY_NUM, ANY_NUM);ANY_NUM;_("Division");no;(None, "__div_", "return_type");copy_input
+;DIV;1;(TIME, ANY_NUM);TIME;_("Time division");no;(None, "__time_div", None);defined
+;MOD;1;(ANY_NUM, ANY_NUM);ANY_NUM;_("Remainder (modulo)");no;(None, "__mod_", "return_type");copy_input
+;EXPT;1;(ANY_REAL, ANY_NUM);ANY_REAL;_("Exponent");no;(None, "__expt_", "IN1_type");copy_input
+;MOVE;1;(ANY);ANY;_("Assignment");no;(None, "__move_", "return_type");copy_input
+_("Bit-shift");SHL;1;(ANY_BIT, N);ANY_BIT;_("Shift left");no;(None, "__shl_", "IN_type");IN_type_symbol
+;SHR;1;(ANY_BIT, N);ANY_BIT;_("Shift right");no;(None, "__shr_", "IN_type");IN_type_symbol
+;ROR;1;(ANY_NBIT, N);ANY_NBIT;_("Rotate right");no;(None, "__ror_", "IN_type");IN_type_symbol
+;ROL;1;(ANY_NBIT, N);ANY_NBIT;_("Rotate left");no;(None, "__rol_", "IN_type");IN_type_symbol
+_("Bitwise");AND;1;(ANY_BIT, ANY_BIT);ANY_BIT;_("Bitwise AND");yes;(None, "__and_", "return_type");copy_input
+;OR;1;(ANY_BIT, ANY_BIT);ANY_BIT;_("Bitwise OR");yes;(None, "__or_", "return_type");copy_input
+;XOR;1;(ANY_BIT, ANY_BIT);ANY_BIT;_("Bitwise XOR");yes;(None, "__xor_", "return_type");copy_input
+;NOT;1;(ANY_BIT);ANY_BIT;_("Bitwise inverting");no;(None, "__not_", "return_type");IN_type_symbol
+_("Selection");SEL;0;(G, ANY, ANY);ANY;_("Binary selection (1 of 2)");no;(None, "__sel_", "IN0_type");copy_input
+;MAX;1;(ANY, ANY);ANY;_("Maximum");yes;(None, "__max_", "return_type");copy_input
+;MIN;1;(ANY, ANY);ANY;_("Minimum");yes;(None, "__min_", "return_type");copy_input
+;LIMIT;1;(MN, ANY, MX);ANY;_("Limitation");no;(None, "__limit_", "IN_type");IN_type_symbol
+;MUX;0;(K, ANY, ANY);ANY;_("Multiplexer (select 1 of N)");yes;(None, "__mux_", "return_type");copy_input
+_("Comparison");GT;1;(ANY, ANY);BOOL;_("Greater than");yes;(None, "__gt_", "common_type");defined
+;GE;1;(ANY, ANY);BOOL;_("Greater than or equal to");yes;(None, "__ge_", "common_type");defined
+;EQ;1;(ANY, ANY);BOOL;_("Equal to");yes;(None, "__eq_", "common_type");defined
+;LT;1;(ANY, ANY);BOOL;_("Less than");yes;(None, "__lt_", "common_type");defined
+;LE;1;(ANY, ANY);BOOL;_("Less than or equal to");yes;(None, "__le_", "common_type");defined
+;NE;1;(ANY, ANY);BOOL;_("Not equal to");yes;(None, "__ne_", "common_type");defined
+_("Character string");LEN;1;(STRING);INT;_("Length of string");no;(None, "__len", None);defined
+;LEFT;1;(STRING, L);STRING;_("string left of");no;(None, "__left", None);defined
+;RIGHT;1;(STRING, L);STRING;_("string right of");no;(None, "__right", None);defined
+;MID;1;(STRING, L, P);STRING;_("string from the middle");no;(None, "__mid", None);defined
+;CONCAT;1;(STRING, STRING);STRING;_("Concatenation");yes;(None, "__concat", None);defined
+;CONCAT;1;(DATE, TOD);DT;_("Time concatenation");no;(None, "__time_add", None);defined
+;INSERT;1;(STRING, STRING, P);STRING;_("Insertion (into)");no;(None, "__insert", None);defined
+;DELETE;1;(STRING, L, P);STRING;_("Deletion (within)");no;(None, "__delete", None);defined
+;REPLACE;1;(STRING, STRING, L, P);STRING;_("Replacement (within)");no;(None, "__replace", None);defined
+;FIND;1;(STRING, STRING);INT;_("Find position");no;(None, "__find", None);defined