i18n/PLCOpenEditor_fr_FR.po
changeset 747 f36838792511
parent 569 4ce166451816
--- a/i18n/PLCOpenEditor_fr_FR.po	Sat Aug 25 14:45:44 2012 +0200
+++ b/i18n/PLCOpenEditor_fr_FR.po	Sat Aug 25 14:47:23 2012 +0200
@@ -7,8 +7,8 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-09-20 23:54+0200\n"
-"PO-Revision-Date: 2011-09-20 23:55+0100\n"
+"POT-Creation-Date: 2012-08-24 18:59+0200\n"
+"PO-Revision-Date: 2012-08-25 14:38+0100\n"
 "Last-Translator: Laurent BESSARD <laurent.bessard@gmail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: \n"
@@ -16,7 +16,7 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: ../PLCOpenEditor.py:4411
+#: ../PLCOpenEditor.py:3065
 msgid ""
 "\n"
 "An error has occurred.\n"
@@ -38,92 +38,91 @@
 "\n"
 "Erreur:\n"
 
-#: ../VariablePanel.py:72
+#: ../controls/VariablePanel.py:77
 msgid "   External"
 msgstr "  Externe"
 
-#: ../VariablePanel.py:71
+#: ../controls/VariablePanel.py:76
 msgid "   InOut"
 msgstr "  Entrée-Sortie"
 
-#: ../VariablePanel.py:71
+#: ../controls/VariablePanel.py:76
 msgid "   Input"
 msgstr "  Entrée"
 
-#: ../VariablePanel.py:72
+#: ../controls/VariablePanel.py:77
 msgid "   Local"
 msgstr "  Locale"
 
-#: ../VariablePanel.py:71
+#: ../controls/VariablePanel.py:76
 msgid "   Output"
 msgstr "  Sortie"
 
-#: ../VariablePanel.py:73
+#: ../controls/VariablePanel.py:78
 msgid "   Temp"
 msgstr "  Temporaire"
 
-#: ../PLCOpenEditor.py:4421
+#: ../PLCOpenEditor.py:3075
 msgid " : "
 msgstr " : "
 
-#: ../PLCOpenEditor.py:3337
-#: ../PLCOpenEditor.py:3500
-#: ../PLCOpenEditor.py:3644
-#: ../dialogs/SFCTransitionDialog.py:206
+#: ../dialogs/PouTransitionDialog.py:94
+#: ../dialogs/PouActionDialog.py:91
+#: ../dialogs/PouDialog.py:111
+#: ../dialogs/SFCTransitionDialog.py:144
 #, python-format
 msgid " and %s"
 msgstr " et %s"
 
-#: ../plcopen/plcopen.py:926
+#: ../plcopen/plcopen.py:1051
 #, python-format
 msgid "\"%s\" Data Type doesn't exist !!!"
 msgstr "Le type de donnée \"%s\" n'existe pas !!!"
 
-#: ../plcopen/plcopen.py:944
+#: ../plcopen/plcopen.py:1069
 #, python-format
 msgid "\"%s\" POU already exists !!!"
 msgstr "Le POU \"%s\" existe déjà !!!"
 
-#: ../plcopen/plcopen.py:965
+#: ../plcopen/plcopen.py:1090
 #, python-format
 msgid "\"%s\" POU doesn't exist !!!"
 msgstr "Le POU \"%s\" n'existe pas !!!"
 
-#: ../Viewer.py:227
+#: ../Viewer.py:233
 #, python-format
 msgid "\"%s\" can't use itself!"
 msgstr "\"%s\" ne peut pas s'utiliser lui-même !"
 
-#: ../PLCOpenEditor.py:1427
-#: ../PLCOpenEditor.py:1447
+#: ../PLCOpenEditor.py:1804
+#: ../PLCOpenEditor.py:1823
 #, python-format
 msgid "\"%s\" config already exists!"
 msgstr "La configuration \"%s\" existe déjà !"
 
-#: ../plcopen/plcopen.py:276
+#: ../plcopen/plcopen.py:315
 #, python-format
 msgid "\"%s\" configuration already exists !!!"
 msgstr "La configuration \"%s\" existe déjà !!!"
 
-#: ../PLCOpenEditor.py:1381
-#: ../PLCOpenEditor.py:3199
+#: ../PLCOpenEditor.py:1758
 #, python-format
 msgid "\"%s\" data type already exists!"
 msgstr "Le type de données \"%s\" existe déjà !"
 
-#: ../PLCControler.py:1786
-#: ../PLCControler.py:1790
+#: ../PLCControler.py:2040
+#: ../PLCControler.py:2044
 #, python-format
 msgid "\"%s\" element can't be pasted here!!!"
 msgstr "L'élément \"%s\" ne peut être collé ici !!!"
 
-#: ../PLCOpenEditor.py:3519
-#: ../PLCOpenEditor.py:3663
-#: ../Viewer.py:250
-#: ../TextViewer.py:245
-#: ../TextViewer.py:262
-#: ../dialogs/ConnectionDialog.py:215
-#: ../dialogs/FBDBlockDialog.py:260
+#: ../TextViewer.py:305
+#: ../TextViewer.py:325
+#: ../Viewer.py:251
+#: ../dialogs/PouTransitionDialog.py:105
+#: ../dialogs/ConnectionDialog.py:150
+#: ../dialogs/PouActionDialog.py:102
+#: ../dialogs/FBDBlockDialog.py:162
 #, python-format
 msgid "\"%s\" element for this pou already exists!"
 msgstr "Un élément \"%s\" existe déjà dans ce POU !"
@@ -133,106 +132,105 @@
 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:1372
-#: ../PLCOpenEditor.py:3195
-#: ../PLCOpenEditor.py:3348
-#: ../PLCOpenEditor.py:3511
-#: ../PLCOpenEditor.py:3655
-#: ../PLCOpenEditor.py:3726
-#: ../PLCOpenEditor.py:3789
-#: ../VariablePanel.py:744
-#: ../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
+#: ../controls/VariablePanel.py:651
+#: ../PLCOpenEditor.py:1749
+#: ../DataTypeEditor.py:547
+#: ../DataTypeEditor.py:576
+#: ../dialogs/PouNameDialog.py:49
+#: ../dialogs/PouTransitionDialog.py:101
+#: ../dialogs/SFCStepNameDialog.py:51
+#: ../dialogs/ConnectionDialog.py:146
+#: ../dialogs/FBDVariableDialog.py:199
+#: ../dialogs/PouActionDialog.py:98
+#: ../dialogs/PouDialog.py:118
+#: ../dialogs/SFCStepDialog.py:122
+#: ../dialogs/FBDBlockDialog.py:158
 #, 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:233
+#: ../Viewer.py:239
 #, python-format
 msgid "\"%s\" is already used by \"%s\"!"
 msgstr "\"%s\" est déjà utilisé par \"%s\" !"
 
-#: ../plcopen/plcopen.py:2386
+#: ../plcopen/plcopen.py:2786
 #, python-format
 msgid "\"%s\" is an invalid value!"
 msgstr "\"%s\" n'est pas une valeur valide !"
 
-#: ../PLCOpenEditor.py:2678
-#: ../PLCOpenEditor.py:2707
+#: ../PLCOpenEditor.py:2916
+#: ../PLCOpenEditor.py:2944
 #, python-format
 msgid "\"%s\" is not a valid folder!"
 msgstr "\"%s\" n'est pas un répertoire valide !"
 
-#: ../PLCOpenEditor.py:1370
-#: ../PLCOpenEditor.py:3191
-#: ../PLCOpenEditor.py:3344
-#: ../PLCOpenEditor.py:3507
-#: ../PLCOpenEditor.py:3651
-#: ../PLCOpenEditor.py:3722
-#: ../PLCOpenEditor.py:3785
-#: ../VariablePanel.py:739
-#: ../dialogs/ConnectionDialog.py:203
-#: ../dialogs/FBDBlockDialog.py:248
-#: ../dialogs/PouNameDialog.py:59
-#: ../dialogs/SFCStepDialog.py:179
-#: ../dialogs/SFCStepNameDialog.py:61
-#: ../DataTypeEditor.py:760
+#: ../controls/VariablePanel.py:649
+#: ../PLCOpenEditor.py:1747
+#: ../DataTypeEditor.py:571
+#: ../dialogs/PouNameDialog.py:47
+#: ../dialogs/PouTransitionDialog.py:99
+#: ../dialogs/SFCStepNameDialog.py:49
+#: ../dialogs/ConnectionDialog.py:144
+#: ../dialogs/PouActionDialog.py:96
+#: ../dialogs/PouDialog.py:116
+#: ../dialogs/SFCStepDialog.py:120
+#: ../dialogs/FBDBlockDialog.py:156
 #, python-format
 msgid "\"%s\" is not a valid identifier!"
 msgstr "\"%s\" n'est pas un identifiant valide !"
 
-#: ../PLCOpenEditor.py:288
-#: ../PLCOpenEditor.py:2327
-#: ../PLCOpenEditor.py:2347
+#: ../PLCOpenEditor.py:312
+#: ../PLCOpenEditor.py:2543
+#: ../PLCOpenEditor.py:2562
 #, 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:1390
-#: ../PLCOpenEditor.py:3352
-#: ../Viewer.py:248
-#: ../Viewer.py:274
-#: ../TextViewer.py:243
-#: ../TextViewer.py:260
-#: ../dialogs/ConnectionDialog.py:211
-#: ../dialogs/FBDBlockDialog.py:256
+#: ../controls/VariablePanel.py:306
+#: ../TextViewer.py:303
+#: ../TextViewer.py:323
+#: ../TextViewer.py:340
+#: ../PLCOpenEditor.py:1767
+#: ../Viewer.py:249
+#: ../Viewer.py:294
+#: ../Viewer.py:311
+#: ../dialogs/ConnectionDialog.py:148
+#: ../dialogs/PouDialog.py:120
+#: ../dialogs/FBDBlockDialog.py:160
 #, python-format
 msgid "\"%s\" pou already exists!"
 msgstr "Le POU \"%s\" existe déjà !"
 
-#: ../plcopen/plcopen.py:307
+#: ../plcopen/plcopen.py:346
 #, python-format
 msgid "\"%s\" resource already exists in \"%s\" configuration !!!"
 msgstr "La ressource \"%s\" existe déjà dans la configuration \"%s\" !!!"
 
-#: ../plcopen/plcopen.py:323
+#: ../plcopen/plcopen.py:362
 #, python-format
 msgid "\"%s\" resource doesn't exist in \"%s\" configuration !!!"
 msgstr "La ressource \"%s\" n'existe pas dans la configuration \"%s\" !!!"
 
-#: ../dialogs/SFCStepDialog.py:195
-#: ../dialogs/SFCStepNameDialog.py:77
+#: ../dialogs/SFCStepNameDialog.py:57
+#: ../dialogs/SFCStepDialog.py:128
 #, python-format
 msgid "\"%s\" step already exists!"
 msgstr "L'étape \"%s\" existe déjà !"
 
-#: ../DataTypeEditor.py:700
+#: ../DataTypeEditor.py:542
 #, python-format
 msgid "\"%s\" value already defined!"
 msgstr "La valeur \"%s\" est déjà définie !"
 
-#: ../DataTypeEditor.py:901
+#: ../DataTypeEditor.py:718
+#: ../dialogs/ArrayTypeDialog.py:97
 #, python-format
 msgid "\"%s\" value isn't a valid array dimension!"
 msgstr "\"%s\" n'est pas une dimension de tableau valide !"
 
-#: ../DataTypeEditor.py:908
+#: ../DataTypeEditor.py:725
+#: ../dialogs/ArrayTypeDialog.py:103
 #, python-format
 msgid ""
 "\"%s\" value isn't a valid array dimension!\n"
@@ -241,91 +239,156 @@
 "\"%s\" n'est pas une dimension de tableau valide !\n"
 "La valeur de droite doit être supérieur à celle de gauche."
 
-#: ../PLCControler.py:634
+#: ../PLCControler.py:793
 #, 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
+#: ../PLCControler.py:1422
+#, python-format
+msgid "%s Data Types"
+msgstr "Types de données de %s"
+
+#: ../GraphicViewer.py:278
 #, python-format
 msgid "%s Graphics"
 msgstr "Graphique %s"
 
-#: ../plcopen/plcopen.py:1484
-#: ../plcopen/plcopen.py:1494
-#: ../plcopen/plcopen.py:1504
-#: ../plcopen/plcopen.py:1514
-#: ../plcopen/plcopen.py:1523
+#: ../PLCControler.py:1417
+#, python-format
+msgid "%s POUs"
+msgstr "POUs de %s"
+
+#: ../plcopen/plcopen.py:1780
+#: ../plcopen/plcopen.py:1790
+#: ../plcopen/plcopen.py:1800
+#: ../plcopen/plcopen.py:1810
+#: ../plcopen/plcopen.py:1819
 #, python-format
 msgid "%s body don't have instances!"
 msgstr "Le code d'un %s n'a pas d'instances !"
 
-#: ../plcopen/plcopen.py:1546
-#: ../plcopen/plcopen.py:1553
+#: ../plcopen/plcopen.py:1842
+#: ../plcopen/plcopen.py:1849
 #, python-format
 msgid "%s body don't have text!"
 msgstr "Le code d'un %s n'a pas de texte !"
 
-#: ../PLCOpenEditor.py:4399
-#: ../PLCOpenEditor.py:4401
-#: ../PLCOpenEditor.py:4402
+#: ../PLCOpenEditor.py:462
+msgid "&Add Element"
+msgstr "&Ajouter un élément"
+
+#: ../PLCOpenEditor.py:432
+msgid "&Configuration"
+msgstr "&Configuration"
+
+#: ../PLCOpenEditor.py:423
+msgid "&Data Type"
+msgstr "&Type de donnée"
+
+#: ../PLCOpenEditor.py:466
+msgid "&Delete"
+msgstr "&Supprimer"
+
+#: ../PLCOpenEditor.py:415
+msgid "&Display"
+msgstr "&Affichage"
+
+#: ../PLCOpenEditor.py:414
+msgid "&Edit"
+msgstr "&Editer"
+
+#: ../PLCOpenEditor.py:413
+msgid "&File"
+msgstr "&Fichier"
+
+#: ../PLCOpenEditor.py:425
+msgid "&Function"
+msgstr "&Fonction"
+
+#: ../PLCOpenEditor.py:416
+msgid "&Help"
+msgstr "&Aide"
+
+#: ../PLCOpenEditor.py:429
+msgid "&Program"
+msgstr "&Programme"
+
+#: ../PLCOpenEditor.py:2702
+msgid "&Properties"
+msgstr "&Propriétés"
+
+#: ../SearchResultPanel.py:235
+#, python-format
+msgid "'%s' - %d match in project"
+msgstr "'%s' - %d correspondance dans le projet"
+
+#: ../SearchResultPanel.py:237
+#, python-format
+msgid "'%s' - %d matches in project"
+msgstr "'%s' - %d correspondances dans le projet"
+
+#: ../SearchResultPanel.py:287
+#, python-format
+msgid "(%d matches)"
+msgstr "(%d correspondances)"
+
+#: ../PLCOpenEditor.py:3053
+#: ../PLCOpenEditor.py:3055
+#: ../PLCOpenEditor.py:3056
 msgid ",   "
 msgstr ",   "
 
