i18n/Beremiz_fr_FR.po
changeset 814 5743cbdff669
parent 801 435e49e80832
child 1005 496a96e1dcb6
--- a/i18n/Beremiz_fr_FR.po	Wed Sep 05 11:17:52 2012 +0200
+++ b/i18n/Beremiz_fr_FR.po	Fri Sep 07 16:45:55 2012 +0200
@@ -7,8 +7,8 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-08-24 18:28+0200\n"
-"PO-Revision-Date: 2012-08-24 18:46+0100\n"
+"POT-Creation-Date: 2012-09-07 01:17+0200\n"
+"PO-Revision-Date: 2012-09-07 01:31+0100\n"
 "Last-Translator: Laurent BESSARD <laurent.bessard@gmail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: \n"
@@ -16,7 +16,29 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: ../Beremiz.py:1069
+#: ../PLCOpenEditor.py:520
+msgid ""
+"\n"
+"An error has occurred.\n"
+"\n"
+"Click OK to save an error report.\n"
+"\n"
+"Please be kind enough to send this file to:\n"
+"edouard.tisserant@gmail.com\n"
+"\n"
+"Error:\n"
+msgstr ""
+"\n"
+"Une erreur est apparue.\n"
+"\n"
+"Appuyer sur 'Valider' pour enregistrer un rapport d'erreur.\n"
+"\n"
+"Envoyez ce fichier à l'adresse :\n"
+"edouard.tisserant@gmail.com\n"
+"\n"
+"Erreur:\n"
+
+#: ../Beremiz.py:1071
 #, python-format
 msgid ""
 "\n"
@@ -41,84 +63,602 @@
 "\n"
 "Trace d'exécution:\n"
 
-#: ../ProjectController.py:891
+#: ../controls/VariablePanel.py:77
+msgid "   External"
+msgstr "  Externe"
+
+#: ../controls/VariablePanel.py:76
+msgid "   InOut"
+msgstr "  Entrée-Sortie"
+
+#: ../controls/VariablePanel.py:76
+msgid "   Input"
+msgstr "  Entrée"
+
+#: ../controls/VariablePanel.py:77
+msgid "   Local"
+msgstr "  Locale"
+
+#: ../controls/VariablePanel.py:76
+msgid "   Output"
+msgstr "  Sortie"
+
+#: ../controls/VariablePanel.py:78
+msgid "   Temp"
+msgstr "  Temporaire"
+
+#: ../PLCOpenEditor.py:530
+msgid " : "
+msgstr " : "
+
+#: ../dialogs/PouTransitionDialog.py:94
+#: ../dialogs/PouActionDialog.py:91
+#: ../dialogs/PouDialog.py:111
+#: ../dialogs/SFCTransitionDialog.py:144
+#, python-format
+msgid " and %s"
+msgstr " et %s"
+
+#: ../ProjectController.py:890
 msgid " generation failed !\n"
 msgstr "la construction a échouée !\n"
 
-#: ../Beremiz.py:892
+#: ../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:1069
+#, python-format
+msgid "\"%s\" POU already exists !!!"
+msgstr "Le POU \"%s\" existe déjà !!!"
+
+#: ../plcopen/plcopen.py:1090
+#, python-format
+msgid "\"%s\" POU doesn't exist !!!"
+msgstr "Le POU \"%s\" n'existe pas !!!"
+
+#: ../editors/Viewer.py:234
+#, python-format
+msgid "\"%s\" can't use itself!"
+msgstr "\"%s\" ne peut pas s'utiliser lui-même !"
+
+#: ../IDEFrame.py:1706
+#: ../IDEFrame.py:1725
+#, python-format
+msgid "\"%s\" config already exists!"
+msgstr "La configuration \"%s\" existe déjà !"
+
+#: ../plcopen/plcopen.py:315
+#, python-format
+msgid "\"%s\" configuration already exists !!!"
+msgstr "La configuration \"%s\" existe déjà !!!"
+
+#: ../IDEFrame.py:1660
+#, python-format
+msgid "\"%s\" data type already exists!"
+msgstr "Le type de données \"%s\" existe déjà !"
+
+#: ../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 !!!"
+
+#: ../editors/TextViewer.py:305
+#: ../editors/TextViewer.py:325
+#: ../editors/Viewer.py:252
+#: ../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 !"
+
+#: ../Beremiz.py:894
 #, python-format
 msgid "\"%s\" folder is not a valid Beremiz project\n"
 msgstr "Le dossier \"%s\" ne contient pas de projet Beremiz valide\n"
 
+#: ../plcopen/structures.py:106
+#, python-format
+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"
+
+#: ../controls/VariablePanel.py:656
+#: ../IDEFrame.py:1651
+#: ../editors/DataTypeEditor.py:548
+#: ../editors/DataTypeEditor.py:577
+#: ../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é !"
+
+#: ../editors/Viewer.py:240
+#, python-format
+msgid "\"%s\" is already used by \"%s\"!"
+msgstr "\"%s\" est déjà utilisé par \"%s\" !"
+
+#: ../plcopen/plcopen.py:2786
+#, python-format
+msgid "\"%s\" is an invalid value!"
+msgstr "\"%s\" n'est pas une valeur valide !"
+
+#: ../PLCOpenEditor.py:362
+#: ../PLCOpenEditor.py:399
+#, python-format
+msgid "\"%s\" is not a valid folder!"
+msgstr "\"%s\" n'est pas un répertoire valide !"
+
+#: ../controls/VariablePanel.py:654
+#: ../IDEFrame.py:1649
+#: ../editors/DataTypeEditor.py:572
+#: ../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 !"
+
+#: ../IDEFrame.py:214
+#: ../IDEFrame.py:2445
+#: ../IDEFrame.py:2464
+#, 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é !"
+
+#: ../controls/VariablePanel.py:311
+#: ../IDEFrame.py:1669
+#: ../editors/TextViewer.py:303
+#: ../editors/TextViewer.py:323
+#: ../editors/TextViewer.py:360
+#: ../editors/Viewer.py:250
+#: ../editors/Viewer.py:295
+#: ../editors/Viewer.py:312
+#: ../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: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:362
+#, python-format
+msgid "\"%s\" resource doesn't exist in \"%s\" configuration !!!"
+msgstr "La ressource \"%s\" n'existe pas dans la configuration \"%s\" !!!"
+
+#: ../dialogs/SFCStepNameDialog.py:57
+#: ../dialogs/SFCStepDialog.py:128
+#, python-format
+msgid "\"%s\" step already exists!"
+msgstr "L'étape \"%s\" existe déjà !"
+
+#: ../editors/DataTypeEditor.py:543
+#, python-format
+msgid "\"%s\" value already defined!"
+msgstr "La valeur \"%s\" est déjà définie !"
+
+#: ../editors/DataTypeEditor.py:719
+#: ../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 !"
+
+#: ../editors/DataTypeEditor.py:726
+#: ../dialogs/ArrayTypeDialog.py:103
+#, python-format
+msgid ""
+"\"%s\" value isn't a valid array dimension!\n"
+"Right value must be greater than left value."
+msgstr ""
+"\"%s\" n'est pas une dimension de tableau valide !\n"
+"La valeur de droite doit être supérieur à celle de gauche."
+
+#: ../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."
+
+#: ../PLCControler.py:1422
+#, python-format
+msgid "%s Data Types"
+msgstr "Types de données de %s"
+
+#: ../editors/GraphicViewer.py:278
+#, python-format
+msgid "%s Graphics"
+msgstr "Graphique %s"
+
+#: ../PLCControler.py:1417
+#, python-format
+msgid "%s POUs"
+msgstr "POUs de %s"
+
 #: ../canfestival/SlaveEditor.py:42
 #: ../canfestival/NetworkEditor.py:72
 #, python-format
 msgid "%s Profile"
 msgstr "Profil %s"
 
-#: ../Beremiz.py:308
+#: ../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: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 !"
+
+#: ../IDEFrame.py:364
+msgid "&Add Element"
+msgstr "&Ajouter un élément"
+
+#: ../IDEFrame.py:334
+msgid "&Configuration"
+msgstr "&Configuration"
+
+#: ../IDEFrame.py:325
+msgid "&Data Type"
+msgstr "&Type de donnée"
+
+#: ../IDEFrame.py:368
+msgid "&Delete"
+msgstr "&Supprimer"
+
+#: ../IDEFrame.py:317
+msgid "&Display"
+msgstr "&Affichage"
+
+#: ../IDEFrame.py:316
+msgid "&Edit"
+msgstr "&Editer"
+
+#: ../IDEFrame.py:315
+msgid "&File"
+msgstr "&Fichier"
+
+#: ../IDEFrame.py:327
+msgid "&Function"
+msgstr "&Fonction"
+
+#: ../IDEFrame.py:318
+msgid "&Help"
+msgstr "&Aide"
+
+#: ../IDEFrame.py:331
+msgid "&Program"
+msgstr "&Programme"
+
+#: ../PLCOpenEditor.py:148
+msgid "&Properties"
+msgstr "&Propriétés"
+
+#: ../Beremiz.py:310
 msgid "&Recent Projects"
 msgstr "Projets &récent"
 
-#: ../Beremiz.py:350
+#: ../Beremiz.py:352
 msgid "&Resource"
 msgstr "&Ressource"
 
+#: ../controls/SearchResultPanel.py:237
+#, python-format
+msgid "'%s' - %d match in project"
+msgstr "'%s' - %d correspondance dans le projet"
+
+#: ../controls/SearchResultPanel.py:239
+#, python-format
+msgid "'%s' - %d matches in project"
+msgstr "'%s' - %d correspondances dans le projet"
+
 #: ../connectors/PYRO/__init__.py:51
 #, python-format
 msgid "'%s' is located at %s\n"
 msgstr "'%s' is disponible à l'adresse %s\n"
 
-#: ../ProjectController.py:1269
+#: ../controls/SearchResultPanel.py:289
+#, python-format
+msgid "(%d matches)"
+msgstr "(%d correspondances)"
+
+#: ../PLCOpenEditor.py:508
+#: ../PLCOpenEditor.py:510
+#: ../PLCOpenEditor.py:511
+msgid ",   "
+msgstr ",   "
+
+#: ../dialogs/PouTransitionDialog.py:96
+#: ../dialogs/PouActionDialog.py:93
+#: ../dialogs/PouDialog.py:113
+#: ../dialogs/SFCTransitionDialog.py:146
+#, python-format
+msgid ", %s"
+msgstr ", %s"
+
+#: ../PLCOpenEditor.py:506
+msgid ". "
+msgstr ". "
+
+#: ../ProjectController.py:1268
 msgid "... debugger recovered\n"
 msgstr "... déboggueur operationel\n"
 
+#: ../IDEFrame.py:1672
+#: ../IDEFrame.py:1714
+#: ../IDEFrame.py:1733
+#: ../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 ?"
+
+#: ../controls/VariablePanel.py:658
+#: ../IDEFrame.py:1684
+#: ../IDEFrame.py:1695
+#: ../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à !"
+
 #: ../ConfigTreeNode.py:371
 #, python-format
 msgid "A child named \"%s\" already exist -> \"%s\"\n"
 msgstr "Un noeud enfant nommé \"%s\" existe déjà -> \"%s\"\n"
 
-#: ../Beremiz.py:360
+#: ../dialogs/BrowseLocationsDialog.py:175
+msgid "A location must be selected!"
+msgstr "Une adresse doit être sélectionné !"
+
+#: ../controls/VariablePanel.py:660
+#: ../IDEFrame.py:1686
+#: ../IDEFrame.py:1697
+#: ../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 !"
+
+#: ../Beremiz.py:362
+#: ../PLCOpenEditor.py:181
 msgid "About"
 msgstr "A propos"
 
-#: ../Beremiz.py:929
+#: ../Beremiz.py:931
 msgid "About Beremiz"
 msgstr "A propos de Beremiz"
 
+#: ../PLCOpenEditor.py:376
+msgid "About PLCOpenEditor"
+msgstr "A propos de PLCOpenEditor"
+
+#: ../plcopen/iec_std.csv:22
+msgid "Absolute number"
+msgstr "Nombre absolu"
+
+#: ../dialogs/ActionBlockDialog.py:41
+#: ../dialogs/SFCStepDialog.py:69
+msgid "Action"
+msgstr "Action"
+
+#: ../editors/Viewer.py:495
+msgid "Action Block"
+msgstr "Ajouter un bloc fonctionnel"
+
+#: ../dialogs/PouActionDialog.py:81
+msgid "Action Name"
+msgstr "Nom de l'action"
+
+#: ../dialogs/PouActionDialog.py:49
+msgid "Action Name:"
+msgstr "Nom de l'action :"
+
+#: ../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:95
+msgid "Actions"
+msgstr "Actions"
+
+#: ../dialogs/ActionBlockDialog.py:134
+msgid "Actions:"
+msgstr "Actions :"
+
 #: ../canfestival/SlaveEditor.py:54
 #: ../canfestival/NetworkEditor.py:84
+#: ../editors/Viewer.py:527
 msgid "Add"
 msgstr "Ajouter"
 
+#: ../IDEFrame.py:1925
+#: ../IDEFrame.py:1956
+msgid "Add Action"
+msgstr "Ajouter une action"
+
 #: ../features.py:7
 msgid "Add C code accessing located variables synchronously"
 msgstr "Ajoute un code C ayant accès à des variables localisées de façon synchrone"
 
-#: ../util/discovery.py:115
+#: ../IDEFrame.py:1908
+msgid "Add Configuration"
+msgstr "Ajouter une configuration"
+
+#: ../IDEFrame.py:1888
+msgid "Add DataType"
+msgstr "Ajouter un type de donnée"
+
+#: ../editors/Viewer.py:453
+msgid "Add Divergence Branch"
+msgstr "Ajouter une branche à la divergence"
+
+#: ../dialogs/DiscoveryDialog.py:115
 msgid "Add IP"
 msgstr "Ajouter IP"
 
+#: ../IDEFrame.py:1896
+msgid "Add POU"
+msgstr "Ajouter un POU"
+
 #: ../features.py:8
 msgid "Add Python code executed asynchronously"
 msgstr "Ajoute un code Python executé de façon asynchone"
 
