--- a/i18n/Beremiz_fr_FR.po Thu Jun 22 16:08:50 2017 +0300
+++ b/i18n/Beremiz_fr_FR.po Thu Jun 22 16:43:38 2017 +0300
@@ -2,43 +2,23 @@
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: Beremiz\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-03-26 22:55+0100\n"
-"PO-Revision-Date: 2013-03-26 23:08+0100\n"
-"Last-Translator: Laurent BESSARD <laurent.bessard@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: \n"
+"POT-Creation-Date: 2017-03-09 15:28+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"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-
-#: ../PLCOpenEditor.py:405
-msgid ""
-"\n"
-"An error has occurred.\n"
-"\n"
-"Click OK to save an error report.\n"
-"\n"
-"Please be kind enough to send this file to:\n"
-"edouard.tisserant@gmail.com\n"
-"\n"
-"Error:\n"
-msgstr ""
-"\n"
-"Une erreur est apparue.\n"
-"\n"
-"Appuyer sur 'Valider' pour enregistrer un rapport d'erreur.\n"
-"\n"
-"Envoyez ce fichier à l'adresse :\n"
-"edouard.tisserant@gmail.com\n"
-"\n"
-"Erreur:\n"
-
-#: ../Beremiz.py:1119
+"Language: fr_FR\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: ../PLCOpenEditor.py:408 ../Beremiz.py:1191
#, python-format
msgid ""
"\n"
@@ -48,223 +28,167 @@
"Please be kind enough to send this file to:\n"
"beremiz-devel@lists.sourceforge.net\n"
"\n"
-"You should now restart Beremiz.\n"
+"You should now restart program.\n"
"\n"
"Traceback:\n"
msgstr ""
"\n"
-"Une erreur inconnue (bug) est apparu. Le rapport d'erreur a été sauvé dans :\n"
+"Une exception non gérée (bug) est survenue. Le bug est inscrit dans :\n"
"(%s)\n"
"\n"
-"Envoyez ce fichier à l'adresse :\n"
+"S'il vous plaît, soyez sympa et envoyez ce fichier à :\n"
"beremiz-devel@lists.sourceforge.net\n"
"\n"
-"Vous devriez redémarrer Beremiz.\n"
-"\n"
-"Trace d'exécution:\n"
-
-#: ../controls/VariablePanel.py:77
+"Vous devriez redémarrer le programme.\n"
+"Trace:\n"
+
+#: ../controls/VariablePanel.py:72
msgid " External"
msgstr " Externe"
-#: ../controls/VariablePanel.py:76
+#: ../controls/VariablePanel.py:71
msgid " InOut"
msgstr " Entrée-Sortie"
-#: ../controls/VariablePanel.py:76
+#: ../controls/VariablePanel.py:71
msgid " Input"
msgstr " Entrée"
-#: ../controls/VariablePanel.py:77
+#: ../controls/VariablePanel.py:72
msgid " Local"
msgstr " Locale"
-#: ../controls/VariablePanel.py:76
+#: ../controls/VariablePanel.py:71
msgid " Output"
msgstr " Sortie"
-#: ../controls/VariablePanel.py:78
+#: ../controls/VariablePanel.py:73
msgid " Temp"
msgstr " Temporaire"
-#: ../PLCOpenEditor.py:415
-msgid " : "
-msgstr " : "
-
-#: ../dialogs/PouTransitionDialog.py:94
-#: ../dialogs/PouActionDialog.py:91
-#: ../dialogs/PouDialog.py:111
-#: ../dialogs/SFCTransitionDialog.py:144
+#: ../dialogs/PouTransitionDialog.py:99 ../dialogs/ProjectDialog.py:66
+#: ../dialogs/PouActionDialog.py:91 ../dialogs/PouDialog.py:113
#, python-format
msgid " and %s"
msgstr " et %s"
-#: ../ProjectController.py:917
+#: ../ProjectController.py:1110
msgid " generation failed !\n"
msgstr "la construction a échouée !\n"
-#: ../plcopen/plcopen.py:1051
+#: ../plcopen/plcopen.py:881
#, python-format
msgid "\"%s\" Data Type doesn't exist !!!"
msgstr "Le type de donnée \"%s\" n'existe pas !!!"
-#: ../plcopen/plcopen.py:1069
+#: ../plcopen/plcopen.py:899
#, python-format
msgid "\"%s\" POU already exists !!!"
msgstr "Le POU \"%s\" existe déjà !!!"
-#: ../plcopen/plcopen.py:1090
+#: ../plcopen/plcopen.py:920
#, python-format
msgid "\"%s\" POU doesn't exist !!!"
msgstr "Le POU \"%s\" n'existe pas !!!"
-#: ../editors/Viewer.py:234
+#: ../editors/Viewer.py:246
#, python-format
msgid "\"%s\" can't use itself!"
msgstr "\"%s\" ne peut pas s'utiliser lui-même !"
-#: ../IDEFrame.py:1587
-#: ../IDEFrame.py:1606
+#: ../IDEFrame.py:1651 ../IDEFrame.py:1670
#, python-format
msgid "\"%s\" config already exists!"
msgstr "La configuration \"%s\" existe déjà !"
-#: ../plcopen/plcopen.py:315
+#: ../plcopen/plcopen.py:467
#, python-format
msgid "\"%s\" configuration already exists !!!"
msgstr "La configuration \"%s\" existe déjà !!!"
-#: ../IDEFrame.py:1541
+#: ../IDEFrame.py:1601
#, python-format
msgid "\"%s\" data type already exists!"
msgstr "Le type de données \"%s\" existe déjà !"
-#: ../PLCControler.py:2165
-#: ../PLCControler.py:2169
-#, python-format
-msgid "\"%s\" element can't be pasted here!!!"
-msgstr "L'élément \"%s\" ne peut être collé ici !!!"
-
-#: ../editors/TextViewer.py:298
-#: ../editors/TextViewer.py:318
-#: ../editors/Viewer.py:250
-#: ../dialogs/PouTransitionDialog.py:105
-#: ../dialogs/ConnectionDialog.py:157
-#: ../dialogs/PouActionDialog.py:102
-#: ../dialogs/FBDBlockDialog.py:162
+#: ../dialogs/PouTransitionDialog.py:110 ../dialogs/BlockPreviewDialog.py:219
+#: ../dialogs/PouActionDialog.py:102 ../editors/Viewer.py:262
+#: ../editors/Viewer.py:330 ../editors/Viewer.py:354 ../editors/Viewer.py:374
+#: ../editors/TextViewer.py:272 ../editors/TextViewer.py:301
+#: ../controls/VariablePanel.py:396
#, python-format
msgid "\"%s\" element for this pou already exists!"
msgstr "Un élément \"%s\" existe déjà dans ce POU !"
-#: ../Beremiz.py:921
+#: ../Beremiz.py:994
#, python-format
msgid "\"%s\" folder is not a valid Beremiz project\n"
msgstr "Le dossier \"%s\" ne contient pas de projet Beremiz valide\n"
-#: ../plcopen/structures.py:105
-#, python-format
-msgid "\"%s\" function cancelled in \"%s\" POU: No input connected"
-msgstr "L'appel à la fonction \"%s\" dans le POU \"%s\" a été abandonné : aucune entrée connectée"
-
-#: ../controls/VariablePanel.py:659
-#: ../IDEFrame.py:1532
-#: ../editors/DataTypeEditor.py:554
-#: ../editors/DataTypeEditor.py:583
-#: ../dialogs/PouNameDialog.py:49
-#: ../dialogs/PouTransitionDialog.py:101
-#: ../dialogs/SFCStepNameDialog.py:51
-#: ../dialogs/ConnectionDialog.py:153
-#: ../dialogs/FBDVariableDialog.py:199
-#: ../dialogs/PouActionDialog.py:98
-#: ../dialogs/PouDialog.py:118
-#: ../dialogs/SFCStepDialog.py:122
-#: ../dialogs/FBDBlockDialog.py:158
+#: ../dialogs/SFCStepNameDialog.py:52 ../dialogs/PouTransitionDialog.py:106
+#: ../dialogs/BlockPreviewDialog.py:207 ../dialogs/PouNameDialog.py:50
+#: ../dialogs/PouActionDialog.py:98 ../dialogs/PouDialog.py:120
+#: ../editors/ResourceEditor.py:449 ../editors/ResourceEditor.py:484
+#: ../editors/DataTypeEditor.py:555 ../editors/DataTypeEditor.py:584
+#: ../editors/CodeFileEditor.py:770 ../controls/VariablePanel.py:763
+#: ../IDEFrame.py:1592
#, python-format
msgid "\"%s\" is a keyword. It can't be used!"
msgstr "\"%s\" est un mot réservé. Il ne peut être utilisé !"
-#: ../editors/Viewer.py:238
-#, python-format
-msgid "\"%s\" is already used by \"%s\"!"
-msgstr "\"%s\" est déjà utilisé par \"%s\" !"
-
-#: ../plcopen/plcopen.py:2836
+#: ../plcopen/plcopen.py:2412
#, python-format
msgid "\"%s\" is an invalid value!"
msgstr "\"%s\" n'est pas une valeur valide !"
-#: ../PLCOpenEditor.py:341
-#: ../PLCOpenEditor.py:378
+#: ../PLCOpenEditor.py:339 ../PLCOpenEditor.py:381
#, python-format
msgid "\"%s\" is not a valid folder!"
msgstr "\"%s\" n'est pas un répertoire valide !"
-#: ../controls/VariablePanel.py:657
-#: ../IDEFrame.py:1530
-#: ../editors/DataTypeEditor.py:578
-#: ../dialogs/PouNameDialog.py:47
-#: ../dialogs/PouTransitionDialog.py:99
-#: ../dialogs/SFCStepNameDialog.py:49
-#: ../dialogs/ConnectionDialog.py:151
-#: ../dialogs/PouActionDialog.py:96
-#: ../dialogs/PouDialog.py:116
-#: ../dialogs/SFCStepDialog.py:120
-#: ../dialogs/FBDBlockDialog.py:156
+#: ../dialogs/SFCStepNameDialog.py:50 ../dialogs/PouTransitionDialog.py:104
+#: ../dialogs/BlockPreviewDialog.py:203 ../dialogs/PouNameDialog.py:48
+#: ../dialogs/PouActionDialog.py:96 ../dialogs/PouDialog.py:118
+#: ../editors/ResourceEditor.py:447 ../editors/ResourceEditor.py:482
+#: ../editors/DataTypeEditor.py:579 ../editors/CodeFileEditor.py:768
+#: ../controls/VariablePanel.py:761 ../IDEFrame.py:1590
#, python-format
msgid "\"%s\" is not a valid identifier!"
msgstr "\"%s\" n'est pas un identifiant valide !"
-#: ../IDEFrame.py:221
-#: ../IDEFrame.py:2313
-#: ../IDEFrame.py:2332
-#, python-format
-msgid "\"%s\" is used by one or more POUs. It can't be removed!"
-msgstr "Le POU \"%s\" est utilisé par un ou plusieurs POUs. Il ne peut être supprimé !"
-
-#: ../controls/VariablePanel.py:313
-#: ../IDEFrame.py:1550
-#: ../editors/TextViewer.py:296
-#: ../editors/TextViewer.py:316
-#: ../editors/TextViewer.py:353
-#: ../editors/Viewer.py:248
-#: ../editors/Viewer.py:293
-#: ../editors/Viewer.py:311
-#: ../dialogs/ConnectionDialog.py:155
-#: ../dialogs/PouDialog.py:120
-#: ../dialogs/FBDBlockDialog.py:160
+#: ../IDEFrame.py:2395
+#, 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:211 ../dialogs/PouDialog.py:122
+#: ../editors/Viewer.py:260 ../editors/Viewer.py:315 ../editors/Viewer.py:345
+#: ../editors/Viewer.py:367 ../editors/TextViewer.py:270
+#: ../editors/TextViewer.py:299 ../editors/TextViewer.py:350
+#: ../editors/TextViewer.py:373 ../controls/VariablePanel.py:338
+#: ../IDEFrame.py:1610
#, python-format
msgid "\"%s\" pou already exists!"
msgstr "Le POU \"%s\" existe déjà !"
-#: ../plcopen/plcopen.py:346
-#, python-format
-msgid "\"%s\" resource already exists in \"%s\" configuration !!!"
-msgstr "La ressource \"%s\" existe déjà dans la configuration \"%s\" !!!"
-
-#: ../plcopen/plcopen.py:362
-#, python-format
-msgid "\"%s\" resource doesn't exist in \"%s\" configuration !!!"
-msgstr "La ressource \"%s\" n'existe pas dans la configuration \"%s\" !!!"
-
-#: ../dialogs/SFCStepNameDialog.py:57
-#: ../dialogs/SFCStepDialog.py:128
+#: ../dialogs/SFCStepNameDialog.py:58
#, python-format
msgid "\"%s\" step already exists!"
msgstr "L'étape \"%s\" existe déjà !"
-#: ../editors/DataTypeEditor.py:549
+#: ../editors/DataTypeEditor.py:550
#, python-format
msgid "\"%s\" value already defined!"
msgstr "La valeur \"%s\" est déjà définie !"
-#: ../editors/DataTypeEditor.py:744
-#: ../dialogs/ArrayTypeDialog.py:97
+#: ../dialogs/ArrayTypeDialog.py:97 ../editors/DataTypeEditor.py:745
#, python-format
msgid "\"%s\" value isn't a valid array dimension!"
msgstr "\"%s\" n'est pas une dimension de tableau valide !"
-#: ../editors/DataTypeEditor.py:751
-#: ../dialogs/ArrayTypeDialog.py:103
+#: ../dialogs/ArrayTypeDialog.py:103 ../editors/DataTypeEditor.py:752
#, python-format
msgid ""
"\"%s\" value isn't a valid array dimension!\n"
@@ -273,202 +197,252 @@
"\"%s\" n'est pas une dimension de tableau valide !\n"
"La valeur de droite doit être supérieur à celle de gauche."
-#: ../PLCControler.py:847
-#, python-format
-msgid "%s \"%s\" can't be pasted as a %s."
-msgstr "Le %s \"%s\" ne peut être collé en tant que %s."
-
-#: ../PLCControler.py:1476
+#: ../PLCGenerator.py:1101
+#, 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:250
+#, python-brace-format
+msgid "\"{a1}\" is already used by \"{a2}\"!"
+msgstr "\"{a1}\" est déjà utilisé par \"{a2}\"!"
+
+#: ../plcopen/plcopen.py:491
+#, 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:509
+#, 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
+#, python-format
+msgid "%03gms"
+msgstr "%03gms"
+
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:569
+#, python-format
+msgid "%dd"
+msgstr "%dj"
+
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:56
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:570
+#, python-format
+msgid "%dh"
+msgstr "%dh"
+
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:55
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:571
+#, python-format
+msgid "%dm"
+msgstr "%dm"
+
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:53
+#, python-format
+msgid "%dms"
+msgstr "%dms"
+
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:54
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:572
+#, python-format
+msgid "%ds"
+msgstr "%ds"
+
+#: ../PLCControler.py:1531
#, python-format
msgid "%s Data Types"
msgstr "Types de données de %s"
-#: ../editors/GraphicViewer.py:278
-#, python-format
-msgid "%s Graphics"
-msgstr "Graphique %s"
-
-#: ../PLCControler.py:1471
+#: ../PLCControler.py:1514
#, python-format
msgid "%s POUs"
msgstr "POUs de %s"
-#: ../canfestival/SlaveEditor.py:46
-#: ../canfestival/NetworkEditor.py:67
+#: ../canfestival/SlaveEditor.py:69 ../canfestival/NetworkEditor.py:90
#, python-format
msgid "%s Profile"
msgstr "Profil %s"
-#: ../plcopen/plcopen.py:1790
-#: ../plcopen/plcopen.py:1800
-#: ../plcopen/plcopen.py:1810
-#: ../plcopen/plcopen.py:1820
-#: ../plcopen/plcopen.py:1829
+#: ../plcopen/plcopen.py:1645 ../plcopen/plcopen.py:1652
+#: ../plcopen/plcopen.py:1664 ../plcopen/plcopen.py:1672
+#: ../plcopen/plcopen.py:1682
#, python-format
msgid "%s body don't have instances!"
msgstr "Le code d'un %s n'a pas d'instances !"
-#: ../plcopen/plcopen.py:1852
-#: ../plcopen/plcopen.py:1859
+#: ../plcopen/plcopen.py:1700 ../plcopen/plcopen.py:1707
+#: ../plcopen/plcopen.py:1714
#, python-format
msgid "%s body don't have text!"
msgstr "Le code d'un %s n'a pas de texte !"
-#: ../IDEFrame.py:369
+#: ../IDEFrame.py:386
msgid "&Add Element"
msgstr "&Ajouter un élément"
-#: ../IDEFrame.py:339
+#: ../dialogs/AboutDialog.py:73 ../dialogs/AboutDialog.py:121
+#: ../dialogs/AboutDialog.py:158
+msgid "&Close"
+msgstr "&Close"
+
+#: ../IDEFrame.py:356
msgid "&Configuration"
msgstr "&Configuration"
-#: ../IDEFrame.py:330
+#: ../IDEFrame.py:345
msgid "&Data Type"
msgstr "&Type de donnée"
-#: ../IDEFrame.py:373
+#: ../IDEFrame.py:390
msgid "&Delete"
msgstr "&Supprimer"
-#: ../IDEFrame.py:322
+#: ../IDEFrame.py:337
msgid "&Display"
msgstr "&Affichage"
-#: ../IDEFrame.py:321
+#: ../IDEFrame.py:336
msgid "&Edit"
msgstr "&Editer"
-#: ../IDEFrame.py:320
+#: ../IDEFrame.py:335
msgid "&File"
msgstr "&Fichier"
-#: ../IDEFrame.py:332
+#: ../IDEFrame.py:347
msgid "&Function"
msgstr "&Fonction"
-#: ../IDEFrame.py:323
+#: ../IDEFrame.py:338
msgid "&Help"
msgstr "&Aide"
-#: ../IDEFrame.py:336
+#: ../dialogs/AboutDialog.py:72
+msgid "&License"
+msgstr "&License"
+
+#: ../IDEFrame.py:351
msgid "&Program"
msgstr "&Programme"
-#: ../PLCOpenEditor.py:129
+#: ../PLCOpenEditor.py:125
msgid "&Properties"
msgstr "&Propriétés"
-#: ../Beremiz.py:312
+#: ../Beremiz.py:324
msgid "&Recent Projects"
msgstr "Projets &récent"
-#: ../Beremiz.py:354
+#: ../IDEFrame.py:353
msgid "&Resource"
msgstr "&Ressource"
-#: ../controls/SearchResultPanel.py:252
-#, python-format
-msgid "'%s' - %d match in project"
-msgstr "'%s' - %d correspondance dans le projet"
-
-#: ../controls/SearchResultPanel.py:254
-#, python-format
-msgid "'%s' - %d matches in project"
-msgstr "'%s' - %d correspondances dans le projet"
-
-#: ../connectors/PYRO/__init__.py:51
-#, python-format
-msgid "'%s' is located at %s\n"
-msgstr "'%s' is disponible à l'adresse %s\n"
-
-#: ../controls/SearchResultPanel.py:304
+#: ../controls/SearchResultPanel.py:239
+#, python-brace-format
+msgid "'{a1}' - {a2} match in project"
+msgstr "'{a1}' - {a2} concordent dans le projet"
+
+#: ../controls/SearchResultPanel.py:241
+#, python-brace-format
+msgid "'{a1}' - {a2} matches in project"
+msgstr "'{a1}' - {a2} concordent dans le projet"
+
+#: ../connectors/PYRO/__init__.py:90
+#, python-brace-format
+msgid "'{a1}' is located at {a2}\n"
+msgstr "'{a1}' est situé dans {a2}\n"
+
+#: ../controls/SearchResultPanel.py:291
#, python-format
msgid "(%d matches)"
msgstr "(%d correspondances)"
-#: ../PLCOpenEditor.py:393
-#: ../PLCOpenEditor.py:395
-#: ../PLCOpenEditor.py:396
+#: ../PLCOpenEditor.py:396 ../PLCOpenEditor.py:398 ../PLCOpenEditor.py:399
msgid ", "
msgstr ", "
-#: ../dialogs/PouTransitionDialog.py:96
-#: ../dialogs/PouActionDialog.py:93
-#: ../dialogs/PouDialog.py:113
-#: ../dialogs/SFCTransitionDialog.py:146
+#: ../dialogs/PouTransitionDialog.py:101 ../dialogs/PouActionDialog.py:93
+#: ../dialogs/PouDialog.py:115
#, python-format
msgid ", %s"
msgstr ", %s"
-#: ../PLCOpenEditor.py:391
+#: ../PLCOpenEditor.py:394
msgid ". "
msgstr ". "
-#: ../ProjectController.py:1294
-msgid "... debugger recovered\n"
-msgstr "... déboggueur operationel\n"
-
-#: ../IDEFrame.py:1553
-#: ../IDEFrame.py:1595
-#: ../IDEFrame.py:1614
-#: ../dialogs/PouDialog.py:122
-#, python-format
-msgid "A POU has an element named \"%s\". This could cause a conflict. Do you wish to continue?"
-msgstr "Un POU a un élément nommé \"%s\". Cela peut générer des conflits. Voulez-vous continuer ?"
-
-#: ../controls/VariablePanel.py:661
-#: ../IDEFrame.py:1565
-#: ../IDEFrame.py:1576
-#: ../dialogs/PouNameDialog.py:51
-#: ../dialogs/PouTransitionDialog.py:103
-#: ../dialogs/SFCStepNameDialog.py:53
-#: ../dialogs/PouActionDialog.py:100
-#: ../dialogs/SFCStepDialog.py:124
+#: ../controls/LogViewer.py:279
+msgid "1d"
+msgstr "1j"
+
+#: ../controls/LogViewer.py:280
+msgid "1h"
+msgstr "1h"
+
+#: ../controls/LogViewer.py:281
+msgid "1m"
+msgstr "1m"
+
+#: ../controls/LogViewer.py:282
+msgid "1s"
+msgstr "1s"
+
+#: ../dialogs/PouDialog.py:124 ../IDEFrame.py:1613 ../IDEFrame.py:1659
+#: ../IDEFrame.py:1678
+#, python-format
+msgid ""
+"A POU has an element named \"%s\". This could cause a conflict. Do you wish "
+"to continue?"
+msgstr ""
+"Un POU a un élément nommé \"%s\". Cela peut générer des conflits. Voulez-"
+"vous continuer ?"
+
+#: ../dialogs/SFCStepNameDialog.py:54 ../dialogs/PouTransitionDialog.py:108
+#: ../dialogs/PouNameDialog.py:52 ../dialogs/PouActionDialog.py:100
+#: ../controls/VariablePanel.py:765 ../IDEFrame.py:1627 ../IDEFrame.py:1640
#, python-format
msgid "A POU named \"%s\" already exists!"
msgstr "Un POU nommé \"%s\" existe déjà !"
-#: ../ConfigTreeNode.py:388
-#, python-format
-msgid "A child named \"%s\" already exist -> \"%s\"\n"
-msgstr "Un noeud enfant nommé \"%s\" existe déjà -> \"%s\"\n"
-
-#: ../dialogs/BrowseLocationsDialog.py:212
+#: ../ConfigTreeNode.py:424
+#, python-brace-format
+msgid "A child named \"{a1}\" already exists -> \"{a2}\"\n"
+msgstr "Un enfant nommé \"{a1}\" existe déjà -> \"{a2}\"\n"
+
+#: ../dialogs/BrowseLocationsDialog.py:216
msgid "A location must be selected!"
msgstr "Une adresse doit être sélectionné !"
-#: ../controls/VariablePanel.py:663
-#: ../IDEFrame.py:1567
-#: ../IDEFrame.py:1578
-#: ../dialogs/SFCStepNameDialog.py:55
-#: ../dialogs/SFCStepDialog.py:126
+#: ../editors/ResourceEditor.py:451
+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:767
+#: ../IDEFrame.py:1629 ../IDEFrame.py:1642
#, python-format
msgid "A variable with \"%s\" as name already exists in this pou!"
msgstr "Une variable nommée \"%s\" existe déjà dans ce POU !"
-#: ../Beremiz.py:364
-#: ../PLCOpenEditor.py:162
+#: ../editors/CodeFileEditor.py:774
+#, python-format
+msgid "A variable with \"%s\" as name already exists!"
+msgstr "Une variable avec le nom \"%s\" existe déjà !"
+
+#: ../dialogs/AboutDialog.py:48 ../PLCOpenEditor.py:158 ../Beremiz.py:381
msgid "About"
msgstr "A propos"
-#: ../Beremiz.py:957
-msgid "About Beremiz"
-msgstr "A propos de Beremiz"
-
-#: ../PLCOpenEditor.py:355
-msgid "About PLCOpenEditor"
-msgstr "A propos de PLCOpenEditor"
-
#: ../plcopen/iec_std.csv:22
msgid "Absolute number"
msgstr "Nombre absolu"
-#: ../dialogs/ActionBlockDialog.py:41
-#: ../dialogs/SFCStepDialog.py:69
+#: ../dialogs/SFCStepDialog.py:72 ../dialogs/ActionBlockDialog.py:42
msgid "Action"
msgstr "Action"
-#: ../editors/Viewer.py:494
+#: ../editors/Viewer.py:555 ../editors/Viewer.py:2356
msgid "Action Block"
msgstr "Ajouter un bloc fonctionnel"
@@ -480,116 +454,110 @@
msgid "Action Name:"
msgstr "Nom de l'action :"
-#: ../plcopen/plcopen.py:1490
+#: ../plcopen/plcopen.py:1359
#, python-format
msgid "Action with name %s doesn't exist!"
msgstr "L'action nommée %s n'existe pas !"
-#: ../PLCControler.py:95
+#: ../PLCControler.py:96
msgid "Actions"
msgstr "Actions"
-#: ../dialogs/ActionBlockDialog.py:134
+#: ../dialogs/ActionBlockDialog.py:133
msgid "Actions:"
msgstr "Actions :"
-#: ../editors/Viewer.py:999
+#: ../editors/Viewer.py:1110
msgid "Active"
msgstr "Actif"
-#: ../canfestival/SlaveEditor.py:57
-#: ../canfestival/NetworkEditor.py:78
-#: ../Beremiz.py:987
-#: ../editors/Viewer.py:527
+#: ../canfestival/SlaveEditor.py:80 ../canfestival/NetworkEditor.py:101
+#: ../editors/Viewer.py:588 ../Beremiz.py:1060
msgid "Add"
msgstr "Ajouter"
-#: ../IDEFrame.py:1801
-#: ../IDEFrame.py:1832
+#: ../IDEFrame.py:1889 ../IDEFrame.py:1924
msgid "Add Action"
msgstr "Ajouter une action"
-#: ../features.py:8
+#: ../features.py:32
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:1784
+msgstr ""
+"Ajoute un code C ayant accès à des variables localisées de façon synchrone"
+
+#: ../IDEFrame.py:1872
msgid "Add Configuration"
msgstr "Ajouter une configuration"
-#: ../IDEFrame.py:1764
+#: ../IDEFrame.py:1852
msgid "Add DataType"
msgstr "Ajouter un type de donnée"
-#: ../editors/Viewer.py:452
+#: ../editors/Viewer.py:513
msgid "Add Divergence Branch"
msgstr "Ajouter une branche à la divergence"
-#: ../dialogs/DiscoveryDialog.py:115
+#: ../dialogs/DiscoveryDialog.py:116
msgid "Add IP"
msgstr "Ajouter IP"
-#: ../IDEFrame.py:1772
+#: ../IDEFrame.py:1860
msgid "Add POU"
msgstr "Ajouter un POU"
-#: ../features.py:9
+#: ../features.py:33
msgid "Add Python code executed asynchronously"
msgstr "Ajoute un code Python executé de façon asynchone"
-#: ../IDEFrame.py:1812
-#: ../IDEFrame.py:1858
+#: ../IDEFrame.py:1900 ../IDEFrame.py:1950
msgid "Add Resource"
msgstr "Ajouter une resource"
-#: ../IDEFrame.py:1790
-#: ../IDEFrame.py:1829
+#: ../IDEFrame.py:1878 ../IDEFrame.py:1921
msgid "Add Transition"
msgstr "Ajouter une transition"
-#: ../editors/Viewer.py:441
+#: ../editors/Viewer.py:500
msgid "Add Wire Segment"
msgstr "Ajouter un segment au fil"
-#: ../editors/SFCViewer.py:359
+#: ../editors/SFCViewer.py:433
msgid "Add a new initial step"
msgstr "Ajouter une nouvelle étape initiale"
-#: ../editors/Viewer.py:2363
-#: ../editors/SFCViewer.py:696
+#: ../editors/Viewer.py:2717 ../editors/SFCViewer.py:770
msgid "Add a new jump"
msgstr "Ajouter un nouveau renvoi"
-#: ../editors/SFCViewer.py:381
+#: ../editors/SFCViewer.py:455
msgid "Add a new step"
msgstr "Ajouter une nouvelle étape"
-#: ../features.py:10
+#: ../features.py:34
msgid "Add a simple WxGlade based GUI."
msgstr "Ajoute une interface simple utilisant WxGlade"
-#: ../dialogs/ActionBlockDialog.py:138
+#: ../dialogs/ActionBlockDialog.py:137
msgid "Add action"
msgstr "Ajouter une action"
-#: ../editors/DataTypeEditor.py:351
+#: ../editors/DataTypeEditor.py:352
msgid "Add element"
msgstr "Ajouter un élément"
-#: ../editors/ResourceEditor.py:259
+#: ../editors/ResourceEditor.py:268
msgid "Add instance"
msgstr "Ajouter une instance"
-#: ../canfestival/NetworkEditor.py:80
+#: ../canfestival/NetworkEditor.py:103
msgid "Add slave"
msgstr "Ajouter un esclave"
-#: ../editors/ResourceEditor.py:230
+#: ../editors/ResourceEditor.py:239
msgid "Add task"
msgstr "Ajouter une tâche"
-#: ../controls/VariablePanel.py:380
-#: ../c_ext/CFileEditor.py:517
+#: ../editors/CodeFileEditor.py:658 ../controls/VariablePanel.py:450
msgid "Add variable"
msgstr "Ajouter une variable"
@@ -597,23 +565,23 @@
msgid "Addition"
msgstr "Addition"
-#: ../plcopen/structures.py:249
+#: ../plcopen/definitions.py:47
msgid "Additional function blocks"
msgstr "Blocs fonctionnels additionnels"
-#: ../editors/Viewer.py:510
+#: ../editors/Viewer.py:571
msgid "Adjust Block Size"
msgstr "Ajuster la taille des blocs"
-#: ../editors/Viewer.py:1458
+#: ../editors/Viewer.py:1648
msgid "Alignment"
msgstr "Alignement"
-#: ../controls/VariablePanel.py:75
-#: ../dialogs/BrowseLocationsDialog.py:34
-#: ../dialogs/BrowseLocationsDialog.py:43
-#: ../dialogs/BrowseLocationsDialog.py:136
-#: ../dialogs/BrowseLocationsDialog.py:139
+#: ../dialogs/BrowseLocationsDialog.py:39
+#: ../dialogs/BrowseLocationsDialog.py:47
+#: ../dialogs/BrowseLocationsDialog.py:140
+#: ../dialogs/BrowseLocationsDialog.py:143 ../controls/LogViewer.py:298
+#: ../controls/VariablePanel.py:70
msgid "All"
msgstr "Tout"
@@ -621,18 +589,24 @@
msgid "All files (*.*)|*.*|CSV files (*.csv)|*.csv"
msgstr "Tous les fichiers|*.*|Fichiers CSV (*.csv)|*.csv"
-#: ../ProjectController.py:1373
+#: ../ProjectController.py:1644
msgid "Already connected. Please disconnect\n"
msgstr "Déjà connecté. Veuillez déconnecter\n"
-#: ../editors/DataTypeEditor.py:593
+#: ../editors/DataTypeEditor.py:594
#, python-format
msgid "An element named \"%s\" already exists in this structure!"
msgstr "Un élément nommé \"%s\" existe déjà dans la structure !"
-#: ../dialogs/ConnectionDialog.py:98
+#: ../editors/ResourceEditor.py:486
+msgid "An instance with the same name already exists!"
+msgstr "Une instance avec le même nom existe déjà !"
+
+#: ../dialogs/ConnectionDialog.py:96
msgid "Apply name modification to all continuations with the same name"
-msgstr "Appliquer la modification de nom à toutes les prolongements portant ce même nom"
+msgstr ""
+"Appliquer la modification de nom à toutes les prolongements portant ce même "
+"nom"
#: ../plcopen/iec_std.csv:31
msgid "Arc cosine"
@@ -650,9 +624,8 @@
msgid "Arithmetic"
msgstr "Arithmétique"
-#: ../controls/VariablePanel.py:732
-#: ../editors/DataTypeEditor.py:54
-#: ../editors/DataTypeEditor.py:634
+#: ../editors/DataTypeEditor.py:54 ../editors/DataTypeEditor.py:635
+#: ../controls/VariablePanel.py:841
msgid "Array"
msgstr "Tableau"
@@ -660,7 +633,7 @@
msgid "Assignment"
msgstr "Assignation"
-#: ../dialogs/FBDVariableDialog.py:197
+#: ../dialogs/FBDVariableDialog.py:217
msgid "At least a variable or an expression must be selected!"
msgstr "Au moins une variable ou une expression doit être sélectionné !"
@@ -672,7 +645,7 @@
msgid "Author Name (optional):"
msgstr "Nom de l'auteur (optionel) :"
-#: ../dialogs/FindInPouDialog.py:72
+#: ../dialogs/FindInPouDialog.py:79
msgid "Backward"
msgstr "Vers le haut"
@@ -684,25 +657,21 @@
msgid "Bad domain name at "
msgstr "Mauvais nom de domaine à l'adresse"
-#: ../canfestival/config_utils.py:341
-#: ../canfestival/config_utils.py:623
+#: ../canfestival/config_utils.py:342 ../canfestival/config_utils.py:630
#, python-format
msgid "Bad location size : %s"
msgstr "Mauvaise taille d'adresse : %s"
-#: ../editors/DataTypeEditor.py:174
-#: ../editors/DataTypeEditor.py:204
-#: ../editors/DataTypeEditor.py:296
-#: ../dialogs/ArrayTypeDialog.py:55
+#: ../dialogs/ArrayTypeDialog.py:55 ../editors/DataTypeEditor.py:175
+#: ../editors/DataTypeEditor.py:205 ../editors/DataTypeEditor.py:297
msgid "Base Type:"
msgstr "Type de base :"
-#: ../controls/VariablePanel.py:702
-#: ../editors/DataTypeEditor.py:624
+#: ../editors/DataTypeEditor.py:625 ../controls/VariablePanel.py:799
msgid "Base Types"
msgstr "Types de base"
-#: ../Beremiz.py:511
+#: ../Beremiz.py:553
msgid "Beremiz"
msgstr "Beremiz"
@@ -734,154 +703,173 @@
msgid "Bitwise inverting"
msgstr "Inversion bit à bit"
-#: ../editors/Viewer.py:464
+#: ../editors/Viewer.py:525 ../editors/Viewer.py:2369
msgid "Block"
msgstr "Block"
-#: ../dialogs/FBDBlockDialog.py:38
+#: ../dialogs/FBDBlockDialog.py:59
msgid "Block Properties"
msgstr "Propriétés du bloc"
-#: ../editors/Viewer.py:433
+#: ../editors/TextViewer.py:262
+msgid "Block name"
+msgstr "Nom du bloc"
+
+#: ../editors/Viewer.py:491
msgid "Bottom"
msgstr "Bas"
+#: ../ProjectController.py:1322
+msgid "Broken"
+msgstr "Cassé"
+
#: ../dialogs/BrowseValuesLibraryDialog.py:37
#, python-format
msgid "Browse %s values library"
msgstr "Explorer la liste des valeurs du paramètre '%s'"
-#: ../dialogs/BrowseLocationsDialog.py:61
+#: ../dialogs/BrowseLocationsDialog.py:65
msgid "Browse Locations"
msgstr "Naviger dans les adresses"
-#: ../ProjectController.py:1519
+#: ../ProjectController.py:1790
msgid "Build"
msgstr "Compiler"
-#: ../ProjectController.py:1079
+#: ../ProjectController.py:1256
msgid "Build directory already clean\n"
msgstr "Le répertoire de compilation est déjà nettoyé\n"
-#: ../ProjectController.py:1520
+#: ../ProjectController.py:1791
msgid "Build project into build folder"
msgstr "Compiler le projet dans le répertoire ce compilation"
-#: ../ProjectController.py:937
+#: ../ProjectController.py:1039
msgid "C Build crashed !\n"
msgstr "La compilation du C a mal fonctionné !\n"
-#: ../ProjectController.py:934
+#: ../ProjectController.py:1036
msgid "C Build failed.\n"
msgstr "La compilation du C a échouée !\n"
-#: ../c_ext/CFileEditor.py:731
+#: ../c_ext/CFileEditor.py:63
msgid "C code"
msgstr "Code C"
-#: ../ProjectController.py:922
+#: ../ProjectController.py:1114
msgid "C code generated successfully.\n"
msgstr "Code C généré avec succès.\n"
-#: ../targets/toolchain_gcc.py:132
+#: ../targets/toolchain_makefile.py:122
+msgid "C compilation failed.\n"
+msgstr "La compilation a échouée\n"
+
+#: ../targets/toolchain_gcc.py:156
#, python-format
msgid "C compilation of %s failed.\n"
msgstr "La compilation C de %s a échouée.\n"
-#: ../features.py:8
+#: ../features.py:32
msgid "C extension"
msgstr "Extension C"
-#: ../canfestival/NetworkEditor.py:29
+#: ../dialogs/AboutDialog.py:71
+msgid "C&redits"
+msgstr "C&redits"
+
+#: ../canfestival/NetworkEditor.py:52
msgid "CANOpen network"
msgstr "Réseau CANOpen"
-#: ../canfestival/SlaveEditor.py:21
+#: ../canfestival/SlaveEditor.py:44
msgid "CANOpen slave"
msgstr "Esclave CANOpen"
-#: ../features.py:7
+#: ../features.py:31
msgid "CANopen support"
msgstr "Support CANopen"
-#: ../plcopen/plcopen.py:1732
-#: ../plcopen/plcopen.py:1746
-#: ../plcopen/plcopen.py:1767
-#: ../plcopen/plcopen.py:1783
+#: ../plcopen/plcopen.py:1584 ../plcopen/plcopen.py:1598
+#: ../plcopen/plcopen.py:1622 ../plcopen/plcopen.py:1638
msgid "Can only generate execution order on FBD networks!"
msgstr "L'ordre d'exécution ne peut être généré que dans les FBD !"
-#: ../controls/VariablePanel.py:256
+#: ../controls/VariablePanel.py:267
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:336
+msgstr ""
+"Une adresse ne peut être affecté qu'à des variables locales ou globales"
+
+#: ../PLCOpenEditor.py:334
#, python-format
msgid "Can't generate program to file %s!"
msgstr "Le programme n'a pu être généré dans le fichier \"%s\" !"
-#: ../controls/VariablePanel.py:254
+#: ../controls/VariablePanel.py:265
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:376
+#: ../PLCOpenEditor.py:379
#, 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:300
+#: ../controls/VariablePanel.py:313
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:490
-#, python-format
-msgid "Cannot create child %s of type %s "
-msgstr "Impossible d'ajouter un élément \"%s\" de type \"%s\""
-
-#: ../ConfigTreeNode.py:417
+msgstr ""
+"Une valeur initiale ne peut être affectée une instance de Function Block"
+
+#: ../ConfigTreeNode.py:529
+#, python-brace-format
+msgid "Cannot create child {a1} of type {a2} "
+msgstr "Impossible de créer l'enfant {a1} de type {a2}"
+
+#: ../ConfigTreeNode.py:454
#, python-format
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:92
+#: ../connectors/PYRO/__init__.py:131
msgid "Cannot get PLC status - connection failed.\n"
msgstr "Impossible d'obtenir le statut de l'automate - la connexion a échoué.\n"
-#: ../ProjectController.py:737
+#: ../ProjectController.py:902
msgid "Cannot open/parse VARIABLES.csv!\n"
msgstr "Impossible d'ouvrir ou d'analyser le fichier VARIABLES.csv !\n"
-#: ../canfestival/config_utils.py:371
-#, python-format
-msgid "Cannot set bit offset for non bool '%s' variable (ID:%d,Idx:%x,sIdx:%x))"
-msgstr "Impossible de définir un numéro de bit sur la variable '%s' non booléenne (ID:%d,Idx:%x,sIdx:%x)"
-
-#: ../dialogs/FindInPouDialog.py:81
-#: ../dialogs/SearchInProjectDialog.py:67
+#: ../canfestival/config_utils.py:374
+#, python-brace-format
+msgid ""
+"Cannot set bit offset for non bool '{a1}' variable "
+"(ID:{a2},Idx:{a3},sIdx:{a4}))"
+msgstr ""
+"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:88
msgid "Case sensitive"
msgstr "Respecter la casse"
-#: ../editors/Viewer.py:428
+#: ../editors/Viewer.py:486
msgid "Center"
msgstr "Centre"
-#: ../Beremiz_service.py:326
+#: ../Beremiz_service.py:266
msgid "Change IP of interface to bind"
msgstr "Changer l'adresse IP de l'interface à lier"
-#: ../Beremiz_service.py:325
+#: ../Beremiz_service.py:265
msgid "Change Name"
msgstr "Changer le nom"
-#: ../IDEFrame.py:1850
+#: ../IDEFrame.py:1942
msgid "Change POU Type To"
msgstr "Changer le type du POU pour"
-#: ../Beremiz_service.py:327
+#: ../Beremiz_service.py:267
msgid "Change Port Number"
msgstr "Changer le numéro de port"
-#: ../Beremiz_service.py:328
+#: ../Beremiz_service.py:268
msgid "Change working directory"
msgstr "Changer le dossier de travail"
@@ -889,23 +877,20 @@
msgid "Character string"
msgstr "Chaîne de caractères"
-#: ../svgui/svgui.py:92
+#: ../svgui/svgui.py:125
msgid "Choose a SVG file"
msgstr "Choisissez un fichier SVG"
-#: ../ProjectController.py:364
+#: ../ProjectController.py:501
msgid "Choose a directory to save project"
msgstr "Choisissez un dossier où enregistrer le projet"
-#: ../canfestival/canfestival.py:136
-#: ../PLCOpenEditor.py:294
-#: ../PLCOpenEditor.py:326
-#: ../PLCOpenEditor.py:370
+#: ../canfestival/canfestival.py:160 ../PLCOpenEditor.py:292
+#: ../PLCOpenEditor.py:324 ../PLCOpenEditor.py:373
msgid "Choose a file"
msgstr "Choisissez un fichier"
-#: ../Beremiz.py:858
-#: ../Beremiz.py:893
+#: ../Beremiz.py:931 ../Beremiz.py:966
msgid "Choose a project"
msgstr "Choisissez un projet"
@@ -914,81 +899,86 @@
msgid "Choose a value for %s:"
msgstr "Choisissez une valeur pour le paramètre %s :"
-#: ../Beremiz_service.py:378
+#: ../Beremiz_service.py:323
msgid "Choose a working directory "
msgstr "Choisissez un dossier de travail"
-#: ../ProjectController.py:288
+#: ../ProjectController.py:408
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:255
+msgstr ""
+"Le répertoire ne contient pas de programme. Ce n'est pas un projet valide !"
+
+#: ../ProjectController.py:375
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:58
-#: ../controls/VariablePanel.py:59
+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
msgid "Class"
msgstr "Classe"
-#: ../controls/VariablePanel.py:371
+#: ../controls/VariablePanel.py:441
msgid "Class Filter:"
msgstr "Filtre de classe :"
-#: ../dialogs/FBDVariableDialog.py:62
+#: ../dialogs/FBDVariableDialog.py:69
msgid "Class:"
msgstr "Classe :"
-#: ../ProjectController.py:1523
+#: ../ProjectController.py:1794
msgid "Clean"
msgstr "Nettoyer"
-#: ../ProjectController.py:1525
+#: ../controls/LogViewer.py:318
+msgid "Clean log messages"
+msgstr "Nettoyer les messages de log"
+
+#: ../ProjectController.py:1796
msgid "Clean project build folder"
msgstr "Nettoyer le répertoire de compilation"
-#: ../ProjectController.py:1076
+#: ../ProjectController.py:1253
msgid "Cleaning the build directory\n"
msgstr "Répertoire de compilation en cours de nettoyage\n"
-#: ../IDEFrame.py:416
+#: ../IDEFrame.py:435
msgid "Clear Errors"
msgstr "Effacer les erreurs"
-#: ../editors/Viewer.py:520
+#: ../editors/Viewer.py:582
msgid "Clear Execution Order"
msgstr "Effacer l'ordre d'exécution"
-#: ../editors/GraphicViewer.py:125
-msgid "Clear the graph values"
-msgstr "Vider les valeurs du graphique"
-
-#: ../Beremiz.py:633
-#: ../PLCOpenEditor.py:202
+#: ../dialogs/SearchInProjectDialog.py:105 ../dialogs/FindInPouDialog.py:111
+msgid "Close"
+msgstr "Fermer"
+
+#: ../PLCOpenEditor.py:199 ../Beremiz.py:693
msgid "Close Application"
msgstr "Fermer l'application"
-#: ../IDEFrame.py:972
-#: ../Beremiz.py:321
-#: ../Beremiz.py:587
-#: ../PLCOpenEditor.py:112
+#: ../PLCOpenEditor.py:108 ../Beremiz.py:333 ../Beremiz.py:637
+#: ../IDEFrame.py:1009
msgid "Close Project"
msgstr "Fermer le projet"
-#: ../Beremiz.py:319
-#: ../PLCOpenEditor.py:110
+#: ../PLCOpenEditor.py:106 ../Beremiz.py:331
msgid "Close Tab"
msgstr "Fermer l'onglet"
-#: ../editors/Viewer.py:480
+#: ../editors/Viewer.py:541 ../editors/Viewer.py:2377
msgid "Coil"
msgstr "Relai"
-#: ../editors/Viewer.py:500
-#: ../editors/LDViewer.py:506
+#: ../editors/Viewer.py:561 ../editors/LDViewer.py:506
msgid "Comment"
msgstr "Commentaire"
+#: ../dialogs/ProjectDialog.py:57
+msgid "Company Name"
+msgstr "Nom de l'entreprise"
+
#: ../controls/ProjectPropertiesPanel.py:94
msgid "Company Name (required):"
msgstr "Nom de l'entreprise (obligatoire) :"
@@ -1001,7 +991,7 @@
msgid "Comparison"
msgstr "Comparaison"
-#: ../ProjectController.py:552
+#: ../ProjectController.py:693
msgid "Compiling IEC Program into C code...\n"
msgstr "Compilation du program en IEC vers du code C en cours...\n"
@@ -1009,81 +999,85 @@
msgid "Concatenation"
msgstr "Concaténation"
-#: ../editors/ConfTreeNodeEditor.py:249
+#: ../editors/ConfTreeNodeEditor.py:229
msgid "Config"
msgstr "Configuration"
-#: ../editors/ProjectNodeEditor.py:13
+#: ../editors/ProjectNodeEditor.py:36
msgid "Config variables"
msgstr "Variables de configuration"
-#: ../dialogs/SearchInProjectDialog.py:47
+#: ../dialogs/SearchInProjectDialog.py:39
msgid "Configuration"
msgstr "Configuration"
-#: ../PLCControler.py:96
+#: ../PLCControler.py:97
msgid "Configurations"
msgstr "Configurations"
-#: ../ProjectController.py:1538
+#: ../editors/Viewer.py:307 ../editors/Viewer.py:337 ../editors/Viewer.py:359
+#: ../editors/TextViewer.py:291 ../editors/TextViewer.py:342
+#: ../editors/TextViewer.py:365 ../controls/VariablePanel.py:328
+msgid "Confirm or change variable name"
+msgstr "Confirmer ou changer de nom de variable"
+
+#: ../ProjectController.py:1809
msgid "Connect"
msgstr "Connecter"
-#: ../ProjectController.py:1539
+#: ../ProjectController.py:1810
msgid "Connect to the target PLC"
msgstr "Connecter à l'automate cible"
-#: ../ProjectController.py:1125
+#: ../ProjectController.py:1313
#, python-format
msgid "Connected to URI: %s"
msgstr "Connecté à l'URI : %s"
-#: ../connectors/PYRO/__init__.py:40
-#, python-format
-msgid "Connecting to URI : %s\n"
-msgstr "Connection à l'URI %s en cours...\n"
-
-#: ../editors/Viewer.py:466
-#: ../dialogs/SFCTransitionDialog.py:76
+#: ../dialogs/SFCTransitionDialog.py:76 ../editors/Viewer.py:527
+#: ../editors/Viewer.py:2370
msgid "Connection"
msgstr "Connexion"
-#: ../dialogs/ConnectionDialog.py:37
+#: ../dialogs/ConnectionDialog.py:52
msgid "Connection Properties"
msgstr "Propriétés de la connexion"
-#: ../ProjectController.py:1397
+#: ../ProjectController.py:1668
msgid "Connection canceled!\n"
msgstr "La connection a été abandonnée !\n"
-#: ../ProjectController.py:1422
+#: ../ProjectController.py:1693
#, python-format
msgid "Connection failed to %s!\n"
msgstr "La connection à \"%s\" a échouée !\n"
-#: ../connectors/PYRO/__init__.py:63
+#: ../connectors/PYRO/__init__.py:115 ../connectors/WAMP/__init__.py:111
+msgid "Connection lost!\n"
+msgstr "Connexion perdu\n"
+
+#: ../connectors/PYRO/__init__.py:102
#, python-format
msgid "Connection to '%s' failed.\n"
msgstr "La connexion à l'adresse '%s' a échouée.\n"
-#: ../editors/Viewer.py:1426
-#: ../dialogs/ConnectionDialog.py:56
+#: ../dialogs/ConnectionDialog.py:64 ../editors/Viewer.py:1605
msgid "Connector"
msgstr "Connecteur"
-#: ../dialogs/SFCStepDialog.py:58
+#: ../dialogs/SFCStepDialog.py:65
msgid "Connectors:"
msgstr "Connecteurs :"
-#: ../Beremiz.py:420
+#: ../Beremiz.py:448
msgid "Console"
msgstr "Console"
-#: ../controls/VariablePanel.py:65
+#: ../controls/VariablePanel.py:60
msgid "Constant"
msgstr "Constante"
-#: ../editors/Viewer.py:476
+#: ../editors/Viewer.py:537 ../editors/Viewer.py:2373
msgid "Contact"
msgstr "Contact"
@@ -1091,8 +1085,7 @@
msgid "Content Description (optional):"
msgstr "Description du contenu (optionel) :"
-#: ../editors/Viewer.py:1427
-#: ../dialogs/ConnectionDialog.py:61
+#: ../dialogs/ConnectionDialog.py:65 ../editors/Viewer.py:1606
msgid "Continuation"
msgstr "Prolongement"
@@ -1112,13 +1105,12 @@
msgid "Conversion to time-of-day"
msgstr "Conversion en heure de la journée"
-#: ../IDEFrame.py:353
-#: ../IDEFrame.py:406
-#: ../editors/Viewer.py:536
+#: ../editors/Viewer.py:597 ../controls/LogViewer.py:693 ../IDEFrame.py:370
+#: ../IDEFrame.py:425
msgid "Copy"
msgstr "Copier"
-#: ../IDEFrame.py:1837
+#: ../IDEFrame.py:1929
msgid "Copy POU"
msgstr "Copier ce POU"
@@ -1134,55 +1126,59 @@
msgid "Cosine"
msgstr "Cosinus"
-#: ../ConfigTreeNode.py:602
-#, python-format
-msgid ""
-"Could not add child \"%s\", type %s :\n"
-"%s\n"
-msgstr ""
-"Impossible d'ajouter le noeud enfant \"%s\", de type %s :\n"
-"%s\n"
-
-#: ../ConfigTreeNode.py:579
-#, python-format
-msgid ""
-"Couldn't load confnode base parameters %s :\n"
-" %s"
-msgstr ""
-"Impossible de charger les paramètres de base du plugin %s :\n"
-" %s"
-
-#: ../ConfigTreeNode.py:590
-#, python-format
-msgid ""
-"Couldn't load confnode parameters %s :\n"
-" %s"
-msgstr ""
-"Impossible de charger les paramètres du plugin %s :\n"
-" %s"
-
-#: ../PLCControler.py:819
-#: ../PLCControler.py:856
+#: ../ConfigTreeNode.py:656
+#, python-brace-format
+msgid ""
+"Could not add child \"{a1}\", type {a2} :\n"
+"{a3}\n"
+msgstr ""
+"Impossible d'ajouter l'enfant \"{a1}\", de type {a2}:\n"
+"{a3}\n"
+
+#: ../py_ext/PythonFileCTNMixin.py:77
+#, python-format
+msgid "Couldn't import old %s file."
+msgstr "Impossible d'importer l'ancien fichier %s"
+
+#: ../ConfigTreeNode.py:626
+#, python-brace-format
+msgid ""
+"Couldn't load confnode base parameters {a1} :\n"
+" {a2}"
+msgstr ""
+"Impossible de charger les parametres de base confnode {a1}:\n"
+"{a2}"
+
+#: ../ConfigTreeNode.py:643 ../CodeFileTreeNode.py:124
+#, python-brace-format
+msgid ""
+"Couldn't load confnode parameters {a1} :\n"
+" {a2}"
+msgstr ""
+"Impossible de charger les parametres confnode {a1}:\n"
+"{a2}"
+
+#: ../PLCControler.py:946
msgid "Couldn't paste non-POU object."
msgstr "Impossible de coller autre chose qu'un POU."
-#: ../ProjectController.py:1344
+#: ../ProjectController.py:1610
msgid "Couldn't start PLC !\n"
msgstr "Impossible de démarrer l'automate !\n"
-#: ../ProjectController.py:1352
+#: ../ProjectController.py:1618
msgid "Couldn't stop PLC !\n"
msgstr "Impossible d'arrêter l'automate !\n"
-#: ../ProjectController.py:1321
+#: ../ProjectController.py:1582
msgid "Couldn't stop debugger.\n"
msgstr "Impossible d'arrêter le débogage de l'automate !\n"
-#: ../svgui/svgui.py:22
+#: ../svgui/svgui.py:47
msgid "Create HMI"
msgstr "Créer une IHM"
-#: ../dialogs/PouDialog.py:43
+#: ../dialogs/PouDialog.py:45
msgid "Create a new POU"
msgstr "Créer un nouveau POU"
@@ -1190,84 +1186,79 @@
msgid "Create a new action"
msgstr "Créer une nouvelle action"
-#: ../IDEFrame.py:142
+#: ../IDEFrame.py:159
msgid "Create a new action block"
msgstr "Créer un nouveau bloc d'actions"
-#: ../IDEFrame.py:91
-#: ../IDEFrame.py:121
-#: ../IDEFrame.py:154
+#: ../IDEFrame.py:108 ../IDEFrame.py:138 ../IDEFrame.py:171
msgid "Create a new block"
msgstr "Créer un nouveau bloc"
-#: ../IDEFrame.py:115
+#: ../IDEFrame.py:132
msgid "Create a new branch"
msgstr "Créer une nouvelle branche"
-#: ../IDEFrame.py:109
+#: ../IDEFrame.py:126
msgid "Create a new coil"
msgstr "Créer un nouveau relai"
-#: ../IDEFrame.py:85
-#: ../IDEFrame.py:100
-#: ../IDEFrame.py:130
+#: ../IDEFrame.py:102 ../IDEFrame.py:117 ../IDEFrame.py:147
msgid "Create a new comment"
msgstr "Créer un nouveau copmmentaire"
-#: ../IDEFrame.py:94
-#: ../IDEFrame.py:124
-#: ../IDEFrame.py:157
+#: ../IDEFrame.py:111 ../IDEFrame.py:141 ../IDEFrame.py:174
msgid "Create a new connection"
msgstr "Créer une nouvelle connexion"
-#: ../IDEFrame.py:112
-#: ../IDEFrame.py:163
+#: ../IDEFrame.py:129 ../IDEFrame.py:180
msgid "Create a new contact"
msgstr "Créer un nouveau contact"
-#: ../IDEFrame.py:145
+#: ../IDEFrame.py:162
msgid "Create a new divergence"
msgstr "Créer une nouvelle divergence"
-#: ../dialogs/SFCDivergenceDialog.py:36
+#: ../dialogs/SFCDivergenceDialog.py:53
msgid "Create a new divergence or convergence"
msgstr "Créer une nouvelle divergence ou convergence"
-#: ../IDEFrame.py:133
+#: ../IDEFrame.py:150
msgid "Create a new initial step"
msgstr "Créer une nouvelle étape initiale"
-#: ../IDEFrame.py:148
+#: ../IDEFrame.py:165
msgid "Create a new jump"
msgstr "Créer un nouveau renvoi"
-#: ../IDEFrame.py:103
-#: ../IDEFrame.py:160
+#: ../IDEFrame.py:120 ../IDEFrame.py:177
msgid "Create a new power rail"
msgstr "Créer une nouvelle barre d'alimentation"
-#: ../IDEFrame.py:106
+#: ../IDEFrame.py:123
msgid "Create a new rung"
msgstr "Créer un nouvel échelon"
-#: ../IDEFrame.py:136
+#: ../IDEFrame.py:153
msgid "Create a new step"
msgstr "Créer une nouvelle étape"
-#: ../IDEFrame.py:139
-#: ../dialogs/PouTransitionDialog.py:42
+#: ../dialogs/PouTransitionDialog.py:47 ../IDEFrame.py:156
msgid "Create a new transition"
msgstr "Créer une nouvelle transition"
-#: ../IDEFrame.py:88
-#: ../IDEFrame.py:118
-#: ../IDEFrame.py:151
+#: ../IDEFrame.py:105 ../IDEFrame.py:135 ../IDEFrame.py:168
msgid "Create a new variable"
msgstr "Créer une nouvelle variable"
-#: ../IDEFrame.py:351
-#: ../IDEFrame.py:405
-#: ../editors/Viewer.py:535
+#: ../dialogs/AboutDialog.py:113
+msgid "Credits"
+msgstr "Credits"
+
+#: ../Beremiz_service.py:432
+msgid "Current working directory :"
+msgstr "Répertoire de travail actuel :"
+
+#: ../editors/Viewer.py:596 ../IDEFrame.py:368 ../IDEFrame.py:424
msgid "Cut"
msgstr "Couper"
@@ -1275,33 +1266,27 @@
msgid "Cyclic"
msgstr "Périodique"
-#: ../plcopen/iec_std.csv:42
-#: ../plcopen/iec_std.csv:44
-#: ../plcopen/iec_std.csv:46
-#: ../plcopen/iec_std.csv:50
-#: ../plcopen/iec_std.csv:52
-#: ../plcopen/iec_std.csv:54
-#: ../plcopen/iec_std.csv:56
-#: ../plcopen/iec_std.csv:58
+#: ../plcopen/iec_std.csv:42 ../plcopen/iec_std.csv:44
+#: ../plcopen/iec_std.csv:46 ../plcopen/iec_std.csv:50
+#: ../plcopen/iec_std.csv:52 ../plcopen/iec_std.csv:54
+#: ../plcopen/iec_std.csv:56 ../plcopen/iec_std.csv:58
#: ../plcopen/iec_std.csv:60
msgid "DEPRECATED"
msgstr "OBSOLETE"
-#: ../canfestival/SlaveEditor.py:53
-#: ../canfestival/NetworkEditor.py:74
+#: ../canfestival/SlaveEditor.py:76 ../canfestival/NetworkEditor.py:97
msgid "DS-301 Profile"
msgstr "Profil DS-301"
-#: ../canfestival/SlaveEditor.py:54
-#: ../canfestival/NetworkEditor.py:75
+#: ../canfestival/SlaveEditor.py:77 ../canfestival/NetworkEditor.py:98
msgid "DS-302 Profile"
msgstr "Profil DS-302"
-#: ../dialogs/SearchInProjectDialog.py:43
+#: ../dialogs/SearchInProjectDialog.py:35
msgid "Data Type"
msgstr "Type de donnée"
-#: ../PLCControler.py:95
+#: ../PLCControler.py:96
msgid "Data Types"
msgstr "Types de données"
@@ -1309,20 +1294,16 @@
msgid "Data type conversion"
msgstr "Conversion entre types de donnée"
-#: ../plcopen/iec_std.csv:44
-#: ../plcopen/iec_std.csv:45
+#: ../plcopen/iec_std.csv:44 ../plcopen/iec_std.csv:45
msgid "Date addition"
msgstr "Addition de dates"
-#: ../plcopen/iec_std.csv:56
-#: ../plcopen/iec_std.csv:57
-#: ../plcopen/iec_std.csv:58
-#: ../plcopen/iec_std.csv:59
+#: ../plcopen/iec_std.csv:56 ../plcopen/iec_std.csv:57
+#: ../plcopen/iec_std.csv:58 ../plcopen/iec_std.csv:59
msgid "Date and time subtraction"
msgstr "Soustraction entre horodatage"
-#: ../plcopen/iec_std.csv:50
-#: ../plcopen/iec_std.csv:51
+#: ../plcopen/iec_std.csv:50 ../plcopen/iec_std.csv:51
msgid "Date subtraction"
msgstr "Soustraction de date"
@@ -1330,53 +1311,52 @@
msgid "Days:"
msgstr "Jours :"
-#: ../ProjectController.py:1444
+#: ../ProjectController.py:1715
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:59
+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
msgid "Debug instance"
msgstr "Déboguer l'instance"
-#: ../editors/Viewer.py:1016
-#: ../editors/Viewer.py:3326
+#: ../editors/Viewer.py:1127 ../editors/Viewer.py:3664
#, python-format
msgid "Debug: %s"
msgstr "Débogage : %s"
-#: ../ProjectController.py:1153
+#: ../ProjectController.py:1371
#, python-format
msgid "Debug: Unknown variable '%s'\n"
msgstr "Débogage : Variable '%s' inconnue\n"
-#: ../ProjectController.py:1151
+#: ../ProjectController.py:1369
#, python-format
msgid "Debug: Unsupported type to debug '%s'\n"
msgstr "Débogage : Type non supporté dans le débogage '%'\n"
-#: ../IDEFrame.py:612
+#: ../IDEFrame.py:639
msgid "Debugger"
msgstr "Déboggueur"
-#: ../ProjectController.py:1311
+#: ../ProjectController.py:1551
msgid "Debugger disabled\n"
msgstr "Débogueur désactivé\n"
-#: ../ProjectController.py:1441
+#: ../ProjectController.py:1712
msgid "Debugger ready\n"
msgstr "Débogueur \n"
-#: ../ProjectController.py:1323
+#: ../ProjectController.py:1584
msgid "Debugger stopped.\n"
msgstr "Débogueur désactivé\n"
-#: ../IDEFrame.py:1866
-#: ../Beremiz.py:991
-#: ../editors/Viewer.py:511
+#: ../editors/Viewer.py:572 ../Beremiz.py:1064 ../IDEFrame.py:1958
msgid "Delete"
msgstr "Supprimer"
-#: ../editors/Viewer.py:453
+#: ../editors/Viewer.py:514
msgid "Delete Divergence Branch"
msgstr "Supprimer une branche de divergence"
@@ -1384,7 +1364,7 @@
msgid "Delete File"
msgstr "Supprimer un fichier"
-#: ../editors/Viewer.py:442
+#: ../editors/Viewer.py:501
msgid "Delete Wire Segment"
msgstr "Supprimer un segment de fil"
@@ -1396,32 +1376,23 @@
msgid "Deletion (within)"
msgstr "Suppression (au milieu)"
-#: ../editors/DataTypeEditor.py:152
+#: ../editors/DataTypeEditor.py:153
msgid "Derivation Type:"
msgstr "Type de dérivation :"
-#: ../plcopen/structures.py:263
-msgid ""
-"Derivative\n"
-"The derivative function block produces an output XOUT proportional to the rate of change of the input XIN."
-msgstr ""
-"Dérivée\n"
-"Le Function Block derivative produit une sortie XOUT proportionnelle au rapport de changement de l'entrée XIN."
-
-#: ../controls/VariablePanel.py:362
+#: ../controls/VariablePanel.py:432
msgid "Description:"
msgstr "Description :"
-#: ../editors/DataTypeEditor.py:320
-#: ../dialogs/ArrayTypeDialog.py:61
+#: ../dialogs/ArrayTypeDialog.py:61 ../editors/DataTypeEditor.py:321
msgid "Dimensions:"
msgstr "Dimensions :"
-#: ../dialogs/FindInPouDialog.py:61
+#: ../dialogs/FindInPouDialog.py:68
msgid "Direction"
msgstr "Direction"
-#: ../dialogs/BrowseLocationsDialog.py:86
+#: ../dialogs/BrowseLocationsDialog.py:90
msgid "Direction:"
msgstr "Direction :"
@@ -1429,15 +1400,19 @@
msgid "Directly"
msgstr "Direct"
-#: ../ProjectController.py:1547
+#: ../ProjectController.py:1818
msgid "Disconnect"
msgstr "Déconnecter"
-#: ../ProjectController.py:1549
+#: ../ProjectController.py:1820
msgid "Disconnect from PLC"
msgstr "Déconnecter l'automate"
-#: ../editors/Viewer.py:495
+#: ../ProjectController.py:1323
+msgid "Disconnected"
+msgstr "Déconnecté"
+
+#: ../editors/Viewer.py:556 ../editors/Viewer.py:2365
msgid "Divergence"
msgstr "Divergence"
@@ -1450,40 +1425,31 @@
msgid "Do you really want to delete the file '%s'?"
msgstr "Êtes-vous sûr de vouloir supprimer le fichier '%s' ?"
-#: ../controls/VariablePanel.py:58
-#: ../controls/VariablePanel.py:59
+#: ../controls/VariablePanel.py:53 ../controls/VariablePanel.py:54
msgid "Documentation"
msgstr "Documentation"
-#: ../PLCOpenEditor.py:330
+#: ../PLCOpenEditor.py:328
msgid "Done"
msgstr "Terminé"
-#: ../plcopen/structures.py:226
-msgid ""
-"Down-counter\n"
-"The down-counter can be used to signal when a count has reached zero, on counting down from a preset value."
-msgstr ""
-"Compteur décrémental\n"
-"Le compteur décrémental peut être utilisé pour signaler lorsque le compteur atteint zéro en partant d'une valeur prédéfinie."
-
-#: ../dialogs/ActionBlockDialog.py:37
+#: ../dialogs/ActionBlockDialog.py:38
msgid "Duration"
msgstr "Durée"
-#: ../canfestival/canfestival.py:139
+#: ../canfestival/canfestival.py:163
msgid "EDS files (*.eds)|*.eds|All files|*.*"
msgstr "Fichiers EDS (*.eds)|*.eds|Tous les fichiers|*.*"
-#: ../editors/Viewer.py:509
+#: ../editors/Viewer.py:570
msgid "Edit Block"
msgstr "Editer le block"
-#: ../dialogs/LDElementDialog.py:41
+#: ../dialogs/LDElementDialog.py:56
msgid "Edit Coil Values"
msgstr "Editer les valeurs du relai"
-#: ../dialogs/LDElementDialog.py:38
+#: ../dialogs/LDElementDialog.py:54
msgid "Edit Contact Values"
msgstr "Editer les valeurs du contact"
@@ -1491,15 +1457,15 @@
msgid "Edit Duration"
msgstr "Editer une durée"
-#: ../dialogs/SFCStepDialog.py:35
+#: ../dialogs/SFCStepDialog.py:50
msgid "Edit Step"
msgstr "Editer l'étape"
-#: ../wxglade_hmi/wxglade_hmi.py:12
+#: ../wxglade_hmi/wxglade_hmi.py:36
msgid "Edit a WxWidgets GUI with WXGlade"
msgstr "Editer une IHM WxWidgets à l'aide de WXGlade"
-#: ../dialogs/ActionBlockDialog.py:122
+#: ../dialogs/ActionBlockDialog.py:121
msgid "Edit action block properties"
msgstr "Editer les propriétés du block d'actions"
@@ -1507,10 +1473,7 @@
msgid "Edit array type properties"
msgstr "Editer les propriétés d'un type de données tableau"
-#: ../editors/Viewer.py:2186
-#: ../editors/Viewer.py:2188
-#: ../editors/Viewer.py:2706
-#: ../editors/Viewer.py:2708
+#: ../editors/Viewer.py:2586 ../editors/Viewer.py:3015
msgid "Edit comment"
msgstr "Editer le commentaire"
@@ -1522,47 +1485,51 @@
msgid "Edit item"
msgstr "Editer l'élément"
-#: ../editors/Viewer.py:2670
+#: ../editors/Viewer.py:2974
msgid "Edit jump target"
msgstr "Editer la cible du renvoi"
-#: ../ProjectController.py:1561
+#: ../ProjectController.py:1832
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:725
+#: ../editors/SFCViewer.py:799
msgid "Edit step name"
msgstr "Editer le nom de l'étape"
-#: ../dialogs/SFCTransitionDialog.py:38
+#: ../dialogs/SFCTransitionDialog.py:51
msgid "Edit transition"
msgstr "Editer la transition"
-#: ../IDEFrame.py:584
+#: ../IDEFrame.py:611
msgid "Editor ToolBar"
msgstr "Barre d'outils d'édition"
-#: ../ProjectController.py:1039
+#: ../ProjectController.py:1216
msgid "Editor selection"
msgstr "Selection d'un éditeur"
-#: ../editors/DataTypeEditor.py:347
+#: ../editors/DataTypeEditor.py:348
msgid "Elements :"
msgstr "Eléments :"
-#: ../IDEFrame.py:348
+#: ../ProjectController.py:1321
+msgid "Empty"
+msgstr "Vide"
+
+#: ../IDEFrame.py:365
msgid "Enable Undo/Redo"
msgstr "Activer Défaire/Refaire"
-#: ../Beremiz_service.py:385
+#: ../Beremiz_service.py:331
msgid "Enter a name "
msgstr "Saisissez un nom"
-#: ../Beremiz_service.py:370
+#: ../Beremiz_service.py:316
msgid "Enter a port number "
msgstr "Saisissez un numéro de port"
-#: ../Beremiz_service.py:360
+#: ../Beremiz_service.py:307
msgid "Enter the IP of the interface to bind"
msgstr "Saisissez l'adresse IP de l'interface à lier"
@@ -1574,67 +1541,51 @@
msgid "Equal to"
msgstr "Egal à"
-#: ../Beremiz_service.py:271
-#: ../controls/VariablePanel.py:332
-#: ../controls/VariablePanel.py:681
-#: ../controls/DebugVariablePanel.py:379
-#: ../IDEFrame.py:966
-#: ../IDEFrame.py:1553
-#: ../IDEFrame.py:1590
-#: ../IDEFrame.py:1595
-#: ../IDEFrame.py:1609
-#: ../IDEFrame.py:1614
-#: ../IDEFrame.py:2290
-#: ../Beremiz.py:1131
-#: ../PLCOpenEditor.py:337
-#: ../PLCOpenEditor.py:342
-#: ../PLCOpenEditor.py:416
-#: ../PLCOpenEditor.py:426
-#: ../editors/TextViewer.py:369
-#: ../editors/DataTypeEditor.py:549
-#: ../editors/DataTypeEditor.py:554
-#: ../editors/DataTypeEditor.py:578
-#: ../editors/DataTypeEditor.py:583
-#: ../editors/DataTypeEditor.py:593
-#: ../editors/DataTypeEditor.py:744
-#: ../editors/DataTypeEditor.py:751
-#: ../editors/Viewer.py:365
-#: ../editors/LDViewer.py:666
-#: ../editors/LDViewer.py:882
-#: ../editors/LDViewer.py:886
-#: ../ProjectController.py:225
-#: ../dialogs/PouNameDialog.py:53
-#: ../dialogs/PouTransitionDialog.py:107
-#: ../dialogs/BrowseLocationsDialog.py:212
-#: ../dialogs/ProjectDialog.py:71
-#: ../dialogs/SFCStepNameDialog.py:59
-#: ../dialogs/ConnectionDialog.py:159
-#: ../dialogs/FBDVariableDialog.py:201
-#: ../dialogs/PouActionDialog.py:104
-#: ../dialogs/BrowseValuesLibraryDialog.py:83
-#: ../dialogs/PouDialog.py:132
-#: ../dialogs/SFCTransitionDialog.py:147
+#: ../dialogs/ForceVariableDialog.py:179
+#: ../dialogs/SearchInProjectDialog.py:168 ../dialogs/SFCStepNameDialog.py:60
#: ../dialogs/DurationEditorDialog.py:121
#: ../dialogs/DurationEditorDialog.py:163
-#: ../dialogs/SearchInProjectDialog.py:157
-#: ../dialogs/SFCStepDialog.py:130
-#: ../dialogs/ArrayTypeDialog.py:97
-#: ../dialogs/ArrayTypeDialog.py:103
-#: ../dialogs/FBDBlockDialog.py:164
-#: ../dialogs/ForceVariableDialog.py:179
+#: ../dialogs/PouTransitionDialog.py:112 ../dialogs/BlockPreviewDialog.py:236
+#: ../dialogs/ProjectDialog.py:71 ../dialogs/ArrayTypeDialog.py:97
+#: ../dialogs/ArrayTypeDialog.py:103 ../dialogs/PouNameDialog.py:54
+#: ../dialogs/BrowseLocationsDialog.py:216
+#: ../dialogs/BrowseValuesLibraryDialog.py:83
+#: ../dialogs/PouActionDialog.py:104 ../dialogs/PouDialog.py:134
+#: ../PLCOpenEditor.py:335 ../PLCOpenEditor.py:340 ../PLCOpenEditor.py:420
+#: ../PLCOpenEditor.py:430 ../editors/ResourceEditor.py:436
+#: ../editors/Viewer.py:423 ../editors/LDViewer.py:666
+#: ../editors/LDViewer.py:882 ../editors/LDViewer.py:886
+#: ../editors/DataTypeEditor.py:550 ../editors/DataTypeEditor.py:555
+#: ../editors/DataTypeEditor.py:579 ../editors/DataTypeEditor.py:584
+#: ../editors/DataTypeEditor.py:594 ../editors/DataTypeEditor.py:745
+#: ../editors/DataTypeEditor.py:752 ../editors/TextViewer.py:389
+#: ../editors/CodeFileEditor.py:783 ../ProjectController.py:343
+#: ../ProjectController.py:471 ../ProjectController.py:478
+#: ../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:784
+#: ../Beremiz.py:1203 ../IDEFrame.py:1003 ../IDEFrame.py:1613
+#: ../IDEFrame.py:1654 ../IDEFrame.py:1659 ../IDEFrame.py:1673
+#: ../IDEFrame.py:1678 ../Beremiz_service.py:211
msgid "Error"
msgstr "Erreur"
-#: ../ProjectController.py:601
-msgid "Error : At least one configuration and one resource must be declared in PLC !\n"
-msgstr "Erreur : Au moins une configuration ou une ressource doit être déclarée dans l'automate !\n"
-
-#: ../ProjectController.py:593
+#: ../ProjectController.py:748
+msgid ""
+"Error : At least one configuration and one resource must be declared in PLC "
+"!\n"
+msgstr ""
+"Erreur : Au moins une configuration ou une ressource doit être déclarée dans"
+" l'automate !\n"
+
+#: ../ProjectController.py:740
#, 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:534
+#: ../ProjectController.py:671
#, python-format
msgid ""
"Error in ST/IL/SFC code generator :\n"
@@ -1643,38 +1594,37 @@
"Erreur dans le générateur de code ST/IL/SFC :\n"
"%s\n"
-#: ../ConfigTreeNode.py:183
+#: ../ConfigTreeNode.py:216
#, python-format
msgid "Error while saving \"%s\"\n"
msgstr "Erreur lors de l'enregistrement de \"%s\"\n"
-#: ../canfestival/canfestival.py:144
+#: ../canfestival/canfestival.py:168
msgid "Error: Export slave failed\n"
msgstr "Erreur : L'export de l'esclave a échoué\n"
-#: ../canfestival/canfestival.py:345
+#: ../canfestival/canfestival.py:369
msgid "Error: No Master generated\n"
msgstr "Erreur : Aucun maître généré\n"
-#: ../canfestival/canfestival.py:340
+#: ../canfestival/canfestival.py:364
msgid "Error: No PLC built\n"
msgstr "Erreur : Aucun automate compilé\n"
-#: ../ProjectController.py:1416
+#: ../ProjectController.py:1687
#, python-format
msgid "Exception while connecting %s!\n"
msgstr "Une exception est apparu au cours de la connexion %s !\n"
-#: ../dialogs/FBDBlockDialog.py:95
+#: ../dialogs/FBDBlockDialog.py:117
msgid "Execution Control:"
msgstr "Contrôle d'exécution :"
-#: ../dialogs/FBDVariableDialog.py:76
-#: ../dialogs/FBDBlockDialog.py:87
+#: ../dialogs/FBDVariableDialog.py:79 ../dialogs/FBDBlockDialog.py:105
msgid "Execution Order:"
msgstr "Ordre d'exécution :"
-#: ../features.py:11
+#: ../features.py:35
msgid "Experimental web based HMI"
msgstr "IHM expérimentale utilisant les technologies web"
@@ -1686,59 +1636,52 @@
msgid "Exponentiation"
msgstr "Exponentiel"
-#: ../canfestival/canfestival.py:150
+#: ../canfestival/canfestival.py:174
msgid "Export CanOpen slave to EDS file"
msgstr "Exporter un esclave CANopen sous la forme d'un fichier EDS"
-#: ../controls/DebugVariablePanel.py:1472
-#: ../editors/GraphicViewer.py:144
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:243
msgid "Export graph values to clipboard"
msgstr "Exporter les valeurs du graphique vers le presse-papier"
-#: ../canfestival/canfestival.py:149
+#: ../canfestival/canfestival.py:173
msgid "Export slave"
msgstr "Exporter un esclave"
-#: ../dialogs/FBDVariableDialog.py:69
+#: ../dialogs/FBDVariableDialog.py:89
msgid "Expression:"
msgstr "Expression :"
-#: ../controls/VariablePanel.py:77
+#: ../controls/VariablePanel.py:72
msgid "External"
msgstr "Externe"
-#: ../ProjectController.py:605
+#: ../ProjectController.py:761
msgid "Extracting Located Variables...\n"
msgstr "Extraction des variables adressées en cours...\n"
-#: ../controls/ProjectPropertiesPanel.py:143
-#: ../dialogs/PouTransitionDialog.py:35
-#: ../dialogs/PouActionDialog.py:31
-#: ../dialogs/PouDialog.py:36
+#: ../dialogs/PouTransitionDialog.py:40 ../dialogs/PouActionDialog.py:31
+#: ../dialogs/PouDialog.py:36 ../controls/ProjectPropertiesPanel.py:143
msgid "FBD"
msgstr "FBD"
-#: ../ProjectController.py:1480
+#: ../ProjectController.py:1750
msgid "Failed : Must build before transfer.\n"
msgstr "Echec : Le projet doit être compilé avant d'être transféré.\n"
-#: ../editors/Viewer.py:404
-#: ../dialogs/LDElementDialog.py:84
+#: ../dialogs/LDElementDialog.py:77 ../editors/Viewer.py:462
msgid "Falling Edge"
msgstr "Front descendant"
-#: ../plcopen/structures.py:216
-msgid ""
-"Falling edge detector\n"
-"The output produces a single pulse when a falling edge is detected."
-msgstr ""
-"Détecteur de front descendant\n"
-"La sortie produit une impulsion unique lorsqu'un front descendant est détecté."
-
-#: ../ProjectController.py:927
+#: ../ProjectController.py:1029
msgid "Fatal : cannot get builder.\n"
msgstr "Erreur fatale : impossible de trouver un compilateur.\n"
+#: ../Beremiz.py:118
+#, python-format
+msgid "Fetching %s"
+msgstr "Recherche %s"
+
#: ../dialogs/DurationEditorDialog.py:160
#, python-format
msgid "Field %s hasn't a valid value!"
@@ -1749,17 +1692,21 @@
msgid "Fields %s haven't a valid value!"
msgstr "Les champs %s n'ont pas une valeur valide !"
-#: ../IDEFrame.py:358
-#: ../dialogs/FindInPouDialog.py:30
-#: ../dialogs/FindInPouDialog.py:99
+#: ../controls/FolderTree.py:216
+#, python-format
+msgid "File '%s' already exists!"
+msgstr "Le fichier '%s' existe déjà !"
+
+#: ../dialogs/SearchInProjectDialog.py:100 ../dialogs/FindInPouDialog.py:36
+#: ../dialogs/FindInPouDialog.py:106 ../IDEFrame.py:375
msgid "Find"
msgstr "Rechercher"
-#: ../IDEFrame.py:360
+#: ../IDEFrame.py:377
msgid "Find Next"
msgstr "Recherche suivante"
-#: ../IDEFrame.py:362
+#: ../IDEFrame.py:379
msgid "Find Previous"
msgstr "Recherche précédente"
@@ -1767,16 +1714,15 @@
msgid "Find position"
msgstr "Trouver la position"
-#: ../dialogs/FindInPouDialog.py:51
+#: ../dialogs/FindInPouDialog.py:57
msgid "Find:"
msgstr "Rechercher :"
-#: ../connectors/PYRO/__init__.py:125
+#: ../connectors/PYRO/__init__.py:163
msgid "Force runtime reload\n"
msgstr "Redémarrage du runtime forcé\n"
-#: ../controls/DebugVariablePanel.py:1934
-#: ../editors/Viewer.py:1385
+#: ../editors/Viewer.py:1564
msgid "Force value"
msgstr "Forcer la valeur"
@@ -1784,80 +1730,74 @@
msgid "Forcing Variable Value"
msgstr "Forcer la valeur de la variable"
-#: ../dialogs/PouTransitionDialog.py:97
-#: ../dialogs/ProjectDialog.py:70
-#: ../dialogs/PouActionDialog.py:94
-#: ../dialogs/PouDialog.py:114
-#: ../dialogs/SFCTransitionDialog.py:147
+#: ../dialogs/SFCTransitionDialog.py:179 ../dialogs/PouTransitionDialog.py:102
+#: ../dialogs/ProjectDialog.py:70 ../dialogs/PouActionDialog.py:94
+#: ../dialogs/PouDialog.py:116
#, python-format
msgid "Form isn't complete. %s must be filled!"
msgstr "Le formulaire est incomplet. %s doit être complété !"
-#: ../dialogs/ConnectionDialog.py:149
-#: ../dialogs/FBDBlockDialog.py:154
+#: ../dialogs/SFCStepDialog.py:144 ../dialogs/FBDBlockDialog.py:232
+#: ../dialogs/ConnectionDialog.py:160
msgid "Form isn't complete. Name must be filled!"
msgstr "Le formulaire est incomplet. Le nom doit être complété !"
-#: ../dialogs/SearchInProjectDialog.py:145
-msgid "Form isn't complete. Pattern to search must be filled!"
-msgstr "Le formulaire est incomplet. Le modèle à chercher doit être complété !"
-
-#: ../dialogs/FBDBlockDialog.py:152
+#: ../dialogs/FBDBlockDialog.py:228
msgid "Form isn't complete. Valid block type must be selected!"
-msgstr "Le formulaire est incomplet. Un type de bloc valide doit être sélectionné !"
-
-#: ../dialogs/FindInPouDialog.py:67
+msgstr ""
+"Le formulaire est incomplet. Un type de bloc valide doit être sélectionné !"
+
+#: ../dialogs/FindInPouDialog.py:74
msgid "Forward"
msgstr "Vers le bas"
-#: ../dialogs/SearchInProjectDialog.py:44
+#: ../dialogs/SearchInProjectDialog.py:36 ../IDEFrame.py:1745
msgid "Function"
msgstr "Fonction"
-#: ../IDEFrame.py:334
+#: ../IDEFrame.py:349
msgid "Function &Block"
msgstr "&Bloc Fonctionnel"
-#: ../IDEFrame.py:1845
-#: ../dialogs/SearchInProjectDialog.py:45
+#: ../dialogs/SearchInProjectDialog.py:37 ../IDEFrame.py:1744
+#: ../IDEFrame.py:1937
msgid "Function Block"
msgstr "Bloc fonctionnel"
-#: ../controls/VariablePanel.py:744
+#: ../controls/VariablePanel.py:837
msgid "Function Block Types"
msgstr "Types de blocs fonctionnels"
-#: ../PLCControler.py:94
+#: ../PLCControler.py:95
msgid "Function Blocks"
msgstr "Blocs fonctionnels"
-#: ../editors/Viewer.py:236
+#: ../editors/Viewer.py:248
msgid "Function Blocks can't be used in Functions!"
msgstr "Les blocs fonctionnels ne peuvent être utilisés dans des functions !"
-#: ../PLCControler.py:2180
+#: ../PLCControler.py:2337
#, python-format
msgid "FunctionBlock \"%s\" can't be pasted in a Function!!!"
msgstr "Le bloc fonctionnel \"%s\" ne peuvent être collés dans une function !"
-#: ../PLCControler.py:94
+#: ../PLCControler.py:95
msgid "Functions"
msgstr "Fonctions"
-#: ../PLCOpenEditor.py:119
+#: ../PLCOpenEditor.py:115
msgid "Generate Program"
msgstr "Générer le program"
-#: ../ProjectController.py:524
+#: ../ProjectController.py:662
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:78
+#: ../controls/VariablePanel.py:73
msgid "Global"
msgstr "Globale"
-#: ../controls/DebugVariablePanel.py:1471
-#: ../editors/GraphicViewer.py:131
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:242
msgid "Go to current value"
msgstr "Aller à la valeur actuelle"
@@ -1877,6 +1817,10 @@
msgid "Grid Resolution:"
msgstr "Résolution de la grille :"
+#: ../runtime/NevowServer.py:181
+msgid "HTTP interface port :"
+msgstr "Port d'interface HTTP:"
+
#: ../controls/ProjectPropertiesPanel.py:120
msgid "Height:"
msgstr "Hauteur :"
@@ -1893,99 +1837,81 @@
msgid "Hours:"
msgstr "Heures :"
-#: ../plcopen/structures.py:278
-msgid ""
-"Hysteresis\n"
-"The hysteresis function block provides a hysteresis boolean output driven by the difference of two floating point (REAL) inputs XIN1 and XIN2."
-msgstr ""
-"Hystérésis\n"
-"Le bloc functionnel hystérésis fourni un booléen en sortie suivant une courbe d'hystérésis entre les deux entrées réelles (REAL) XIN1 et XIN2."
-
-#: ../ProjectController.py:851
-msgid "IEC-61131-3 code generation failed !\n"
-msgstr "La création du code IEC-61131-3 a échouée !\n"
-
-#: ../dialogs/PouTransitionDialog.py:35
-#: ../dialogs/PouActionDialog.py:31
-#: ../dialogs/PouDialog.py:36
+#: ../dialogs/PouActionDialog.py:31 ../dialogs/PouDialog.py:36
msgid "IL"
msgstr "IL"
-#: ../Beremiz_service.py:361
-#: ../Beremiz_service.py:362
+#: ../dialogs/DiscoveryDialog.py:94
+msgid "IP"
+msgstr "IP"
+
+#: ../Beremiz_service.py:308 ../Beremiz_service.py:309
msgid "IP is not valid!"
msgstr "l'IP est invalide !"
-#: ../svgui/svgui.py:17
-#: ../svgui/svgui.py:18
+#: ../svgui/svgui.py:42 ../svgui/svgui.py:43
msgid "Import SVG"
msgstr "Importer un SVG"
-#: ../controls/VariablePanel.py:76
-#: ../editors/Viewer.py:1412
-#: ../dialogs/FBDVariableDialog.py:34
+#: ../dialogs/FBDVariableDialog.py:38 ../editors/Viewer.py:1591
+#: ../controls/VariablePanel.py:71
msgid "InOut"
msgstr "Entrée-Sortie"
-#: ../editors/Viewer.py:999
+#: ../editors/Viewer.py:1110
msgid "Inactive"
msgstr "Inactif"
-#: ../controls/VariablePanel.py:265
-#, python-format
-msgid "Incompatible data types between \"%s\" and \"%s\""
-msgstr "Types de donnée imcompatible entre \"%s\" et \"%s\""
-
-#: ../controls/VariablePanel.py:274
-#, python-format
-msgid "Incompatible size of data between \"%s\" and \"%s\""
-msgstr "Taille de donnée incompatible entre \"%s\" et \"%s\""
-
-#: ../controls/VariablePanel.py:270
+#: ../controls/VariablePanel.py:276
+#, 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
#, python-format
msgid "Incompatible size of data between \"%s\" and \"BOOL\""
msgstr "Taille de donnée incompatible entre \"%s\" et \"BOOL\""
-#: ../dialogs/ActionBlockDialog.py:37
+#: ../controls/VariablePanel.py:286
+#, 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:38
msgid "Indicator"
msgstr "Indicateur"
-#: ../editors/Viewer.py:491
+#: ../editors/Viewer.py:552
msgid "Initial Step"
msgstr "Étape initiale"
-#: ../controls/VariablePanel.py:58
-#: ../controls/VariablePanel.py:59
-#: ../editors/DataTypeEditor.py:50
+#: ../editors/DataTypeEditor.py:50 ../controls/VariablePanel.py:53
+#: ../controls/VariablePanel.py:54
msgid "Initial Value"
msgstr "Valeur initiale"
-#: ../editors/DataTypeEditor.py:184
-#: ../editors/DataTypeEditor.py:215
-#: ../editors/DataTypeEditor.py:271
-#: ../editors/DataTypeEditor.py:309
+#: ../editors/DataTypeEditor.py:185 ../editors/DataTypeEditor.py:216
+#: ../editors/DataTypeEditor.py:272 ../editors/DataTypeEditor.py:310
msgid "Initial Value:"
msgstr "Valeur initiale :"
-#: ../svgui/svgui.py:21
+#: ../svgui/svgui.py:46
msgid "Inkscape"
msgstr "Inkscape"
-#: ../dialogs/ActionBlockDialog.py:41
-#: ../dialogs/SFCTransitionDialog.py:66
-#: ../dialogs/SFCTransitionDialog.py:137
+#: ../dialogs/SFCTransitionDialog.py:75 ../dialogs/ActionBlockDialog.py:42
msgid "Inline"
msgstr "Inline"
-#: ../controls/VariablePanel.py:76
-#: ../editors/Viewer.py:1410
-#: ../dialogs/BrowseLocationsDialog.py:35
-#: ../dialogs/FBDVariableDialog.py:33
-#: ../dialogs/SFCStepDialog.py:61
+#: ../dialogs/SFCStepDialog.py:70 ../dialogs/FBDVariableDialog.py:37
+#: ../dialogs/BrowseLocationsDialog.py:40 ../editors/Viewer.py:289
+#: ../editors/Viewer.py:1589 ../editors/TextViewer.py:307
+#: ../controls/LocationCellEditor.py:98 ../controls/VariablePanel.py:71
+#: ../controls/VariablePanel.py:291 ../controls/VariablePanel.py:351
msgid "Input"
msgstr "Entrée"
-#: ../dialogs/FBDBlockDialog.py:78
+#: ../dialogs/FBDBlockDialog.py:93
msgid "Inputs:"
msgstr "Entrées :"
@@ -1993,24 +1919,16 @@
msgid "Insertion (into)"
msgstr "Insertion (au milieu)"
-#: ../plcopen/plcopen.py:1843
+#: ../plcopen/plcopen.py:1691
#, python-format
msgid "Instance with id %d doesn't exist!"
msgstr "L'instance dont l'id est %d n'existe pas !"
-#: ../editors/ResourceEditor.py:255
+#: ../editors/ResourceEditor.py:264
msgid "Instances:"
msgstr "Instances :"
-#: ../plcopen/structures.py:258
-msgid ""
-"Integral\n"
-"The integral function block integrates the value of input XIN over time."
-msgstr ""
-"Intégrale\n"
-"Le bloc fonctionnel INTEGRAL intègre les valeurs de l'entrée XIN en fonction du temps."
-
-#: ../controls/VariablePanel.py:75
+#: ../controls/VariablePanel.py:70
msgid "Interface"
msgstr "Interface"
@@ -2022,40 +1940,42 @@
msgid "Interval"
msgstr "Interval"
-#: ../PLCControler.py:2157
-#: ../PLCControler.py:2195
+#: ../PLCControler.py:2325
msgid "Invalid plcopen element(s)!!!"
msgstr "Les éléments plcopen ne sont pas valides !!! "
-#: ../canfestival/config_utils.py:376
-#: ../canfestival/config_utils.py:637
-#, python-format
-msgid "Invalid type \"%s\"-> %d != %d for location\"%s\""
-msgstr "Type invalide \"%s\"-> %d != %d pour cette adresse \"%s\""
-
-#: ../dialogs/ForceVariableDialog.py:177
-#, python-format
-msgid "Invalid value \"%s\" for \"%s\" variable!"
-msgstr "Valeur \"%s\" invalide pour une variable de type \"%s\" !"
-
-#: ../controls/DebugVariablePanel.py:319
-#: ../controls/DebugVariablePanel.py:322
+#: ../canfestival/config_utils.py:381
+#, python-brace-format
+msgid "Invalid type \"{a1}\"-> {a2} != {a3} for location\"{a4}\""
+msgstr "Type invalide \"{a1}\"-> {a2} != {a3} pour \"{a4}\""
+
+#: ../canfestival/config_utils.py:645
+#, 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
#, python-format
msgid "Invalid value \"%s\" for debug variable"
msgstr "Chemin de variable à déboguer \"%s\" invalide"
-#: ../controls/VariablePanel.py:244
-#: ../controls/VariablePanel.py:247
+#: ../controls/VariablePanel.py:255 ../controls/VariablePanel.py:258
#, python-format
msgid "Invalid value \"%s\" for variable grid element"
msgstr "Valeur \"%s\" invalide pour un élément de la grille de variables"
-#: ../editors/Viewer.py:221
-#: ../editors/Viewer.py:224
+#: ../editors/Viewer.py:233 ../editors/Viewer.py:236
#, python-format
msgid "Invalid value \"%s\" for viewer block"
msgstr "Valeur \"%s\" invalide pour un élément graphique"
+#: ../dialogs/ForceVariableDialog.py:177
+#, python-brace-format
+msgid "Invalid value \"{a1}\" for \"{a2}\" variable!"
+msgstr "Valeur invalide \"{a1}\" pour la variable \"{a2}\""
+
#: ../dialogs/DurationEditorDialog.py:121
msgid ""
"Invalid value!\n"
@@ -2064,26 +1984,22 @@
"Valeur invalide !\n"
"Vous devez rentrer une valeur numérique."
-#: ../editors/Viewer.py:496
+#: ../editors/Viewer.py:557 ../editors/Viewer.py:2354
msgid "Jump"
msgstr "Renvoi"
-#: ../controls/ProjectPropertiesPanel.py:143
-#: ../dialogs/PouTransitionDialog.py:35
-#: ../dialogs/PouActionDialog.py:31
-#: ../dialogs/PouDialog.py:36
+#: ../dialogs/PouTransitionDialog.py:40 ../dialogs/PouActionDialog.py:31
+#: ../dialogs/PouDialog.py:36 ../controls/ProjectPropertiesPanel.py:143
msgid "LD"
msgstr "LD"
-#: ../editors/LDViewer.py:215
-#: ../editors/LDViewer.py:231
+#: ../editors/LDViewer.py:215 ../editors/LDViewer.py:231
#, python-format
msgid "Ladder element with id %d is on more than one rung."
msgstr "L'élément de LD dont l'id est %d apparait dans plusieurs échelons. "
-#: ../dialogs/PouTransitionDialog.py:86
-#: ../dialogs/PouActionDialog.py:83
-#: ../dialogs/PouDialog.py:102
+#: ../dialogs/PouTransitionDialog.py:91 ../dialogs/PouActionDialog.py:83
+#: ../dialogs/PouDialog.py:104
msgid "Language"
msgstr "Langue"
@@ -2091,29 +2007,28 @@
msgid "Language (optional):"
msgstr "Langue (optionnel) :"
-#: ../dialogs/PouTransitionDialog.py:60
-#: ../dialogs/PouActionDialog.py:56
-#: ../dialogs/PouDialog.py:71
+#: ../dialogs/PouTransitionDialog.py:65 ../dialogs/PouActionDialog.py:56
+#: ../dialogs/PouDialog.py:73
msgid "Language:"
msgstr "Langue :"
-#: ../ProjectController.py:1486
+#: ../ProjectController.py:1756
msgid "Latest build already matches current target. Transfering anyway...\n"
msgstr "La dernière compilation correspond à la cible actuelle...\n"
-#: ../Beremiz_service.py:331
+#: ../Beremiz_service.py:271
msgid "Launch WX GUI inspector"
msgstr "Lancer un inspecteur d'IHM WX"
-#: ../Beremiz_service.py:330
+#: ../Beremiz_service.py:270
msgid "Launch a live Python shell"
msgstr "Lancer une console Python"
-#: ../editors/Viewer.py:427
+#: ../editors/Viewer.py:485
msgid "Left"
msgstr "Gauche"
-#: ../dialogs/LDPowerRailDialog.py:55
+#: ../dialogs/LDPowerRailDialog.py:62
msgid "Left PowerRail"
msgstr "Barre d'alimentation à gauche"
@@ -2129,36 +2044,39 @@
msgid "Less than or equal to"
msgstr "Inférieur ou égal à"
-#: ../IDEFrame.py:604
+#: ../IDEFrame.py:631
msgid "Library"
msgstr "Librairie"
+#: ../dialogs/AboutDialog.py:151
+msgid "License"
+msgstr "Licence"
+
#: ../plcopen/iec_std.csv:73
msgid "Limitation"
msgstr "Limitation"
-#: ../targets/toolchain_gcc.py:142
+#: ../targets/toolchain_gcc.py:166
msgid "Linking :\n"
msgstr "Linkage :\n"
-#: ../controls/VariablePanel.py:77
-#: ../dialogs/DiscoveryDialog.py:110
+#: ../dialogs/DiscoveryDialog.py:111 ../controls/VariablePanel.py:72
msgid "Local"
msgstr "Locale"
-#: ../canfestival/canfestival.py:322
+#: ../canfestival/canfestival.py:346
msgid "Local entries"
msgstr "Entrées locales"
-#: ../ProjectController.py:1391
+#: ../ProjectController.py:1662
msgid "Local service discovery failed!\n"
msgstr "Echec de la sélection d'un service!\n"
-#: ../controls/VariablePanel.py:58
+#: ../controls/VariablePanel.py:53
msgid "Location"
msgstr "Adresse"
-#: ../dialogs/BrowseLocationsDialog.py:68
+#: ../dialogs/BrowseLocationsDialog.py:72
msgid "Locations available:"
msgstr "Adresses disponibles :"
@@ -2166,42 +2084,44 @@
msgid "Logarithm to base 10"
msgstr "Logarithme de base 10"
-#: ../connectors/PYRO/__init__.py:55
+#: ../connectors/PYRO/__init__.py:94
#, python-format
msgid "MDNS resolution failure for '%s'\n"
msgstr "Echec de la résolution MDNS pour '%s'\n"
-#: ../canfestival/SlaveEditor.py:41
-#: ../canfestival/NetworkEditor.py:62
+#: ../canfestival/SlaveEditor.py:64 ../canfestival/NetworkEditor.py:85
msgid "Map Variable"
msgstr "Variable mappable"
-#: ../features.py:7
+#: ../features.py:31
msgid "Map located variables over CANopen"
msgstr "Mappe des variables localisées sur un bus CANopen"
-#: ../canfestival/NetworkEditor.py:83
+#: ../canfestival/NetworkEditor.py:106
msgid "Master"
msgstr "Maître"
-#: ../ConfigTreeNode.py:500
-#, python-format
-msgid "Max count (%d) reached for this confnode of type %s "
-msgstr "Nombre limite(%d) atteint pour les plugin de type %s"
+#: ../ConfigTreeNode.py:539
+#, python-brace-format
+msgid "Max count ({a1}) reached for this confnode of type {a2} "
+msgstr ""
+"Valeur maximal du compteur atteinte ({a1}) pour ce confnode de type {a2}"
#: ../plcopen/iec_std.csv:71
msgid "Maximum"
msgstr "Maximum"
-#: ../editors/DataTypeEditor.py:238
+#: ../editors/DataTypeEditor.py:239
msgid "Maximum:"
msgstr "Maximum :"
-#: ../dialogs/BrowseLocationsDialog.py:37
+#: ../dialogs/BrowseLocationsDialog.py:42 ../editors/Viewer.py:289
+#: ../editors/TextViewer.py:307 ../controls/LocationCellEditor.py:98
+#: ../controls/VariablePanel.py:291 ../controls/VariablePanel.py:351
msgid "Memory"
msgstr "Mémoire"
-#: ../IDEFrame.py:572
+#: ../IDEFrame.py:599
msgid "Menu ToolBar"
msgstr "Barre d'outils du menu principal"
@@ -2209,7 +2129,7 @@
msgid "Microseconds:"
msgstr "Microsecondes :"
-#: ../editors/Viewer.py:432
+#: ../editors/Viewer.py:490
msgid "Middle"
msgstr "Milieu"
@@ -2221,7 +2141,7 @@
msgid "Minimum"
msgstr "Minimum"
-#: ../editors/DataTypeEditor.py:225
+#: ../editors/DataTypeEditor.py:226
msgid "Minimum:"
msgstr "Minimum :"
@@ -2233,64 +2153,56 @@
msgid "Miscellaneous"
msgstr "Divers"
-#: ../dialogs/LDElementDialog.py:59
+#: ../dialogs/LDElementDialog.py:63
msgid "Modifier:"
msgstr "Modificateur :"
-#: ../PLCGenerator.py:732
-#: ../PLCGenerator.py:975
-#, python-format
-msgid "More than one connector found corresponding to \"%s\" continuation in \"%s\" POU"
-msgstr "Plusieurs connecteurs trouvés pour le prolongement \"%s\" dans le POU \"%s\""
-
-#: ../dialogs/ActionBlockDialog.py:141
+#: ../PLCGenerator.py:786 ../PLCGenerator.py:1230
+#, python-brace-format
+msgid ""
+"More than one connector found corresponding to \"{a1}\" continuation in "
+"\"{a2}\" POU"
+msgstr ""
+"Plus d'un connecteur correspondant à \"{a1}\" trouvé dans la continuité de "
+"\"{a2}\" POU"
+
+#: ../dialogs/ActionBlockDialog.py:140
msgid "Move action down"
msgstr "Déplacer une action vers le bas"
-#: ../dialogs/ActionBlockDialog.py:140
+#: ../dialogs/ActionBlockDialog.py:139
msgid "Move action up"
msgstr "Déplacer une action vers le haut"
-#: ../controls/DebugVariablePanel.py:1532
-msgid "Move debug variable down"
-msgstr "Déplacer une variable à déboguer vers le bas"
-
-#: ../controls/DebugVariablePanel.py:1531
-msgid "Move debug variable up"
-msgstr "Déplacer une variable à déboguer vers le haut"
-
#: ../controls/CustomEditableListBox.py:43
msgid "Move down"
msgstr "Déplacer vers le haut"
-#: ../editors/DataTypeEditor.py:354
+#: ../editors/DataTypeEditor.py:355
msgid "Move element down"
msgstr "Déplcer un élément vers le bas"
-#: ../editors/DataTypeEditor.py:353
+#: ../editors/DataTypeEditor.py:354
msgid "Move element up"
msgstr "Déplacer un élément vers le haut"
-#: ../editors/ResourceEditor.py:262
+#: ../editors/ResourceEditor.py:271
msgid "Move instance down"
msgstr "Déplacer une instance vers le bas"
-#: ../editors/ResourceEditor.py:261
+#: ../editors/ResourceEditor.py:270
msgid "Move instance up"
msgstr "Déplacer une instance vers le haut"
-#: ../editors/ResourceEditor.py:233
+#: ../editors/ResourceEditor.py:242
msgid "Move task down"
msgstr "Déplcer une tâche vers le bas"
-#: ../editors/ResourceEditor.py:232
+#: ../editors/ResourceEditor.py:241
msgid "Move task up"
msgstr "Déplacer une tâche vers le haut"
-#: ../IDEFrame.py:82
-#: ../IDEFrame.py:97
-#: ../IDEFrame.py:127
-#: ../IDEFrame.py:168
+#: ../IDEFrame.py:99 ../IDEFrame.py:114 ../IDEFrame.py:144 ../IDEFrame.py:185
msgid "Move the view"
msgstr "Déplacer la vue"
@@ -2298,13 +2210,11 @@
msgid "Move up"
msgstr "Déplacer vers le bas"
-#: ../controls/VariablePanel.py:383
-#: ../c_ext/CFileEditor.py:520
+#: ../editors/CodeFileEditor.py:661 ../controls/VariablePanel.py:453
msgid "Move variable down"
msgstr "Déplacer une variable vers le bas"
-#: ../controls/VariablePanel.py:382
-#: ../c_ext/CFileEditor.py:519
+#: ../editors/CodeFileEditor.py:660 ../controls/VariablePanel.py:452
msgid "Move variable up"
msgstr "Déplacer une variable vers le haut"
@@ -2320,23 +2230,22 @@
msgid "My Computer:"
msgstr "Poste de travail :"
-#: ../controls/VariablePanel.py:58
-#: ../controls/VariablePanel.py:59
-#: ../editors/DataTypeEditor.py:50
-#: ../editors/ResourceEditor.py:68
-#: ../editors/ResourceEditor.py:77
+#: ../dialogs/DiscoveryDialog.py:92
+msgid "NAME"
+msgstr "NOM"
+
+#: ../editors/ResourceEditor.py:68 ../editors/ResourceEditor.py:83
+#: ../editors/DataTypeEditor.py:50 ../controls/VariablePanel.py:53
+#: ../controls/VariablePanel.py:54
msgid "Name"
msgstr "Nom"
-#: ../Beremiz_service.py:386
+#: ../Beremiz_service.py:332
msgid "Name must not be null!"
msgstr "Le nom ne doit pas être vide !"
-#: ../dialogs/ConnectionDialog.py:65
-#: ../dialogs/FBDVariableDialog.py:89
-#: ../dialogs/LDElementDialog.py:88
-#: ../dialogs/SFCStepDialog.py:51
-#: ../dialogs/FBDBlockDialog.py:70
+#: ../dialogs/SFCStepDialog.py:56 ../dialogs/FBDBlockDialog.py:83
+#: ../dialogs/ConnectionDialog.py:75
msgid "Name:"
msgstr "Nom :"
@@ -2344,15 +2253,20 @@
msgid "Natural logarithm"
msgstr "Logarithme népérien"
-#: ../editors/Viewer.py:402
-#: ../dialogs/LDElementDialog.py:67
+#: ../dialogs/LDElementDialog.py:75 ../editors/Viewer.py:460
msgid "Negated"
msgstr "Inversé"
-#: ../Beremiz.py:309
-#: ../Beremiz.py:344
-#: ../PLCOpenEditor.py:106
-#: ../PLCOpenEditor.py:148
+#: ../Beremiz_service.py:578
+msgid "Nevow Web service failed. "
+msgstr "Service Web Nevow échoué."
+
+#: ../Beremiz_service.py:554
+msgid "Nevow/Athena import failed :"
+msgstr "Import Nevow/Athena échoué:"
+
+#: ../PLCOpenEditor.py:102 ../PLCOpenEditor.py:144 ../Beremiz.py:321
+#: ../Beremiz.py:356
msgid "New"
msgstr "Nouveau"
@@ -2360,30 +2274,25 @@
msgid "New item"
msgstr "Nouvel élément"
-#: ../editors/Viewer.py:401
+#: ../editors/Viewer.py:459
msgid "No Modifier"
msgstr "Pas de modificateur"
-#: ../PLCControler.py:3054
-msgid "No PLC project found"
-msgstr "Pas de projet d'automate trouvé"
-
-#: ../ProjectController.py:1513
+#: ../ProjectController.py:1784
msgid "No PLC to transfer (did build succeed ?)\n"
msgstr "Aucun automate à transférer (la compilation a-t-elle réussi ?)\n"
-#: ../PLCGenerator.py:1360
+#: ../PLCGenerator.py:1631
#, python-format
msgid "No body defined in \"%s\" POU"
msgstr "Pas de code défini dans le POU \"%s\""
-#: ../PLCGenerator.py:751
-#: ../PLCGenerator.py:984
-#, python-format
-msgid "No connector found corresponding to \"%s\" continuation in \"%s\" POU"
-msgstr "Pas de connecteur trouvé pour le prolongement \"%s\" dans le POU \"%s\""
-
-#: ../PLCOpenEditor.py:349
+#: ../PLCGenerator.py:806 ../PLCGenerator.py:1241
+#, 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:347
msgid ""
"No documentation available.\n"
"Coming soon."
@@ -2391,66 +2300,72 @@
"Pas de documentation.\n"
"Bientôt disponible."
-#: ../PLCGenerator.py:773
+#: ../PLCGenerator.py:829
#, python-format
msgid "No informations found for \"%s\" block"
msgstr "Aucune information trouvée pour le block \"%s\""
-#: ../plcopen/structures.py:166
-msgid "No output variable found"
-msgstr "Pas de variable de sortie trouvée."
+#: ../PLCGenerator.py:1194
+#, python-brace-format
+msgid ""
+"No output {a1} variable found in block {a2} in POU {a3}. Connection must be "
+"broken"
+msgstr ""
+"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
msgid "No search results available."
msgstr "Pas de résultat de recherche disponible."
-#: ../svgui/svgui.py:98
+#: ../svgui/svgui.py:131
#, python-format
msgid "No such SVG file: %s\n"
msgstr "Fichier SVG inconnu : %s\n"
-#: ../canfestival/config_utils.py:632
-#, python-format
-msgid "No such index/subindex (%x,%x) (variable %s)"
-msgstr "indice et sous-indice inconnu (%x,%x) (variable %s)"
-
-#: ../canfestival/config_utils.py:361
-#, python-format
-msgid "No such index/subindex (%x,%x) in ID : %d (variable %s)"
-msgstr "indice et sous-indice inconnu (%x,%x) pour l'ID : %d (variable %s)"
+#: ../canfestival/config_utils.py:639
+#, 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
+#, 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
msgid "No valid value selected!"
msgstr "Aucune valeur valide sélectionnée !"
-#: ../PLCGenerator.py:1358
+#: ../PLCGenerator.py:1629
#, python-format
msgid "No variable defined in \"%s\" POU"
msgstr "Pas de varaibles définies dans le POU \"%s\""
-#: ../canfestival/config_utils.py:354
-#, python-format
-msgid "Non existing node ID : %d (variable %s)"
-msgstr "Le node ID n'existe pas : %d (variable %s)"
-
-#: ../controls/VariablePanel.py:69
+#: ../canfestival/config_utils.py:355
+#, python-brace-format
+msgid "Non existing node ID : {a1} (variable {a2})"
+msgstr "Node ID inexistant : {a1} (variable {a2})"
+
+#: ../controls/VariablePanel.py:64
msgid "Non-Retain"
msgstr "Non-Persistante"
-#: ../dialogs/LDElementDialog.py:62
+#: ../dialogs/LDElementDialog.py:75
msgid "Normal"
msgstr "Normal"
-#: ../canfestival/config_utils.py:383
-#, python-format
-msgid "Not PDO mappable variable : '%s' (ID:%d,Idx:%x,sIdx:%x))"
-msgstr "Variable non mappable dans un PDO : '%s' (ID:%d,Idx:%x,sIdx:%x))"
+#: ../canfestival/config_utils.py:389
+#, 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}))"
#: ../plcopen/iec_std.csv:80
msgid "Not equal to"
msgstr "Non égal à"
-#: ../dialogs/SFCDivergenceDialog.py:80
+#: ../dialogs/SFCDivergenceDialog.py:89
msgid "Number of sequences:"
msgstr "Nombre de branches :"
@@ -2458,51 +2373,40 @@
msgid "Numerical"
msgstr "Numérique"
-#: ../plcopen/structures.py:246
-msgid ""
-"Off-delay timer\n"
-"The off-delay timer can be used to delay setting an output false, for fixed period after input goes false."
-msgstr ""
-"Temporisation avec retard à l'extinction\n"
-"La temporisation avec retard à l'extinction peut être utilisé pour retarder le passage de la sortie à l'état faux, d'une période fixe après le passage de l'entrée à l'état faux"
-
-#: ../plcopen/structures.py:241
-msgid ""
-"On-delay timer\n"
-"The on-delay timer can be used to delay setting an output true, for fixed period after an input becomes true."
-msgstr ""
-"Temporisation avec retard à l'allumage\n"
-"La temporisation avec retard à l'allumage peut être utilisé pour retarder le passage de la sortie à l'état vrai, d'une période fixe après le passage de l'entrée à l'état vrai"
-
-#: ../dialogs/SearchInProjectDialog.py:93
+#: ../dialogs/SearchInProjectDialog.py:86
msgid "Only Elements"
msgstr "Uniquement les éléments"
-#: ../Beremiz.py:311
-#: ../Beremiz.py:345
-#: ../PLCOpenEditor.py:108
-#: ../PLCOpenEditor.py:149
+#: ../PLCOpenEditor.py:104 ../PLCOpenEditor.py:145 ../Beremiz.py:323
+#: ../Beremiz.py:357
msgid "Open"
msgstr "Ouvrir"
-#: ../svgui/svgui.py:107
+#: ../svgui/svgui.py:140
msgid "Open Inkscape"
msgstr "Ouverture de Inkscape"
-#: ../ProjectController.py:1565
+#: ../version.py:66
+msgid ""
+"Open Source framework for automation, implemented IEC 61131 IDE with "
+"constantly growing set of extensions and flexible PLC runtime."
+msgstr ""
+"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:1836
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:109
+#: ../wxglade_hmi/wxglade_hmi.py:138
msgid "Open wxGlade"
msgstr "Ouverture de wxGlade"
-#: ../controls/VariablePanel.py:58
-#: ../controls/VariablePanel.py:59
+#: ../controls/VariablePanel.py:53 ../controls/VariablePanel.py:54
msgid "Option"
msgstr "Option"
-#: ../dialogs/FindInPouDialog.py:76
+#: ../dialogs/FindInPouDialog.py:83
msgid "Options"
msgstr "Options"
@@ -2510,73 +2414,104 @@
msgid "Organization (optional):"
msgstr "Groupe (optionnel) :"
-#: ../canfestival/SlaveEditor.py:51
-#: ../canfestival/NetworkEditor.py:72
+#: ../canfestival/SlaveEditor.py:74 ../canfestival/NetworkEditor.py:95
msgid "Other Profile"
msgstr "Autre profil"
-#: ../controls/VariablePanel.py:76
-#: ../editors/Viewer.py:1411
-#: ../dialogs/BrowseLocationsDialog.py:36
-#: ../dialogs/FBDVariableDialog.py:35
-#: ../dialogs/SFCStepDialog.py:65
+#: ../dialogs/SFCStepDialog.py:71 ../dialogs/FBDVariableDialog.py:39
+#: ../dialogs/BrowseLocationsDialog.py:41 ../editors/Viewer.py:289
+#: ../editors/Viewer.py:1590 ../editors/TextViewer.py:307
+#: ../controls/LocationCellEditor.py:98 ../controls/VariablePanel.py:71
+#: ../controls/VariablePanel.py:291 ../controls/VariablePanel.py:351
msgid "Output"
msgstr "Sortie"
-#: ../canfestival/SlaveEditor.py:40
-#: ../canfestival/NetworkEditor.py:61
+#: ../canfestival/SlaveEditor.py:63 ../canfestival/NetworkEditor.py:84
msgid "PDO Receive"
msgstr "PDO reçu"
-#: ../canfestival/SlaveEditor.py:39
-#: ../canfestival/NetworkEditor.py:60
+#: ../canfestival/SlaveEditor.py:62 ../canfestival/NetworkEditor.py:83
msgid "PDO Transmit"
msgstr "PDO transmis"
-#: ../plcopen/structures.py:268
-msgid ""
-"PID\n"
-"The PID (proportional, Integral, Derivative) function block provides the classical three term controller for closed loop control."
-msgstr ""
-"PID\n"
-"Le bloc fonctionnel PID (Proportionnel, Intégrale, Dérivée) fournit un controller de boucle fermé classique à trois paramètres."
-
-#: ../targets/toolchain_gcc.py:107
+#: ../targets/toolchain_gcc.py:131
msgid "PLC :\n"
msgstr "Automate :\n"
-#: ../Beremiz.py:425
+#: ../Beremiz.py:453
msgid "PLC Log"
msgstr "Log de l'automate"
-#: ../PLCOpenEditor.py:294
-#: ../PLCOpenEditor.py:370
+#: ../ProjectController.py:1013
+msgid "PLC code generation failed !\n"
+msgstr "Génération du code PLC échouée !\n"
+
+#: ../Beremiz_service.py:295
+msgid "PLC is empty or already started."
+msgstr "Le PLC est vide ou déjà lancé."
+
+#: ../Beremiz_service.py:302
+msgid "PLC is not started."
+msgstr "PLC non démarré"
+
+#: ../PLCOpenEditor.py:196 ../PLCOpenEditor.py:309
+#, python-brace-format
+msgid ""
+"PLC syntax error at line {a1}:\n"
+"{a2}"
+msgstr ""
+"Erreur de syntaxe PLC à la ligne {a1}:\n"
+"{a2}"
+
+#: ../PLCOpenEditor.py:292 ../PLCOpenEditor.py:373
msgid "PLCOpen files (*.xml)|*.xml|All files|*.*"
msgstr "Fichiers PLCOpen (*.xml)|*.xml|Tous les fichiers|*.*"
-#: ../PLCOpenEditor.py:156
-#: ../PLCOpenEditor.py:212
+#: ../PLCOpenEditor.py:152 ../PLCOpenEditor.py:209
msgid "PLCOpenEditor"
msgstr "PLCOpenEditor"
-#: ../dialogs/PouDialog.py:98
+#: ../PLCOpenEditor.py:355
+msgid ""
+"PLCOpenEditor is part of Beremiz project.\n"
+"\n"
+"Beremiz is an "
+msgstr ""
+"PLCOpenEditor fait partie du projet Beremiz.\n"
+"\n"
+"Beremiz est un "
+
+#: ../dialogs/DiscoveryDialog.py:95
+msgid "PORT"
+msgstr "PORT"
+
+#: ../dialogs/PouDialog.py:100
msgid "POU Name"
msgstr "Nom du POU"
-#: ../dialogs/PouDialog.py:56
+#: ../dialogs/PouDialog.py:58
msgid "POU Name:"
msgstr "Nom du POU :"
-#: ../dialogs/PouDialog.py:100
+#: ../dialogs/PouDialog.py:102
msgid "POU Type"
msgstr "Type du POU"
-#: ../dialogs/PouDialog.py:63
+#: ../dialogs/PouDialog.py:65
msgid "POU Type:"
msgstr "Type du POU :"
-#: ../Beremiz.py:324
-#: ../PLCOpenEditor.py:122
+#: ../connectors/PYRO/__init__.py:45
+#, python-format
+msgid "PYRO connecting to URI : %s\n"
+msgstr "Connexion de PYRO à l'URI:%s\n"
+
+#: ../connectors/PYRO/__init__.py:61
+#, python-format
+msgid "PYRO using certificates in '%s' \n"
+msgstr "PYRO utilise les certificats dans '%s'\n"
+
+#: ../PLCOpenEditor.py:118 ../Beremiz.py:336
msgid "Page Setup"
msgstr "Mise en page..."
@@ -2584,101 +2519,88 @@
msgid "Page Size (optional):"
msgstr "Taille de la page (optionnel) :"
-#: ../IDEFrame.py:2492
+#: ../IDEFrame.py:2598
#, python-format
msgid "Page: %d"
msgstr "Page: %d"
-#: ../controls/PouInstanceVariablesPanel.py:48
+#: ../controls/PouInstanceVariablesPanel.py:124
msgid "Parent instance"
msgstr "Instance parent"
-#: ../IDEFrame.py:355
-#: ../IDEFrame.py:407
-#: ../editors/Viewer.py:537
+#: ../editors/Viewer.py:598 ../IDEFrame.py:372 ../IDEFrame.py:426
msgid "Paste"
msgstr "Coller"
-#: ../IDEFrame.py:1776
+#: ../IDEFrame.py:1864
msgid "Paste POU"
msgstr "Coller un POU"
-#: ../dialogs/SearchInProjectDialog.py:64
+#: ../dialogs/SearchInProjectDialog.py:56
msgid "Pattern to search:"
msgstr "Modèle à rechercher :"
-#: ../dialogs/LDPowerRailDialog.py:64
+#: ../dialogs/LDPowerRailDialog.py:73
msgid "Pin number:"
msgstr "Nombre de pattes :"
-#: ../editors/Viewer.py:2363
-#: ../editors/Viewer.py:2670
-#: ../editors/SFCViewer.py:696
+#: ../editors/Viewer.py:2717 ../editors/Viewer.py:2974
+#: ../editors/SFCViewer.py:770
msgid "Please choose a target"
msgstr "Choisissez une cible"
-#: ../editors/Viewer.py:2186
-#: ../editors/Viewer.py:2188
-#: ../editors/Viewer.py:2706
-#: ../editors/Viewer.py:2708
+#: ../editors/TextViewer.py:262
+msgid "Please enter a block name"
+msgstr "Entrer un nom de bloc s'il vous plaît"
+
+#: ../editors/Viewer.py:2587 ../editors/Viewer.py:3016
msgid "Please enter comment text"
msgstr "Saisissez le texte du commentaire"
-#: ../editors/SFCViewer.py:359
-#: ../editors/SFCViewer.py:381
-#: ../editors/SFCViewer.py:725
+#: ../editors/SFCViewer.py:433 ../editors/SFCViewer.py:455
+#: ../editors/SFCViewer.py:799
msgid "Please enter step name"
msgstr "Saisissez le nom de l'étape"
+#: ../Beremiz_service.py:194
+msgid "Please enter text"
+msgstr "Saisissez le texte"
+
#: ../dialogs/ForceVariableDialog.py:163
#, python-format
msgid "Please enter value for a \"%s\" variable:"
msgstr "Veuillez entrer la valeur pour une variable de type \"%s\" :"
-#: ../Beremiz_service.py:371
+#: ../Beremiz_service.py:317
msgid "Port number must be 0 <= port <= 65535!"
msgstr "Le numéro de port doit être compris entre 0 et 65535 !"
-#: ../Beremiz_service.py:371
+#: ../Beremiz_service.py:317
msgid "Port number must be an integer!"
msgstr "Le numéro de port doit être un entier !"
-#: ../editors/GraphicViewer.py:105
-msgid "Position:"
-msgstr "Position :"
-
-#: ../editors/Viewer.py:475
+#: ../editors/Viewer.py:536 ../editors/Viewer.py:2378
msgid "Power Rail"
msgstr "Barre d'alimentation"
-#: ../dialogs/LDPowerRailDialog.py:36
+#: ../dialogs/LDPowerRailDialog.py:50
msgid "Power Rail Properties"
msgstr "Propriétés de la barre d'alimentation"
-#: ../Beremiz.py:326
-#: ../PLCOpenEditor.py:124
+#: ../PLCOpenEditor.py:120 ../Beremiz.py:338
msgid "Preview"
msgstr "Aperçu avant impression"
-#: ../dialogs/SFCDivergenceDialog.py:93
-#: ../dialogs/LDPowerRailDialog.py:78
-#: ../dialogs/ConnectionDialog.py:78
-#: ../dialogs/FBDVariableDialog.py:97
-#: ../dialogs/SFCTransitionDialog.py:96
-#: ../dialogs/LDElementDialog.py:101
-#: ../dialogs/SFCStepDialog.py:79
-#: ../dialogs/FBDBlockDialog.py:103
+#: ../dialogs/BlockPreviewDialog.py:57
msgid "Preview:"
msgstr "Aperçu :"
-#: ../Beremiz.py:328
-#: ../Beremiz.py:348
-#: ../PLCOpenEditor.py:126
-#: ../PLCOpenEditor.py:152
+#: ../PLCOpenEditor.py:122 ../PLCOpenEditor.py:148 ../Beremiz.py:340
+#: ../Beremiz.py:360
msgid "Print"
msgstr "Imprimer"
-#: ../IDEFrame.py:1038
+#: ../IDEFrame.py:1075
msgid "Print preview"
msgstr "Aperçu avant impression"
@@ -2686,15 +2608,19 @@
msgid "Priority"
msgstr "Priorité"
-#: ../dialogs/SFCTransitionDialog.py:83
+#: ../dialogs/SFCTransitionDialog.py:89
msgid "Priority:"
msgstr "Priorité :"
-#: ../runtime/PLCObject.py:318
+#: ../runtime/PLCObject.py:370
#, python-format
msgid "Problem starting PLC : error %d"
msgstr "Problème au démarrage du PLC : erreur %d"
+#: ../dialogs/ProjectDialog.py:55
+msgid "Product Name"
+msgstr "Nom de produit"
+
#: ../controls/ProjectPropertiesPanel.py:80
msgid "Product Name (required):"
msgstr "Nom du produit (obligatoire) :"
@@ -2703,29 +2629,32 @@
msgid "Product Release (optional):"
msgstr "Publication du produit (optionnel) :"
+#: ../dialogs/ProjectDialog.py:56
+msgid "Product Version"
+msgstr "Version du produit"
+
#: ../controls/ProjectPropertiesPanel.py:81
msgid "Product Version (required):"
msgstr "Version du produit (obligatoire) :"
-#: ../IDEFrame.py:1848
-#: ../dialogs/SearchInProjectDialog.py:46
+#: ../dialogs/SearchInProjectDialog.py:38 ../IDEFrame.py:1743
+#: ../IDEFrame.py:1940
msgid "Program"
msgstr "Programme"
-#: ../PLCOpenEditor.py:339
+#: ../PLCOpenEditor.py:337
msgid "Program was successfully generated!"
msgstr "Le programme a été généré avec succès !"
-#: ../PLCControler.py:95
+#: ../PLCControler.py:96
msgid "Programs"
msgstr "Programmes"
-#: ../editors/Viewer.py:230
+#: ../editors/Viewer.py:242
msgid "Programs can't be used by other POUs!"
msgstr "Les programmes ne peuvent être utilisés par les autres POUs !"
-#: ../controls/ProjectPropertiesPanel.py:84
-#: ../IDEFrame.py:557
+#: ../controls/ProjectPropertiesPanel.py:84 ../IDEFrame.py:584
msgid "Project"
msgstr "Projet"
@@ -2734,10 +2663,14 @@
msgid "Project '%s':"
msgstr "Projet '%s' :"
-#: ../ProjectController.py:1564
+#: ../ProjectController.py:1835
msgid "Project Files"
msgstr "Fichiers de projet"
+#: ../dialogs/ProjectDialog.py:54
+msgid "Project Name"
+msgstr "Nom du projet"
+
#: ../controls/ProjectPropertiesPanel.py:78
msgid "Project Name (required):"
msgstr "Nom du projet (obligatoire) :"
@@ -2746,7 +2679,7 @@
msgid "Project Version (optional):"
msgstr "Version du projet (optionnel) :"
-#: ../PLCControler.py:3041
+#: ../PLCControler.py:3158
msgid ""
"Project file syntax error:\n"
"\n"
@@ -2754,113 +2687,90 @@
"Erreur de syntaxe dans le fichier du projet :\n"
"\n"
-#: ../editors/ProjectNodeEditor.py:14
-#: ../dialogs/ProjectDialog.py:32
+#: ../dialogs/ProjectDialog.py:32 ../editors/ProjectNodeEditor.py:37
msgid "Project properties"
msgstr "Propriétés du projet"
-#: ../ConfigTreeNode.py:526
-#, python-format
-msgid "Project tree layout do not match confnode.xml %s!=%s "
-msgstr "L'organisation du projet ne correspond pas à plugin.xml %s!=%s"
-
-#: ../dialogs/ConnectionDialog.py:96
+#: ../ConfigTreeNode.py:566
+#, python-brace-format
+msgid "Project tree layout do not match confnode.xml {a1}!={a2} "
+msgstr ""
+
+#: ../dialogs/ConnectionDialog.py:94
msgid "Propagate Name"
msgstr "Propager le nom"
-#: ../PLCControler.py:96
+#: ../PLCControler.py:97
msgid "Properties"
msgstr "Propriétés"
-#: ../plcopen/structures.py:236
-msgid ""
-"Pulse timer\n"
-"The pulse timer can be used to generate output pulses of a given time duration."
-msgstr ""
-"Temporisation à impulsion\n"
-"La temporisation à impulsion peut être utilisée pour générer sur la sortie des impulsions d'une durée déterminée."
-
-#: ../py_ext/PythonEditor.py:61
+#: ../Beremiz_service.py:440
+msgid "Publishing service on local network"
+msgstr ""
+
+#: ../connectors/PYRO/__init__.py:118
+#, python-format
+msgid "Pyro exception: %s\n"
+msgstr ""
+
+#: ../Beremiz_service.py:427
+msgid "Pyro object's uri :"
+msgstr ""
+
+#: ../Beremiz_service.py:426
+msgid "Pyro port :"
+msgstr "Pyro port :"
+
+#: ../py_ext/PythonEditor.py:81
msgid "Python code"
msgstr "Code Python"
-#: ../features.py:9
+#: ../features.py:33
msgid "Python file"
msgstr "Fichier Python"
-#: ../dialogs/ActionBlockDialog.py:37
+#: ../dialogs/ActionBlockDialog.py:38
msgid "Qualifier"
msgstr "Qualificatif"
-#: ../Beremiz_service.py:333
-#: ../Beremiz.py:331
-#: ../PLCOpenEditor.py:132
+#: ../PLCOpenEditor.py:128 ../Beremiz.py:343 ../Beremiz_service.py:273
msgid "Quit"
msgstr "Quitter"
-#: ../plcopen/structures.py:201
-msgid ""
-"RS bistable\n"
-"The RS bistable is a latch where the Reset dominates."
-msgstr ""
-"Bascule RS\n"
-"La bascule RS est une bascule où le Reset est dominant."
-
-#: ../plcopen/structures.py:273
-msgid ""
-"Ramp\n"
-"The RAMP function block is modelled on example given in the standard."
-msgstr ""
-"Rampe\n"
-"Le bloc fonctionnel RAMP est basé sur l'exemple du standard."
-
-#: ../controls/DebugVariablePanel.py:1462
-#: ../editors/GraphicViewer.py:89
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:225
msgid "Range:"
msgstr "Echelle :"
-#: ../ProjectController.py:1560
+#: ../ProjectController.py:1831
msgid "Raw IEC code"
msgstr "Ajout code IEC"
-#: ../plcopen/structures.py:253
-msgid ""
-"Real time clock\n"
-"The real time clock has many uses including time stamping, setting dates and times of day in batch reports, in alarm messages and so on."
-msgstr ""
-"Horloge temps réel\n"
-"L'horloge temps réel est utilisée dans de nombreux cas tels que l'horodatage, la définition des dates et heures dans des rapports de commandes, dans des messages d'alarme et bien d'autres."
-
-#: ../Beremiz.py:1072
+#: ../Beremiz.py:1143
#, python-format
msgid "Really delete node '%s'?"
msgstr "Êtes-vous sûr de vouloir supprimer le noeud '%s' ?"
-#: ../IDEFrame.py:345
-#: ../IDEFrame.py:403
+#: ../IDEFrame.py:362 ../IDEFrame.py:422
msgid "Redo"
msgstr "Refaire"
-#: ../dialogs/SFCTransitionDialog.py:57
-#: ../dialogs/SFCTransitionDialog.py:135
+#: ../dialogs/SFCTransitionDialog.py:74
msgid "Reference"
msgstr "Référence"
-#: ../IDEFrame.py:413
-#: ../dialogs/DiscoveryDialog.py:105
+#: ../dialogs/DiscoveryDialog.py:106 ../IDEFrame.py:432
msgid "Refresh"
msgstr "Actualiser"
-#: ../dialogs/SearchInProjectDialog.py:73
+#: ../dialogs/SearchInProjectDialog.py:66
msgid "Regular expression"
msgstr "Expression régulière"
-#: ../dialogs/FindInPouDialog.py:91
+#: ../dialogs/FindInPouDialog.py:98
msgid "Regular expressions"
msgstr "Expressions régulières"
-#: ../controls/DebugVariablePanel.py:1938
-#: ../editors/Viewer.py:1388
+#: ../editors/Viewer.py:1567
msgid "Release value"
msgstr "Relacher la valeur"
@@ -2868,20 +2778,24 @@
msgid "Remainder (modulo)"
msgstr "Modulo"
-#: ../Beremiz.py:1073
+#: ../Beremiz.py:1144
#, python-format
msgid "Remove %s node"
msgstr "Enlever un noeud %s"
-#: ../dialogs/ActionBlockDialog.py:139
+#: ../IDEFrame.py:2404
+msgid "Remove Datatype"
+msgstr "Supprimer le Datatype"
+
+#: ../IDEFrame.py:2409
+msgid "Remove Pou"
+msgstr "Supprimer le Pou"
+
+#: ../dialogs/ActionBlockDialog.py:138
msgid "Remove action"
msgstr "Supprimer une action"
-#: ../controls/DebugVariablePanel.py:1530
-msgid "Remove debug variable"
-msgstr "Supprimer une variable à déboguer"
-
-#: ../editors/DataTypeEditor.py:352
+#: ../editors/DataTypeEditor.py:353
msgid "Remove element"
msgstr "Supprimer un élément"
@@ -2889,24 +2803,23 @@
msgid "Remove file from left folder"
msgstr "Supprimer un fichier du dossier de gauche"
-#: ../editors/ResourceEditor.py:260
+#: ../editors/ResourceEditor.py:269
msgid "Remove instance"
msgstr "Supprimer une instance"
-#: ../canfestival/NetworkEditor.py:81
+#: ../canfestival/NetworkEditor.py:104
msgid "Remove slave"
msgstr "Enlever l'esclave"
-#: ../editors/ResourceEditor.py:231
+#: ../editors/ResourceEditor.py:240
msgid "Remove task"
msgstr "Supprimer la tâche"
-#: ../controls/VariablePanel.py:381
-#: ../c_ext/CFileEditor.py:518
+#: ../editors/CodeFileEditor.py:659 ../controls/VariablePanel.py:451
msgid "Remove variable"
msgstr "Supprimer une variable"
-#: ../IDEFrame.py:1852
+#: ../IDEFrame.py:1944
msgid "Rename"
msgstr "Renommer"
@@ -2914,6 +2827,10 @@
msgid "Replace File"
msgstr "Remplacer un fichier"
+#: ../editors/Viewer.py:502
+msgid "Replace Wire by connections"
+msgstr "Remplacer le fil par les connexions"
+
#: ../plcopen/iec_std.csv:89
msgid "Replacement (within)"
msgstr "Remplacement (au milieu)"
@@ -2922,11 +2839,11 @@
msgid "Reset"
msgstr "Mise à zéro"
-#: ../editors/Viewer.py:521
+#: ../editors/Viewer.py:583
msgid "Reset Execution Order"
msgstr "Réinitialiser l'order d'exécution"
-#: ../IDEFrame.py:428
+#: ../IDEFrame.py:451
msgid "Reset Perspective"
msgstr "Réinitialiser l'interface"
@@ -2934,43 +2851,30 @@
msgid "Reset search result"
msgstr "Réinitialiser le résultat de la recherche"
-#: ../editors/GraphicViewer.py:137
-msgid "Reset zoom and offset"
-msgstr "Réinitialisation du zoom et de l'offset"
-
-#: ../PLCControler.py:96
+#: ../PLCControler.py:97 ../Beremiz.py:1075
msgid "Resources"
msgstr "Ressources"
-#: ../controls/VariablePanel.py:67
+#: ../controls/VariablePanel.py:62
msgid "Retain"
msgstr "Persistante"
-#: ../controls/VariablePanel.py:354
+#: ../controls/VariablePanel.py:424
msgid "Return Type:"
msgstr "Type de retour :"
-#: ../editors/Viewer.py:429
+#: ../editors/Viewer.py:487
msgid "Right"
msgstr "Droite"
-#: ../dialogs/LDPowerRailDialog.py:60
+#: ../dialogs/LDPowerRailDialog.py:63
msgid "Right PowerRail"
msgstr "Barre d'alimentation à droite"
-#: ../editors/Viewer.py:403
-#: ../dialogs/LDElementDialog.py:80
+#: ../dialogs/LDElementDialog.py:77 ../editors/Viewer.py:461
msgid "Rising Edge"
msgstr "Front montant"
-#: ../plcopen/structures.py:211
-msgid ""
-"Rising edge detector\n"
-"The output produces a single pulse when a rising edge is detected."
-msgstr ""
-"Détecteur de front montant\n"
-"La sortie produit une impulsion unique lorsqu'un front montant est détecté."
-
#: ../plcopen/iec_std.csv:65
msgid "Rotate left"
msgstr "Rotation à gauche"
@@ -2983,85 +2887,84 @@
msgid "Rounding up/down"
msgstr "Arrondi"
-#: ../ProjectController.py:1528
+#: ../ProjectController.py:1799
msgid "Run"
msgstr "Exécuter"
-#: ../ProjectController.py:865
-#: ../ProjectController.py:874
-msgid "Runtime extensions C code generation failed !\n"
-msgstr "La génération du code des plugins a échoué !\n"
-
-#: ../canfestival/SlaveEditor.py:38
-#: ../canfestival/NetworkEditor.py:59
+#: ../ProjectController.py:1058
+msgid "Runtime IO extensions C code generation failed !\n"
+msgstr ""
+
+#: ../ProjectController.py:1067
+msgid "Runtime library extensions C code generation failed !\n"
+msgstr ""
+
+#: ../canfestival/SlaveEditor.py:61 ../canfestival/NetworkEditor.py:82
msgid "SDO Client"
msgstr "Client SDO"
-#: ../canfestival/SlaveEditor.py:37
-#: ../canfestival/NetworkEditor.py:58
+#: ../canfestival/SlaveEditor.py:60 ../canfestival/NetworkEditor.py:81
msgid "SDO Server"
msgstr "Serveur SDO"
-#: ../controls/ProjectPropertiesPanel.py:143
-#: ../dialogs/PouDialog.py:36
+#: ../dialogs/PouDialog.py:36 ../controls/ProjectPropertiesPanel.py:143
msgid "SFC"
msgstr "SFC"
-#: ../plcopen/structures.py:196
-msgid ""
-"SR bistable\n"
-"The SR bistable is a latch where the Set dominates."
-msgstr ""
-"Bascule SR\n"
-"La bascule SR est une bascule où le Set est dominant."
-
-#: ../dialogs/PouTransitionDialog.py:35
-#: ../dialogs/PouActionDialog.py:31
+#: ../PLCGenerator.py:1392
+#, python-brace-format
+msgid "SFC jump in pou \"{a1}\" refers to non-existent SFC step \"{a2}\""
+msgstr ""
+
+#: ../PLCGenerator.py:773
+#, python-format
+msgid "SFC transition in POU \"%s\" must be connected."
+msgstr ""
+
+#: ../dialogs/PouTransitionDialog.py:40 ../dialogs/PouActionDialog.py:31
#: ../dialogs/PouDialog.py:36
msgid "ST"
msgstr "ST"
-#: ../PLCOpenEditor.py:326
+#: ../PLCOpenEditor.py:324
msgid "ST files (*.st)|*.st|All files|*.*"
msgstr "Fichiers ST (*.st)|*.st|Tous les fichiers|*.*"
-#: ../svgui/svgui.py:92
+#: ../svgui/svgui.py:125
msgid "SVG files (*.svg)|*.svg|All files|*.*"
msgstr "Fichiers SVG (*.svg)|*.svg|Tous les fichiers|*.*"
-#: ../features.py:11
+#: ../features.py:35
msgid "SVGUI"
msgstr "SVGUI"
-#: ../Beremiz.py:315
-#: ../Beremiz.py:346
-#: ../PLCOpenEditor.py:115
-#: ../PLCOpenEditor.py:150
+#: ../PLCOpenEditor.py:111 ../PLCOpenEditor.py:146 ../Beremiz.py:327
+#: ../Beremiz.py:358
msgid "Save"
msgstr "Enregistrer"
-#: ../Beremiz.py:347
-#: ../PLCOpenEditor.py:117
-#: ../PLCOpenEditor.py:151
+#: ../PLCOpenEditor.py:113 ../PLCOpenEditor.py:147 ../Beremiz.py:359
msgid "Save As..."
msgstr "Enregistrer sous..."
-#: ../Beremiz.py:317
+#: ../Beremiz.py:329
msgid "Save as"
msgstr "Enregistrer sous..."
-#: ../dialogs/SearchInProjectDialog.py:76
+#: ../ProjectController.py:470
+msgid "Save path is the same as path of a project! \n"
+msgstr ""
+
+#: ../dialogs/SearchInProjectDialog.py:69
msgid "Scope"
msgstr "Contexte"
-#: ../IDEFrame.py:596
-#: ../dialogs/SearchInProjectDialog.py:105
+#: ../IDEFrame.py:623
msgid "Search"
msgstr "Rechercher"
-#: ../IDEFrame.py:365
-#: ../IDEFrame.py:409
-#: ../dialogs/SearchInProjectDialog.py:52
+#: ../dialogs/SearchInProjectDialog.py:44 ../IDEFrame.py:382
+#: ../IDEFrame.py:428
msgid "Search in Project"
msgstr "Rechercher dans le projet"
@@ -3069,54 +2972,53 @@
msgid "Seconds:"
msgstr "Secondes :"
-#: ../IDEFrame.py:371
+#: ../IDEFrame.py:388
msgid "Select All"
msgstr "Tout sélectionner"
-#: ../controls/LocationCellEditor.py:97
-#: ../controls/VariablePanel.py:277
-#: ../editors/TextViewer.py:323
-#: ../editors/Viewer.py:275
+#: ../editors/Viewer.py:288 ../editors/TextViewer.py:306
+#: ../controls/LocationCellEditor.py:97 ../controls/VariablePanel.py:290
+#: ../controls/VariablePanel.py:350
msgid "Select a variable class:"
msgstr "Sélectionner une direction pour la variable :"
-#: ../ProjectController.py:1039
+#: ../ProjectController.py:1216
msgid "Select an editor:"
msgstr "Sélectionner un éditeur :"
-#: ../controls/PouInstanceVariablesPanel.py:209
+#: ../controls/PouInstanceVariablesPanel.py:276
msgid "Select an instance"
msgstr "Sélectionnez une instance"
-#: ../IDEFrame.py:580
+#: ../IDEFrame.py:607
msgid "Select an object"
msgstr "Sélectionner un objet"
+#: ../ProjectController.py:477
+msgid "Selected directory already contains another project. Overwrite? \n"
+msgstr ""
+
#: ../plcopen/iec_std.csv:70
msgid "Selection"
msgstr "Sélection"
-#: ../dialogs/SFCDivergenceDialog.py:62
+#: ../dialogs/SFCDivergenceDialog.py:65
msgid "Selection Convergence"
msgstr "Convergence simple"
-#: ../dialogs/SFCDivergenceDialog.py:55
+#: ../dialogs/SFCDivergenceDialog.py:64
msgid "Selection Divergence"
msgstr "Divergence simple"
-#: ../plcopen/structures.py:206
-msgid ""
-"Semaphore\n"
-"The semaphore provides a mechanism to allow software elements mutually exclusive access to certain ressources."
-msgstr ""
-"Sémaphore\n"
-"La sémaphore fournit un mécanisme permettant à des éléments du programme d'accéder de façon exclusive à certaines resources."
-
-#: ../dialogs/DiscoveryDialog.py:84
+#: ../dialogs/DiscoveryDialog.py:82
+msgid "Service Discovery"
+msgstr "Recherche de service"
+
+#: ../dialogs/DiscoveryDialog.py:85
msgid "Services available:"
msgstr "Services disponibles:"
-#: ../dialogs/LDElementDialog.py:72
+#: ../dialogs/LDElementDialog.py:76
msgid "Set"
msgstr "Mise à 1"
@@ -3128,27 +3030,27 @@
msgid "Shift right"
msgstr "Décalage à droite"
-#: ../ProjectController.py:1554
+#: ../ProjectController.py:1825
msgid "Show IEC code generated by PLCGenerator"
msgstr "Afficher le code IEC généré par PLCGenerator"
-#: ../canfestival/canfestival.py:363
+#: ../canfestival/canfestival.py:387
msgid "Show Master"
msgstr "Afficher le maître"
-#: ../canfestival/canfestival.py:364
+#: ../canfestival/canfestival.py:388
msgid "Show Master generated by config_utils"
msgstr "Afficher le maître généré par config_utils"
-#: ../ProjectController.py:1552
+#: ../ProjectController.py:1823
msgid "Show code"
msgstr "Afficher le code"
-#: ../dialogs/SFCDivergenceDialog.py:74
+#: ../dialogs/SFCDivergenceDialog.py:67
msgid "Simultaneous Convergence"
msgstr "Convergence double"
-#: ../dialogs/SFCDivergenceDialog.py:68
+#: ../dialogs/SFCDivergenceDialog.py:66
msgid "Simultaneous Divergence"
msgstr "Divergence double"
@@ -3160,49 +3062,67 @@
msgid "Single"
msgstr "Evènement"
+#: ../targets/toolchain_makefile.py:126
+msgid "Source didn't change, no build.\n"
+msgstr ""
+
+#: ../PLCGenerator.py:397
+#, python-brace-format
+msgid ""
+"Source signal has to be defined for single task '{a1}' in resource "
+"'{a2}.{a3}'."
+msgstr ""
+
#: ../plcopen/iec_std.csv:23
msgid "Square root (base 2)"
msgstr "Racine carré (base 2)"
-#: ../plcopen/structures.py:192
+#: ../plcopen/definitions.py:46
msgid "Standard function blocks"
msgstr "Blocs fonctionnels standards"
-#: ../Beremiz_service.py:321
-#: ../ProjectController.py:1530
+#: ../ProjectController.py:1801 ../Beremiz_service.py:261
msgid "Start PLC"
msgstr "Démarrer l'automate"
-#: ../ProjectController.py:843
+#: ../ProjectController.py:1005
#, python-format
msgid "Start build in %s\n"
msgstr "Début de la compilation dans %s\n"
-#: ../ProjectController.py:1341
+#: ../ProjectController.py:1319
+msgid "Started"
+msgstr "Démarré"
+
+#: ../ProjectController.py:1607
msgid "Starting PLC\n"
msgstr "Démarrer l'automate\n"
-#: ../Beremiz.py:435
+#: ../Beremiz.py:463
msgid "Status ToolBar"
msgstr "Barre d'outils de statut"
-#: ../editors/Viewer.py:492
+#: ../editors/Viewer.py:553 ../editors/Viewer.py:2353
msgid "Step"
msgstr "Étape"
-#: ../ProjectController.py:1533
+#: ../ProjectController.py:1804
msgid "Stop"
msgstr "Arrêter"
-#: ../Beremiz_service.py:322
+#: ../Beremiz_service.py:262
msgid "Stop PLC"
msgstr "Arrêter l'automate"
-#: ../ProjectController.py:1535
+#: ../ProjectController.py:1806
msgid "Stop Running PLC"
msgstr "Arrêter l'automate en cours d'exécution"
-#: ../ProjectController.py:1318
+#: ../ProjectController.py:1320
+msgid "Stopped"
+msgstr "Arrêté"
+
+#: ../ProjectController.py:1579
msgid "Stopping debugger...\n"
msgstr "Arrêt du débogage en cours\n"
@@ -3218,27 +3138,36 @@
msgid "Subtraction"
msgstr "Soustraction"
-#: ../ProjectController.py:942
+#: ../ProjectController.py:1044
msgid "Successfully built.\n"
msgstr "Compilé avec succès.\n"
-#: ../dialogs/SearchInProjectDialog.py:154
+#: ../IDEFrame.py:447
+msgid "Switch perspective"
+msgstr ""
+
+#: ../dialogs/SearchInProjectDialog.py:165 ../dialogs/FindInPouDialog.py:172
msgid "Syntax error in regular expression of pattern to search!"
-msgstr "Erreur de syntaxe dans l'expression régulière du modèle à rechercher !"
+msgstr ""
+"Erreur de syntaxe dans l'expression régulière du modèle à rechercher !"
+
+#: ../dialogs/DiscoveryDialog.py:93
+msgid "TYPE"
+msgstr "TYPE"
#: ../plcopen/iec_std.csv:29
msgid "Tangent"
msgstr "Tangente"
-#: ../editors/ResourceEditor.py:77
+#: ../editors/ResourceEditor.py:83
msgid "Task"
msgstr "Tâche"
-#: ../editors/ResourceEditor.py:226
+#: ../editors/ResourceEditor.py:235
msgid "Tasks:"
msgstr "Tâches :"
-#: ../controls/VariablePanel.py:78
+#: ../controls/VariablePanel.py:73
msgid "Temp"
msgstr "Temporaire"
@@ -3255,18 +3184,20 @@
msgid "The group of block must be coherent!"
msgstr "Le groupe de blocs doit être cohérent !"
-#: ../IDEFrame.py:974
-#: ../Beremiz.py:590
+#: ../Beremiz.py:640 ../IDEFrame.py:1011
msgid "There are changes, do you want to save?"
msgstr "Le projet a été modifié. Voulez-vous l'enregistrer ?"
-#: ../IDEFrame.py:1590
-#: ../IDEFrame.py:1609
-#, python-format
-msgid "There is a POU named \"%s\". This could cause a conflict. Do you wish to continue?"
-msgstr "Un POU a pour nom \"%s\". Cela peut générer des conflits. Voulez-vous continuer ?"
-
-#: ../IDEFrame.py:1061
+#: ../IDEFrame.py:1654 ../IDEFrame.py:1673
+#, python-format
+msgid ""
+"There is a POU named \"%s\". This could cause a conflict. Do you wish to "
+"continue?"
+msgstr ""
+"Un POU a pour nom \"%s\". Cela peut générer des conflits. Voulez-vous "
+"continuer ?"
+
+#: ../IDEFrame.py:1098
msgid ""
"There was a problem printing.\n"
"Perhaps your current printer is not set correctly?"
@@ -3278,16 +3209,16 @@
msgid "This option isn't available yet!"
msgstr "Cette option n'a pas encore disponible"
-#: ../editors/GraphicViewer.py:278
-msgid "Tick"
-msgstr "Tick"
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:565
+#, python-format
+msgid "Tick: %d"
+msgstr ""
#: ../plcopen/iec_std.csv:40
msgid "Time"
msgstr "Temps"
-#: ../plcopen/iec_std.csv:40
-#: ../plcopen/iec_std.csv:41
+#: ../plcopen/iec_std.csv:40 ../plcopen/iec_std.csv:41
msgid "Time addition"
msgstr "Addition de durée"
@@ -3295,107 +3226,113 @@
msgid "Time concatenation"
msgstr "Concaténation de date et de durée"
-#: ../plcopen/iec_std.csv:60
-#: ../plcopen/iec_std.csv:61
+#: ../plcopen/iec_std.csv:60 ../plcopen/iec_std.csv:61
msgid "Time division"
msgstr "Division de durée"
-#: ../plcopen/iec_std.csv:46
-#: ../plcopen/iec_std.csv:47
+#: ../plcopen/iec_std.csv:46 ../plcopen/iec_std.csv:47
msgid "Time multiplication"
msgstr "Multiplication de durée"
-#: ../plcopen/iec_std.csv:48
-#: ../plcopen/iec_std.csv:49
+#: ../plcopen/iec_std.csv:48 ../plcopen/iec_std.csv:49
msgid "Time subtraction"
msgstr "Soustraction de durée"
-#: ../plcopen/iec_std.csv:42
-#: ../plcopen/iec_std.csv:43
+#: ../plcopen/iec_std.csv:42 ../plcopen/iec_std.csv:43
msgid "Time-of-day addition"
msgstr "Addition d'horodatage"
-#: ../plcopen/iec_std.csv:52
-#: ../plcopen/iec_std.csv:53
-#: ../plcopen/iec_std.csv:54
-#: ../plcopen/iec_std.csv:55
+#: ../plcopen/iec_std.csv:52 ../plcopen/iec_std.csv:53
+#: ../plcopen/iec_std.csv:54 ../plcopen/iec_std.csv:55
msgid "Time-of-day subtraction"
msgstr "Soustraction d'horodatage"
-#: ../editors/Viewer.py:431
+#: ../editors/Viewer.py:489
msgid "Top"
msgstr "Haut"
-#: ../ProjectController.py:1542
+#: ../ProjectController.py:1813
msgid "Transfer"
msgstr "Transférer"
-#: ../ProjectController.py:1544
+#: ../ProjectController.py:1815
msgid "Transfer PLC"
msgstr "Transférer l'automate"
-#: ../ProjectController.py:1509
+#: ../ProjectController.py:1779
msgid "Transfer completed successfully.\n"
msgstr "Transfert effectué avec succès.\n"
-#: ../ProjectController.py:1511
+#: ../ProjectController.py:1781
msgid "Transfer failed\n"
msgstr "Le transfert a échoué\n"
-#: ../editors/Viewer.py:493
+#: ../editors/Viewer.py:554 ../editors/Viewer.py:2355
+#: ../editors/Viewer.py:2382
msgid "Transition"
msgstr "Transition"
-#: ../PLCGenerator.py:1252
-#, python-format
-msgid "Transition \"%s\" body must contain an output variable or coil referring to its name"
-msgstr "Le code de la transition \"%s\" doit contenir une variable de sortie ou un relai dont la référence est son nom"
-
-#: ../dialogs/PouTransitionDialog.py:84
+#: ../PLCGenerator.py:1518
+#, python-format
+msgid ""
+"Transition \"%s\" body must contain an output variable or coil referring to "
+"its name"
+msgstr ""
+"Le code de la transition \"%s\" doit contenir une variable de sortie ou un "
+"relai dont la référence est son nom"
+
+#: ../dialogs/PouTransitionDialog.py:89
msgid "Transition Name"
msgstr "Nom de la transition"
-#: ../dialogs/PouTransitionDialog.py:53
+#: ../dialogs/PouTransitionDialog.py:58
msgid "Transition Name:"
msgstr "Nom de la transition :"
-#: ../PLCGenerator.py:1340
-#, python-format
-msgid "Transition with content \"%s\" not connected to a next step in \"%s\" POU"
-msgstr "La transition contenant \"%s\" n'est pas connectée à une étape en sortie dans le POU \"%s\" !"
-
-#: ../PLCGenerator.py:1331
-#, python-format
-msgid "Transition with content \"%s\" not connected to a previous step in \"%s\" POU"
-msgstr "La transition contenant \"%s\" n'est pas connectée à une étape en entrée dans le POU \"%s\" !"
-
-#: ../plcopen/plcopen.py:1447
+#: ../PLCGenerator.py:1609
+#, python-brace-format
+msgid "Transition with content \"{a1}\" not connected to a next step in \"{a2}\" POU"
+msgstr ""
+
+#: ../PLCGenerator.py:1598
+#, python-brace-format
+msgid ""
+"Transition with content \"{a1}\" not connected to a previous step in "
+"\"{a2}\" POU"
+msgstr ""
+
+#: ../plcopen/plcopen.py:1318
#, python-format
msgid "Transition with name %s doesn't exist!"
msgstr "La transition nommée %s n'existe pas !"
-#: ../PLCControler.py:95
+#: ../PLCControler.py:96
msgid "Transitions"
msgstr "Transitions"
+#: ../dialogs/AboutDialog.py:131
+msgid "Translated by"
+msgstr ""
+
#: ../editors/ResourceEditor.py:68
msgid "Triggering"
msgstr "Activation"
-#: ../controls/VariablePanel.py:58
-#: ../controls/VariablePanel.py:59
-#: ../editors/DataTypeEditor.py:50
-#: ../editors/ResourceEditor.py:77
-#: ../dialogs/ActionBlockDialog.py:37
+#: ../Beremiz_service.py:476
+msgid "Twisted unavailable."
+msgstr ""
+
+#: ../dialogs/ActionBlockDialog.py:38 ../editors/ResourceEditor.py:83
+#: ../editors/DataTypeEditor.py:50 ../controls/VariablePanel.py:53
+#: ../controls/VariablePanel.py:54
msgid "Type"
msgstr "Type"
-#: ../dialogs/BrowseLocationsDialog.py:44
+#: ../dialogs/BrowseLocationsDialog.py:48
msgid "Type and derivated"
msgstr "Type et ses dérivés"
-#: ../canfestival/config_utils.py:335
-#: ../canfestival/config_utils.py:617
+#: ../canfestival/config_utils.py:336 ../canfestival/config_utils.py:624
#, python-format
msgid "Type conflict for location \"%s\""
msgstr "Conflit entre types pour l'adresse \"%s\""
@@ -3404,140 +3341,117 @@
msgid "Type conversion"
msgstr "Conversion de type"
-#: ../editors/DataTypeEditor.py:161
+#: ../editors/DataTypeEditor.py:162
msgid "Type infos:"
msgstr "Propriétés du type :"
-#: ../dialogs/BrowseLocationsDialog.py:45
+#: ../dialogs/BrowseLocationsDialog.py:49
msgid "Type strict"
msgstr "Type uniquement"
-#: ../dialogs/SFCDivergenceDialog.py:51
-#: ../dialogs/LDPowerRailDialog.py:51
-#: ../dialogs/BrowseLocationsDialog.py:95
-#: ../dialogs/ConnectionDialog.py:52
-#: ../dialogs/SFCTransitionDialog.py:53
-#: ../dialogs/FBDBlockDialog.py:48
+#: ../dialogs/SFCDivergenceDialog.py:59 ../dialogs/SFCTransitionDialog.py:57
+#: ../dialogs/LDPowerRailDialog.py:56 ../dialogs/BrowseLocationsDialog.py:99
+#: ../dialogs/FBDBlockDialog.py:65 ../dialogs/ConnectionDialog.py:58
msgid "Type:"
msgstr "Type :"
-#: ../canfestival/config_utils.py:455
-#: ../canfestival/config_utils.py:469
+#: ../canfestival/config_utils.py:462 ../canfestival/config_utils.py:476
#, 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:14
+#: ../targets/Xenomai/__init__.py:39
#, python-format
msgid "Unable to get Xenomai's %s \n"
msgstr "Unable to get Xenomai's %s \n"
-#: ../PLCGenerator.py:904
-#: ../PLCGenerator.py:963
-#, python-format
-msgid "Undefined block type \"%s\" in \"%s\" POU"
-msgstr "Type de block \"%s\" indéfini dans le POU \"%s\""
-
-#: ../PLCGenerator.py:252
+#: ../PLCGenerator.py:961 ../PLCGenerator.py:1214
+#, python-brace-format
+msgid "Undefined block type \"{a1}\" in \"{a2}\" POU"
+msgstr ""
+
+#: ../PLCGenerator.py:254
#, python-format
msgid "Undefined pou type \"%s\""
msgstr "Type de POU \"%s\" indéterminé !"
-#: ../IDEFrame.py:343
-#: ../IDEFrame.py:402
+#: ../IDEFrame.py:360 ../IDEFrame.py:421
msgid "Undo"
msgstr "Défaire"
-#: ../ProjectController.py:262
+#: ../ProjectController.py:382
msgid "Unknown"
msgstr "Inconnu"
-#: ../editors/Viewer.py:335
+#: ../editors/Viewer.py:393
#, python-format
msgid "Unknown variable \"%s\" for this POU!"
msgstr "Variable \"%s\" inconnue dans ce POU !"
-#: ../ProjectController.py:259
-#: ../ProjectController.py:260
+#: ../ProjectController.py:379 ../ProjectController.py:380
msgid "Unnamed"
msgstr "SansNom"
-#: ../PLCControler.py:305
+#: ../PLCControler.py:636
#, python-format
msgid "Unnamed%d"
msgstr "Sansnom%d"
-#: ../controls/VariablePanel.py:272
+#: ../controls/VariablePanel.py:284
#, python-format
msgid "Unrecognized data size \"%s\""
msgstr "Taille de donnée \"%s\" non identifié !"
-#: ../plcopen/structures.py:221
-msgid ""
-"Up-counter\n"
-"The up-counter can be used to signal when a count has reached a maximum value."
-msgstr ""
-"Compteur incrémental\n"
-"Le compteur incrémental peut être utilisé pour signaler lorsque le compteur a atteint la valeur maximale."
-
-#: ../plcopen/structures.py:231
-msgid ""
-"Up-down counter\n"
-"The up-down counter has two inputs CU and CD. It can be used to both count up on one input and down on the other."
-msgstr ""
-"Compteur bidirectionnel\n"
-"Le compteur bidirectionnel a deux entrées CU et CD. Il peut être utilisé pour compter de façon incrémentale ou décrémentale sur l'une ou l'autre des entrées."
-
-#: ../controls/VariablePanel.py:712
-#: ../editors/DataTypeEditor.py:631
+#: ../editors/DataTypeEditor.py:632 ../controls/VariablePanel.py:810
msgid "User Data Types"
msgstr "Types de donnée du projet"
-#: ../canfestival/SlaveEditor.py:42
-#: ../canfestival/NetworkEditor.py:63
+#: ../canfestival/SlaveEditor.py:65 ../canfestival/NetworkEditor.py:86
msgid "User Type"
msgstr "Type utilisateur"
-#: ../PLCControler.py:94
+#: ../PLCControler.py:95
msgid "User-defined POUs"
msgstr "POUs du projet"
-#: ../controls/DebugVariablePanel.py:58
-#: ../dialogs/ActionBlockDialog.py:37
+#: ../dialogs/ActionBlockDialog.py:38
msgid "Value"
msgstr "Valeur"
-#: ../editors/GraphicViewer.py:278
-msgid "Values"
-msgstr "Valeurs"
-
-#: ../editors/DataTypeEditor.py:258
+#: ../editors/DataTypeEditor.py:259
msgid "Values:"
msgstr "Valeurs"
-#: ../controls/DebugVariablePanel.py:58
-#: ../editors/Viewer.py:465
-#: ../dialogs/ActionBlockDialog.py:41
+#: ../dialogs/ActionBlockDialog.py:42 ../editors/Viewer.py:526
+#: ../editors/Viewer.py:2385
msgid "Variable"
msgstr "Variable"
-#: ../dialogs/FBDVariableDialog.py:47
+#: ../editors/Viewer.py:308 ../editors/Viewer.py:338 ../editors/Viewer.py:360
+#: ../editors/TextViewer.py:292 ../editors/TextViewer.py:343
+#: ../editors/TextViewer.py:366 ../controls/VariablePanel.py:329
+msgid "Variable Drop"
+msgstr ""
+
+#: ../dialogs/FBDVariableDialog.py:63
msgid "Variable Properties"
msgstr "Propriétés de la variable"
-#: ../controls/LocationCellEditor.py:97
-#: ../controls/VariablePanel.py:277
-#: ../editors/TextViewer.py:323
-#: ../editors/Viewer.py:275
+#: ../editors/Viewer.py:288 ../editors/TextViewer.py:306
+#: ../controls/LocationCellEditor.py:97 ../controls/VariablePanel.py:290
+#: ../controls/VariablePanel.py:350
msgid "Variable class"
msgstr "Direction de la variable"
-#: ../editors/TextViewer.py:367
-#: ../editors/Viewer.py:337
+#: ../editors/Viewer.py:395 ../editors/TextViewer.py:387
msgid "Variable don't belong to this POU!"
msgstr "La variable n'appartient pas à ce POU !"
-#: ../controls/VariablePanel.py:77
+#: ../dialogs/LDElementDialog.py:89
+msgid "Variable:"
+msgstr "Variable:"
+
+#: ../controls/VariablePanel.py:72
msgid "Variables"
msgstr "Variables"
@@ -3545,24 +3459,41 @@
msgid "Vertical:"
msgstr "Vertical :"
-#: ../wxglade_hmi/wxglade_hmi.py:11
+#: ../Beremiz_service.py:586
+msgid "WAMP client startup failed. "
+msgstr ""
+
+#: ../connectors/WAMP/__init__.py:91
+#, python-format
+msgid "WAMP connecting to URL : %s\n"
+msgstr ""
+
+#: ../connectors/WAMP/__init__.py:131
+msgid "WAMP connection timeout"
+msgstr ""
+
+#: ../connectors/WAMP/__init__.py:150
+#, python-format
+msgid "WAMP connection to '%s' failed.\n"
+msgstr ""
+
+#: ../Beremiz_service.py:562
+msgid "WAMP import failed :"
+msgstr ""
+
+#: ../wxglade_hmi/wxglade_hmi.py:35
msgid "WXGLADE GUI"
msgstr "IHM WXGlade"
-#: ../ProjectController.py:1302
-msgid "Waiting debugger to recover...\n"
-msgstr "En attente de la mise en route du déboggueur...\n"
-
-#: ../editors/LDViewer.py:891
-#: ../dialogs/PouDialog.py:126
+#: ../dialogs/PouDialog.py:128 ../editors/LDViewer.py:891
msgid "Warning"
msgstr "Attention"
-#: ../ProjectController.py:529
+#: ../ProjectController.py:666
msgid "Warnings in ST/IL/SFC code generator :\n"
msgstr "Mises en garde du generateur de code ST/IL/SFC :\n"
-#: ../dialogs/SearchInProjectDialog.py:85
+#: ../dialogs/SearchInProjectDialog.py:78
msgid "Whole Project"
msgstr "Tout le projet"
@@ -3570,15 +3501,19 @@
msgid "Width:"
msgstr "Longueur :"
-#: ../dialogs/FindInPouDialog.py:86
+#: ../dialogs/FindInPouDialog.py:93
msgid "Wrap search"
msgstr "Boucler"
-#: ../features.py:10
+#: ../dialogs/AboutDialog.py:130
+msgid "Written by"
+msgstr "Écrit par"
+
+#: ../features.py:34
msgid "WxGlade GUI"
msgstr "Interface WxGlade"
-#: ../svgui/svgui.py:106
+#: ../svgui/svgui.py:139
msgid ""
"You don't have write permissions.\n"
"Open Inkscape anyway ?"
@@ -3586,7 +3521,7 @@
"Vous n'avez pas les permissions d'écriture.\n"
"Ouvrir Inkscape tout de même ?"
-#: ../wxglade_hmi/wxglade_hmi.py:108
+#: ../wxglade_hmi/wxglade_hmi.py:137
msgid ""
"You don't have write permissions.\n"
"Open wxGlade anyway ?"
@@ -3594,7 +3529,7 @@
"Vous n'avez pas les permissions d'écriture.\n"
"Ouvrir wxGlade tout de même ?"
-#: ../ProjectController.py:224
+#: ../ProjectController.py:342
msgid ""
"You must have permission to work on the project\n"
"Work on a project copy ?"
@@ -3603,16 +3538,19 @@
"Travailler sur une copie du projet ?"
#: ../editors/LDViewer.py:886
-msgid "You must select the block or group of blocks around which a branch should be added!"
-msgstr "Vous devez sélectionné le bloc ou le group autour duquel un ebranche doit être ajoutée !"
+msgid ""
+"You must select the block or group of blocks around which a branch should be"
+" added!"
+msgstr ""
+"Vous devez sélectionné le bloc ou le group autour duquel un ebranche doit "
+"être ajoutée !"
#: ../editors/LDViewer.py:666
msgid "You must select the wire where a contact should be added!"
-msgstr "Vous devez sélectionner le fil sur lequel le contact doit être ajouté !"
-
-#: ../dialogs/PouNameDialog.py:45
-#: ../dialogs/SFCStepNameDialog.py:47
-#: ../dialogs/SFCStepDialog.py:118
+msgstr ""
+"Vous devez sélectionner le fil sur lequel le contact doit être ajouté !"
+
+#: ../dialogs/SFCStepNameDialog.py:48 ../dialogs/PouNameDialog.py:46
msgid "You must type a name!"
msgstr "Vous devez saisir un nom !"
@@ -3620,26 +3558,25 @@
msgid "You must type a value!"
msgstr "Vous devez saisir une valeur !"
-#: ../IDEFrame.py:419
+#: ../IDEFrame.py:438
msgid "Zoom"
msgstr "Zoom"
-#: ../editors/GraphicViewer.py:97
-msgid "Zoom:"
-msgstr "Zoom :"
-
-#: ../PLCOpenEditor.py:335
+#: ../dialogs/DurationEditorDialog.py:151
+msgid "days"
+msgstr "jours"
+
+#: ../PLCOpenEditor.py:333
#, python-format
msgid "error: %s\n"
msgstr "erreur: %s\n"
-#: ../util/ProcessLogger.py:161
-#, python-format
-msgid "exited with status %s (pid %s)\n"
-msgstr "a quitté avec le status %s (pid %s)\n"
-
-#: ../PLCOpenEditor.py:393
-#: ../PLCOpenEditor.py:395
+#: ../util/ProcessLogger.py:169
+#, python-brace-format
+msgid "exited with status {a1} (pid {a2})\n"
+msgstr ""
+
+#: ../PLCOpenEditor.py:396 ../PLCOpenEditor.py:398
msgid "file : "
msgstr "fichier :"
@@ -3647,7 +3584,7 @@
msgid "function"
msgstr "fonction"
-#: ../PLCOpenEditor.py:396
+#: ../PLCOpenEditor.py:399
msgid "function : "
msgstr "fonction :"
@@ -3655,14 +3592,30 @@
msgid "functionBlock"
msgstr "Bloc fonctionnel"
-#: ../PLCOpenEditor.py:396
+#: ../dialogs/DurationEditorDialog.py:151
+msgid "hours"
+msgstr "heures"
+
+#: ../PLCOpenEditor.py:399
msgid "line : "
msgstr "ligne :"
+#: ../dialogs/DurationEditorDialog.py:153
+msgid "milliseconds"
+msgstr ""
+
+#: ../dialogs/DurationEditorDialog.py:152
+msgid "minutes"
+msgstr "minutes"
+
#: ../dialogs/PouDialog.py:31
msgid "program"
msgstr "programme"
+#: ../dialogs/DurationEditorDialog.py:152
+msgid "seconds"
+msgstr "secondes"
+
#: ../plcopen/iec_std.csv:84
msgid "string from the middle"
msgstr "Caractères du milieu"
@@ -3675,11 +3628,27 @@
msgid "string right of"
msgstr "Caractères à droite de"
-#: ../PLCOpenEditor.py:333
+#: ../Beremiz.py:126
+msgid "update info unavailable."
+msgstr "Information de mise à jour non disponible."
+
+#: ../PLCOpenEditor.py:331
#, python-format
msgid "warning: %s\n"
msgstr "attention: %s\n"
+#: ../PLCControler.py:970
+#, python-brace-format
+msgid "{a1} \"{a2}\" can't be pasted as a {a3}."
+msgstr ""
+
+#: ../ConfigTreeNode.py:56
+#, python-brace-format
+msgid ""
+"{a1} XML file doesn't follow XSD schema at line %{a2}:\n"
+"{a3}"
+msgstr ""
+
#: Extra XSD strings
msgid "CanFestivalSlaveNode"
msgstr "Noeud esclave CanFestival"
@@ -3711,15 +3680,39 @@
msgid "CAN_Driver"
msgstr "Driver CAN"
-msgid "CExtension"
-msgstr "Extension C"
+msgid "Generic"
+msgstr ""
+
+msgid "Command"
+msgstr ""
+
+msgid "Xenomai"
+msgstr "Xenomai"
+
+msgid "XenoConfig"
+msgstr "Config Xenomai"
+
+msgid "Compiler"
+msgstr "Compileur"
msgid "CFLAGS"
msgstr "CFLAGS"
+msgid "Linker"
+msgstr "Linkeur"
+
msgid "LDFLAGS"
msgstr "LDFLAGS"
+msgid "PLC"
+msgstr "PLC"
+
+msgid "Linux"
+msgstr "Linux"
+
+msgid "Win32"
+msgstr "Win32"
+
msgid "BaseParams"
msgstr "Paramètres de base"
@@ -3729,24 +3722,6 @@
msgid "Enabled"
msgstr "Actif"
-msgid "Linux"
-msgstr "Linux"
-
-msgid "Compiler"
-msgstr "Compileur"
-
-msgid "Linker"
-msgstr "Linkeur"
-
-msgid "Win32"
-msgstr "Win32"
-
-msgid "Xenomai"
-msgstr "Xenomai"
-
-msgid "XenoConfig"
-msgstr "Config Xenomai"
-
msgid "BeremizRoot"
msgstr "Racine de Beremiz"
@@ -3762,201 +3737,206 @@
msgid "Disable_Extensions"
msgstr "Disable_Extensions"
-#~ msgid "Debug connect matching running PLC\n"
-#~ msgstr "L'automate connecté correspond au project ouvert.\n"
-
-#~ msgid "File '%s' already exists!"
-#~ msgstr "Le fichier '%s' existe déjà !"
-
-#~ msgid "Function Blocks can't be used in Transitions!"
-#~ msgstr ""
-#~ "Les blocs fonctionnels ne peuvent être utilisés dans des transitions"
-
-#~ msgid "No running PLC"
-#~ msgstr "Aucun automate en cours d'exécution"
-
-#~ msgid "Node infos"
-#~ msgstr "Propriétés du noeud"
-
-#~ msgid "PLC is %s\n"
-#~ msgstr "L'automate est dans l'état %s\n"
-
-#~ msgid "Debug_mode"
-#~ msgstr "Mode de débogage"
-
-#, fuzzy
-#~ msgid "Close Project\tCTRL+SHIFT+W"
-#~ msgstr ""
-#~ "#-#-#-#-# Beremiz_fr_FR.po (PACKAGE VERSION) #-#-#-#-#\n"
-#~ "Fermer le project\tCTRL+SHIFT+W\n"
-#~ "#-#-#-#-# PLCOpenEditor_fr_FR.po (PACKAGE VERSION) #-#-#-#-#\n"
-#~ "Fermer le projet\tCTRL+SHIFT+W"
-
-#~ msgid "New\tCTRL+N"
-#~ msgstr "Nouveau\tCTRL+N"
-
-#~ msgid "Open\tCTRL+O"
-#~ msgstr "Ouvrir\tCTRL+O"
-
-#, fuzzy
-#~ msgid "Preview\tCTRL+SHIFT+P"
-#~ msgstr ""
-#~ "#-#-#-#-# Beremiz_fr_FR.po (PACKAGE VERSION) #-#-#-#-#\n"
-#~ "Preview\tCTRL+SHIFT+P\n"
-#~ "#-#-#-#-# PLCOpenEditor_fr_FR.po (PACKAGE VERSION) #-#-#-#-#\n"
-#~ "Aperçu avant impression\tCTRL+SHIFT+S"
-
-#, fuzzy
-#~ msgid "Print\tCTRL+P"
-#~ msgstr ""
-#~ "#-#-#-#-# Beremiz_fr_FR.po (PACKAGE VERSION) #-#-#-#-#\n"
-#~ "Imprimer\tCTRL+P\n"
-#~ "#-#-#-#-# PLCOpenEditor_fr_FR.po (PACKAGE VERSION) #-#-#-#-#\n"
-#~ "Imprimer...\tCTRL+Q"
-
-#~ msgid "Quit\tCTRL+Q"
-#~ msgstr "Quitter\tCTRL+Q"
-
-#~ msgid "Save\tCTRL+S"
-#~ msgstr "Enregistrer\tCTRL+S"
-
-#~ msgid "Save as\tCTRL+SHIFT+S"
-#~ msgstr "Enregistrer sous...\tCTRL+SHIFT+S"
-
-#~ msgid "Copy\tCTRL+C"
-#~ msgstr "Copier\tCtrl+C"
-
-#~ msgid "Cut\tCTRL+X"
-#~ msgstr "Couper\tCTRL+X"
-
-#~ msgid "Find\tCTRL+F"
-#~ msgstr "Rechercher...\tCTRL+Z"
-
-#~ msgid "PLCOpenEditor\tF1"
-#~ msgstr "PLCOpenEditor\tF1"
-
-#~ msgid "Paste\tCTRL+V"
-#~ msgstr "Coller\tCTRL+V"
-
-#~ msgid "Redo\tCTRL+Y"
-#~ msgstr "Refaire\tCTRL+Y"
-
-#~ msgid "Refresh\tCTRL+R"
-#~ msgstr "Actualiser\tCTRL+R"
-
-#~ msgid "Save As...\tCTRL+SHIFT+S"
-#~ msgstr "Enregistrer sous...\tCTRL+SHIFT+S"
-
-#~ msgid "Search in Project\tCTRL+SHIFT+F"
-#~ msgstr "Rechercher dans le projet\tCTRL+SHIFT+F"
-
-#~ msgid "Undo\tCTRL+Z"
-#~ msgstr "Défaire\tCTRL+Z"
-
-#~ msgid "Add a sub confnode"
-#~ msgstr "Add a sub confnode"
-
-#~ msgid "Append "
-#~ msgstr "Ajouter "
-
-#~ msgid "Delete this confnode"
-#~ msgstr "Supprimer ce plugin"
-
-#~ msgid "Edit CanOpen Network with NetworkEdit"
-#~ msgstr "Editer le réseau CANOpen à l'aide de NetworkEdit"
-
-#~ msgid "Edit Python File"
-#~ msgstr "Editer le fichier Python"
-
-#~ msgid "Edit network"
-#~ msgstr "Editer le réseau"
-
-#~ msgid "Enable/Disable this confnode"
-#~ msgstr "Activer/Désactiver le plugin"
-
-#~ msgid "Please enter a name for confnode:"
-#~ msgstr "Saisissez un nom pour le plugin :"
-
-#~ msgid "Project not created"
-#~ msgstr "Le projet n'a pu être créé"
-
-#~ msgid "Topology"
-#~ msgstr "Topologie"
-
-#~ msgid "Wrong URI, please check it !\n"
-#~ msgstr "URI inconnue, veuillez vérifier l'adresse !\n"
-
-#~ msgid "Add a new data type"
-#~ msgstr "Ajouter un nouveau type de données"
-
-#~ msgid "Add new configuration"
-#~ msgstr "Ajouter une nouvelle configuration"
-
-#~ msgid "Add new resource"
-#~ msgstr "Ajouter une nouvelle resource"
-
-#~ msgid "Block Types"
-#~ msgstr "Types de blocs"
-
-#~ msgid "Delete Task"
-#~ msgstr "Supprimer une tâche"
-
-#~ msgid "Graphic Panel"
-#~ msgstr "Graphique"
-
-#~ msgid "Instances"
-#~ msgstr "Instances"
-
-#~ msgid "Invalid value \"%s\" for location"
-#~ msgstr "Adresse \"%s\" invalide "
-
-#~ msgid "Please enter configuration name"
-#~ msgstr "Saisissez le nom de la configuration"
-
-#~ msgid "Please enter data type name"
-#~ msgstr "Saisissez le nom du type de donnée"
-
-#~ msgid "Please enter resource name"
-#~ msgstr "Saisissez le nom de la ressource"
-
-#~ msgid "Please enter text"
-#~ msgstr "Saisissez le texte"
-
-#~ msgid "Plugins"
-#~ msgstr "Plugins"
-
-#~ msgid "Create a new POU from"
-#~ msgstr "Créer un nouveau POU à partir de"
-
-#~ msgid "Please enter POU name"
-#~ msgstr "Saisissez le nom du POU"
-
-#~ msgid "Scaling:"
-#~ msgstr "Echelle :"
-
-#~ msgid "X Scale:"
-#~ msgstr "Echelle X :"
-
-#~ msgid "Y Scale:"
-#~ msgstr "Echelle Y :"
-
-#~ msgid "No"
-#~ msgstr "Non"
-
-#~ msgid "Yes"
-#~ msgstr "Oui"
-
-#, fuzzy
-#~ msgid "A pou with \"%s\" as name exists!"
-#~ msgstr "Un POU nommé \"%s\" existe déjà !"
-
-#~ msgid "Close\tCTRL+Q"
-#~ msgstr "Fermer\tCTRL+Q"
-
-#~ msgid ""
-#~ "A variable is defined with \"%s\" as name. It can generate a conflict. Do "
-#~ "you wish to continue?"
-#~ msgstr "Une variable"
-
-#~ msgid "Create A New POU From"
-#~ msgstr "Créer un nouveau POU à partir de"
+msgid "%(codefile_name)s"
+msgstr ""
+
+msgid "variables"
+msgstr "variables"
+
+msgid "variable"
+msgstr "variable"
+
+msgid "name"
+msgstr "nom"
+
+msgid "type"
+msgstr "type"
+
+msgid "class"
+msgstr "classe"
+
+msgid "initial"
+msgstr "initiale"
+
+msgid "desc"
+msgstr "desc"
+
+msgid "onchange"
+msgstr ""
+
+msgid "opts"
+msgstr ""
+
+#: Extra TC6 documentation strings
+msgid "0 - current time, 1 - load time from PDT"
+msgstr ""
+
+msgid "Preset datetime"
+msgstr ""
+
+msgid "Copy of IN"
+msgstr "Copie de IN"
+
+msgid "Datetime, current or relative to PDT"
+msgstr ""
+
+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 ""
+
+msgid "1 = integrate, 0 = hold"
+msgstr ""
+
+msgid "Overriding reset"
+msgstr ""
+
+msgid "Input variable"
+msgstr "Variable d'entrée"
+
+msgid "Initial value"
+msgstr "Valeur initiale"
+
+msgid "Sampling period"
+msgstr "Période d'échantillonnage"
+
+msgid "NOT R1"
+msgstr ""
+
+msgid "Integrated output"
+msgstr ""
+
+msgid ""
+"The integral function block integrates the value of input XIN over time."
+msgstr ""
+
+msgid "0 = reset"
+msgstr "0 = reset"
+
+msgid "Input to be differentiated"
+msgstr ""
+
+msgid "Differentiated output"
+msgstr ""
+
+msgid ""
+"The derivative function block produces an output XOUT proportional to the "
+"rate of change of the input XIN."
+msgstr ""
+
+msgid "0 - manual , 1 - automatic"
+msgstr ""
+
+msgid "Process variable"
+msgstr ""
+
+msgid "Set point"
+msgstr ""
+
+msgid "Manual output adjustment - Typically from transfer station"
+msgstr ""
+
+msgid "Proportionality constant"
+msgstr ""
+
+msgid "Reset time"
+msgstr "Temps de reset"
+
+msgid "Derivative time constant"
+msgstr ""
+
+msgid "PV - SP"
+msgstr ""
+
+msgid "FB for integral term"
+msgstr ""
+
+msgid "FB for derivative term"
+msgstr ""
+
+msgid ""
+"The PID (proportional, Integral, Derivative) function block provides the "
+"classical three term controller for closed loop control."
+msgstr ""
+
+msgid "0 - track X0, 1 - ramp to/track X1"
+msgstr ""
+
+msgid "Ramp duration"
+msgstr ""
+
+msgid "BUSY = 1 during ramping period"
+msgstr ""
+
+msgid "Elapsed time of ramp"
+msgstr ""
+
+msgid "The RAMP function block is modelled on example given in the standard."
+msgstr ""
+
+msgid ""
+"The hysteresis function block provides a hysteresis boolean output driven by"
+" the difference of two floating point (REAL) inputs XIN1 and XIN2."
+msgstr ""
+
+msgid "The SR bistable is a latch where the Set dominates."
+msgstr ""
+
+msgid "The RS bistable is a latch where the Reset dominates."
+msgstr ""
+
+msgid ""
+"The semaphore provides a mechanism to allow software elements mutually "
+"exclusive access to certain ressources."
+msgstr ""
+
+msgid "The output produces a single pulse when a rising edge is detected."
+msgstr ""
+
+msgid "The output produces a single pulse when a falling edge is detected."
+msgstr ""
+
+msgid ""
+"The up-counter can be used to signal when a count has reached a maximum "
+"value."
+msgstr ""
+
+msgid ""
+"The down-counter can be used to signal when a count has reached zero, on "
+"counting down from a preset value."
+msgstr ""
+
+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 ""
+
+msgid "first input parameter"
+msgstr "Premier paramètre d'entrée"
+
+msgid "second input parameter"
+msgstr "Second paramètre d'entrée"
+
+msgid "first output parameter"
+msgstr "Premier paramètre de sortie"
+
+msgid "second output parameter"
+msgstr "Second paramètre de sortie"
+
+msgid "internal state: 0-reset, 1-counting, 2-set"
+msgstr ""
+
+msgid ""
+"The pulse timer can be used to generate output pulses of a given time "
+"duration."
+msgstr ""
+
+msgid ""
+"The on-delay timer can be used to delay setting an output true, for fixed "
+"period after an input becomes true."
+msgstr ""
+
+msgid ""
+"The off-delay timer can be used to delay setting an output false, for fixed "
+"period after input goes false."
+msgstr ""