-#: ../PLCOpenEditor.py:3339
-#: ../PLCOpenEditor.py:3502
-#: ../PLCOpenEditor.py:3646
-#: ../dialogs/SFCTransitionDialog.py:208
+#: ../dialogs/PouTransitionDialog.py:96
+#: ../dialogs/PouActionDialog.py:93
+#: ../dialogs/PouDialog.py:113
+#: ../dialogs/SFCTransitionDialog.py:146
 #, python-format
 msgid ", %s"
 msgstr ", %s"
 
-#: ../PLCOpenEditor.py:4397
+#: ../PLCOpenEditor.py:3051
 msgid ". "
 msgstr ". "
 
-#: ../PLCOpenEditor.py:1393
-#: ../PLCOpenEditor.py:1435
-#: ../PLCOpenEditor.py:1455
-#: ../PLCOpenEditor.py:3356
-#: ../PLCOpenEditor.py:3734
-#: ../PLCOpenEditor.py:3797
+#: ../PLCOpenEditor.py:1770
+#: ../PLCOpenEditor.py:1812
+#: ../PLCOpenEditor.py:1831
+#: ../dialogs/PouDialog.py:122
 #, 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:1406
-#: ../PLCOpenEditor.py:1417
-#: ../PLCOpenEditor.py:3515
-#: ../PLCOpenEditor.py:3659
-#: ../PLCOpenEditor.py:3730
-#: ../PLCOpenEditor.py:3793
-#: ../VariablePanel.py:749
-#: ../dialogs/PouNameDialog.py:67
-#: ../dialogs/SFCStepDialog.py:187
-#: ../dialogs/SFCStepNameDialog.py:69
+#: ../controls/VariablePanel.py:653
+#: ../PLCOpenEditor.py:1782
+#: ../PLCOpenEditor.py:1793
+#: ../dialogs/PouNameDialog.py:51
+#: ../dialogs/PouTransitionDialog.py:103
+#: ../dialogs/SFCStepNameDialog.py:53
+#: ../dialogs/PouActionDialog.py:100
+#: ../dialogs/SFCStepDialog.py:124
 #, python-format
 msgid "A POU named \"%s\" already exists!"
 msgstr "Un POU nommé \"%s\" existe déjà !"
 
-#: ../VariablePanel.py:1250
+#: ../dialogs/BrowseLocationsDialog.py:175
 msgid "A location must be selected!"
 msgstr "Une adresse doit être sélectionné !"
 
-#: ../PLCOpenEditor.py:1408
-#: ../PLCOpenEditor.py:1419
-#: ../VariablePanel.py:754
-#: ../dialogs/SFCStepDialog.py:191
-#: ../dialogs/SFCStepNameDialog.py:73
+#: ../controls/VariablePanel.py:655
+#: ../PLCOpenEditor.py:1784
+#: ../PLCOpenEditor.py:1795
+#: ../dialogs/SFCStepNameDialog.py:55
+#: ../dialogs/SFCStepDialog.py:126
 #, 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:2519
+#: ../PLCOpenEditor.py:2735
 msgid "About"
 msgstr "A propos"
 
-#: ../PLCOpenEditor.py:2422
+#: ../PLCOpenEditor.py:2621
 msgid "About PLCOpenEditor"
 msgstr "A propos de PLCOpenEditor"
 
@@ -333,109 +396,107 @@
 msgid "Absolute number"
 msgstr "Nombre absolu"
 
-#: ../dialogs/ActionBlockDialog.py:37
-#: ../dialogs/SFCStepDialog.py:132
+#: ../dialogs/ActionBlockDialog.py:41
+#: ../dialogs/SFCStepDialog.py:69
 msgid "Action"
 msgstr "Action"
 
-#: ../PLCOpenEditor.py:3635
+#: ../Viewer.py:494
+msgid "Action Block"
+msgstr "Ajouter un bloc fonctionnel"
+
+#: ../dialogs/PouActionDialog.py:81
 msgid "Action Name"
 msgstr "Nom de l'action"
 
-#: ../PLCOpenEditor.py:3602
+#: ../dialogs/PouActionDialog.py:49
 msgid "Action Name:"
 msgstr "Nom de l'action :"
 
-#: ../plcopen/plcopen.py:1232
+#: ../plcopen/plcopen.py:1480
 #, python-format
 msgid "Action with name %s doesn't exist!"
 msgstr "L'action nommée %s n'existe pas !"
 
-#: ../PLCControler.py:90
+#: ../PLCControler.py:95
 msgid "Actions"
 msgstr "Actions"
 
-#: ../dialogs/ActionBlockDialog.py:260
+#: ../dialogs/ActionBlockDialog.py:134
 msgid "Actions:"
 msgstr "Actions :"
 
-#: ../VariablePanel.py:499
-#: ../dialogs/ActionBlockDialog.py:274
-#: ../DataTypeEditor.py:539
+#: ../Viewer.py:526
 msgid "Add"
 msgstr "Ajouter"
 
-#: ../PLCOpenEditor.py:1611
-#: ../PLCOpenEditor.py:1694
+#: ../PLCOpenEditor.py:2023
+#: ../PLCOpenEditor.py:2054
 msgid "Add Action"
 msgstr "Ajouter une action"
 
-#: ../PLCOpenEditor.py:1677
+#: ../PLCOpenEditor.py:2006
 msgid "Add Configuration"
 msgstr "Ajouter une configuration"
 
-#: ../PLCOpenEditor.py:1657
+#: ../PLCOpenEditor.py:1986
 msgid "Add DataType"
 msgstr "Ajouter un type de donnée"
 
-#: ../Viewer.py:401
+#: ../Viewer.py:452
 msgid "Add Divergence Branch"
 msgstr "Ajouter une branche à la divergence"
 
-#: ../PLCOpenEditor.py:334
-msgid "Add Element"
-msgstr "Ajouter un élément"
-
-#: ../RessourceEditor.py:435
-msgid "Add Instance"
-msgstr "Ajouter une instance"
-
-#: ../PLCOpenEditor.py:1664
+#: ../PLCOpenEditor.py:1994
 msgid "Add POU"
 msgstr "Ajouter un POU"
 
-#: ../PLCOpenEditor.py:1640
-#: ../PLCOpenEditor.py:1705
+#: ../PLCOpenEditor.py:2034
+#: ../PLCOpenEditor.py:2080
 msgid "Add Resource"
 msgstr "Ajouter une resource"
 
-#: ../RessourceEditor.py:399
-msgid "Add Task"
-msgstr "Ajouter une tâche"
-
-#: ../PLCOpenEditor.py:1608
-#: ../PLCOpenEditor.py:1683
+#: ../PLCOpenEditor.py:2012
+#: ../PLCOpenEditor.py:2051
 msgid "Add Transition"
 msgstr "Ajouter une transition"
 
-#: ../Viewer.py:396
+#: ../Viewer.py:441
 msgid "Add Wire Segment"
 msgstr "Ajouter un segment au fil"
 
-#: ../PLCOpenEditor.py:2199
-msgid "Add a new data type"
-msgstr "Ajouter un nouveau type de données"
-
-#: ../SFCViewer.py:362
+#: ../SFCViewer.py:358
 msgid "Add a new initial step"
 msgstr "Ajouter une nouvelle étape initiale"
 
-#: ../Viewer.py:2020
-#: ../SFCViewer.py:698
+#: ../Viewer.py:2291
+#: ../SFCViewer.py:695
 msgid "Add a new jump"
 msgstr "Ajouter un nouveau renvoi"
 
-#: ../SFCViewer.py:384
+#: ../SFCViewer.py:380
 msgid "Add a new step"
 msgstr "Ajouter une nouvelle étape"
 
-#: ../PLCOpenEditor.py:2251
-msgid "Add new configuration"
-msgstr "Ajouter une nouvelle configuration"
-
-#: ../PLCOpenEditor.py:2264
-msgid "Add new resource"
-msgstr "Ajouter une nouvelle resource"
+#: ../dialogs/ActionBlockDialog.py:138
+msgid "Add action"
+msgstr "Ajouter une action"
+
+#: ../DataTypeEditor.py:344
+msgid "Add element"
+msgstr "Ajouter un élément"
+
+#: ../RessourceEditor.py:250
+msgid "Add instance"
+msgstr "Ajouter une instance"
+
+#: ../RessourceEditor.py:221
+msgid "Add task"
+msgstr "Ajouter une tâche"
+
+#: ../controls/VariablePanel.py:373
+msgid "Add variable"
+msgstr "Ajouter une variable"
 
 #: ../plcopen/iec_std.csv:33
 msgid "Addition"
@@ -445,17 +506,17 @@
 msgid "Additional function blocks"
 msgstr "Blocs fonctionnels additionnels"
 
-#: ../Viewer.py:410
+#: ../Viewer.py:1397
 msgid "Alignment"
 msgstr "Alignement"
 
-#: ../VariablePanel.py:70
-#: ../VariablePanel.py:1067
-#: ../VariablePanel.py:1184
+#: ../controls/VariablePanel.py:75
+#: ../dialogs/BrowseLocationsDialog.py:35
+#: ../dialogs/BrowseLocationsDialog.py:116
 msgid "All"
 msgstr "Toutes"
 
-#: ../DataTypeEditor.py:775
+#: ../DataTypeEditor.py:586
 #, python-format
 msgid "An element named \"%s\" already exists in this structure!"
 msgstr "Un élément nommé \"%s\" existe déjà dans la structure !"
@@ -476,8 +537,8 @@
 msgid "Arithmetic"
 msgstr "Arithmétique"
 
-#: ../VariablePanel.py:807
-#: ../DataTypeEditor.py:236
+#: ../controls/VariablePanel.py:724
+#: ../DataTypeEditor.py:51
 msgid "Array"
 msgstr "Tableau"
 
@@ -485,26 +546,31 @@
 msgid "Assignment"
 msgstr "Assignation"
 
-#: ../dialogs/FBDVariableDialog.py:264
+#: ../dialogs/FBDVariableDialog.py:197
 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:2990
+#: ../controls/ProjectPropertiesPanel.py:99
 msgid "Author"
 msgstr "Auteur"
 
-#: ../PLCOpenEditor.py:2975
+#: ../controls/ProjectPropertiesPanel.py:96
 msgid "Author Name (optional):"
 msgstr "Nom de l'auteur (optionel) :"
 
-#: ../DataTypeEditor.py:379
-#: ../DataTypeEditor.py:403
-#: ../DataTypeEditor.py:478
+#: ../dialogs/FindInPouDialog.py:72
+msgid "Backward"
+msgstr "Vers le haut"
+
+#: ../DataTypeEditor.py:167
+#: ../DataTypeEditor.py:197
+#: ../DataTypeEditor.py:289
+#: ../dialogs/ArrayTypeDialog.py:55
 msgid "Base Type:"
 msgstr "Type de base :"
 
-#: ../VariablePanel.py:787
-#: ../DataTypeEditor.py:801
+#: ../controls/VariablePanel.py:694
+#: ../DataTypeEditor.py:616
 msgid "Base Types"
 msgstr "Types de base"
 
@@ -536,57 +602,61 @@
 msgid "Bitwise inverting"
 msgstr "Inversion bit à bit"
 
-#: ../dialogs/FBDBlockDialog.py:113
+#: ../Viewer.py:464
+msgid "Block"
+msgstr "Block"
+
+#: ../dialogs/FBDBlockDialog.py:38
 msgid "Block Properties"
 msgstr "Propriétés du bloc"
 
-#: ../PLCOpenEditor.py:1918
-#: ../dialogs/FBDBlockDialog.py:268
-msgid "Block Types"
-msgstr "Types de blocs"
-
-#: ../Viewer.py:368
+#: ../Viewer.py:433
 msgid "Bottom"
 msgstr "Bas"
 
-#: ../VariablePanel.py:1126
+#: ../dialogs/BrowseLocationsDialog.py:55
 msgid "Browse Locations"
 msgstr "Naviger dans les adresses"
 
-#: ../PLCOpenEditor.py:1859
-msgid "CSV Log"
-msgstr "Log CVS"
-
-#: ../plcopen/plcopen.py:1426
-#: ../plcopen/plcopen.py:1440
-#: ../plcopen/plcopen.py:1461
-#: ../plcopen/plcopen.py:1477
+#: ../plcopen/plcopen.py:1722
+#: ../plcopen/plcopen.py:1736
+#: ../plcopen/plcopen.py:1757
+#: ../plcopen/plcopen.py:1773
 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:327
+#: ../controls/VariablePanel.py:255
 msgid "Can only give a location to local or global variables"
 msgstr "Une adresse ne peut être affecté qu'à des variables locales ou globales"
 
-#: ../PLCOpenEditor.py:2673
+#: ../PLCOpenEditor.py:2911
 #, 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:325
+#: ../controls/VariablePanel.py:253
 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:2705
+msgstr "Une adresse ne peut être affectée à une instance de Function Block"
+
+#: ../PLCOpenEditor.py:2942
 #, python-format
 msgid "Can't save project to file %s!"
 msgstr "Le projet n'a pu être sauvé dans le fichier \"%s\" !"
 
-#: ../Viewer.py:359
+#: ../controls/VariablePanel.py:293
+msgid "Can't set an initial value to a function block instance"
+msgstr "Une valeur initiale ne peut être affectée une instance de Function Block"
+
+#: ../dialogs/FindInPouDialog.py:81
+#: ../dialogs/SearchInProjectDialog.py:67
+msgid "Case sensitive"
+msgstr "Respecter la casse"
+
+#: ../Viewer.py:428
 msgid "Center"
 msgstr "Centre"
 
-#: ../PLCOpenEditor.py:1629
+#: ../PLCOpenEditor.py:2072
 msgid "Change POU Type To"
 msgstr "Changer le type du POU pour"
 
@@ -594,55 +664,67 @@
 msgid "Character string"
 msgstr "Chaîne de caractères"
 
-#: ../PLCOpenEditor.py:2635
-#: ../PLCOpenEditor.py:2663
-#: ../PLCOpenEditor.py:2699
+#: ../PLCOpenEditor.py:2867
+#: ../PLCOpenEditor.py:2901
+#: ../PLCOpenEditor.py:2936
 msgid "Choose a file"
 msgstr "Choisissez un fichier"
 