+#: ../IDEFrame.py:1936
+#: ../IDEFrame.py:1982
+msgid "Add Resource"
+msgstr "Ajouter une resource"
+
+#: ../IDEFrame.py:1914
+#: ../IDEFrame.py:1953
+msgid "Add Transition"
+msgstr "Ajouter une transition"
+
+#: ../editors/Viewer.py:442
+msgid "Add Wire Segment"
+msgstr "Ajouter un segment au fil"
+
+#: ../editors/SFCViewer.py:359
+msgid "Add a new initial step"
+msgstr "Ajouter une nouvelle étape initiale"
+
+#: ../editors/Viewer.py:2289
+#: ../editors/SFCViewer.py:696
+msgid "Add a new jump"
+msgstr "Ajouter un nouveau renvoi"
+
+#: ../editors/SFCViewer.py:381
+msgid "Add a new step"
+msgstr "Ajouter une nouvelle étape"
+
 #: ../features.py:9
 msgid "Add a simple WxGlade based GUI."
 msgstr "Ajoute une interface simple utilisant WxGlade"
 
+#: ../dialogs/ActionBlockDialog.py:138
+msgid "Add action"
+msgstr "Ajouter une action"
+
+#: ../editors/DataTypeEditor.py:345
+msgid "Add element"
+msgstr "Ajouter un élément"
+
+#: ../editors/ResourceEditor.py:251
+msgid "Add instance"
+msgstr "Ajouter une instance"
+
 #: ../canfestival/NetworkEditor.py:86
 msgid "Add slave"
 msgstr "Ajouter un esclave"
 
-#: ../util/FileManagementPanel.py:35
+#: ../editors/ResourceEditor.py:222
+msgid "Add task"
+msgstr "Ajouter une tâche"
+
+#: ../controls/VariablePanel.py:378
+msgid "Add variable"
+msgstr "Ajouter une variable"
+
+#: ../plcopen/iec_std.csv:33
+msgid "Addition"
+msgstr "Addition"
+
+#: ../plcopen/structures.py:250
+msgid "Additional function blocks"
+msgstr "Blocs fonctionnels additionnels"
+
+#: ../editors/Viewer.py:1395
+msgid "Alignment"
+msgstr "Alignement"
+
+#: ../controls/VariablePanel.py:75
+#: ../dialogs/BrowseLocationsDialog.py:35
+#: ../dialogs/BrowseLocationsDialog.py:116
+msgid "All"
+msgstr "Toutes"
+
+#: ../editors/FileManagementPanel.py:35
 msgid "All files (*.*)|*.*|CSV files (*.csv)|*.csv"
 msgstr "Tous les fichiers|*.*|Fichiers CSV (*.csv)|*.csv"
 
-#: ../ProjectController.py:1336
+#: ../ProjectController.py:1335
 msgid "Already connected. Please disconnect\n"
 msgstr "Déjà connecté. Veuillez déconnecter\n"
 
+#: ../editors/DataTypeEditor.py:587
+#, 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"
+
+#: ../plcopen/iec_std.csv:30
+msgid "Arc sine"
+msgstr "Arc sinus"
+
+#: ../plcopen/iec_std.csv:32
+msgid "Arc tangent"
+msgstr "Arc tangente"
+
+#: ../plcopen/iec_std.csv:33
+msgid "Arithmetic"
+msgstr "Arithmétique"
+
+#: ../controls/VariablePanel.py:729
+#: ../editors/DataTypeEditor.py:52
+msgid "Array"
+msgstr "Tableau"
+
+#: ../plcopen/iec_std.csv:39
+msgid "Assignment"
+msgstr "Assignation"
+
+#: ../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é !"
+
+#: ../controls/ProjectPropertiesPanel.py:99
+msgid "Author"
+msgstr "Auteur"
+
+#: ../controls/ProjectPropertiesPanel.py:96
+msgid "Author Name (optional):"
+msgstr "Nom de l'auteur (optionel) :"
+
+#: ../dialogs/FindInPouDialog.py:72
+msgid "Backward"
+msgstr "Vers le haut"
+
 #: ../util/Zeroconf.py:599
 msgid "Bad domain name (circular) at "
 msgstr "Mauvais nom de domaine (circulaire) à l'adresse"
@@ -133,36 +673,92 @@
 msgid "Bad location size : %s"
 msgstr "Mauvaise taille d'adresse : %s"
 
-#: ../Beremiz.py:484
+#: ../editors/DataTypeEditor.py:168
+#: ../editors/DataTypeEditor.py:198
+#: ../editors/DataTypeEditor.py:290
+#: ../dialogs/ArrayTypeDialog.py:55
+msgid "Base Type:"
+msgstr "Type de base :"
+
+#: ../controls/VariablePanel.py:699
+#: ../editors/DataTypeEditor.py:617
+msgid "Base Types"
+msgstr "Types de base"
+
+#: ../Beremiz.py:486
 msgid "Beremiz"
 msgstr "Beremiz"
 
-#: ../util/BrowseValuesLibraryDialog.py:37
+#: ../plcopen/iec_std.csv:70
+msgid "Binary selection (1 of 2)"
+msgstr "Selection binaire (sélectionne 1 sur 2)"
+
+#: ../plcopen/iec_std.csv:62
+msgid "Bit-shift"
+msgstr "Décalage de bit"
+
+#: ../plcopen/iec_std.csv:66
+msgid "Bitwise"
+msgstr "Bit à bit"
+
+#: ../plcopen/iec_std.csv:66
+msgid "Bitwise AND"
+msgstr "ET bit à bit"
+
+#: ../plcopen/iec_std.csv:67
+msgid "Bitwise OR"
+msgstr "OU bit à bit"
+
+#: ../plcopen/iec_std.csv:68
+msgid "Bitwise XOR"
+msgstr "OU exclusif bit à bit"
+
+#: ../plcopen/iec_std.csv:69
+msgid "Bitwise inverting"
+msgstr "Inversion bit à bit"
+
+#: ../editors/Viewer.py:465
+msgid "Block"
+msgstr "Block"
+
+#: ../dialogs/FBDBlockDialog.py:38
+msgid "Block Properties"
+msgstr "Propriétés du bloc"
+
+#: ../editors/Viewer.py:434
+msgid "Bottom"
+msgstr "Bas"
+
+#: ../dialogs/BrowseValuesLibraryDialog.py:37
 #, python-format
 msgid "Browse %s values library"
 msgstr "Explorer la liste des valeurs du paramètre '%s'"
 
-#: ../ProjectController.py:1485
+#: ../dialogs/BrowseLocationsDialog.py:55
+msgid "Browse Locations"
+msgstr "Naviger dans les adresses"
+
+#: ../ProjectController.py:1484
 msgid "Build"
 msgstr "Compiler"
 
-#: ../ProjectController.py:1052
+#: ../ProjectController.py:1051
 msgid "Build directory already clean\n"
 msgstr "Le répertoire de compilation est déjà nettoyé\n"
 
-#: ../ProjectController.py:1486
+#: ../ProjectController.py:1485
 msgid "Build project into build folder"
 msgstr "Compiler le projet dans le répertoire ce compilation"
 
-#: ../ProjectController.py:911
+#: ../ProjectController.py:910
 msgid "C Build crashed !\n"
 msgstr "La compilation du C a mal fonctionné !\n"
 
-#: ../ProjectController.py:908
+#: ../ProjectController.py:907
 msgid "C Build failed.\n"
 msgstr "La compilation du C a échouée !\n"
 
-#: ../ProjectController.py:896
+#: ../ProjectController.py:895
 msgid "C code generated successfully.\n"
 msgstr "Code C généré avec succès.\n"
 
@@ -179,6 +775,35 @@
 msgid "CANopen support"
 msgstr "Support CANopen"
 
+#: ../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 !"
+
+#: ../controls/VariablePanel.py:256
+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:357
+#, python-format
+msgid "Can't generate program to file %s!"
+msgstr "Le programme n'a pu être généré dans le fichier \"%s\" !"
+
+#: ../controls/VariablePanel.py:254
+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:397
+#, python-format
+msgid "Can't save project to file %s!"
+msgstr "Le projet n'a pu être sauvé dans le fichier \"%s\" !"
+
+#: ../controls/VariablePanel.py:298
+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"
+
 #: ../ConfigTreeNode.py:470
 #, python-format
 msgid "Cannot create child %s of type %s "
@@ -193,7 +818,7 @@
 msgid "Cannot get PLC status - connection failed.\n"
 msgstr "Impossible d'obtenir le statut de l'automate - la connexion a échoué.\n"
 
-#: ../ProjectController.py:716
+#: ../ProjectController.py:715
 msgid "Cannot open/parse VARIABLES.csv!\n"
 msgstr "Impossible d'ouvrir ou d'analyser le fichier VARIABLES.csv !\n"
 
@@ -202,6 +827,15 @@
 msgid "Cannot set bit offset for non bool '%s' variable (ID:%d,Idx:%x,sIdx:%x))"
 msgstr "Impossible de définir un numéro de bit sur la variable '%s' non booléenne (ID:%d,Idx:%x,sIdx:%x)"
 
+#: ../dialogs/FindInPouDialog.py:81
+#: ../dialogs/SearchInProjectDialog.py:67
+msgid "Case sensitive"
+msgstr "Respecter la casse"
+
+#: ../editors/Viewer.py:429
+msgid "Center"
+msgstr "Centre"
+
 #: ../Beremiz_service.py:322
 msgid "Change IP of interface to bind"
 msgstr "Changer l'adresse IP de l'interface à lier"
@@ -210,6 +844,10 @@
 msgid "Change Name"
 msgstr "Changer le nom"
 
+#: ../IDEFrame.py:1974
+msgid "Change POU Type To"
+msgstr "Changer le type du POU pour"
+
 #: ../Beremiz_service.py:325
 msgid "Change Port Number"
 msgstr "Changer le numéro de port"
@@ -218,24 +856,31 @@
 msgid "Change working directory"
 msgstr "Changer le dossier de travail"
 
+#: ../plcopen/iec_std.csv:81
+msgid "Character string"
+msgstr "Chaîne de caractères"
+
 #: ../svgui/svgui.py:92
 msgid "Choose a SVG file"
 msgstr "Choisissez un fichier SVG"
 
-#: ../ProjectController.py:354
+#: ../ProjectController.py:353
 msgid "Choose a directory to save project"
 msgstr "Choisissez un dossier où enregistrer le projet"
 
 #: ../canfestival/canfestival.py:118
+#: ../PLCOpenEditor.py:313
+#: ../PLCOpenEditor.py:347
+#: ../PLCOpenEditor.py:391
 msgid "Choose a file"
 msgstr "Choisissez un fichier"
 
-#: ../Beremiz.py:829
-#: ../Beremiz.py:864
+#: ../Beremiz.py:831
+#: ../Beremiz.py:866
 msgid "Choose a project"
 msgstr "Choisissez un projet"
 
-#: ../util/BrowseValuesLibraryDialog.py:42
+#: ../dialogs/BrowseValuesLibraryDialog.py:42
 #, python-format
 msgid "Choose a value for %s:"
 msgstr "Choisissez une valeur pour le paramètre %s :"
@@ -244,51 +889,110 @@
 msgid "Choose a working directory "
 msgstr "Choisissez un dossier de travail"
 
-#: ../ProjectController.py:282
+#: ../ProjectController.py:281
 msgid "Chosen folder doesn't contain a program. It's not a valid project!"
 msgstr "Le répertoire ne contient pas de programme. Ce n'est pas un projet valide !"
 
-#: ../ProjectController.py:248
+#: ../ProjectController.py:247
 msgid "Chosen folder isn't empty. You can't use it for a new project!"
 msgstr "Le répertoire n'est pas vide. Vous ne pouvez pas l'utiliser pour créer un nouveau projet !"
 
-#: ../ProjectController.py:1489
+#: ../controls/VariablePanel.py:58
+#: ../controls/VariablePanel.py:59
+msgid "Class"
+msgstr "Classe"
+
+#: ../controls/VariablePanel.py:369
+msgid "Class Filter:"
+msgstr "Filtre de classe :"
+
+#: ../dialogs/FBDVariableDialog.py:62
+msgid "Class:"
+msgstr "Classe :"
+
+#: ../ProjectController.py:1488
 msgid "Clean"
 msgstr "Nettoyer"
 
-#: ../ProjectController.py:1491
+#: ../ProjectController.py:1490
 msgid "Clean project build folder"
 msgstr "Nettoyer le répertoire de compilation"
 
-#: ../ProjectController.py:1049
+#: ../ProjectController.py:1048
 msgid "Cleaning the build directory\n"
 msgstr "Répertoire de compilation en cours de nettoyage\n"
 
-#: ../Beremiz.py:596
+#: ../IDEFrame.py:411
+msgid "Clear Errors"
+msgstr "Effacer les erreurs"
+
+#: ../editors/Viewer.py:520
+msgid "Clear Execution Order"
+msgstr "Effacer l'ordre d'exécution"
+
+#: ../editors/GraphicViewer.py:125
+msgid "Clear the graph values"
+msgstr "Vider les valeurs du graphique"
+
+#: ../Beremiz.py:598
+#: ../PLCOpenEditor.py:221
 msgid "Close Application"
 msgstr "Fermer l'application"
 
-#: ../Beremiz.py:550
+#: ../IDEFrame.py:1089
+#: ../Beremiz.py:319
+#: ../Beremiz.py:552
+#: ../PLCOpenEditor.py:131
 msgid "Close Project"
 msgstr "Fermer le projet"
 
 #: ../Beremiz.py:317
-msgid "Close Project\tCTRL+SHIFT+W"
-msgstr "Fermer le project\tCTRL+SHIFT+W"
-
-#: ../Beremiz.py:315
-msgid "Close Tab\tCTRL+W"
-msgstr "Fermer l'onglet\tCTRL+W"
-
-#: ../ProjectController.py:539
+#: ../PLCOpenEditor.py:129
+msgid "Close Tab"
+msgstr "Fermer l'onglet"
+
+#: ../editors/Viewer.py:481
+msgid "Coil"
+msgstr "Relai"
+
+#: ../editors/Viewer.py:501
+#: ../editors/LDViewer.py:503
+msgid "Comment"
+msgstr "Commentaire"
+
+#: ../controls/ProjectPropertiesPanel.py:94
+msgid "Company Name (required):"
+msgstr "Nom de l'entreprise (obligatoire) :"
+
+#: ../controls/ProjectPropertiesPanel.py:95
+msgid "Company URL (optional):"
+msgstr "URL de l'entreprise (optionel) :"
+
+#: ../plcopen/iec_std.csv:75
+msgid "Comparison"
+msgstr "Comparaison"
+
+#: ../ProjectController.py:538
 msgid "Compiling IEC Program into C code...\n"
 msgstr "Compilation du program en IEC vers du code C en cours...\n"
 
