--- a/i18n/Beremiz_fr_FR.po Fri Sep 28 13:07:46 2018 +0300
+++ b/i18n/Beremiz_fr_FR.po Fri Sep 28 13:17:30 2018 +0300
@@ -1,17 +1,15 @@
-# English translations for Beremiz package.
-# Copyright (C) 2017 THE Beremiz'S COPYRIGHT HOLDER
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the Beremiz package.
-# Automatically generated, 2017.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
-# Translators:
-# Andrey Skvortsov <andrej.skvortzov@gmail.com>, 2017
-# Fabien M <mail@fabienm.eu>, 2017
+#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Beremiz\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-07-05 13:02+0300\n"
-"PO-Revision-Date: 2017-07-05 13:02+0300\n"
+"POT-Creation-Date: 2018-06-15 16:39+0300\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Fabien M <mail@fabienm.eu>, 2017\n"
"Language-Team: French (France) (https://www.transifex.com/beremiz/teams/75746/fr_FR/)\n"
"MIME-Version: 1.0\n"
@@ -20,7 +18,7 @@
"Language: fr_FR\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-#: ../BeremizIDE.py:1095 ../PLCOpenEditor.py:418
+#: ../util/ExceptionHandler.py:58
#, python-format
msgid ""
"\n"
@@ -44,153 +42,158 @@
"Vous devriez redémarrer le programme.\n"
"Trace:\n"
-#: ../controls/VariablePanel.py:72
+#: ../controls/VariablePanel.py:90
msgid " External"
msgstr " Externe"
-#: ../controls/VariablePanel.py:71
+#: ../controls/VariablePanel.py:89
msgid " InOut"
msgstr " Entrée-Sortie"
-#: ../controls/VariablePanel.py:71
+#: ../controls/VariablePanel.py:89
msgid " Input"
msgstr " Entrée"
-#: ../controls/VariablePanel.py:72
+#: ../controls/VariablePanel.py:90
msgid " Local"
msgstr " Locale"
-#: ../controls/VariablePanel.py:71
+#: ../controls/VariablePanel.py:89
msgid " Output"
msgstr " Sortie"
-#: ../controls/VariablePanel.py:73
+#: ../controls/VariablePanel.py:91
msgid " Temp"
msgstr " Temporaire"
-#: ../dialogs/PouTransitionDialog.py:94 ../dialogs/ProjectDialog.py:69
-#: ../dialogs/PouActionDialog.py:92 ../dialogs/PouDialog.py:114
+#: ../dialogs/PouTransitionDialog.py:101 ../dialogs/ProjectDialog.py:74
+#: ../dialogs/PouActionDialog.py:99 ../dialogs/PouDialog.py:122
#, python-format
msgid " and %s"
msgstr " et %s"
-#: ../ProjectController.py:1151
+#: ../ProjectController.py:1182
msgid " generation failed !\n"
-msgstr "la construction a échouée !\n"
-
-#: ../plcopen/plcopen.py:886
+msgstr "la génération a échouée !\n"
+
+#: ../plcopen/plcopen.py:1029
#, python-format
msgid "\"%s\" Data Type doesn't exist !!!"
msgstr "Le type de donnée \"%s\" n'existe pas !!!"
-#: ../plcopen/plcopen.py:904
+#: ../plcopen/plcopen.py:1047
#, python-format
msgid "\"%s\" POU already exists !!!"
msgstr "Le POU \"%s\" existe déjà !!!"
-#: ../plcopen/plcopen.py:925
+#: ../plcopen/plcopen.py:1068
#, python-format
msgid "\"%s\" POU doesn't exist !!!"
msgstr "Le POU \"%s\" n'existe pas !!!"
-#: ../editors/Viewer.py:247
+#: ../editors/Viewer.py:288
#, python-format
msgid "\"%s\" can't use itself!"
msgstr "\"%s\" ne peut pas s'utiliser lui-même !"
-#: ../IDEFrame.py:1655 ../IDEFrame.py:1674
+#: ../IDEFrame.py:1688 ../IDEFrame.py:1707
#, python-format
msgid "\"%s\" config already exists!"
msgstr "La configuration \"%s\" existe déjà !"
-#: ../plcopen/plcopen.py:472
+#: ../plcopen/plcopen.py:531
#, python-format
msgid "\"%s\" configuration already exists !!!"
msgstr "La configuration \"%s\" existe déjà !!!"
-#: ../IDEFrame.py:1605
+#: ../plcopen/plcopen.py:540
+#, python-format
+msgid "\"%s\" configuration doesn't exist !!!"
+msgstr "La configuration \"%s\" n'existe pas !!!"
+
+#: ../IDEFrame.py:1638
#, python-format
msgid "\"%s\" data type already exists!"
msgstr "Le type de données \"%s\" existe déjà !"
-#: ../dialogs/PouTransitionDialog.py:105 ../dialogs/BlockPreviewDialog.py:220
-#: ../dialogs/PouActionDialog.py:103 ../editors/Viewer.py:263
-#: ../editors/Viewer.py:331 ../editors/Viewer.py:355 ../editors/Viewer.py:375
-#: ../editors/TextViewer.py:272 ../editors/TextViewer.py:301
-#: ../controls/VariablePanel.py:396
+#: ../dialogs/PouTransitionDialog.py:112 ../dialogs/BlockPreviewDialog.py:220
+#: ../dialogs/PouActionDialog.py:110 ../editors/Viewer.py:304
+#: ../editors/Viewer.py:374 ../editors/Viewer.py:398 ../editors/Viewer.py:418
+#: ../editors/TextViewer.py:270 ../editors/TextViewer.py:299
+#: ../controls/VariablePanel.py:425
#, python-format
msgid "\"%s\" element for this pou already exists!"
msgstr "Un élément \"%s\" existe déjà dans ce POU !"
-#: ../BeremizIDE.py:897
+#: ../BeremizIDE.py:928
#, python-format
msgid "\"%s\" folder is not a valid Beremiz project\n"
msgstr "Le dossier \"%s\" ne contient pas de projet Beremiz valide\n"
-#: ../dialogs/SFCStepNameDialog.py:52 ../dialogs/PouTransitionDialog.py:101
-#: ../dialogs/BlockPreviewDialog.py:208 ../dialogs/PouNameDialog.py:50
-#: ../dialogs/PouActionDialog.py:99 ../dialogs/PouDialog.py:121
-#: ../editors/ResourceEditor.py:449 ../editors/ResourceEditor.py:484
-#: ../editors/DataTypeEditor.py:555 ../editors/DataTypeEditor.py:587
-#: ../editors/CodeFileEditor.py:776 ../controls/VariablePanel.py:773
-#: ../IDEFrame.py:1596
+#: ../dialogs/SFCStepNameDialog.py:56 ../dialogs/PouTransitionDialog.py:108
+#: ../dialogs/BlockPreviewDialog.py:209 ../dialogs/PouNameDialog.py:54
+#: ../dialogs/PouActionDialog.py:106 ../dialogs/PouDialog.py:129
+#: ../editors/ResourceEditor.py:483 ../editors/ResourceEditor.py:518
+#: ../editors/DataTypeEditor.py:571 ../editors/DataTypeEditor.py:603
+#: ../editors/CodeFileEditor.py:774 ../controls/VariablePanel.py:787
+#: ../IDEFrame.py:1629
#, python-format
msgid "\"%s\" is a keyword. It can't be used!"
msgstr "\"%s\" est un mot réservé. Il ne peut être utilisé !"
-#: ../plcopen/plcopen.py:2417
+#: ../plcopen/plcopen.py:2836
#, python-format
msgid "\"%s\" is an invalid value!"
msgstr "\"%s\" n'est pas une valeur valide !"
-#: ../PLCOpenEditor.py:349 ../PLCOpenEditor.py:391
+#: ../PLCOpenEditor.py:323 ../PLCOpenEditor.py:365
#, python-format
msgid "\"%s\" is not a valid folder!"
msgstr "\"%s\" n'est pas un répertoire valide !"
-#: ../dialogs/SFCStepNameDialog.py:50 ../dialogs/PouTransitionDialog.py:99
-#: ../dialogs/BlockPreviewDialog.py:204 ../dialogs/PouNameDialog.py:48
-#: ../dialogs/PouActionDialog.py:97 ../dialogs/PouDialog.py:119
-#: ../editors/ResourceEditor.py:447 ../editors/ResourceEditor.py:482
-#: ../editors/DataTypeEditor.py:585 ../editors/CodeFileEditor.py:774
-#: ../controls/VariablePanel.py:771 ../IDEFrame.py:1594
+#: ../dialogs/SFCStepNameDialog.py:54 ../dialogs/PouTransitionDialog.py:106
+#: ../dialogs/BlockPreviewDialog.py:205 ../dialogs/PouNameDialog.py:52
+#: ../dialogs/PouActionDialog.py:104 ../dialogs/PouDialog.py:127
+#: ../editors/ResourceEditor.py:481 ../editors/ResourceEditor.py:516
+#: ../editors/DataTypeEditor.py:601 ../editors/CodeFileEditor.py:772
+#: ../controls/VariablePanel.py:785 ../IDEFrame.py:1627
#, python-format
msgid "\"%s\" is not a valid identifier!"
msgstr "\"%s\" n'est pas un identifiant valide !"
-#: ../IDEFrame.py:2410
+#: ../IDEFrame.py:2436
#, python-format
msgid "\"%s\" is used by one or more POUs. Do you wish to continue?"
msgstr ""
"\"%s\" est utilisé par un POU ou plus. Souhaitez vous continuer malgré tout "
"?"
-#: ../dialogs/BlockPreviewDialog.py:212 ../dialogs/PouDialog.py:123
-#: ../editors/Viewer.py:261 ../editors/Viewer.py:316 ../editors/Viewer.py:346
-#: ../editors/Viewer.py:368 ../editors/TextViewer.py:270
-#: ../editors/TextViewer.py:299 ../editors/TextViewer.py:350
-#: ../editors/TextViewer.py:373 ../controls/VariablePanel.py:338
-#: ../IDEFrame.py:1614
+#: ../dialogs/BlockPreviewDialog.py:213 ../dialogs/PouDialog.py:131
+#: ../editors/Viewer.py:302 ../editors/Viewer.py:359 ../editors/Viewer.py:389
+#: ../editors/Viewer.py:411 ../editors/TextViewer.py:268
+#: ../editors/TextViewer.py:297 ../editors/TextViewer.py:351
+#: ../editors/TextViewer.py:374 ../controls/VariablePanel.py:364
+#: ../IDEFrame.py:1647
#, python-format
msgid "\"%s\" pou already exists!"
msgstr "Le POU \"%s\" existe déjà !"
-#: ../dialogs/SFCStepNameDialog.py:58
+#: ../dialogs/SFCStepNameDialog.py:62
#, python-format
msgid "\"%s\" step already exists!"
msgstr "L'étape \"%s\" existe déjà !"
-#: ../editors/DataTypeEditor.py:550
+#: ../editors/DataTypeEditor.py:566
#, python-format
msgid "\"%s\" value already defined!"
msgstr "La valeur \"%s\" est déjà définie !"
-#: ../dialogs/ArrayTypeDialog.py:97 ../editors/DataTypeEditor.py:743
+#: ../dialogs/ArrayTypeDialog.py:105 ../editors/DataTypeEditor.py:759
#, python-format
msgid "\"%s\" value isn't a valid array dimension!"
msgstr "\"%s\" n'est pas une dimension de tableau valide !"
-#: ../dialogs/ArrayTypeDialog.py:103 ../editors/DataTypeEditor.py:750
+#: ../dialogs/ArrayTypeDialog.py:109 ../editors/DataTypeEditor.py:766
#, python-format
msgid ""
"\"%s\" value isn't a valid array dimension!\n"
@@ -199,200 +202,196 @@
"\"%s\" n'est pas une dimension de tableau valide !\n"
"La valeur de droite doit être supérieur à celle de gauche."
-#: ../PLCGenerator.py:1101
+#: ../PLCGenerator.py:1133
#, python-brace-format
msgid "\"{a1}\" function cancelled in \"{a2}\" POU: No input connected"
msgstr "Fonction \"{a1}\" annulée dans \"{a2}\" POU: Pas d'entrée connectée"
-#: ../editors/Viewer.py:251
+#: ../editors/Viewer.py:292
#, python-brace-format
msgid "\"{a1}\" is already used by \"{a2}\"!"
msgstr "\"{a1}\" est déjà utilisé par \"{a2}\"!"
-#: ../plcopen/plcopen.py:496
+#: ../plcopen/plcopen.py:557
#, python-brace-format
msgid "\"{a1}\" resource already exists in \"{a2}\" configuration !!!"
msgstr "La ressource \"{a1}\" existe déjà dans la configuration \"{a2}\" !"
-#: ../plcopen/plcopen.py:514
+#: ../plcopen/plcopen.py:577
#, python-brace-format
msgid "\"{a1}\" resource doesn't exist in \"{a2}\" configuration !!!"
msgstr "La ressource \"${a1}\" n'existe pas dans la configuration \"{a2}\" !"
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:578
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:580
#, python-format
msgid "%03gms"
msgstr "%03gms"
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:569
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:571
#, python-format
msgid "%dd"
msgstr "%dj"
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:56
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:570
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:61
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:572
#, python-format
msgid "%dh"
msgstr "%dh"
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:55
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:571
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:60
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:573
#, python-format
msgid "%dm"
msgstr "%dm"
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:53
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:58
#, python-format
msgid "%dms"
msgstr "%dms"
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:54
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:572
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:59
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:574
#, python-format
msgid "%ds"
msgstr "%ds"
-#: ../PLCControler.py:1533
+#: ../PLCControler.py:1114
#, python-format
msgid "%s Data Types"
msgstr "Types de données de %s"
-#: ../PLCControler.py:1516
+#: ../PLCControler.py:1097
#, python-format
msgid "%s POUs"
msgstr "POUs de %s"
-#: ../canfestival/SlaveEditor.py:69 ../canfestival/NetworkEditor.py:90
+#: ../canfestival/SlaveEditor.py:73 ../canfestival/NetworkEditor.py:97
#, python-format
msgid "%s Profile"
msgstr "Profil %s"
-#: ../plcopen/plcopen.py:1650 ../plcopen/plcopen.py:1657
-#: ../plcopen/plcopen.py:1669 ../plcopen/plcopen.py:1677
-#: ../plcopen/plcopen.py:1687
+#: ../plcopen/plcopen.py:1901 ../plcopen/plcopen.py:1908
+#: ../plcopen/plcopen.py:1921 ../plcopen/plcopen.py:1929
+#: ../plcopen/plcopen.py:1939 ../plcopen/plcopen.py:1950
#, python-format
msgid "%s body don't have instances!"
msgstr "Le code d'un %s n'a pas d'instances !"
-#: ../plcopen/plcopen.py:1705 ../plcopen/plcopen.py:1712
-#: ../plcopen/plcopen.py:1719
+#: ../plcopen/plcopen.py:1957 ../plcopen/plcopen.py:1964
+#: ../plcopen/plcopen.py:1971
#, python-format
msgid "%s body don't have text!"
msgstr "Le code d'un %s n'a pas de texte !"
-#: ../IDEFrame.py:386
+#: ../IDEFrame.py:388
msgid "&Add Element"
msgstr "&Ajouter un élément"
-#: ../dialogs/AboutDialog.py:73 ../dialogs/AboutDialog.py:121
-#: ../dialogs/AboutDialog.py:158
+#: ../dialogs/AboutDialog.py:71 ../dialogs/AboutDialog.py:117
+#: ../dialogs/AboutDialog.py:152
msgid "&Close"
msgstr "&Close"
-#: ../IDEFrame.py:356
+#: ../IDEFrame.py:361
msgid "&Configuration"
msgstr "&Configuration"
-#: ../IDEFrame.py:345
+#: ../IDEFrame.py:350
msgid "&Data Type"
msgstr "&Type de donnée"
-#: ../IDEFrame.py:390
+#: ../IDEFrame.py:392
msgid "&Delete"
msgstr "&Supprimer"
-#: ../IDEFrame.py:337
+#: ../IDEFrame.py:342
msgid "&Display"
msgstr "&Affichage"
-#: ../IDEFrame.py:336
+#: ../IDEFrame.py:341
msgid "&Edit"
msgstr "&Editer"
-#: ../IDEFrame.py:335
+#: ../IDEFrame.py:340
msgid "&File"
msgstr "&Fichier"
-#: ../IDEFrame.py:347
+#: ../IDEFrame.py:352
msgid "&Function"
msgstr "&Fonction"
-#: ../IDEFrame.py:338
+#: ../IDEFrame.py:343
msgid "&Help"
msgstr "&Aide"
-#: ../dialogs/AboutDialog.py:72
+#: ../dialogs/AboutDialog.py:70
msgid "&License"
msgstr "&License"
-#: ../IDEFrame.py:351
+#: ../IDEFrame.py:356
msgid "&Program"
msgstr "&Programme"
-#: ../PLCOpenEditor.py:127
+#: ../PLCOpenEditor.py:98
msgid "&Properties"
msgstr "&Propriétés"
-#: ../BeremizIDE.py:219
+#: ../BeremizIDE.py:244
msgid "&Recent Projects"
msgstr "Projets &récent"
-#: ../IDEFrame.py:353
+#: ../IDEFrame.py:358
msgid "&Resource"
msgstr "&Ressource"
-#: ../controls/SearchResultPanel.py:239
+#: ../controls/SearchResultPanel.py:247
#, python-brace-format
msgid "'{a1}' - {a2} match in project"
msgstr "'{a1}' - {a2} concordent dans le projet"
-#: ../controls/SearchResultPanel.py:241
+#: ../controls/SearchResultPanel.py:249
#, python-brace-format
msgid "'{a1}' - {a2} matches in project"
msgstr "'{a1}' - {a2} concordent dans le projet"
-#: ../connectors/PYRO/__init__.py:90
+#: ../connectors/PYRO/__init__.py:98
#, python-brace-format
msgid "'{a1}' is located at {a2}\n"
msgstr "'{a1}' est situé dans {a2}\n"
-#: ../controls/SearchResultPanel.py:291
+#: ../controls/SearchResultPanel.py:298
#, python-format
msgid "(%d matches)"
msgstr "(%d correspondances)"
-#: ../PLCOpenEditor.py:406 ../PLCOpenEditor.py:408 ../PLCOpenEditor.py:409
-msgid ", "
-msgstr ", "
-
-#: ../dialogs/PouTransitionDialog.py:96 ../dialogs/PouActionDialog.py:94
-#: ../dialogs/PouDialog.py:116
+#: ../dialogs/PouTransitionDialog.py:103 ../dialogs/PouActionDialog.py:101
+#: ../dialogs/PouDialog.py:124
#, python-format
msgid ", %s"
msgstr ", %s"
-#: ../PLCOpenEditor.py:404
-msgid ". "
-msgstr ". "
-
-#: ../controls/LogViewer.py:279
+#: ../controls/UriLocationEditor.py:49
+msgid "- Select URI type -"
+msgstr "- Sélectionnez le type d'URI -"
+
+#: ../controls/LogViewer.py:287
msgid "1d"
msgstr "1j"
-#: ../controls/LogViewer.py:280
+#: ../controls/LogViewer.py:288
msgid "1h"
msgstr "1h"
-#: ../controls/LogViewer.py:281
+#: ../controls/LogViewer.py:289
msgid "1m"
msgstr "1m"
-#: ../controls/LogViewer.py:282
+#: ../controls/LogViewer.py:290
msgid "1s"
msgstr "1s"
-#: ../dialogs/PouDialog.py:125 ../IDEFrame.py:1617 ../IDEFrame.py:1663
-#: ../IDEFrame.py:1682
+#: ../dialogs/PouDialog.py:133 ../IDEFrame.py:1650 ../IDEFrame.py:1696
+#: ../IDEFrame.py:1715
#, python-format
msgid ""
"A POU has an element named \"%s\". This could cause a conflict. Do you wish "
@@ -401,9 +400,9 @@
"Un POU a un élément nommé \"%s\". Cela peut générer des conflits. Voulez-"
"vous continuer ?"
-#: ../dialogs/SFCStepNameDialog.py:54 ../dialogs/PouTransitionDialog.py:103
-#: ../dialogs/PouNameDialog.py:52 ../dialogs/PouActionDialog.py:101
-#: ../controls/VariablePanel.py:775 ../IDEFrame.py:1631 ../IDEFrame.py:1644
+#: ../dialogs/SFCStepNameDialog.py:58 ../dialogs/PouTransitionDialog.py:110
+#: ../dialogs/PouNameDialog.py:56 ../dialogs/PouActionDialog.py:108
+#: ../controls/VariablePanel.py:789 ../IDEFrame.py:1664 ../IDEFrame.py:1677
#, python-format
msgid "A POU named \"%s\" already exists!"
msgstr "Un POU nommé \"%s\" existe déjà !"
@@ -413,26 +412,26 @@
msgid "A child named \"{a1}\" already exists -> \"{a2}\"\n"
msgstr "Un enfant nommé \"{a1}\" existe déjà -> \"{a2}\"\n"
-#: ../dialogs/BrowseLocationsDialog.py:218
+#: ../dialogs/BrowseLocationsDialog.py:229
msgid "A location must be selected!"
msgstr "Une adresse doit être sélectionné !"
-#: ../editors/ResourceEditor.py:451
+#: ../editors/ResourceEditor.py:485
msgid "A task with the same name already exists!"
msgstr "Une tâche du même nom existe déjà"
-#: ../dialogs/SFCStepNameDialog.py:56 ../controls/VariablePanel.py:777
-#: ../IDEFrame.py:1633 ../IDEFrame.py:1646
+#: ../dialogs/SFCStepNameDialog.py:60 ../controls/VariablePanel.py:791
+#: ../IDEFrame.py:1666 ../IDEFrame.py:1679
#, python-format
msgid "A variable with \"%s\" as name already exists in this pou!"
msgstr "Une variable nommée \"%s\" existe déjà dans ce POU !"
-#: ../editors/CodeFileEditor.py:780
+#: ../editors/CodeFileEditor.py:778
#, python-format
msgid "A variable with \"%s\" as name already exists!"
msgstr "Une variable avec le nom \"%s\" existe déjà !"
-#: ../BeremizIDE.py:283 ../dialogs/AboutDialog.py:48 ../PLCOpenEditor.py:168
+#: ../BeremizIDE.py:311 ../dialogs/AboutDialog.py:46 ../PLCOpenEditor.py:142
msgid "About"
msgstr "A propos"
@@ -440,126 +439,126 @@
msgid "Absolute number"
msgstr "Nombre absolu"
-#: ../dialogs/SFCStepDialog.py:73 ../dialogs/ActionBlockDialog.py:43
+#: ../dialogs/SFCStepDialog.py:75 ../dialogs/ActionBlockDialog.py:47
msgid "Action"
msgstr "Action"
-#: ../editors/Viewer.py:614 ../editors/Viewer.py:2394
+#: ../editors/Viewer.py:653 ../editors/Viewer.py:2427
msgid "Action Block"
msgstr "Ajouter un bloc fonctionnel"
-#: ../dialogs/PouActionDialog.py:82
+#: ../dialogs/PouActionDialog.py:89
msgid "Action Name"
msgstr "Nom de l'action"
-#: ../dialogs/PouActionDialog.py:49
+#: ../dialogs/PouActionDialog.py:56
msgid "Action Name:"
msgstr "Nom de l'action :"
-#: ../plcopen/plcopen.py:1364
+#: ../plcopen/plcopen.py:1567
#, python-format
msgid "Action with name %s doesn't exist!"
msgstr "L'action nommée %s n'existe pas !"
-#: ../PLCControler.py:98
+#: ../plcopen/types_enums.py:76
msgid "Actions"
msgstr "Actions"
-#: ../dialogs/ActionBlockDialog.py:133
+#: ../dialogs/ActionBlockDialog.py:139
msgid "Actions:"
msgstr "Actions :"
-#: ../editors/Viewer.py:431
+#: ../editors/Viewer.py:473
msgid "Active"
msgstr "Actif"
-#: ../canfestival/SlaveEditor.py:80 ../canfestival/NetworkEditor.py:101
-#: ../BeremizIDE.py:965 ../editors/Viewer.py:647
+#: ../canfestival/SlaveEditor.py:84 ../canfestival/NetworkEditor.py:108
+#: ../BeremizIDE.py:1001 ../editors/Viewer.py:686
msgid "Add"
msgstr "Ajouter"
-#: ../IDEFrame.py:1893 ../IDEFrame.py:1928
+#: ../IDEFrame.py:1924 ../IDEFrame.py:1959
msgid "Add Action"
msgstr "Ajouter une action"
-#: ../features.py:32
+#: ../features.py:33
msgid "Add C code accessing located variables synchronously"
msgstr ""
"Ajoute un code C ayant accès à des variables localisées de façon synchrone"
-#: ../IDEFrame.py:1876
+#: ../IDEFrame.py:1907
msgid "Add Configuration"
msgstr "Ajouter une configuration"
-#: ../IDEFrame.py:1856
+#: ../IDEFrame.py:1887
msgid "Add DataType"
msgstr "Ajouter un type de donnée"
-#: ../editors/Viewer.py:572
+#: ../editors/Viewer.py:609
msgid "Add Divergence Branch"
msgstr "Ajouter une branche à la divergence"
-#: ../dialogs/DiscoveryDialog.py:117
+#: ../dialogs/DiscoveryDialog.py:121
msgid "Add IP"
msgstr "Ajouter IP"
-#: ../IDEFrame.py:1864
+#: ../IDEFrame.py:1895
msgid "Add POU"
msgstr "Ajouter un POU"
-#: ../features.py:33
+#: ../features.py:34
msgid "Add Python code executed asynchronously"
msgstr "Ajoute un code Python executé de façon asynchone"
-#: ../IDEFrame.py:1904 ../IDEFrame.py:1954
+#: ../IDEFrame.py:1935 ../IDEFrame.py:1985
msgid "Add Resource"
msgstr "Ajouter une resource"
-#: ../IDEFrame.py:1882 ../IDEFrame.py:1925
+#: ../IDEFrame.py:1913 ../IDEFrame.py:1956
msgid "Add Transition"
msgstr "Ajouter une transition"
-#: ../editors/Viewer.py:559
+#: ../editors/Viewer.py:596
msgid "Add Wire Segment"
msgstr "Ajouter un segment au fil"
-#: ../editors/SFCViewer.py:433
+#: ../editors/SFCViewer.py:447
msgid "Add a new initial step"
msgstr "Ajouter une nouvelle étape initiale"
-#: ../editors/Viewer.py:2757 ../editors/SFCViewer.py:770
+#: ../editors/Viewer.py:2791 ../editors/SFCViewer.py:784
msgid "Add a new jump"
msgstr "Ajouter un nouveau renvoi"
-#: ../editors/SFCViewer.py:455
+#: ../editors/SFCViewer.py:469
msgid "Add a new step"
msgstr "Ajouter une nouvelle étape"
-#: ../features.py:34
+#: ../features.py:35
msgid "Add a simple WxGlade based GUI."
msgstr "Ajoute une interface simple utilisant WxGlade"
-#: ../dialogs/ActionBlockDialog.py:137
+#: ../dialogs/ActionBlockDialog.py:143
msgid "Add action"
msgstr "Ajouter une action"
-#: ../editors/DataTypeEditor.py:352
+#: ../editors/DataTypeEditor.py:364
msgid "Add element"
msgstr "Ajouter un élément"
-#: ../editors/ResourceEditor.py:268
+#: ../editors/ResourceEditor.py:283
msgid "Add instance"
msgstr "Ajouter une instance"
-#: ../canfestival/NetworkEditor.py:103
+#: ../canfestival/NetworkEditor.py:110
msgid "Add slave"
msgstr "Ajouter un esclave"
-#: ../editors/ResourceEditor.py:239
+#: ../editors/ResourceEditor.py:252
msgid "Add task"
msgstr "Ajouter une tâche"
-#: ../editors/CodeFileEditor.py:658 ../controls/VariablePanel.py:450
+#: ../editors/CodeFileEditor.py:654 ../controls/VariablePanel.py:481
msgid "Add variable"
msgstr "Ajouter une variable"
@@ -567,44 +566,44 @@
msgid "Addition"
msgstr "Addition"
-#: ../plcopen/definitions.py:49
+#: ../plcopen/definitions.py:51
msgid "Additional function blocks"
msgstr "Blocs fonctionnels additionnels"
-#: ../editors/Viewer.py:630
+#: ../editors/Viewer.py:669
msgid "Adjust Block Size"
msgstr "Ajuster la taille des blocs"
-#: ../editors/Viewer.py:1686
+#: ../editors/Viewer.py:1720
msgid "Alignment"
msgstr "Alignement"
-#: ../dialogs/BrowseLocationsDialog.py:40
-#: ../dialogs/BrowseLocationsDialog.py:48
-#: ../dialogs/BrowseLocationsDialog.py:141
-#: ../dialogs/BrowseLocationsDialog.py:144 ../controls/LogViewer.py:298
-#: ../controls/VariablePanel.py:70
+#: ../dialogs/BrowseLocationsDialog.py:42
+#: ../dialogs/BrowseLocationsDialog.py:53
+#: ../dialogs/BrowseLocationsDialog.py:152
+#: ../dialogs/BrowseLocationsDialog.py:155 ../controls/LogViewer.py:307
+#: ../controls/VariablePanel.py:88
msgid "All"
msgstr "Tout"
-#: ../editors/FileManagementPanel.py:35
+#: ../editors/FileManagementPanel.py:37
msgid "All files (*.*)|*.*|CSV files (*.csv)|*.csv"
msgstr "Tous les fichiers|*.*|Fichiers CSV (*.csv)|*.csv"
-#: ../ProjectController.py:1685
+#: ../ProjectController.py:1670
msgid "Already connected. Please disconnect\n"
msgstr "Déjà connecté. Veuillez déconnecter\n"
-#: ../editors/DataTypeEditor.py:591
+#: ../editors/DataTypeEditor.py:607
#, python-format
msgid "An element named \"%s\" already exists in this structure!"
msgstr "Un élément nommé \"%s\" existe déjà dans la structure !"
-#: ../editors/ResourceEditor.py:486
+#: ../editors/ResourceEditor.py:520
msgid "An instance with the same name already exists!"
msgstr "Une instance avec le même nom existe déjà !"
-#: ../dialogs/ConnectionDialog.py:100
+#: ../dialogs/ConnectionDialog.py:103
msgid "Apply name modification to all continuations with the same name"
msgstr ""
"Appliquer la modification de nom à toutes les prolongements portant ce même "
@@ -626,8 +625,8 @@
msgid "Arithmetic"
msgstr "Arithmétique"
-#: ../editors/DataTypeEditor.py:54 ../editors/DataTypeEditor.py:633
-#: ../controls/VariablePanel.py:858
+#: ../editors/DataTypeEditor.py:60 ../editors/DataTypeEditor.py:649
+#: ../controls/VariablePanel.py:872
msgid "Array"
msgstr "Tableau"
@@ -635,45 +634,37 @@
msgid "Assignment"
msgstr "Assignation"
-#: ../dialogs/FBDVariableDialog.py:222
+#: ../dialogs/FBDVariableDialog.py:226
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:100
+#: ../controls/ProjectPropertiesPanel.py:111
msgid "Author"
msgstr "Auteur"
-#: ../controls/ProjectPropertiesPanel.py:97
+#: ../controls/ProjectPropertiesPanel.py:108
msgid "Author Name (optional):"
msgstr "Nom de l'auteur (optionel) :"
-#: ../dialogs/FindInPouDialog.py:77
+#: ../dialogs/FindInPouDialog.py:80
msgid "Backward"
msgstr "Vers le haut"
-#: ../util/Zeroconf.py:599
-msgid "Bad domain name (circular) at "
-msgstr "Mauvais nom de domaine (circulaire) à l'adresse"
-
-#: ../util/Zeroconf.py:602
-msgid "Bad domain name at "
-msgstr "Mauvais nom de domaine à l'adresse"
-
-#: ../canfestival/config_utils.py:342 ../canfestival/config_utils.py:630
+#: ../canfestival/config_utils.py:365 ../canfestival/config_utils.py:672
#, python-format
msgid "Bad location size : %s"
msgstr "Mauvaise taille d'adresse : %s"
-#: ../dialogs/ArrayTypeDialog.py:54 ../editors/DataTypeEditor.py:175
-#: ../editors/DataTypeEditor.py:205 ../editors/DataTypeEditor.py:297
+#: ../dialogs/ArrayTypeDialog.py:57 ../editors/DataTypeEditor.py:183
+#: ../editors/DataTypeEditor.py:213 ../editors/DataTypeEditor.py:307
msgid "Base Type:"
msgstr "Type de base :"
-#: ../editors/DataTypeEditor.py:623 ../controls/VariablePanel.py:816
+#: ../editors/DataTypeEditor.py:639 ../controls/VariablePanel.py:830
msgid "Base Types"
msgstr "Types de base"
-#: ../BeremizIDE.py:455
+#: ../BeremizIDE.py:483
msgid "Beremiz"
msgstr "Beremiz"
@@ -705,85 +696,85 @@
msgid "Bitwise inverting"
msgstr "Inversion bit à bit"
-#: ../editors/Viewer.py:584 ../editors/Viewer.py:2407
+#: ../editors/Viewer.py:621 ../editors/Viewer.py:2440
msgid "Block"
msgstr "Block"
-#: ../dialogs/FBDBlockDialog.py:60
+#: ../dialogs/FBDBlockDialog.py:63
msgid "Block Properties"
msgstr "Propriétés du bloc"
-#: ../editors/TextViewer.py:262
+#: ../editors/TextViewer.py:260
msgid "Block name"
msgstr "Nom du bloc"
-#: ../editors/Viewer.py:550
+#: ../editors/Viewer.py:586
msgid "Bottom"
msgstr "Bas"
-#: ../ProjectController.py:1363
+#: ../ProjectController.py:1400
msgid "Broken"
msgstr "Cassé"
-#: ../dialogs/BrowseValuesLibraryDialog.py:38
+#: ../dialogs/BrowseValuesLibraryDialog.py:40
#, python-format
msgid "Browse %s values library"
msgstr "Explorer la liste des valeurs du paramètre '%s'"
-#: ../dialogs/BrowseLocationsDialog.py:65
+#: ../dialogs/BrowseLocationsDialog.py:72
msgid "Browse Locations"
msgstr "Naviger dans les adresses"
-#: ../ProjectController.py:1832
+#: ../ProjectController.py:1815
msgid "Build"
msgstr "Compiler"
-#: ../ProjectController.py:1297
+#: ../ProjectController.py:1335
msgid "Build directory already clean\n"
msgstr "Le répertoire de compilation est déjà nettoyé\n"
-#: ../ProjectController.py:1833
+#: ../ProjectController.py:1816
msgid "Build project into build folder"
msgstr "Compiler le projet dans le répertoire ce compilation"
-#: ../ProjectController.py:1080
+#: ../ProjectController.py:1108
msgid "C Build crashed !\n"
msgstr "La compilation du C a mal fonctionné !\n"
-#: ../ProjectController.py:1077
+#: ../ProjectController.py:1105
msgid "C Build failed.\n"
msgstr "La compilation du C a échouée !\n"
-#: ../c_ext/CFileEditor.py:63
+#: ../c_ext/CFileEditor.py:66
msgid "C code"
msgstr "Code C"
-#: ../ProjectController.py:1155
+#: ../ProjectController.py:1186
msgid "C code generated successfully.\n"
msgstr "Code C généré avec succès.\n"
-#: ../targets/toolchain_makefile.py:122
+#: ../targets/toolchain_makefile.py:126
msgid "C compilation failed.\n"
msgstr "La compilation a échouée\n"
-#: ../targets/toolchain_gcc.py:192
+#: ../targets/toolchain_gcc.py:199
#, python-format
msgid "C compilation of %s failed.\n"
msgstr "La compilation C de %s a échouée.\n"
-#: ../features.py:32
+#: ../features.py:33
msgid "C extension"
msgstr "Extension C"
-#: ../dialogs/AboutDialog.py:71
+#: ../dialogs/AboutDialog.py:69
msgid "C&redits"
msgstr "C&redits"
-#: ../canfestival/NetworkEditor.py:52
+#: ../canfestival/NetworkEditor.py:58
msgid "CANOpen network"
msgstr "Réseau CANOpen"
-#: ../canfestival/SlaveEditor.py:44
+#: ../canfestival/SlaveEditor.py:48
msgid "CANOpen slave"
msgstr "Esclave CANOpen"
@@ -791,36 +782,36 @@
msgid "CANopen support"
msgstr "Support CANopen"
-#: ../plcopen/plcopen.py:1589 ../plcopen/plcopen.py:1603
-#: ../plcopen/plcopen.py:1627 ../plcopen/plcopen.py:1643
+#: ../plcopen/plcopen.py:1839 ../plcopen/plcopen.py:1853
+#: ../plcopen/plcopen.py:1878 ../plcopen/plcopen.py:1894
msgid "Can only generate execution order on FBD networks!"
msgstr "L'ordre d'exécution ne peut être généré que dans les FBD !"
-#: ../controls/VariablePanel.py:267
+#: ../controls/VariablePanel.py:291
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:344
+#: ../PLCOpenEditor.py:318
#, 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:265
+#: ../controls/VariablePanel.py:289
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:389
+#: ../PLCOpenEditor.py:363
#, 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:313
+#: ../controls/VariablePanel.py:339
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:529
+#: ../ConfigTreeNode.py:532
#, python-brace-format
msgid "Cannot create child {a1} of type {a2} "
msgstr "Impossible de créer l'enfant {a1} de type {a2}"
@@ -830,15 +821,15 @@
msgid "Cannot find lower free IEC channel than %d\n"
msgstr "Impossible de trouver un numéro IEC inférieur à %d libre\n"
-#: ../connectors/PYRO/__init__.py:131
+#: ../connectors/PYRO/__init__.py:139
msgid "Cannot get PLC status - connection failed.\n"
msgstr "Impossible d'obtenir le statut de l'automate - la connexion a échoué.\n"
-#: ../ProjectController.py:943
+#: ../ProjectController.py:967
msgid "Cannot open/parse VARIABLES.csv!\n"
msgstr "Impossible d'ouvrir ou d'analyser le fichier VARIABLES.csv !\n"
-#: ../canfestival/config_utils.py:374
+#: ../canfestival/config_utils.py:400
#, python-brace-format
msgid ""
"Cannot set bit offset for non bool '{a1}' variable "
@@ -847,31 +838,37 @@
"Impossible de configurer l'offset du bit de la variable non booléenne '{a1}'"
" (ID:{a2},Idx:{a3},sIdx:{a4}))"
-#: ../dialogs/SearchInProjectDialog.py:59 ../dialogs/FindInPouDialog.py:86
+#: ../ProjectController.py:1761
+msgid "Cannot transfer while PLC is running. Stop it now?"
+msgstr ""
+"Impossible de transférer lorsque l'API est en cours d'exécution. Arrêter "
+"maintenant?"
+
+#: ../dialogs/SearchInProjectDialog.py:63 ../dialogs/FindInPouDialog.py:89
msgid "Case sensitive"
msgstr "Respecter la casse"
-#: ../editors/Viewer.py:545
+#: ../editors/Viewer.py:581
msgid "Center"
msgstr "Centre"
-#: ../Beremiz_service.py:268
+#: ../Beremiz_service.py:276
msgid "Change IP of interface to bind"
msgstr "Changer l'adresse IP de l'interface à lier"
-#: ../Beremiz_service.py:267
+#: ../Beremiz_service.py:275
msgid "Change Name"
msgstr "Changer le nom"
-#: ../IDEFrame.py:1946
+#: ../IDEFrame.py:1977
msgid "Change POU Type To"
msgstr "Changer le type du POU pour"
-#: ../Beremiz_service.py:269
+#: ../Beremiz_service.py:277
msgid "Change Port Number"
msgstr "Changer le numéro de port"
-#: ../Beremiz_service.py:270
+#: ../Beremiz_service.py:278
msgid "Change working directory"
msgstr "Changer le dossier de travail"
@@ -879,118 +876,122 @@
msgid "Character string"
msgstr "Chaîne de caractères"
-#: ../svgui/svgui.py:128
+#: ../svgui/svgui.py:136
msgid "Choose a SVG file"
msgstr "Choisissez un fichier SVG"
-#: ../ProjectController.py:542
+#: ../ProjectController.py:561
msgid "Choose a directory to save project"
msgstr "Choisissez un dossier où enregistrer le projet"
-#: ../canfestival/canfestival.py:162 ../PLCOpenEditor.py:302
-#: ../PLCOpenEditor.py:334 ../PLCOpenEditor.py:383
+#: ../canfestival/canfestival.py:171 ../PLCOpenEditor.py:276
+#: ../PLCOpenEditor.py:308 ../PLCOpenEditor.py:357
msgid "Choose a file"
msgstr "Choisissez un fichier"
-#: ../BeremizIDE.py:833 ../BeremizIDE.py:869
+#: ../BeremizIDE.py:900
msgid "Choose a project"
msgstr "Choisissez un projet"
-#: ../dialogs/BrowseValuesLibraryDialog.py:41
+#: ../dialogs/BrowseValuesLibraryDialog.py:43
#, python-format
msgid "Choose a value for %s:"
msgstr "Choisissez une valeur pour le paramètre %s :"
-#: ../Beremiz_service.py:325
+#: ../Beremiz_service.py:333
msgid "Choose a working directory "
msgstr "Choisissez un dossier de travail"
-#: ../ProjectController.py:449
+#: ../BeremizIDE.py:864
+msgid "Choose an empty directory for new project"
+msgstr "Choisissez un dossier où créer le projet"
+
+#: ../ProjectController.py:468
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:416
+#: ../ProjectController.py:435
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 !"
-#: ../controls/VariablePanel.py:53 ../controls/VariablePanel.py:54
+#: ../controls/VariablePanel.py:60
msgid "Class"
msgstr "Classe"
-#: ../controls/VariablePanel.py:441
+#: ../controls/VariablePanel.py:472
msgid "Class Filter:"
msgstr "Filtre de classe :"
-#: ../dialogs/FBDVariableDialog.py:70
+#: ../dialogs/FBDVariableDialog.py:74
msgid "Class:"
msgstr "Classe :"
-#: ../ProjectController.py:1836
+#: ../ProjectController.py:1821
msgid "Clean"
msgstr "Nettoyer"
-#: ../controls/LogViewer.py:318
+#: ../controls/LogViewer.py:327
msgid "Clean log messages"
msgstr "Nettoyer les messages de log"
-#: ../ProjectController.py:1838
+#: ../ProjectController.py:1822
msgid "Clean project build folder"
msgstr "Nettoyer le répertoire de compilation"
-#: ../ProjectController.py:1294
+#: ../ProjectController.py:1332
msgid "Cleaning the build directory\n"
msgstr "Répertoire de compilation en cours de nettoyage\n"
-#: ../IDEFrame.py:435
+#: ../IDEFrame.py:437
msgid "Clear Errors"
msgstr "Effacer les erreurs"
-#: ../editors/Viewer.py:641
+#: ../editors/Viewer.py:680
msgid "Clear Execution Order"
msgstr "Effacer l'ordre d'exécution"
-#: ../dialogs/SearchInProjectDialog.py:103 ../dialogs/FindInPouDialog.py:109
+#: ../dialogs/SearchInProjectDialog.py:107 ../dialogs/FindInPouDialog.py:112
msgid "Close"
msgstr "Fermer"
-#: ../BeremizIDE.py:595 ../PLCOpenEditor.py:209
+#: ../BeremizIDE.py:627 ../PLCOpenEditor.py:183
msgid "Close Application"
msgstr "Fermer l'application"
-#: ../BeremizIDE.py:228 ../BeremizIDE.py:539 ../PLCOpenEditor.py:110
-#: ../IDEFrame.py:1013
+#: ../BeremizIDE.py:253 ../BeremizIDE.py:566 ../PLCOpenEditor.py:81
+#: ../IDEFrame.py:1040
msgid "Close Project"
msgstr "Fermer le projet"
-#: ../BeremizIDE.py:226 ../PLCOpenEditor.py:108
+#: ../BeremizIDE.py:251 ../PLCOpenEditor.py:79
msgid "Close Tab"
msgstr "Fermer l'onglet"
-#: ../editors/Viewer.py:600 ../editors/Viewer.py:2415
+#: ../editors/Viewer.py:638 ../editors/Viewer.py:2448
msgid "Coil"
msgstr "Relai"
-#: ../editors/Viewer.py:620 ../editors/LDViewer.py:506
+#: ../editors/Viewer.py:659 ../editors/LDViewer.py:517
msgid "Comment"
msgstr "Commentaire"
-#: ../BeremizIDE.py:276 ../BeremizIDE.py:279 ../PLCOpenEditor.py:161
-#: ../PLCOpenEditor.py:164
+#: ../BeremizIDE.py:303 ../BeremizIDE.py:307 ../PLCOpenEditor.py:134
+#: ../PLCOpenEditor.py:138
msgid "Community support"
-msgstr ""
-
-#: ../dialogs/ProjectDialog.py:60
+msgstr "Soutien de la communauté"
+
+#: ../dialogs/ProjectDialog.py:65
msgid "Company Name"
msgstr "Nom de l'entreprise"
-#: ../controls/ProjectPropertiesPanel.py:95
+#: ../controls/ProjectPropertiesPanel.py:106
msgid "Company Name (required):"
msgstr "Nom de l'entreprise (obligatoire) :"
-#: ../controls/ProjectPropertiesPanel.py:96
+#: ../controls/ProjectPropertiesPanel.py:107
msgid "Company URL (optional):"
msgstr "URL de l'entreprise (optionel) :"
@@ -998,7 +999,7 @@
msgid "Comparison"
msgstr "Comparaison"
-#: ../ProjectController.py:734
+#: ../ProjectController.py:756
msgid "Compiling IEC Program into C code...\n"
msgstr "Compilation du program en IEC vers du code C en cours...\n"
@@ -1006,93 +1007,93 @@
msgid "Concatenation"
msgstr "Concaténation"
-#: ../editors/ConfTreeNodeEditor.py:230
+#: ../editors/ConfTreeNodeEditor.py:241
msgid "Config"
msgstr "Configuration"
-#: ../editors/ProjectNodeEditor.py:36
+#: ../editors/ProjectNodeEditor.py:39
msgid "Config variables"
msgstr "Variables de configuration"
-#: ../dialogs/SearchInProjectDialog.py:40
+#: ../dialogs/SearchInProjectDialog.py:43
msgid "Configuration"
msgstr "Configuration"
-#: ../PLCControler.py:99
+#: ../plcopen/types_enums.py:77
msgid "Configurations"
msgstr "Configurations"
-#: ../editors/Viewer.py:308 ../editors/Viewer.py:338 ../editors/Viewer.py:360
-#: ../editors/TextViewer.py:291 ../editors/TextViewer.py:342
-#: ../editors/TextViewer.py:365 ../controls/VariablePanel.py:328
+#: ../editors/Viewer.py:351 ../editors/Viewer.py:381 ../editors/Viewer.py:403
+#: ../editors/TextViewer.py:289 ../editors/TextViewer.py:343
+#: ../editors/TextViewer.py:366 ../controls/VariablePanel.py:354
msgid "Confirm or change variable name"
msgstr "Confirmer ou changer de nom de variable"
-#: ../ProjectController.py:1851
+#: ../ProjectController.py:1842
msgid "Connect"
msgstr "Connecter"
-#: ../ProjectController.py:1852
+#: ../ProjectController.py:1843
msgid "Connect to the target PLC"
msgstr "Connecter à l'automate cible"
-#: ../ProjectController.py:1354
+#: ../ProjectController.py:1391
#, python-format
msgid "Connected to URI: %s"
msgstr "Connecté à l'URI : %s"
-#: ../dialogs/SFCTransitionDialog.py:77 ../editors/Viewer.py:586
-#: ../editors/Viewer.py:2408
+#: ../dialogs/SFCTransitionDialog.py:78 ../editors/Viewer.py:623
+#: ../editors/Viewer.py:2441
msgid "Connection"
msgstr "Connexion"
-#: ../dialogs/ConnectionDialog.py:53
+#: ../dialogs/ConnectionDialog.py:55
msgid "Connection Properties"
msgstr "Propriétés de la connexion"
-#: ../ProjectController.py:1709
+#: ../ProjectController.py:1691
msgid "Connection canceled!\n"
msgstr "La connection a été abandonnée !\n"
-#: ../ProjectController.py:1734
+#: ../ProjectController.py:1714
#, python-format
msgid "Connection failed to %s!\n"
msgstr "La connection à \"%s\" a échouée !\n"
-#: ../connectors/PYRO/__init__.py:115 ../connectors/WAMP/__init__.py:111
+#: ../connectors/PYRO/__init__.py:123 ../connectors/WAMP/__init__.py:120
msgid "Connection lost!\n"
msgstr "Connexion perdu\n"
-#: ../connectors/PYRO/__init__.py:102
+#: ../connectors/PYRO/__init__.py:110
#, python-format
msgid "Connection to '%s' failed.\n"
msgstr "La connexion à l'adresse '%s' a échouée.\n"
-#: ../dialogs/ConnectionDialog.py:65 ../editors/Viewer.py:1643
+#: ../dialogs/ConnectionDialog.py:67 ../editors/Viewer.py:1676
msgid "Connector"
msgstr "Connecteur"
-#: ../dialogs/SFCStepDialog.py:66
+#: ../dialogs/SFCStepDialog.py:68
msgid "Connectors:"
msgstr "Connecteurs :"
-#: ../BeremizIDE.py:350
+#: ../BeremizIDE.py:378
msgid "Console"
msgstr "Console"
-#: ../controls/VariablePanel.py:60
+#: ../controls/VariablePanel.py:75
msgid "Constant"
msgstr "Constante"
-#: ../editors/Viewer.py:596 ../editors/Viewer.py:2411
+#: ../editors/Viewer.py:634 ../editors/Viewer.py:2444
msgid "Contact"
msgstr "Contact"
-#: ../controls/ProjectPropertiesPanel.py:198
+#: ../controls/ProjectPropertiesPanel.py:217
msgid "Content Description (optional):"
msgstr "Description du contenu (optionel) :"
-#: ../dialogs/ConnectionDialog.py:66 ../editors/Viewer.py:1644
+#: ../dialogs/ConnectionDialog.py:68 ../editors/Viewer.py:1677
msgid "Continuation"
msgstr "Prolongement"
@@ -1112,20 +1113,20 @@
msgid "Conversion to time-of-day"
msgstr "Conversion en heure de la journée"
-#: ../editors/Viewer.py:656 ../controls/LogViewer.py:704 ../IDEFrame.py:370
-#: ../IDEFrame.py:425
+#: ../editors/Viewer.py:695 ../controls/LogViewer.py:713 ../IDEFrame.py:372
+#: ../IDEFrame.py:427
msgid "Copy"
msgstr "Copier"
-#: ../IDEFrame.py:1933
+#: ../IDEFrame.py:1964
msgid "Copy POU"
msgstr "Copier ce POU"
-#: ../editors/FileManagementPanel.py:65
+#: ../editors/FileManagementPanel.py:68
msgid "Copy file from left folder to right"
msgstr "Copier un fichier du dossier de gauche vers celui de droite"
-#: ../editors/FileManagementPanel.py:64
+#: ../editors/FileManagementPanel.py:67
msgid "Copy file from right folder to left"
msgstr "Copier un fichier du dossier de droite vers celui de gauche"
@@ -1133,7 +1134,7 @@
msgid "Cosine"
msgstr "Cosinus"
-#: ../ConfigTreeNode.py:656
+#: ../ConfigTreeNode.py:660
#, python-brace-format
msgid ""
"Could not add child \"{a1}\", type {a2} :\n"
@@ -1142,12 +1143,12 @@
"Impossible d'ajouter l'enfant \"{a1}\", de type {a2}:\n"
"{a3}\n"
-#: ../py_ext/PythonFileCTNMixin.py:78
+#: ../py_ext/PythonFileCTNMixin.py:81
#, python-format
msgid "Couldn't import old %s file."
msgstr "Impossible d'importer l'ancien fichier %s"
-#: ../ConfigTreeNode.py:626
+#: ../ConfigTreeNode.py:630
#, python-brace-format
msgid ""
"Couldn't load confnode base parameters {a1} :\n"
@@ -1156,7 +1157,7 @@
"Impossible de charger les parametres de base confnode {a1}:\n"
"{a2}"
-#: ../ConfigTreeNode.py:643 ../CodeFileTreeNode.py:124
+#: ../ConfigTreeNode.py:647 ../CodeFileTreeNode.py:127
#, python-brace-format
msgid ""
"Couldn't load confnode parameters {a1} :\n"
@@ -1165,111 +1166,107 @@
"Impossible de charger les parametres confnode {a1}:\n"
"{a2}"
-#: ../PLCControler.py:948
+#: ../PLCControler.py:552
msgid "Couldn't paste non-POU object."
msgstr "Impossible de coller autre chose qu'un POU."
-#: ../ProjectController.py:1651
+#: ../ProjectController.py:1636
msgid "Couldn't start PLC !\n"
msgstr "Impossible de démarrer l'automate !\n"
-#: ../ProjectController.py:1659
+#: ../ProjectController.py:1644
msgid "Couldn't stop PLC !\n"
msgstr "Impossible d'arrêter l'automate !\n"
-#: ../ProjectController.py:1623
-msgid "Couldn't stop debugger.\n"
-msgstr "Impossible d'arrêter le débogage de l'automate !\n"
-
-#: ../svgui/svgui.py:49
+#: ../svgui/svgui.py:57
msgid "Create HMI"
msgstr "Créer une IHM"
-#: ../dialogs/PouDialog.py:46
+#: ../dialogs/PouDialog.py:54
msgid "Create a new POU"
msgstr "Créer un nouveau POU"
-#: ../dialogs/PouActionDialog.py:38
+#: ../dialogs/PouActionDialog.py:45
msgid "Create a new action"
msgstr "Créer une nouvelle action"
-#: ../IDEFrame.py:159
+#: ../IDEFrame.py:166
msgid "Create a new action block"
msgstr "Créer un nouveau bloc d'actions"
-#: ../IDEFrame.py:108 ../IDEFrame.py:138 ../IDEFrame.py:171
+#: ../IDEFrame.py:115 ../IDEFrame.py:145 ../IDEFrame.py:178
msgid "Create a new block"
msgstr "Créer un nouveau bloc"
-#: ../IDEFrame.py:132
+#: ../IDEFrame.py:139
msgid "Create a new branch"
msgstr "Créer une nouvelle branche"
-#: ../IDEFrame.py:126
+#: ../IDEFrame.py:133
msgid "Create a new coil"
msgstr "Créer un nouveau relai"
-#: ../IDEFrame.py:102 ../IDEFrame.py:117 ../IDEFrame.py:147
+#: ../IDEFrame.py:109 ../IDEFrame.py:124 ../IDEFrame.py:154
msgid "Create a new comment"
msgstr "Créer un nouveau copmmentaire"
-#: ../IDEFrame.py:111 ../IDEFrame.py:141 ../IDEFrame.py:174
+#: ../IDEFrame.py:118 ../IDEFrame.py:148 ../IDEFrame.py:181
msgid "Create a new connection"
msgstr "Créer une nouvelle connexion"
-#: ../IDEFrame.py:129 ../IDEFrame.py:180
+#: ../IDEFrame.py:136 ../IDEFrame.py:187
msgid "Create a new contact"
msgstr "Créer un nouveau contact"
-#: ../IDEFrame.py:162
+#: ../IDEFrame.py:169
msgid "Create a new divergence"
msgstr "Créer une nouvelle divergence"
-#: ../dialogs/SFCDivergenceDialog.py:53
+#: ../dialogs/SFCDivergenceDialog.py:54
msgid "Create a new divergence or convergence"
msgstr "Créer une nouvelle divergence ou convergence"
-#: ../IDEFrame.py:150
+#: ../IDEFrame.py:157
msgid "Create a new initial step"
msgstr "Créer une nouvelle étape initiale"
-#: ../IDEFrame.py:165
+#: ../IDEFrame.py:172
msgid "Create a new jump"
msgstr "Créer un nouveau renvoi"
-#: ../IDEFrame.py:120 ../IDEFrame.py:177
+#: ../IDEFrame.py:127 ../IDEFrame.py:184
msgid "Create a new power rail"
msgstr "Créer une nouvelle barre d'alimentation"
-#: ../IDEFrame.py:123
+#: ../IDEFrame.py:130
msgid "Create a new rung"
msgstr "Créer un nouvel échelon"
-#: ../IDEFrame.py:153
+#: ../IDEFrame.py:160
msgid "Create a new step"
msgstr "Créer une nouvelle étape"
-#: ../dialogs/PouTransitionDialog.py:42 ../IDEFrame.py:156
+#: ../dialogs/PouTransitionDialog.py:49 ../IDEFrame.py:163
msgid "Create a new transition"
msgstr "Créer une nouvelle transition"
-#: ../IDEFrame.py:105 ../IDEFrame.py:135 ../IDEFrame.py:168
+#: ../IDEFrame.py:112 ../IDEFrame.py:142 ../IDEFrame.py:175
msgid "Create a new variable"
msgstr "Créer une nouvelle variable"
-#: ../dialogs/AboutDialog.py:113
+#: ../dialogs/AboutDialog.py:109
msgid "Credits"
msgstr "Credits"
-#: ../Beremiz_service.py:434
+#: ../Beremiz_service.py:424
msgid "Current working directory :"
msgstr "Répertoire de travail actuel :"
-#: ../editors/Viewer.py:655 ../IDEFrame.py:368 ../IDEFrame.py:424
+#: ../editors/Viewer.py:694 ../IDEFrame.py:370 ../IDEFrame.py:426
msgid "Cut"
msgstr "Couper"
-#: ../editors/ResourceEditor.py:72
+#: ../editors/ResourceEditor.py:81
msgid "Cyclic"
msgstr "Périodique"
@@ -1281,19 +1278,19 @@
msgid "DEPRECATED"
msgstr "OBSOLETE"
-#: ../canfestival/SlaveEditor.py:76 ../canfestival/NetworkEditor.py:97
+#: ../canfestival/SlaveEditor.py:80 ../canfestival/NetworkEditor.py:104
msgid "DS-301 Profile"
msgstr "Profil DS-301"
-#: ../canfestival/SlaveEditor.py:77 ../canfestival/NetworkEditor.py:98
+#: ../canfestival/SlaveEditor.py:81 ../canfestival/NetworkEditor.py:105
msgid "DS-302 Profile"
msgstr "Profil DS-302"
-#: ../dialogs/SearchInProjectDialog.py:36
+#: ../dialogs/SearchInProjectDialog.py:39
msgid "Data Type"
msgstr "Type de donnée"
-#: ../PLCControler.py:98
+#: ../plcopen/types_enums.py:76
msgid "Data Types"
msgstr "Types de données"
@@ -1314,68 +1311,60 @@
msgid "Date subtraction"
msgstr "Soustraction de date"
-#: ../dialogs/DurationEditorDialog.py:44
+#: ../dialogs/DurationEditorDialog.py:46
msgid "Days:"
msgstr "Jours :"
-#: ../ProjectController.py:1756
+#: ../ProjectController.py:1729
msgid "Debug does not match PLC - stop/transfert/start to re-enable\n"
msgstr ""
"Les informations de débogage ne correspond pas l'automate connecté - "
"Arrêter/transférez/démarrer pour pouvoir débogguer.\n"
-#: ../controls/PouInstanceVariablesPanel.py:134
+#: ../controls/PouInstanceVariablesPanel.py:144
msgid "Debug instance"
msgstr "Déboguer l'instance"
-#: ../editors/Viewer.py:448
+#: ../editors/Viewer.py:490
#, python-format
msgid "Debug: %s"
msgstr "Débogage : %s"
-#: ../ProjectController.py:1412
+#: ../ProjectController.py:1471
#, python-format
msgid "Debug: Unknown variable '%s'\n"
msgstr "Débogage : Variable '%s' inconnue\n"
-#: ../ProjectController.py:1410
+#: ../ProjectController.py:1469
#, python-format
msgid "Debug: Unsupported type to debug '%s'\n"
msgstr "Débogage : Type non supporté dans le débogage '%'\n"
-#: ../IDEFrame.py:639
+#: ../IDEFrame.py:660
msgid "Debugger"
msgstr "Déboggueur"
-#: ../ProjectController.py:1592
-msgid "Debugger disabled\n"
-msgstr "Débogueur désactivé\n"
-
-#: ../ProjectController.py:1753
+#: ../ProjectController.py:1726
msgid "Debugger ready\n"
msgstr "Débogueur \n"
-#: ../ProjectController.py:1625
-msgid "Debugger stopped.\n"
-msgstr "Débogueur désactivé\n"
-
-#: ../BeremizIDE.py:968 ../editors/Viewer.py:631 ../IDEFrame.py:1962
+#: ../BeremizIDE.py:1004 ../editors/Viewer.py:670 ../IDEFrame.py:1993
msgid "Delete"
msgstr "Supprimer"
-#: ../editors/Viewer.py:573
+#: ../editors/Viewer.py:610
msgid "Delete Divergence Branch"
msgstr "Supprimer une branche de divergence"
-#: ../editors/FileManagementPanel.py:153
+#: ../editors/FileManagementPanel.py:157
msgid "Delete File"
msgstr "Supprimer un fichier"
-#: ../editors/Viewer.py:560
+#: ../editors/Viewer.py:597
msgid "Delete Wire Segment"
msgstr "Supprimer un segment de fil"
-#: ../controls/CustomEditableListBox.py:41
+#: ../controls/CustomEditableListBox.py:44
msgid "Delete item"
msgstr "Supprimer un élément"
@@ -1383,47 +1372,47 @@
msgid "Deletion (within)"
msgstr "Suppression (au milieu)"
-#: ../editors/DataTypeEditor.py:153
+#: ../editors/DataTypeEditor.py:161
msgid "Derivation Type:"
msgstr "Type de dérivation :"
-#: ../editors/CodeFileEditor.py:739
+#: ../editors/CodeFileEditor.py:735
msgid "Description"
-msgstr ""
-
-#: ../controls/VariablePanel.py:432
+msgstr "Description"
+
+#: ../controls/VariablePanel.py:463
msgid "Description:"
msgstr "Description :"
-#: ../dialogs/ArrayTypeDialog.py:60 ../editors/DataTypeEditor.py:321
+#: ../dialogs/ArrayTypeDialog.py:63 ../editors/DataTypeEditor.py:332
msgid "Dimensions:"
msgstr "Dimensions :"
-#: ../dialogs/FindInPouDialog.py:66
+#: ../dialogs/FindInPouDialog.py:69
msgid "Direction"
msgstr "Direction"
-#: ../dialogs/BrowseLocationsDialog.py:91
+#: ../dialogs/BrowseLocationsDialog.py:102
msgid "Direction:"
msgstr "Direction :"
-#: ../editors/DataTypeEditor.py:54
+#: ../editors/DataTypeEditor.py:60
msgid "Directly"
msgstr "Direct"
-#: ../ProjectController.py:1860
+#: ../ProjectController.py:1855
msgid "Disconnect"
msgstr "Déconnecter"
-#: ../ProjectController.py:1862
+#: ../ProjectController.py:1856
msgid "Disconnect from PLC"
msgstr "Déconnecter l'automate"
-#: ../ProjectController.py:1364
+#: ../ProjectController.py:1401
msgid "Disconnected"
msgstr "Déconnecté"
-#: ../editors/Viewer.py:615 ../editors/Viewer.py:2403
+#: ../editors/Viewer.py:654 ../editors/Viewer.py:2436
msgid "Divergence"
msgstr "Divergence"
@@ -1431,120 +1420,120 @@
msgid "Division"
msgstr "Division"
-#: ../editors/FileManagementPanel.py:152
+#: ../editors/FileManagementPanel.py:156
#, python-format
msgid "Do you really want to delete the file '%s'?"
msgstr "Êtes-vous sûr de vouloir supprimer le fichier '%s' ?"
-#: ../controls/VariablePanel.py:53 ../controls/VariablePanel.py:54
+#: ../controls/VariablePanel.py:65
msgid "Documentation"
msgstr "Documentation"
-#: ../PLCOpenEditor.py:338
+#: ../PLCOpenEditor.py:312
msgid "Done"
msgstr "Terminé"
-#: ../dialogs/ActionBlockDialog.py:39
+#: ../dialogs/ActionBlockDialog.py:42
msgid "Duration"
msgstr "Durée"
-#: ../canfestival/canfestival.py:165
+#: ../canfestival/canfestival.py:174
msgid "EDS files (*.eds)|*.eds|All files|*.*"
msgstr "Fichiers EDS (*.eds)|*.eds|Tous les fichiers|*.*"
-#: ../editors/Viewer.py:629
+#: ../editors/Viewer.py:668
msgid "Edit Block"
msgstr "Editer le block"
-#: ../dialogs/LDElementDialog.py:56
+#: ../dialogs/LDElementDialog.py:58
msgid "Edit Coil Values"
msgstr "Editer les valeurs du relai"
-#: ../dialogs/LDElementDialog.py:54
+#: ../dialogs/LDElementDialog.py:56
msgid "Edit Contact Values"
msgstr "Editer les valeurs du contact"
-#: ../dialogs/DurationEditorDialog.py:59
+#: ../dialogs/DurationEditorDialog.py:62
msgid "Edit Duration"
msgstr "Editer une durée"
-#: ../dialogs/SFCStepDialog.py:51
+#: ../dialogs/SFCStepDialog.py:53
msgid "Edit Step"
msgstr "Editer l'étape"
-#: ../wxglade_hmi/wxglade_hmi.py:38
+#: ../wxglade_hmi/wxglade_hmi.py:45
msgid "Edit a WxWidgets GUI with WXGlade"
msgstr "Editer une IHM WxWidgets à l'aide de WXGlade"
-#: ../dialogs/ActionBlockDialog.py:121
+#: ../dialogs/ActionBlockDialog.py:127
msgid "Edit action block properties"
msgstr "Editer les propriétés du block d'actions"
-#: ../dialogs/ArrayTypeDialog.py:44
+#: ../dialogs/ArrayTypeDialog.py:47
msgid "Edit array type properties"
msgstr "Editer les propriétés d'un type de données tableau"
-#: ../editors/Viewer.py:2626 ../editors/Viewer.py:3055
+#: ../editors/Viewer.py:2660 ../editors/Viewer.py:3102
msgid "Edit comment"
msgstr "Editer le commentaire"
-#: ../editors/FileManagementPanel.py:66
+#: ../editors/FileManagementPanel.py:69
msgid "Edit file"
msgstr "Editer un fichier"
-#: ../controls/CustomEditableListBox.py:39
+#: ../controls/CustomEditableListBox.py:42
msgid "Edit item"
msgstr "Editer l'élément"
-#: ../editors/Viewer.py:3014
+#: ../editors/Viewer.py:3059
msgid "Edit jump target"
msgstr "Editer la cible du renvoi"
-#: ../ProjectController.py:1874
+#: ../ProjectController.py:1873
msgid "Edit raw IEC code added to code generated by PLCGenerator"
msgstr "Editer le code IEC ajouté au code généré par PLCGenerator"
-#: ../editors/SFCViewer.py:799
+#: ../editors/SFCViewer.py:815
msgid "Edit step name"
msgstr "Editer le nom de l'étape"
-#: ../dialogs/SFCTransitionDialog.py:52
+#: ../dialogs/SFCTransitionDialog.py:53
msgid "Edit transition"
msgstr "Editer la transition"
-#: ../IDEFrame.py:611
+#: ../IDEFrame.py:632
msgid "Editor ToolBar"
msgstr "Barre d'outils d'édition"
-#: ../ProjectController.py:1257
+#: ../ProjectController.py:1294
msgid "Editor selection"
msgstr "Selection d'un éditeur"
-#: ../editors/DataTypeEditor.py:348
+#: ../editors/DataTypeEditor.py:360
msgid "Elements :"
msgstr "Eléments :"
-#: ../ProjectController.py:1362
+#: ../ProjectController.py:1399
msgid "Empty"
msgstr "Vide"
-#: ../IDEFrame.py:365
-msgid "Enable Undo/Redo"
-msgstr "Activer Défaire/Refaire"
-
-#: ../Beremiz_service.py:333
+#: ../dialogs/ArrayTypeDialog.py:100
+msgid "Empty dimension isn't allowed."
+msgstr "Dimension ne peut être vide."
+
+#: ../Beremiz_service.py:341
msgid "Enter a name "
msgstr "Saisissez un nom"
-#: ../Beremiz_service.py:318
+#: ../Beremiz_service.py:326
msgid "Enter a port number "
msgstr "Saisissez un numéro de port"
-#: ../Beremiz_service.py:309
+#: ../Beremiz_service.py:317
msgid "Enter the IP of the interface to bind"
msgstr "Saisissez l'adresse IP de l'interface à lier"
-#: ../editors/DataTypeEditor.py:54
+#: ../editors/DataTypeEditor.py:60
msgid "Enumerated"
msgstr "Enumération"
@@ -1552,37 +1541,36 @@
msgid "Equal to"
msgstr "Egal à"
-#: ../BeremizIDE.py:1107 ../dialogs/ForceVariableDialog.py:197
-#: ../dialogs/SearchInProjectDialog.py:168 ../dialogs/SFCStepNameDialog.py:60
-#: ../dialogs/DurationEditorDialog.py:121
-#: ../dialogs/DurationEditorDialog.py:167
-#: ../dialogs/PouTransitionDialog.py:107 ../dialogs/BlockPreviewDialog.py:237
-#: ../dialogs/ProjectDialog.py:74 ../dialogs/ArrayTypeDialog.py:97
-#: ../dialogs/ArrayTypeDialog.py:103 ../dialogs/PouNameDialog.py:54
-#: ../dialogs/BrowseLocationsDialog.py:218
-#: ../dialogs/BrowseValuesLibraryDialog.py:83
-#: ../dialogs/PouActionDialog.py:105 ../dialogs/PouDialog.py:135
-#: ../PLCOpenEditor.py:345 ../PLCOpenEditor.py:350 ../PLCOpenEditor.py:430
-#: ../PLCOpenEditor.py:440 ../editors/ResourceEditor.py:436
-#: ../editors/Viewer.py:424 ../editors/LDViewer.py:666
-#: ../editors/LDViewer.py:882 ../editors/LDViewer.py:886
-#: ../editors/DataTypeEditor.py:550 ../editors/DataTypeEditor.py:555
-#: ../editors/DataTypeEditor.py:574 ../editors/DataTypeEditor.py:743
-#: ../editors/DataTypeEditor.py:750 ../editors/TextViewer.py:389
-#: ../editors/CodeFileEditor.py:762 ../ProjectController.py:372
-#: ../ProjectController.py:512 ../ProjectController.py:519
-#: ../controls/FolderTree.py:217
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:166
-#: ../controls/DebugVariablePanel/DebugVariableTextViewer.py:137
-#: ../controls/DebugVariablePanel/DebugVariableGraphicViewer.py:231
-#: ../controls/VariablePanel.py:402 ../controls/VariablePanel.py:759
-#: ../IDEFrame.py:1007 ../IDEFrame.py:1617 ../IDEFrame.py:1658
-#: ../IDEFrame.py:1663 ../IDEFrame.py:1677 ../IDEFrame.py:1682
-#: ../Beremiz_service.py:213
+#: ../dialogs/ForceVariableDialog.py:213
+#: ../dialogs/SearchInProjectDialog.py:172 ../dialogs/SFCStepNameDialog.py:64
+#: ../dialogs/DurationEditorDialog.py:124
+#: ../dialogs/DurationEditorDialog.py:170
+#: ../dialogs/PouTransitionDialog.py:114 ../dialogs/BlockPreviewDialog.py:237
+#: ../dialogs/ProjectDialog.py:80 ../dialogs/ArrayTypeDialog.py:114
+#: ../dialogs/PouNameDialog.py:58 ../dialogs/BrowseLocationsDialog.py:229
+#: ../dialogs/BrowseValuesLibraryDialog.py:87
+#: ../dialogs/PouActionDialog.py:112 ../dialogs/PouDialog.py:143
+#: ../PLCOpenEditor.py:319 ../PLCOpenEditor.py:324
+#: ../editors/ResourceEditor.py:470 ../editors/Viewer.py:467
+#: ../editors/LDViewer.py:677 ../editors/LDViewer.py:893
+#: ../editors/LDViewer.py:897 ../editors/DataTypeEditor.py:566
+#: ../editors/DataTypeEditor.py:571 ../editors/DataTypeEditor.py:590
+#: ../editors/DataTypeEditor.py:759 ../editors/DataTypeEditor.py:766
+#: ../editors/TextViewer.py:390 ../editors/CodeFileEditor.py:760
+#: ../ProjectController.py:391 ../ProjectController.py:531
+#: ../ProjectController.py:538 ../controls/FolderTree.py:222
+#: ../controls/ProjectPropertiesPanel.py:306
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:173
+#: ../controls/DebugVariablePanel/DebugVariableTextViewer.py:138
+#: ../controls/DebugVariablePanel/DebugVariableGraphicViewer.py:227
+#: ../controls/VariablePanel.py:431 ../controls/VariablePanel.py:773
+#: ../util/ExceptionHandler.py:70 ../IDEFrame.py:1036 ../IDEFrame.py:1650
+#: ../IDEFrame.py:1691 ../IDEFrame.py:1696 ../IDEFrame.py:1710
+#: ../IDEFrame.py:1715 ../Beremiz_service.py:221
msgid "Error"
msgstr "Erreur"
-#: ../ProjectController.py:789
+#: ../ProjectController.py:811
msgid ""
"Error : At least one configuration and one resource must be declared in PLC "
"!\n"
@@ -1590,12 +1578,12 @@
"Erreur : Au moins une configuration ou une ressource doit être déclarée dans"
" l'automate !\n"
-#: ../ProjectController.py:781
+#: ../ProjectController.py:803
#, 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:712
+#: ../ProjectController.py:731
#, python-format
msgid ""
"Error in ST/IL/SFC code generator :\n"
@@ -1604,37 +1592,46 @@
"Erreur dans le générateur de code ST/IL/SFC :\n"
"%s\n"
-#: ../ConfigTreeNode.py:216
+#: ../ConfigTreeNode.py:219
#, python-format
msgid "Error while saving \"%s\"\n"
msgstr "Erreur lors de l'enregistrement de \"%s\"\n"
-#: ../canfestival/canfestival.py:170
+#: ../canfestival/canfestival.py:179
msgid "Error: Export slave failed\n"
msgstr "Erreur : L'export de l'esclave a échoué\n"
-#: ../canfestival/canfestival.py:371
+#: ../modbus/modbus.py:601
+#, python-brace-format
+msgid ""
+"Error: Modbus/IP Servers %{a1}.x and %{a2}.x use the same port number "
+"{a3}.\n"
+msgstr ""
+"Erreur: Les serveurs Modbus/IP %{a1}.x et %{a2}.x utilisent le même numéro "
+"de port {a3}.\n"
+
+#: ../canfestival/canfestival.py:388
msgid "Error: No Master generated\n"
msgstr "Erreur : Aucun maître généré\n"
-#: ../canfestival/canfestival.py:366
+#: ../canfestival/canfestival.py:383
msgid "Error: No PLC built\n"
msgstr "Erreur : Aucun automate compilé\n"
-#: ../ProjectController.py:1728
+#: ../ProjectController.py:1708
#, python-format
msgid "Exception while connecting %s!\n"
msgstr "Une exception est apparu au cours de la connexion %s !\n"
-#: ../dialogs/FBDBlockDialog.py:120
+#: ../dialogs/FBDBlockDialog.py:123
msgid "Execution Control:"
msgstr "Contrôle d'exécution :"
-#: ../dialogs/FBDVariableDialog.py:80 ../dialogs/FBDBlockDialog.py:108
+#: ../dialogs/FBDVariableDialog.py:84 ../dialogs/FBDBlockDialog.py:111
msgid "Execution Order:"
msgstr "Ordre d'exécution :"
-#: ../features.py:35
+#: ../features.py:36
msgid "Experimental web based HMI"
msgstr "IHM expérimentale utilisant les technologies web"
@@ -1646,77 +1643,77 @@
msgid "Exponentiation"
msgstr "Exponentiel"
-#: ../canfestival/canfestival.py:176
+#: ../canfestival/canfestival.py:186
msgid "Export CanOpen slave to EDS file"
msgstr "Exporter un esclave CANopen sous la forme d'un fichier EDS"
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:243
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:246
msgid "Export graph values to clipboard"
msgstr "Exporter les valeurs du graphique vers le presse-papier"
-#: ../canfestival/canfestival.py:175
+#: ../canfestival/canfestival.py:185
msgid "Export slave"
msgstr "Exporter un esclave"
-#: ../dialogs/FBDVariableDialog.py:90
+#: ../dialogs/FBDVariableDialog.py:94
msgid "Expression:"
msgstr "Expression :"
-#: ../controls/VariablePanel.py:72
+#: ../controls/VariablePanel.py:90
msgid "External"
msgstr "Externe"
-#: ../ProjectController.py:802
+#: ../ProjectController.py:826
msgid "Extracting Located Variables...\n"
msgstr "Extraction des variables adressées en cours...\n"
-#: ../dialogs/PouTransitionDialog.py:36 ../dialogs/PouActionDialog.py:32
-#: ../dialogs/PouDialog.py:37 ../controls/ProjectPropertiesPanel.py:144
+#: ../dialogs/PouTransitionDialog.py:40 ../dialogs/PouActionDialog.py:36
+#: ../dialogs/PouDialog.py:44 ../controls/ProjectPropertiesPanel.py:158
msgid "FBD"
msgstr "FBD"
-#: ../ProjectController.py:1791
+#: ../ProjectController.py:1773
msgid "Failed : Must build before transfer.\n"
msgstr "Echec : Le projet doit être compilé avant d'être transféré.\n"
-#: ../dialogs/LDElementDialog.py:77 ../editors/Viewer.py:521
+#: ../dialogs/LDElementDialog.py:80 ../editors/Viewer.py:556
msgid "Falling Edge"
msgstr "Front descendant"
-#: ../ProjectController.py:1070
+#: ../ProjectController.py:1098
msgid "Fatal : cannot get builder.\n"
msgstr "Erreur fatale : impossible de trouver un compilateur.\n"
-#: ../Beremiz.py:156
+#: ../Beremiz.py:160
#, python-format
msgid "Fetching %s"
msgstr "Recherche %s"
-#: ../dialogs/DurationEditorDialog.py:164
+#: ../dialogs/DurationEditorDialog.py:167
#, python-format
msgid "Field %s hasn't a valid value!"
msgstr "Le champ %s n'a pas une valeur valide !"
-#: ../dialogs/DurationEditorDialog.py:166
+#: ../dialogs/DurationEditorDialog.py:169
#, python-format
msgid "Fields %s haven't a valid value!"
msgstr "Les champs %s n'ont pas une valeur valide !"
-#: ../controls/FolderTree.py:216
+#: ../controls/FolderTree.py:221
#, python-format
msgid "File '%s' already exists!"
msgstr "Le fichier '%s' existe déjà !"
-#: ../dialogs/SearchInProjectDialog.py:98 ../dialogs/FindInPouDialog.py:37
-#: ../dialogs/FindInPouDialog.py:104 ../IDEFrame.py:375
+#: ../dialogs/SearchInProjectDialog.py:102 ../dialogs/FindInPouDialog.py:40
+#: ../dialogs/FindInPouDialog.py:107 ../IDEFrame.py:377
msgid "Find"
msgstr "Rechercher"
-#: ../IDEFrame.py:377
+#: ../IDEFrame.py:379
msgid "Find Next"
msgstr "Recherche suivante"
-#: ../IDEFrame.py:379
+#: ../IDEFrame.py:381
msgid "Find Previous"
msgstr "Recherche précédente"
@@ -1724,94 +1721,90 @@
msgid "Find position"
msgstr "Trouver la position"
-#: ../dialogs/FindInPouDialog.py:55
+#: ../dialogs/FindInPouDialog.py:58
msgid "Find:"
msgstr "Rechercher :"
-#: ../connectors/PYRO/__init__.py:163
-msgid "Force runtime reload\n"
-msgstr "Redémarrage du runtime forcé\n"
-
-#: ../editors/Viewer.py:1600
+#: ../editors/Viewer.py:1633
msgid "Force value"
msgstr "Forcer la valeur"
-#: ../dialogs/ForceVariableDialog.py:162
+#: ../dialogs/ForceVariableDialog.py:176
msgid "Forcing Variable Value"
msgstr "Forcer la valeur de la variable"
-#: ../dialogs/SFCTransitionDialog.py:182 ../dialogs/PouTransitionDialog.py:97
-#: ../dialogs/ProjectDialog.py:73 ../dialogs/PouActionDialog.py:95
-#: ../dialogs/PouDialog.py:117
+#: ../dialogs/SFCTransitionDialog.py:184 ../dialogs/PouTransitionDialog.py:104
+#: ../dialogs/ProjectDialog.py:79 ../dialogs/PouActionDialog.py:102
+#: ../dialogs/PouDialog.py:125
#, python-format
msgid "Form isn't complete. %s must be filled!"
msgstr "Le formulaire est incomplet. %s doit être complété !"
-#: ../dialogs/SFCStepDialog.py:147 ../dialogs/FBDBlockDialog.py:236
-#: ../dialogs/ConnectionDialog.py:163
+#: ../dialogs/SFCStepDialog.py:150 ../dialogs/FBDBlockDialog.py:239
+#: ../dialogs/ConnectionDialog.py:166
msgid "Form isn't complete. Name must be filled!"
msgstr "Le formulaire est incomplet. Le nom doit être complété !"
-#: ../dialogs/FBDBlockDialog.py:232
+#: ../dialogs/FBDBlockDialog.py:235
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:72
+#: ../dialogs/FindInPouDialog.py:75
msgid "Forward"
msgstr "Vers le bas"
-#: ../dialogs/SearchInProjectDialog.py:37 ../IDEFrame.py:1749
+#: ../dialogs/SearchInProjectDialog.py:40 ../IDEFrame.py:1780
msgid "Function"
msgstr "Fonction"
-#: ../IDEFrame.py:349
+#: ../IDEFrame.py:354
msgid "Function &Block"
msgstr "&Bloc Fonctionnel"
-#: ../dialogs/SearchInProjectDialog.py:38 ../IDEFrame.py:1748
-#: ../IDEFrame.py:1941
+#: ../dialogs/SearchInProjectDialog.py:41 ../IDEFrame.py:1779
+#: ../IDEFrame.py:1972
msgid "Function Block"
msgstr "Bloc fonctionnel"
-#: ../controls/VariablePanel.py:854
+#: ../controls/VariablePanel.py:868
msgid "Function Block Types"
msgstr "Types de blocs fonctionnels"
-#: ../PLCControler.py:97
+#: ../plcopen/types_enums.py:75
msgid "Function Blocks"
msgstr "Blocs fonctionnels"
-#: ../editors/Viewer.py:249
+#: ../editors/Viewer.py:290
msgid "Function Blocks can't be used in Functions!"
msgstr "Les blocs fonctionnels ne peuvent être utilisés dans des functions !"
-#: ../PLCControler.py:2343
+#: ../PLCControler.py:1907
#, 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:97
+#: ../plcopen/types_enums.py:75
msgid "Functions"
msgstr "Fonctions"
-#: ../PLCOpenEditor.py:117
+#: ../PLCOpenEditor.py:88
msgid "Generate Program"
msgstr "Générer le program"
-#: ../ProjectController.py:703
+#: ../ProjectController.py:722
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"
-#: ../controls/VariablePanel.py:73
+#: ../controls/VariablePanel.py:91
msgid "Global"
msgstr "Globale"
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:242
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:245
msgid "Go to current value"
msgstr "Aller à la valeur actuelle"
-#: ../controls/ProjectPropertiesPanel.py:174
+#: ../controls/ProjectPropertiesPanel.py:189
msgid "Graphics"
msgstr "Graphiques"
@@ -1823,110 +1816,116 @@
msgid "Greater than or equal to"
msgstr "Supérieur ou égal à"
-#: ../controls/ProjectPropertiesPanel.py:135
+#: ../controls/ProjectPropertiesPanel.py:149
msgid "Grid Resolution:"
msgstr "Résolution de la grille :"
-#: ../runtime/NevowServer.py:182
+#: ../runtime/NevowServer.py:192
msgid "HTTP interface port :"
msgstr "Port d'interface HTTP:"
-#: ../controls/ProjectPropertiesPanel.py:121
+#: ../controls/ProjectPropertiesPanel.py:135
msgid "Height:"
msgstr "Hauteur :"
-#: ../editors/FileManagementPanel.py:85
+#: ../editors/FileManagementPanel.py:89
msgid "Home Directory:"
msgstr "Répertoire utilisateur :"
-#: ../controls/ProjectPropertiesPanel.py:151
+#: ../controls/ProjectPropertiesPanel.py:165
msgid "Horizontal:"
msgstr "Horizontal :"
-#: ../dialogs/DurationEditorDialog.py:45
+#: ../dialogs/DurationEditorDialog.py:47
msgid "Hours:"
msgstr "Heures :"
-#: ../dialogs/PouTransitionDialog.py:36 ../dialogs/PouActionDialog.py:32
-#: ../dialogs/PouDialog.py:37
+#: ../dialogs/PouTransitionDialog.py:40 ../dialogs/PouActionDialog.py:36
+#: ../dialogs/PouDialog.py:44
msgid "IL"
msgstr "IL"
-#: ../dialogs/DiscoveryDialog.py:94
+#: ../dialogs/DiscoveryDialog.py:91
msgid "IP"
msgstr "IP"
-#: ../Beremiz_service.py:310 ../Beremiz_service.py:311
+#: ../Beremiz_service.py:318 ../Beremiz_service.py:320
msgid "IP is not valid!"
msgstr "l'IP est invalide !"
-#: ../svgui/svgui.py:44 ../svgui/svgui.py:45
+#: ../svgui/svgui.py:50 ../svgui/svgui.py:51
msgid "Import SVG"
msgstr "Importer un SVG"
-#: ../dialogs/FBDVariableDialog.py:39 ../editors/Viewer.py:1629
-#: ../controls/VariablePanel.py:71
+#: ../dialogs/FBDVariableDialog.py:41 ../editors/Viewer.py:1662
+#: ../controls/VariablePanel.py:89
msgid "InOut"
msgstr "Entrée-Sortie"
-#: ../editors/Viewer.py:431
+#: ../PLCGenerator.py:1040
+#, python-brace-format
+msgid "InOut variable {a1} in block {a2} in POU {a3} must be connected."
+msgstr ""
+"La variable InOut {a1} dans le bloc {a2} dans le POU {a3} doit être "
+"connectée."
+
+#: ../editors/Viewer.py:473
msgid "Inactive"
msgstr "Inactif"
-#: ../controls/VariablePanel.py:276
+#: ../controls/VariablePanel.py:300
#, python-brace-format
msgid "Incompatible data types between \"{a1}\" and \"{a2}\""
msgstr "Type de données incompatible entre \"{a1}\" et \"{a2}\""
-#: ../controls/VariablePanel.py:282
+#: ../controls/VariablePanel.py:306
#, python-format
msgid "Incompatible size of data between \"%s\" and \"BOOL\""
msgstr "Taille de donnée incompatible entre \"%s\" et \"BOOL\""
-#: ../controls/VariablePanel.py:286
+#: ../controls/VariablePanel.py:310
#, python-brace-format
msgid "Incompatible size of data between \"{a1}\" and \"{a2}\""
msgstr "Taille de données incompatible entre \"{a1}\" et \"{a2}\""
-#: ../dialogs/ActionBlockDialog.py:39
+#: ../dialogs/ActionBlockDialog.py:42
msgid "Indicator"
msgstr "Indicateur"
-#: ../editors/CodeFileEditor.py:739
+#: ../editors/CodeFileEditor.py:734
msgid "Initial"
-msgstr ""
-
-#: ../editors/Viewer.py:611
+msgstr "Initiale"
+
+#: ../editors/Viewer.py:650
msgid "Initial Step"
msgstr "Étape initiale"
-#: ../editors/DataTypeEditor.py:50 ../controls/VariablePanel.py:53
-#: ../controls/VariablePanel.py:54
+#: ../editors/DataTypeEditor.py:55 ../controls/VariablePanel.py:63
msgid "Initial Value"
msgstr "Valeur initiale"
-#: ../editors/DataTypeEditor.py:185 ../editors/DataTypeEditor.py:216
-#: ../editors/DataTypeEditor.py:272 ../editors/DataTypeEditor.py:310
+#: ../editors/DataTypeEditor.py:193 ../editors/DataTypeEditor.py:224
+#: ../editors/DataTypeEditor.py:281 ../editors/DataTypeEditor.py:320
msgid "Initial Value:"
msgstr "Valeur initiale :"
-#: ../svgui/svgui.py:48
+#: ../svgui/svgui.py:56
msgid "Inkscape"
msgstr "Inkscape"
-#: ../dialogs/SFCTransitionDialog.py:76 ../dialogs/ActionBlockDialog.py:43
+#: ../dialogs/SFCTransitionDialog.py:77 ../dialogs/ActionBlockDialog.py:47
msgid "Inline"
msgstr "Inline"
-#: ../dialogs/SFCStepDialog.py:71 ../dialogs/FBDVariableDialog.py:38
-#: ../dialogs/BrowseLocationsDialog.py:41 ../editors/Viewer.py:290
-#: ../editors/Viewer.py:1627 ../editors/TextViewer.py:307
-#: ../controls/LocationCellEditor.py:98 ../controls/VariablePanel.py:71
-#: ../controls/VariablePanel.py:291 ../controls/VariablePanel.py:351
+#: ../dialogs/SFCStepDialog.py:73 ../dialogs/FBDVariableDialog.py:40
+#: ../dialogs/BrowseLocationsDialog.py:43 ../editors/Viewer.py:333
+#: ../editors/Viewer.py:1660 ../editors/TextViewer.py:307
+#: ../controls/LocationCellEditor.py:103 ../controls/VariablePanel.py:89
+#: ../controls/VariablePanel.py:317 ../controls/VariablePanel.py:380
msgid "Input"
msgstr "Entrée"
-#: ../dialogs/FBDBlockDialog.py:96
+#: ../dialogs/FBDBlockDialog.py:99
msgid "Inputs:"
msgstr "Entrées :"
@@ -1934,64 +1933,72 @@
msgid "Insertion (into)"
msgstr "Insertion (au milieu)"
-#: ../plcopen/plcopen.py:1696
+#: ../plcopen/plcopen.py:1948
#, python-format
msgid "Instance with id %d doesn't exist!"
msgstr "L'instance dont l'id est %d n'existe pas !"
-#: ../editors/ResourceEditor.py:264
+#: ../editors/ResourceEditor.py:279
msgid "Instances:"
msgstr "Instances :"
-#: ../controls/VariablePanel.py:70
+#: ../controls/VariablePanel.py:88
msgid "Interface"
msgstr "Interface"
-#: ../editors/ResourceEditor.py:72
+#: ../editors/ResourceEditor.py:81
msgid "Interrupt"
msgstr "Interruption"
-#: ../editors/ResourceEditor.py:68
+#: ../editors/ResourceEditor.py:76
msgid "Interval"
msgstr "Interval"
-#: ../PLCControler.py:2331
+#: ../controls/ProjectPropertiesPanel.py:304
+msgid ""
+"Invalid URL!\n"
+"Please enter correct URL address."
+msgstr ""
+"URL invalide!\n"
+"Veuillez entrer une adresse URL correcte"
+
+#: ../PLCControler.py:1895
msgid "Invalid plcopen element(s)!!!"
msgstr "Les éléments plcopen ne sont pas valides !!! "
-#: ../canfestival/config_utils.py:381
+#: ../canfestival/config_utils.py:407
#, python-brace-format
-msgid "Invalid type \"{a1}\"-> {a2} != {a3} for location\"{a4}\""
+msgid "Invalid type \"{a1}\"-> {a2} != {a3} for location \"{a4}\""
msgstr "Type invalide \"{a1}\"-> {a2} != {a3} pour \"{a4}\""
-#: ../canfestival/config_utils.py:645
+#: ../canfestival/config_utils.py:689
#, python-brace-format
msgid "Invalid type \"{a1}\"-> {a2} != {a3} for location \"{a4}\""
msgstr "Type invalide \"{a1}\"-> {a2} != {a3} pour \"{a4}\""
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:132
-#: ../controls/DebugVariablePanel/DebugVariableTextViewer.py:92
-#: ../controls/DebugVariablePanel/DebugVariableGraphicViewer.py:166
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:139
+#: ../controls/DebugVariablePanel/DebugVariableTextViewer.py:93
+#: ../controls/DebugVariablePanel/DebugVariableGraphicViewer.py:162
#, python-format
msgid "Invalid value \"%s\" for debug variable"
msgstr "Chemin de variable à déboguer \"%s\" invalide"
-#: ../controls/VariablePanel.py:255 ../controls/VariablePanel.py:258
+#: ../controls/VariablePanel.py:279 ../controls/VariablePanel.py:282
#, python-format
msgid "Invalid value \"%s\" for variable grid element"
msgstr "Valeur \"%s\" invalide pour un élément de la grille de variables"
-#: ../editors/Viewer.py:234 ../editors/Viewer.py:237
+#: ../editors/Viewer.py:276 ../editors/Viewer.py:279
#, python-format
msgid "Invalid value \"%s\" for viewer block"
msgstr "Valeur \"%s\" invalide pour un élément graphique"
-#: ../dialogs/ForceVariableDialog.py:195
+#: ../dialogs/ForceVariableDialog.py:211
#, python-brace-format
msgid "Invalid value \"{a1}\" for \"{a2}\" variable!"
msgstr "Valeur invalide \"{a1}\" pour la variable \"{a2}\""
-#: ../dialogs/DurationEditorDialog.py:121
+#: ../dialogs/DurationEditorDialog.py:124
msgid ""
"Invalid value!\n"
"You must fill a numeric value."
@@ -1999,51 +2006,55 @@
"Valeur invalide !\n"
"Vous devez rentrer une valeur numérique."
-#: ../editors/Viewer.py:616 ../editors/Viewer.py:2392
+#: ../connectors/WAMP/dialog.py:38
+msgid "Is connection secure?"
+msgstr ""
+
+#: ../editors/Viewer.py:655 ../editors/Viewer.py:2425
msgid "Jump"
msgstr "Renvoi"
-#: ../dialogs/PouTransitionDialog.py:36 ../dialogs/PouActionDialog.py:32
-#: ../dialogs/PouDialog.py:37 ../controls/ProjectPropertiesPanel.py:144
+#: ../dialogs/PouTransitionDialog.py:40 ../dialogs/PouActionDialog.py:36
+#: ../dialogs/PouDialog.py:44 ../controls/ProjectPropertiesPanel.py:158
msgid "LD"
msgstr "LD"
-#: ../editors/LDViewer.py:215 ../editors/LDViewer.py:231
+#: ../editors/LDViewer.py:221 ../editors/LDViewer.py:240
#, python-format
msgid "Ladder element with id %d is on more than one rung."
msgstr "L'élément de LD dont l'id est %d apparait dans plusieurs échelons. "
-#: ../dialogs/PouTransitionDialog.py:86 ../dialogs/PouActionDialog.py:84
-#: ../dialogs/PouDialog.py:105
+#: ../dialogs/PouTransitionDialog.py:93 ../dialogs/PouActionDialog.py:91
+#: ../dialogs/PouDialog.py:113
msgid "Language"
msgstr "Langue"
-#: ../controls/ProjectPropertiesPanel.py:187
+#: ../controls/ProjectPropertiesPanel.py:206
msgid "Language (optional):"
msgstr "Langue (optionnel) :"
-#: ../dialogs/PouTransitionDialog.py:60 ../dialogs/PouActionDialog.py:56
-#: ../dialogs/PouDialog.py:73
+#: ../dialogs/PouTransitionDialog.py:67 ../dialogs/PouActionDialog.py:63
+#: ../dialogs/PouDialog.py:81
msgid "Language:"
msgstr "Langue :"
-#: ../ProjectController.py:1797
+#: ../ProjectController.py:1779
msgid "Latest build already matches current target. Transfering anyway...\n"
msgstr "La dernière compilation correspond à la cible actuelle...\n"
-#: ../Beremiz_service.py:273
+#: ../Beremiz_service.py:281
msgid "Launch WX GUI inspector"
msgstr "Lancer un inspecteur d'IHM WX"
-#: ../Beremiz_service.py:272
+#: ../Beremiz_service.py:280
msgid "Launch a live Python shell"
msgstr "Lancer une console Python"
-#: ../editors/Viewer.py:544
+#: ../editors/Viewer.py:580
msgid "Left"
msgstr "Gauche"
-#: ../dialogs/LDPowerRailDialog.py:63
+#: ../dialogs/LDPowerRailDialog.py:64
msgid "Left PowerRail"
msgstr "Barre d'alimentation à gauche"
@@ -2059,11 +2070,11 @@
msgid "Less than or equal to"
msgstr "Inférieur ou égal à"
-#: ../IDEFrame.py:631
+#: ../IDEFrame.py:652
msgid "Library"
msgstr "Librairie"
-#: ../dialogs/AboutDialog.py:151
+#: ../dialogs/AboutDialog.py:145
msgid "License"
msgstr "Licence"
@@ -2071,27 +2082,27 @@
msgid "Limitation"
msgstr "Limitation"
-#: ../targets/toolchain_gcc.py:202
+#: ../targets/toolchain_gcc.py:209
msgid "Linking :\n"
msgstr "Linkage :\n"
-#: ../dialogs/DiscoveryDialog.py:112 ../controls/VariablePanel.py:72
+#: ../dialogs/DiscoveryDialog.py:115 ../controls/VariablePanel.py:90
msgid "Local"
msgstr "Locale"
-#: ../canfestival/canfestival.py:348
+#: ../canfestival/canfestival.py:359
msgid "Local entries"
msgstr "Entrées locales"
-#: ../ProjectController.py:1703
+#: ../ProjectController.py:1685
msgid "Local service discovery failed!\n"
msgstr "Echec de la sélection d'un service!\n"
-#: ../controls/VariablePanel.py:53
+#: ../controls/VariablePanel.py:62
msgid "Location"
msgstr "Adresse"
-#: ../dialogs/BrowseLocationsDialog.py:72
+#: ../dialogs/BrowseLocationsDialog.py:79
msgid "Locations available:"
msgstr "Adresses disponibles :"
@@ -2099,12 +2110,12 @@
msgid "Logarithm to base 10"
msgstr "Logarithme de base 10"
-#: ../connectors/PYRO/__init__.py:94
+#: ../connectors/PYRO/__init__.py:102
#, python-format
msgid "MDNS resolution failure for '%s'\n"
msgstr "Echec de la résolution MDNS pour '%s'\n"
-#: ../canfestival/SlaveEditor.py:64 ../canfestival/NetworkEditor.py:85
+#: ../canfestival/SlaveEditor.py:68 ../canfestival/NetworkEditor.py:92
msgid "Map Variable"
msgstr "Variable mappable"
@@ -2112,11 +2123,15 @@
msgid "Map located variables over CANopen"
msgstr "Mappe des variables localisées sur un bus CANopen"
-#: ../canfestival/NetworkEditor.py:106
+#: ../features.py:32
+msgid "Map located variables over Modbus"
+msgstr ""
+
+#: ../canfestival/NetworkEditor.py:113
msgid "Master"
msgstr "Maître"
-#: ../ConfigTreeNode.py:539
+#: ../ConfigTreeNode.py:544
#, python-brace-format
msgid "Max count ({a1}) reached for this confnode of type {a2} "
msgstr ""
@@ -2126,29 +2141,29 @@
msgid "Maximum"
msgstr "Maximum"
-#: ../editors/DataTypeEditor.py:239
+#: ../editors/DataTypeEditor.py:246
msgid "Maximum:"
msgstr "Maximum :"
-#: ../dialogs/BrowseLocationsDialog.py:43 ../editors/Viewer.py:290
-#: ../editors/TextViewer.py:307 ../controls/LocationCellEditor.py:98
-#: ../controls/VariablePanel.py:291 ../controls/VariablePanel.py:351
+#: ../dialogs/BrowseLocationsDialog.py:45 ../editors/Viewer.py:333
+#: ../editors/TextViewer.py:307 ../controls/LocationCellEditor.py:103
+#: ../controls/VariablePanel.py:317 ../controls/VariablePanel.py:380
msgid "Memory"
msgstr "Mémoire"
-#: ../IDEFrame.py:599
+#: ../IDEFrame.py:617
msgid "Menu ToolBar"
msgstr "Barre d'outils du menu principal"
-#: ../dialogs/DurationEditorDialog.py:49
+#: ../dialogs/DurationEditorDialog.py:51
msgid "Microseconds:"
msgstr "Microsecondes :"
-#: ../editors/Viewer.py:549
+#: ../editors/Viewer.py:585
msgid "Middle"
msgstr "Milieu"
-#: ../dialogs/DurationEditorDialog.py:48
+#: ../dialogs/DurationEditorDialog.py:50
msgid "Milliseconds:"
msgstr "Millisecondes :"
@@ -2156,23 +2171,27 @@
msgid "Minimum"
msgstr "Minimum"
-#: ../editors/DataTypeEditor.py:226
+#: ../editors/DataTypeEditor.py:233
msgid "Minimum:"
msgstr "Minimum :"
-#: ../dialogs/DurationEditorDialog.py:46
+#: ../dialogs/DurationEditorDialog.py:48
msgid "Minutes:"
msgstr "Minutes :"
-#: ../controls/ProjectPropertiesPanel.py:211
+#: ../controls/ProjectPropertiesPanel.py:231
msgid "Miscellaneous"
msgstr "Divers"
-#: ../dialogs/LDElementDialog.py:63
+#: ../features.py:32
+msgid "Modbus support"
+msgstr ""
+
+#: ../dialogs/LDElementDialog.py:65
msgid "Modifier:"
msgstr "Modificateur :"
-#: ../PLCGenerator.py:786 ../PLCGenerator.py:1230
+#: ../PLCGenerator.py:795 ../PLCGenerator.py:1269
#, python-brace-format
msgid ""
"More than one connector found corresponding to \"{a1}\" continuation in "
@@ -2181,55 +2200,55 @@
"Plus d'un connecteur correspondant à \"{a1}\" trouvé dans la continuité de "
"\"{a2}\" POU"
-#: ../dialogs/ActionBlockDialog.py:140
+#: ../dialogs/ActionBlockDialog.py:146
msgid "Move action down"
msgstr "Déplacer une action vers le bas"
-#: ../dialogs/ActionBlockDialog.py:139
+#: ../dialogs/ActionBlockDialog.py:145
msgid "Move action up"
msgstr "Déplacer une action vers le haut"
-#: ../controls/CustomEditableListBox.py:43
+#: ../controls/CustomEditableListBox.py:46
msgid "Move down"
msgstr "Déplacer vers le haut"
-#: ../editors/DataTypeEditor.py:355
+#: ../editors/DataTypeEditor.py:367
msgid "Move element down"
msgstr "Déplcer un élément vers le bas"
-#: ../editors/DataTypeEditor.py:354
+#: ../editors/DataTypeEditor.py:366
msgid "Move element up"
msgstr "Déplacer un élément vers le haut"
-#: ../editors/ResourceEditor.py:271
+#: ../editors/ResourceEditor.py:286
msgid "Move instance down"
msgstr "Déplacer une instance vers le bas"
-#: ../editors/ResourceEditor.py:270
+#: ../editors/ResourceEditor.py:285
msgid "Move instance up"
msgstr "Déplacer une instance vers le haut"
-#: ../editors/ResourceEditor.py:242
+#: ../editors/ResourceEditor.py:255
msgid "Move task down"
msgstr "Déplcer une tâche vers le bas"
-#: ../editors/ResourceEditor.py:241
+#: ../editors/ResourceEditor.py:254
msgid "Move task up"
msgstr "Déplacer une tâche vers le haut"
-#: ../IDEFrame.py:99 ../IDEFrame.py:114 ../IDEFrame.py:144 ../IDEFrame.py:185
+#: ../IDEFrame.py:106 ../IDEFrame.py:121 ../IDEFrame.py:151 ../IDEFrame.py:192
msgid "Move the view"
msgstr "Déplacer la vue"
-#: ../controls/CustomEditableListBox.py:42
+#: ../controls/CustomEditableListBox.py:45
msgid "Move up"
msgstr "Déplacer vers le bas"
-#: ../editors/CodeFileEditor.py:661 ../controls/VariablePanel.py:453
+#: ../editors/CodeFileEditor.py:657 ../controls/VariablePanel.py:484
msgid "Move variable down"
msgstr "Déplacer une variable vers le bas"
-#: ../editors/CodeFileEditor.py:660 ../controls/VariablePanel.py:452
+#: ../editors/CodeFileEditor.py:656 ../controls/VariablePanel.py:483
msgid "Move variable up"
msgstr "Déplacer une variable vers le haut"
@@ -2241,26 +2260,26 @@
msgid "Multiplication"
msgstr "Multiplication"
-#: ../editors/FileManagementPanel.py:83
+#: ../editors/FileManagementPanel.py:87
msgid "My Computer:"
msgstr "Poste de travail :"
-#: ../dialogs/DiscoveryDialog.py:92
+#: ../dialogs/DiscoveryDialog.py:89
msgid "NAME"
msgstr "NOM"
-#: ../editors/ResourceEditor.py:68 ../editors/ResourceEditor.py:83
-#: ../editors/DataTypeEditor.py:50 ../editors/CodeFileEditor.py:739
-#: ../controls/VariablePanel.py:53 ../controls/VariablePanel.py:54
+#: ../editors/ResourceEditor.py:76 ../editors/ResourceEditor.py:97
+#: ../editors/DataTypeEditor.py:55 ../editors/CodeFileEditor.py:732
+#: ../controls/VariablePanel.py:59
msgid "Name"
msgstr "Nom"
-#: ../Beremiz_service.py:334
+#: ../Beremiz_service.py:342
msgid "Name must not be null!"
msgstr "Le nom ne doit pas être vide !"
-#: ../dialogs/SFCStepDialog.py:57 ../dialogs/FBDBlockDialog.py:86
-#: ../dialogs/ConnectionDialog.py:76
+#: ../dialogs/SFCStepDialog.py:59 ../dialogs/FBDBlockDialog.py:89
+#: ../dialogs/ConnectionDialog.py:78
msgid "Name:"
msgstr "Nom :"
@@ -2268,46 +2287,46 @@
msgid "Natural logarithm"
msgstr "Logarithme népérien"
-#: ../dialogs/LDElementDialog.py:75 ../editors/Viewer.py:519
+#: ../dialogs/LDElementDialog.py:78 ../editors/Viewer.py:554
msgid "Negated"
msgstr "Inversé"
-#: ../Beremiz_service.py:580
+#: ../Beremiz_service.py:610
msgid "Nevow Web service failed. "
msgstr "Service Web Nevow échoué."
-#: ../Beremiz_service.py:556
+#: ../Beremiz_service.py:580
msgid "Nevow/Athena import failed :"
msgstr "Import Nevow/Athena échoué:"
-#: ../BeremizIDE.py:216 ../BeremizIDE.py:251 ../PLCOpenEditor.py:104
-#: ../PLCOpenEditor.py:146
+#: ../BeremizIDE.py:241 ../BeremizIDE.py:276 ../PLCOpenEditor.py:75
+#: ../PLCOpenEditor.py:117
msgid "New"
msgstr "Nouveau"
-#: ../controls/CustomEditableListBox.py:40
+#: ../controls/CustomEditableListBox.py:43
msgid "New item"
msgstr "Nouvel élément"
-#: ../editors/Viewer.py:518
+#: ../editors/Viewer.py:553
msgid "No Modifier"
msgstr "Pas de modificateur"
-#: ../ProjectController.py:1826
+#: ../ProjectController.py:1808
msgid "No PLC to transfer (did build succeed ?)\n"
msgstr "Aucun automate à transférer (la compilation a-t-elle réussi ?)\n"
-#: ../PLCGenerator.py:1631
+#: ../PLCGenerator.py:1678
#, python-format
msgid "No body defined in \"%s\" POU"
msgstr "Pas de code défini dans le POU \"%s\""
-#: ../PLCGenerator.py:806 ../PLCGenerator.py:1241
+#: ../PLCGenerator.py:816 ../PLCGenerator.py:1281
#, python-brace-format
msgid "No connector found corresponding to \"{a1}\" continuation in \"{a2}\" POU"
msgstr "Pas de connecteur correspondant à \"{a1}\" dans la continuité de \"{a2}\" POU"
-#: ../PLCOpenEditor.py:357
+#: ../PLCOpenEditor.py:331
msgid ""
"No documentation available.\n"
"Coming soon."
@@ -2315,12 +2334,12 @@
"Pas de documentation.\n"
"Bientôt disponible."
-#: ../PLCGenerator.py:829
+#: ../PLCGenerator.py:841
#, python-format
msgid "No informations found for \"%s\" block"
msgstr "Aucune information trouvée pour le block \"%s\""
-#: ../PLCGenerator.py:1194
+#: ../PLCGenerator.py:1232
#, python-brace-format
msgid ""
"No output {a1} variable found in block {a2} in POU {a3}. Connection must be "
@@ -2329,49 +2348,49 @@
"Pas de variable de sortie {a1} trouvée dans le bloc {a2} dans POU {a3}. La "
"connection doit-être cassée"
-#: ../controls/SearchResultPanel.py:169
+#: ../controls/SearchResultPanel.py:175
msgid "No search results available."
msgstr "Pas de résultat de recherche disponible."
-#: ../svgui/svgui.py:134
+#: ../svgui/svgui.py:142
#, python-format
msgid "No such SVG file: %s\n"
msgstr "Fichier SVG inconnu : %s\n"
-#: ../canfestival/config_utils.py:639
+#: ../canfestival/config_utils.py:682
#, python-brace-format
msgid "No such index/subindex ({a1},{a2}) (variable {a3})"
msgstr "Pas de tel index/sous-index ({a1},{a2}) (variable {a3})"
-#: ../canfestival/config_utils.py:362
+#: ../canfestival/config_utils.py:387
#, python-brace-format
msgid "No such index/subindex ({a1},{a2}) in ID : {a3} (variable {a4})"
msgstr ""
"Pas de tel index/sous-index ({a1},{a2}) avec l'ID : {a3} (variable {a4})"
-#: ../dialogs/BrowseValuesLibraryDialog.py:83
+#: ../dialogs/BrowseValuesLibraryDialog.py:87
msgid "No valid value selected!"
msgstr "Aucune valeur valide sélectionnée !"
-#: ../PLCGenerator.py:1629
+#: ../PLCGenerator.py:1676
#, python-format
msgid "No variable defined in \"%s\" POU"
msgstr "Pas de varaibles définies dans le POU \"%s\""
-#: ../canfestival/config_utils.py:355
+#: ../canfestival/config_utils.py:379
#, python-brace-format
msgid "Non existing node ID : {a1} (variable {a2})"
msgstr "Node ID inexistant : {a1} (variable {a2})"
-#: ../controls/VariablePanel.py:64
+#: ../controls/VariablePanel.py:79
msgid "Non-Retain"
msgstr "Non-Persistante"
-#: ../dialogs/LDElementDialog.py:75
+#: ../dialogs/LDElementDialog.py:78
msgid "Normal"
msgstr "Normal"
-#: ../canfestival/config_utils.py:389
+#: ../canfestival/config_utils.py:426
#, python-brace-format
msgid "Not PDO mappable variable : '{a1}' (ID:{a2},Idx:{a3},sIdx:{a4}))"
msgstr "Variable non mappable PDO : '{a1}' (ID:{a2},Idx:{a3},sIdx:{a4}))"
@@ -2380,7 +2399,7 @@
msgid "Not equal to"
msgstr "Non égal à"
-#: ../dialogs/SFCDivergenceDialog.py:89
+#: ../dialogs/SFCDivergenceDialog.py:91
msgid "Number of sequences:"
msgstr "Nombre de branches :"
@@ -2388,24 +2407,24 @@
msgid "Numerical"
msgstr "Numérique"
-#: ../editors/CodeFileEditor.py:739
+#: ../editors/CodeFileEditor.py:736
msgid "OnChange"
-msgstr ""
-
-#: ../dialogs/SearchInProjectDialog.py:84
+msgstr "OnChange"
+
+#: ../dialogs/SearchInProjectDialog.py:88
msgid "Only Elements"
msgstr "Uniquement les éléments"
-#: ../BeremizIDE.py:218 ../BeremizIDE.py:252 ../PLCOpenEditor.py:106
-#: ../PLCOpenEditor.py:147
+#: ../BeremizIDE.py:243 ../BeremizIDE.py:277 ../PLCOpenEditor.py:77
+#: ../PLCOpenEditor.py:118
msgid "Open"
msgstr "Ouvrir"
-#: ../svgui/svgui.py:143
+#: ../svgui/svgui.py:151
msgid "Open Inkscape"
msgstr "Ouverture de Inkscape"
-#: ../version.py:77
+#: ../version.py:86
msgid ""
"Open Source framework for automation, implemented IEC 61131 IDE with "
"constantly growing set of extensions and flexible PLC runtime."
@@ -2413,67 +2432,67 @@
"Cadriciel Open Source pour l'automatisme, IDE implémenté en IEC 61131 avec "
"un lot d'extensions constament croissant et un executable PLC flexible."
-#: ../ProjectController.py:1878
+#: ../ProjectController.py:1879
msgid "Open a file explorer to manage project files"
msgstr "Ouvrir un explorateur de fichier pour gérer les fichiers de projet"
-#: ../wxglade_hmi/wxglade_hmi.py:155
+#: ../wxglade_hmi/wxglade_hmi.py:161
msgid "Open wxGlade"
msgstr "Ouverture de wxGlade"
-#: ../controls/VariablePanel.py:53 ../controls/VariablePanel.py:54
+#: ../controls/VariablePanel.py:64
msgid "Option"
msgstr "Option"
-#: ../dialogs/FindInPouDialog.py:81 ../editors/CodeFileEditor.py:739
+#: ../dialogs/FindInPouDialog.py:84 ../editors/CodeFileEditor.py:737
msgid "Options"
msgstr "Options"
-#: ../controls/ProjectPropertiesPanel.py:98
+#: ../controls/ProjectPropertiesPanel.py:109
msgid "Organization (optional):"
msgstr "Groupe (optionnel) :"
-#: ../canfestival/SlaveEditor.py:74 ../canfestival/NetworkEditor.py:95
+#: ../canfestival/SlaveEditor.py:78 ../canfestival/NetworkEditor.py:102
msgid "Other Profile"
msgstr "Autre profil"
-#: ../dialogs/SFCStepDialog.py:72 ../dialogs/FBDVariableDialog.py:40
-#: ../dialogs/BrowseLocationsDialog.py:42 ../editors/Viewer.py:290
-#: ../editors/Viewer.py:1628 ../editors/TextViewer.py:307
-#: ../controls/LocationCellEditor.py:98 ../controls/VariablePanel.py:71
-#: ../controls/VariablePanel.py:291 ../controls/VariablePanel.py:351
+#: ../dialogs/SFCStepDialog.py:74 ../dialogs/FBDVariableDialog.py:42
+#: ../dialogs/BrowseLocationsDialog.py:44 ../editors/Viewer.py:333
+#: ../editors/Viewer.py:1661 ../editors/TextViewer.py:307
+#: ../controls/LocationCellEditor.py:103 ../controls/VariablePanel.py:89
+#: ../controls/VariablePanel.py:317 ../controls/VariablePanel.py:380
msgid "Output"
msgstr "Sortie"
-#: ../canfestival/SlaveEditor.py:63 ../canfestival/NetworkEditor.py:84
+#: ../canfestival/SlaveEditor.py:67 ../canfestival/NetworkEditor.py:91
msgid "PDO Receive"
msgstr "PDO reçu"
-#: ../canfestival/SlaveEditor.py:62 ../canfestival/NetworkEditor.py:83
+#: ../canfestival/SlaveEditor.py:66 ../canfestival/NetworkEditor.py:90
msgid "PDO Transmit"
msgstr "PDO transmis"
-#: ../targets/toolchain_gcc.py:167
+#: ../targets/toolchain_gcc.py:174
msgid "PLC :\n"
msgstr "Automate :\n"
-#: ../BeremizIDE.py:355
+#: ../BeremizIDE.py:383
msgid "PLC Log"
msgstr "Log de l'automate"
-#: ../ProjectController.py:1054
+#: ../ProjectController.py:1082
msgid "PLC code generation failed !\n"
msgstr "Génération du code PLC échouée !\n"
-#: ../Beremiz_service.py:297
+#: ../Beremiz_service.py:305
msgid "PLC is empty or already started."
msgstr "Le PLC est vide ou déjà lancé."
-#: ../Beremiz_service.py:304
+#: ../Beremiz_service.py:312
msgid "PLC is not started."
msgstr "PLC non démarré"
-#: ../PLCOpenEditor.py:206 ../PLCOpenEditor.py:319
+#: ../PLCOpenEditor.py:180 ../PLCOpenEditor.py:293
#, python-brace-format
msgid ""
"PLC syntax error at line {a1}:\n"
@@ -2482,15 +2501,15 @@
"Erreur de syntaxe PLC à la ligne {a1}:\n"
"{a2}"
-#: ../PLCOpenEditor.py:302 ../PLCOpenEditor.py:383
+#: ../PLCOpenEditor.py:276 ../PLCOpenEditor.py:357
msgid "PLCOpen files (*.xml)|*.xml|All files|*.*"
msgstr "Fichiers PLCOpen (*.xml)|*.xml|Tous les fichiers|*.*"
-#: ../PLCOpenEditor.py:154 ../PLCOpenEditor.py:219
+#: ../PLCOpenEditor.py:125 ../PLCOpenEditor.py:193
msgid "PLCOpenEditor"
msgstr "PLCOpenEditor"
-#: ../PLCOpenEditor.py:365
+#: ../PLCOpenEditor.py:339
msgid ""
"PLCOpenEditor is part of Beremiz project.\n"
"\n"
@@ -2500,205 +2519,205 @@
"\n"
"Beremiz est un "
-#: ../dialogs/DiscoveryDialog.py:95
+#: ../dialogs/DiscoveryDialog.py:92
msgid "PORT"
msgstr "PORT"
-#: ../dialogs/PouDialog.py:101
+#: ../dialogs/PouDialog.py:109
msgid "POU Name"
msgstr "Nom du POU"
-#: ../dialogs/PouDialog.py:58
+#: ../dialogs/PouDialog.py:66
msgid "POU Name:"
msgstr "Nom du POU :"
-#: ../dialogs/PouDialog.py:103
+#: ../dialogs/PouDialog.py:111
msgid "POU Type"
msgstr "Type du POU"
-#: ../dialogs/PouDialog.py:65
+#: ../dialogs/PouDialog.py:73
msgid "POU Type:"
msgstr "Type du POU :"
-#: ../connectors/PYRO/__init__.py:45
+#: ../connectors/PYRO/__init__.py:52
#, python-format
msgid "PYRO connecting to URI : %s\n"
msgstr "Connexion de PYRO à l'URI:%s\n"
-#: ../connectors/PYRO/__init__.py:61
+#: ../connectors/PYRO/__init__.py:68
#, python-format
msgid "PYRO using certificates in '%s' \n"
msgstr "PYRO utilise les certificats dans '%s'\n"
-#: ../BeremizIDE.py:231 ../PLCOpenEditor.py:120
+#: ../BeremizIDE.py:256 ../PLCOpenEditor.py:91
msgid "Page Setup"
msgstr "Mise en page..."
-#: ../controls/ProjectPropertiesPanel.py:111
+#: ../controls/ProjectPropertiesPanel.py:124
msgid "Page Size (optional):"
msgstr "Taille de la page (optionnel) :"
-#: ../IDEFrame.py:2613
+#: ../IDEFrame.py:2640
#, python-format
msgid "Page: %d"
msgstr "Page: %d"
-#: ../controls/PouInstanceVariablesPanel.py:124
+#: ../controls/PouInstanceVariablesPanel.py:134
msgid "Parent instance"
msgstr "Instance parent"
-#: ../editors/Viewer.py:657 ../IDEFrame.py:372 ../IDEFrame.py:426
+#: ../editors/Viewer.py:696 ../IDEFrame.py:374 ../IDEFrame.py:428
msgid "Paste"
msgstr "Coller"
-#: ../IDEFrame.py:1868
+#: ../IDEFrame.py:1899
msgid "Paste POU"
msgstr "Coller un POU"
-#: ../dialogs/SearchInProjectDialog.py:56
+#: ../dialogs/SearchInProjectDialog.py:60
msgid "Pattern to search:"
msgstr "Modèle à rechercher :"
-#: ../dialogs/LDPowerRailDialog.py:74
+#: ../dialogs/LDPowerRailDialog.py:75
msgid "Pin number:"
msgstr "Nombre de pattes :"
-#: ../editors/Viewer.py:2757 ../editors/Viewer.py:3014
-#: ../editors/SFCViewer.py:770
+#: ../editors/Viewer.py:2792 ../editors/Viewer.py:3060
+#: ../editors/SFCViewer.py:785
msgid "Please choose a target"
msgstr "Choisissez une cible"
-#: ../editors/TextViewer.py:262
+#: ../editors/TextViewer.py:260
msgid "Please enter a block name"
msgstr "Entrer un nom de bloc s'il vous plaît"
-#: ../editors/Viewer.py:2627 ../editors/Viewer.py:3056
+#: ../editors/Viewer.py:2661 ../editors/Viewer.py:3103
msgid "Please enter comment text"
msgstr "Saisissez le texte du commentaire"
-#: ../editors/SFCViewer.py:433 ../editors/SFCViewer.py:455
-#: ../editors/SFCViewer.py:799
+#: ../editors/SFCViewer.py:447 ../editors/SFCViewer.py:469
+#: ../editors/SFCViewer.py:815
msgid "Please enter step name"
msgstr "Saisissez le nom de l'étape"
-#: ../Beremiz_service.py:196
+#: ../dialogs/PouNameDialog.py:37 ../Beremiz_service.py:209
msgid "Please enter text"
msgstr "Saisissez le texte"
-#: ../dialogs/ForceVariableDialog.py:163
+#: ../dialogs/ForceVariableDialog.py:177
#, python-format
msgid "Please enter value for a \"%s\" variable:"
msgstr "Veuillez entrer la valeur pour une variable de type \"%s\" :"
-#: ../Beremiz_service.py:319
+#: ../Beremiz_service.py:327
msgid "Port number must be 0 <= port <= 65535!"
msgstr "Le numéro de port doit être compris entre 0 et 65535 !"
-#: ../Beremiz_service.py:319
+#: ../Beremiz_service.py:327
msgid "Port number must be an integer!"
msgstr "Le numéro de port doit être un entier !"
-#: ../editors/Viewer.py:595 ../editors/Viewer.py:2416
+#: ../editors/Viewer.py:633 ../editors/Viewer.py:2449
msgid "Power Rail"
msgstr "Barre d'alimentation"
-#: ../dialogs/LDPowerRailDialog.py:51
+#: ../dialogs/LDPowerRailDialog.py:52
msgid "Power Rail Properties"
msgstr "Propriétés de la barre d'alimentation"
-#: ../BeremizIDE.py:233 ../PLCOpenEditor.py:122
+#: ../BeremizIDE.py:258 ../PLCOpenEditor.py:93
msgid "Preview"
msgstr "Aperçu avant impression"
-#: ../dialogs/BlockPreviewDialog.py:57
+#: ../dialogs/BlockPreviewDialog.py:59
msgid "Preview:"
msgstr "Aperçu :"
-#: ../BeremizIDE.py:235 ../BeremizIDE.py:255 ../PLCOpenEditor.py:124
-#: ../PLCOpenEditor.py:150
+#: ../BeremizIDE.py:260 ../BeremizIDE.py:280 ../PLCOpenEditor.py:95
+#: ../PLCOpenEditor.py:121
msgid "Print"
msgstr "Imprimer"
-#: ../IDEFrame.py:1079
+#: ../IDEFrame.py:1110
msgid "Print preview"
msgstr "Aperçu avant impression"
-#: ../editors/ResourceEditor.py:68
+#: ../editors/ResourceEditor.py:76
msgid "Priority"
msgstr "Priorité"
-#: ../dialogs/SFCTransitionDialog.py:90
+#: ../dialogs/SFCTransitionDialog.py:91
msgid "Priority:"
msgstr "Priorité :"
-#: ../runtime/PLCObject.py:369
+#: ../runtime/PLCObject.py:518
#, python-format
msgid "Problem starting PLC : error %d"
msgstr "Problème au démarrage du PLC : erreur %d"
-#: ../dialogs/ProjectDialog.py:58
+#: ../dialogs/ProjectDialog.py:63
msgid "Product Name"
msgstr "Nom de produit"
-#: ../controls/ProjectPropertiesPanel.py:81
+#: ../controls/ProjectPropertiesPanel.py:90
msgid "Product Name (required):"
msgstr "Nom du produit (obligatoire) :"
-#: ../controls/ProjectPropertiesPanel.py:83
+#: ../controls/ProjectPropertiesPanel.py:92
msgid "Product Release (optional):"
msgstr "Publication du produit (optionnel) :"
-#: ../dialogs/ProjectDialog.py:59
+#: ../dialogs/ProjectDialog.py:64
msgid "Product Version"
msgstr "Version du produit"
-#: ../controls/ProjectPropertiesPanel.py:82
+#: ../controls/ProjectPropertiesPanel.py:91
msgid "Product Version (required):"
msgstr "Version du produit (obligatoire) :"
-#: ../dialogs/SearchInProjectDialog.py:39 ../IDEFrame.py:1747
-#: ../IDEFrame.py:1944
+#: ../dialogs/SearchInProjectDialog.py:42 ../IDEFrame.py:1778
+#: ../IDEFrame.py:1975
msgid "Program"
msgstr "Programme"
-#: ../PLCOpenEditor.py:347
+#: ../PLCOpenEditor.py:321
msgid "Program was successfully generated!"
msgstr "Le programme a été généré avec succès !"
-#: ../PLCControler.py:98
+#: ../plcopen/types_enums.py:76
msgid "Programs"
msgstr "Programmes"
-#: ../editors/Viewer.py:243
+#: ../editors/Viewer.py:285
msgid "Programs can't be used by other POUs!"
msgstr "Les programmes ne peuvent être utilisés par les autres POUs !"
-#: ../controls/ProjectPropertiesPanel.py:85 ../IDEFrame.py:584
+#: ../controls/ProjectPropertiesPanel.py:94 ../IDEFrame.py:601
msgid "Project"
msgstr "Projet"
-#: ../controls/SearchResultPanel.py:173
+#: ../controls/SearchResultPanel.py:180
#, python-format
msgid "Project '%s':"
msgstr "Projet '%s' :"
-#: ../ProjectController.py:1877
+#: ../ProjectController.py:1878
msgid "Project Files"
msgstr "Fichiers de projet"
-#: ../dialogs/ProjectDialog.py:57
+#: ../dialogs/ProjectDialog.py:62
msgid "Project Name"
msgstr "Nom du projet"
-#: ../controls/ProjectPropertiesPanel.py:79
+#: ../controls/ProjectPropertiesPanel.py:88
msgid "Project Name (required):"
msgstr "Nom du projet (obligatoire) :"
-#: ../controls/ProjectPropertiesPanel.py:80
+#: ../controls/ProjectPropertiesPanel.py:89
msgid "Project Version (optional):"
msgstr "Version du projet (optionnel) :"
-#: ../PLCControler.py:3164
+#: ../PLCControler.py:2717
msgid ""
"Project file syntax error:\n"
"\n"
@@ -2706,90 +2725,92 @@
"Erreur de syntaxe dans le fichier du projet :\n"
"\n"
-#: ../dialogs/ProjectDialog.py:33 ../editors/ProjectNodeEditor.py:37
+#: ../dialogs/ProjectDialog.py:36 ../editors/ProjectNodeEditor.py:40
msgid "Project properties"
msgstr "Propriétés du projet"
-#: ../ConfigTreeNode.py:566
+#: ../ConfigTreeNode.py:571
#, python-brace-format
msgid "Project tree layout do not match confnode.xml {a1}!={a2} "
msgstr ""
-
-#: ../dialogs/ConnectionDialog.py:98
+"La disposition de l'arborescence du projet ne correspond pas à confnode.xml "
+"{a1}!={a2} "
+
+#: ../dialogs/ConnectionDialog.py:101
msgid "Propagate Name"
msgstr "Propager le nom"
-#: ../PLCControler.py:99
+#: ../plcopen/types_enums.py:77
msgid "Properties"
msgstr "Propriétés"
-#: ../Beremiz_service.py:442
+#: ../Beremiz_service.py:427
msgid "Publishing service on local network"
-msgstr ""
-
-#: ../connectors/PYRO/__init__.py:118
+msgstr "Publication du service sur le réseau local"
+
+#: ../connectors/PYRO/__init__.py:126
#, python-format
msgid "Pyro exception: %s\n"
-msgstr ""
-
-#: ../Beremiz_service.py:429
-msgid "Pyro object's uri :"
-msgstr ""
-
-#: ../Beremiz_service.py:428
+msgstr "Exception Pyro: %s\n"
+
+#: ../Beremiz_service.py:420
msgid "Pyro port :"
msgstr "Pyro port :"
-#: ../py_ext/PythonEditor.py:81
+#: ../py_ext/PythonEditor.py:84
msgid "Python code"
msgstr "Code Python"
-#: ../features.py:33
+#: ../features.py:34
msgid "Python file"
msgstr "Fichier Python"
-#: ../dialogs/ActionBlockDialog.py:39
+#: ../dialogs/ActionBlockDialog.py:42
msgid "Qualifier"
msgstr "Qualificatif"
-#: ../BeremizIDE.py:238 ../PLCOpenEditor.py:130 ../Beremiz_service.py:275
+#: ../BeremizIDE.py:263 ../PLCOpenEditor.py:101 ../Beremiz_service.py:283
msgid "Quit"
msgstr "Quitter"
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:225
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:227
msgid "Range:"
msgstr "Echelle :"
-#: ../ProjectController.py:1873
+#: ../ProjectController.py:1872
msgid "Raw IEC code"
msgstr "Ajout code IEC"
-#: ../BeremizIDE.py:1047
+#: ../BeremizIDE.py:1083
#, python-format
msgid "Really delete node '%s'?"
msgstr "Êtes-vous sûr de vouloir supprimer le noeud '%s' ?"
-#: ../IDEFrame.py:362 ../IDEFrame.py:422
+#: ../connectors/WAMP/dialog.py:50
+msgid "Realm:"
+msgstr ""
+
+#: ../IDEFrame.py:367 ../IDEFrame.py:424
msgid "Redo"
msgstr "Refaire"
-#: ../dialogs/SFCTransitionDialog.py:75
+#: ../dialogs/SFCTransitionDialog.py:76
msgid "Reference"
msgstr "Référence"
-#: ../dialogs/DiscoveryDialog.py:107 ../IDEFrame.py:432
+#: ../dialogs/DiscoveryDialog.py:109 ../IDEFrame.py:434
msgid "Refresh"
msgstr "Actualiser"
-#: ../dialogs/SearchInProjectDialog.py:66
+#: ../dialogs/SearchInProjectDialog.py:70
msgid "Regular expression"
msgstr "Expression régulière"
-#: ../dialogs/FindInPouDialog.py:96
+#: ../dialogs/FindInPouDialog.py:99
msgid "Regular expressions"
msgstr "Expressions régulières"
-#: ../editors/Viewer.py:1603
+#: ../editors/Viewer.py:1636
msgid "Release value"
msgstr "Relacher la valeur"
@@ -2797,56 +2818,56 @@
msgid "Remainder (modulo)"
msgstr "Modulo"
-#: ../BeremizIDE.py:1048
+#: ../BeremizIDE.py:1084
#, python-format
msgid "Remove %s node"
msgstr "Enlever un noeud %s"
-#: ../IDEFrame.py:2419
+#: ../IDEFrame.py:2445
msgid "Remove Datatype"
msgstr "Supprimer le Datatype"
-#: ../IDEFrame.py:2424
+#: ../IDEFrame.py:2450
msgid "Remove Pou"
msgstr "Supprimer le Pou"
-#: ../dialogs/ActionBlockDialog.py:138
+#: ../dialogs/ActionBlockDialog.py:144
msgid "Remove action"
msgstr "Supprimer une action"
-#: ../editors/DataTypeEditor.py:353
+#: ../editors/DataTypeEditor.py:365
msgid "Remove element"
msgstr "Supprimer un élément"
-#: ../editors/FileManagementPanel.py:63
+#: ../editors/FileManagementPanel.py:66
msgid "Remove file from left folder"
msgstr "Supprimer un fichier du dossier de gauche"
-#: ../editors/ResourceEditor.py:269
+#: ../editors/ResourceEditor.py:284
msgid "Remove instance"
msgstr "Supprimer une instance"
-#: ../canfestival/NetworkEditor.py:104
+#: ../canfestival/NetworkEditor.py:111
msgid "Remove slave"
msgstr "Enlever l'esclave"
-#: ../editors/ResourceEditor.py:240
+#: ../editors/ResourceEditor.py:253
msgid "Remove task"
msgstr "Supprimer la tâche"
-#: ../editors/CodeFileEditor.py:659 ../controls/VariablePanel.py:451
+#: ../editors/CodeFileEditor.py:655 ../controls/VariablePanel.py:482
msgid "Remove variable"
msgstr "Supprimer une variable"
-#: ../IDEFrame.py:1948
+#: ../IDEFrame.py:1979
msgid "Rename"
msgstr "Renommer"
-#: ../editors/FileManagementPanel.py:181
+#: ../editors/FileManagementPanel.py:187
msgid "Replace File"
msgstr "Remplacer un fichier"
-#: ../editors/Viewer.py:561
+#: ../editors/Viewer.py:598
msgid "Replace Wire by connections"
msgstr "Remplacer le fil par les connexions"
@@ -2854,43 +2875,43 @@
msgid "Replacement (within)"
msgstr "Remplacement (au milieu)"
-#: ../dialogs/LDElementDialog.py:76
+#: ../dialogs/LDElementDialog.py:79
msgid "Reset"
msgstr "Mise à zéro"
-#: ../editors/Viewer.py:642
+#: ../editors/Viewer.py:681
msgid "Reset Execution Order"
msgstr "Réinitialiser l'order d'exécution"
-#: ../IDEFrame.py:451
+#: ../IDEFrame.py:453
msgid "Reset Perspective"
msgstr "Réinitialiser l'interface"
-#: ../controls/SearchResultPanel.py:105
+#: ../controls/SearchResultPanel.py:103
msgid "Reset search result"
msgstr "Réinitialiser le résultat de la recherche"
-#: ../BeremizIDE.py:979 ../PLCControler.py:99
+#: ../BeremizIDE.py:1015 ../plcopen/types_enums.py:77
msgid "Resources"
msgstr "Ressources"
-#: ../controls/VariablePanel.py:62
+#: ../controls/VariablePanel.py:77
msgid "Retain"
msgstr "Persistante"
-#: ../controls/VariablePanel.py:424
+#: ../controls/VariablePanel.py:455
msgid "Return Type:"
msgstr "Type de retour :"
-#: ../editors/Viewer.py:546
+#: ../editors/Viewer.py:582
msgid "Right"
msgstr "Droite"
-#: ../dialogs/LDPowerRailDialog.py:64
+#: ../dialogs/LDPowerRailDialog.py:65
msgid "Right PowerRail"
msgstr "Barre d'alimentation à droite"
-#: ../dialogs/LDElementDialog.py:77 ../editors/Viewer.py:520
+#: ../dialogs/LDElementDialog.py:80 ../editors/Viewer.py:555
msgid "Rising Edge"
msgstr "Front montant"
@@ -2906,138 +2927,141 @@
msgid "Rounding up/down"
msgstr "Arrondi"
-#: ../ProjectController.py:1841
+#: ../ProjectController.py:1828
msgid "Run"
msgstr "Exécuter"
-#: ../ProjectController.py:1099
+#: ../ProjectController.py:1127
msgid "Runtime IO extensions C code generation failed !\n"
msgstr ""
-
-#: ../ProjectController.py:1108
+"La génération du code C pour les extensions d'entrées-sorties a échoué!\n"
+
+#: ../ProjectController.py:1136
msgid "Runtime library extensions C code generation failed !\n"
-msgstr ""
-
-#: ../canfestival/SlaveEditor.py:61 ../canfestival/NetworkEditor.py:82
+msgstr "La génération du code C pour les extensions de librairie a échoué!\n"
+
+#: ../canfestival/SlaveEditor.py:65 ../canfestival/NetworkEditor.py:89
msgid "SDO Client"
msgstr "Client SDO"
-#: ../canfestival/SlaveEditor.py:60 ../canfestival/NetworkEditor.py:81
+#: ../canfestival/SlaveEditor.py:64 ../canfestival/NetworkEditor.py:88
msgid "SDO Server"
msgstr "Serveur SDO"
-#: ../dialogs/PouDialog.py:37 ../controls/ProjectPropertiesPanel.py:144
+#: ../dialogs/PouDialog.py:44 ../controls/ProjectPropertiesPanel.py:158
msgid "SFC"
msgstr "SFC"
-#: ../PLCGenerator.py:1392
+#: ../PLCGenerator.py:1433
#, python-brace-format
msgid "SFC jump in pou \"{a1}\" refers to non-existent SFC step \"{a2}\""
msgstr ""
-
-#: ../PLCGenerator.py:773
+"Le saut SFC dans le POU \"{a1}\" fait référence à l'étape SFC inexistante "
+"\"{a2}\""
+
+#: ../PLCGenerator.py:780
#, python-format
msgid "SFC transition in POU \"%s\" must be connected."
-msgstr ""
-
-#: ../dialogs/PouTransitionDialog.py:36 ../dialogs/PouActionDialog.py:32
-#: ../dialogs/PouDialog.py:37
+msgstr "La transition SFC dans le POU \"%s\" doit être connectée."
+
+#: ../dialogs/PouTransitionDialog.py:40 ../dialogs/PouActionDialog.py:36
+#: ../dialogs/PouDialog.py:44
msgid "ST"
msgstr "ST"
-#: ../PLCOpenEditor.py:334
+#: ../PLCOpenEditor.py:308
msgid "ST files (*.st)|*.st|All files|*.*"
msgstr "Fichiers ST (*.st)|*.st|Tous les fichiers|*.*"
-#: ../svgui/svgui.py:128
+#: ../svgui/svgui.py:136
msgid "SVG files (*.svg)|*.svg|All files|*.*"
msgstr "Fichiers SVG (*.svg)|*.svg|Tous les fichiers|*.*"
-#: ../features.py:35
+#: ../features.py:36
msgid "SVGUI"
msgstr "SVGUI"
-#: ../BeremizIDE.py:222 ../BeremizIDE.py:253 ../PLCOpenEditor.py:113
-#: ../PLCOpenEditor.py:148
+#: ../BeremizIDE.py:247 ../BeremizIDE.py:278 ../PLCOpenEditor.py:84
+#: ../PLCOpenEditor.py:119
msgid "Save"
msgstr "Enregistrer"
-#: ../BeremizIDE.py:254 ../PLCOpenEditor.py:115 ../PLCOpenEditor.py:149
+#: ../BeremizIDE.py:279 ../PLCOpenEditor.py:86 ../PLCOpenEditor.py:120
msgid "Save As..."
msgstr "Enregistrer sous..."
-#: ../BeremizIDE.py:224
+#: ../BeremizIDE.py:249
msgid "Save as"
msgstr "Enregistrer sous..."
-#: ../ProjectController.py:511
+#: ../ProjectController.py:530
msgid "Save path is the same as path of a project! \n"
-msgstr ""
-
-#: ../dialogs/SearchInProjectDialog.py:69
+msgstr "Le chemin d'enregistrement est le même que le chemin du projet!\n"
+
+#: ../dialogs/SearchInProjectDialog.py:73
msgid "Scope"
msgstr "Contexte"
-#: ../IDEFrame.py:623
+#: ../IDEFrame.py:644
msgid "Search"
msgstr "Rechercher"
-#: ../dialogs/SearchInProjectDialog.py:45 ../IDEFrame.py:382
-#: ../IDEFrame.py:428
+#: ../dialogs/SearchInProjectDialog.py:49 ../IDEFrame.py:384
+#: ../IDEFrame.py:430
msgid "Search in Project"
msgstr "Rechercher dans le projet"
-#: ../dialogs/DurationEditorDialog.py:47
+#: ../dialogs/DurationEditorDialog.py:49
msgid "Seconds:"
msgstr "Secondes :"
-#: ../IDEFrame.py:388
+#: ../IDEFrame.py:390
msgid "Select All"
msgstr "Tout sélectionner"
-#: ../editors/Viewer.py:289 ../editors/TextViewer.py:306
-#: ../controls/LocationCellEditor.py:97 ../controls/VariablePanel.py:290
-#: ../controls/VariablePanel.py:350
+#: ../editors/Viewer.py:331 ../editors/TextViewer.py:305
+#: ../controls/LocationCellEditor.py:101 ../controls/VariablePanel.py:315
+#: ../controls/VariablePanel.py:378
msgid "Select a variable class:"
msgstr "Sélectionner une direction pour la variable :"
-#: ../ProjectController.py:1257
+#: ../ProjectController.py:1293
msgid "Select an editor:"
msgstr "Sélectionner un éditeur :"
-#: ../controls/PouInstanceVariablesPanel.py:281
+#: ../controls/PouInstanceVariablesPanel.py:292
msgid "Select an instance"
msgstr "Sélectionnez une instance"
-#: ../IDEFrame.py:607
+#: ../IDEFrame.py:628
msgid "Select an object"
msgstr "Sélectionner un objet"
-#: ../ProjectController.py:518
+#: ../ProjectController.py:537
msgid "Selected directory already contains another project. Overwrite? \n"
-msgstr ""
+msgstr "Le répertoire sélectionné contient déjà un autre projet. Écraser?\n"
#: ../plcopen/iec_std.csv:70
msgid "Selection"
msgstr "Sélection"
-#: ../dialogs/SFCDivergenceDialog.py:65
+#: ../dialogs/SFCDivergenceDialog.py:66
msgid "Selection Convergence"
msgstr "Convergence simple"
-#: ../dialogs/SFCDivergenceDialog.py:64
+#: ../dialogs/SFCDivergenceDialog.py:65
msgid "Selection Divergence"
msgstr "Divergence simple"
-#: ../dialogs/DiscoveryDialog.py:82
+#: ../dialogs/DiscoveryDialog.py:135
msgid "Service Discovery"
msgstr "Recherche de service"
-#: ../dialogs/DiscoveryDialog.py:85
+#: ../dialogs/DiscoveryDialog.py:104
msgid "Services available:"
msgstr "Services disponibles:"
-#: ../dialogs/LDElementDialog.py:76
+#: ../dialogs/LDElementDialog.py:79
msgid "Set"
msgstr "Mise à 1"
@@ -3049,27 +3073,27 @@
msgid "Shift right"
msgstr "Décalage à droite"
-#: ../ProjectController.py:1867
+#: ../ProjectController.py:1863
msgid "Show IEC code generated by PLCGenerator"
msgstr "Afficher le code IEC généré par PLCGenerator"
-#: ../canfestival/canfestival.py:389
+#: ../canfestival/canfestival.py:407
msgid "Show Master"
msgstr "Afficher le maître"
-#: ../canfestival/canfestival.py:390
+#: ../canfestival/canfestival.py:408
msgid "Show Master generated by config_utils"
msgstr "Afficher le maître généré par config_utils"
-#: ../ProjectController.py:1865
+#: ../ProjectController.py:1862
msgid "Show code"
msgstr "Afficher le code"
-#: ../dialogs/SFCDivergenceDialog.py:67
+#: ../dialogs/SFCDivergenceDialog.py:68
msgid "Simultaneous Convergence"
msgstr "Convergence double"
-#: ../dialogs/SFCDivergenceDialog.py:66
+#: ../dialogs/SFCDivergenceDialog.py:67
msgid "Simultaneous Divergence"
msgstr "Divergence double"
@@ -3077,79 +3101,77 @@
msgid "Sine"
msgstr "Sinus"
-#: ../editors/ResourceEditor.py:68
+#: ../editors/ResourceEditor.py:76
msgid "Single"
msgstr "Evènement"
-#: ../targets/toolchain_makefile.py:126
+#: ../targets/toolchain_makefile.py:130
msgid "Source didn't change, no build.\n"
-msgstr ""
-
-#: ../PLCGenerator.py:397
+msgstr "La source n'a pas changé, pas de compilation.\n"
+
+#: ../PLCGenerator.py:404
#, python-brace-format
msgid ""
"Source signal has to be defined for single task '{a1}' in resource "
"'{a2}.{a3}'."
msgstr ""
+"Le signal source doit être défini pour la tâche évènement '{a1}' dans la "
+"ressource '{a2}. {A3}'."
#: ../plcopen/iec_std.csv:23
msgid "Square root (base 2)"
msgstr "Racine carré (base 2)"
-#: ../plcopen/definitions.py:48
+#: ../plcopen/definitions.py:50
msgid "Standard function blocks"
msgstr "Blocs fonctionnels standards"
-#: ../ProjectController.py:1843 ../Beremiz_service.py:263
+#: ../ProjectController.py:1829 ../Beremiz_service.py:271
msgid "Start PLC"
msgstr "Démarrer l'automate"
-#: ../ProjectController.py:1046
+#: ../ProjectController.py:1074
#, python-format
msgid "Start build in %s\n"
msgstr "Début de la compilation dans %s\n"
-#: ../ProjectController.py:1360
+#: ../ProjectController.py:1397
msgid "Started"
msgstr "Démarré"
-#: ../ProjectController.py:1648
+#: ../ProjectController.py:1633
msgid "Starting PLC\n"
msgstr "Démarrer l'automate\n"
-#: ../BeremizIDE.py:365
+#: ../BeremizIDE.py:393
msgid "Status ToolBar"
msgstr "Barre d'outils de statut"
-#: ../editors/Viewer.py:612 ../editors/Viewer.py:2391
+#: ../editors/Viewer.py:651 ../editors/Viewer.py:2424
msgid "Step"
msgstr "Étape"
-#: ../ProjectController.py:1846
+#: ../ProjectController.py:1835
msgid "Stop"
msgstr "Arrêter"
-#: ../Beremiz_service.py:264
+#: ../Beremiz_service.py:272
msgid "Stop PLC"
msgstr "Arrêter l'automate"
-#: ../ProjectController.py:1848
+#: ../ProjectController.py:1836
msgid "Stop Running PLC"
msgstr "Arrêter l'automate en cours d'exécution"
-#: ../ProjectController.py:1361
+#: ../ProjectController.py:1398
msgid "Stopped"
msgstr "Arrêté"
-#: ../ProjectController.py:1620
-msgid "Stopping debugger...\n"
-msgstr "Arrêt du débogage en cours\n"
-
-#: ../editors/DataTypeEditor.py:54
+#: ../editors/DataTypeEditor.py:60
msgid "Structure"
msgstr "Structure"
-#: ../editors/DataTypeEditor.py:54
+#: ../editors/DataTypeEditor.py:60
msgid "Subrange"
msgstr "Sous-ensemble"
@@ -3157,20 +3179,20 @@
msgid "Subtraction"
msgstr "Soustraction"
-#: ../ProjectController.py:1085
+#: ../ProjectController.py:1113
msgid "Successfully built.\n"
msgstr "Compilé avec succès.\n"
-#: ../IDEFrame.py:447
+#: ../IDEFrame.py:449
msgid "Switch perspective"
-msgstr ""
-
-#: ../dialogs/SearchInProjectDialog.py:165 ../dialogs/FindInPouDialog.py:115
+msgstr "Changer de perspective"
+
+#: ../dialogs/SearchInProjectDialog.py:169 ../dialogs/FindInPouDialog.py:118
msgid "Syntax error in regular expression of pattern to search!"
msgstr ""
"Erreur de syntaxe dans l'expression régulière du modèle à rechercher !"
-#: ../dialogs/DiscoveryDialog.py:93
+#: ../dialogs/DiscoveryDialog.py:90
msgid "TYPE"
msgstr "TYPE"
@@ -3178,19 +3200,19 @@
msgid "Tangent"
msgstr "Tangente"
-#: ../editors/ResourceEditor.py:83
+#: ../editors/ResourceEditor.py:97
msgid "Task"
msgstr "Tâche"
-#: ../editors/ResourceEditor.py:235
+#: ../editors/ResourceEditor.py:248
msgid "Tasks:"
msgstr "Tâches :"
-#: ../controls/VariablePanel.py:73
+#: ../controls/VariablePanel.py:91
msgid "Temp"
msgstr "Temporaire"
-#: ../version.py:30
+#: ../version.py:35
msgid ""
"The best place to ask questions about Beremiz/PLCOpenEditor\n"
"is project's mailing list: beremiz-devel@lists.sourceforge.net\n"
@@ -3201,8 +3223,16 @@
"You can subscribe to the list here:\n"
"https://lists.sourceforge.net/lists/listinfo/beremiz-devel"
msgstr ""
-
-#: ../editors/FileManagementPanel.py:180
+"Le meilleur endroit pour poser des questions sur Beremiz / PLCOpenEditor\n"
+"est la liste de diffusion du projet: beremiz-devel@lists.sourceforge.net\n"
+"\n"
+"C'est le principal canal de soutien communautaire.\n"
+"Pour poster, il est nécessaire d'être abonné à la liste de diffusion.\n"
+"\n"
+"Vous pouvez vous abonner à la liste ici:\n"
+"https://lists.sourceforge.net/lists/listinfo/beremiz-devel"
+
+#: ../editors/FileManagementPanel.py:186
#, python-format
msgid ""
"The file '%s' already exist.\n"
@@ -3211,15 +3241,15 @@
"Le fichier '%s' existe déjà.\n"
"Voulez-vous le remplacer ?"
-#: ../editors/LDViewer.py:882
+#: ../editors/LDViewer.py:893
msgid "The group of block must be coherent!"
msgstr "Le groupe de blocs doit être cohérent !"
-#: ../BeremizIDE.py:542 ../IDEFrame.py:1015
+#: ../BeremizIDE.py:573 ../IDEFrame.py:1046
msgid "There are changes, do you want to save?"
msgstr "Le projet a été modifié. Voulez-vous l'enregistrer ?"
-#: ../IDEFrame.py:1658 ../IDEFrame.py:1677
+#: ../IDEFrame.py:1691 ../IDEFrame.py:1710
#, python-format
msgid ""
"There is a POU named \"%s\". This could cause a conflict. Do you wish to "
@@ -3228,7 +3258,7 @@
"Un POU a pour nom \"%s\". Cela peut générer des conflits. Voulez-vous "
"continuer ?"
-#: ../IDEFrame.py:1102
+#: ../IDEFrame.py:1133
msgid ""
"There was a problem printing.\n"
"Perhaps your current printer is not set correctly?"
@@ -3236,14 +3266,14 @@
"Un problème est apparu lors de l'impression.\n"
"Peut-être que votre imprimante n'est pas correctement configurée ?"
-#: ../editors/LDViewer.py:891
+#: ../editors/LDViewer.py:902
msgid "This option isn't available yet!"
msgstr "Cette option n'a pas encore disponible"
-#: ../controls/DebugVariablePanel/DebugVariablePanel.py:565
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:567
#, python-format
msgid "Tick: %d"
-msgstr ""
+msgstr "Tick: %d"
#: ../plcopen/iec_std.csv:40
msgid "Time"
@@ -3278,36 +3308,36 @@
msgid "Time-of-day subtraction"
msgstr "Soustraction d'horodatage"
-#: ../dialogs/ForceVariableDialog.py:172
+#: ../dialogs/ForceVariableDialog.py:188
msgid "Toggle value"
-msgstr ""
-
-#: ../editors/Viewer.py:548
+msgstr "Basculer la valeur"
+
+#: ../editors/Viewer.py:584
msgid "Top"
msgstr "Haut"
-#: ../ProjectController.py:1855
+#: ../ProjectController.py:1848
msgid "Transfer"
msgstr "Transférer"
-#: ../ProjectController.py:1857
+#: ../ProjectController.py:1849
msgid "Transfer PLC"
msgstr "Transférer l'automate"
-#: ../ProjectController.py:1820
+#: ../ProjectController.py:1802
msgid "Transfer completed successfully.\n"
msgstr "Transfert effectué avec succès.\n"
-#: ../ProjectController.py:1823
+#: ../ProjectController.py:1805
msgid "Transfer failed\n"
msgstr "Le transfert a échoué\n"
-#: ../editors/Viewer.py:613 ../editors/Viewer.py:2393
-#: ../editors/Viewer.py:2420
+#: ../editors/Viewer.py:652 ../editors/Viewer.py:2426
+#: ../editors/Viewer.py:2453
msgid "Transition"
msgstr "Transition"
-#: ../PLCGenerator.py:1518
+#: ../PLCGenerator.py:1564
#, python-format
msgid ""
"Transition \"%s\" body must contain an output variable or coil referring to "
@@ -3316,58 +3346,62 @@
"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
+#: ../dialogs/PouTransitionDialog.py:91
msgid "Transition Name"
msgstr "Nom de la transition"
-#: ../dialogs/PouTransitionDialog.py:53
+#: ../dialogs/PouTransitionDialog.py:60
msgid "Transition Name:"
msgstr "Nom de la transition :"
-#: ../PLCGenerator.py:1609
+#: ../PLCGenerator.py:1657
#, python-brace-format
msgid "Transition with content \"{a1}\" not connected to a next step in \"{a2}\" POU"
msgstr ""
-
-#: ../PLCGenerator.py:1598
+"La transition avec le contenu \"{a1}\" n'est pas connectée à une étape "
+"suivante dans le POU \"{a2}\""
+
+#: ../PLCGenerator.py:1646
#, python-brace-format
msgid ""
"Transition with content \"{a1}\" not connected to a previous step in "
"\"{a2}\" POU"
msgstr ""
-
-#: ../plcopen/plcopen.py:1323
+"La transition avec le contenu \"{a1}\" n'est pas connectée à une étape "
+"précédente dans le POU \"{a2}\""
+
+#: ../plcopen/plcopen.py:1526
#, python-format
msgid "Transition with name %s doesn't exist!"
msgstr "La transition nommée %s n'existe pas !"
-#: ../PLCControler.py:98
+#: ../plcopen/types_enums.py:76
msgid "Transitions"
msgstr "Transitions"
-#: ../dialogs/AboutDialog.py:131
+#: ../dialogs/AboutDialog.py:127
msgid "Translated by"
-msgstr ""
-
-#: ../editors/ResourceEditor.py:68
+msgstr "Traduit par"
+
+#: ../editors/ResourceEditor.py:76
msgid "Triggering"
msgstr "Activation"
-#: ../Beremiz_service.py:478
+#: ../Beremiz_service.py:490
msgid "Twisted unavailable."
-msgstr ""
-
-#: ../dialogs/ActionBlockDialog.py:39 ../editors/ResourceEditor.py:83
-#: ../editors/DataTypeEditor.py:50 ../editors/CodeFileEditor.py:739
-#: ../controls/VariablePanel.py:53 ../controls/VariablePanel.py:54
+msgstr "Twisted indisponible."
+
+#: ../dialogs/ActionBlockDialog.py:42 ../editors/ResourceEditor.py:97
+#: ../editors/DataTypeEditor.py:55 ../editors/CodeFileEditor.py:733
+#: ../controls/VariablePanel.py:61
msgid "Type"
msgstr "Type"
-#: ../dialogs/BrowseLocationsDialog.py:49
+#: ../dialogs/BrowseLocationsDialog.py:54
msgid "Type and derivated"
msgstr "Type et ses dérivés"
-#: ../canfestival/config_utils.py:336 ../canfestival/config_utils.py:624
+#: ../canfestival/config_utils.py:359 ../canfestival/config_utils.py:666
#, python-format
msgid "Type conflict for location \"%s\""
msgstr "Conflit entre types pour l'adresse \"%s\""
@@ -3376,179 +3410,233 @@
msgid "Type conversion"
msgstr "Conversion de type"
-#: ../editors/DataTypeEditor.py:162
+#: ../editors/DataTypeEditor.py:170
msgid "Type infos:"
msgstr "Propriétés du type :"
-#: ../dialogs/BrowseLocationsDialog.py:50
+#: ../dialogs/BrowseLocationsDialog.py:55
msgid "Type strict"
msgstr "Type uniquement"
-#: ../dialogs/SFCDivergenceDialog.py:59 ../dialogs/SFCTransitionDialog.py:58
-#: ../dialogs/LDPowerRailDialog.py:57 ../dialogs/BrowseLocationsDialog.py:100
-#: ../dialogs/FBDBlockDialog.py:66 ../dialogs/ConnectionDialog.py:59
+#: ../dialogs/SFCDivergenceDialog.py:60 ../dialogs/SFCTransitionDialog.py:59
+#: ../dialogs/LDPowerRailDialog.py:58 ../dialogs/BrowseLocationsDialog.py:111
+#: ../dialogs/FBDBlockDialog.py:69 ../dialogs/ConnectionDialog.py:61
msgid "Type:"
msgstr "Type :"
-#: ../canfestival/config_utils.py:462 ../canfestival/config_utils.py:476
+#: ../connectors/PYRO/dialog.py:39 ../connectors/WAMP/dialog.py:42
+msgid "URI host:"
+msgstr ""
+
+#: ../connectors/PYRO/dialog.py:43 ../connectors/WAMP/dialog.py:46
+msgid "URI port:"
+msgstr ""
+
+#: ../controls/UriLocationEditor.py:35
+msgid "URI type:"
+msgstr ""
+
+#: ../canfestival/config_utils.py:500 ../canfestival/config_utils.py:515
#, python-format
msgid "Unable to define PDO mapping for node %02x"
msgstr "Impossible de définir le mappage des PDO pour le noeud %02x"
-#: ../targets/Xenomai/__init__.py:39
+#: ../targets/Xenomai/__init__.py:43
#, python-format
msgid "Unable to get Xenomai's %s \n"
msgstr "Unable to get Xenomai's %s \n"
-#: ../PLCGenerator.py:961 ../PLCGenerator.py:1214
+#: ../PLCGenerator.py:974 ../PLCGenerator.py:1252
#, python-brace-format
msgid "Undefined block type \"{a1}\" in \"{a2}\" POU"
-msgstr ""
-
-#: ../PLCGenerator.py:254
+msgstr "Type de bloc indéfini \"{a1}\" dans le module \"{a2}\""
+
+#: ../PLCGenerator.py:261
#, python-format
msgid "Undefined pou type \"%s\""
msgstr "Type de POU \"%s\" indéterminé !"
-#: ../IDEFrame.py:360 ../IDEFrame.py:421
+#: ../IDEFrame.py:365 ../IDEFrame.py:423
msgid "Undo"
msgstr "Défaire"
-#: ../ProjectController.py:423
+#: ../ProjectController.py:442
msgid "Unknown"
msgstr "Inconnu"
-#: ../editors/Viewer.py:394
+#: ../editors/Viewer.py:437
#, python-format
msgid "Unknown variable \"%s\" for this POU!"
msgstr "Variable \"%s\" inconnue dans ce POU !"
-#: ../ProjectController.py:420 ../ProjectController.py:421
+#: ../ProjectController.py:439 ../ProjectController.py:440
msgid "Unnamed"
msgstr "SansNom"
-#: ../PLCControler.py:638
+#: ../PLCControler.py:263
#, python-format
msgid "Unnamed%d"
msgstr "Sansnom%d"
-#: ../controls/VariablePanel.py:284
+#: ../controls/VariablePanel.py:308
#, python-format
msgid "Unrecognized data size \"%s\""
msgstr "Taille de donnée \"%s\" non identifié !"
-#: ../editors/DataTypeEditor.py:630 ../controls/VariablePanel.py:827
+#: ../editors/DataTypeEditor.py:646 ../controls/VariablePanel.py:841
msgid "User Data Types"
msgstr "Types de donnée du projet"
-#: ../canfestival/SlaveEditor.py:65 ../canfestival/NetworkEditor.py:86
+#: ../canfestival/SlaveEditor.py:69 ../canfestival/NetworkEditor.py:93
msgid "User Type"
msgstr "Type utilisateur"
-#: ../PLCControler.py:97
+#: ../plcopen/types_enums.py:75
msgid "User-defined POUs"
msgstr "POUs du projet"
-#: ../dialogs/ActionBlockDialog.py:39
+#: ../dialogs/ActionBlockDialog.py:42
msgid "Value"
msgstr "Valeur"
-#: ../editors/DataTypeEditor.py:259
+#: ../editors/DataTypeEditor.py:267
msgid "Values:"
msgstr "Valeurs"
-#: ../dialogs/ActionBlockDialog.py:43 ../editors/Viewer.py:585
-#: ../editors/Viewer.py:2423
+#: ../dialogs/ActionBlockDialog.py:47 ../editors/Viewer.py:622
+#: ../editors/Viewer.py:2456
msgid "Variable"
msgstr "Variable"
-#: ../editors/Viewer.py:309 ../editors/Viewer.py:339 ../editors/Viewer.py:361
-#: ../editors/TextViewer.py:292 ../editors/TextViewer.py:343
-#: ../editors/TextViewer.py:366 ../controls/VariablePanel.py:329
+#: ../editors/Viewer.py:352 ../editors/Viewer.py:382 ../editors/Viewer.py:404
+#: ../editors/TextViewer.py:290 ../editors/TextViewer.py:344
+#: ../editors/TextViewer.py:367 ../controls/VariablePanel.py:355
msgid "Variable Drop"
-msgstr ""
-
-#: ../dialogs/FBDVariableDialog.py:64
+msgstr "Dépôt de variable"
+
+#: ../dialogs/FBDVariableDialog.py:68
msgid "Variable Properties"
msgstr "Propriétés de la variable"
-#: ../editors/Viewer.py:289 ../editors/TextViewer.py:306
-#: ../controls/LocationCellEditor.py:97 ../controls/VariablePanel.py:290
-#: ../controls/VariablePanel.py:350
+#: ../editors/Viewer.py:332 ../editors/TextViewer.py:306
+#: ../controls/LocationCellEditor.py:102 ../controls/VariablePanel.py:316
+#: ../controls/VariablePanel.py:379
msgid "Variable class"
msgstr "Direction de la variable"
-#: ../editors/Viewer.py:396 ../editors/TextViewer.py:387
+#: ../editors/Viewer.py:439 ../editors/TextViewer.py:388
msgid "Variable don't belong to this POU!"
msgstr "La variable n'appartient pas à ce POU !"
-#: ../dialogs/LDElementDialog.py:89
+#: ../dialogs/LDElementDialog.py:92
msgid "Variable:"
msgstr "Variable:"
-#: ../controls/VariablePanel.py:72
+#: ../controls/VariablePanel.py:90
msgid "Variables"
msgstr "Variables"
-#: ../controls/ProjectPropertiesPanel.py:152
+#: ../controls/ProjectPropertiesPanel.py:166
msgid "Vertical:"
msgstr "Vertical :"
-#: ../Beremiz_service.py:588
+#: ../runtime/WampClient.py:113
+#, python-format
+msgid "WAMP Client connection failed (%s) .. retrying .."
+msgstr ""
+
+#: ../runtime/WampClient.py:117
+#, python-format
+msgid "WAMP Client connection lost (%s) .. retrying .."
+msgstr ""
+
+#: ../connectors/WAMP/dialog.py:54
+msgid "WAMP ID:"
+msgstr ""
+
+#: ../runtime/WampClient.py:172
+msgid "WAMP client connecting to :"
+msgstr ""
+
+#: ../runtime/WampClient.py:148
+msgid "WAMP client connection not established!"
+msgstr ""
+
+#: ../Beremiz_service.py:625
msgid "WAMP client startup failed. "
-msgstr ""
-
-#: ../connectors/WAMP/__init__.py:91
+msgstr "Le démarrage du client WAMP a échoué."
+
+#: ../Beremiz_service.py:621
+msgid "WAMP config is incomplete."
+msgstr ""
+
+#: ../Beremiz_service.py:623
+msgid "WAMP config is missing."
+msgstr ""
+
+#: ../connectors/WAMP/__init__.py:99
#, python-format
msgid "WAMP connecting to URL : %s\n"
-msgstr ""
-
-#: ../connectors/WAMP/__init__.py:131
+msgstr "WAMP se connectant à l'URL: %s\n"
+
+#: ../connectors/WAMP/__init__.py:140
msgid "WAMP connection timeout"
-msgstr ""
-
-#: ../connectors/WAMP/__init__.py:150
+msgstr "Délai de connexion WAMP dépassé"
+
+#: ../connectors/WAMP/__init__.py:158
#, python-format
msgid "WAMP connection to '%s' failed.\n"
-msgstr ""
-
-#: ../Beremiz_service.py:564
+msgstr "La connexion WAMP à '%s' a échoué.\n"
+
+#: ../Beremiz_service.py:595
msgid "WAMP import failed :"
-msgstr ""
-
-#: ../wxglade_hmi/wxglade_hmi.py:37
+msgstr "L'importation de WAMP a échoué:"
+
+#: ../runtime/WampClient.py:126
+msgid "WAMP load error: "
+msgstr ""
+
+#: ../runtime/WampClient.py:108
+msgid "WAMP session left"
+msgstr ""
+
+#: ../wxglade_hmi/wxglade_hmi.py:44
msgid "WXGLADE GUI"
msgstr "IHM WXGlade"
-#: ../dialogs/PouDialog.py:129 ../editors/LDViewer.py:891
+#: ../runtime/WampClient.py:137
+msgid "Wamp secret load error:"
+msgstr ""
+
+#: ../dialogs/PouDialog.py:137 ../editors/LDViewer.py:902
msgid "Warning"
msgstr "Attention"
-#: ../ProjectController.py:707
+#: ../ProjectController.py:726
msgid "Warnings in ST/IL/SFC code generator :\n"
msgstr "Mises en garde du generateur de code ST/IL/SFC :\n"
-#: ../dialogs/SearchInProjectDialog.py:78
+#: ../dialogs/SearchInProjectDialog.py:82
msgid "Whole Project"
msgstr "Tout le projet"
-#: ../controls/ProjectPropertiesPanel.py:120
+#: ../controls/ProjectPropertiesPanel.py:134
msgid "Width:"
msgstr "Longueur :"
-#: ../dialogs/FindInPouDialog.py:91
+#: ../dialogs/FindInPouDialog.py:94
msgid "Wrap search"
msgstr "Boucler"
-#: ../dialogs/AboutDialog.py:130
+#: ../dialogs/AboutDialog.py:126
msgid "Written by"
msgstr "Écrit par"
-#: ../features.py:34
+#: ../features.py:35
msgid "WxGlade GUI"
msgstr "Interface WxGlade"
-#: ../svgui/svgui.py:142
+#: ../svgui/svgui.py:150
msgid ""
"You don't have write permissions.\n"
"Open Inkscape anyway ?"
@@ -3556,7 +3644,7 @@
"Vous n'avez pas les permissions d'écriture.\n"
"Ouvrir Inkscape tout de même ?"
-#: ../wxglade_hmi/wxglade_hmi.py:154
+#: ../wxglade_hmi/wxglade_hmi.py:160
msgid ""
"You don't have write permissions.\n"
"Open wxGlade anyway ?"
@@ -3564,7 +3652,7 @@
"Vous n'avez pas les permissions d'écriture.\n"
"Ouvrir wxGlade tout de même ?"
-#: ../ProjectController.py:371
+#: ../ProjectController.py:390
msgid ""
"You must have permission to work on the project\n"
"Work on a project copy ?"
@@ -3572,7 +3660,7 @@
"Vous n'avez pas la permission de travailler sur le projet.\n"
"Travailler sur une copie du projet ?"
-#: ../editors/LDViewer.py:886
+#: ../editors/LDViewer.py:897
msgid ""
"You must select the block or group of blocks around which a branch should be"
" added!"
@@ -3580,74 +3668,66 @@
"Vous devez sélectionné le bloc ou le group autour duquel un ebranche doit "
"être ajoutée !"
-#: ../editors/LDViewer.py:666
+#: ../editors/LDViewer.py:677
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/SFCStepNameDialog.py:48 ../dialogs/PouNameDialog.py:46
+#: ../dialogs/SFCStepNameDialog.py:52 ../dialogs/PouNameDialog.py:50
msgid "You must type a name!"
msgstr "Vous devez saisir un nom !"
-#: ../dialogs/ForceVariableDialog.py:193
+#: ../dialogs/ForceVariableDialog.py:209
msgid "You must type a value!"
msgstr "Vous devez saisir une valeur !"
-#: ../IDEFrame.py:438
+#: ../IDEFrame.py:440
msgid "Zoom"
msgstr "Zoom"
-#: ../dialogs/DurationEditorDialog.py:155
+#: ../dialogs/DurationEditorDialog.py:158
msgid "days"
msgstr "jours"
-#: ../PLCOpenEditor.py:343
+#: ../PLCOpenEditor.py:317
#, python-format
msgid "error: %s\n"
msgstr "erreur: %s\n"
-#: ../util/ProcessLogger.py:169
+#: ../util/ProcessLogger.py:178
#, python-brace-format
msgid "exited with status {a1} (pid {a2})\n"
-msgstr ""
-
-#: ../PLCOpenEditor.py:406 ../PLCOpenEditor.py:408
-msgid "file : "
-msgstr "fichier :"
-
-#: ../dialogs/PouDialog.py:32
+msgstr "quitté avec le statut {a1} (pid {a2})\n"
+
+#: ../dialogs/PouDialog.py:36
msgid "function"
msgstr "fonction"
-#: ../PLCOpenEditor.py:409
-msgid "function : "
-msgstr "fonction :"
-
-#: ../dialogs/PouDialog.py:32
+#: ../dialogs/PouDialog.py:36
msgid "functionBlock"
msgstr "Bloc fonctionnel"
-#: ../dialogs/DurationEditorDialog.py:155
+#: ../dialogs/DurationEditorDialog.py:158
msgid "hours"
msgstr "heures"
-#: ../PLCOpenEditor.py:409
-msgid "line : "
-msgstr "ligne :"
-
-#: ../dialogs/DurationEditorDialog.py:157
+#: ../ProjectController.py:753
+msgid "matiec installation is not found\n"
+msgstr "L'installation de matiec n'est pas trouvée\n"
+
+#: ../dialogs/DurationEditorDialog.py:160
msgid "milliseconds"
-msgstr ""
-
-#: ../dialogs/DurationEditorDialog.py:156
+msgstr "millisecondes"
+
+#: ../dialogs/DurationEditorDialog.py:159
msgid "minutes"
msgstr "minutes"
-#: ../dialogs/PouDialog.py:32
+#: ../dialogs/PouDialog.py:36
msgid "program"
msgstr "programme"
-#: ../dialogs/DurationEditorDialog.py:156
+#: ../dialogs/DurationEditorDialog.py:159
msgid "seconds"
msgstr "secondes"
@@ -3663,26 +3743,28 @@
msgid "string right of"
msgstr "Caractères à droite de"
-#: ../Beremiz.py:164
+#: ../Beremiz.py:167
msgid "update info unavailable."
msgstr "Information de mise à jour non disponible."
-#: ../PLCOpenEditor.py:341
+#: ../PLCOpenEditor.py:315
#, python-format
msgid "warning: %s\n"
msgstr "attention: %s\n"
-#: ../PLCControler.py:972
+#: ../PLCControler.py:576
#, python-brace-format
msgid "{a1} \"{a2}\" can't be pasted as a {a3}."
-msgstr ""
-
-#: ../ConfigTreeNode.py:56
+msgstr "{a1} \"{a2}\" ne peut pas être collé comme {a3}."
+
+#: ../ConfigTreeNode.py:58
#, python-brace-format
msgid ""
-"{a1} XML file doesn't follow XSD schema at line %{a2}:\n"
+"{a1} XML file doesn't follow XSD schema at line {a2}:\n"
"{a3}"
msgstr ""
+"Le fichier XML {a1} ne suit pas le schéma XSD à la ligne {a2}:\n"
+"{a3}"
#: Extra XSD strings
msgid "CanFestivalSlaveNode"
@@ -3716,10 +3798,10 @@
msgstr "Driver CAN"
msgid "Generic"
-msgstr ""
+msgstr "Générique"
msgid "Command"
-msgstr ""
+msgstr "Commande"
msgid "Xenomai"
msgstr "Xenomai"
@@ -3745,6 +3827,72 @@
msgid "Win32"
msgstr "Win32"
+msgid "ModbusRequest"
+msgstr ""
+
+msgid "SlaveID"
+msgstr ""
+
+msgid "Nr_of_Channels"
+msgstr ""
+
+msgid "Start_Address"
+msgstr ""
+
+msgid "Timeout_in_ms"
+msgstr ""
+
+msgid "MemoryArea"
+msgstr ""
+
+msgid "MemoryAreaType"
+msgstr ""
+
+msgid "ModbusTCPclient"
+msgstr ""
+
+msgid "Remote_IP_Address"
+msgstr ""
+
+msgid "Remote_Port_Number"
+msgstr ""
+
+msgid "Invocation_Rate_in_ms"
+msgstr ""
+
+msgid "ModbusServerNode"
+msgstr ""
+
+msgid "Local_IP_Address"
+msgstr ""
+
+msgid "Local_Port_Number"
+msgstr ""
+
+msgid "ModbusRTUclient"
+msgstr ""
+
+msgid "Serial_Port"
+msgstr ""
+
+msgid "Baud_Rate"
+msgstr ""
+
+msgid "Parity"
+msgstr ""
+
+msgid "Stop_Bits"
+msgstr ""
+
+msgid "ModbusRTUslave"
+msgstr ""
+
+msgid "ModbusRoot"
+msgstr ""
+
+msgid "MaxRemoteTCPclients"
+msgstr ""
+
msgid "BaseParams"
msgstr "Paramètres de base"
@@ -3770,7 +3918,7 @@
msgstr "Disable_Extensions"
msgid "%(codefile_name)s"
-msgstr ""
+msgstr "%(codefile_name)s"
msgid "variables"
msgstr "variables"
@@ -3794,34 +3942,37 @@
msgstr "desc"
msgid "onchange"
-msgstr ""
+msgstr "onchange"
msgid "opts"
-msgstr ""
+msgstr "opts"
#: Extra TC6 documentation strings
msgid "0 - current time, 1 - load time from PDT"
-msgstr ""
+msgstr "0 - heure actuelle, 1 - utilise le temps donné dans PDT"
msgid "Preset datetime"
-msgstr ""
+msgstr "Date et heure prédéfinies"
msgid "Copy of IN"
msgstr "Copie de IN"
msgid "Datetime, current or relative to PDT"
-msgstr ""
+msgstr "Date et heure, actuel ou relatif à PDT"
msgid ""
"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 ""
+"L'horloge temps réel a de nombreuses utilisations, y compris l'horodatage, "
+"définir les dates et heures dans les rapports de production, dans les "
+"messages d'alarme, etc."
msgid "1 = integrate, 0 = hold"
-msgstr ""
+msgstr "1 = intégrer, 0 = retenir"
msgid "Overriding reset"
-msgstr ""
+msgstr "Réinitialisation"
msgid "Input variable"
msgstr "Variable d'entrée"
@@ -3833,115 +3984,136 @@
msgstr "Période d'échantillonnage"
msgid "NOT R1"
-msgstr ""
+msgstr "NOT R1"
msgid "Integrated output"
-msgstr ""
+msgstr "Sortie intégrale"
msgid ""
"The integral function block integrates the value of input XIN over time."
msgstr ""
+"Le bloc fonction intégral intègre la valeur de l'entrée XIN dans le temps."
msgid "0 = reset"
msgstr "0 = reset"
msgid "Input to be differentiated"
-msgstr ""
+msgstr "Entrée à dériver"
msgid "Differentiated output"
-msgstr ""
+msgstr "Sortie dérivée"
msgid ""
"The derivative function block produces an output XOUT proportional to the "
"rate of change of the input XIN."
msgstr ""
+"Le bloc fonction dérivé produit une sortie XOUT proportionnelle à la "
+"variation dans le temps de l'entrée XIN."
msgid "0 - manual , 1 - automatic"
-msgstr ""
+msgstr "0 - manuel, 1 - automatique"
msgid "Process variable"
-msgstr ""
+msgstr "Variable de processus"
msgid "Set point"
-msgstr ""
+msgstr "Point de consigne"
msgid "Manual output adjustment - Typically from transfer station"
msgstr ""
+"Réglage manuel de la sortie - Généralement à partir de la station de "
+"transfert"
msgid "Proportionality constant"
-msgstr ""
+msgstr "Constante de proportionnalité"
msgid "Reset time"
msgstr "Temps de reset"
msgid "Derivative time constant"
-msgstr ""
+msgstr "Constante de temps dérivée"
msgid "PV - SP"
-msgstr ""
+msgstr "PV - SP"
msgid "FB for integral term"
-msgstr ""
+msgstr "FB pour terme intégral"
msgid "FB for derivative term"
-msgstr ""
+msgstr "FB pour terme dérivé"
msgid ""
"The PID (proportional, Integral, Derivative) function block provides the "
"classical three term controller for closed loop control."
msgstr ""
+"Le bloc fonctionnel PID (Proportionnel, Intégral, Dérivé) fournit le "
+"contrôleur classique à trois termes pour le contrôle en boucle fermée."
msgid "0 - track X0, 1 - ramp to/track X1"
-msgstr ""
+msgstr "0 - suivre X0, 1 - rampe vers/suivre X1"
msgid "Ramp duration"
-msgstr ""
+msgstr "Durée de la rampe"
msgid "BUSY = 1 during ramping period"
-msgstr ""
+msgstr "BUSY = 1 durant la rampe"
msgid "Elapsed time of ramp"
-msgstr ""
+msgstr "Temps écoulé de la rampe"
msgid "The RAMP function block is modelled on example given in the standard."
-msgstr ""
+msgstr "Le bloc fonction RAMP est basée sur l'exemple donné dans la norme."
msgid ""
"The hysteresis function block provides a hysteresis boolean output driven by"
" the difference of two floating point (REAL) inputs XIN1 and XIN2."
msgstr ""
+"Le bloc fonction hystérésis fournit une sortie booléenne à hystérésis "
+"pilotée par la différence de deux entrées à virgule flottante (REAL) XIN1 et"
+" XIN2."
msgid "The SR bistable is a latch where the Set dominates."
-msgstr ""
+msgstr "La bistable SR est une bascule où l'état Set est dominant."
msgid "The RS bistable is a latch where the Reset dominates."
-msgstr ""
+msgstr "La bistable RS est une bascule où l'état Reset est dominant."
msgid ""
"The semaphore provides a mechanism to allow software elements mutually "
-"exclusive access to certain ressources."
-msgstr ""
+"exclusive access to certain resources."
+msgstr ""
+"Le sémaphore fournit un mécanisme permettant aux éléments logiciels "
+"d'accéder mutuellement à certaines ressources."
msgid "The output produces a single pulse when a rising edge is detected."
msgstr ""
+"La sortie produit une impulsion unique lorsqu'un front montant est détecté."
msgid "The output produces a single pulse when a falling edge is detected."
msgstr ""
+"La sortie produit une impulsion unique lorsqu'un front descendant est "
+"détecté."
msgid ""
"The up-counter can be used to signal when a count has reached a maximum "
"value."
msgstr ""
+"Le compteur peut être utilisé pour signaler qu'un compte a atteint une "
+"valeur maximale."
msgid ""
"The down-counter can be used to signal when a count has reached zero, on "
"counting down from a preset value."
msgstr ""
+"Le décompteur peut être utilisé pour signaler qu'un compte a atteint zéro, "
+"lors du décompte d'une valeur prédéfinie."
msgid ""
"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 ""
+"Le compteur-décompteur a deux entrées CU et CD. Il peut être utilisé pour "
+"compter à la fois sur une entrée et sur l'autre sur l'autre."
msgid "first input parameter"
msgstr "Premier paramètre d'entrée"
@@ -3956,19 +4128,25 @@
msgstr "Second paramètre de sortie"
msgid "internal state: 0-reset, 1-counting, 2-set"
-msgstr ""
+msgstr "état interne: 0-reset, 1-counting, 2-set"
msgid ""
"The pulse timer can be used to generate output pulses of a given time "
"duration."
msgstr ""
+"La temporisation d'impulsions peut être utilisée pour générer des impulsions"
+" de sortie d'une durée donnée."
msgid ""
"The on-delay timer can be used to delay setting an output true, for fixed "
"period after an input becomes true."
msgstr ""
+"La temporisation à retard peut être utilisée pour retarder un front montant "
+"d'une durée donnée."
msgid ""
"The off-delay timer can be used to delay setting an output false, for fixed "
"period after input goes false."
msgstr ""
+"La temporisation de retard peut être utilisée pour retarder un front "
+"descendant d'une durée donnée."