-#: ../VariablePanel.py:53
-#: ../VariablePanel.py:54
+#: ../controls/VariablePanel.py:58
+#: ../controls/VariablePanel.py:59
 msgid "Class"
 msgstr "Classe"
 
-#: ../VariablePanel.py:491
+#: ../controls/VariablePanel.py:364
 msgid "Class Filter:"
 msgstr "Filtre de classe :"
 
-#: ../dialogs/FBDVariableDialog.py:124
+#: ../dialogs/FBDVariableDialog.py:62
 msgid "Class:"
 msgstr "Classe :"
 
-#: ../PLCOpenEditor.py:373
+#: ../PLCOpenEditor.py:509
 msgid "Clear Errors\tCTRL+K"
 msgstr "Effacer les erreurs\tCTRL+K"
 
-#: ../Viewer.py:406
+#: ../Viewer.py:519
 msgid "Clear Execution Order"
 msgstr "Effacer l'ordre d'exécution"
 
-#: ../PLCOpenEditor.py:2553
+#: ../GraphicViewer.py:125
+msgid "Clear the graph values"
+msgstr "Vider les valeurs du graphique"
+
+#: ../PLCOpenEditor.py:2775
 msgid "Close Application"
 msgstr "Fermer l'application"
 
-#: ../PLCOpenEditor.py:888
-#: ../PLCOpenEditor.py:2475
+#: ../PLCOpenEditor.py:1189
 msgid "Close Project"
 msgstr "Fermer le projet"
 
-#: ../PLCOpenEditor.py:2473
+#: ../PLCOpenEditor.py:2685
+msgid "Close Project\tCTRL+SHIFT+W"
+msgstr "Fermer le projet\tCTRL+SHIFT+W"
+
+#: ../PLCOpenEditor.py:2683
 msgid "Close Tab\tCTRL+W"
 msgstr "Fermer l'onglet\tCTRL+W"
 
-#: ../LDViewer.py:505
+#: ../Viewer.py:480
+msgid "Coil"
+msgstr "Relai"
+
+#: ../Viewer.py:500
+#: ../LDViewer.py:503
 msgid "Comment"
 msgstr "Commentaire"
 
-#: ../PLCOpenEditor.py:2959
+#: ../controls/ProjectPropertiesPanel.py:94
 msgid "Company Name (required):"
 msgstr "Nom de l'entreprise (obligatoire) :"
 
-#: ../PLCOpenEditor.py:2967
+#: ../controls/ProjectPropertiesPanel.py:95
 msgid "Company URL (optional):"
 msgstr "URL de l'entreprise (optionel) :"
 
@@ -654,39 +736,44 @@
 msgid "Concatenation"
 msgstr "Concaténation"
 
-#: ../PLCOpenEditor.py:344
+#: ../dialogs/SearchInProjectDialog.py:47
 msgid "Configuration"
 msgstr "Configuration"
 
-#: ../PLCControler.py:91
+#: ../PLCControler.py:96
 msgid "Configurations"
 msgstr "Configurations"
 
-#: ../dialogs/SFCTransitionDialog.py:143
+#: ../Viewer.py:466
+#: ../dialogs/SFCTransitionDialog.py:76
 msgid "Connection"
 msgstr "Connexion"
 
-#: ../dialogs/ConnectionDialog.py:101
+#: ../dialogs/ConnectionDialog.py:37
 msgid "Connection Properties"
 msgstr "Propriétés de la connexion"
 
-#: ../dialogs/ConnectionDialog.py:117
+#: ../dialogs/ConnectionDialog.py:56
 msgid "Connector"
 msgstr "Connecteur"
 
-#: ../dialogs/SFCStepDialog.py:109
+#: ../dialogs/SFCStepDialog.py:58
 msgid "Connectors:"
 msgstr "Connecteurs :"
 
-#: ../VariablePanel.py:60
+#: ../controls/VariablePanel.py:65
 msgid "Constant"
 msgstr "Constante"
 
-#: ../PLCOpenEditor.py:3049
+#: ../Viewer.py:476
+msgid "Contact"
+msgstr "Contact"
+
+#: ../controls/ProjectPropertiesPanel.py:197
 msgid "Content Description (optional):"
 msgstr "Description du contenu (optionel) :"
 
-#: ../dialogs/ConnectionDialog.py:123
+#: ../dialogs/ConnectionDialog.py:61
 msgid "Continuation"
 msgstr "Prolongement"
 
@@ -706,11 +793,16 @@
 msgid "Conversion to time-of-day"
 msgstr "Conversion en heure de la journée"
 
-#: ../PLCOpenEditor.py:329
+#: ../PLCOpenEditor.py:499
+#: ../Viewer.py:535
+msgid "Copy"
+msgstr "Copier"
+
+#: ../PLCOpenEditor.py:446
 msgid "Copy\tCTRL+C"
 msgstr "Copier\tCtrl+C"
 
-#: ../PLCOpenEditor.py:1616
+#: ../PLCOpenEditor.py:2059
 msgid "Copy POU"
 msgstr "Copier ce POU"
 
@@ -718,99 +810,104 @@
 msgid "Cosine"
 msgstr "Cosinus"
 
-#: ../PLCControler.py:620
-#: ../PLCControler.py:652
+#: ../PLCControler.py:765
+#: ../PLCControler.py:802
 msgid "Couldn't paste non-POU object."
 msgstr "Impossible de coller autre chose qu'un POU."
 
-#: ../PLCOpenEditor.py:3277
+#: ../dialogs/PouDialog.py:43
 msgid "Create a new POU"
 msgstr "Créer un nouveau POU"
 
-#: ../PLCOpenEditor.py:3598
+#: ../dialogs/PouActionDialog.py:38
 msgid "Create a new action"
 msgstr "Créer une nouvelle action"
 
-#: ../PLCOpenEditor.py:220
+#: ../PLCOpenEditor.py:233
 msgid "Create a new action block"
 msgstr "Créer un nouveau bloc d'actions"
 
-#: ../PLCOpenEditor.py:175
-#: ../PLCOpenEditor.py:202
-#: ../PLCOpenEditor.py:232
+#: ../PLCOpenEditor.py:182
+#: ../PLCOpenEditor.py:212
+#: ../PLCOpenEditor.py:245
 msgid "Create a new block"
 msgstr "Créer un nouveau bloc"
 
-#: ../PLCOpenEditor.py:196
+#: ../PLCOpenEditor.py:206
 msgid "Create a new branch"
 msgstr "Créer une nouvelle branche"
 
-#: ../PLCOpenEditor.py:190
+#: ../PLCOpenEditor.py:200
 msgid "Create a new coil"
 msgstr "Créer un nouveau relai"
 
-#: ../PLCOpenEditor.py:169
-#: ../PLCOpenEditor.py:181
-#: ../PLCOpenEditor.py:208
+#: ../PLCOpenEditor.py:176
+#: ../PLCOpenEditor.py:191
+#: ../PLCOpenEditor.py:221
 msgid "Create a new comment"
 msgstr "Créer un nouveau copmmentaire"
 
-#: ../PLCOpenEditor.py:178
-#: ../PLCOpenEditor.py:205
-#: ../PLCOpenEditor.py:235
+#: ../PLCOpenEditor.py:185
+#: ../PLCOpenEditor.py:215
+#: ../PLCOpenEditor.py:248
 msgid "Create a new connection"
 msgstr "Créer une nouvelle connexion"
 
-#: ../PLCOpenEditor.py:193
-#: ../PLCOpenEditor.py:241
+#: ../PLCOpenEditor.py:203
+#: ../PLCOpenEditor.py:254
 msgid "Create a new contact"
 msgstr "Créer un nouveau contact"
 
-#: ../PLCOpenEditor.py:223
+#: ../PLCOpenEditor.py:236
 msgid "Create a new divergence"
 msgstr "Créer une nouvelle divergence"
 
-#: ../dialogs/SFCDivergenceDialog.py:103
+#: ../dialogs/SFCDivergenceDialog.py:36
 msgid "Create a new divergence or convergence"
 msgstr "Créer une nouvelle divergence ou convergence"
 
-#: ../PLCOpenEditor.py:211
+#: ../PLCOpenEditor.py:224
 msgid "Create a new initial step"
 msgstr "Créer une nouvelle étape initiale"
 
-#: ../PLCOpenEditor.py:226
+#: ../PLCOpenEditor.py:239
 msgid "Create a new jump"
 msgstr "Créer un nouveau renvoi"
 
-#: ../PLCOpenEditor.py:184
-#: ../PLCOpenEditor.py:238
+#: ../PLCOpenEditor.py:194
+#: ../PLCOpenEditor.py:251
 msgid "Create a new power rail"
 msgstr "Créer une nouvelle barre d'alimentation"
 
-#: ../PLCOpenEditor.py:187
+#: ../PLCOpenEditor.py:197
 msgid "Create a new rung"
 msgstr "Créer un nouvel échelon"
 
-#: ../PLCOpenEditor.py:214
+#: ../PLCOpenEditor.py:227
 msgid "Create a new step"
 msgstr "Créer une nouvelle étape"
 
-#: ../PLCOpenEditor.py:217
-#: ../PLCOpenEditor.py:3454
+#: ../PLCOpenEditor.py:230
+#: ../dialogs/PouTransitionDialog.py:42
 msgid "Create a new transition"
 msgstr "Créer une nouvelle transition"
 
-#: ../PLCOpenEditor.py:172
-#: ../PLCOpenEditor.py:199
-#: ../PLCOpenEditor.py:229
+#: ../PLCOpenEditor.py:179
+#: ../PLCOpenEditor.py:209
+#: ../PLCOpenEditor.py:242
 msgid "Create a new variable"
 msgstr "Créer une nouvelle variable"
 
-#: ../PLCOpenEditor.py:327
+#: ../PLCOpenEditor.py:498
+#: ../Viewer.py:534
+msgid "Cut"
+msgstr "Couper"
+
+#: ../PLCOpenEditor.py:444
 msgid "Cut\tCTRL+X"
 msgstr "Couper\tCTRL+X"
 
-#: ../RessourceEditor.py:86
+#: ../RessourceEditor.py:70
 msgid "Cyclic"
 msgstr "Périodique"
 
@@ -824,13 +921,13 @@
 #: ../plcopen/iec_std.csv:58
 #: ../plcopen/iec_std.csv:60
 msgid "DEPRECATED"
-msgstr ""
-
-#: ../PLCOpenEditor.py:336
+msgstr "OBSOLETE"
+
+#: ../dialogs/SearchInProjectDialog.py:43
 msgid "Data Type"
 msgstr "Type de donnée"
 
-#: ../PLCControler.py:90
+#: ../PLCControler.py:95
 msgid "Data Types"
 msgstr "Types de données"
 
@@ -855,45 +952,37 @@
 msgid "Date subtraction"
 msgstr "Soustraction de date"
 
-#: ../Viewer.py:2873
+#: ../dialogs/DurationEditorDialog.py:43
+msgid "Days:"
+msgstr "Jours :"
+
+#: ../controls/PouInstanceVariablesPanel.py:52
+msgid "Debug instance"
+msgstr "Déboguer l'instance"
+
+#: ../Viewer.py:3224
 #, python-format
 msgid "Debug: %s"
 msgstr "Déboggage : %s"
 
-#: ../PLCOpenEditor.py:624
+#: ../PLCOpenEditor.py:706
 msgid "Debugger"
 msgstr "Déboggueur"
 
-#: ../PLCOpenEditor.py:348
-#: ../PLCOpenEditor.py:1634
-#: ../PLCOpenEditor.py:1643
-#: ../PLCOpenEditor.py:1649
-#: ../PLCOpenEditor.py:4169
-#: ../Viewer.py:415
-#: ../VariablePanel.py:504
-#: ../dialogs/ActionBlockDialog.py:279
-#: ../DataTypeEditor.py:544
+#: ../PLCOpenEditor.py:2088
+#: ../Viewer.py:510
 msgid "Delete"
 msgstr "Supprimer"
 
-#: ../Viewer.py:403
+#: ../Viewer.py:453
 msgid "Delete Divergence Branch"
 msgstr "Supprimer une branche de divergence"
 
-#: ../RessourceEditor.py:440
-msgid "Delete Instance"
-msgstr "Supprimer une instance"
-
-#: ../RessourceEditor.py:404
-msgid "Delete Task"
-msgstr "Supprimer une tâche"
-
-#: ../Viewer.py:398
+#: ../Viewer.py:442
 msgid "Delete Wire Segment"
 msgstr "Supprimer un segment de fil"
 
-#: ../DataTypeEditor.py:453
-#: ../DataTypeEditor.py:495
+#: ../controls/CustomEditableListBox.py:41
 msgid "Delete item"
 msgstr "Supprimer un élément"
 
@@ -901,7 +990,7 @@
 msgid "Deletion (within)"
 msgstr "Suppression (au milieu)"
 
-#: ../DataTypeEditor.py:364
+#: ../DataTypeEditor.py:145
 msgid "Derivation Type:"
 msgstr "Type de dérivation :"
 
@@ -913,32 +1002,41 @@
 "Dérivée\n"
 "Le Function Block derivative produit une sortie XOUT proportionnelle au rapport de changement de l'entrée XIN."
 
-#: ../DataTypeEditor.py:487
+#: ../controls/VariablePanel.py:355
+msgid "Description:"
+msgstr "Description :"
+
+#: ../DataTypeEditor.py:313
+#: ../dialogs/ArrayTypeDialog.py:61
 msgid "Dimensions:"
 msgstr "Dimensions :"
 
-#: ../VariablePanel.py:1143
+#: ../dialogs/FindInPouDialog.py:61
+msgid "Direction"
+msgstr "Direction"
+
+#: ../dialogs/BrowseLocationsDialog.py:78
 msgid "Direction:"
 msgstr "Direction :"
 
-#: ../DataTypeEditor.py:236
+#: ../DataTypeEditor.py:51
 msgid "Directly"
 msgstr "Direct"
 
-#: ../PLCOpenEditor.py:311
-msgid "Display"
-msgstr "Affichage"
+#: ../Viewer.py:495
+msgid "Divergence"
+msgstr "Divergence"
 
 #: ../plcopen/iec_std.csv:36
 msgid "Division"
 msgstr "Division"
 
-#: ../VariablePanel.py:53
-#: ../VariablePanel.py:54
+#: ../controls/VariablePanel.py:58
+#: ../controls/VariablePanel.py:59
 msgid "Documentation"
 msgstr "Documentation"
 
-#: ../PLCOpenEditor.py:2667
+#: ../PLCOpenEditor.py:2905
 msgid "Done"
 msgstr "Terminé"
 
@@ -950,67 +1048,74 @@
 "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/ActionBlockDialog.py:33
+#: ../dialogs/ActionBlockDialog.py:37
 msgid "Duration"
 msgstr "Durée"
 