-#: ../ProjectController.py:1504
+#: ../plcopen/iec_std.csv:85
+msgid "Concatenation"
+msgstr "Concaténation"
+
+#: ../dialogs/SearchInProjectDialog.py:47
+msgid "Configuration"
+msgstr "Configuration"
+
+#: ../PLCControler.py:96
+msgid "Configurations"
+msgstr "Configurations"
+
+#: ../ProjectController.py:1503
 msgid "Connect"
 msgstr "Connecter"
 
-#: ../ProjectController.py:1505
+#: ../ProjectController.py:1504
 msgid "Connect to the target PLC"
 msgstr "Connecter à l'automate cible"
 
@@ -297,11 +1001,20 @@
 msgid "Connecting to URI : %s\n"
 msgstr "Connection à l'URI %s en cours...\n"
 
-#: ../ProjectController.py:1360
+#: ../editors/Viewer.py:467
+#: ../dialogs/SFCTransitionDialog.py:76
+msgid "Connection"
+msgstr "Connexion"
+
+#: ../dialogs/ConnectionDialog.py:37
+msgid "Connection Properties"
+msgstr "Propriétés de la connexion"
+
+#: ../ProjectController.py:1359
 msgid "Connection canceled!\n"
 msgstr "La connection a été abandonnée !\n"
 
-#: ../ProjectController.py:1385
+#: ../ProjectController.py:1384
 #, python-format
 msgid "Connection failed to %s!\n"
 msgstr "La connection à \"%s\" a échouée !\n"
@@ -311,14 +1024,68 @@
 msgid "Connection to '%s' failed.\n"
 msgstr "La connexion à l'adresse '%s' a échouée.\n"
 
-#: ../util/FileManagementPanel.py:283
+#: ../dialogs/ConnectionDialog.py:56
+msgid "Connector"
+msgstr "Connecteur"
+
+#: ../dialogs/SFCStepDialog.py:58
+msgid "Connectors:"
+msgstr "Connecteurs :"
+
+#: ../controls/VariablePanel.py:65
+msgid "Constant"
+msgstr "Constante"
+
+#: ../editors/Viewer.py:477
+msgid "Contact"
+msgstr "Contact"
+
+#: ../controls/ProjectPropertiesPanel.py:197
+msgid "Content Description (optional):"
+msgstr "Description du contenu (optionel) :"
+
+#: ../dialogs/ConnectionDialog.py:61
+msgid "Continuation"
+msgstr "Prolongement"
+
+#: ../plcopen/iec_std.csv:18
+msgid "Conversion from BCD"
+msgstr "Conversion d'un BCD"
+
+#: ../plcopen/iec_std.csv:19
+msgid "Conversion to BCD"
+msgstr "Conversion en BCD"
+
+#: ../plcopen/iec_std.csv:21
+msgid "Conversion to date"
+msgstr "Conversion en date"
+
+#: ../plcopen/iec_std.csv:20
+msgid "Conversion to time-of-day"
+msgstr "Conversion en heure de la journée"
+
+#: ../IDEFrame.py:348
+#: ../IDEFrame.py:401
+#: ../editors/Viewer.py:536
+msgid "Copy"
+msgstr "Copier"
+
+#: ../IDEFrame.py:1961
+msgid "Copy POU"
+msgstr "Copier ce POU"
+
+#: ../editors/FileManagementPanel.py:283
 msgid "Copy file from left folder to right"
 msgstr "Copier un fichier du dossier de gauche vers celui de droite"
 
-#: ../util/FileManagementPanel.py:282
+#: ../editors/FileManagementPanel.py:282
 msgid "Copy file from right folder to left"
 msgstr "Copier un fichier du dossier de droite vers celui de gauche"
 
+#: ../plcopen/iec_std.csv:28
+msgid "Cosine"
+msgstr "Cosinus"
+
 #: ../ConfigTreeNode.py:582
 #, python-format
 msgid ""
@@ -346,15 +1113,20 @@
 "Impossible de charger les paramètres du plugin %s :\n"
 " %s"
 
-#: ../ProjectController.py:1318
+#: ../PLCControler.py:765
+#: ../PLCControler.py:802
+msgid "Couldn't paste non-POU object."
+msgstr "Impossible de coller autre chose qu'un POU."
+
+#: ../ProjectController.py:1317
 msgid "Couldn't start PLC !\n"
 msgstr "Impossible de démarrer l'automate !\n"
 
-#: ../ProjectController.py:1326
+#: ../ProjectController.py:1325
 msgid "Couldn't stop PLC !\n"
 msgstr "Impossible d'arrêter l'automate !\n"
 
-#: ../ProjectController.py:1296
+#: ../ProjectController.py:1295
 msgid "Couldn't stop debugger.\n"
 msgstr "Impossible d'arrêter le débogage de l'automate !\n"
 
@@ -362,6 +1134,111 @@
 msgid "Create HMI"
 msgstr "Créer une IHM"
 
+#: ../dialogs/PouDialog.py:43
+msgid "Create a new POU"
+msgstr "Créer un nouveau POU"
+
+#: ../dialogs/PouActionDialog.py:38
+msgid "Create a new action"
+msgstr "Créer une nouvelle action"
+
+#: ../IDEFrame.py:135
+msgid "Create a new action block"
+msgstr "Créer un nouveau bloc d'actions"
+
+#: ../IDEFrame.py:84
+#: ../IDEFrame.py:114
+#: ../IDEFrame.py:147
+msgid "Create a new block"
+msgstr "Créer un nouveau bloc"
+
+#: ../IDEFrame.py:108
+msgid "Create a new branch"
+msgstr "Créer une nouvelle branche"
+
+#: ../IDEFrame.py:102
+msgid "Create a new coil"
+msgstr "Créer un nouveau relai"
+
+#: ../IDEFrame.py:78
+#: ../IDEFrame.py:93
+#: ../IDEFrame.py:123
+msgid "Create a new comment"
+msgstr "Créer un nouveau copmmentaire"
+
+#: ../IDEFrame.py:87
+#: ../IDEFrame.py:117
+#: ../IDEFrame.py:150
+msgid "Create a new connection"
+msgstr "Créer une nouvelle connexion"
+
+#: ../IDEFrame.py:105
+#: ../IDEFrame.py:156
+msgid "Create a new contact"
+msgstr "Créer un nouveau contact"
+
+#: ../IDEFrame.py:138
+msgid "Create a new divergence"
+msgstr "Créer une nouvelle divergence"
+
+#: ../dialogs/SFCDivergenceDialog.py:36
+msgid "Create a new divergence or convergence"
+msgstr "Créer une nouvelle divergence ou convergence"
+
+#: ../IDEFrame.py:126
+msgid "Create a new initial step"
+msgstr "Créer une nouvelle étape initiale"
+
+#: ../IDEFrame.py:141
+msgid "Create a new jump"
+msgstr "Créer un nouveau renvoi"
+
+#: ../IDEFrame.py:96
+#: ../IDEFrame.py:153
+msgid "Create a new power rail"
+msgstr "Créer une nouvelle barre d'alimentation"
+
+#: ../IDEFrame.py:99
+msgid "Create a new rung"
+msgstr "Créer un nouvel échelon"
+
+#: ../IDEFrame.py:129
+msgid "Create a new step"
+msgstr "Créer une nouvelle étape"
+
+#: ../IDEFrame.py:132
+#: ../dialogs/PouTransitionDialog.py:42
+msgid "Create a new transition"
+msgstr "Créer une nouvelle transition"
+
+#: ../IDEFrame.py:81
+#: ../IDEFrame.py:111
+#: ../IDEFrame.py:144
+msgid "Create a new variable"
+msgstr "Créer une nouvelle variable"
+
+#: ../IDEFrame.py:346
+#: ../IDEFrame.py:400
+#: ../editors/Viewer.py:535
+msgid "Cut"
+msgstr "Couper"
+
+#: ../editors/ResourceEditor.py:71
+msgid "Cyclic"
+msgstr "Périodique"
+
+#: ../plcopen/iec_std.csv:42
+#: ../plcopen/iec_std.csv:44
+#: ../plcopen/iec_std.csv:46
+#: ../plcopen/iec_std.csv:50
+#: ../plcopen/iec_std.csv:52
+#: ../plcopen/iec_std.csv:54
+#: ../plcopen/iec_std.csv:56
+#: ../plcopen/iec_std.csv:58
+#: ../plcopen/iec_std.csv:60
+msgid "DEPRECATED"
+msgstr "OBSOLETE"
+
 #: ../canfestival/SlaveEditor.py:50
 #: ../canfestival/NetworkEditor.py:80
 msgid "DS-301 Profile"
@@ -372,73 +1249,262 @@
 msgid "DS-302 Profile"
 msgstr "Profil DS-302"
 
-#: ../ProjectController.py:1406
+#: ../dialogs/SearchInProjectDialog.py:43
+msgid "Data Type"
+msgstr "Type de donnée"
+
+#: ../PLCControler.py:95
+msgid "Data Types"
+msgstr "Types de données"
+
+#: ../plcopen/iec_std.csv:16
+msgid "Data type conversion"
+msgstr "Conversion entre types de donnée"
+
+#: ../plcopen/iec_std.csv:44
+#: ../plcopen/iec_std.csv:45
+msgid "Date addition"
+msgstr "Addition de dates"
+
+#: ../plcopen/iec_std.csv:56
+#: ../plcopen/iec_std.csv:57
+#: ../plcopen/iec_std.csv:58
+#: ../plcopen/iec_std.csv:59
+msgid "Date and time subtraction"
+msgstr "Soustraction entre horodatage"
+
+#: ../plcopen/iec_std.csv:50
+#: ../plcopen/iec_std.csv:51
+msgid "Date subtraction"
+msgstr "Soustraction de date"
+
+#: ../dialogs/DurationEditorDialog.py:43
+msgid "Days:"
+msgstr "Jours :"
+
+#: ../ProjectController.py:1405
 msgid "Debug connect matching running PLC\n"
 msgstr "L'automate connecté correspond au project ouvert.\n"
 
-#: ../ProjectController.py:1409
+#: ../ProjectController.py:1408
 msgid "Debug do not match PLC - stop/transfert/start to re-enable\n"
 msgstr "L'automate connecté ne correspond pas au project ouvert - Arrêter/transférez/démarrer pour pouvoir débogguer.\n"
 
-#: ../ProjectController.py:1123
+#: ../controls/PouInstanceVariablesPanel.py:52
+msgid "Debug instance"
+msgstr "Déboguer l'instance"
+
+#: ../editors/Viewer.py:3222
+#, python-format
+msgid "Debug: %s"
+msgstr "Déboggage : %s"
+
+#: ../ProjectController.py:1122
 #, python-format
 msgid "Debug: Unknown variable '%s'\n"
 msgstr "Débogage : Variable '%s' inconnue\n"
 
-#: ../ProjectController.py:1121
+#: ../ProjectController.py:1120
 #, python-format
 msgid "Debug: Unsupported type to debug '%s'\n"
 msgstr "Débogage : Type non supporté dans le débogage '%'\n"
 
-#: ../ProjectController.py:1286
+#: ../IDEFrame.py:608
+msgid "Debugger"
+msgstr "Déboggueur"
+
+#: ../ProjectController.py:1285
 msgid "Debugger disabled\n"
 msgstr "Débogueur désactivé\n"
 
-#: ../ProjectController.py:1298
+#: ../ProjectController.py:1297
 msgid "Debugger stopped.\n"
 msgstr "Débogueur désactivé\n"
 
-#: ../Beremiz.py:956
+#: ../IDEFrame.py:1990
+#: ../Beremiz.py:958
+#: ../editors/Viewer.py:511
 msgid "Delete"
 msgstr "Supprimer"
 
-#: ../util/FileManagementPanel.py:371
+#: ../editors/Viewer.py:454
+msgid "Delete Divergence Branch"
+msgstr "Supprimer une branche de divergence"
+
+#: ../editors/FileManagementPanel.py:371
 msgid "Delete File"
 msgstr "Supprimer un fichier"
 
-#: ../ProjectController.py:1513
+#: ../editors/Viewer.py:443
+msgid "Delete Wire Segment"
+msgstr "Supprimer un segment de fil"
+
+#: ../controls/CustomEditableListBox.py:41
+msgid "Delete item"
+msgstr "Supprimer un élément"
+
+#: ../plcopen/iec_std.csv:88
+msgid "Deletion (within)"
+msgstr "Suppression (au milieu)"
+
+#: ../editors/DataTypeEditor.py:146
+msgid "Derivation Type:"
+msgstr "Type de dérivation :"
+
+#: ../plcopen/structures.py:264
+msgid ""
+"Derivative\n"
+"The derivative function block produces an output XOUT proportional to the rate of change of the input XIN."
+msgstr ""
+"Dérivée\n"
+"Le Function Block derivative produit une sortie XOUT proportionnelle au rapport de changement de l'entrée XIN."
+
+#: ../controls/VariablePanel.py:360
+msgid "Description:"
+msgstr "Description :"
+
+#: ../editors/DataTypeEditor.py:314
+#: ../dialogs/ArrayTypeDialog.py:61
+msgid "Dimensions:"
+msgstr "Dimensions :"
+
+#: ../dialogs/FindInPouDialog.py:61
+msgid "Direction"
+msgstr "Direction"
+
+#: ../dialogs/BrowseLocationsDialog.py:78
+msgid "Direction:"
+msgstr "Direction :"
+
+#: ../editors/DataTypeEditor.py:52
+msgid "Directly"
+msgstr "Direct"
+
+#: ../ProjectController.py:1512
 msgid "Disconnect"
 msgstr "Déconnecter"
 
-#: ../ProjectController.py:1515
+#: ../ProjectController.py:1514
 msgid "Disconnect from PLC"
 msgstr "Déconnecter l'automate"
 
-#: ../util/FileManagementPanel.py:370
+#: ../editors/Viewer.py:496
+msgid "Divergence"
+msgstr "Divergence"
+
+#: ../plcopen/iec_std.csv:36
+msgid "Division"
+msgstr "Division"
+
+#: ../editors/FileManagementPanel.py:370
 #, python-format
 msgid "Do you really want to delete the file '%s'?"
 msgstr "Êtes-vous sûr de vouloir supprimer le fichier '%s' ?"
 