-#: ../PLCOpenEditor.py:310
-msgid "Edit"
-msgstr "Editer"
-
-#: ../Viewer.py:413
+#: ../Viewer.py:509
 msgid "Edit Block"
 msgstr "Editer le block"
 
-#: ../dialogs/LDElementDialog.py:193
+#: ../dialogs/LDElementDialog.py:41
 msgid "Edit Coil Values"
 msgstr "Editer les valeurs du relai"
 
-#: ../dialogs/LDElementDialog.py:188
+#: ../dialogs/LDElementDialog.py:38
 msgid "Edit Contact Values"
 msgstr "Editer les valeurs du contact"
 
-#: ../dialogs/SFCStepDialog.py:101
+#: ../dialogs/DurationEditorDialog.py:59
+msgid "Edit Duration"
+msgstr "Editer une durée"
+
+#: ../dialogs/SFCStepDialog.py:35
 msgid "Edit Step"
 msgstr "Editer l'étape"
 
-#: ../dialogs/ActionBlockDialog.py:256
+#: ../dialogs/ActionBlockDialog.py:122
 msgid "Edit action block properties"
 msgstr "Editer les propriétés du block d'actions"
 
-#: ../Viewer.py:1845
-#: ../Viewer.py:1847
-#: ../Viewer.py:2346
-#: ../Viewer.py:2348
+#: ../dialogs/ArrayTypeDialog.py:45
+msgid "Edit array type properties"
+msgstr "Editer les propriétés d'un type de données tableau"
+
+#: ../Viewer.py:2114
+#: ../Viewer.py:2116
+#: ../Viewer.py:2632
+#: ../Viewer.py:2634
 msgid "Edit comment"
 msgstr "Editer le commentaire"
 
-#: ../DataTypeEditor.py:448
-#: ../DataTypeEditor.py:490
+#: ../controls/CustomEditableListBox.py:39
 msgid "Edit item"
 msgstr "Editer l'élément"
 
-#: ../Viewer.py:2311
+#: ../Viewer.py:2596
 msgid "Edit jump target"
 msgstr "Editer la cible du renvoi"
 
-#: ../SFCViewer.py:726
+#: ../SFCViewer.py:724
 msgid "Edit step name"
 msgstr "Editer le nom de l'étape"
 
-#: ../dialogs/SFCTransitionDialog.py:104
+#: ../dialogs/SFCTransitionDialog.py:38
 msgid "Edit transition"
 msgstr "Editer la transition"
 
-#: ../DataTypeEditor.py:520
+#: ../PLCOpenEditor.py:678
+msgid "Editor ToolBar"
+msgstr "Barre d'outils d'édition"
+
+#: ../DataTypeEditor.py:340
 msgid "Elements :"
 msgstr "Eléments :"
 
-#: ../PLCOpenEditor.py:324
+#: ../PLCOpenEditor.py:441
 msgid "Enable Undo/Redo"
 msgstr "Activer Défaire/Refaire"
 
-#: ../DataTypeEditor.py:236
+#: ../DataTypeEditor.py:51
 msgid "Enumerated"
 msgstr "Enumération"
 
@@ -1018,104 +1123,59 @@
 msgid "Equal to"
 msgstr "Egal à"
 
-#: ../PLCOpenEditor.py:882
-#: ../PLCOpenEditor.py:1393
-#: ../PLCOpenEditor.py:1430
-#: ../PLCOpenEditor.py:1435
-#: ../PLCOpenEditor.py:1450
-#: ../PLCOpenEditor.py:1455
-#: ../PLCOpenEditor.py:2305
-#: ../PLCOpenEditor.py:2674
-#: ../PLCOpenEditor.py:2679
-#: ../PLCOpenEditor.py:3095
-#: ../PLCOpenEditor.py:3187
-#: ../PLCOpenEditor.py:3191
-#: ../PLCOpenEditor.py:3195
-#: ../PLCOpenEditor.py:3199
-#: ../PLCOpenEditor.py:3340
-#: ../PLCOpenEditor.py:3344
-#: ../PLCOpenEditor.py:3348
-#: ../PLCOpenEditor.py:3352
-#: ../PLCOpenEditor.py:3503
-#: ../PLCOpenEditor.py:3507
-#: ../PLCOpenEditor.py:3511
-#: ../PLCOpenEditor.py:3515
-#: ../PLCOpenEditor.py:3519
-#: ../PLCOpenEditor.py:3647
-#: ../PLCOpenEditor.py:3651
-#: ../PLCOpenEditor.py:3655
-#: ../PLCOpenEditor.py:3659
-#: ../PLCOpenEditor.py:3663
-#: ../PLCOpenEditor.py:3718
-#: ../PLCOpenEditor.py:3722
-#: ../PLCOpenEditor.py:3726
-#: ../PLCOpenEditor.py:3730
-#: ../PLCOpenEditor.py:3781
-#: ../PLCOpenEditor.py:3785
-#: ../PLCOpenEditor.py:3789
-#: ../PLCOpenEditor.py:3793
-#: ../PLCOpenEditor.py:4096
-#: ../PLCOpenEditor.py:4422
-#: ../PLCOpenEditor.py:4432
-#: ../Viewer.py:334
-#: ../TextViewer.py:281
-#: ../LDViewer.py:665
-#: ../LDViewer.py:881
-#: ../LDViewer.py:885
-#: ../VariablePanel.py:374
-#: ../VariablePanel.py:739
-#: ../VariablePanel.py:744
-#: ../VariablePanel.py:749
-#: ../VariablePanel.py:754
-#: ../VariablePanel.py:1250
-#: ../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/ForceVariableDialog.py:170
-#: ../dialogs/ForceVariableDialog.py:174
-#: ../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
+#: ../controls/VariablePanel.py:325
+#: ../controls/VariablePanel.py:673
+#: ../controls/DebugVariablePanel.py:164
+#: ../TextViewer.py:356
+#: ../PLCOpenEditor.py:1183
+#: ../PLCOpenEditor.py:1770
+#: ../PLCOpenEditor.py:1807
+#: ../PLCOpenEditor.py:1812
+#: ../PLCOpenEditor.py:1826
+#: ../PLCOpenEditor.py:1831
+#: ../PLCOpenEditor.py:2520
+#: ../PLCOpenEditor.py:2912
+#: ../PLCOpenEditor.py:2917
+#: ../PLCOpenEditor.py:3076
+#: ../PLCOpenEditor.py:3086
+#: ../DataTypeEditor.py:542
+#: ../DataTypeEditor.py:547
+#: ../DataTypeEditor.py:571
+#: ../DataTypeEditor.py:576
+#: ../DataTypeEditor.py:586
+#: ../DataTypeEditor.py:718
+#: ../DataTypeEditor.py:725
+#: ../Viewer.py:365
+#: ../LDViewer.py:663
+#: ../LDViewer.py:879
+#: ../LDViewer.py:883
+#: ../dialogs/PouNameDialog.py:53
+#: ../dialogs/PouTransitionDialog.py:107
+#: ../dialogs/BrowseLocationsDialog.py:175
+#: ../dialogs/ProjectDialog.py:71
+#: ../dialogs/SFCStepNameDialog.py:59
+#: ../dialogs/ConnectionDialog.py:152
+#: ../dialogs/FBDVariableDialog.py:201
+#: ../dialogs/PouActionDialog.py:104
+#: ../dialogs/PouDialog.py:132
+#: ../dialogs/SFCTransitionDialog.py:147
+#: ../dialogs/DurationEditorDialog.py:121
+#: ../dialogs/DurationEditorDialog.py:163
+#: ../dialogs/SearchInProjectDialog.py:157
+#: ../dialogs/SFCStepDialog.py:130
+#: ../dialogs/ArrayTypeDialog.py:97
+#: ../dialogs/ArrayTypeDialog.py:103
+#: ../dialogs/FBDBlockDialog.py:164
+#: ../dialogs/ForceVariableDialog.py:169
 msgid "Error"
 msgstr "Erreur"
 
-#: ../dialogs/FBDBlockDialog.py:133
+#: ../dialogs/FBDBlockDialog.py:95
 msgid "Execution Control:"
 msgstr "Contrôle d'exécution :"
 
-#: ../dialogs/FBDBlockDialog.py:129
-#: ../dialogs/FBDVariableDialog.py:132
+#: ../dialogs/FBDVariableDialog.py:76
+#: ../dialogs/FBDBlockDialog.py:87
 msgid "Execution Order:"
 msgstr "Ordre d'exécution :"
 
@@ -1127,24 +1187,27 @@
 msgid "Exponentiation"
 msgstr "Exponentiel"
 
-#: ../dialogs/FBDVariableDialog.py:128
+#: ../GraphicViewer.py:144
+msgid "Export graph values to clipboard"
+msgstr "Exporter les valeurs du graphique vers le presse-papier"
+
+#: ../dialogs/FBDVariableDialog.py:69
 msgid "Expression:"
 msgstr "Expression :"
 
-#: ../VariablePanel.py:72
+#: ../controls/VariablePanel.py:77
 msgid "External"
 msgstr "Externe"
 
-#: ../PLCOpenEditor.py:3027
-#: ../PLCOpenEditor.py:3222
-#: ../PLCOpenEditor.py:3232
-#: ../PLCOpenEditor.py:3411
-#: ../PLCOpenEditor.py:3555
+#: ../controls/ProjectPropertiesPanel.py:143
+#: ../dialogs/PouTransitionDialog.py:35
+#: ../dialogs/PouActionDialog.py:31
+#: ../dialogs/PouDialog.py:36
 msgid "FBD"
 msgstr "FBD"
 
-#: ../Viewer.py:393
-#: ../dialogs/LDElementDialog.py:155
+#: ../Viewer.py:404
+#: ../dialogs/LDElementDialog.py:84
 msgid "Falling Edge"
 msgstr "Front descendant"
 
@@ -1156,88 +1219,127 @@
 "Détecteur de front descendant\n"
 "La sortie produit une impulsion unique lorsqu'un front descendant est détecté."
 
-#: ../PLCOpenEditor.py:309
-msgid "File"
-msgstr "Fichier"
+#: ../dialogs/DurationEditorDialog.py:160
+#, python-format
+msgid "Field %s hasn't a valid value!"
+msgstr "Le champ %s n'a pas une valeur valide !"
+
+#: ../dialogs/DurationEditorDialog.py:162
+#, python-format
+msgid "Fields %s haven't a valid value!"
+msgstr "Les champs %s n'ont pas une valeur valide !"
+
+#: ../dialogs/FindInPouDialog.py:30
+#: ../dialogs/FindInPouDialog.py:99
+msgid "Find"
+msgstr "Rechercher"
+
+#: ../PLCOpenEditor.py:451
+msgid "Find\tCTRL+F"
+msgstr "Rechercher...\tCTRL+Z"
+
+#: ../PLCOpenEditor.py:453
+msgid "Find Next\tCTRL+K"
+msgstr "Recherche suivante\tCTRL+N"
+
+#: ../PLCOpenEditor.py:455
+msgid "Find Previous\tCTRL+SHIFT+K"
+msgstr "Recherche précédente\tCTRL+SHIFT+K"
 
 #: ../plcopen/iec_std.csv:90
 msgid "Find position"
 msgstr "Trouver la position"
 
-#: ../PLCOpenEditor.py:4237
-#: ../Viewer.py:1095
+#: ../dialogs/FindInPouDialog.py:51
+msgid "Find:"
+msgstr "Rechercher :"
+
+#: ../controls/DebugVariablePanel.py:295
+#: ../Viewer.py:1355
 msgid "Force value"
 msgstr "Forcer la valeur"
 
-#: ../dialogs/ForceVariableDialog.py:155
+#: ../dialogs/ForceVariableDialog.py:152
 msgid "Forcing Variable Value"
 msgstr "Forcer la valeur de la variable"
 
-#: ../PLCOpenEditor.py:3095
-#: ../PLCOpenEditor.py:3340
-#: ../PLCOpenEditor.py:3503
-#: ../PLCOpenEditor.py:3647
-#: ../dialogs/SFCTransitionDialog.py:209
+#: ../dialogs/PouTransitionDialog.py:97
+#: ../dialogs/ProjectDialog.py:70
+#: ../dialogs/PouActionDialog.py:94
+#: ../dialogs/PouDialog.py:114
+#: ../dialogs/SFCTransitionDialog.py:147
 #, python-format
 msgid "Form isn't complete. %s must be filled!"
 msgstr "Le formulaire est incomplet. %s doit être complété !"
 
-#: ../dialogs/ConnectionDialog.py:199
-#: ../dialogs/FBDBlockDialog.py:244
+#: ../dialogs/ConnectionDialog.py:142
+#: ../dialogs/FBDBlockDialog.py:154
 msgid "Form isn't complete. Name must be filled!"
 msgstr "Le formulaire est incomplet. Le nom doit être complété !"
 
-#: ../dialogs/FBDBlockDialog.py:240
+#: ../dialogs/SearchInProjectDialog.py:145
+msgid "Form isn't complete. Pattern to search must be filled!"
+msgstr "Le formulaire est incomplet. Le modèle à chercher doit être complété !"
+
+#: ../dialogs/FBDBlockDialog.py:152
 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:338
+#: ../dialogs/FindInPouDialog.py:67
+msgid "Forward"
+msgstr "Vers le bas"
+
+#: ../dialogs/SearchInProjectDialog.py:44
 msgid "Function"
 msgstr "Fonction"
 
-#: ../PLCOpenEditor.py:340
-#: ../PLCOpenEditor.py:1624
+#: ../PLCOpenEditor.py:427
+msgid "Function &Block"
+msgstr "&Bloc Fonctionnel"
+
+#: ../PLCOpenEditor.py:2067
+#: ../dialogs/SearchInProjectDialog.py:45
 msgid "Function Block"
 msgstr "Bloc fonctionnel"
 
-#: ../VariablePanel.py:819
+#: ../controls/VariablePanel.py:736
 msgid "Function Block Types"
 msgstr "Types de blocs fonctionnels"
 
-#: ../PLCControler.py:89
+#: ../PLCControler.py:94
 msgid "Function Blocks"
 msgstr "Blocs fonctionnels"
 
-#: ../Viewer.py:229
+#: ../Viewer.py:235
 msgid "Function Blocks can't be used in Functions!"
 msgstr "Les blocs fonctionnels ne peuvent être utilisés dans des functions !"
 
-#: ../Viewer.py:231
+#: ../Viewer.py:237
 msgid "Function Blocks can't be used in Transitions!"
 msgstr "Les blocs fonctionnels ne peuvent être utilisés dans des transitions"
 
-#: ../PLCControler.py:1801
+#: ../PLCControler.py:2055
 #, 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:89
+#: ../PLCControler.py:94
 msgid "Functions"
 msgstr "Fonctions"
 
-#: ../PLCOpenEditor.py:2482
+#: ../PLCOpenEditor.py:2692
 msgid "Generate Program\tCTRL+G"
 msgstr "Générer le program\tCTRL+G"
 
-#: ../VariablePanel.py:73
+#: ../controls/VariablePanel.py:78
 msgid "Global"
 msgstr "Globale"
 
-#: ../PLCOpenEditor.py:1856
-msgid "Graphic Panel"
-msgstr "Graphique"
-
-#: ../PLCOpenEditor.py:3032
+#: ../GraphicViewer.py:131
+msgid "Go to current value"
+msgstr "Aller à la valeur actuelle"
+
+#: ../controls/ProjectPropertiesPanel.py:173
 msgid "Graphics"
 msgstr "Graphiques"
 
@@ -1249,86 +1351,91 @@
 msgid "Greater than or equal to"
 msgstr "Supérieur ou égal à"
 
-#: ../PLCOpenEditor.py:3019
+#: ../controls/ProjectPropertiesPanel.py:134
 msgid "Grid Resolution:"
 msgstr "Résolution de la grille :"
 
-#: ../PLCOpenEditor.py:3011
+#: ../controls/ProjectPropertiesPanel.py:120
 msgid "Height:"
 msgstr "Hauteur :"
 
-#: ../PLCOpenEditor.py:312
-msgid "Help"
-msgstr "Aide"
-
-#: ../PLCOpenEditor.py:2746
+#: ../controls/ProjectPropertiesPanel.py:150
 msgid "Horizontal:"
 msgstr "Horizontal :"
 
+#: ../dialogs/DurationEditorDialog.py:44
+msgid "Hours:"
+msgstr "Heures :"
+
 #: ../plcopen/structures.py:250
 msgid ""
 "Hysteresis\n"
 "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:3222
-#: ../PLCOpenEditor.py:3232
-#: ../PLCOpenEditor.py:3411
-#: ../PLCOpenEditor.py:3555
+"Hystérésis\n"
+"Le bloc functionnel hystérésis fourni un booléen en sortie suivant une courbe d'hystérésis entre les deux entrées réelles (REAL) XIN1 et XIN2."
+
+#: ../dialogs/PouTransitionDialog.py:35
+#: ../dialogs/PouActionDialog.py:31
+#: ../dialogs/PouDialog.py:36
 msgid "IL"
 msgstr "IL"
 
-#: ../VariablePanel.py:71
-#: ../dialogs/FBDVariableDialog.py:42
+#: ../controls/VariablePanel.py:76
+#: ../dialogs/FBDVariableDialog.py:34
 msgid "InOut"
 msgstr "Entrée-Sortie"
 
-#: ../VariablePanel.py:344
+#: ../controls/VariablePanel.py:262
 #, python-format
 msgid "Incompatible data types between \"%s\" and \"%s\""
 msgstr "Types de donnée imcompatible entre \"%s\" et \"%s\""
 
-#: ../VariablePanel.py:355
+#: ../controls/VariablePanel.py:273
 #, python-format
 msgid "Incompatible size of data between \"%s\" and \"%s\""
 msgstr "Taille de donnée incompatible entre \"%s\" et \"%s\""
 
-#: ../VariablePanel.py:351
+#: ../controls/VariablePanel.py:269
 #, python-format
 msgid "Incompatible size of data between \"%s\" and \"BOOL\""
 msgstr "Taille de donnée incompatible entre \"%s\" et \"BOOL\""
 
-#: ../dialogs/ActionBlockDialog.py:33
+#: ../dialogs/ActionBlockDialog.py:37
 msgid "Indicator"
 msgstr "Indicateur"
 
-#: ../VariablePanel.py:53
-#: ../VariablePanel.py:54
-#: ../DataTypeEditor.py:46
+#: ../Viewer.py:491
+msgid "Initial Step"
+msgstr "Étape initiale"
+
+#: ../controls/VariablePanel.py:58
+#: ../controls/VariablePanel.py:59
+#: ../DataTypeEditor.py:47
 msgid "Initial Value"
 msgstr "Valeur initiale"
 
-#: ../DataTypeEditor.py:388
-#: ../DataTypeEditor.py:412
-#: ../DataTypeEditor.py:463
-#: ../DataTypeEditor.py:505
+#: ../DataTypeEditor.py:177
+#: ../DataTypeEditor.py:208
+#: ../DataTypeEditor.py:264
+#: ../DataTypeEditor.py:302
 msgid "Initial Value:"
 msgstr "Valeur initiale :"
 
-#: ../dialogs/ActionBlockDialog.py:37
-#: ../dialogs/SFCTransitionDialog.py:131
-#: ../dialogs/SFCTransitionDialog.py:199
+#: ../dialogs/ActionBlockDialog.py:41
+#: ../dialogs/SFCTransitionDialog.py:66
+#: ../dialogs/SFCTransitionDialog.py:137
 msgid "Inline"
 msgstr "Inline"
 
-#: ../VariablePanel.py:71
-#: ../VariablePanel.py:1068
-#: ../dialogs/FBDVariableDialog.py:41
-#: ../dialogs/SFCStepDialog.py:122
+#: ../controls/VariablePanel.py:76
+#: ../dialogs/BrowseLocationsDialog.py:36
+#: ../dialogs/FBDVariableDialog.py:33
+#: ../dialogs/SFCStepDialog.py:61
 msgid "Input"
 msgstr "Entrée"
 
-#: ../dialogs/FBDBlockDialog.py:125
+#: ../dialogs/FBDBlockDialog.py:78
 msgid "Inputs:"
 msgstr "Entrées :"
 
@@ -1336,16 +1443,12 @@
 msgid "Insertion (into)"
 msgstr "Insertion (au milieu)"
 
-#: ../plcopen/plcopen.py:1537
+#: ../plcopen/plcopen.py:1833
 #, python-format
 msgid "Instance with id %d doesn't exist!"
 msgstr "L'instance dont l'id est %d n'existe pas !"
 
-#: ../PLCOpenEditor.py:565
-msgid "Instances"
-msgstr "Instances"
-
-#: ../RessourceEditor.py:420
+#: ../RessourceEditor.py:246
 msgid "Instances:"
 msgstr "Instances :"
 
@@ -1357,51 +1460,62 @@
 "Intégrale\n"
 "Le bloc fonctionnel INTEGRAL intègre les valeurs de l'entrée XIN en fonction du temps."
 
-#: ../VariablePanel.py:70
+#: ../controls/VariablePanel.py:75
 msgid "Interface"
 msgstr "Interface"
 
-#: ../RessourceEditor.py:86
+#: ../RessourceEditor.py:70
 msgid "Interrupt"
 msgstr "Interruption"
 
-#: ../RessourceEditor.py:82
+#: ../RessourceEditor.py:66
 msgid "Interval"
 msgstr "Interval"
 
-#: ../PLCControler.py:1778
-#: ../PLCControler.py:1816
+#: ../PLCControler.py:2032
+#: ../PLCControler.py:2070
 msgid "Invalid plcopen element(s)!!!"
 msgstr "Les éléments plcopen ne sont pas valides !!! "
 
-#: ../dialogs/ForceVariableDialog.py:174
+#: ../dialogs/ForceVariableDialog.py:167
 #, python-format
 msgid "Invalid value \"%s\" for \"%s\" variable!"
 msgstr "Valeur \"%s\" invalide pour une variable de type \"%s\" !"
 
-#: ../PLCOpenEditor.py:4085
-#: ../PLCOpenEditor.py:4088
+#: ../controls/DebugVariablePanel.py:153
+#: ../controls/DebugVariablePanel.py:156
 #, python-format
 msgid "Invalid value \"%s\" for debug variable"
 msgstr "Chemin de variable à déboguer \"%s\" invalide"
 
-#: ../VariablePanel.py:332
-#: ../VariablePanel.py:335
-#, python-format
-msgid "Invalid value \"%s\" for location"
-msgstr "Adresse \"%s\" invalide "
-
-#: ../Viewer.py:214
-#: ../Viewer.py:217
+#: ../controls/VariablePanel.py:243
+#: ../controls/VariablePanel.py:246
+#, python-format
+msgid "Invalid value \"%s\" for variable grid element"
+msgstr "Valeur \"%s\" invalide pour un élément de la grille de variables"
+
+#: ../Viewer.py:220
+#: ../Viewer.py:223
 #, python-format
 msgid "Invalid value \"%s\" for viewer block"
 msgstr "Valeur \"%s\" invalide pour un élément graphique"
 
-#: ../PLCOpenEditor.py:3027
-#: ../PLCOpenEditor.py:3222
-#: ../PLCOpenEditor.py:3232
-#: ../PLCOpenEditor.py:3411
-#: ../PLCOpenEditor.py:3555
+#: ../dialogs/DurationEditorDialog.py:121
+msgid ""
+"Invalid value!\n"
+"You must fill a numeric value."
+msgstr ""
+"Valeur invalide !\n"
+"Vous devez rentrer une valeur numérique."
+
+#: ../Viewer.py:496
+msgid "Jump"
+msgstr "Renvoi"
+
+#: ../controls/ProjectPropertiesPanel.py:143
+#: ../dialogs/PouTransitionDialog.py:35
+#: ../dialogs/PouActionDialog.py:31
+#: ../dialogs/PouDialog.py:36
 msgid "LD"
 msgstr "LD"
 
@@ -1411,27 +1525,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:3330
-#: ../PLCOpenEditor.py:3493
-#: ../PLCOpenEditor.py:3637
+#: ../dialogs/PouTransitionDialog.py:86
+#: ../dialogs/PouActionDialog.py:83
+#: ../dialogs/PouDialog.py:102
 msgid "Language"
 msgstr "Langue"
 
-#: ../PLCOpenEditor.py:3041
+#: ../controls/ProjectPropertiesPanel.py:186
 msgid "Language (optional):"
 msgstr "Langue (optionnel) :"
 
-#: ../PLCOpenEditor.py:3298
-#: ../PLCOpenEditor.py:3466
-#: ../PLCOpenEditor.py:3610
+#: ../dialogs/PouTransitionDialog.py:60
+#: ../dialogs/PouActionDialog.py:56
+#: ../dialogs/PouDialog.py:71
 msgid "Language:"
 msgstr "Langue :"
 
-#: ../Viewer.py:357
+#: ../Viewer.py:427
 msgid "Left"
 msgstr "Gauche"
 
-#: ../dialogs/LDPowerRailDialog.py:118
+#: ../dialogs/LDPowerRailDialog.py:55
 msgid "Left PowerRail"
 msgstr "Barre d'alimentation à gauche"
 
@@ -1447,7 +1561,7 @@
 msgid "Less than or equal to"
 msgstr "Inférieur ou égal à"
 
-#: ../PLCOpenEditor.py:600
+#: ../PLCOpenEditor.py:698
 msgid "Library"
 msgstr "Librairie"
 
@@ -1455,15 +1569,15 @@
 msgid "Limitation"
 msgstr "Limitation"
 
-#: ../VariablePanel.py:72
+#: ../controls/VariablePanel.py:77
 msgid "Local"
 msgstr "Locale"
 
-#: ../VariablePanel.py:53
+#: ../controls/VariablePanel.py:58
 msgid "Location"
 msgstr "Adresse"
 
-#: ../VariablePanel.py:1129
+#: ../dialogs/BrowseLocationsDialog.py:61
 msgid "Locations available:"
 msgstr "Adresses disponibles :"
 
@@ -1475,50 +1589,119 @@
 msgid "Maximum"
 msgstr "Maximum"
 
-#: ../DataTypeEditor.py:430
+#: ../DataTypeEditor.py:231
 msgid "Maximum:"
 msgstr "Maximum :"
 
-#: ../VariablePanel.py:1070
+#: ../dialogs/BrowseLocationsDialog.py:38
 msgid "Memory"
 msgstr "Mémoire"
 
-#: ../Viewer.py:366
+#: ../PLCOpenEditor.py:666
+msgid "Menu ToolBar"
+msgstr "Barre d'outils du menu principal"
+
+#: ../dialogs/DurationEditorDialog.py:48
+msgid "Microseconds:"
+msgstr "Microsecondes :"
+
+#: ../Viewer.py:432
 msgid "Middle"
 msgstr "Milieu"
 
+#: ../dialogs/DurationEditorDialog.py:47
+msgid "Milliseconds:"
+msgstr "Millisecondes :"
+
 #: ../plcopen/iec_std.csv:72
 msgid "Minimum"
 msgstr "Minimum"
 
-#: ../DataTypeEditor.py:421
+#: ../DataTypeEditor.py:218
 msgid "Minimum:"
 msgstr "Minimum :"
 
-#: ../PLCOpenEditor.py:3056
+#: ../dialogs/DurationEditorDialog.py:45
+msgid "Minutes:"
+msgstr "Minutes :"
+
+#: ../controls/ProjectPropertiesPanel.py:210
 msgid "Miscellaneous"
 msgstr "Divers"
 
-#: ../dialogs/LDElementDialog.py:117
+#: ../dialogs/LDElementDialog.py:59
 msgid "Modifier:"
 msgstr "Modificateur :"
 
-#: ../PLCGenerator.py:724
-#: ../PLCGenerator.py:948
+#: ../PLCGenerator.py:703
+#: ../PLCGenerator.py:936
 #, python-format
 msgid "More than one connector found corresponding to \"%s\" continuation in \"%s\" POU"
 msgstr "Plusieurs connecteurs trouvés pour le prolongement \"%s\" dans le POU \"%s\""
 
-#: ../DataTypeEditor.py:459
-#: ../DataTypeEditor.py:501
+#: ../dialogs/ActionBlockDialog.py:141
+msgid "Move action down"
+msgstr "Déplacer une action vers le bas"
+
+#: ../dialogs/ActionBlockDialog.py:140
+msgid "Move action up"
+msgstr "Déplacer une action vers le haut"
+
+#: ../controls/DebugVariablePanel.py:185
+msgid "Move debug variable down"
+msgstr "Déplacer une variable à déboguer vers le bas"
+
+#: ../controls/DebugVariablePanel.py:184
+msgid "Move debug variable up"
+msgstr "Déplacer une variable à déboguer vers le haut"
+
+#: ../controls/CustomEditableListBox.py:43
 msgid "Move down"