+#: ../controls/VariablePanel.py:58
+#: ../controls/VariablePanel.py:59
+msgid "Documentation"
+msgstr "Documentation"
+
+#: ../PLCOpenEditor.py:351
+msgid "Done"
+msgstr "Terminé"
+
+#: ../plcopen/structures.py:227
+msgid ""
+"Down-counter\n"
+"The down-counter can be used to signal when a count has reached zero, on counting down from a preset value."
+msgstr ""
+"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:37
+msgid "Duration"
+msgstr "Durée"
+
 #: ../canfestival/canfestival.py:118
 msgid "EDS files (*.eds)|*.eds|All files|*.*"
 msgstr "Fichiers EDS (*.eds)|*.eds|Tous les fichiers|*.*"
 
+#: ../editors/Viewer.py:510
+msgid "Edit Block"
+msgstr "Editer le block"
+
+#: ../dialogs/LDElementDialog.py:41
+msgid "Edit Coil Values"
+msgstr "Editer les valeurs du relai"
+
+#: ../dialogs/LDElementDialog.py:38
+msgid "Edit Contact Values"
+msgstr "Editer les valeurs du contact"
+
+#: ../dialogs/DurationEditorDialog.py:59
+msgid "Edit Duration"
+msgstr "Editer une durée"
+
+#: ../dialogs/SFCStepDialog.py:35
+msgid "Edit Step"
+msgstr "Editer l'étape"
+
 #: ../wxglade_hmi/wxglade_hmi.py:12
 msgid "Edit a WxWidgets GUI with WXGlade"
 msgstr "Editer une IHM WxWidgets à l'aide de WXGlade"
 
-#: ../util/FileManagementPanel.py:284
+#: ../dialogs/ActionBlockDialog.py:122
+msgid "Edit action block properties"
+msgstr "Editer les propriétés du block d'actions"
+
+#: ../dialogs/ArrayTypeDialog.py:45
+msgid "Edit array type properties"
+msgstr "Editer les propriétés d'un type de données tableau"
+
+#: ../editors/Viewer.py:2112
+#: ../editors/Viewer.py:2114
+#: ../editors/Viewer.py:2630
+#: ../editors/Viewer.py:2632
+msgid "Edit comment"
+msgstr "Editer le commentaire"
+
+#: ../editors/FileManagementPanel.py:284
 msgid "Edit file"
 msgstr "Editer un fichier"
 
-#: ../ProjectController.py:1527
+#: ../controls/CustomEditableListBox.py:39
+msgid "Edit item"
+msgstr "Editer l'élément"
+
+#: ../editors/Viewer.py:2594
+msgid "Edit jump target"
+msgstr "Editer la cible du renvoi"
+
+#: ../ProjectController.py:1526
 msgid "Edit raw IEC code added to code generated by PLCGenerator"
 msgstr "Editer le code IEC ajouté au code généré par PLCGenerator"
 
-#: ../ProjectController.py:1014
+#: ../editors/SFCViewer.py:725
+msgid "Edit step name"
+msgstr "Editer le nom de l'étape"
+
+#: ../dialogs/SFCTransitionDialog.py:38
+msgid "Edit transition"
+msgstr "Editer la transition"
+
+#: ../IDEFrame.py:580
+msgid "Editor ToolBar"
+msgstr "Barre d'outils d'édition"
+
+#: ../ProjectController.py:1013
 msgid "Editor selection"
 msgstr "Selection d'un éditeur"
 
+#: ../editors/DataTypeEditor.py:341
+msgid "Elements :"
+msgstr "Eléments :"
+
+#: ../IDEFrame.py:343
+msgid "Enable Undo/Redo"
+msgstr "Activer Défaire/Refaire"
+
 #: ../Beremiz_service.py:380
 msgid "Enter a name "
 msgstr "Saisissez un nom"
@@ -451,25 +1517,77 @@
 msgid "Enter the IP of the interface to bind"
 msgstr "Saisissez l'adresse IP de l'interface à lier"
 
+#: ../editors/DataTypeEditor.py:52
+msgid "Enumerated"
+msgstr "Enumération"
+
+#: ../plcopen/iec_std.csv:77
+msgid "Equal to"
+msgstr "Egal à"
+
 #: ../Beremiz_service.py:270
 #: ../Beremiz_service.py:394
-#: ../Beremiz.py:1081
-#: ../ProjectController.py:222
-#: ../util/BrowseValuesLibraryDialog.py:83
-#: ../util/FileManagementPanel.py:210
+#: ../controls/VariablePanel.py:330
+#: ../controls/VariablePanel.py:678
+#: ../controls/DebugVariablePanel.py:164
+#: ../IDEFrame.py:1083
+#: ../IDEFrame.py:1672
+#: ../IDEFrame.py:1709
+#: ../IDEFrame.py:1714
+#: ../IDEFrame.py:1728
+#: ../IDEFrame.py:1733
+#: ../IDEFrame.py:2422
+#: ../Beremiz.py:1083
+#: ../PLCOpenEditor.py:358
+#: ../PLCOpenEditor.py:363
+#: ../PLCOpenEditor.py:531
+#: ../PLCOpenEditor.py:541
+#: ../editors/TextViewer.py:376
+#: ../editors/DataTypeEditor.py:543
+#: ../editors/DataTypeEditor.py:548
+#: ../editors/DataTypeEditor.py:572
+#: ../editors/DataTypeEditor.py:577
+#: ../editors/DataTypeEditor.py:587
+#: ../editors/DataTypeEditor.py:719
+#: ../editors/DataTypeEditor.py:726
+#: ../editors/Viewer.py:366
+#: ../editors/LDViewer.py:663
+#: ../editors/LDViewer.py:879
+#: ../editors/LDViewer.py:883
+#: ../editors/FileManagementPanel.py:210
+#: ../ProjectController.py:221
+#: ../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/BrowseValuesLibraryDialog.py:83
+#: ../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"
 
-#: ../ProjectController.py:588
+#: ../ProjectController.py:587
 msgid "Error : At least one configuration and one resource must be declared in PLC !\n"
 msgstr "Erreur : Au moins une configuration ou une ressource doit être déclarée dans l'automate !\n"
 
-#: ../ProjectController.py:580
+#: ../ProjectController.py:579
 #, python-format
 msgid "Error : IEC to C compiler returned %d\n"
 msgstr "Erreur : Le compilateur d'IEC en C a retourné %d\n"
 
-#: ../ProjectController.py:521
+#: ../ProjectController.py:520
 #, python-format
 msgid ""
 "Error in ST/IL/SFC code generator :\n"
@@ -495,56 +1613,264 @@
 msgid "Error: No PLC built\n"
 msgstr "Erreur : Aucun automate compilé\n"
 
-#: ../ProjectController.py:1379
+#: ../ProjectController.py:1378
 #, python-format
 msgid "Exception while connecting %s!\n"
 msgstr "Une exception est apparu au cours de la connexion %s !\n"
 
+#: ../dialogs/FBDBlockDialog.py:95
+msgid "Execution Control:"
+msgstr "Contrôle d'exécution :"
+
+#: ../dialogs/FBDVariableDialog.py:76
+#: ../dialogs/FBDBlockDialog.py:87
+msgid "Execution Order:"
+msgstr "Ordre d'exécution :"
+
 #: ../features.py:10
 msgid "Experimental web based HMI"
 msgstr "IHM expérimentale utilisant les technologies web"
 
+#: ../plcopen/iec_std.csv:38
+msgid "Exponent"
+msgstr "Exposant"
+
+#: ../plcopen/iec_std.csv:26
+msgid "Exponentiation"
+msgstr "Exponentiel"
+
 #: ../canfestival/canfestival.py:128
 msgid "Export CanOpen slave to EDS file"
 msgstr "Exporter un esclave CANopen sous la forme d'un fichier EDS"
 
+#: ../editors/GraphicViewer.py:144
+msgid "Export graph values to clipboard"
+msgstr "Exporter les valeurs du graphique vers le presse-papier"
+
 #: ../canfestival/canfestival.py:127
 msgid "Export slave"
 msgstr "Exporter un esclave"
 
-#: ../ProjectController.py:592
+#: ../dialogs/FBDVariableDialog.py:69
+msgid "Expression:"
+msgstr "Expression :"
+
+#: ../controls/VariablePanel.py:77
+msgid "External"
+msgstr "Externe"
+
+#: ../ProjectController.py:591
 msgid "Extracting Located Variables...\n"
 msgstr "Extraction des variables adressées en cours...\n"
 
-#: ../ProjectController.py:1446
+#: ../controls/ProjectPropertiesPanel.py:143
+#: ../dialogs/PouTransitionDialog.py:35
+#: ../dialogs/PouActionDialog.py:31
+#: ../dialogs/PouDialog.py:36
+msgid "FBD"
+msgstr "FBD"
+
+#: ../ProjectController.py:1445
 msgid "Failed : Must build before transfer.\n"
 msgstr "Echec : Le projet doit être compilé avant d'être transféré.\n"
 
-#: ../ProjectController.py:901
+#: ../editors/Viewer.py:405
+#: ../dialogs/LDElementDialog.py:84
+msgid "Falling Edge"
+msgstr "Front descendant"
+
+#: ../plcopen/structures.py:217
+msgid ""
+"Falling edge detector\n"
+"The output produces a single pulse when a falling edge is detected."
+msgstr ""
+"Détecteur de front descendant\n"
+"La sortie produit une impulsion unique lorsqu'un front descendant est détecté."
+
+#: ../ProjectController.py:900
 msgid "Fatal : cannot get builder.\n"
 msgstr "Erreur fatale : impossible de trouver un compilateur.\n"
 
-#: ../util/FileManagementPanel.py:209
+#: ../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 !"
+
+#: ../editors/FileManagementPanel.py:209
 #, python-format
 msgid "File '%s' already exists!"
 msgstr "Le fichier '%s' existe déjà !"
 
+#: ../IDEFrame.py:353
+#: ../dialogs/FindInPouDialog.py:30
+#: ../dialogs/FindInPouDialog.py:99
+msgid "Find"
+msgstr "Rechercher"
+
+#: ../IDEFrame.py:355
+msgid "Find Next"
+msgstr "Recherche suivante"
+
+#: ../IDEFrame.py:357
+msgid "Find Previous"
+msgstr "Recherche précédente"
+
+#: ../plcopen/iec_std.csv:90
+msgid "Find position"
+msgstr "Trouver la position"
+
+#: ../dialogs/FindInPouDialog.py:51
+msgid "Find:"
+msgstr "Rechercher :"
+
 #: ../connectors/PYRO/__init__.py:125
 msgid "Force runtime reload\n"
 msgstr "Redémarrage du runtime forcé\n"
 
-#: ../ProjectController.py:511
+#: ../controls/DebugVariablePanel.py:295
+#: ../editors/Viewer.py:1353
+msgid "Force value"
+msgstr "Forcer la valeur"
+
+#: ../dialogs/ForceVariableDialog.py:152
+msgid "Forcing Variable Value"
+msgstr "Forcer la valeur de la variable"
+
+#: ../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: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/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é !"
+
+#: ../dialogs/FindInPouDialog.py:67
+msgid "Forward"
+msgstr "Vers le bas"
+
+#: ../dialogs/SearchInProjectDialog.py:44
+msgid "Function"
+msgstr "Fonction"
+
+#: ../IDEFrame.py:329
+msgid "Function &Block"
+msgstr "&Bloc Fonctionnel"
+
+#: ../IDEFrame.py:1969
+#: ../dialogs/SearchInProjectDialog.py:45
+msgid "Function Block"
+msgstr "Bloc fonctionnel"
+
+#: ../controls/VariablePanel.py:741
+msgid "Function Block Types"
+msgstr "Types de blocs fonctionnels"
+
+#: ../PLCControler.py:94
+msgid "Function Blocks"
+msgstr "Blocs fonctionnels"
+
+#: ../editors/Viewer.py:236
+msgid "Function Blocks can't be used in Functions!"
+msgstr "Les blocs fonctionnels ne peuvent être utilisés dans des functions !"
+
+#: ../editors/Viewer.py:238
+msgid "Function Blocks can't be used in Transitions!"
+msgstr "Les blocs fonctionnels ne peuvent être utilisés dans des transitions"
+
+#: ../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:94
+msgid "Functions"
+msgstr "Fonctions"
+
+#: ../PLCOpenEditor.py:138
+msgid "Generate Program"
+msgstr "Générer le program"
+
+#: ../ProjectController.py:510
 msgid "Generating SoftPLC IEC-61131 ST/IL/SFC code...\n"
 msgstr "Création du code ST/IL/SFC de l'automate IEC-61131 en cours...\n"
 
-#: ../util/FileManagementPanel.py:303
+#: ../controls/VariablePanel.py:78
+msgid "Global"
+msgstr "Globale"
+
+#: ../editors/GraphicViewer.py:131
+msgid "Go to current value"
+msgstr "Aller à la valeur actuelle"
+
+#: ../controls/ProjectPropertiesPanel.py:173
+msgid "Graphics"
+msgstr "Graphiques"
+
+#: ../plcopen/iec_std.csv:75
+msgid "Greater than"
+msgstr "Supérieur à"
+
+#: ../plcopen/iec_std.csv:76
+msgid "Greater than or equal to"
+msgstr "Supérieur ou égal à"
+
+#: ../controls/ProjectPropertiesPanel.py:134
+msgid "Grid Resolution:"
+msgstr "Résolution de la grille :"
+
+#: ../controls/ProjectPropertiesPanel.py:120
+msgid "Height:"
+msgstr "Hauteur :"
+
+#: ../editors/FileManagementPanel.py:303
 msgid "Home Directory:"
 msgstr "Répertoire utilisateur :"
 
-#: ../ProjectController.py:828
+#: ../controls/ProjectPropertiesPanel.py:150
+msgid "Horizontal:"
+msgstr "Horizontal :"
+
+#: ../dialogs/DurationEditorDialog.py:44
+msgid "Hours:"
+msgstr "Heures :"
+
+#: ../plcopen/structures.py:279
+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 ""
+"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."
+
+#: ../ProjectController.py:827
 msgid "IEC-61131-3 code generation failed !\n"
 msgstr "La création du code IEC-61131-3 a échouée !\n"
 
+#: ../dialogs/PouTransitionDialog.py:35
+#: ../dialogs/PouActionDialog.py:31
+#: ../dialogs/PouDialog.py:36
+msgid "IL"
+msgstr "IL"
+
 #: ../Beremiz_service.py:356
 #: ../Beremiz_service.py:357
 msgid "IP is not valid!"
@@ -555,17 +1881,177 @@
 msgid "Import SVG"
 msgstr "Importer un SVG"
 
+#: ../controls/VariablePanel.py:76
+#: ../dialogs/FBDVariableDialog.py:34
+msgid "InOut"
+msgstr "Entrée-Sortie"
+
+#: ../controls/VariablePanel.py:263
+#, python-format
+msgid "Incompatible data types between \"%s\" and \"%s\""
+msgstr "Types de donnée imcompatible entre \"%s\" et \"%s\""
+
+#: ../controls/VariablePanel.py:274
+#, python-format
+msgid "Incompatible size of data between \"%s\" and \"%s\""
+msgstr "Taille de donnée incompatible entre \"%s\" et \"%s\""
+
+#: ../controls/VariablePanel.py:270
+#, python-format
+msgid "Incompatible size of data between \"%s\" and \"BOOL\""
+msgstr "Taille de donnée incompatible entre \"%s\" et \"BOOL\""
+
+#: ../dialogs/ActionBlockDialog.py:37
+msgid "Indicator"
+msgstr "Indicateur"
+
+#: ../editors/Viewer.py:492
+msgid "Initial Step"
+msgstr "Étape initiale"
+
+#: ../controls/VariablePanel.py:58
+#: ../controls/VariablePanel.py:59
+#: ../editors/DataTypeEditor.py:48
+msgid "Initial Value"
+msgstr "Valeur initiale"
+
+#: ../editors/DataTypeEditor.py:178
+#: ../editors/DataTypeEditor.py:209
+#: ../editors/DataTypeEditor.py:265
+#: ../editors/DataTypeEditor.py:303
+msgid "Initial Value:"
+msgstr "Valeur initiale :"
+
 #: ../svgui/svgui.py:21
 msgid "Inkscape"
 msgstr "Inkscape"
 
+#: ../dialogs/ActionBlockDialog.py:41
+#: ../dialogs/SFCTransitionDialog.py:66
+#: ../dialogs/SFCTransitionDialog.py:137
+msgid "Inline"
+msgstr "Inline"
+
+#: ../controls/VariablePanel.py:76
+#: ../dialogs/BrowseLocationsDialog.py:36
+#: ../dialogs/FBDVariableDialog.py:33
+#: ../dialogs/SFCStepDialog.py:61
+msgid "Input"
+msgstr "Entrée"
+
+#: ../dialogs/FBDBlockDialog.py:78
+msgid "Inputs:"
+msgstr "Entrées :"
+
+#: ../plcopen/iec_std.csv:87
+msgid "Insertion (into)"
+msgstr "Insertion (au milieu)"
+
+#: ../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 !"
+
+#: ../editors/ResourceEditor.py:247
+msgid "Instances:"
+msgstr "Instances :"
+
+#: ../plcopen/structures.py:259
+msgid ""
+"Integral\n"
+"The integral function block integrates the value of input XIN over time."
+msgstr ""
+"Intégrale\n"
+"Le bloc fonctionnel INTEGRAL intègre les valeurs de l'entrée XIN en fonction du temps."
+
+#: ../controls/VariablePanel.py:75
+msgid "Interface"
+msgstr "Interface"
+
+#: ../editors/ResourceEditor.py:71
+msgid "Interrupt"
+msgstr "Interruption"
+
+#: ../editors/ResourceEditor.py:67
+msgid "Interval"
+msgstr "Interval"
+
+#: ../PLCControler.py:2032
+#: ../PLCControler.py:2070
+msgid "Invalid plcopen element(s)!!!"
+msgstr "Les éléments plcopen ne sont pas valides !!! "
+
 #: ../canfestival/config_utils.py:376
 #: ../canfestival/config_utils.py:637
 #, python-format
 msgid "Invalid type \"%s\"-> %d != %d  for location\"%s\""
 msgstr "Type invalide \"%s\"-> %d != %d pour cette adresse \"%s\""
 
-#: ../ProjectController.py:1452
+#: ../dialogs/ForceVariableDialog.py:167
+#, python-format
+msgid "Invalid value \"%s\" for \"%s\" variable!"
+msgstr "Valeur \"%s\" invalide pour une variable de type \"%s\" !"
+
+#: ../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"
+
+#: ../controls/VariablePanel.py:244
+#: ../controls/VariablePanel.py:247
+#, python-format
+msgid "Invalid value \"%s\" for variable grid element"
+msgstr "Valeur \"%s\" invalide pour un élément de la grille de variables"
+
+#: ../editors/Viewer.py:221
+#: ../editors/Viewer.py:224
+#, python-format
+msgid "Invalid value \"%s\" for viewer block"
+msgstr "Valeur \"%s\" invalide pour un élément graphique"
+
+#: ../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."
+
+#: ../editors/Viewer.py:497
+msgid "Jump"
+msgstr "Renvoi"
+
+#: ../controls/ProjectPropertiesPanel.py:143
+#: ../dialogs/PouTransitionDialog.py:35
+#: ../dialogs/PouActionDialog.py:31
+#: ../dialogs/PouDialog.py:36
+msgid "LD"
+msgstr "LD"
+
+#: ../editors/LDViewer.py:215
+#: ../editors/LDViewer.py:231
+#, python-format
+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. "
+
+#: ../dialogs/PouTransitionDialog.py:86
+#: ../dialogs/PouActionDialog.py:83
+#: ../dialogs/PouDialog.py:102
+msgid "Language"
+msgstr "Langue"
+
+#: ../controls/ProjectPropertiesPanel.py:186
+msgid "Language (optional):"
+msgstr "Langue (optionnel) :"
+
+#: ../dialogs/PouTransitionDialog.py:60
+#: ../dialogs/PouActionDialog.py:56
+#: ../dialogs/PouDialog.py:71
+msgid "Language:"
+msgstr "Langue :"
+
+#: ../ProjectController.py:1451
 msgid "Latest build already matches current target. Transfering anyway...\n"
 msgstr "La dernière compilation correspond à la cible actuelle...\n"
 
@@ -577,22 +2063,63 @@
 msgid "Launch a live Python shell"
 msgstr "Lancer une console Python"
 
+#: ../editors/Viewer.py:428
+msgid "Left"
+msgstr "Gauche"
+
+#: ../dialogs/LDPowerRailDialog.py:55
+msgid "Left PowerRail"
+msgstr "Barre d'alimentation à gauche"
+
+#: ../plcopen/iec_std.csv:81
+msgid "Length of string"
+msgstr "Longueur de la chaîne"
+
+#: ../plcopen/iec_std.csv:78
+msgid "Less than"
+msgstr "Inférieur à"
+
+#: ../plcopen/iec_std.csv:79
+msgid "Less than or equal to"
+msgstr "Inférieur ou égal à"
+
+#: ../IDEFrame.py:600
+msgid "Library"
+msgstr "Librairie"
+
+#: ../plcopen/iec_std.csv:73
+msgid "Limitation"
+msgstr "Limitation"
+
 #: ../targets/toolchain_gcc.py:142
 msgid "Linking :\n"
 msgstr "Linkage :\n"
 
-#: ../util/discovery.py:110
+#: ../controls/VariablePanel.py:77
+#: ../dialogs/DiscoveryDialog.py:110
 msgid "Local"
-msgstr "Local"
-
-#: ../ProjectController.py:1354
+msgstr "Locale"
+
+#: ../ProjectController.py:1353
 msgid "Local service discovery failed!\n"
 msgstr "Echec de la sélection d'un service!\n"
 
-#: ../Beremiz.py:391
+#: ../controls/VariablePanel.py:58
+msgid "Location"
+msgstr "Adresse"
+
+#: ../dialogs/BrowseLocationsDialog.py:61
+msgid "Locations available:"
+msgstr "Adresses disponibles :"
+
+#: ../Beremiz.py:393
 msgid "Log Console"
 msgstr "Console de log"
 
+#: ../plcopen/iec_std.csv:25
+msgid "Logarithm to base 10"
+msgstr "Logarithme de base 10"
+
 #: ../connectors/PYRO/__init__.py:55
 #, python-format
 msgid "MDNS resolution failure for '%s'\n"
@@ -616,30 +2143,223 @@
 msgid "Max count (%d) reached for this confnode of type %s "
 msgstr "Nombre limite(%d) atteint pour les plugin de type %s"
 
-#: ../util/FileManagementPanel.py:301
+#: ../plcopen/iec_std.csv:71
+msgid "Maximum"
+msgstr "Maximum"
+
+#: ../editors/DataTypeEditor.py:232
+msgid "Maximum:"
+msgstr "Maximum :"
+
+#: ../dialogs/BrowseLocationsDialog.py:38
+msgid "Memory"
+msgstr "Mémoire"
+
+#: ../IDEFrame.py:568
+msgid "Menu ToolBar"
+msgstr "Barre d'outils du menu principal"
+
+#: ../dialogs/DurationEditorDialog.py:48
+msgid "Microseconds:"
+msgstr "Microsecondes :"
+
+#: ../editors/Viewer.py:433
+msgid "Middle"
+msgstr "Milieu"
+
+#: ../dialogs/DurationEditorDialog.py:47
+msgid "Milliseconds:"
+msgstr "Millisecondes :"
+
+#: ../plcopen/iec_std.csv:72
+msgid "Minimum"
+msgstr "Minimum"
+
+#: ../editors/DataTypeEditor.py:219
+msgid "Minimum:"
+msgstr "Minimum :"
+
+#: ../dialogs/DurationEditorDialog.py:45
+msgid "Minutes:"
+msgstr "Minutes :"
+
+#: ../controls/ProjectPropertiesPanel.py:210
+msgid "Miscellaneous"
+msgstr "Divers"
+
+#: ../dialogs/LDElementDialog.py:59
+msgid "Modifier:"
+msgstr "Modificateur :"
+
+#: ../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\""
+
+#: ../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éplacer vers le haut"
+
+#: ../editors/DataTypeEditor.py:348
+msgid "Move element down"
+msgstr "Déplcer un élément vers le bas"
+
+#: ../editors/DataTypeEditor.py:347
+msgid "Move element up"
+msgstr "Déplacer un élément vers le haut"
+
+#: ../editors/ResourceEditor.py:254
+msgid "Move instance down"
+msgstr "Déplacer une instance vers le bas"
+
+#: ../editors/ResourceEditor.py:253
+msgid "Move instance up"
+msgstr "Déplacer une instance vers le haut"
+
+#: ../editors/ResourceEditor.py:225
+msgid "Move task down"
+msgstr "Déplcer une tâche vers le bas"
+
+#: ../editors/ResourceEditor.py:224
+msgid "Move task up"
+msgstr "Déplacer une tâche vers le haut"
+
+#: ../IDEFrame.py:75
+#: ../IDEFrame.py:90
+#: ../IDEFrame.py:120
+#: ../IDEFrame.py:161
+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:381
+msgid "Move variable down"
+msgstr "Déplacer une variable vers le bas"
+
+#: ../controls/VariablePanel.py:380
+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)"
+
+#: ../plcopen/iec_std.csv:34
+msgid "Multiplication"
+msgstr "Multiplication"
+
+#: ../editors/FileManagementPanel.py:301
 msgid "My Computer:"
 msgstr "Poste de travail :"
 
+#: ../controls/VariablePanel.py:58
+#: ../controls/VariablePanel.py:59
+#: ../editors/DataTypeEditor.py:48
+#: ../editors/ResourceEditor.py:67
+#: ../editors/ResourceEditor.py:76
+msgid "Name"
+msgstr "Nom"
+
 #: ../Beremiz_service.py:381
 msgid "Name must not be null!"
 msgstr "Le nom ne doit pas être vide !"
 
-#: ../Beremiz.py:340
+#: ../dialogs/ConnectionDialog.py:65
+#: ../dialogs/FBDVariableDialog.py:89
+#: ../dialogs/LDElementDialog.py:88
+#: ../dialogs/SFCStepDialog.py:51
+#: ../dialogs/FBDBlockDialog.py:70
+msgid "Name:"
+msgstr "Nom :"
+
+#: ../plcopen/iec_std.csv:24
+msgid "Natural logarithm"
+msgstr "Logarithme népérien"
+
+#: ../editors/Viewer.py:403
+#: ../dialogs/LDElementDialog.py:67
+msgid "Negated"
+msgstr "Inversé"
+
+#: ../Beremiz.py:307
+#: ../Beremiz.py:342
+#: ../PLCOpenEditor.py:125
+#: ../PLCOpenEditor.py:167
 msgid "New"
 msgstr "Nouveau"
 
-#: ../Beremiz.py:305
-msgid "New\tCTRL+N"
-msgstr "Nouveau\tCTRL+N"
-
-#: ../ProjectController.py:1479
+#: ../controls/CustomEditableListBox.py:40
+msgid "New item"
+msgstr "Nouvel élément"
+
+#: ../editors/Viewer.py:402
+msgid "No Modifier"
+msgstr "Pas de modificateur"
+
+#: ../PLCControler.py:2929
+msgid "No PLC project found"
+msgstr "Pas de projet d'automate trouvé"
+
+#: ../ProjectController.py:1478
 msgid "No PLC to transfer (did build succeed ?)\n"
 msgstr "Aucun automate à transférer (la compilation a-t-elle réussi ?)\n"
 
+#: ../PLCGenerator.py:1321
+#, python-format
+msgid "No body defined in \"%s\" POU"
+msgstr "Pas de code défini dans le POU \"%s\""
+
+#: ../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:370
+msgid ""
+"No documentation available.\n"
+"Coming soon."
+msgstr ""
+"Pas de documentation.\n"
+"Bientôt disponible."
+
+#: ../PLCGenerator.py:744
+#, python-format
+msgid "No informations found for \"%s\" block"
+msgstr "Aucune information trouvée pour le block \"%s\""
+
+#: ../plcopen/structures.py:167
+msgid "No output variable found"
+msgstr "Pas de variable de sortie trouvée."
+
 #: ../Beremiz_service.py:394
 msgid "No running PLC"
 msgstr "Aucun automate en cours d'exécution"
 
+#: ../controls/SearchResultPanel.py:169
+msgid "No search results available."
+msgstr "Pas de résultat de recherche disponible."
+
 #: ../svgui/svgui.py:98
 #, python-format
 msgid "No such SVG file: %s\n"
@@ -655,10 +2375,15 @@
 msgid "No such index/subindex (%x,%x) in ID : %d (variable %s)"
 msgstr "indice et sous-indice inconnu (%x,%x) pour l'ID : %d (variable %s)"
 
-#: ../util/BrowseValuesLibraryDialog.py:83
+#: ../dialogs/BrowseValuesLibraryDialog.py:83
 msgid "No valid value selected!"
 msgstr "Aucune valeur valide sélectionnée !"
 