-msgstr "Déplcer vers le haut"
-
-#: ../DataTypeEditor.py:456
-#: ../DataTypeEditor.py:498
+msgstr "Déplacer vers le haut"
+
+#: ../DataTypeEditor.py:347
+msgid "Move element down"
+msgstr "Déplcer un élément vers le bas"
+
+#: ../DataTypeEditor.py:346
+msgid "Move element up"
+msgstr "Déplacer un élément vers le haut"
+
+#: ../RessourceEditor.py:253
+msgid "Move instance down"
+msgstr "Déplacer une instance vers le bas"
+
+#: ../RessourceEditor.py:252
+msgid "Move instance up"
+msgstr "Déplacer une instance vers le haut"
+
+#: ../RessourceEditor.py:224
+msgid "Move task down"
+msgstr "Déplcer une tâche vers le bas"
+
+#: ../RessourceEditor.py:223
+msgid "Move task up"
+msgstr "Déplacer une tâche vers le haut"
+
+#: ../PLCOpenEditor.py:173
+#: ../PLCOpenEditor.py:188
+#: ../PLCOpenEditor.py:218
+#: ../PLCOpenEditor.py:259
+msgid "Move the view"
+msgstr "Déplacer la vue"
+
+#: ../controls/CustomEditableListBox.py:42
 msgid "Move up"
 msgstr "Déplacer vers le bas"
 
+#: ../controls/VariablePanel.py:376
+msgid "Move variable down"
+msgstr "Déplacer une variable vers le bas"
+
+#: ../controls/VariablePanel.py:375
+msgid "Move variable up"
+msgstr "Déplacer une variable vers le haut"
+
 #: ../plcopen/iec_std.csv:74
 msgid "Multiplexer (select 1 of N)"
 msgstr "Multipléxeur (sélection 1 sur N)"
@@ -1527,19 +1710,19 @@
 msgid "Multiplication"
 msgstr "Multiplication"
 
-#: ../RessourceEditor.py:82
-#: ../RessourceEditor.py:91
-#: ../VariablePanel.py:53
-#: ../VariablePanel.py:54
-#: ../DataTypeEditor.py:46
+#: ../controls/VariablePanel.py:58
+#: ../controls/VariablePanel.py:59
+#: ../RessourceEditor.py:66
+#: ../RessourceEditor.py:75
+#: ../DataTypeEditor.py:47
 msgid "Name"
 msgstr "Nom"
 
-#: ../dialogs/ConnectionDialog.py:109
-#: ../dialogs/FBDBlockDialog.py:121
-#: ../dialogs/FBDVariableDialog.py:136
-#: ../dialogs/LDElementDialog.py:121
-#: ../dialogs/SFCStepDialog.py:105
+#: ../dialogs/ConnectionDialog.py:65
+#: ../dialogs/FBDVariableDialog.py:89
+#: ../dialogs/LDElementDialog.py:88
+#: ../dialogs/SFCStepDialog.py:51
+#: ../dialogs/FBDBlockDialog.py:70
 msgid "Name:"
 msgstr "Nom :"
 
@@ -1547,40 +1730,43 @@
 msgid "Natural logarithm"
 msgstr "Logarithme népérien"
 
-#: ../Viewer.py:389
-#: ../dialogs/LDElementDialog.py:135
+#: ../Viewer.py:402
+#: ../dialogs/LDElementDialog.py:67
 msgid "Negated"
 msgstr "Inversé"
 
-#: ../PLCOpenEditor.py:2469
+#: ../PLCOpenEditor.py:2721
+msgid "New"
+msgstr "Nouveau"
+
+#: ../PLCOpenEditor.py:2679
 msgid "New\tCTRL+N"
 msgstr "Nouveau\tCTRL+N"
 
-#: ../DataTypeEditor.py:450
-#: ../DataTypeEditor.py:492
+#: ../controls/CustomEditableListBox.py:40
 msgid "New item"
 msgstr "Nouvel élément"
 
-#: ../Viewer.py:387
+#: ../Viewer.py:401
 msgid "No Modifier"
 msgstr "Pas de modificateur"
 
-#: ../PLCControler.py:2669
+#: ../PLCControler.py:2929
 msgid "No PLC project found"
 msgstr "Pas de projet d'automate trouvé"
 
-#: ../PLCGenerator.py:1331
+#: ../PLCGenerator.py:1321
 #, python-format
 msgid "No body defined in \"%s\" POU"
 msgstr "Pas de code défini dans le POU \"%s\""
 
-#: ../PLCGenerator.py:743
-#: ../PLCGenerator.py:957
+#: ../PLCGenerator.py:722
+#: ../PLCGenerator.py:945
 #, python-format
 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:2416
+#: ../PLCOpenEditor.py:2615
 msgid ""
 "No documentation available.\n"
 "Coming soon."
@@ -1588,7 +1774,7 @@
 "Pas de documentation.\n"
 "Bientôt disponible."
 
-#: ../PLCGenerator.py:765
+#: ../PLCGenerator.py:744
 #, python-format
 msgid "No informations found for \"%s\" block"
 msgstr "Aucune information trouvée pour le block \"%s\""
@@ -1597,16 +1783,20 @@
 msgid "No output variable found"
 msgstr "Pas de variable de sortie trouvée."
 
-#: ../PLCGenerator.py:1329
+#: ../SearchResultPanel.py:169
+msgid "No search results available."
+msgstr "Pas de résultat de recherche disponible."
+
+#: ../PLCGenerator.py:1319
 #, python-format
 msgid "No variable defined in \"%s\" POU"
 msgstr "Pas de varaibles définies dans le POU \"%s\""
 
-#: ../VariablePanel.py:64
+#: ../controls/VariablePanel.py:69
 msgid "Non-Retain"
 msgstr "Non-Persistante"
 
-#: ../dialogs/LDElementDialog.py:129
+#: ../dialogs/LDElementDialog.py:62
 msgid "Normal"
 msgstr "Normal"
 
@@ -1614,7 +1804,7 @@
 msgid "Not equal to"
 msgstr "Non égal à"
 
-#: ../dialogs/SFCDivergenceDialog.py:135
+#: ../dialogs/SFCDivergenceDialog.py:80
 msgid "Number of sequences:"
 msgstr "Nombre de branches :"
 
@@ -1627,30 +1817,46 @@
 "Off-delay timer\n"
 "The off-delay timer can be used to delay setting an output false, for fixed period after input goes false."
 msgstr ""
+"Temporisation avec retard à l'extinction\n"
+"La temporisation avec retard à l'extinction peut être utilisé pour retarder le passage de la sortie à l'état faux, d'une période fixe après le passage de l'entrée à l'état faux"
 
 #: ../plcopen/structures.py:213
 msgid ""
 "On-delay timer\n"
 "The on-delay timer can be used to delay setting an output true, for fixed period after an input becomes true."
 msgstr ""
-
-#: ../PLCOpenEditor.py:2471
+"Temporisation avec retard à l'allumage\n"
+"La temporisation avec retard à l'allumage peut être utilisé pour retarder le passage de la sortie à l'état vrai, d'une période fixe après le passage de l'entrée à l'état vrai"
+
+#: ../dialogs/SearchInProjectDialog.py:93
+msgid "Only Elements"
+msgstr "Uniquement les éléments"
+
+#: ../PLCOpenEditor.py:2722
+msgid "Open"
+msgstr "Ouvrir"
+
+#: ../PLCOpenEditor.py:2681
 msgid "Open\tCTRL+O"
 msgstr "Ouvrir\tCTRL+O"
 
-#: ../VariablePanel.py:53
-#: ../VariablePanel.py:54
+#: ../controls/VariablePanel.py:58
+#: ../controls/VariablePanel.py:59
 msgid "Option"
 msgstr "Option"
 
-#: ../PLCOpenEditor.py:2983
+#: ../dialogs/FindInPouDialog.py:76
+msgid "Options"
+msgstr "Options"
+
+#: ../controls/ProjectPropertiesPanel.py:97
 msgid "Organization (optional):"
 msgstr "Groupe (optionnel) :"
 
-#: ../VariablePanel.py:71
-#: ../VariablePanel.py:1069
-#: ../dialogs/FBDVariableDialog.py:43
-#: ../dialogs/SFCStepDialog.py:127
+#: ../controls/VariablePanel.py:76
+#: ../dialogs/BrowseLocationsDialog.py:37
+#: ../dialogs/FBDVariableDialog.py:35
+#: ../dialogs/SFCStepDialog.py:65
 msgid "Output"
 msgstr "Sortie"
 
@@ -1662,188 +1868,192 @@
 "PID\n"
 "Le bloc fonctionnel PID (Proportionnel, Intégrale, Dérivée) fournit un controller de boucle fermé classique à trois paramètres."
 
-#: ../PLCOpenEditor.py:2635
-#: ../PLCOpenEditor.py:2699
+#: ../PLCOpenEditor.py:2867
+#: ../PLCOpenEditor.py:2936
 msgid "PLCOpen files (*.xml)|*.xml|All files|*.*"
 msgstr "Fichiers PLCOpen (*.xml)|*.xml|Tous les fichiers|*.*"
 
-#: ../PLCOpenEditor.py:2564
+#: ../PLCOpenEditor.py:2785
 msgid "PLCOpenEditor"
 msgstr "PLCOpenEditor"
 
-#: ../PLCOpenEditor.py:2513
+#: ../PLCOpenEditor.py:2729
 msgid "PLCOpenEditor\tF1"
 msgstr "PLCOpenEditor\tF1"
 
-#: ../PLCOpenEditor.py:3326
+#: ../dialogs/PouDialog.py:98
 msgid "POU Name"
 msgstr "Nom du POU"
 
-#: ../PLCOpenEditor.py:3281
+#: ../dialogs/PouDialog.py:56
 msgid "POU Name:"
 msgstr "Nom du POU :"
 
-#: ../PLCOpenEditor.py:3328
+#: ../dialogs/PouDialog.py:100
 msgid "POU Type"
 msgstr "Type du POU"
 
-#: ../PLCOpenEditor.py:3289
+#: ../dialogs/PouDialog.py:63
 msgid "POU Type:"
 msgstr "Type du POU :"
 
-#: ../PLCOpenEditor.py:2485
-msgid "Page Setup"
-msgstr "Mise en page..."
-
-#: ../PLCOpenEditor.py:2999
+#: ../PLCOpenEditor.py:2695
+msgid "Page Setup\tCTRL+ALT+P"
+msgstr "Mise en page...\tCTRL+ALT+P"
+
+#: ../controls/ProjectPropertiesPanel.py:110
 msgid "Page Size (optional):"
 msgstr "Taille de la page (optionnel) :"
 
-#: ../PLCOpenEditor.py:4367
+#: ../PLCOpenEditor.py:3021
 #, python-format
 msgid "Page: %d"
 msgstr "Page: %d"
 
-#: ../PLCOpenEditor.py:331
+#: ../controls/PouInstanceVariablesPanel.py:41
+msgid "Parent instance"
+msgstr "Instance parent"
+
+#: ../PLCOpenEditor.py:500
+#: ../Viewer.py:536
+msgid "Paste"
+msgstr "Coller"
+
+#: ../PLCOpenEditor.py:448
 msgid "Paste\tCTRL+V"
 msgstr "Coller\tCTRL+V"
 
-#: ../PLCOpenEditor.py:1668
+#: ../PLCOpenEditor.py:1998
 msgid "Paste POU"
 msgstr "Coller un POU"
 
-#: ../dialogs/LDPowerRailDialog.py:110
+#: ../dialogs/SearchInProjectDialog.py:64
+msgid "Pattern to search:"
+msgstr "Modèle à rechercher :"
+
+#: ../dialogs/LDPowerRailDialog.py:64
 msgid "Pin number:"
 msgstr "Nombre de pattes :"
 
-#: ../Viewer.py:2020
-#: ../Viewer.py:2311
-#: ../SFCViewer.py:698
+#: ../Viewer.py:2291
+#: ../Viewer.py:2596
+#: ../SFCViewer.py:695
 msgid "Please choose a target"
 msgstr "Choisissez une cible"
 
-#: ../Viewer.py:1845
-#: ../Viewer.py:1847
-#: ../Viewer.py:2346
-#: ../Viewer.py:2348
+#: ../Viewer.py:2114
+#: ../Viewer.py:2116
+#: ../Viewer.py:2632
+#: ../Viewer.py:2634
 msgid "Please enter comment text"
 msgstr "Saisissez le texte du commentaire"
 
-#: ../PLCOpenEditor.py:2251
-#: ../PLCOpenEditor.py:3701
-msgid "Please enter configuration name"
-msgstr "Saisissez le nom de la configuration"
-
-#: ../PLCOpenEditor.py:2199
-msgid "Please enter data type name"
-msgstr "Saisissez le nom du type de donnée"
-
-#: ../PLCOpenEditor.py:2264
-#: ../PLCOpenEditor.py:3764
-msgid "Please enter resource name"
-msgstr "Saisissez le nom de la ressource"
-
-#: ../SFCViewer.py:362
-#: ../SFCViewer.py:384
-#: ../SFCViewer.py:726
+#: ../SFCViewer.py:358
+#: ../SFCViewer.py:380
+#: ../SFCViewer.py:724
 msgid "Please enter step name"
 msgstr "Saisissez le nom de l'étape"
 
-#: ../PLCOpenEditor.py:3172
-msgid "Please enter text"
-msgstr "Saisissez le texte"
-
-#: ../dialogs/ForceVariableDialog.py:156
+#: ../dialogs/ForceVariableDialog.py:153
 #, python-format
 msgid "Please enter value for a \"%s\" variable:"
 msgstr "Veuillez entrer la valeur pour une variable de type \"%s\" :"
 
-#: ../VariablePanel.py:1196
-msgid "Plugins"
-msgstr "Plugins"
-
-#: ../GraphicViewer.py:117
+#: ../GraphicViewer.py:105
 msgid "Position:"
 msgstr "Position :"
 
-#: ../dialogs/LDPowerRailDialog.py:102
+#: ../Viewer.py:475
+msgid "Power Rail"
+msgstr "Barre d'alimentation"
+
+#: ../dialogs/LDPowerRailDialog.py:36
 msgid "Power Rail Properties"
 msgstr "Propriétés de la barre d'alimentation"
 
-#: ../PLCOpenEditor.py:2487
-msgid "Preview"
-msgstr "Aperçu avant impression"
-
-#: ../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
+#: ../PLCOpenEditor.py:2697
+msgid "Preview\tCTRL+SHIFT+P"
+msgstr "Aperçu avant impression\tCTRL+SHIFT+S"
+
+#: ../dialogs/SFCDivergenceDialog.py:93
+#: ../dialogs/LDPowerRailDialog.py:78
+#: ../dialogs/ConnectionDialog.py:78
+#: ../dialogs/FBDVariableDialog.py:97
+#: ../dialogs/SFCTransitionDialog.py:96
+#: ../dialogs/LDElementDialog.py:101
+#: ../dialogs/SFCStepDialog.py:79
+#: ../dialogs/FBDBlockDialog.py:103
 msgid "Preview:"
 msgstr "Aperçu :"
 
-#: ../PLCOpenEditor.py:2489
+#: ../PLCOpenEditor.py:2725
 msgid "Print"
 msgstr "Imprimer"
 