+#: ../PLCGenerator.py:1319
+#, python-format
+msgid "No variable defined in \"%s\" POU"
+msgstr "Pas de varaibles définies dans le POU \"%s\""
+
 #: ../canfestival/SlaveEditor.py:49
 #: ../canfestival/NetworkEditor.py:79
 msgid "Node infos"
@@ -669,24 +2394,63 @@
 msgid "Non existing node ID : %d (variable %s)"
 msgstr "Le node ID n'existe pas : %d (variable %s)"
 
+#: ../controls/VariablePanel.py:69
+msgid "Non-Retain"
+msgstr "Non-Persistante"
+
+#: ../dialogs/LDElementDialog.py:62
+msgid "Normal"
+msgstr "Normal"
+
 #: ../canfestival/config_utils.py:383
 #, python-format
 msgid "Not PDO mappable variable : '%s' (ID:%d,Idx:%x,sIdx:%x))"
 msgstr "Variable non mappable dans un PDO : '%s' (ID:%d,Idx:%x,sIdx:%x))"
 
-#: ../Beremiz.py:341
+#: ../plcopen/iec_std.csv:80
+msgid "Not equal to"
+msgstr "Non égal à"
+
+#: ../dialogs/SFCDivergenceDialog.py:80
+msgid "Number of sequences:"
+msgstr "Nombre de branches :"
+
+#: ../plcopen/iec_std.csv:22
+msgid "Numerical"
+msgstr "Numérique"
+
+#: ../plcopen/structures.py:247
+msgid ""
+"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:242
+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 ""
+"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"
+
+#: ../Beremiz.py:309
+#: ../Beremiz.py:343
+#: ../PLCOpenEditor.py:127
+#: ../PLCOpenEditor.py:168
 msgid "Open"
 msgstr "Ouvrir"
 
-#: ../Beremiz.py:307
-msgid "Open\tCTRL+O"
-msgstr "Ouvrir\tCTRL+O"
-
 #: ../svgui/svgui.py:107
 msgid "Open Inkscape"
 msgstr "Ouverture de Inkscape"
 
-#: ../ProjectController.py:1531
+#: ../ProjectController.py:1530
 msgid "Open a file explorer to manage project files"
 msgstr "Ouvrir un explorateur de fichier pour gérer les fichiers de projet"
 
@@ -694,11 +2458,31 @@
 msgid "Open wxGlade"
 msgstr "Ouverture de wxGlade"
 
+#: ../controls/VariablePanel.py:58
+#: ../controls/VariablePanel.py:59
+msgid "Option"
+msgstr "Option"
+
+#: ../dialogs/FindInPouDialog.py:76
+msgid "Options"
+msgstr "Options"
+
+#: ../controls/ProjectPropertiesPanel.py:97
+msgid "Organization (optional):"
+msgstr "Groupe (optionnel) :"
+
 #: ../canfestival/SlaveEditor.py:47
 #: ../canfestival/NetworkEditor.py:77
 msgid "Other Profile"
 msgstr "Autre profil"
 
+#: ../controls/VariablePanel.py:76
+#: ../dialogs/BrowseLocationsDialog.py:37
+#: ../dialogs/FBDVariableDialog.py:35
+#: ../dialogs/SFCStepDialog.py:65
+msgid "Output"
+msgstr "Sortie"
+
 #: ../canfestival/SlaveEditor.py:36
 #: ../canfestival/NetworkEditor.py:66
 msgid "PDO Receive"
@@ -709,19 +2493,109 @@
 msgid "PDO Transmit"
 msgstr "PDO transmis"
 
+#: ../plcopen/structures.py:269
+msgid ""
+"PID\n"
+"The PID (proportional, Integral, Derivative) function block provides the classical three term controller for closed loop control."
+msgstr ""
+"PID\n"
+"Le bloc fonctionnel PID (Proportionnel, Intégrale, Dérivée) fournit un controller de boucle fermé classique à trois paramètres."
+
 #: ../targets/toolchain_gcc.py:107
 msgid "PLC :\n"
 msgstr "Automate :\n"
 
-#: ../ProjectController.py:1097
-#: ../ProjectController.py:1399
+#: ../ProjectController.py:1096
+#: ../ProjectController.py:1398
 #, python-format
 msgid "PLC is %s\n"
 msgstr "L'automate est dans l'état %s\n"
 
-#: ../Beremiz.py:320
-msgid "Page Setup\tCTRL+ALT+P"
-msgstr "Mise en page\tCTRL+ALT+P"
+#: ../PLCOpenEditor.py:313
+#: ../PLCOpenEditor.py:391
+msgid "PLCOpen files (*.xml)|*.xml|All files|*.*"
+msgstr "Fichiers PLCOpen (*.xml)|*.xml|Tous les fichiers|*.*"
+
+#: ../PLCOpenEditor.py:175
+#: ../PLCOpenEditor.py:231
+msgid "PLCOpenEditor"
+msgstr "PLCOpenEditor"
+
+#: ../dialogs/PouDialog.py:98
+msgid "POU Name"
+msgstr "Nom du POU"
+
+#: ../dialogs/PouDialog.py:56
+msgid "POU Name:"
+msgstr "Nom du POU :"
+
+#: ../dialogs/PouDialog.py:100
+msgid "POU Type"
+msgstr "Type du POU"
+
+#: ../dialogs/PouDialog.py:63
+msgid "POU Type:"
+msgstr "Type du POU :"
+
+#: ../Beremiz.py:322
+#: ../PLCOpenEditor.py:141
+msgid "Page Setup"
+msgstr "Mise en page..."
+
+#: ../controls/ProjectPropertiesPanel.py:110
+msgid "Page Size (optional):"
+msgstr "Taille de la page (optionnel) :"
+
+#: ../PLCOpenEditor.py:476
+#, python-format
+msgid "Page: %d"
+msgstr "Page: %d"
+
+#: ../controls/PouInstanceVariablesPanel.py:41
+msgid "Parent instance"
+msgstr "Instance parent"
+
+#: ../IDEFrame.py:350
+#: ../IDEFrame.py:402
+#: ../editors/Viewer.py:537
+msgid "Paste"
+msgstr "Coller"
+
+#: ../IDEFrame.py:1900
+msgid "Paste POU"
+msgstr "Coller un POU"
+
+#: ../dialogs/SearchInProjectDialog.py:64
+msgid "Pattern to search:"
+msgstr "Modèle à rechercher :"
+
+#: ../dialogs/LDPowerRailDialog.py:64
+msgid "Pin number:"
+msgstr "Nombre de pattes :"
+
+#: ../editors/Viewer.py:2289
+#: ../editors/Viewer.py:2594
+#: ../editors/SFCViewer.py:696
+msgid "Please choose a target"
+msgstr "Choisissez une cible"
+
+#: ../editors/Viewer.py:2112
+#: ../editors/Viewer.py:2114
+#: ../editors/Viewer.py:2630
+#: ../editors/Viewer.py:2632
+msgid "Please enter comment text"
+msgstr "Saisissez le texte du commentaire"
+
+#: ../editors/SFCViewer.py:359
+#: ../editors/SFCViewer.py:381
+#: ../editors/SFCViewer.py:725
+msgid "Please enter step name"
+msgstr "Saisissez le nom de l'étape"
+
+#: ../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\" :"
 
 #: ../Beremiz_service.py:366
 msgid "Port number must be 0 <= port <= 65535!"
@@ -731,75 +2605,336 @@
 msgid "Port number must be an integer!"
 msgstr "Le numéro de port doit être un entier !"
 
-#: ../Beremiz.py:322
-msgid "Preview\tCTRL+SHIFT+P"
-msgstr "Preview\tCTRL+SHIFT+P"
-
-#: ../Beremiz.py:344
+#: ../editors/GraphicViewer.py:105
+msgid "Position:"
+msgstr "Position :"
+
+#: ../editors/Viewer.py:476
+msgid "Power Rail"
+msgstr "Barre d'alimentation"
+
+#: ../dialogs/LDPowerRailDialog.py:36
+msgid "Power Rail Properties"
+msgstr "Propriétés de la barre d'alimentation"
+
+#: ../Beremiz.py:324
+#: ../PLCOpenEditor.py:143
+msgid "Preview"
+msgstr "Aperçu avant impression"
+
+#: ../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 :"
+
+#: ../Beremiz.py:326
+#: ../Beremiz.py:346
+#: ../PLCOpenEditor.py:145
+#: ../PLCOpenEditor.py:171
 msgid "Print"
 msgstr "Imprimer"
 
-#: ../Beremiz.py:324
-msgid "Print\tCTRL+P"
-msgstr "Imprimer\tCTRL+P"
-
-#: ../ProjectController.py:1530
+#: ../IDEFrame.py:1155
+msgid "Print preview"
+msgstr "Aperçu avant impression"
+
+#: ../editors/ResourceEditor.py:67
+msgid "Priority"
+msgstr "Priorité"
+
+#: ../dialogs/SFCTransitionDialog.py:83
+msgid "Priority:"
+msgstr "Priorité :"
+
+#: ../controls/ProjectPropertiesPanel.py:80
+msgid "Product Name (required):"
+msgstr "Nom du produit (obligatoire) :"
+
+#: ../controls/ProjectPropertiesPanel.py:82
+msgid "Product Release (optional):"
+msgstr "Publication du produit (optionnel) :"
+
+#: ../controls/ProjectPropertiesPanel.py:81
+msgid "Product Version (required):"
+msgstr "Version du produit (obligatoire) :"
+
+#: ../IDEFrame.py:1972
+#: ../dialogs/SearchInProjectDialog.py:46
+msgid "Program"
+msgstr "Programme"
+
+#: ../PLCOpenEditor.py:360
+msgid "Program was successfully generated!"
+msgstr "Le programme a été généré avec succès !"
+
+#: ../PLCControler.py:95
+msgid "Programs"
+msgstr "Programmes"
+
+#: ../editors/Viewer.py:230
+msgid "Programs can't be used by other POUs!"
+msgstr "Les programmes ne peuvent être utilisés par les autres POUs !"
+
+#: ../controls/ProjectPropertiesPanel.py:84
+#: ../IDEFrame.py:553
+msgid "Project"
+msgstr "Projet"
+
+#: ../controls/SearchResultPanel.py:173
+#, python-format
+msgid "Project '%s':"
+msgstr "Projet  '%s' :"
+
+#: ../ProjectController.py:1529
 msgid "Project Files"
 msgstr "Fichiers de projet"
 
+#: ../controls/ProjectPropertiesPanel.py:78
+msgid "Project Name (required):"
+msgstr "Nom du projet (obligatoire) :"
+
+#: ../controls/ProjectPropertiesPanel.py:79
+msgid "Project Version (optional):"
+msgstr "Version du projet (optionnel) :"
+
+#: ../PLCControler.py:2916
+msgid ""
+"Project file syntax error:\n"
+"\n"
+msgstr ""
+"Erreur de syntaxe dans le fichier du projet :\n"
+"\n"
+
+#: ../dialogs/ProjectDialog.py:32
+msgid "Project properties"
+msgstr "Propriétés du projet"
+
 #: ../ConfigTreeNode.py:506
 #, python-format
 msgid "Project tree layout do not match confnode.xml %s!=%s "
 msgstr "L'organisation du projet ne correspond pas à plugin.xml %s!=%s"
 
+#: ../PLCControler.py:96
+msgid "Properties"
+msgstr "Propriétés"
+
+#: ../plcopen/structures.py:237
+msgid ""
+"Pulse timer\n"
+"The pulse timer can be used to generate output pulses of a given time duration."
+msgstr ""
+"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."
+
 #: ../features.py:8
 msgid "Python file"
 msgstr "Fichier Python"
 
+#: ../dialogs/ActionBlockDialog.py:37
+msgid "Qualifier"
+msgstr "Qualificatif"
+
 #: ../Beremiz_service.py:328
+#: ../Beremiz.py:329
+#: ../PLCOpenEditor.py:151
 msgid "Quit"
 msgstr "Quitter"
 
-#: ../Beremiz.py:327
-msgid "Quit\tCTRL+Q"
-msgstr "Quitter\tCTRL+Q"
-
-#: ../ProjectController.py:1526
+#: ../plcopen/structures.py:202
+msgid ""
+"RS bistable\n"
+"The RS bistable is a latch where the Reset dominates."
+msgstr ""
+"Bascule RS\n"
+"La bascule RS est une bascule où le Reset est dominant."
+
+#: ../plcopen/structures.py:274
+msgid ""
+"Ramp\n"
+"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."
+
+#: ../editors/GraphicViewer.py:89
+msgid "Range:"
+msgstr "Echelle :"
+
+#: ../ProjectController.py:1525
 msgid "Raw IEC code"
 msgstr "Ajout code IEC"
 
-#: ../Beremiz.py:1037
+#: ../plcopen/structures.py:254
+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."
+
+#: ../Beremiz.py:1039
 #, python-format
 msgid "Really delete node '%s'?"
 msgstr "Êtes-vous sûr de vouloir supprimer le noeud '%s' ?"
 
-#: ../util/discovery.py:105
+#: ../IDEFrame.py:340
+#: ../IDEFrame.py:398
+msgid "Redo"
+msgstr "Refaire"
+
+#: ../dialogs/SFCTransitionDialog.py:57
+#: ../dialogs/SFCTransitionDialog.py:135
+msgid "Reference"
+msgstr "Référence"
+
+#: ../IDEFrame.py:408
+#: ../dialogs/DiscoveryDialog.py:105
 msgid "Refresh"
 msgstr "Actualiser"
 
-#: ../Beremiz.py:1038
+#: ../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
+#: ../editors/Viewer.py:1356
+msgid "Release value"
+msgstr "Relacher la valeur"
+
+#: ../plcopen/iec_std.csv:37
+msgid "Remainder (modulo)"
+msgstr "Modulo"
+
+#: ../Beremiz.py:1040
 #, python-format
 msgid "Remove %s node"
 msgstr "Enlever un noeud %s"
 
-#: ../util/FileManagementPanel.py:281
+#: ../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"
+
+#: ../editors/DataTypeEditor.py:346
+msgid "Remove element"
+msgstr "Supprimer un élément"
+
+#: ../editors/FileManagementPanel.py:281
 msgid "Remove file from left folder"
 msgstr "Supprimer un fichier du dossier de gauche"
 
+#: ../editors/ResourceEditor.py:252
+msgid "Remove instance"
+msgstr "Supprimer une instance"
+
 #: ../canfestival/NetworkEditor.py:87
 msgid "Remove slave"
 msgstr "Enlever l'esclave"
 
-#: ../util/FileManagementPanel.py:399
+#: ../editors/ResourceEditor.py:223
+msgid "Remove task"
+msgstr "Supprimer la tâche"
+
+#: ../controls/VariablePanel.py:379
+msgid "Remove variable"
+msgstr "Supprimer une variable"
+
+#: ../IDEFrame.py:1976
+msgid "Rename"
+msgstr "Renommer"
+
+#: ../editors/FileManagementPanel.py:399
 msgid "Replace File"
 msgstr "Remplacer un fichier"
 
-#: ../ProjectController.py:1494
+#: ../plcopen/iec_std.csv:89
+msgid "Replacement (within)"
+msgstr "Remplacement (au milieu)"
+
+#: ../dialogs/LDElementDialog.py:76
+msgid "Reset"
+msgstr "Mise à zéro"
+
+#: ../editors/Viewer.py:521
+msgid "Reset Execution Order"
+msgstr "Réinitialiser l'order d'exécution"
+
+#: ../IDEFrame.py:423
+msgid "Reset Perspective"
+msgstr "Réinitialiser l'interface"
+
+#: ../controls/SearchResultPanel.py:105
+msgid "Reset search result"
+msgstr "Réinitialiser le résultat de la recherche"
+
+#: ../editors/GraphicViewer.py:137
+msgid "Reset zoom and offset"
+msgstr "Réinitialisation du zoom et de l'offset"
+
+#: ../PLCControler.py:96
+msgid "Resources"
+msgstr "Ressources"
+
+#: ../controls/VariablePanel.py:67
+msgid "Retain"
+msgstr "Persistante"
+
+#: ../controls/VariablePanel.py:352
+msgid "Return Type:"
+msgstr "Type de retour :"
+
+#: ../editors/Viewer.py:430
+msgid "Right"
+msgstr "Droite"
+
+#: ../dialogs/LDPowerRailDialog.py:60
+msgid "Right PowerRail"
+msgstr "Barre d'alimentation à droite"
+
+#: ../editors/Viewer.py:404
+#: ../dialogs/LDElementDialog.py:80
+msgid "Rising Edge"
+msgstr "Front montant"
+
+#: ../plcopen/structures.py:212
+msgid ""
+"Rising edge detector\n"
+"The output produces a single pulse when a rising edge is detected."
+msgstr ""
+"Détecteur de front montant\n"
+"La sortie produit une impulsion unique lorsqu'un front montant est détecté."
+
+#: ../plcopen/iec_std.csv:65
+msgid "Rotate left"
+msgstr "Rotation à gauche"
+
+#: ../plcopen/iec_std.csv:64
+msgid "Rotate right"
+msgstr "Rotation à droite"
+
+#: ../plcopen/iec_std.csv:17
+msgid "Rounding up/down"
+msgstr "Arrondi"
+
+#: ../ProjectController.py:1493
 msgid "Run"
 msgstr "Exécuter"
 
-#: ../ProjectController.py:842
-#: ../ProjectController.py:851
+#: ../ProjectController.py:841
+#: ../ProjectController.py:850
 msgid "Runtime extensions C code generation failed !\n"
 msgstr "La génération du code des plugins a échoué !\n"
 
@@ -813,6 +2948,29 @@
 msgid "SDO Server"
 msgstr "Serveur SDO"
 
+#: ../controls/ProjectPropertiesPanel.py:143
+#: ../dialogs/PouDialog.py:36
+msgid "SFC"
+msgstr "SFC"
+
+#: ../plcopen/structures.py:197
+msgid ""
+"SR bistable\n"
+"The SR bistable is a latch where the Set dominates."
+msgstr ""
+"Bascule SR\n"
+"La bascule SR est une bascule où le Set est dominant."
+
+#: ../dialogs/PouTransitionDialog.py:35
+#: ../dialogs/PouActionDialog.py:31
+#: ../dialogs/PouDialog.py:36
+msgid "ST"
+msgstr "ST"
+
+#: ../PLCOpenEditor.py:347
+msgid "ST files (*.st)|*.st|All files|*.*"
+msgstr "Fichiers ST (*.st)|*.st|Tous les fichiers|*.*"
+
 #: ../svgui/svgui.py:92
 msgid "SVG files (*.svg)|*.svg|All files|*.*"
 msgstr "Fichiers SVG (*.svg)|*.svg|Tous les fichiers|*.*"
@@ -821,31 +2979,101 @@
 msgid "SVGUI"
 msgstr "SVGUI"
 
-#: ../Beremiz.py:342
+#: ../Beremiz.py:313
+#: ../Beremiz.py:344
+#: ../PLCOpenEditor.py:134
+#: ../PLCOpenEditor.py:169
 msgid "Save"
 msgstr "Enregistrer"
 
-#: ../Beremiz.py:311
-msgid "Save\tCTRL+S"
-msgstr "Enregistrer\tCTRL+S"
-
-#: ../Beremiz.py:343
+#: ../Beremiz.py:345
+#: ../PLCOpenEditor.py:136
+#: ../PLCOpenEditor.py:170
 msgid "Save As..."
 msgstr "Enregistrer sous..."
 
-#: ../Beremiz.py:313
-msgid "Save as\tCTRL+SHIFT+S"
-msgstr "Enregistrer sous...\tCTRL+SHIFT+S"
-
-#: ../ProjectController.py:1014
+#: ../Beremiz.py:315
+msgid "Save as"
+msgstr "Enregistrer sous..."
+
+#: ../dialogs/SearchInProjectDialog.py:76
+msgid "Scope"
+msgstr "Contexte"
+
+#: ../IDEFrame.py:592
+#: ../dialogs/SearchInProjectDialog.py:105
+msgid "Search"
+msgstr "Rechercher"
+
+#: ../IDEFrame.py:360
+#: ../IDEFrame.py:404
+#: ../dialogs/SearchInProjectDialog.py:52
+msgid "Search in Project"
+msgstr "Rechercher dans le projet"
+
+#: ../dialogs/DurationEditorDialog.py:46
+msgid "Seconds:"
+msgstr "Secondes :"
+
+#: ../IDEFrame.py:366
+msgid "Select All"
+msgstr "Tout sélectionner"
+
+#: ../controls/VariablePanel.py:277
+#: ../editors/TextViewer.py:330
+#: ../editors/Viewer.py:277
+msgid "Select a variable class:"
+msgstr "Sélectionner une direction pour la variable :"
+
+#: ../ProjectController.py:1013
 msgid "Select an editor:"
 msgstr "Sélectionner un éditeur :"
 
-#: ../util/discovery.py:84
+#: ../controls/PouInstanceVariablesPanel.py:197
+msgid "Select an instance"
+msgstr "Sélectionnez une instance"
+
+#: ../IDEFrame.py:576
+msgid "Select an object"
+msgstr "Sélectionner un objet"
+
+#: ../plcopen/iec_std.csv:70
+msgid "Selection"
+msgstr "Sélection"
+
+#: ../dialogs/SFCDivergenceDialog.py:62
+msgid "Selection Convergence"
+msgstr "Convergence simple"
+
+#: ../dialogs/SFCDivergenceDialog.py:55
+msgid "Selection Divergence"
+msgstr "Divergence simple"
+
+#: ../plcopen/structures.py:207
+msgid ""
+"Semaphore\n"
+"The semaphore provides a mechanism to allow software elements mutually exclusive access to certain ressources."
+msgstr ""
+"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/DiscoveryDialog.py:84
 msgid "Services available:"
 msgstr "Services disponibles:"
 
-#: ../ProjectController.py:1520
+#: ../dialogs/LDElementDialog.py:72
+msgid "Set"
+msgstr "Mise à 1"
+
+#: ../plcopen/iec_std.csv:62
+msgid "Shift left"
+msgstr "Décalage à gauche"
+
+#: ../plcopen/iec_std.csv:63
+msgid "Shift right"
+msgstr "Décalage à droite"
+
+#: ../ProjectController.py:1519
 msgid "Show IEC code generated by PLCGenerator"
 msgstr "Afficher le code IEC généré par PLCGenerator"
 
@@ -857,29 +3085,57 @@
 msgid "Show Master generated by config_utils"
 msgstr "Afficher le maître généré par config_utils"
 
-#: ../ProjectController.py:1518
+#: ../ProjectController.py:1517
 msgid "Show code"
 msgstr "Afficher le code"
 
+#: ../dialogs/SFCDivergenceDialog.py:74
+msgid "Simultaneous Convergence"
+msgstr "Convergence double"
+
+#: ../dialogs/SFCDivergenceDialog.py:68
+msgid "Simultaneous Divergence"
+msgstr "Divergence double"
+
+#: ../plcopen/iec_std.csv:27
+msgid "Sine"
+msgstr "Sinus"
+
+#: ../editors/ResourceEditor.py:67
+msgid "Single"
+msgstr "Evènement"
+
+#: ../plcopen/iec_std.csv:23
+msgid "Square root (base 2)"
+msgstr "Racine carré (base 2)"
+
+#: ../plcopen/structures.py:193
+msgid "Standard function blocks"
+msgstr "Blocs fonctionnels standards"
+
 #: ../Beremiz_service.py:319
-#: ../ProjectController.py:1496
+#: ../ProjectController.py:1495
 msgid "Start PLC"
 msgstr "Démarrer l'automate"
 
-#: ../ProjectController.py:820
+#: ../ProjectController.py:819
 #, python-format
 msgid "Start build in %s\n"
 msgstr "Début de la compilation dans %s\n"
 
-#: ../ProjectController.py:1315
+#: ../ProjectController.py:1314
 msgid "Starting PLC\n"
 msgstr "Démarrer l'automate\n"
 
-#: ../Beremiz.py:401
+#: ../Beremiz.py:403
 msgid "Status ToolBar"
 msgstr "Barre d'outils de statut"
 
-#: ../ProjectController.py:1499
+#: ../editors/Viewer.py:493
+msgid "Step"
+msgstr "Étape"
+
+#: ../ProjectController.py:1498
 msgid "Stop"
 msgstr "Arrêter"
 
@@ -887,19 +3143,51 @@
 msgid "Stop PLC"
 msgstr "Arrêter l'automate"
 
-#: ../ProjectController.py:1501
+#: ../ProjectController.py:1500
 msgid "Stop Running PLC"
 msgstr "Arrêter l'automate en cours d'exécution"
 
-#: ../ProjectController.py:1293
+#: ../ProjectController.py:1292
 msgid "Stopping debugger...\n"
 msgstr "Arrêt du débogage en cours\n"
 
-#: ../ProjectController.py:916
+#: ../editors/DataTypeEditor.py:52
+msgid "Structure"
+msgstr "Structure"
+
+#: ../editors/DataTypeEditor.py:52
+msgid "Subrange"
+msgstr "Sous-ensemble"
+
+#: ../plcopen/iec_std.csv:35
+msgid "Subtraction"
+msgstr "Soustraction"
+
+#: ../ProjectController.py:915
 msgid "Successfully built.\n"
 msgstr "Compilé avec succès.\n"
 
-#: ../util/FileManagementPanel.py:398
+#: ../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"
+
+#: ../editors/ResourceEditor.py:76
+msgid "Task"
+msgstr "Tâche"
+
+#: ../editors/ResourceEditor.py:218
+msgid "Tasks:"
+msgstr "Tâches :"
+
+#: ../controls/VariablePanel.py:78
+msgid "Temp"
+msgstr "Temporaire"
+
+#: ../editors/FileManagementPanel.py:398
 #, python-format
 msgid ""
 "The file '%s' already exist.\n"
@@ -908,32 +3196,167 @@
 "Le fichier '%s' existe déjà.\n"
 "Voulez-vous le remplacer ?"
 
-#: ../Beremiz.py:553
+#: ../editors/LDViewer.py:879
+msgid "The group of block must be coherent!"
+msgstr "Le groupe de blocs doit être cohérent !"
+
+#: ../IDEFrame.py:1091
+#: ../Beremiz.py:555
 msgid "There are changes, do you want to save?"
-msgstr "Le projet a été modifié, voulez-vous l'enregistrer ?"
-
-#: ../ProjectController.py:1508
+msgstr "Le projet a été modifié. Voulez-vous l'enregistrer ?"
+
+#: ../IDEFrame.py:1709
+#: ../IDEFrame.py:1728
+#, 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 ?"
+
+#: ../IDEFrame.py:1178
+msgid ""
+"There was a problem printing.\n"
+"Perhaps your current printer is not set correctly?"
+msgstr ""
+"Un problème est apparu lors de l'impression.\n"
+"Peut-être que votre imprimante n'est pas correctement configurée ?"
+
+#: ../editors/LDViewer.py:888
+msgid "This option isn't available yet!"
+msgstr "Cette option n'a pas encore disponible"
+
+#: ../editors/GraphicViewer.py:278
+msgid "Tick"
+msgstr "Tick"
+
+#: ../plcopen/iec_std.csv:40
+msgid "Time"
+msgstr "Temps"
+
+#: ../plcopen/iec_std.csv:40
+#: ../plcopen/iec_std.csv:41
+msgid "Time addition"
+msgstr "Addition de durée"
+
+#: ../plcopen/iec_std.csv:86
+msgid "Time concatenation"
+msgstr "Concaténation de date et de durée"
+
+#: ../plcopen/iec_std.csv:60
+#: ../plcopen/iec_std.csv:61
+msgid "Time division"
+msgstr "Division de durée"
+
+#: ../plcopen/iec_std.csv:46
+#: ../plcopen/iec_std.csv:47
+msgid "Time multiplication"
+msgstr "Multiplication de durée"
+
+#: ../plcopen/iec_std.csv:48
+#: ../plcopen/iec_std.csv:49
+msgid "Time subtraction"
+msgstr "Soustraction de durée"
+
+#: ../plcopen/iec_std.csv:42
+#: ../plcopen/iec_std.csv:43
+msgid "Time-of-day addition"
+msgstr "Addition d'horodatage"
+
+#: ../plcopen/iec_std.csv:52
+#: ../plcopen/iec_std.csv:53
+#: ../plcopen/iec_std.csv:54
+#: ../plcopen/iec_std.csv:55
+msgid "Time-of-day subtraction"
+msgstr "Soustraction d'horodatage"
+
+#: ../editors/Viewer.py:432
+msgid "Top"
+msgstr "Haut"
+
+#: ../ProjectController.py:1507
 msgid "Transfer"
 msgstr "Transférer"
 
-#: ../ProjectController.py:1510
+#: ../ProjectController.py:1509
 msgid "Transfer PLC"
 msgstr "Transférer l'automate"
 