-#: ../PLCOpenEditor.py:951
+#: ../PLCOpenEditor.py:2699
+msgid "Print\tCTRL+P"
+msgstr "Imprimer...\tCTRL+Q"
+
+#: ../PLCOpenEditor.py:1253
 msgid "Print preview"
 msgstr "Aperçu avant impression"
 
-#: ../RessourceEditor.py:82
+#: ../RessourceEditor.py:66
 msgid "Priority"
 msgstr "Priorité"
 
-#: ../dialogs/SFCTransitionDialog.py:116
+#: ../dialogs/SFCTransitionDialog.py:83
 msgid "Priority:"
 msgstr "Priorité :"
 
-#: ../PLCOpenEditor.py:2927
+#: ../controls/ProjectPropertiesPanel.py:80
 msgid "Product Name (required):"
 msgstr "Nom du produit (obligatoire) :"
 
-#: ../PLCOpenEditor.py:2943
+#: ../controls/ProjectPropertiesPanel.py:82
 msgid "Product Release (optional):"
 msgstr "Publication du produit (optionnel) :"
 
-#: ../PLCOpenEditor.py:2935
+#: ../controls/ProjectPropertiesPanel.py:81
 msgid "Product Version (required):"
 msgstr "Version du produit (obligatoire) :"
 
-#: ../PLCOpenEditor.py:342
-#: ../PLCOpenEditor.py:1627
+#: ../PLCOpenEditor.py:2070
+#: ../dialogs/SearchInProjectDialog.py:46
 msgid "Program"
 msgstr "Programme"
 
-#: ../PLCOpenEditor.py:2676
+#: ../PLCOpenEditor.py:2914
 msgid "Program was successfully generated!"
 msgstr "Le programme a été généré avec succès !"
 
-#: ../PLCControler.py:90
+#: ../PLCControler.py:95
 msgid "Programs"
 msgstr "Programmes"
 
-#: ../Viewer.py:223
+#: ../Viewer.py:229
 msgid "Programs can't be used by other POUs!"
 msgstr "Les programmes ne peuvent être utilisés par les autres POUs !"
 
-#: ../PLCOpenEditor.py:443
-#: ../PLCOpenEditor.py:2950
+#: ../controls/ProjectPropertiesPanel.py:84
+#: ../PLCOpenEditor.py:651
 msgid "Project"
 msgstr "Projet"
 
-#: ../PLCOpenEditor.py:2911
+#: ../SearchResultPanel.py:173
+#, python-format
+msgid "Project '%s':"
+msgstr "Projet  '%s' :"
+
+#: ../controls/ProjectPropertiesPanel.py:78
 msgid "Project Name (required):"
 msgstr "Nom du projet (obligatoire) :"
 
-#: ../PLCOpenEditor.py:2919
+#: ../controls/ProjectPropertiesPanel.py:79
 msgid "Project Version (optional):"
 msgstr "Version du projet (optionnel) :"
 
-#: ../PLCControler.py:2656
+#: ../PLCControler.py:2916
 msgid ""
 "Project file syntax error:\n"
 "\n"
@@ -1851,12 +2061,11 @@
 "Erreur de syntaxe dans le fichier du projet :\n"
 "\n"
 
-#: ../PLCOpenEditor.py:2897
+#: ../dialogs/ProjectDialog.py:32
 msgid "Project properties"
 msgstr "Propriétés du projet"
 
-#: ../PLCOpenEditor.py:2492
-#: ../PLCControler.py:91
+#: ../PLCControler.py:96
 msgid "Properties"
 msgstr "Propriétés"
 
@@ -1865,12 +2074,14 @@
 "Pulse timer\n"
 "The pulse timer can be used to generate output pulses of a given time duration."
 msgstr ""
-
-#: ../dialogs/ActionBlockDialog.py:33
+"Temporisation à impulsion\n"
+"La temporisation à impulsion peut être utilisée pour générer sur la sortie des impulsions d'une durée déterminée."
+
+#: ../dialogs/ActionBlockDialog.py:37
 msgid "Qualifier"
 msgstr "Qualificatif"
 
-#: ../PLCOpenEditor.py:2495
+#: ../PLCOpenEditor.py:2705
 msgid "Quit\tCTRL+Q"
 msgstr "Quitter\tCTRL+Q"
 
@@ -1885,30 +2096,50 @@
 #: ../plcopen/structures.py:245
 msgid ""
 "Ramp\n"
-"The RAMP function block is modelled on example given in the standard but with the addition of a 'Holdback' feature."
+"The RAMP function block is modelled on example given in the standard."
 msgstr ""
 "Rampe\n"
-"Le bloc fonctionnel RAMP est basé sur l'exemple du standard mais avec en supplément un paramètre 'Holdback'."
-
-#: ../GraphicViewer.py:106
+"Le bloc fonctionnel RAMP est basé sur l'exemple du standard."
+
+#: ../GraphicViewer.py:89
 msgid "Range:"
 msgstr "Echelle :"
 
-#: ../PLCOpenEditor.py:321
+#: ../plcopen/structures.py:225
+msgid ""
+"Real time clock\n"
+"The real time clock has many uses including time stamping, setting dates and times of day in batch reports, in alarm messages and so on."
+msgstr ""
+"Horloge temps réel\n"
+"L'horloge temps réel est utilisée dans de nombreux cas tels que l'horodatage, la définition des dates et heures dans des rapports de commandes, dans des messages d'alarme et bien d'autres."
+
+#: ../PLCOpenEditor.py:496
+msgid "Redo"
+msgstr "Refaire"
+
+#: ../PLCOpenEditor.py:438
 msgid "Redo\tCTRL+Y"
 msgstr "Refaire\tCTRL+Y"
 
-#: ../dialogs/SFCTransitionDialog.py:120
-#: ../dialogs/SFCTransitionDialog.py:197
+#: ../dialogs/SFCTransitionDialog.py:57
+#: ../dialogs/SFCTransitionDialog.py:135
 msgid "Reference"
 msgstr "Référence"
 
-#: ../PLCOpenEditor.py:370
+#: ../PLCOpenEditor.py:506
 msgid "Refresh\tCTRL+R"
 msgstr "Actualiser\tCTRL+R"
 
-#: ../PLCOpenEditor.py:4240
-#: ../Viewer.py:1098
+#: ../dialogs/SearchInProjectDialog.py:73
+msgid "Regular expression"
+msgstr "Expression régulière"
+
+#: ../dialogs/FindInPouDialog.py:91
+msgid "Regular expressions"
+msgstr "Expressions régulières"
+
+#: ../controls/DebugVariablePanel.py:299
+#: ../Viewer.py:1358
 msgid "Release value"
 msgstr "Relacher la valeur"
 
@@ -1916,7 +2147,31 @@
 msgid "Remainder (modulo)"
 msgstr "Modulo"
 
-#: ../PLCOpenEditor.py:1631
+#: ../dialogs/ActionBlockDialog.py:139
+msgid "Remove action"
+msgstr "Supprimer une action"
+
+#: ../controls/DebugVariablePanel.py:183
+msgid "Remove debug variable"
+msgstr "Supprimer une variable à déboguer"
+
+#: ../DataTypeEditor.py:345
+msgid "Remove element"
+msgstr "Supprimer un élément"
+
+#: ../RessourceEditor.py:251
+msgid "Remove instance"
+msgstr "Supprimer une instance"
+
+#: ../RessourceEditor.py:222
+msgid "Remove task"
+msgstr "Supprimer la tâche"
+
+#: ../controls/VariablePanel.py:374
+msgid "Remove variable"
+msgstr "Supprimer une variable"
+
+#: ../PLCOpenEditor.py:2074
 msgid "Rename"
 msgstr "Renommer"
 
@@ -1924,36 +2179,48 @@
 msgid "Replacement (within)"
 msgstr "Remplacement (au milieu)"
 
-#: ../dialogs/LDElementDialog.py:145
+#: ../dialogs/LDElementDialog.py:76
 msgid "Reset"
 msgstr "Mise à zéro"
 
-#: ../Viewer.py:408
+#: ../Viewer.py:520
 msgid "Reset Execution Order"
 msgstr "Réinitialiser l'order d'exécution"
 
-#: ../PLCControler.py:91
+#: ../PLCOpenEditor.py:521
+msgid "Reset Perspective"
+msgstr "Réinitialiser l'interface"
+
+#: ../SearchResultPanel.py:105
+msgid "Reset search result"
+msgstr "Réinitialiser le résultat de la recherche"
+
+#: ../GraphicViewer.py:137
+msgid "Reset zoom and offset"
+msgstr "Réinitialisation du zoom et de l'offset"
+
+#: ../PLCControler.py:96
 msgid "Resources"
 msgstr "Ressources"
 
-#: ../VariablePanel.py:62
+#: ../controls/VariablePanel.py:67
 msgid "Retain"
 msgstr "Persistante"
 
-#: ../VariablePanel.py:482
+#: ../controls/VariablePanel.py:347
 msgid "Return Type:"
 msgstr "Type de retour :"
 
-#: ../Viewer.py:361
+#: ../Viewer.py:429
 msgid "Right"
 msgstr "Droite"
 
-#: ../dialogs/LDPowerRailDialog.py:124
+#: ../dialogs/LDPowerRailDialog.py:60
 msgid "Right PowerRail"
 msgstr "Barre d'alimentation à droite"
 
-#: ../Viewer.py:391
-#: ../dialogs/LDElementDialog.py:150
+#: ../Viewer.py:403
+#: ../dialogs/LDElementDialog.py:80
 msgid "Rising Edge"
 msgstr "Front montant"
 
@@ -1977,8 +2244,8 @@
 msgid "Rounding up/down"
 msgstr "Arrondi"
 
-#: ../PLCOpenEditor.py:3027
-#: ../PLCOpenEditor.py:3232
+#: ../controls/ProjectPropertiesPanel.py:143
+#: ../dialogs/PouDialog.py:36
 msgid "SFC"
 msgstr "SFC"
 
@@ -1990,35 +2257,68 @@
 "Bascule SR\n"
 "La bascule SR est une bascule où le Set est dominant."
 
-#: ../PLCOpenEditor.py:3222
-#: ../PLCOpenEditor.py:3232
-#: ../PLCOpenEditor.py:3411
-#: ../PLCOpenEditor.py:3555
+#: ../dialogs/PouTransitionDialog.py:35
+#: ../dialogs/PouActionDialog.py:31
+#: ../dialogs/PouDialog.py:36
 msgid "ST"
 msgstr "ST"
 
-#: ../PLCOpenEditor.py:2663
+#: ../PLCOpenEditor.py:2901
 msgid "ST files (*.st)|*.st|All files|*.*"
 msgstr "Fichiers ST (*.st)|*.st|Tous les fichiers|*.*"
 
-#: ../PLCOpenEditor.py:2478
+#: ../PLCOpenEditor.py:2723
+msgid "Save"
+msgstr "Enregistrer"
+
+#: ../PLCOpenEditor.py:2688
 msgid "Save\tCTRL+S"
 msgstr "Enregistrer\tCTRL+S"
 
-#: ../PLCOpenEditor.py:2480
+#: ../PLCOpenEditor.py:2724
+msgid "Save As..."
+msgstr "Enregistrer sous..."
+
+#: ../PLCOpenEditor.py:2690
 msgid "Save As...\tCTRL+SHIFT+S"
 msgstr "Enregistrer sous...\tCTRL+SHIFT+S"
 
-#: ../PLCOpenEditor.py:346
+#: ../dialogs/SearchInProjectDialog.py:76
+msgid "Scope"
+msgstr "Contexte"
+
+#: ../PLCOpenEditor.py:690
+#: ../dialogs/SearchInProjectDialog.py:105
+msgid "Search"
+msgstr "Rechercher"
+
+#: ../PLCOpenEditor.py:502
+#: ../dialogs/SearchInProjectDialog.py:52
+msgid "Search in Project"
+msgstr "Rechercher dans le projet"
+
+#: ../PLCOpenEditor.py:458
+msgid "Search in Project\tCTRL+SHIFT+F"
+msgstr "Rechercher dans le projet\tCTRL+SHIFT+F"
+
+#: ../dialogs/DurationEditorDialog.py:46
+msgid "Seconds:"
+msgstr "Secondes :"
+
+#: ../PLCOpenEditor.py:464
 msgid "Select All\tCTRL+A"
 msgstr "Tout sélectionner\tCTRL+A"
 
-#: ../VariablePanel.py:357
+#: ../controls/VariablePanel.py:276
+#: ../Viewer.py:276
 msgid "Select a variable class:"
 msgstr "Sélectionner une direction pour la variable :"
 
-#: ../PLCOpenEditor.py:576
-#: ../PLCOpenEditor.py:588
+#: ../controls/PouInstanceVariablesPanel.py:197
+msgid "Select an instance"
+msgstr "Sélectionnez une instance"
+
+#: ../PLCOpenEditor.py:674
 msgid "Select an object"
 msgstr "Sélectionner un objet"
 
@@ -2026,11 +2326,11 @@
 msgid "Selection"
 msgstr "Sélection"
 
-#: ../dialogs/SFCDivergenceDialog.py:117
+#: ../dialogs/SFCDivergenceDialog.py:62
 msgid "Selection Convergence"
 msgstr "Convergence simple"
 
-#: ../dialogs/SFCDivergenceDialog.py:111
+#: ../dialogs/SFCDivergenceDialog.py:55
 msgid "Selection Divergence"
 msgstr "Divergence simple"
 
@@ -2042,7 +2342,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/LDElementDialog.py:140
+#: ../dialogs/LDElementDialog.py:72
 msgid "Set"
 msgstr "Mise à 1"
 
@@ -2054,11 +2354,11 @@
 msgid "Shift right"
 msgstr "Décalage à droite"
 
-#: ../dialogs/SFCDivergenceDialog.py:129
+#: ../dialogs/SFCDivergenceDialog.py:74
 msgid "Simultaneous Convergence"
 msgstr "Convergence double"
 
-#: ../dialogs/SFCDivergenceDialog.py:123
+#: ../dialogs/SFCDivergenceDialog.py:68
 msgid "Simultaneous Divergence"
 msgstr "Divergence double"
 
@@ -2066,7 +2366,7 @@
 msgid "Sine"
 msgstr "Sinus"
 
-#: ../RessourceEditor.py:82
+#: ../RessourceEditor.py:66
 msgid "Single"
 msgstr "Evènement"
 
@@ -2078,11 +2378,15 @@
 msgid "Standard function blocks"
 msgstr "Blocs fonctionnels standards"
 
-#: ../DataTypeEditor.py:236
+#: ../Viewer.py:492
+msgid "Step"
+msgstr "Étape"
+
+#: ../DataTypeEditor.py:51
 msgid "Structure"
 msgstr "Structure"
 
-#: ../DataTypeEditor.py:236
+#: ../DataTypeEditor.py:51
 msgid "Subrange"
 msgstr "Sous-ensemble"
 
@@ -2090,37 +2394,41 @@
 msgid "Subtraction"
 msgstr "Soustraction"
 
+#: ../dialogs/SearchInProjectDialog.py:154
+msgid "Syntax error in regular expression of pattern to search!"
+msgstr "Erreur de syntaxe dans l'expression régulière du modèle à rechercher !"
+
 #: ../plcopen/iec_std.csv:29
 msgid "Tangent"
 msgstr "Tangente"
 
-#: ../RessourceEditor.py:91
+#: ../RessourceEditor.py:75
 msgid "Task"
 msgstr "Tâche"
 
-#: ../RessourceEditor.py:384
+#: ../RessourceEditor.py:217
 msgid "Tasks:"
 msgstr "Tâches :"
 
-#: ../VariablePanel.py:73
+#: ../controls/VariablePanel.py:78
 msgid "Temp"
 msgstr "Temporaire"
 
-#: ../LDViewer.py:881
+#: ../LDViewer.py:879
 msgid "The group of block must be coherent!"
 msgstr "Le groupe de blocs doit être cohérent !"
 
-#: ../PLCOpenEditor.py:890
+#: ../PLCOpenEditor.py:1191
 msgid "There are changes, do you want to save?"
 msgstr "Le projet a été modifié. Voulez-vous l'enregistrer ?"
 
-#: ../PLCOpenEditor.py:1430
-#: ../PLCOpenEditor.py:1450
+#: ../PLCOpenEditor.py:1807
+#: ../PLCOpenEditor.py:1826
 #, 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:974
+#: ../PLCOpenEditor.py:1276
 msgid ""
 "There was a problem printing.\n"
 "Perhaps your current printer is not set correctly?"
@@ -2128,11 +2436,11 @@
 "Un problème est apparu lors de l'impression.\n"
 "Peut-être que votre imprimante n'est pas correctement configurée ?"
 
-#: ../LDViewer.py:890
+#: ../LDViewer.py:888
 msgid "This option isn't available yet!"
 msgstr "Cette option n'a pas encore disponible"
 
-#: ../GraphicViewer.py:180
+#: ../GraphicViewer.py:278
 msgid "Tick"
 msgstr "Tick"
 
@@ -2176,50 +2484,55 @@
 msgid "Time-of-day subtraction"
 msgstr "Soustraction d'horodatage"
 
-#: ../PLCOpenEditor.py:580
-msgid "Toolbar"
-msgstr "Barre d'outils"
-
-#: ../Viewer.py:364
+#: ../Viewer.py:431
 msgid "Top"
 msgstr "Haut"
 
-#: ../PLCOpenEditor.py:3491
+#: ../Viewer.py:493
+msgid "Transition"
+msgstr "Transition"
+
+#: ../PLCGenerator.py:1212
+#, python-format
+msgid "Transition \"%s\" body must contain an output variable or coil referring to its name"
+msgstr "Le code de la transition \"%s\"  doit contenir une variable de sortie ou un relai dont la référence est son nom"
+
+#: ../dialogs/PouTransitionDialog.py:84
 msgid "Transition Name"
 msgstr "Nom de la transition"
 
-#: ../PLCOpenEditor.py:3458
+#: ../dialogs/PouTransitionDialog.py:53
 msgid "Transition Name:"
 msgstr "Nom de la transition :"
 
-#: ../PLCGenerator.py:1311
+#: ../PLCGenerator.py:1301
 #, python-format
 msgid "Transition with content \"%s\" not connected to a next step in \"%s\" POU"
 msgstr "La transition contenant \"%s\" n'est pas connectée à une étape en sortie dans le POU \"%s\" !"
 
-#: ../PLCGenerator.py:1302
+#: ../PLCGenerator.py:1292
 #, python-format
 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:1194
+#: ../plcopen/plcopen.py:1442
 #, python-format
 msgid "Transition with name %s doesn't exist!"
 msgstr "La transition nommée %s n'existe pas !"
 
-#: ../PLCControler.py:90
+#: ../PLCControler.py:95
 msgid "Transitions"
 msgstr "Transitions"
 
-#: ../RessourceEditor.py:82
+#: ../RessourceEditor.py:66
 msgid "Triggering"
 msgstr "Activation"
 
-#: ../RessourceEditor.py:91
-#: ../VariablePanel.py:53
-#: ../VariablePanel.py:54
-#: ../dialogs/ActionBlockDialog.py:33
-#: ../DataTypeEditor.py:46
+#: ../controls/VariablePanel.py:58
+#: ../controls/VariablePanel.py:59
+#: ../RessourceEditor.py:75
+#: ../DataTypeEditor.py:47
+#: ../dialogs/ActionBlockDialog.py:37
 msgid "Type"
 msgstr "Type"
 
@@ -2227,42 +2540,48 @@
 msgid "Type conversion"
 msgstr "Conversion de type"
 
-#: ../DataTypeEditor.py:360
+#: ../DataTypeEditor.py:154
 msgid "Type infos:"
 msgstr "Propriétés du type :"
 
-#: ../dialogs/ConnectionDialog.py:105
-#: ../dialogs/FBDBlockDialog.py:117
-#: ../dialogs/LDPowerRailDialog.py:106
-#: ../dialogs/SFCDivergenceDialog.py:107
-#: ../dialogs/SFCTransitionDialog.py:108
+#: ../dialogs/SFCDivergenceDialog.py:51
+#: ../dialogs/LDPowerRailDialog.py:51
+#: ../dialogs/ConnectionDialog.py:52
+#: ../dialogs/SFCTransitionDialog.py:53
+#: ../dialogs/FBDBlockDialog.py:48
 msgid "Type:"
 msgstr "Type :"
 
-#: ../PLCOpenEditor.py:546
-msgid "Types"
-msgstr "Types"
-
-#: ../PLCGenerator.py:232
+#: ../PLCGenerator.py:865
+#: ../PLCGenerator.py:924
+#, python-format
+msgid "Undefined block type \"%s\" in \"%s\" POU"
+msgstr "Type de block \"%s\" indéfini dans le POU \"%s\""
+
+#: ../PLCGenerator.py:240
 #, python-format
 msgid "Undefined pou type \"%s\""
 msgstr "Type de POU \"%s\" indéterminé !"
 
-#: ../PLCOpenEditor.py:319
+#: ../PLCOpenEditor.py:495
+msgid "Undo"
+msgstr "Défaire"
+
+#: ../PLCOpenEditor.py:436
 msgid "Undo\tCTRL+Z"
 msgstr "Défaire\tCTRL+Z"
 
-#: ../Viewer.py:304
+#: ../Viewer.py:335
 #, python-format
 msgid "Unknown variable \"%s\" for this POU!"
 msgstr "Variable \"%s\" inconnue dans ce POU !"
 
-#: ../PLCControler.py:300
+#: ../PLCControler.py:305
 #, python-format
 msgid "Unnamed%d"
 msgstr "Sansnom%d"
 
-#: ../VariablePanel.py:353
+#: ../controls/VariablePanel.py:271
 #, python-format
 msgid "Unrecognized data size \"%s\""
 msgstr "Taille de donnée \"%s\" non identifié !"
@@ -2283,118 +2602,126 @@
 "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."
 
-#: ../VariablePanel.py:799
-#: ../DataTypeEditor.py:807
+#: ../controls/VariablePanel.py:704
+#: ../DataTypeEditor.py:622
 msgid "User Data Types"
 msgstr "Types de donnée du projet"
 
-#: ../PLCControler.py:89
+#: ../PLCControler.py:94
 msgid "User-defined POUs"
 msgstr "POUs du projet"
 
-#: ../PLCOpenEditor.py:3900
-#: ../dialogs/ActionBlockDialog.py:33
+#: ../controls/DebugVariablePanel.py:40
+#: ../dialogs/ActionBlockDialog.py:37
 msgid "Value"
 msgstr "Valeur"
 
-#: ../GraphicViewer.py:180
+#: ../GraphicViewer.py:278
 msgid "Values"
 msgstr "Valeurs"
 
-#: ../DataTypeEditor.py:445
+#: ../DataTypeEditor.py:251
 msgid "Values:"
 msgstr "Valeurs"
 
-#: ../PLCOpenEditor.py:3900
-#: ../dialogs/ActionBlockDialog.py:37
+#: ../controls/DebugVariablePanel.py:40
+#: ../Viewer.py:465
+#: ../dialogs/ActionBlockDialog.py:41
 msgid "Variable"
 msgstr "Variable"
 
-#: ../dialogs/FBDVariableDialog.py:120
+#: ../dialogs/FBDVariableDialog.py:47
 msgid "Variable Properties"
 msgstr "Propriétés de la variable"
 
-#: ../VariablePanel.py:357
+#: ../controls/VariablePanel.py:276
+#: ../Viewer.py:276
 msgid "Variable class"
 msgstr "Direction de la variable"
 
-#: ../Viewer.py:306
-#: ../TextViewer.py:279
+#: ../TextViewer.py:354
+#: ../Viewer.py:337
 msgid "Variable don't belong to this POU!"
 msgstr "La variable n'appartient pas à ce POU !"
 
-#: ../PLCOpenEditor.py:595
-#: ../VariablePanel.py:72
+#: ../controls/VariablePanel.py:77
 msgid "Variables"
 msgstr "Variables"
 
-#: ../PLCOpenEditor.py:2754
+#: ../controls/ProjectPropertiesPanel.py:151
 msgid "Vertical:"
 msgstr "Vertical :"
 
-#: ../PLCOpenEditor.py:3356
-#: ../PLCOpenEditor.py:3734
-#: ../PLCOpenEditor.py:3797
-#: ../LDViewer.py:890
+#: ../LDViewer.py:888
+#: ../dialogs/PouDialog.py:126
 msgid "Warning"
 msgstr "Attention"
 
-#: ../PLCOpenEditor.py:3003
+#: ../dialogs/SearchInProjectDialog.py:85
+msgid "Whole Project"
+msgstr "Tout le projet"
+
+#: ../controls/ProjectPropertiesPanel.py:119
 msgid "Width:"
 msgstr "Longueur :"
 
-#: ../LDViewer.py:885
+#: ../dialogs/FindInPouDialog.py:86
+msgid "Wrap search"
+msgstr "Boucler"
+
+#: ../LDViewer.py:883
 msgid "You must select the block or group of blocks around which a branch should be added!"
 msgstr "Vous devez sélectionné le bloc ou le group autour duquel un ebranche doit être ajoutée !"
 
-#: ../LDViewer.py:665
+#: ../LDViewer.py:663
 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:3187
-#: ../PLCOpenEditor.py:3718
-#: ../PLCOpenEditor.py:3781
-#: ../dialogs/PouNameDialog.py:55
-#: ../dialogs/SFCStepDialog.py:175
-#: ../dialogs/SFCStepNameDialog.py:57
+#: ../dialogs/PouNameDialog.py:45
+#: ../dialogs/SFCStepNameDialog.py:47
+#: ../dialogs/SFCStepDialog.py:118
 msgid "You must type a name!"
 msgstr "Vous devez saisir un nom !"
 
-#: ../dialogs/ForceVariableDialog.py:170
+#: ../dialogs/ForceVariableDialog.py:165
 msgid "You must type a value!"
 msgstr "Vous devez saisir une valeur !"
 
-#: ../PLCOpenEditor.py:376
+#: ../PLCOpenEditor.py:512
 msgid "Zoom"
 msgstr "Zoom"
 
-#: ../PLCOpenEditor.py:2672
+#: ../GraphicViewer.py:97
+msgid "Zoom:"
+msgstr "Zoom :"
+
+#: ../PLCOpenEditor.py:2910
 #, python-format
 msgid "error: %s\n"
 msgstr "erreur: %s\n"
 
-#: ../PLCOpenEditor.py:4399
-#: ../PLCOpenEditor.py:4401
+#: ../PLCOpenEditor.py:3053
+#: ../PLCOpenEditor.py:3055
 msgid "file : "
 msgstr "fichier :"
 
-#: ../PLCOpenEditor.py:3227
+#: ../dialogs/PouDialog.py:31
 msgid "function"
 msgstr "fonction"
 
-#: ../PLCOpenEditor.py:4402
+#: ../PLCOpenEditor.py:3056
 msgid "function : "
 msgstr "fonction :"
 
-#: ../PLCOpenEditor.py:3227
+#: ../dialogs/PouDialog.py:31
 msgid "functionBlock"
 msgstr "Bloc fonctionnel"
 
-#: ../PLCOpenEditor.py:4402
+#: ../PLCOpenEditor.py:3056
 msgid "line : "
 msgstr "ligne :"
 
-#: ../PLCOpenEditor.py:3227
+#: ../dialogs/PouDialog.py:31
 msgid "program"
 msgstr "programme"
 
@@ -2410,11 +2737,59 @@
 msgid "string right of"
 msgstr "Caractères à droite de"
 
-#: ../PLCOpenEditor.py:2670
+#: ../PLCOpenEditor.py:2908
 #, python-format
 msgid "warning: %s\n"
 msgstr "attention: %s\n"
 
+#~ msgid "Add a new data type"
+#~ msgstr "Ajouter un nouveau type de données"
+
+#~ msgid "Add new configuration"
+#~ msgstr "Ajouter une nouvelle configuration"
+
+#~ msgid "Add new resource"
+#~ msgstr "Ajouter une nouvelle resource"
+
+#~ msgid "Block Types"
+#~ msgstr "Types de blocs"
+
+#~ msgid "CSV Log"
+#~ msgstr "Log CVS"
+
+#~ msgid "Delete Task"
+#~ msgstr "Supprimer une tâche"
+
+#~ msgid "Graphic Panel"
+#~ msgstr "Graphique"
+
+#~ msgid "Instances"
+#~ msgstr "Instances"
+
+#~ msgid "Invalid value \"%s\" for location"
+#~ msgstr "Adresse \"%s\" invalide "
+
+#~ msgid "Please enter configuration name"
+#~ msgstr "Saisissez le nom de la configuration"
+
+#~ msgid "Please enter data type name"
+#~ msgstr "Saisissez le nom du type de donnée"
+
+#~ msgid "Please enter resource name"
+#~ msgstr "Saisissez le nom de la ressource"
+
+#~ msgid "Please enter text"
+#~ msgstr "Saisissez le texte"
+
+#~ msgid "Plugins"
+#~ msgstr "Plugins"
+
+#~ msgid "Preview"
+#~ msgstr "Aperçu avant impression"
+
+#~ msgid "Types"
+#~ msgstr "Types"
+
 #~ msgid "Create a new POU from"
 #~ msgstr "Créer un nouveau POU à partir de"