-#: ../ProjectController.py:1475
+#: ../ProjectController.py:1474
 msgid "Transfer completed successfully.\n"
 msgstr "Transfert effectué avec succès.\n"
 
-#: ../ProjectController.py:1477
+#: ../ProjectController.py:1476
 msgid "Transfer failed\n"
 msgstr "Le transfert a échoué\n"
 
+#: ../editors/Viewer.py:494
+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"
+
+#: ../dialogs/PouTransitionDialog.py:53
+msgid "Transition Name:"
+msgstr "Nom de la transition :"
+
+#: ../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: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:1442
+#, python-format
+msgid "Transition with name %s doesn't exist!"
+msgstr "La transition nommée %s n'existe pas !"
+
+#: ../PLCControler.py:95
+msgid "Transitions"
+msgstr "Transitions"
+
+#: ../editors/ResourceEditor.py:67
+msgid "Triggering"
+msgstr "Activation"
+
+#: ../controls/VariablePanel.py:58
+#: ../controls/VariablePanel.py:59
+#: ../editors/DataTypeEditor.py:48
+#: ../editors/ResourceEditor.py:76
+#: ../dialogs/ActionBlockDialog.py:37
+msgid "Type"
+msgstr "Type"
+
 #: ../canfestival/config_utils.py:335
 #: ../canfestival/config_utils.py:617
 #, python-format
 msgid "Type conflict for location \"%s\""
 msgstr "Conflit entre types pour l'adresse \"%s\""
 
+#: ../plcopen/iec_std.csv:16
+msgid "Type conversion"
+msgstr "Conversion de type"
+
+#: ../editors/DataTypeEditor.py:155
+msgid "Type infos:"
+msgstr "Propriétés du type :"
+
+#: ../dialogs/SFCDivergenceDialog.py:51
+#: ../dialogs/LDPowerRailDialog.py:51
+#: ../dialogs/ConnectionDialog.py:52
+#: ../dialogs/SFCTransitionDialog.py:53
+#: ../dialogs/FBDBlockDialog.py:48
+msgid "Type:"
+msgstr "Type :"
+
 #: ../canfestival/config_utils.py:455
 #: ../canfestival/config_utils.py:469
 #, python-format
@@ -945,32 +3368,147 @@
 msgid "Unable to get Xenomai's %s \n"
 msgstr "Unable to get Xenomai's %s \n"
 
-#: ../ProjectController.py:255
+#: ../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é !"
+
+#: ../IDEFrame.py:338
+#: ../IDEFrame.py:397
+msgid "Undo"
+msgstr "Défaire"
+
+#: ../ProjectController.py:254
 msgid "Unknown"
 msgstr "Inconnu"
 
+#: ../editors/Viewer.py:336
+#, python-format
+msgid "Unknown variable \"%s\" for this POU!"
+msgstr "Variable \"%s\" inconnue dans ce POU !"
+
+#: ../ProjectController.py:251
 #: ../ProjectController.py:252
-#: ../ProjectController.py:253
 msgid "Unnamed"
 msgstr "SansNom"
 
+#: ../PLCControler.py:305
+#, python-format
+msgid "Unnamed%d"
+msgstr "Sansnom%d"
+
+#: ../controls/VariablePanel.py:272
+#, python-format
+msgid "Unrecognized data size \"%s\""
+msgstr "Taille de donnée \"%s\" non identifié !"
+
+#: ../plcopen/structures.py:222
+msgid ""
+"Up-counter\n"
+"The up-counter can be used to signal when a count has reached a maximum value."
+msgstr ""
+"Compteur incrémental\n"
+"Le compteur incrémental peut être utilisé pour signaler lorsque le compteur a atteint la valeur maximale."
+
+#: ../plcopen/structures.py:232
+msgid ""
+"Up-down counter\n"
+"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 ""
+"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."
+
+#: ../controls/VariablePanel.py:709
+#: ../editors/DataTypeEditor.py:623
+msgid "User Data Types"
+msgstr "Types de donnée du projet"
+
 #: ../canfestival/SlaveEditor.py:38
 #: ../canfestival/NetworkEditor.py:68
 msgid "User Type"
 msgstr "Type utilisateur"
 
+#: ../PLCControler.py:94
+msgid "User-defined POUs"
+msgstr "POUs du projet"
+
+#: ../controls/DebugVariablePanel.py:40
+#: ../dialogs/ActionBlockDialog.py:37
+msgid "Value"
+msgstr "Valeur"
+
+#: ../editors/GraphicViewer.py:278
+msgid "Values"
+msgstr "Valeurs"
+
+#: ../editors/DataTypeEditor.py:252
+msgid "Values:"
+msgstr "Valeurs"
+
+#: ../controls/DebugVariablePanel.py:40
+#: ../editors/Viewer.py:466
+#: ../dialogs/ActionBlockDialog.py:41
+msgid "Variable"
+msgstr "Variable"
+
+#: ../dialogs/FBDVariableDialog.py:47
+msgid "Variable Properties"
+msgstr "Propriétés de la variable"
+
+#: ../controls/VariablePanel.py:277
+#: ../editors/TextViewer.py:330
+#: ../editors/Viewer.py:277
+msgid "Variable class"
+msgstr "Direction de la variable"
+
+#: ../editors/TextViewer.py:374
+#: ../editors/Viewer.py:338
+msgid "Variable don't belong to this POU!"
+msgstr "La variable n'appartient pas à ce POU !"
+
+#: ../controls/VariablePanel.py:77
+msgid "Variables"
+msgstr "Variables"
+
+#: ../controls/ProjectPropertiesPanel.py:151
+msgid "Vertical:"
+msgstr "Vertical :"
+
 #: ../wxglade_hmi/wxglade_hmi.py:11
 msgid "WXGLADE GUI"
 msgstr "IHM WXGlade"
 
-#: ../ProjectController.py:1277
+#: ../ProjectController.py:1276
 msgid "Waiting debugger to recover...\n"
 msgstr "En attente de la mise en route du déboggueur...\n"
 
-#: ../ProjectController.py:516
+#: ../editors/LDViewer.py:888
+#: ../dialogs/PouDialog.py:126
+msgid "Warning"
+msgstr "Attention"
+
+#: ../ProjectController.py:515
 msgid "Warnings in ST/IL/SFC code generator :\n"
 msgstr "Mises en garde du generateur de code ST/IL/SFC :\n"
 
+#: ../dialogs/SearchInProjectDialog.py:85
+msgid "Whole Project"
+msgstr "Tout le projet"
+
+#: ../controls/ProjectPropertiesPanel.py:119
+msgid "Width:"
+msgstr "Longueur :"
+
+#: ../dialogs/FindInPouDialog.py:86
+msgid "Wrap search"
+msgstr "Boucler"
+
 #: ../features.py:9
 msgid "WxGlade GUI"
 msgstr "Interface WxGlade"
@@ -991,7 +3529,7 @@
 "Vous n'avez pas les permissions d'écriture.\n"
 "Ouvrir wxGlade tout de même ?"
 
-#: ../ProjectController.py:221
+#: ../ProjectController.py:220
 msgid ""
 "You must have permission to work on the project\n"
 "Work on a project copy ?"
@@ -999,11 +3537,84 @@
 "Vous n'avez pas la permission de travailler sur le projet.\n"
 "Travailler sur une copie du projet ?"
 
+#: ../editors/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 !"
+
+#: ../editors/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é !"
+
+#: ../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:165
+msgid "You must type a value!"
+msgstr "Vous devez saisir une valeur !"
+
+#: ../IDEFrame.py:414
+msgid "Zoom"
+msgstr "Zoom"
+
+#: ../editors/GraphicViewer.py:97
+msgid "Zoom:"
+msgstr "Zoom :"
+
+#: ../PLCOpenEditor.py:356
+#, python-format
+msgid "error: %s\n"
+msgstr "erreur: %s\n"
+
 #: ../util/ProcessLogger.py:161
 #, python-format
 msgid "exited with status %s (pid %s)\n"
 msgstr "a quitté avec le status %s (pid %s)\n"
 
+#: ../PLCOpenEditor.py:508
+#: ../PLCOpenEditor.py:510
+msgid "file : "
+msgstr "fichier :"
+
+#: ../dialogs/PouDialog.py:31
+msgid "function"
+msgstr "fonction"
+
+#: ../PLCOpenEditor.py:511
+msgid "function : "
+msgstr "fonction :"
+
+#: ../dialogs/PouDialog.py:31
+msgid "functionBlock"
+msgstr "Bloc fonctionnel"
+
+#: ../PLCOpenEditor.py:511
+msgid "line : "
+msgstr "ligne :"
+
+#: ../dialogs/PouDialog.py:31
+msgid "program"
+msgstr "programme"
+
+#: ../plcopen/iec_std.csv:84
+msgid "string from the middle"
+msgstr "Caractères du milieu"
+
+#: ../plcopen/iec_std.csv:82
+msgid "string left of"
+msgstr "Caractères à gauche de"
+
+#: ../plcopen/iec_std.csv:83
+msgid "string right of"
+msgstr "Caractères à droite de"
+
+#: ../PLCOpenEditor.py:354
+#, python-format
+msgid "warning: %s\n"
+msgstr "attention: %s\n"
+
 #: Extra XSD strings
 msgid "CanFestivalSlaveNode"
 msgstr "Noeud esclave CanFestival"
@@ -1050,9 +3661,6 @@
 msgid "BaseParams"
 msgstr "Paramètres de base"
 
-msgid "Name"
-msgstr "Nom"
-
 msgid "IEC_Channel"
 msgstr "Numéro IEC"
 
@@ -1092,14 +3700,74 @@
 msgid "Disable_Extensions"
 msgstr "Disable_Extensions"
 
-#~ msgid "&Properties"
-#~ msgstr "&Propriétés"
-
-#~ msgid ",   "
-#~ msgstr ",   "
-
-#~ msgid ". "
-#~ msgstr ". "
+#, fuzzy
+#~ msgid "Close Project\tCTRL+SHIFT+W"
+#~ msgstr ""
+#~ "#-#-#-#-#  Beremiz_fr_FR.po (PACKAGE VERSION)  #-#-#-#-#\n"
+#~ "Fermer le project\tCTRL+SHIFT+W\n"
+#~ "#-#-#-#-#  PLCOpenEditor_fr_FR.po (PACKAGE VERSION)  #-#-#-#-#\n"
+#~ "Fermer le projet\tCTRL+SHIFT+W"
+
+#~ msgid "New\tCTRL+N"
+#~ msgstr "Nouveau\tCTRL+N"
+
+#~ msgid "Open\tCTRL+O"
+#~ msgstr "Ouvrir\tCTRL+O"
+
+#, fuzzy
+#~ msgid "Preview\tCTRL+SHIFT+P"
+#~ msgstr ""
+#~ "#-#-#-#-#  Beremiz_fr_FR.po (PACKAGE VERSION)  #-#-#-#-#\n"
+#~ "Preview\tCTRL+SHIFT+P\n"
+#~ "#-#-#-#-#  PLCOpenEditor_fr_FR.po (PACKAGE VERSION)  #-#-#-#-#\n"
+#~ "Aperçu avant impression\tCTRL+SHIFT+S"
+
+#, fuzzy
+#~ msgid "Print\tCTRL+P"
+#~ msgstr ""
+#~ "#-#-#-#-#  Beremiz_fr_FR.po (PACKAGE VERSION)  #-#-#-#-#\n"
+#~ "Imprimer\tCTRL+P\n"
+#~ "#-#-#-#-#  PLCOpenEditor_fr_FR.po (PACKAGE VERSION)  #-#-#-#-#\n"
+#~ "Imprimer...\tCTRL+Q"
+
+#~ msgid "Quit\tCTRL+Q"
+#~ msgstr "Quitter\tCTRL+Q"
+
+#~ msgid "Save\tCTRL+S"
+#~ msgstr "Enregistrer\tCTRL+S"
+
+#~ msgid "Save as\tCTRL+SHIFT+S"
+#~ msgstr "Enregistrer sous...\tCTRL+SHIFT+S"
+
+#~ msgid "Copy\tCTRL+C"
+#~ msgstr "Copier\tCtrl+C"
+
+#~ msgid "Cut\tCTRL+X"
+#~ msgstr "Couper\tCTRL+X"
+
+#~ msgid "Find\tCTRL+F"
+#~ msgstr "Rechercher...\tCTRL+Z"
+
+#~ msgid "PLCOpenEditor\tF1"
+#~ msgstr "PLCOpenEditor\tF1"
+
+#~ msgid "Paste\tCTRL+V"
+#~ msgstr "Coller\tCTRL+V"
+
+#~ msgid "Redo\tCTRL+Y"
+#~ msgstr "Refaire\tCTRL+Y"
+
+#~ msgid "Refresh\tCTRL+R"
+#~ msgstr "Actualiser\tCTRL+R"
+
+#~ msgid "Save As...\tCTRL+SHIFT+S"
+#~ msgstr "Enregistrer sous...\tCTRL+SHIFT+S"
+
+#~ msgid "Search in Project\tCTRL+SHIFT+F"
+#~ msgstr "Rechercher dans le projet\tCTRL+SHIFT+F"
+
+#~ msgid "Undo\tCTRL+Z"
+#~ msgstr "Défaire\tCTRL+Z"
 
 #~ msgid "Add a sub confnode"
 #~ msgstr "Add a sub confnode"
@@ -1134,11 +3802,83 @@
 #~ msgid "Wrong URI, please check it !\n"
 #~ msgstr "URI inconnue, veuillez vérifier l'adresse !\n"
 
-#~ msgid "file : "
-#~ msgstr "fichier :"
-
-#~ msgid "function : "
-#~ msgstr "fonction :"
-
-#~ msgid "line : "
-#~ msgstr "ligne :"
+#~ 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 "Types"
+#~ msgstr "Types"
+
+#~ msgid "Create a new POU from"
+#~ msgstr "Créer un nouveau POU à partir de"
+
+#~ msgid "Please enter POU name"
+#~ msgstr "Saisissez le nom du POU"
+
+#~ msgid "Scaling:"
+#~ msgstr "Echelle :"
+
+#~ msgid "X Scale:"
+#~ msgstr "Echelle X :"
+
+#~ msgid "Y Scale:"
+#~ msgstr "Echelle Y :"
+
+#~ msgid "No"
+#~ msgstr "Non"
+
+#~ msgid "Yes"
+#~ msgstr "Oui"
+
+#, 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 "Create A New POU From"
+#~ msgstr "Créer un nouveau POU à partir de"