--- 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.
-"Project-Id-Version: PACKAGE VERSION\n"
+"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"
+"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" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ../PLCOpenEditor.py:405
-"An error has occurred.\n"
-"Click OK to save an error report.\n"
-"Please be kind enough to send this file to:\n"
-"edouard.tisserant@gmail.com\n"
-"Une erreur est apparue.\n"
-"Appuyer sur 'Valider' pour enregistrer un rapport d'erreur.\n"
-"Envoyez ce fichier à l'adresse :\n"
-"edouard.tisserant@gmail.com\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n" +#: ../PLCOpenEditor.py:408 ../Beremiz.py:1191 @@ -48,223 +28,167 @@
"Please be kind enough to send this file to:\n"
"beremiz-devel@lists.sourceforge.net\n"
-"You should now restart Beremiz.\n"
+"You should now restart program.\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" -"Envoyez ce fichier à l'adresse :\n"
+"S'il vous plaît, soyez sympa et envoyez ce fichier à :\n" "beremiz-devel@lists.sourceforge.net\n"
-"Vous devriez redémarrer Beremiz.\n"
-#: ../controls/VariablePanel.py:77
+"Vous devriez redémarrer le programme.\n" +#: ../controls/VariablePanel.py:72 -#: ../controls/VariablePanel.py:76
+#: ../controls/VariablePanel.py:71 -#: ../controls/VariablePanel.py:76
+#: ../controls/VariablePanel.py:71 -#: ../controls/VariablePanel.py:77
+#: ../controls/VariablePanel.py:72 -#: ../controls/VariablePanel.py:76
+#: ../controls/VariablePanel.py:71 -#: ../controls/VariablePanel.py:78
+#: ../controls/VariablePanel.py:73 -#: ../PLCOpenEditor.py:415
-#: ../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 -#: ../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 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 msgid "\"%s\" POU already exists !!!"
msgstr "Le POU \"%s\" existe déjà !!!"
-#: ../plcopen/plcopen.py:1090
+#: ../plcopen/plcopen.py:920 msgid "\"%s\" POU doesn't exist !!!"
msgstr "Le POU \"%s\" n'existe pas !!!"
-#: ../editors/Viewer.py:234
+#: ../editors/Viewer.py:246 msgid "\"%s\" can't use itself!"
msgstr "\"%s\" ne peut pas s'utiliser lui-même !"
+#: ../IDEFrame.py:1651 ../IDEFrame.py:1670 msgid "\"%s\" config already exists!"
msgstr "La configuration \"%s\" existe déjà !"
-#: ../plcopen/plcopen.py:315
+#: ../plcopen/plcopen.py:467 msgid "\"%s\" configuration already exists !!!"
msgstr "La configuration \"%s\" existe déjà !!!"
msgid "\"%s\" data type already exists!"
msgstr "Le type de données \"%s\" existe déjà !"
-#: ../PLCControler.py:2165
-#: ../PLCControler.py:2169
-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 msgid "\"%s\" element for this pou already exists!"
msgstr "Un élément \"%s\" existe déjà dans ce POU !"
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
-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
-#: ../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 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
-msgid "\"%s\" is already used by \"%s\"!"
-msgstr "\"%s\" est déjà utilisé par \"%s\" !"
-#: ../plcopen/plcopen.py:2836
+#: ../plcopen/plcopen.py:2412 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 msgid "\"%s\" is not a valid folder!"
msgstr "\"%s\" n'est pas un répertoire valide !"
-#: ../controls/VariablePanel.py:657
-#: ../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 msgid "\"%s\" is not a valid identifier!"
msgstr "\"%s\" n'est pas un identifiant valide !"
-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
-#: ../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
+msgid "\"%s\" is used by one or more POUs. Do you wish to continue?" +"\"%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 msgid "\"%s\" pou already exists!"
msgstr "Le POU \"%s\" existe déjà !"
-#: ../plcopen/plcopen.py:346
-msgid "\"%s\" resource already exists in \"%s\" configuration !!!"
-msgstr "La ressource \"%s\" existe déjà dans la configuration \"%s\" !!!"
-#: ../plcopen/plcopen.py:362
-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 msgid "\"%s\" step already exists!"
msgstr "L'étape \"%s\" existe déjà !"
-#: ../editors/DataTypeEditor.py:549
+#: ../editors/DataTypeEditor.py:550 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 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 "\"%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
+#: ../PLCGenerator.py:1101 +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 +msgid "\"{a1}\" is already used by \"{a2}\"!" +msgstr "\"{a1}\" est déjà utilisé par \"{a2}\"!" +#: ../plcopen/plcopen.py:491 +msgid "\"{a1}\" resource already exists in \"{a2}\" configuration !!!" +msgstr "La ressource \"{a1}\" existe déjà dans la configuration \"{a2}\" !" +#: ../plcopen/plcopen.py:509 +msgid "\"{a1}\" resource doesn't exist in \"{a2}\" configuration !!!" +msgstr "La ressource \"${a1}\" n'existe pas dans la configuration \"{a2}\" !" +#: ../controls/DebugVariablePanel/DebugVariablePanel.py:578 +#: ../controls/DebugVariablePanel/DebugVariablePanel.py:569 -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
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:56 +#: ../controls/DebugVariablePanel/DebugVariablePanel.py:570 +#: ../controls/DebugVariablePanel/DebugVariablePanel.py:55 +#: ../controls/DebugVariablePanel/DebugVariablePanel.py:571 +#: ../controls/DebugVariablePanel/DebugVariablePanel.py:53 +#: ../controls/DebugVariablePanel/DebugVariablePanel.py:54 +#: ../controls/DebugVariablePanel/DebugVariablePanel.py:572 +#: ../PLCControler.py:1531 msgstr "Types de données de %s"
-#: ../editors/GraphicViewer.py:278
-#: ../PLCControler.py:1471
+#: ../PLCControler.py:1514 -#: ../canfestival/SlaveEditor.py:46
-#: ../canfestival/NetworkEditor.py:67
+#: ../canfestival/SlaveEditor.py:69 ../canfestival/NetworkEditor.py:90 -#: ../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 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 msgid "%s body don't have text!"
msgstr "Le code d'un %s n'a pas de texte !"
msgstr "&Ajouter un élément"
+#: ../dialogs/AboutDialog.py:73 ../dialogs/AboutDialog.py:121 +#: ../dialogs/AboutDialog.py:158
+#: ../dialogs/AboutDialog.py:72 -#: ../PLCOpenEditor.py:129
+#: ../PLCOpenEditor.py:125
-#: ../controls/SearchResultPanel.py:252
-msgid "'%s' - %d match in project"
-msgstr "'%s' - %d correspondance dans le projet"
-#: ../controls/SearchResultPanel.py:254
-msgid "'%s' - %d matches in project"
-msgstr "'%s' - %d correspondances dans le projet"
-#: ../connectors/PYRO/__init__.py:51
-msgid "'%s' is located at %s\n"
-msgstr "'%s' is disponible à l'adresse %s\n"
-#: ../controls/SearchResultPanel.py:304
+#: ../controls/SearchResultPanel.py:239 +msgid "'{a1}' - {a2} match in project" +msgstr "'{a1}' - {a2} concordent dans le projet" +#: ../controls/SearchResultPanel.py:241 +msgid "'{a1}' - {a2} matches in project" +msgstr "'{a1}' - {a2} concordent dans le projet" +#: ../connectors/PYRO/__init__.py:90 +msgid "'{a1}' is located at {a2}\n" +msgstr "'{a1}' est situé dans {a2}\n" +#: ../controls/SearchResultPanel.py:291 msgstr "(%d correspondances)"
-#: ../PLCOpenEditor.py:393
-#: ../PLCOpenEditor.py:395
-#: ../PLCOpenEditor.py:396
+#: ../PLCOpenEditor.py:396 ../PLCOpenEditor.py:398 ../PLCOpenEditor.py:399 -#: ../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 -#: ../PLCOpenEditor.py:391
+#: ../PLCOpenEditor.py:394 -#: ../ProjectController.py:1294
-msgid "... debugger recovered\n"
-msgstr "... déboggueur operationel\n"
-#: ../dialogs/PouDialog.py:122
+#: ../controls/LogViewer.py:279 +#: ../controls/LogViewer.py:280 +#: ../controls/LogViewer.py:281 +#: ../controls/LogViewer.py:282 +#: ../dialogs/PouDialog.py:124 ../IDEFrame.py:1613 ../IDEFrame.py:1659 -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
-#: ../dialogs/PouNameDialog.py:51
-#: ../dialogs/PouTransitionDialog.py:103
-#: ../dialogs/SFCStepNameDialog.py:53
-#: ../dialogs/PouActionDialog.py:100
-#: ../dialogs/SFCStepDialog.py:124
+"A POU has an element named \"%s\". This could cause a conflict. Do you wish " +"Un POU a un élément nommé \"%s\". Cela peut générer des conflits. Voulez-" +#: ../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 msgid "A POU named \"%s\" already exists!"
msgstr "Un POU nommé \"%s\" existe déjà !"
-#: ../ConfigTreeNode.py:388
-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 +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
-#: ../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 msgid "A variable with \"%s\" as name already exists in this pou!"
msgstr "Une variable nommée \"%s\" existe déjà dans ce POU !"
-#: ../PLCOpenEditor.py:162
+#: ../editors/CodeFileEditor.py:774 +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
-msgstr "A propos de Beremiz"
-#: ../PLCOpenEditor.py:355
-msgid "About PLCOpenEditor"
-msgstr "A propos de PLCOpenEditor"
#: ../plcopen/iec_std.csv:22
-#: ../dialogs/ActionBlockDialog.py:41
-#: ../dialogs/SFCStepDialog.py:69
+#: ../dialogs/SFCStepDialog.py:72 ../dialogs/ActionBlockDialog.py:42 -#: ../editors/Viewer.py:494
+#: ../editors/Viewer.py:555 ../editors/Viewer.py:2356 msgstr "Ajouter un bloc fonctionnel"
@@ -480,116 +454,110 @@
msgstr "Nom de l'action :"
-#: ../plcopen/plcopen.py:1490
+#: ../plcopen/plcopen.py:1359 msgid "Action with name %s doesn't exist!"
msgstr "L'action nommée %s n'existe pas !"
-#: ../PLCControler.py:95
+#: ../PLCControler.py:96 -#: ../dialogs/ActionBlockDialog.py:134
+#: ../dialogs/ActionBlockDialog.py:133 -#: ../editors/Viewer.py:999
+#: ../editors/Viewer.py:1110 -#: ../canfestival/SlaveEditor.py:57
-#: ../canfestival/NetworkEditor.py:78
-#: ../editors/Viewer.py:527
+#: ../canfestival/SlaveEditor.py:80 ../canfestival/NetworkEditor.py:101 +#: ../editors/Viewer.py:588 ../Beremiz.py:1060
+#: ../IDEFrame.py:1889 ../IDEFrame.py:1924 msgstr "Ajouter une action"
msgid "Add C code accessing located variables synchronously"
-msgstr "Ajoute un code C ayant accès à des variables localisées de façon synchrone"
+"Ajoute un code C ayant accès à des variables localisées de façon synchrone" msgid "Add Configuration"
msgstr "Ajouter une configuration"
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 Python code executed asynchronously"
msgstr "Ajoute un code Python executé de façon asynchone"
+#: ../IDEFrame.py:1900 ../IDEFrame.py:1950 msgstr "Ajouter une resource"
+#: ../IDEFrame.py:1878 ../IDEFrame.py:1921 msgstr "Ajouter une transition"
-#: ../editors/Viewer.py:441
+#: ../editors/Viewer.py:500 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 msgstr "Ajouter un nouveau renvoi"
-#: ../editors/SFCViewer.py:381
+#: ../editors/SFCViewer.py:455 msgstr "Ajouter une nouvelle étape"
msgid "Add a simple WxGlade based GUI."
msgstr "Ajoute une interface simple utilisant WxGlade"
-#: ../dialogs/ActionBlockDialog.py:138
+#: ../dialogs/ActionBlockDialog.py:137 msgstr "Ajouter une action"
-#: ../editors/DataTypeEditor.py:351
+#: ../editors/DataTypeEditor.py:352 msgstr "Ajouter un élément"
-#: ../editors/ResourceEditor.py:259
+#: ../editors/ResourceEditor.py:268 msgstr "Ajouter une instance"
-#: ../canfestival/NetworkEditor.py:80
+#: ../canfestival/NetworkEditor.py:103 msgstr "Ajouter un esclave"
-#: ../editors/ResourceEditor.py:230
+#: ../editors/ResourceEditor.py:239 msgstr "Ajouter une tâche"
-#: ../controls/VariablePanel.py:380
-#: ../c_ext/CFileEditor.py:517
+#: ../editors/CodeFileEditor.py:658 ../controls/VariablePanel.py:450 msgstr "Ajouter une variable"
@@ -597,23 +565,23 @@
-#: ../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 -#: ../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 @@ -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 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"
+"Appliquer la modification de nom à toutes les prolongements portant ce même " #: ../plcopen/iec_std.csv:31
@@ -650,9 +624,8 @@
-#: ../controls/VariablePanel.py:732
-#: ../editors/DataTypeEditor.py:54
-#: ../editors/DataTypeEditor.py:634
+#: ../editors/DataTypeEditor.py:54 ../editors/DataTypeEditor.py:635 +#: ../controls/VariablePanel.py:841 @@ -660,7 +633,7 @@
-#: ../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 @@ -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 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 -#: ../controls/VariablePanel.py:702
-#: ../editors/DataTypeEditor.py:624
+#: ../editors/DataTypeEditor.py:625 ../controls/VariablePanel.py:799
@@ -734,154 +703,173 @@
msgid "Bitwise inverting"
msgstr "Inversion bit à bit"
-#: ../editors/Viewer.py:464
+#: ../editors/Viewer.py:525 ../editors/Viewer.py:2369 -#: ../dialogs/FBDBlockDialog.py:38
+#: ../dialogs/FBDBlockDialog.py:59 msgstr "Propriétés du bloc"
-#: ../editors/Viewer.py:433
+#: ../editors/TextViewer.py:262 +#: ../editors/Viewer.py:491 +#: ../ProjectController.py:1322 #: ../dialogs/BrowseValuesLibraryDialog.py:37
msgid "Browse %s values library"
msgstr "Explorer la liste des valeurs du paramètre '%s'"
-#: ../dialogs/BrowseLocationsDialog.py:61
+#: ../dialogs/BrowseLocationsDialog.py:65 msgstr "Naviger dans les adresses"
-#: ../ProjectController.py:1519
+#: ../ProjectController.py:1790 -#: ../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 -#: ../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 msgid "C compilation of %s failed.\n"
msgstr "La compilation C de %s a échouée.\n"
-#: ../canfestival/NetworkEditor.py:29
+#: ../dialogs/AboutDialog.py:71 +#: ../canfestival/NetworkEditor.py:52 -#: ../canfestival/SlaveEditor.py:21
+#: ../canfestival/SlaveEditor.py:44
-#: ../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
+"Une adresse ne peut être affecté qu'à des variables locales ou globales" +#: ../PLCOpenEditor.py:334 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 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
-msgid "Cannot create child %s of type %s "
-msgstr "Impossible d'ajouter un élément \"%s\" de type \"%s\""
-#: ../ConfigTreeNode.py:417
+"Une valeur initiale ne peut être affectée une instance de Function Block" +#: ../ConfigTreeNode.py:529 +msgid "Cannot create child {a1} of type {a2} " +msgstr "Impossible de créer l'enfant {a1} de type {a2}" +#: ../ConfigTreeNode.py:454 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
-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 +"Cannot set bit offset for non bool '{a1}' variable " +"(ID:{a2},Idx:{a3},sIdx:{a4}))" +"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 msgstr "Respecter la casse"
-#: ../editors/Viewer.py:428
+#: ../editors/Viewer.py:486 -#: ../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 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 @@
msgstr "Chaîne de caractères"
+#: ../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 msgstr "Choisissez un fichier"
+#: ../Beremiz.py:931 ../Beremiz.py:966 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
+"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
+"Le répertoire n'est pas vide. Vous ne pouvez pas l'utiliser pour créer un " +#: ../controls/VariablePanel.py:53 ../controls/VariablePanel.py:54 -#: ../controls/VariablePanel.py:371
+#: ../controls/VariablePanel.py:441 msgstr "Filtre de classe :"
-#: ../dialogs/FBDVariableDialog.py:62
+#: ../dialogs/FBDVariableDialog.py:69 -#: ../ProjectController.py:1523
+#: ../ProjectController.py:1794 -#: ../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"
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"
-#: ../PLCOpenEditor.py:202
+#: ../dialogs/SearchInProjectDialog.py:105 ../dialogs/FindInPouDialog.py:111 +#: ../PLCOpenEditor.py:199 ../Beremiz.py:693 msgid "Close Application"
msgstr "Fermer l'application"
-#: ../PLCOpenEditor.py:112
+#: ../PLCOpenEditor.py:108 ../Beremiz.py:333 ../Beremiz.py:637 msgstr "Fermer le projet"
-#: ../PLCOpenEditor.py:110
+#: ../PLCOpenEditor.py:106 ../Beremiz.py:331 -#: ../editors/Viewer.py:480
+#: ../editors/Viewer.py:541 ../editors/Viewer.py:2377 -#: ../editors/Viewer.py:500
-#: ../editors/LDViewer.py:506
+#: ../editors/Viewer.py:561 ../editors/LDViewer.py:506 +#: ../dialogs/ProjectDialog.py:57 +msgstr "Nom de l'entreprise" #: ../controls/ProjectPropertiesPanel.py:94
msgid "Company Name (required):"
msgstr "Nom de l'entreprise (obligatoire) :"
@@ -1001,7 +991,7 @@
-#: ../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 @@
-#: ../editors/ConfTreeNodeEditor.py:249
+#: ../editors/ConfTreeNodeEditor.py:229 -#: ../editors/ProjectNodeEditor.py:13
+#: ../editors/ProjectNodeEditor.py:36 msgstr "Variables de configuration"
-#: ../dialogs/SearchInProjectDialog.py:47
+#: ../dialogs/SearchInProjectDialog.py:39 -#: ../PLCControler.py:96
+#: ../PLCControler.py:97 -#: ../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 -#: ../ProjectController.py:1539
+#: ../ProjectController.py:1810 msgid "Connect to the target PLC"
msgstr "Connecter à l'automate cible"
-#: ../ProjectController.py:1125
+#: ../ProjectController.py:1313 msgid "Connected to URI: %s"
msgstr "Connecté à l'URI : %s"
-#: ../connectors/PYRO/__init__.py:40
-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 -#: ../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 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 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 -#: ../dialogs/SFCStepDialog.py:58
+#: ../dialogs/SFCStepDialog.py:65
-#: ../controls/VariablePanel.py:65
+#: ../controls/VariablePanel.py:60 -#: ../editors/Viewer.py:476
+#: ../editors/Viewer.py:537 ../editors/Viewer.py:2373 @@ -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 @@ -1112,13 +1105,12 @@
msgid "Conversion to time-of-day"
msgstr "Conversion en heure de la journée"
-#: ../editors/Viewer.py:536
+#: ../editors/Viewer.py:597 ../controls/LogViewer.py:693 ../IDEFrame.py:370
@@ -1134,55 +1126,59 @@
-#: ../ConfigTreeNode.py:602
+#: ../ConfigTreeNode.py:656 -"Could not add child \"%s\", type %s :\n"
-"Impossible d'ajouter le noeud enfant \"%s\", de type %s :\n"
-#: ../ConfigTreeNode.py:579
-"Couldn't load confnode base parameters %s :\n"
+"Could not add child \"{a1}\", type {a2} :\n" -"Impossible de charger les paramètres de base du plugin %s :\n"
-#: ../ConfigTreeNode.py:590
+"Impossible d'ajouter l'enfant \"{a1}\", de type {a2}:\n" +#: ../py_ext/PythonFileCTNMixin.py:77 +msgid "Couldn't import old %s file." +msgstr "Impossible d'importer l'ancien fichier %s" +#: ../ConfigTreeNode.py:626 -"Couldn't load confnode parameters %s :\n"
+"Couldn't load confnode base parameters {a1} :\n" -"Impossible de charger les paramètres du plugin %s :\n"
-#: ../PLCControler.py:819
-#: ../PLCControler.py:856
+"Impossible de charger les parametres de base confnode {a1}:\n" +#: ../ConfigTreeNode.py:643 ../CodeFileTreeNode.py:124 +"Couldn't load confnode parameters {a1} :\n" +"Impossible de charger les parametres confnode {a1}:\n" +#: ../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"
-#: ../dialogs/PouDialog.py:43
+#: ../dialogs/PouDialog.py:45 msgstr "Créer un nouveau POU"
@@ -1190,84 +1186,79 @@
msgid "Create a new action"
msgstr "Créer une nouvelle action"
msgid "Create a new action block"
msgstr "Créer un nouveau bloc d'actions"
+#: ../IDEFrame.py:108 ../IDEFrame.py:138 ../IDEFrame.py:171 msgid "Create a new block"
msgstr "Créer un nouveau bloc"
msgid "Create a new branch"
msgstr "Créer une nouvelle branche"
msgid "Create a new coil"
msgstr "Créer un nouveau relai"
+#: ../IDEFrame.py:102 ../IDEFrame.py:117 ../IDEFrame.py:147 msgid "Create a new comment"
msgstr "Créer un nouveau copmmentaire"
+#: ../IDEFrame.py:111 ../IDEFrame.py:141 ../IDEFrame.py:174 msgid "Create a new connection"
msgstr "Créer une nouvelle connexion"
+#: ../IDEFrame.py:129 ../IDEFrame.py:180 msgid "Create a new contact"
msgstr "Créer un nouveau contact"
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"
msgid "Create a new initial step"
msgstr "Créer une nouvelle étape initiale"
msgid "Create a new jump"
msgstr "Créer un nouveau renvoi"
+#: ../IDEFrame.py:120 ../IDEFrame.py:177 msgid "Create a new power rail"
msgstr "Créer une nouvelle barre d'alimentation"
msgid "Create a new rung"
msgstr "Créer un nouvel échelon"
msgid "Create a new step"
msgstr "Créer une nouvelle étape"
-#: ../dialogs/PouTransitionDialog.py:42
+#: ../dialogs/PouTransitionDialog.py:47 ../IDEFrame.py:156 msgid "Create a new transition"
msgstr "Créer une nouvelle transition"
+#: ../IDEFrame.py:105 ../IDEFrame.py:135 ../IDEFrame.py:168 msgid "Create a new variable"
msgstr "Créer une nouvelle variable"
-#: ../editors/Viewer.py:535
+#: ../dialogs/AboutDialog.py:113 +#: ../Beremiz_service.py:432 +msgid "Current working directory :" +msgstr "Répertoire de travail actuel :" +#: ../editors/Viewer.py:596 ../IDEFrame.py:368 ../IDEFrame.py:424 @@ -1275,33 +1266,27 @@
-#: ../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
-#: ../canfestival/SlaveEditor.py:53
-#: ../canfestival/NetworkEditor.py:74
+#: ../canfestival/SlaveEditor.py:76 ../canfestival/NetworkEditor.py:97 -#: ../canfestival/SlaveEditor.py:54
-#: ../canfestival/NetworkEditor.py:75
+#: ../canfestival/SlaveEditor.py:77 ../canfestival/NetworkEditor.py:98 -#: ../dialogs/SearchInProjectDialog.py:43
+#: ../dialogs/SearchInProjectDialog.py:35 -#: ../PLCControler.py:95
+#: ../PLCControler.py:96 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 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 msgstr "Soustraction de date"
@@ -1330,53 +1311,52 @@
-#: ../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
+"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 msgstr "Déboguer l'instance"
-#: ../editors/Viewer.py:1016
-#: ../editors/Viewer.py:3326
+#: ../editors/Viewer.py:1127 ../editors/Viewer.py:3664 -#: ../ProjectController.py:1153
+#: ../ProjectController.py:1371 msgid "Debug: Unknown variable '%s'\n"
msgstr "Débogage : Variable '%s' inconnue\n"
-#: ../ProjectController.py:1151
+#: ../ProjectController.py:1369 msgid "Debug: Unsupported type to debug '%s'\n"
msgstr "Débogage : Type non supporté dans le débogage '%'\n"
-#: ../ProjectController.py:1311
+#: ../ProjectController.py:1551 msgid "Debugger disabled\n"
msgstr "Débogueur désactivé\n"
-#: ../ProjectController.py:1441
+#: ../ProjectController.py:1712 -#: ../ProjectController.py:1323
+#: ../ProjectController.py:1584 msgid "Debugger stopped.\n"
msgstr "Débogueur désactivé\n"
-#: ../editors/Viewer.py:511
+#: ../editors/Viewer.py:572 ../Beremiz.py:1064 ../IDEFrame.py:1958 -#: ../editors/Viewer.py:453
+#: ../editors/Viewer.py:514 msgid "Delete Divergence Branch"
msgstr "Supprimer une branche de divergence"
@@ -1384,7 +1364,7 @@
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 msgstr "Type de dérivation :"
-#: ../plcopen/structures.py:263
-"The derivative function block produces an output XOUT proportional to the rate of change of the input XIN."
-"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 -#: ../editors/DataTypeEditor.py:320
-#: ../dialogs/ArrayTypeDialog.py:61
+#: ../dialogs/ArrayTypeDialog.py:61 ../editors/DataTypeEditor.py:321 -#: ../dialogs/FindInPouDialog.py:61
+#: ../dialogs/FindInPouDialog.py:68 -#: ../dialogs/BrowseLocationsDialog.py:86
+#: ../dialogs/BrowseLocationsDialog.py:90 @@ -1429,15 +1400,19 @@
-#: ../ProjectController.py:1547
+#: ../ProjectController.py:1818 -#: ../ProjectController.py:1549
+#: ../ProjectController.py:1820 msgid "Disconnect from PLC"
msgstr "Déconnecter l'automate"
-#: ../editors/Viewer.py:495
+#: ../ProjectController.py:1323 +#: ../editors/Viewer.py:556 ../editors/Viewer.py:2365 @@ -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 -#: ../PLCOpenEditor.py:330
+#: ../PLCOpenEditor.py:328 -#: ../plcopen/structures.py:226
-"The down-counter can be used to signal when a count has reached zero, on counting down from a preset value."
-"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 -#: ../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 -#: ../dialogs/LDElementDialog.py:41
+#: ../dialogs/LDElementDialog.py:56 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 @@
msgstr "Editer une durée"
-#: ../dialogs/SFCStepDialog.py:35
+#: ../dialogs/SFCStepDialog.py:50 -#: ../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 msgstr "Editer le commentaire"
@@ -1522,47 +1485,51 @@
msgstr "Editer l'élément"
-#: ../editors/Viewer.py:2670
+#: ../editors/Viewer.py:2974 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 msgstr "Editer le nom de l'étape"
-#: ../dialogs/SFCTransitionDialog.py:38
+#: ../dialogs/SFCTransitionDialog.py:51 msgstr "Editer la transition"
msgstr "Barre d'outils d'édition"
-#: ../ProjectController.py:1039
+#: ../ProjectController.py:1216 msgstr "Selection d'un éditeur"
-#: ../editors/DataTypeEditor.py:347
+#: ../editors/DataTypeEditor.py:348
+#: ../ProjectController.py:1321 msgstr "Activer Défaire/Refaire"
-#: ../Beremiz_service.py:385
+#: ../Beremiz_service.py:331 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 @@
-#: ../Beremiz_service.py:271
-#: ../controls/VariablePanel.py:332
-#: ../controls/VariablePanel.py:681
-#: ../controls/DebugVariablePanel.py:379
-#: ../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 -#: ../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 +"Error : At least one configuration and one resource must be declared in PLC " +"Erreur : Au moins une configuration ou une ressource doit être déclarée dans" +#: ../ProjectController.py:740 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 "Error in ST/IL/SFC code generator :\n"
@@ -1643,38 +1594,37 @@
"Erreur dans le générateur de code ST/IL/SFC :\n"
-#: ../ConfigTreeNode.py:183
+#: ../ConfigTreeNode.py:216 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 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 msgstr "Ordre d'exécution :"
msgid "Experimental web based HMI"
msgstr "IHM expérimentale utilisant les technologies web"
@@ -1686,59 +1636,52 @@
-#: ../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 msgstr "Exporter un esclave"
-#: ../dialogs/FBDVariableDialog.py:69
+#: ../dialogs/FBDVariableDialog.py:89 -#: ../controls/VariablePanel.py:77
+#: ../controls/VariablePanel.py:72 -#: ../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 -#: ../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 msgstr "Front descendant"
-#: ../plcopen/structures.py:216
-"Falling edge detector\n"
-"The output produces a single pulse when a falling edge is detected."
-"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"
#: ../dialogs/DurationEditorDialog.py:160
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 !"
-#: ../dialogs/FindInPouDialog.py:30
-#: ../dialogs/FindInPouDialog.py:99
+#: ../controls/FolderTree.py:216 +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
msgstr "Recherche suivante"
msgstr "Recherche précédente"
@@ -1767,16 +1714,15 @@
msgstr "Trouver la position"
-#: ../dialogs/FindInPouDialog.py:51
+#: ../dialogs/FindInPouDialog.py:57 -#: ../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 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 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
+"Le formulaire est incomplet. Un type de bloc valide doit être sélectionné !" +#: ../dialogs/FindInPouDialog.py:74 -#: ../dialogs/SearchInProjectDialog.py:44
+#: ../dialogs/SearchInProjectDialog.py:36 ../IDEFrame.py:1745
msgstr "&Bloc Fonctionnel"
-#: ../dialogs/SearchInProjectDialog.py:45
+#: ../dialogs/SearchInProjectDialog.py:37 ../IDEFrame.py:1744 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 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 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 -#: ../PLCOpenEditor.py:119
+#: ../PLCOpenEditor.py:115 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 -#: ../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 @@
msgstr "Résolution de la grille :"
+#: ../runtime/NevowServer.py:181 +msgid "HTTP interface port :" +msgstr "Port d'interface HTTP:" #: ../controls/ProjectPropertiesPanel.py:120
@@ -1893,99 +1837,81 @@
-#: ../plcopen/structures.py:278
-"The hysteresis function block provides a hysteresis boolean output driven by the difference of two floating point (REAL) inputs XIN1 and XIN2."
-"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 -#: ../Beremiz_service.py:361
-#: ../Beremiz_service.py:362
+#: ../dialogs/DiscoveryDialog.py:94 +#: ../Beremiz_service.py:308 ../Beremiz_service.py:309 msgstr "l'IP est invalide !"
+#: ../svgui/svgui.py:42 ../svgui/svgui.py:43 -#: ../controls/VariablePanel.py:76
-#: ../editors/Viewer.py:1412
-#: ../dialogs/FBDVariableDialog.py:34
+#: ../dialogs/FBDVariableDialog.py:38 ../editors/Viewer.py:1591 +#: ../controls/VariablePanel.py:71 -#: ../editors/Viewer.py:999
+#: ../editors/Viewer.py:1110 -#: ../controls/VariablePanel.py:265
-msgid "Incompatible data types between \"%s\" and \"%s\""
-msgstr "Types de donnée imcompatible entre \"%s\" et \"%s\""
-#: ../controls/VariablePanel.py:274
-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 +msgid "Incompatible data types between \"{a1}\" and \"{a2}\"" +msgstr "Type de données incompatible entre \"{a1}\" et \"{a2}\"" +#: ../controls/VariablePanel.py:282 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 +msgid "Incompatible size of data between \"{a1}\" and \"{a2}\"" +msgstr "Taille de données incompatible entre \"{a1}\" et \"{a2}\"" +#: ../dialogs/ActionBlockDialog.py:38 -#: ../editors/Viewer.py:491
+#: ../editors/Viewer.py:552 -#: ../controls/VariablePanel.py:58
-#: ../controls/VariablePanel.py:59
-#: ../editors/DataTypeEditor.py:50
+#: ../editors/DataTypeEditor.py:50 ../controls/VariablePanel.py:53 +#: ../controls/VariablePanel.py:54 -#: ../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 msgstr "Valeur initiale :"
-#: ../dialogs/ActionBlockDialog.py:41
-#: ../dialogs/SFCTransitionDialog.py:66
-#: ../dialogs/SFCTransitionDialog.py:137
+#: ../dialogs/SFCTransitionDialog.py:75 ../dialogs/ActionBlockDialog.py:42 -#: ../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 -#: ../dialogs/FBDBlockDialog.py:78
+#: ../dialogs/FBDBlockDialog.py:93 @@ -1993,24 +1919,16 @@
msgstr "Insertion (au milieu)"
-#: ../plcopen/plcopen.py:1843
+#: ../plcopen/plcopen.py:1691 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 -#: ../plcopen/structures.py:258
-"The integral function block integrates the value of input XIN over time."
-"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 @@ -2022,40 +1940,42 @@
-#: ../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
-msgid "Invalid type \"%s\"-> %d != %d for location\"%s\""
-msgstr "Type invalide \"%s\"-> %d != %d pour cette adresse \"%s\""
-#: ../dialogs/ForceVariableDialog.py:177
-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 +msgid "Invalid type \"{a1}\"-> {a2} != {a3} for location\"{a4}\"" +msgstr "Type invalide \"{a1}\"-> {a2} != {a3} pour \"{a4}\"" +#: ../canfestival/config_utils.py:645 +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 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 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 msgid "Invalid value \"%s\" for viewer block"
msgstr "Valeur \"%s\" invalide pour un élément graphique"
+#: ../dialogs/ForceVariableDialog.py:177 +msgid "Invalid value \"{a1}\" for \"{a2}\" variable!" +msgstr "Valeur invalide \"{a1}\" pour la variable \"{a2}\"" #: ../dialogs/DurationEditorDialog.py:121
@@ -2064,26 +1984,22 @@
"Vous devez rentrer une valeur numérique."
-#: ../editors/Viewer.py:496
+#: ../editors/Viewer.py:557 ../editors/Viewer.py:2354 -#: ../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 -#: ../editors/LDViewer.py:215
-#: ../editors/LDViewer.py:231
+#: ../editors/LDViewer.py:215 ../editors/LDViewer.py:231 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 @@ -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 -#: ../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 -#: ../dialogs/LDPowerRailDialog.py:55
+#: ../dialogs/LDPowerRailDialog.py:62 msgstr "Barre d'alimentation à gauche"
@@ -2129,36 +2044,39 @@
msgid "Less than or equal to"
msgstr "Inférieur ou égal à"
+#: ../dialogs/AboutDialog.py:151 #: ../plcopen/iec_std.csv:73
-#: ../targets/toolchain_gcc.py:142
+#: ../targets/toolchain_gcc.py:166 -#: ../controls/VariablePanel.py:77
-#: ../dialogs/DiscoveryDialog.py:110
+#: ../dialogs/DiscoveryDialog.py:111 ../controls/VariablePanel.py:72 -#: ../canfestival/canfestival.py:322
+#: ../canfestival/canfestival.py:346 -#: ../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 -#: ../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 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 msgstr "Variable mappable"
msgid "Map located variables over CANopen"
msgstr "Mappe des variables localisées sur un bus CANopen"
-#: ../canfestival/NetworkEditor.py:83
+#: ../canfestival/NetworkEditor.py:106 -#: ../ConfigTreeNode.py:500
-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 +msgid "Max count ({a1}) reached for this confnode of type {a2} " +"Valeur maximal du compteur atteinte ({a1}) pour ce confnode de type {a2}" #: ../plcopen/iec_std.csv:71
-#: ../editors/DataTypeEditor.py:238
+#: ../editors/DataTypeEditor.py:239 -#: ../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
msgstr "Barre d'outils du menu principal"
@@ -2209,7 +2129,7 @@
-#: ../editors/Viewer.py:432
+#: ../editors/Viewer.py:490 @@ -2221,7 +2141,7 @@
-#: ../editors/DataTypeEditor.py:225
+#: ../editors/DataTypeEditor.py:226 @@ -2233,64 +2153,56 @@
-#: ../dialogs/LDElementDialog.py:59
+#: ../dialogs/LDElementDialog.py:63 -#: ../PLCGenerator.py:732
-#: ../PLCGenerator.py:975
-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 +"More than one connector found corresponding to \"{a1}\" continuation in " +"Plus d'un connecteur correspondant à \"{a1}\" trouvé dans la continuité de " +#: ../dialogs/ActionBlockDialog.py:140 msgstr "Déplacer une action vers le bas"
-#: ../dialogs/ActionBlockDialog.py:140
+#: ../dialogs/ActionBlockDialog.py:139 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
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 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 msgstr "Déplacer une instance vers le haut"
-#: ../editors/ResourceEditor.py:233
+#: ../editors/ResourceEditor.py:242 msgstr "Déplcer une tâche vers le bas"
-#: ../editors/ResourceEditor.py:232
+#: ../editors/ResourceEditor.py:241 msgstr "Déplacer une tâche vers le haut"
+#: ../IDEFrame.py:99 ../IDEFrame.py:114 ../IDEFrame.py:144 ../IDEFrame.py:185 @@ -2298,13 +2210,11 @@
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 msgstr "Déplacer une variable vers le haut"
@@ -2320,23 +2230,22 @@
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 +#: ../editors/ResourceEditor.py:68 ../editors/ResourceEditor.py:83 +#: ../editors/DataTypeEditor.py:50 ../controls/VariablePanel.py:53 +#: ../controls/VariablePanel.py:54 -#: ../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 @@ -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
-#: ../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 @@ -2360,30 +2274,25 @@
-#: ../editors/Viewer.py:401
+#: ../editors/Viewer.py:459 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 msgid "No body defined in \"%s\" POU"
msgstr "Pas de code défini dans le POU \"%s\""
-#: ../PLCGenerator.py:751
-#: ../PLCGenerator.py:984
-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 +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 "No documentation available.\n"
@@ -2391,66 +2300,72 @@
"Pas de documentation.\n"
-#: ../PLCGenerator.py:773
+#: ../PLCGenerator.py:829 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 +"No output {a1} variable found in block {a2} in POU {a3}. Connection must be " +"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:131 msgid "No such SVG file: %s\n"
msgstr "Fichier SVG inconnu : %s\n"
-#: ../canfestival/config_utils.py:632
-msgid "No such index/subindex (%x,%x) (variable %s)"
-msgstr "indice et sous-indice inconnu (%x,%x) (variable %s)"
-#: ../canfestival/config_utils.py:361
-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 +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 +msgid "No such index/subindex ({a1},{a2}) in ID : {a3} (variable {a4})" +"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 msgid "No variable defined in \"%s\" POU"
msgstr "Pas de varaibles définies dans le POU \"%s\""
-#: ../canfestival/config_utils.py:354
-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 +msgid "Non existing node ID : {a1} (variable {a2})" +msgstr "Node ID inexistant : {a1} (variable {a2})" +#: ../controls/VariablePanel.py:64 -#: ../dialogs/LDElementDialog.py:62
+#: ../dialogs/LDElementDialog.py:75 -#: ../canfestival/config_utils.py:383
-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 +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
-#: ../dialogs/SFCDivergenceDialog.py:80
+#: ../dialogs/SFCDivergenceDialog.py:89 msgid "Number of sequences:"
msgstr "Nombre de branches :"
@@ -2458,51 +2373,40 @@
-#: ../plcopen/structures.py:246
-"The off-delay timer can be used to delay setting an output false, for fixed period after input goes false."
-"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
-"The on-delay timer can be used to delay setting an output true, for fixed period after an input becomes true."
-"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 msgstr "Uniquement les éléments"
-#: ../PLCOpenEditor.py:108
-#: ../PLCOpenEditor.py:149
+#: ../PLCOpenEditor.py:104 ../PLCOpenEditor.py:145 ../Beremiz.py:323 -#: ../svgui/svgui.py:107
+#: ../svgui/svgui.py:140 msgstr "Ouverture de Inkscape"
-#: ../ProjectController.py:1565
+"Open Source framework for automation, implemented IEC 61131 IDE with " +"constantly growing set of extensions and flexible PLC runtime." +"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 msgstr "Ouverture de wxGlade"
-#: ../controls/VariablePanel.py:58
-#: ../controls/VariablePanel.py:59
+#: ../controls/VariablePanel.py:53 ../controls/VariablePanel.py:54 -#: ../dialogs/FindInPouDialog.py:76
+#: ../dialogs/FindInPouDialog.py:83 @@ -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 -#: ../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 -#: ../canfestival/SlaveEditor.py:40
-#: ../canfestival/NetworkEditor.py:61
+#: ../canfestival/SlaveEditor.py:63 ../canfestival/NetworkEditor.py:84 -#: ../canfestival/SlaveEditor.py:39
-#: ../canfestival/NetworkEditor.py:60
+#: ../canfestival/SlaveEditor.py:62 ../canfestival/NetworkEditor.py:83 -#: ../plcopen/structures.py:268
-"The PID (proportional, Integral, Derivative) function block provides the classical three term controller for closed loop control."
-"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
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 +"PLC syntax error at line {a1}:\n" +"Erreur de syntaxe PLC à la ligne {a1}:\n" +#: ../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 -#: ../dialogs/PouDialog.py:98
-#: ../dialogs/PouDialog.py:56
+#: ../PLCOpenEditor.py:355 +"PLCOpenEditor is part of Beremiz project.\n" +"PLCOpenEditor fait partie du projet Beremiz.\n" +#: ../dialogs/DiscoveryDialog.py:95 #: ../dialogs/PouDialog.py:100
+#: ../dialogs/PouDialog.py:58 +#: ../dialogs/PouDialog.py:102 -#: ../dialogs/PouDialog.py:63
+#: ../dialogs/PouDialog.py:65
-#: ../PLCOpenEditor.py:122
+#: ../connectors/PYRO/__init__.py:45 +msgid "PYRO connecting to URI : %s\n" +msgstr "Connexion de PYRO à l'URI:%s\n" +#: ../connectors/PYRO/__init__.py:61 +msgid "PYRO using certificates in '%s' \n" +msgstr "PYRO utilise les certificats dans '%s'\n" +#: ../PLCOpenEditor.py:118 ../Beremiz.py:336 @@ -2584,101 +2519,88 @@
msgid "Page Size (optional):"
msgstr "Taille de la page (optionnel) :"
-#: ../controls/PouInstanceVariablesPanel.py:48
+#: ../controls/PouInstanceVariablesPanel.py:124
-#: ../editors/Viewer.py:537
+#: ../editors/Viewer.py:598 ../IDEFrame.py:372 ../IDEFrame.py:426
-#: ../dialogs/SearchInProjectDialog.py:64
+#: ../dialogs/SearchInProjectDialog.py:56 msgid "Pattern to search:"
msgstr "Modèle à rechercher :"
-#: ../dialogs/LDPowerRailDialog.py:64
+#: ../dialogs/LDPowerRailDialog.py:73 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
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
-#: ../editors/Viewer.py:475
+#: ../editors/Viewer.py:536 ../editors/Viewer.py:2378 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"
-#: ../PLCOpenEditor.py:124
+#: ../PLCOpenEditor.py:120 ../Beremiz.py:338 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
-#: ../PLCOpenEditor.py:126
-#: ../PLCOpenEditor.py:152
+#: ../PLCOpenEditor.py:122 ../PLCOpenEditor.py:148 ../Beremiz.py:340
msgstr "Aperçu avant impression"
@@ -2686,15 +2608,19 @@
-#: ../dialogs/SFCTransitionDialog.py:83
+#: ../dialogs/SFCTransitionDialog.py:89 -#: ../runtime/PLCObject.py:318
+#: ../runtime/PLCObject.py:370 msgid "Problem starting PLC : error %d"
msgstr "Problème au démarrage du PLC : erreur %d"
+#: ../dialogs/ProjectDialog.py:55 #: ../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 +msgstr "Version du produit" #: ../controls/ProjectPropertiesPanel.py:81
msgid "Product Version (required):"
msgstr "Version du produit (obligatoire) :"
-#: ../dialogs/SearchInProjectDialog.py:46
+#: ../dialogs/SearchInProjectDialog.py:38 ../IDEFrame.py:1743 -#: ../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 -#: ../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
+#: ../controls/ProjectPropertiesPanel.py:84 ../IDEFrame.py:584 @@ -2734,10 +2663,14 @@
-#: ../ProjectController.py:1564
+#: ../ProjectController.py:1835 msgstr "Fichiers de projet"
+#: ../dialogs/ProjectDialog.py:54 #: ../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 "Project file syntax error:\n"
@@ -2754,113 +2687,90 @@
"Erreur de syntaxe dans le fichier du projet :\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
-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 +msgid "Project tree layout do not match confnode.xml {a1}!={a2} " +#: ../dialogs/ConnectionDialog.py:94 -#: ../PLCControler.py:96
+#: ../PLCControler.py:97 -#: ../plcopen/structures.py:236
-"The pulse timer can be used to generate output pulses of a given time duration."
+#: ../Beremiz_service.py:440 +msgid "Publishing service on local network" +#: ../connectors/PYRO/__init__.py:118 +msgid "Pyro exception: %s\n" -"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:427 +msgid "Pyro object's uri :" +#: ../Beremiz_service.py:426 +#: ../py_ext/PythonEditor.py:81
-#: ../dialogs/ActionBlockDialog.py:37
+#: ../dialogs/ActionBlockDialog.py:38 -#: ../Beremiz_service.py:333
-#: ../PLCOpenEditor.py:132
+#: ../PLCOpenEditor.py:128 ../Beremiz.py:343 ../Beremiz_service.py:273 -#: ../plcopen/structures.py:201
-"The RS bistable is a latch where the Reset dominates."
-"La bascule RS est une bascule où le Reset est dominant."
-#: ../plcopen/structures.py:273
-"The RAMP function block is modelled on example given in the standard."
-"Le bloc fonctionnel RAMP est basé sur l'exemple du standard."
-#: ../controls/DebugVariablePanel.py:1462
-#: ../editors/GraphicViewer.py:89
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:225 -#: ../ProjectController.py:1560
+#: ../ProjectController.py:1831 -#: ../plcopen/structures.py:253
-"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."
-"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."
msgid "Really delete node '%s'?"
msgstr "Êtes-vous sûr de vouloir supprimer le noeud '%s' ?"
+#: ../IDEFrame.py:362 ../IDEFrame.py:422 -#: ../dialogs/SFCTransitionDialog.py:57
-#: ../dialogs/SFCTransitionDialog.py:135
+#: ../dialogs/SFCTransitionDialog.py:74
-#: ../dialogs/DiscoveryDialog.py:105
+#: ../dialogs/DiscoveryDialog.py:106 ../IDEFrame.py:432 -#: ../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 msgstr "Relacher la valeur"
@@ -2868,20 +2778,24 @@
msgid "Remainder (modulo)"
msgstr "Enlever un noeud %s"
-#: ../dialogs/ActionBlockDialog.py:139
+msgstr "Supprimer le Datatype" +msgstr "Supprimer le Pou" +#: ../dialogs/ActionBlockDialog.py:138 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 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 msgstr "Supprimer une instance"
-#: ../canfestival/NetworkEditor.py:81
+#: ../canfestival/NetworkEditor.py:104 msgstr "Enlever l'esclave"
-#: ../editors/ResourceEditor.py:231
+#: ../editors/ResourceEditor.py:240 msgstr "Supprimer la tâche"
-#: ../controls/VariablePanel.py:381
-#: ../c_ext/CFileEditor.py:518
+#: ../editors/CodeFileEditor.py:659 ../controls/VariablePanel.py:451 msgstr "Supprimer une variable"
@@ -2914,6 +2827,10 @@
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 @@
-#: ../editors/Viewer.py:521
+#: ../editors/Viewer.py:583 msgid "Reset Execution Order"
msgstr "Réinitialiser l'order d'exécution"
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 -#: ../controls/VariablePanel.py:67
+#: ../controls/VariablePanel.py:62 -#: ../controls/VariablePanel.py:354
+#: ../controls/VariablePanel.py:424 msgstr "Type de retour :"
-#: ../editors/Viewer.py:429
+#: ../editors/Viewer.py:487 -#: ../dialogs/LDPowerRailDialog.py:60
+#: ../dialogs/LDPowerRailDialog.py:63 msgstr "Barre d'alimentation à droite"
-#: ../editors/Viewer.py:403
-#: ../dialogs/LDElementDialog.py:80
+#: ../dialogs/LDElementDialog.py:77 ../editors/Viewer.py:461 -#: ../plcopen/structures.py:211
-"Rising edge detector\n"
-"The output produces a single pulse when a rising edge is detected."
-"Détecteur de front montant\n"
-"La sortie produit une impulsion unique lorsqu'un front montant est détecté."
#: ../plcopen/iec_std.csv:65
msgstr "Rotation à gauche"
@@ -2983,85 +2887,84 @@
-#: ../ProjectController.py:1528
+#: ../ProjectController.py:1799 -#: ../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" +#: ../ProjectController.py:1067 +msgid "Runtime library extensions C code generation failed !\n" +#: ../canfestival/SlaveEditor.py:61 ../canfestival/NetworkEditor.py:82 -#: ../canfestival/SlaveEditor.py:37
-#: ../canfestival/NetworkEditor.py:58
+#: ../canfestival/SlaveEditor.py:60 ../canfestival/NetworkEditor.py:81 -#: ../controls/ProjectPropertiesPanel.py:143
-#: ../dialogs/PouDialog.py:36
+#: ../dialogs/PouDialog.py:36 ../controls/ProjectPropertiesPanel.py:143 -#: ../plcopen/structures.py:196
-"The SR bistable is a latch where the Set dominates."
+#: ../PLCGenerator.py:1392 +msgid "SFC jump in pou \"{a1}\" refers to non-existent SFC step \"{a2}\""
-"La bascule SR est une bascule où le Set est dominant."
-#: ../dialogs/PouTransitionDialog.py:35
-#: ../dialogs/PouActionDialog.py:31
+#: ../PLCGenerator.py:773 +msgid "SFC transition in POU \"%s\" must be connected." +#: ../dialogs/PouTransitionDialog.py:40 ../dialogs/PouActionDialog.py:31 #: ../dialogs/PouDialog.py:36
-#: ../PLCOpenEditor.py:326
+#: ../PLCOpenEditor.py:324 msgid "ST files (*.st)|*.st|All files|*.*"
msgstr "Fichiers ST (*.st)|*.st|Tous les fichiers|*.*"
+#: ../svgui/svgui.py:125 msgid "SVG files (*.svg)|*.svg|All files|*.*"
msgstr "Fichiers SVG (*.svg)|*.svg|Tous les fichiers|*.*"
-#: ../PLCOpenEditor.py:115
-#: ../PLCOpenEditor.py:150
+#: ../PLCOpenEditor.py:111 ../PLCOpenEditor.py:146 ../Beremiz.py:327
-#: ../PLCOpenEditor.py:117
-#: ../PLCOpenEditor.py:151
+#: ../PLCOpenEditor.py:113 ../PLCOpenEditor.py:147 ../Beremiz.py:359 msgstr "Enregistrer sous..."
msgstr "Enregistrer sous..."
-#: ../dialogs/SearchInProjectDialog.py:76
+#: ../ProjectController.py:470 +msgid "Save path is the same as path of a project! \n" +#: ../dialogs/SearchInProjectDialog.py:69
-#: ../dialogs/SearchInProjectDialog.py:105
-#: ../dialogs/SearchInProjectDialog.py:52
+#: ../dialogs/SearchInProjectDialog.py:44 ../IDEFrame.py:382 msgid "Search in Project"
msgstr "Rechercher dans le projet"
@@ -3069,54 +2972,53 @@
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"
msgstr "Sélectionner un objet"
+#: ../ProjectController.py:477 +msgid "Selected directory already contains another project. Overwrite? \n" #: ../plcopen/iec_std.csv:70
-#: ../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
-"The semaphore provides a mechanism to allow software elements mutually exclusive access to certain ressources."
-"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 @@ -3128,27 +3030,27 @@
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 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 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 @@
+#: ../targets/toolchain_makefile.py:126 +msgid "Source didn't change, no build.\n" +#: ../PLCGenerator.py:397 +"Source signal has to be defined for single task '{a1}' in resource " #: ../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 msgstr "Démarrer l'automate"
-#: ../ProjectController.py:843
+#: ../ProjectController.py:1005 msgid "Start build in %s\n"
msgstr "Début de la compilation dans %s\n"
-#: ../ProjectController.py:1341
+#: ../ProjectController.py:1319 +#: ../ProjectController.py:1607 msgstr "Démarrer l'automate\n"
msgstr "Barre d'outils de statut"
-#: ../editors/Viewer.py:492
+#: ../editors/Viewer.py:553 ../editors/Viewer.py:2353 -#: ../ProjectController.py:1533
+#: ../ProjectController.py:1804 -#: ../Beremiz_service.py:322
+#: ../Beremiz_service.py:262 msgstr "Arrêter l'automate"
-#: ../ProjectController.py:1535
+#: ../ProjectController.py:1806 msgstr "Arrêter l'automate en cours d'exécution"
-#: ../ProjectController.py:1318
+#: ../ProjectController.py:1320 +#: ../ProjectController.py:1579 msgid "Stopping debugger...\n"
msgstr "Arrêt du débogage en cours\n"
@@ -3218,27 +3138,36 @@
-#: ../ProjectController.py:942
+#: ../ProjectController.py:1044 msgid "Successfully built.\n"
msgstr "Compilé avec succès.\n"
-#: ../dialogs/SearchInProjectDialog.py:154
+msgid "Switch perspective" +#: ../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 !"
+"Erreur de syntaxe dans l'expression régulière du modèle à rechercher !" +#: ../dialogs/DiscoveryDialog.py:93 #: ../plcopen/iec_std.csv:29
-#: ../editors/ResourceEditor.py:77
+#: ../editors/ResourceEditor.py:83 -#: ../editors/ResourceEditor.py:226
+#: ../editors/ResourceEditor.py:235 -#: ../controls/VariablePanel.py:78
+#: ../controls/VariablePanel.py:73 @@ -3255,18 +3184,20 @@
msgid "The group of block must be coherent!"
msgstr "Le groupe de blocs doit être cohérent !"
+#: ../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:1654 ../IDEFrame.py:1673 -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 ?"
+"There is a POU named \"%s\". This could cause a conflict. Do you wish to " +"Un POU a pour nom \"%s\". Cela peut générer des conflits. Voulez-vous " "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
+#: ../controls/DebugVariablePanel/DebugVariablePanel.py:565 #: ../plcopen/iec_std.csv:40
-#: ../plcopen/iec_std.csv:40
-#: ../plcopen/iec_std.csv:41
+#: ../plcopen/iec_std.csv:40 ../plcopen/iec_std.csv:41 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 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 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 -#: ../ProjectController.py:1542
+#: ../ProjectController.py:1813 -#: ../ProjectController.py:1544
+#: ../ProjectController.py:1815 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 -#: ../PLCGenerator.py:1252
+#: ../PLCGenerator.py:1518 -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
+"Transition \"%s\" body must contain an output variable or coil referring to " +"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 msgstr "Nom de la transition"
-#: ../dialogs/PouTransitionDialog.py:53
+#: ../dialogs/PouTransitionDialog.py:58 msgstr "Nom de la transition :"
-#: ../PLCGenerator.py:1340
-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
-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 +msgid "Transition with content \"{a1}\" not connected to a next step in \"{a2}\" POU" +#: ../PLCGenerator.py:1598 +"Transition with content \"{a1}\" not connected to a previous step in " +#: ../plcopen/plcopen.py:1318 msgid "Transition with name %s doesn't exist!"
msgstr "La transition nommée %s n'existe pas !"
-#: ../PLCControler.py:95
+#: ../PLCControler.py:96 +#: ../dialogs/AboutDialog.py:131 #: ../editors/ResourceEditor.py:68
-#: ../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." +#: ../dialogs/ActionBlockDialog.py:38 ../editors/ResourceEditor.py:83 +#: ../editors/DataTypeEditor.py:50 ../controls/VariablePanel.py:53 +#: ../controls/VariablePanel.py:54 -#: ../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 msgid "Type conflict for location \"%s\""
msgstr "Conflit entre types pour l'adresse \"%s\""
@@ -3404,140 +3341,117 @@
msgstr "Conversion de type"
-#: ../editors/DataTypeEditor.py:161
+#: ../editors/DataTypeEditor.py:162 msgstr "Propriétés du type :"
-#: ../dialogs/BrowseLocationsDialog.py:45
+#: ../dialogs/BrowseLocationsDialog.py:49 -#: ../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 -#: ../canfestival/config_utils.py:455
-#: ../canfestival/config_utils.py:469
+#: ../canfestival/config_utils.py:462 ../canfestival/config_utils.py:476 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 msgid "Unable to get Xenomai's %s \n"
msgstr "Unable to get Xenomai's %s \n"
-#: ../PLCGenerator.py:904
-#: ../PLCGenerator.py:963
-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 +msgid "Undefined block type \"{a1}\" in \"{a2}\" POU" +#: ../PLCGenerator.py:254 msgid "Undefined pou type \"%s\""
msgstr "Type de POU \"%s\" indéterminé !"
+#: ../IDEFrame.py:360 ../IDEFrame.py:421 -#: ../ProjectController.py:262
+#: ../ProjectController.py:382 -#: ../editors/Viewer.py:335
+#: ../editors/Viewer.py:393 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 -#: ../PLCControler.py:305
+#: ../PLCControler.py:636 -#: ../controls/VariablePanel.py:272
+#: ../controls/VariablePanel.py:284 msgid "Unrecognized data size \"%s\""
msgstr "Taille de donnée \"%s\" non identifié !"
-#: ../plcopen/structures.py:221
-"The up-counter can be used to signal when a count has reached a maximum value."
-"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
-"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."
-"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 msgstr "Types de donnée du projet"
-#: ../canfestival/SlaveEditor.py:42
-#: ../canfestival/NetworkEditor.py:63
+#: ../canfestival/SlaveEditor.py:65 ../canfestival/NetworkEditor.py:86 msgstr "Type utilisateur"
-#: ../PLCControler.py:94
+#: ../PLCControler.py:95 msgid "User-defined POUs"
-#: ../controls/DebugVariablePanel.py:58
-#: ../dialogs/ActionBlockDialog.py:37
+#: ../dialogs/ActionBlockDialog.py:38 -#: ../editors/GraphicViewer.py:278
-#: ../editors/DataTypeEditor.py:258
+#: ../editors/DataTypeEditor.py:259 -#: ../controls/DebugVariablePanel.py:58
-#: ../editors/Viewer.py:465
-#: ../dialogs/ActionBlockDialog.py:41
+#: ../dialogs/ActionBlockDialog.py:42 ../editors/Viewer.py:526 +#: ../editors/Viewer.py:2385 -#: ../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 +#: ../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 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 +#: ../controls/VariablePanel.py:72 @@ -3545,24 +3459,41 @@
-#: ../wxglade_hmi/wxglade_hmi.py:11
+#: ../Beremiz_service.py:586 +msgid "WAMP client startup failed. " +#: ../connectors/WAMP/__init__.py:91 +msgid "WAMP connecting to URL : %s\n" +#: ../connectors/WAMP/__init__.py:131 +msgid "WAMP connection timeout" +#: ../connectors/WAMP/__init__.py:150 +msgid "WAMP connection to '%s' failed.\n" +#: ../Beremiz_service.py:562 +msgid "WAMP import failed :" +#: ../wxglade_hmi/wxglade_hmi.py:35 -#: ../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 -#: ../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 @@ -3570,15 +3501,19 @@
-#: ../dialogs/FindInPouDialog.py:86
+#: ../dialogs/FindInPouDialog.py:93
+#: ../dialogs/AboutDialog.py:130 msgstr "Interface WxGlade"
-#: ../svgui/svgui.py:106
+#: ../svgui/svgui.py:139 "You don't have write permissions.\n"
@@ -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 "You don't have write permissions.\n"
@@ -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 "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 !"
+"You must select the block or group of blocks around which a branch should be" +"Vous devez sélectionné le bloc ou le group autour duquel un ebranche doit " #: ../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
+"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 !"
-#: ../editors/GraphicViewer.py:97
-#: ../PLCOpenEditor.py:335
+#: ../dialogs/DurationEditorDialog.py:151 +#: ../PLCOpenEditor.py:333 -#: ../util/ProcessLogger.py:161
-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 +msgid "exited with status {a1} (pid {a2})\n" +#: ../PLCOpenEditor.py:396 ../PLCOpenEditor.py:398 @@ -3647,7 +3584,7 @@
-#: ../PLCOpenEditor.py:396
+#: ../PLCOpenEditor.py:399 @@ -3655,14 +3592,30 @@
msgstr "Bloc fonctionnel"
-#: ../PLCOpenEditor.py:396
+#: ../dialogs/DurationEditorDialog.py:151 +#: ../PLCOpenEditor.py:399 +#: ../dialogs/DurationEditorDialog.py:153 +#: ../dialogs/DurationEditorDialog.py:152 #: ../dialogs/PouDialog.py:31
+#: ../dialogs/DurationEditorDialog.py:152 #: ../plcopen/iec_std.csv:84
msgid "string from the middle"
msgstr "Caractères du milieu"
@@ -3675,11 +3628,27 @@
msgstr "Caractères à droite de"
-#: ../PLCOpenEditor.py:333
+msgid "update info unavailable." +msgstr "Information de mise à jour non disponible." +#: ../PLCOpenEditor.py:331 +#: ../PLCControler.py:970 +msgid "{a1} \"{a2}\" can't be pasted as a {a3}." +#: ../ConfigTreeNode.py:56 +"{a1} XML file doesn't follow XSD schema at line %{a2}:\n" msgid "CanFestivalSlaveNode"
msgstr "Noeud esclave CanFestival"
@@ -3711,15 +3680,39 @@
msgstr "Paramètres de base"
@@ -3729,24 +3722,6 @@
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!"
-#~ "Les blocs fonctionnels ne peuvent être utilisés dans des transitions"
-#~ msgid "No running PLC"
-#~ msgstr "Aucun automate en cours d'exécution"
-#~ msgstr "Propriétés du noeud"
-#~ msgstr "L'automate est dans l'état %s\n"
-#~ msgstr "Mode de débogage"
-#~ msgid "Close Project\tCTRL+SHIFT+W"
-#~ "#-#-#-#-# 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"
-#~ msgstr "Nouveau\tCTRL+N"
-#~ msgstr "Ouvrir\tCTRL+O"
-#~ msgid "Preview\tCTRL+SHIFT+P"
-#~ "#-#-#-#-# 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"
-#~ msgid "Print\tCTRL+P"
-#~ "#-#-#-#-# Beremiz_fr_FR.po (PACKAGE VERSION) #-#-#-#-#\n"
-#~ "#-#-#-#-# PLCOpenEditor_fr_FR.po (PACKAGE VERSION) #-#-#-#-#\n"
-#~ "Imprimer...\tCTRL+Q"
-#~ msgstr "Quitter\tCTRL+Q"
-#~ msgstr "Enregistrer\tCTRL+S"
-#~ msgid "Save as\tCTRL+SHIFT+S"
-#~ msgstr "Enregistrer sous...\tCTRL+SHIFT+S"
-#~ msgstr "Copier\tCtrl+C"
-#~ msgstr "Couper\tCTRL+X"
-#~ msgstr "Rechercher...\tCTRL+Z"
-#~ msgid "PLCOpenEditor\tF1"
-#~ msgstr "PLCOpenEditor\tF1"
-#~ msgid "Paste\tCTRL+V"
-#~ msgstr "Coller\tCTRL+V"
-#~ 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"
-#~ msgstr "Défaire\tCTRL+Z"
-#~ msgid "Add a sub confnode"
-#~ msgstr "Add a sub confnode"
-#~ 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"
-#~ 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 "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"
-#~ msgstr "Types de blocs"
-#~ msgstr "Supprimer une tâche"
-#~ msgid "Graphic Panel"
-#~ 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 "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 "A pou with \"%s\" as name exists!"
-#~ msgstr "Un POU nommé \"%s\" existe déjà !"
-#~ msgid "Close\tCTRL+Q"
-#~ msgstr "Fermer\tCTRL+Q"
-#~ "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" +#: Extra TC6 documentation strings +msgid "0 - current time, 1 - load time from PDT" +msgid "Datetime, current or relative to PDT" +"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." +msgid "1 = integrate, 0 = hold" +msgid "Overriding reset" +msgstr "Variable d'entrée" +msgstr "Valeur initiale" +msgstr "Période d'échantillonnage" +msgid "Integrated output" +"The integral function block integrates the value of input XIN over time." +msgid "Input to be differentiated" +msgid "Differentiated output" +"The derivative function block produces an output XOUT proportional to the " +"rate of change of the input XIN." +msgid "0 - manual , 1 - automatic" +msgid "Process variable" +msgid "Manual output adjustment - Typically from transfer station" +msgid "Proportionality constant" +msgid "Derivative time constant" +msgid "FB for integral term" +msgid "FB for derivative term" +"The PID (proportional, Integral, Derivative) function block provides the " +"classical three term controller for closed loop control." +msgid "0 - track X0, 1 - ramp to/track X1" +msgid "BUSY = 1 during ramping period" +msgid "Elapsed time of ramp" +msgid "The RAMP function block is modelled on example given in the standard." +"The hysteresis function block provides a hysteresis boolean output driven by" +" the difference of two floating point (REAL) inputs XIN1 and XIN2." +msgid "The SR bistable is a latch where the Set dominates." +msgid "The RS bistable is a latch where the Reset dominates." +"The semaphore provides a mechanism to allow software elements mutually " +"exclusive access to certain ressources." +msgid "The output produces a single pulse when a rising edge is detected." +msgid "The output produces a single pulse when a falling edge is detected." +"The up-counter can be used to signal when a count has reached a maximum " +"The down-counter can be used to signal when a count has reached zero, on " +"counting down from a preset value." +"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." +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" +"The pulse timer can be used to generate output pulses of a given time " +"The on-delay timer can be used to delay setting an output true, for fixed " +"period after an input becomes true." +"The off-delay timer can be used to delay setting an output false, for fixed " +"period after input goes false." --- a/i18n/Beremiz_ru_RU.po Thu Jun 22 16:08:50 2017 +0300
+++ b/i18n/Beremiz_ru_RU.po Thu Jun 22 16:43:38 2017 +0300
@@ -7,18 +7,18 @@
"Project-Id-Version: Beremiz\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-03-09 15:28+0300\n"
-"PO-Revision-Date: 2017-03-21 17:59+0300\n"
+"POT-Creation-Date: 2017-06-21 18:30+0300\n" +"PO-Revision-Date: 2017-06-21 18:37+0300\n" "Last-Translator: Andrey Skvortsov <andrej.skvortzov@gmail.com>\n"
-"Language-Team: Andrey Skvortsov <andrej.skvortzov@gmail.com>\n"
+"Language-Team: Russian (Russia) (https://www.transifex.com/beremiz/teams/75746/ru_RU/)\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" "X-Generator: Poedit 1.8.11\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-#: ../PLCOpenEditor.py:408 ../Beremiz.py:1191
+#: ../BeremizIDE.py:1094 ../PLCOpenEditor.py:418 @@ -67,107 +67,107 @@
-#: ../dialogs/PouTransitionDialog.py:99 ../dialogs/ProjectDialog.py:66
-#: ../dialogs/PouActionDialog.py:91 ../dialogs/PouDialog.py:113
+#: ../dialogs/PouTransitionDialog.py:94 ../dialogs/ProjectDialog.py:69 +#: ../dialogs/PouActionDialog.py:92 ../dialogs/PouDialog.py:113 -#: ../ProjectController.py:1110
+#: ../ProjectController.py:1139 msgid " generation failed !\n"
msgstr "неудачная генерация кода!\n"
-#: ../plcopen/plcopen.py:881
+#: ../plcopen/plcopen.py:886 msgid "\"%s\" Data Type doesn't exist !!!"
msgstr "Тип данных \"%s\" не существует!!!"
-#: ../plcopen/plcopen.py:899
+#: ../plcopen/plcopen.py:904 msgid "\"%s\" POU already exists !!!"
msgstr "POU \"%s\" уже существует!!!"
-#: ../plcopen/plcopen.py:920
+#: ../plcopen/plcopen.py:925 msgid "\"%s\" POU doesn't exist !!!"
msgstr "POU \"%s\" не найден!!!"
-#: ../editors/Viewer.py:246
+#: ../editors/Viewer.py:247 msgid "\"%s\" can't use itself!"
msgstr "\"%s\" не может использовать сам себя!!!"
-#: ../IDEFrame.py:1651 ../IDEFrame.py:1670
+#: ../IDEFrame.py:1655 ../IDEFrame.py:1674 msgid "\"%s\" config already exists!"
msgstr "Конфигурация \"%s\" уже существует!!!"
-#: ../plcopen/plcopen.py:467
+#: ../plcopen/plcopen.py:472 msgid "\"%s\" configuration already exists !!!"
msgstr "Конфигурация \"%s\" уже существует!!!"
msgid "\"%s\" data type already exists!"
msgstr "Тип данных \"%s\" уже существует!!!"
-#: ../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
+#: ../dialogs/PouTransitionDialog.py:105 ../dialogs/BlockPreviewDialog.py:220 +#: ../dialogs/PouActionDialog.py:103 ../editors/Viewer.py:263 +#: ../editors/Viewer.py:331 ../editors/Viewer.py:355 ../editors/Viewer.py:375 #: ../editors/TextViewer.py:272 ../editors/TextViewer.py:301
#: ../controls/VariablePanel.py:396
msgid "\"%s\" element for this pou already exists!"
msgstr "Элемент с именем \"%s\" уже существует в этом POU!!!"
msgid "\"%s\" folder is not a valid Beremiz project\n"
msgstr "Директория \"%s\" не является проектом Beremiz\n"
-#: ../dialogs/SFCStepNameDialog.py:52 ../dialogs/PouTransitionDialog.py:106
-#: ../dialogs/BlockPreviewDialog.py:207 ../dialogs/PouNameDialog.py:50
-#: ../dialogs/PouActionDialog.py:98 ../dialogs/PouDialog.py:120
+#: ../dialogs/SFCStepNameDialog.py:52 ../dialogs/PouTransitionDialog.py:101 +#: ../dialogs/BlockPreviewDialog.py:208 ../dialogs/PouNameDialog.py:50 +#: ../dialogs/PouActionDialog.py:99 ../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
+#: ../editors/DataTypeEditor.py:555 ../editors/DataTypeEditor.py:587 +#: ../editors/CodeFileEditor.py:781 ../controls/VariablePanel.py:773 msgid "\"%s\" is a keyword. It can't be used!"
msgstr "\"%s\" является ключевым словом и не может быть использован!"
-#: ../plcopen/plcopen.py:2412
+#: ../plcopen/plcopen.py:2417 msgid "\"%s\" is an invalid value!"
msgstr "\"%s\" недопустимое значение!"
-#: ../PLCOpenEditor.py:339 ../PLCOpenEditor.py:381
+#: ../PLCOpenEditor.py:349 ../PLCOpenEditor.py:391 msgid "\"%s\" is not a valid folder!"
msgstr "\"%s\" не является директорией!"
-#: ../dialogs/SFCStepNameDialog.py:50 ../dialogs/PouTransitionDialog.py:104
-#: ../dialogs/BlockPreviewDialog.py:203 ../dialogs/PouNameDialog.py:48
-#: ../dialogs/PouActionDialog.py:96 ../dialogs/PouDialog.py:118
+#: ../dialogs/SFCStepNameDialog.py:50 ../dialogs/PouTransitionDialog.py:99 +#: ../dialogs/BlockPreviewDialog.py:204 ../dialogs/PouNameDialog.py:48 +#: ../dialogs/PouActionDialog.py:97 ../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
+#: ../editors/DataTypeEditor.py:585 ../editors/CodeFileEditor.py:779 +#: ../controls/VariablePanel.py:771 ../IDEFrame.py:1594 msgid "\"%s\" is not a valid identifier!"
msgstr "\"%s\" неверный идентификатор!"
msgid "\"%s\" is used by one or more POUs. Do you wish to continue?"
msgstr "\"%s\" используется более чем одним POU. Продолжить?"
-#: ../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
+#: ../dialogs/BlockPreviewDialog.py:212 ../dialogs/PouDialog.py:122 +#: ../editors/Viewer.py:261 ../editors/Viewer.py:316 ../editors/Viewer.py:346 +#: ../editors/Viewer.py:368 ../editors/TextViewer.py:270 #: ../editors/TextViewer.py:299 ../editors/TextViewer.py:350
#: ../editors/TextViewer.py:373 ../controls/VariablePanel.py:338
msgid "\"%s\" pou already exists!"
msgstr "POU \"%s\" уже существует!"
@@ -182,12 +182,12 @@
msgid "\"%s\" value already defined!"
msgstr "\"%s\" значение уже задано!"
-#: ../dialogs/ArrayTypeDialog.py:97 ../editors/DataTypeEditor.py:745
+#: ../dialogs/ArrayTypeDialog.py:97 ../editors/DataTypeEditor.py:743 msgid "\"%s\" value isn't a valid array dimension!"
msgstr "\"%s\" не является корректной размерностью для массива! "
-#: ../dialogs/ArrayTypeDialog.py:103 ../editors/DataTypeEditor.py:752
+#: ../dialogs/ArrayTypeDialog.py:103 ../editors/DataTypeEditor.py:750 "\"%s\" value isn't a valid array dimension!\n"
@@ -199,17 +199,17 @@
msgid "\"{a1}\" function cancelled in \"{a2}\" POU: No input connected"
msgstr "Функция \"{a1}\" не используется в POU \"{a2}\": входы не подключены"
-#: ../editors/Viewer.py:250
+#: ../editors/Viewer.py:251 msgid "\"{a1}\" is already used by \"{a2}\"!"
msgstr "\"{a1}\" уже используется \"{a2}\"!"
-#: ../plcopen/plcopen.py:491
+#: ../plcopen/plcopen.py:496 msgid "\"{a1}\" resource already exists in \"{a2}\" configuration !!!"
msgstr "Ресурс \"{a1}\" уже существует в конфигурации \"{a2}\"!!!"
-#: ../plcopen/plcopen.py:509
+#: ../plcopen/plcopen.py:514 msgid "\"{a1}\" resource doesn't exist in \"{a2}\" configuration !!!"
msgstr "Ресурс \"{a1}\" отсутствует в конфигурации \"{a2}\"!!!"
@@ -250,12 +250,12 @@
-#: ../PLCControler.py:1531
+#: ../PLCControler.py:1533 -#: ../PLCControler.py:1514
+#: ../PLCControler.py:1516 @@ -265,15 +265,15 @@
-#: ../plcopen/plcopen.py:1645 ../plcopen/plcopen.py:1652
-#: ../plcopen/plcopen.py:1664 ../plcopen/plcopen.py:1672
-#: ../plcopen/plcopen.py:1682
+#: ../plcopen/plcopen.py:1650 ../plcopen/plcopen.py:1657 +#: ../plcopen/plcopen.py:1669 ../plcopen/plcopen.py:1677 +#: ../plcopen/plcopen.py:1687 msgid "%s body don't have instances!"
msgstr "Тело %s не содержит экземпляров!"
-#: ../plcopen/plcopen.py:1700 ../plcopen/plcopen.py:1707
-#: ../plcopen/plcopen.py:1714
+#: ../plcopen/plcopen.py:1705 ../plcopen/plcopen.py:1712 +#: ../plcopen/plcopen.py:1719 msgid "%s body don't have text!"
msgstr "Тело %s не содержит никакой текст!"
@@ -327,11 +327,11 @@
-#: ../PLCOpenEditor.py:125
+#: ../PLCOpenEditor.py:127
msgstr "&Недавние проекты"
@@ -359,36 +359,20 @@
-#: ../PLCOpenEditor.py:396 ../PLCOpenEditor.py:398 ../PLCOpenEditor.py:399
+#: ../PLCOpenEditor.py:406 ../PLCOpenEditor.py:408 ../PLCOpenEditor.py:409 -#: ../dialogs/PouTransitionDialog.py:101 ../dialogs/PouActionDialog.py:93
+#: ../dialogs/PouTransitionDialog.py:96 ../dialogs/PouActionDialog.py:94 #: ../dialogs/PouDialog.py:115
-#: ../PLCOpenEditor.py:394
+#: ../PLCOpenEditor.py:404 -#: Extra TC6 documentation strings
-msgid "0 - current time, 1 - load time from PDT"
-msgstr "0 - текущее время, 1 - отклонение от PDT"
-msgid "0 - manual , 1 - automatic"
-msgstr "0 - ручной, 1 - автоматический"
-msgid "0 - track X0, 1 - ramp to/track X1"
-msgstr "0 - вход X0, 1 - нарастание до значения X1"
-msgid "1 = integrate, 0 = hold"
-msgstr "1 = интегрировать, 0 = остановка"
#: ../controls/LogViewer.py:279
@@ -405,15 +389,15 @@
-#: ../dialogs/PouDialog.py:124 ../IDEFrame.py:1613 ../IDEFrame.py:1659
+#: ../dialogs/PouDialog.py:124 ../IDEFrame.py:1617 ../IDEFrame.py:1663 msgid "A POU has an element named \"%s\". This could cause a conflict. Do you wish to continue?"
msgstr "В POU присутствует элемент с именем \"%s\". Это может вызвать конфликт. Хотите продолжить?"
-#: ../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
+#: ../dialogs/SFCStepNameDialog.py:54 ../dialogs/PouTransitionDialog.py:103 +#: ../dialogs/PouNameDialog.py:52 ../dialogs/PouActionDialog.py:101 +#: ../controls/VariablePanel.py:775 ../IDEFrame.py:1631 ../IDEFrame.py:1644 msgid "A POU named \"%s\" already exists!"
msgstr "POU с именем \"%s\" уже существует!"
@@ -423,7 +407,7 @@
msgid "A child named \"{a1}\" already exists -> \"{a2}\"\n"
msgstr "Дочерний элемент с именем \"{a1}\" уже существует -> \"{a2}\"\n"
-#: ../dialogs/BrowseLocationsDialog.py:216
+#: ../dialogs/BrowseLocationsDialog.py:218 msgid "A location must be selected!"
msgstr "Необходимо выбрать размещение!"
@@ -431,18 +415,18 @@
msgid "A task with the same name already exists!"
msgstr "Задача с таким именем уже существует!"
-#: ../dialogs/SFCStepNameDialog.py:56 ../controls/VariablePanel.py:767
-#: ../IDEFrame.py:1629 ../IDEFrame.py:1642
+#: ../dialogs/SFCStepNameDialog.py:56 ../controls/VariablePanel.py:777 +#: ../IDEFrame.py:1633 ../IDEFrame.py:1646 msgid "A variable with \"%s\" as name already exists in this pou!"
msgstr "Переменная с именем \"%s\" уже существует в этом POU!"
-#: ../editors/CodeFileEditor.py:774
+#: ../editors/CodeFileEditor.py:785 msgid "A variable with \"%s\" as name already exists!"
msgstr "Переменная с именем \"%s\" уже существует!"
-#: ../dialogs/AboutDialog.py:48 ../PLCOpenEditor.py:158 ../Beremiz.py:381
+#: ../BeremizIDE.py:283 ../dialogs/AboutDialog.py:48 ../PLCOpenEditor.py:168 @@ -450,15 +434,15 @@
msgstr "Абсолютный номер"
-#: ../dialogs/SFCStepDialog.py:72 ../dialogs/ActionBlockDialog.py:42
+#: ../dialogs/SFCStepDialog.py:73 ../dialogs/ActionBlockDialog.py:43 -#: ../editors/Viewer.py:555 ../editors/Viewer.py:2356
+#: ../editors/Viewer.py:614 ../editors/Viewer.py:2392 -#: ../dialogs/PouActionDialog.py:81
+#: ../dialogs/PouActionDialog.py:82 @@ -466,12 +450,12 @@
-#: ../plcopen/plcopen.py:1359
+#: ../plcopen/plcopen.py:1364 msgid "Action with name %s doesn't exist!"
msgstr "Действие с именем %s не существует!"
-#: ../PLCControler.py:96
+#: ../PLCControler.py:98 @@ -479,16 +463,16 @@
-#: ../editors/Viewer.py:1110
+#: ../editors/Viewer.py:431 #: ../canfestival/SlaveEditor.py:80 ../canfestival/NetworkEditor.py:101
-#: ../editors/Viewer.py:588 ../Beremiz.py:1060
+#: ../BeremizIDE.py:964 ../editors/Viewer.py:647 -#: ../IDEFrame.py:1889 ../IDEFrame.py:1924
+#: ../IDEFrame.py:1893 ../IDEFrame.py:1928 msgstr "Добавить действие"
@@ -496,23 +480,23 @@
msgid "Add C code accessing located variables synchronously"
msgstr "Добавить C-код с синхронным доступом к локальным переменным"
msgid "Add Configuration"
msgstr "Добавить конфигурацию"
msgstr "Добавить тип данных"
-#: ../editors/Viewer.py:513
+#: ../editors/Viewer.py:572 msgid "Add Divergence Branch"
msgstr "Добавить ветвление"
-#: ../dialogs/DiscoveryDialog.py:116
+#: ../dialogs/DiscoveryDialog.py:117 msgstr "Добавить IP адрес"
@@ -520,15 +504,15 @@
msgid "Add Python code executed asynchronously"
msgstr "Добавить асинхронно вызываемый код на Python"
-#: ../IDEFrame.py:1900 ../IDEFrame.py:1950
+#: ../IDEFrame.py:1904 ../IDEFrame.py:1954 -#: ../IDEFrame.py:1878 ../IDEFrame.py:1921
+#: ../IDEFrame.py:1882 ../IDEFrame.py:1925 msgstr "Добавить переход"
-#: ../editors/Viewer.py:500
+#: ../editors/Viewer.py:559 @@ -536,7 +520,7 @@
msgid "Add a new initial step"
msgstr "Добавить новый исходный шаг"
-#: ../editors/Viewer.py:2717 ../editors/SFCViewer.py:770
+#: ../editors/Viewer.py:2755 ../editors/SFCViewer.py:770 msgstr "Добавить новый безусловный переход"
@@ -568,7 +552,7 @@
-#: ../editors/CodeFileEditor.py:658 ../controls/VariablePanel.py:450
+#: ../editors/CodeFileEditor.py:660 ../controls/VariablePanel.py:450 msgstr "Добавить переменную"
@@ -576,22 +560,22 @@
-#: ../plcopen/definitions.py:47
+#: ../plcopen/definitions.py:49 msgid "Additional function blocks"
msgstr "Дополнительные функциональные блоки"
-#: ../editors/Viewer.py:571
+#: ../editors/Viewer.py:630 msgid "Adjust Block Size"
msgstr "Скорректировать размер элемента"
-#: ../editors/Viewer.py:1648
+#: ../editors/Viewer.py:1684 -#: ../dialogs/BrowseLocationsDialog.py:39
-#: ../dialogs/BrowseLocationsDialog.py:47
-#: ../dialogs/BrowseLocationsDialog.py:140
-#: ../dialogs/BrowseLocationsDialog.py:143 ../controls/LogViewer.py:298
+#: ../dialogs/BrowseLocationsDialog.py:40 +#: ../dialogs/BrowseLocationsDialog.py:48 +#: ../dialogs/BrowseLocationsDialog.py:141 +#: ../dialogs/BrowseLocationsDialog.py:144 ../controls/LogViewer.py:298 #: ../controls/VariablePanel.py:70
@@ -600,11 +584,11 @@
msgid "All files (*.*)|*.*|CSV files (*.csv)|*.csv"
msgstr "Все файлы (*.*)|*.*|CSV files (*.csv)|*.csv"
-#: ../ProjectController.py:1644
+#: ../ProjectController.py:1673 msgid "Already connected. Please disconnect\n"
msgstr "Уже подключен. Пожалуйста, отключитесь сначала.\n"
-#: ../editors/DataTypeEditor.py:594
+#: ../editors/DataTypeEditor.py:591 msgid "An element named \"%s\" already exists in this structure!"
msgstr "Поле с именем \"%s\" уже существует в данной структуре!"
@@ -613,7 +597,7 @@
msgid "An instance with the same name already exists!"
msgstr "Экземпляр задачи с таким именем уже существует!"
-#: ../dialogs/ConnectionDialog.py:96
+#: ../dialogs/ConnectionDialog.py:100 msgid "Apply name modification to all continuations with the same name"
msgstr "Переименовать все цепи с тем же самым именем"
@@ -633,8 +617,8 @@
-#: ../editors/DataTypeEditor.py:54 ../editors/DataTypeEditor.py:635
-#: ../controls/VariablePanel.py:841
+#: ../editors/DataTypeEditor.py:54 ../editors/DataTypeEditor.py:633 +#: ../controls/VariablePanel.py:858 @@ -642,22 +626,19 @@
-#: ../dialogs/FBDVariableDialog.py:217
+#: ../dialogs/FBDVariableDialog.py:222 msgid "At least a variable or an expression must be selected!"
msgstr "Переменная или выражение должно быть выбрано!"
-#: ../controls/ProjectPropertiesPanel.py:99
+#: ../controls/ProjectPropertiesPanel.py:100 -#: ../controls/ProjectPropertiesPanel.py:96
+#: ../controls/ProjectPropertiesPanel.py:97 msgid "Author Name (optional):"
msgstr "Имя автора (опционально):"
-msgid "BUSY = 1 during ramping period"
-msgstr "BUSY = 1 во время "
-#: ../dialogs/FindInPouDialog.py:79
+#: ../dialogs/FindInPouDialog.py:77 @@ -674,19 +655,19 @@
msgid "Bad location size : %s"
msgstr "Неправильный размер: %s"
-#: ../dialogs/ArrayTypeDialog.py:55 ../editors/DataTypeEditor.py:175
+#: ../dialogs/ArrayTypeDialog.py:54 ../editors/DataTypeEditor.py:175 #: ../editors/DataTypeEditor.py:205 ../editors/DataTypeEditor.py:297
-#: ../editors/DataTypeEditor.py:625 ../controls/VariablePanel.py:799
+#: ../editors/DataTypeEditor.py:623 ../controls/VariablePanel.py:816 msgstr "Базовые параметры"
@@ -721,11 +702,11 @@
msgid "Bitwise inverting"
-#: ../editors/Viewer.py:525 ../editors/Viewer.py:2369
+#: ../editors/Viewer.py:584 ../editors/Viewer.py:2405 -#: ../dialogs/FBDBlockDialog.py:59
+#: ../dialogs/FBDBlockDialog.py:60 @@ -733,40 +714,40 @@
-#: ../editors/Viewer.py:491
+#: ../editors/Viewer.py:550 -#: ../ProjectController.py:1322
+#: ../ProjectController.py:1351 -#: ../dialogs/BrowseValuesLibraryDialog.py:37
+#: ../dialogs/BrowseValuesLibraryDialog.py:38 msgid "Browse %s values library"
msgstr "Просмотр %s значений библиотеки"
#: ../dialogs/BrowseLocationsDialog.py:65
-msgstr "Просмотр директорий"
-#: ../ProjectController.py:1790
+msgstr "Просмотр адресов" +#: ../ProjectController.py:1820 -#: ../ProjectController.py:1256
+#: ../ProjectController.py:1285 msgid "Build directory already clean\n"
msgstr "Директория сборки уже пуста\n"
-#: ../ProjectController.py:1791
+#: ../ProjectController.py:1821 msgid "Build project into build folder"
msgstr "Сборка проекта в директории сборки"
-#: ../ProjectController.py:1039
+#: ../ProjectController.py:1068 msgid "C Build crashed !\n"
msgstr "Крэш во время сборки C-кода!\n"
-#: ../ProjectController.py:1036
+#: ../ProjectController.py:1065 msgid "C Build failed.\n"
msgstr "Ошибка сборки C-кода.\n"
@@ -774,7 +755,7 @@
-#: ../ProjectController.py:1114
+#: ../ProjectController.py:1143 msgid "C code generated successfully.\n"
msgstr "C-код успешно сгенерирован.\n"
@@ -782,7 +763,7 @@
msgid "C compilation failed.\n"
msgstr "Ошибка компиляции.\n"
-#: ../targets/toolchain_gcc.py:156
+#: ../targets/toolchain_gcc.py:192 msgid "C compilation of %s failed.\n"
msgstr "Ошибка компиляции %s.\n"
@@ -819,16 +800,16 @@
-#: ../plcopen/plcopen.py:1584 ../plcopen/plcopen.py:1598
-#: ../plcopen/plcopen.py:1622 ../plcopen/plcopen.py:1638
+#: ../plcopen/plcopen.py:1589 ../plcopen/plcopen.py:1603 +#: ../plcopen/plcopen.py:1627 ../plcopen/plcopen.py:1643 msgid "Can only generate execution order on FBD networks!"
msgstr "Можно сгенерировать порядок исполнения только для FBD!"
#: ../controls/VariablePanel.py:267
msgid "Can only give a location to local or global variables"
-msgstr "Можно задать размещение только локальным или глобальным переменны"
-#: ../PLCOpenEditor.py:334
+msgstr "Можно задать адреса только локальным или глобальным переменны" +#: ../PLCOpenEditor.py:344 msgid "Can't generate program to file %s!"
msgstr "Нельзя сгенерировать программу в файл %s!"
@@ -837,7 +818,7 @@
msgid "Can't give a location to a function block instance"
msgstr "Нельзя задать размещение для экземпляра функционального блока"
-#: ../PLCOpenEditor.py:379
+#: ../PLCOpenEditor.py:389 msgid "Can't save project to file %s!"
msgstr "Нельзя сохранить проект в файл %s!"
@@ -870,7 +851,7 @@
msgid "Cannot get PLC status - connection failed.\n"
msgstr "Невозможно получить состояние ПЛК - ошибка подключения.\n"
-#: ../ProjectController.py:902
+#: ../ProjectController.py:931 msgid "Cannot open/parse VARIABLES.csv!\n"
msgstr "Не удалось открыть/прочитать VARIABLES.csv\n"
@@ -879,31 +860,31 @@
msgid "Cannot set bit offset for non bool '{a1}' variable (ID:{a2},Idx:{a3},sIdx:{a4}))"
msgstr "Невозможно установить битовое смещение для не булевой переменной '{a1}' (ID:{a2},Idx:{a3},sIdx:{a4}))"
-#: ../dialogs/SearchInProjectDialog.py:59 ../dialogs/FindInPouDialog.py:88
+#: ../dialogs/SearchInProjectDialog.py:59 ../dialogs/FindInPouDialog.py:86 msgstr "Регистрозависимый"
-#: ../editors/Viewer.py:486
+#: ../editors/Viewer.py:545 -#: ../Beremiz_service.py:266
+#: ../Beremiz_service.py:268 msgid "Change IP of interface to bind"
msgstr "Сменить IP-адрес интерфейса для привязки сокета"
-#: ../Beremiz_service.py:265
+#: ../Beremiz_service.py:267
msgid "Change POU Type To"
msgstr "Сменить тип POU на"
-#: ../Beremiz_service.py:267
+#: ../Beremiz_service.py:269 msgid "Change Port Number"
msgstr "Сменить номер порта"
-#: ../Beremiz_service.py:268
+#: ../Beremiz_service.py:270 msgid "Change working directory"
msgstr "Сменить рабочую директорию"
@@ -911,37 +892,37 @@
msgstr "Строковые операции"
-#: ../svgui/svgui.py:125
+#: ../svgui/svgui.py:128 msgid "Choose a SVG file"
msgstr "Выберите SVG-файл"
-#: ../ProjectController.py:501
+#: ../ProjectController.py:530 msgid "Choose a directory to save project"
msgstr "Выберите директорию, чтобы сохранить проект"
-#: ../canfestival/canfestival.py:160 ../PLCOpenEditor.py:292
-#: ../PLCOpenEditor.py:324 ../PLCOpenEditor.py:373
+#: ../canfestival/canfestival.py:162 ../PLCOpenEditor.py:302 +#: ../PLCOpenEditor.py:334 ../PLCOpenEditor.py:383 -#: ../Beremiz.py:931 ../Beremiz.py:966
+#: ../BeremizIDE.py:833 ../BeremizIDE.py:868 -#: ../dialogs/BrowseValuesLibraryDialog.py:42
+#: ../dialogs/BrowseValuesLibraryDialog.py:41 msgid "Choose a value for %s:"
msgstr "Выберите значение для %s:"
-#: ../Beremiz_service.py:323
+#: ../Beremiz_service.py:325 msgid "Choose a working directory "
msgstr "Выберите рабочую директорию"
-#: ../ProjectController.py:408
+#: ../ProjectController.py:437 msgid "Chosen folder doesn't contain a program. It's not a valid project!"
msgstr "Выбранная директория не содержит программы. Это некорректный проект!"
-#: ../ProjectController.py:375
+#: ../ProjectController.py:404 msgid "Chosen folder isn't empty. You can't use it for a new project!"
msgstr "Выбранная директория не пуста и не может использоваться для нового проекта!"
@@ -953,11 +934,11 @@
-#: ../dialogs/FBDVariableDialog.py:69
+#: ../dialogs/FBDVariableDialog.py:70 -#: ../ProjectController.py:1794
+#: ../ProjectController.py:1824 @@ -965,11 +946,11 @@
msgid "Clean log messages"
-#: ../ProjectController.py:1796
+#: ../ProjectController.py:1826 msgid "Clean project build folder"
msgstr "Очистить директорию сборки проекта"
-#: ../ProjectController.py:1253
+#: ../ProjectController.py:1282 msgid "Cleaning the build directory\n"
msgstr "Очистка директории сборки\n"
@@ -977,47 +958,52 @@
-#: ../editors/Viewer.py:582
+#: ../editors/Viewer.py:641 msgid "Clear Execution Order"
msgstr "Очистить порядок исполнения"
-#: ../dialogs/SearchInProjectDialog.py:105 ../dialogs/FindInPouDialog.py:111
+#: ../dialogs/SearchInProjectDialog.py:103 ../dialogs/FindInPouDialog.py:109 -#: ../PLCOpenEditor.py:199 ../Beremiz.py:693
+#: ../BeremizIDE.py:595 ../PLCOpenEditor.py:209 msgid "Close Application"
msgstr "Закрыть приложение"
-#: ../PLCOpenEditor.py:108 ../Beremiz.py:333 ../Beremiz.py:637
+#: ../BeremizIDE.py:228 ../BeremizIDE.py:539 ../PLCOpenEditor.py:110 -#: ../PLCOpenEditor.py:106 ../Beremiz.py:331
+#: ../BeremizIDE.py:226 ../PLCOpenEditor.py:108 -#: ../editors/Viewer.py:541 ../editors/Viewer.py:2377
+#: ../editors/Viewer.py:600 ../editors/Viewer.py:2413 -#: ../editors/Viewer.py:561 ../editors/LDViewer.py:506
+#: ../editors/Viewer.py:620 ../editors/LDViewer.py:506 -#: ../dialogs/ProjectDialog.py:57
+#: ../BeremizIDE.py:276 ../BeremizIDE.py:279 ../PLCOpenEditor.py:161 +#: ../PLCOpenEditor.py:164 +msgid "Community support" +msgstr "Поддержка сообщества" +#: ../dialogs/ProjectDialog.py:60 -#: ../controls/ProjectPropertiesPanel.py:94
+#: ../controls/ProjectPropertiesPanel.py:95 msgid "Company Name (required):"
msgstr "Компания (обязательно):"
-#: ../controls/ProjectPropertiesPanel.py:95
+#: ../controls/ProjectPropertiesPanel.py:96 msgid "Company URL (optional):"
msgstr "Сайт компании (опционально):"
@@ -1028,7 +1014,7 @@
-#: ../ProjectController.py:693
+#: ../ProjectController.py:722 msgid "Compiling IEC Program into C code...\n"
msgstr "Компиляция МЭК-программы в C-код...\n"
@@ -1036,7 +1022,7 @@
-#: ../editors/ConfTreeNodeEditor.py:229
+#: ../editors/ConfTreeNodeEditor.py:230 @@ -1044,47 +1030,47 @@
msgstr "Конфигурационные переменные"
-#: ../dialogs/SearchInProjectDialog.py:39
+#: ../dialogs/SearchInProjectDialog.py:40 -#: ../PLCControler.py:97
+#: ../PLCControler.py:99 -#: ../editors/Viewer.py:307 ../editors/Viewer.py:337 ../editors/Viewer.py:359
+#: ../editors/Viewer.py:308 ../editors/Viewer.py:338 ../editors/Viewer.py:360 #: ../editors/TextViewer.py:291 ../editors/TextViewer.py:342
#: ../editors/TextViewer.py:365 ../controls/VariablePanel.py:328
msgid "Confirm or change variable name"
msgstr "Подтвердить или поменять имя переменной"
-#: ../ProjectController.py:1809
+#: ../ProjectController.py:1839 -#: ../ProjectController.py:1810
+#: ../ProjectController.py:1840 msgid "Connect to the target PLC"
msgstr "Подключиться к целевому ПЛК"
-#: ../ProjectController.py:1313
+#: ../ProjectController.py:1342 msgid "Connected to URI: %s"
msgstr "Подключен к URI: %s"
-#: ../dialogs/SFCTransitionDialog.py:76 ../editors/Viewer.py:527
-#: ../editors/Viewer.py:2370
+#: ../dialogs/SFCTransitionDialog.py:77 ../editors/Viewer.py:586 +#: ../editors/Viewer.py:2406 -#: ../dialogs/ConnectionDialog.py:52
+#: ../dialogs/ConnectionDialog.py:53 msgid "Connection Properties"
msgstr "Свойства подключения"
-#: ../ProjectController.py:1668
+#: ../ProjectController.py:1697 msgid "Connection canceled!\n"
msgstr "Подключение отменено!\n"
-#: ../ProjectController.py:1693
+#: ../ProjectController.py:1722 msgid "Connection failed to %s!\n"
msgstr "Неудачное подключение к %s!\n"
@@ -1098,15 +1084,15 @@
msgid "Connection to '%s' failed.\n"
msgstr "Неудачное подключение к %s!\n"
-#: ../dialogs/ConnectionDialog.py:64 ../editors/Viewer.py:1605
+#: ../dialogs/ConnectionDialog.py:65 ../editors/Viewer.py:1641 -#: ../dialogs/SFCStepDialog.py:65
+#: ../dialogs/SFCStepDialog.py:66
@@ -1114,15 +1100,15 @@
-#: ../editors/Viewer.py:537 ../editors/Viewer.py:2373
+#: ../editors/Viewer.py:596 ../editors/Viewer.py:2409 -#: ../controls/ProjectPropertiesPanel.py:197
+#: ../controls/ProjectPropertiesPanel.py:198 msgid "Content Description (optional):"
msgstr "Описание содержимого (опционально):"
-#: ../dialogs/ConnectionDialog.py:65 ../editors/Viewer.py:1606
+#: ../dialogs/ConnectionDialog.py:66 ../editors/Viewer.py:1642 @@ -1142,12 +1128,12 @@
msgid "Conversion to time-of-day"
msgstr "Преобразование во время суток"
-#: ../editors/Viewer.py:597 ../controls/LogViewer.py:693 ../IDEFrame.py:370
+#: ../editors/Viewer.py:656 ../controls/LogViewer.py:704 ../IDEFrame.py:370
@@ -1159,9 +1145,6 @@
msgid "Copy file from right folder to left"
msgstr "Скопировать файл с правой директории в левую"
#: ../plcopen/iec_std.csv:28
@@ -1175,7 +1158,7 @@
"Невозможно добавить дочерний элемент \"{a1}\", тип {a2}:\n"
-#: ../py_ext/PythonFileCTNMixin.py:77
+#: ../py_ext/PythonFileCTNMixin.py:78 msgid "Couldn't import old %s file."
msgstr "Невозможно импортировать старый файл %s."
@@ -1198,27 +1181,27 @@
"Невозможно загрузить параметры confnode {a1}:\n"
-#: ../PLCControler.py:946
+#: ../PLCControler.py:948 msgid "Couldn't paste non-POU object."
msgstr "Невозможно вставить не-POU."
-#: ../ProjectController.py:1610
+#: ../ProjectController.py:1639 msgid "Couldn't start PLC !\n"
msgstr "Невозможно запустить ПЛК!\n"
-#: ../ProjectController.py:1618
+#: ../ProjectController.py:1647 msgid "Couldn't stop PLC !\n"
msgstr "Невозможно остановить ПЛК!\n"
-#: ../ProjectController.py:1582
+#: ../ProjectController.py:1611 msgid "Couldn't stop debugger.\n"
msgstr "Невозможно остановить отладчик.\n"
-#: ../dialogs/PouDialog.py:45
+#: ../dialogs/PouDialog.py:46 msgstr "Создать новый POU"
@@ -1282,7 +1265,7 @@
msgid "Create a new step"
msgstr "Создать новый шаг"
-#: ../dialogs/PouTransitionDialog.py:47 ../IDEFrame.py:156
+#: ../dialogs/PouTransitionDialog.py:42 ../IDEFrame.py:156 msgid "Create a new transition"
msgstr "Создать новый переход"
@@ -1294,11 +1277,11 @@
-#: ../Beremiz_service.py:432
+#: ../Beremiz_service.py:434 msgid "Current working directory :"
msgstr "Текущая рабочая директория :"
-#: ../editors/Viewer.py:596 ../IDEFrame.py:368 ../IDEFrame.py:424
+#: ../editors/Viewer.py:655 ../IDEFrame.py:368 ../IDEFrame.py:424 @@ -1322,11 +1305,11 @@
-#: ../dialogs/SearchInProjectDialog.py:35
+#: ../dialogs/SearchInProjectDialog.py:36 -#: ../PLCControler.py:96
+#: ../PLCControler.py:98 @@ -1347,14 +1330,11 @@
-msgid "Datetime, current or relative to PDT"
-msgstr "Текущие дата и время, абсолютные или относительные от PDT"
-#: ../dialogs/DurationEditorDialog.py:43
+#: ../dialogs/DurationEditorDialog.py:44 -#: ../ProjectController.py:1715
+#: ../ProjectController.py:1744 msgid "Debug does not match PLC - stop/transfert/start to re-enable\n"
msgstr "Отлаживаемая программа не соответствует программе в ПЛК - остановите/загрузите/запустите, чтобы разрешить отладку\n"
@@ -1362,17 +1342,17 @@
msgstr "Отладка экземпляра"
-#: ../editors/Viewer.py:1127 ../editors/Viewer.py:3664
+#: ../editors/Viewer.py:448 -#: ../ProjectController.py:1371
+#: ../ProjectController.py:1400 msgid "Debug: Unknown variable '%s'\n"
msgstr "Отладка: неизвестная переменная '%s'\n"
-#: ../ProjectController.py:1369
+#: ../ProjectController.py:1398 msgid "Debug: Unsupported type to debug '%s'\n"
msgstr "Отладка: неподдерживамый отладкой тип '%s'\n"
@@ -1381,23 +1361,23 @@
-#: ../ProjectController.py:1551
+#: ../ProjectController.py:1580 msgid "Debugger disabled\n"
msgstr "Отладчик запрещен\n"
-#: ../ProjectController.py:1712
+#: ../ProjectController.py:1741 msgstr "Отладчик готов\n"
-#: ../ProjectController.py:1584
+#: ../ProjectController.py:1613 msgid "Debugger stopped.\n"
msgstr "Отладчик остановлен.\n"
-#: ../editors/Viewer.py:572 ../Beremiz.py:1064 ../IDEFrame.py:1958
+#: ../BeremizIDE.py:967 ../editors/Viewer.py:631 ../IDEFrame.py:1962 -#: ../editors/Viewer.py:514
+#: ../editors/Viewer.py:573 msgid "Delete Divergence Branch"
@@ -1405,7 +1385,7 @@
-#: ../editors/Viewer.py:501
+#: ../editors/Viewer.py:560 msgid "Delete Wire Segment"
msgstr "Удалить сегмент цепи"
@@ -1421,25 +1401,23 @@
msgstr "Механизм создания типа:"
-msgid "Derivative time constant"
-msgstr "Постоянная времени дифференцирования"
+#: ../editors/CodeFileEditor.py:744 #: ../controls/VariablePanel.py:432
-msgid "Differentiated output"
-msgstr "Дифференцированный выход"
-#: ../dialogs/ArrayTypeDialog.py:61 ../editors/DataTypeEditor.py:321
+#: ../dialogs/ArrayTypeDialog.py:60 ../editors/DataTypeEditor.py:321 -#: ../dialogs/FindInPouDialog.py:68
+#: ../dialogs/FindInPouDialog.py:66 -#: ../dialogs/BrowseLocationsDialog.py:90
+#: ../dialogs/BrowseLocationsDialog.py:91 @@ -1450,19 +1428,19 @@
msgid "Disable_Extensions"
msgstr "Запретить расширения"
-#: ../ProjectController.py:1818
+#: ../ProjectController.py:1848 -#: ../ProjectController.py:1820
+#: ../ProjectController.py:1850 msgid "Disconnect from PLC"
msgstr "Отключиться от ПЛК"
-#: ../ProjectController.py:1323
+#: ../ProjectController.py:1352 -#: ../editors/Viewer.py:556 ../editors/Viewer.py:2365
+#: ../editors/Viewer.py:615 ../editors/Viewer.py:2401 @@ -1479,19 +1457,19 @@
-#: ../PLCOpenEditor.py:328
+#: ../PLCOpenEditor.py:338 -#: ../dialogs/ActionBlockDialog.py:38
+#: ../dialogs/ActionBlockDialog.py:39 -#: ../canfestival/canfestival.py:163
+#: ../canfestival/canfestival.py:165 msgid "EDS files (*.eds)|*.eds|All files|*.*"
msgstr "Файлы EDS (*.eds)|*.eds|All files|*.*"
-#: ../editors/Viewer.py:570
+#: ../editors/Viewer.py:629 msgstr "Редактировать блок"
@@ -1507,11 +1485,11 @@
msgstr "Редактировать длительность"
-#: ../dialogs/SFCStepDialog.py:50
+#: ../dialogs/SFCStepDialog.py:51 msgstr "Редактировать шаг"
-#: ../wxglade_hmi/wxglade_hmi.py:36
+#: ../wxglade_hmi/wxglade_hmi.py:38 msgid "Edit a WxWidgets GUI with WXGlade"
msgstr "Редактировать WxWidgets GUI с помощью WXGlade"
@@ -1519,11 +1497,11 @@
msgid "Edit action block properties"
msgstr "Редактировать свойства блока действия"
-#: ../dialogs/ArrayTypeDialog.py:45
+#: ../dialogs/ArrayTypeDialog.py:44 msgid "Edit array type properties"
msgstr "Редактировать свойства массива"
-#: ../editors/Viewer.py:2586 ../editors/Viewer.py:3015
+#: ../editors/Viewer.py:2624 ../editors/Viewer.py:3053 msgstr "Редактировать комментарий"
@@ -1535,11 +1513,11 @@
msgstr "Редактировать элемент"
-#: ../editors/Viewer.py:2974
+#: ../editors/Viewer.py:3012 msgstr "Редактирование безусловного перехода"
-#: ../ProjectController.py:1832
+#: ../ProjectController.py:1862 msgid "Edit raw IEC code added to code generated by PLCGenerator"
msgstr "Редактировать МЭК-код добавленный к коду сгенерированному PLCGenerator"
@@ -1547,7 +1525,7 @@
msgstr "Редактировать имя шага"
-#: ../dialogs/SFCTransitionDialog.py:51
+#: ../dialogs/SFCTransitionDialog.py:52 msgstr "Редактировать переход"
@@ -1555,18 +1533,15 @@
msgstr "Редактор панели инструментов"
-#: ../ProjectController.py:1216
+#: ../ProjectController.py:1245 msgstr "Редактор выделения"
-msgid "Elapsed time of ramp"
-msgstr "Прошедшее время нарастания"
#: ../editors/DataTypeEditor.py:348
-#: ../ProjectController.py:1321
+#: ../ProjectController.py:1350 @@ -1577,15 +1552,15 @@
-#: ../Beremiz_service.py:331
+#: ../Beremiz_service.py:333 -#: ../Beremiz_service.py:316
+#: ../Beremiz_service.py:318 msgid "Enter a port number "
msgstr "Введите номер порта"
-#: ../Beremiz_service.py:307
+#: ../Beremiz_service.py:309 msgid "Enter the IP of the interface to bind"
msgstr "Введите IP-адрес используемого интерфейса"
@@ -1597,45 +1572,44 @@
-#: ../dialogs/ForceVariableDialog.py:179
+#: ../BeremizIDE.py:1106 ../dialogs/ForceVariableDialog.py:197 #: ../dialogs/SearchInProjectDialog.py:168 ../dialogs/SFCStepNameDialog.py:60
#: ../dialogs/DurationEditorDialog.py:121
-#: ../dialogs/DurationEditorDialog.py:163 ../dialogs/PouTransitionDialog.py:112
-#: ../dialogs/BlockPreviewDialog.py:236 ../dialogs/ProjectDialog.py:71
+#: ../dialogs/DurationEditorDialog.py:163 ../dialogs/PouTransitionDialog.py:107 +#: ../dialogs/BlockPreviewDialog.py:237 ../dialogs/ProjectDialog.py:74 #: ../dialogs/ArrayTypeDialog.py:97 ../dialogs/ArrayTypeDialog.py:103
-#: ../dialogs/PouNameDialog.py:54 ../dialogs/BrowseLocationsDialog.py: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
+#: ../dialogs/PouNameDialog.py:54 ../dialogs/BrowseLocationsDialog.py:218 +#: ../dialogs/BrowseValuesLibraryDialog.py:83 ../dialogs/PouActionDialog.py:105 +#: ../dialogs/PouDialog.py:134 ../PLCOpenEditor.py:345 ../PLCOpenEditor.py:350 +#: ../PLCOpenEditor.py:430 ../PLCOpenEditor.py:440 +#: ../editors/ResourceEditor.py:436 ../editors/Viewer.py:424 #: ../editors/LDViewer.py:666 ../editors/LDViewer.py:882
#: ../editors/LDViewer.py:886 ../editors/DataTypeEditor.py:550
-#: ../editors/DataTypeEditor.py:555 ../editors/DataTypeEditor.py: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
+#: ../editors/DataTypeEditor.py:555 ../editors/DataTypeEditor.py:574 +#: ../editors/DataTypeEditor.py:743 ../editors/DataTypeEditor.py:750 +#: ../editors/TextViewer.py:389 ../editors/CodeFileEditor.py:767 +#: ../ProjectController.py:372 ../ProjectController.py:500 +#: ../ProjectController.py:507 ../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
+#: ../controls/VariablePanel.py:402 ../controls/VariablePanel.py:759 +#: ../IDEFrame.py:1007 ../IDEFrame.py:1617 ../IDEFrame.py:1658 +#: ../IDEFrame.py:1663 ../IDEFrame.py:1677 ../IDEFrame.py:1682 +#: ../Beremiz_service.py:213 -#: ../ProjectController.py:748
+#: ../ProjectController.py:777 msgid "Error : At least one configuration and one resource must be declared in PLC !\n"
msgstr "Ошибка: Как минимум одна конфигурация и один ресурс должны быть задекларированы в ПЛК!\n"
-#: ../ProjectController.py:740
+#: ../ProjectController.py:769 msgid "Error : IEC to C compiler returned %d\n"
msgstr "Ошибка: компилятор МЭК в C вернул код ошибки %d\n"
-#: ../ProjectController.py:671
+#: ../ProjectController.py:700 "Error in ST/IL/SFC code generator :\n"
@@ -1647,28 +1621,28 @@
msgid "Error while saving \"%s\"\n"
msgstr "Ошибка во время сохранения \"%s\"\n"
-#: ../canfestival/canfestival.py:168
+#: ../canfestival/canfestival.py:170 msgid "Error: Export slave failed\n"
msgstr "Ошибка: неудачный экспорт ведомого\n"
-#: ../canfestival/canfestival.py:369
+#: ../canfestival/canfestival.py:371 msgid "Error: No Master generated\n"
msgstr "Ошибка: мастер не сгенерирован\n"
-#: ../canfestival/canfestival.py:364
+#: ../canfestival/canfestival.py:366 msgid "Error: No PLC built\n"
msgstr "Ошибка: ПЛК не собран\n"
-#: ../ProjectController.py:1687
+#: ../ProjectController.py:1716 msgid "Exception while connecting %s!\n"
msgstr "Исключение во время подключения %s!\n"
-#: ../dialogs/FBDBlockDialog.py:117
+#: ../dialogs/FBDBlockDialog.py:120 msgid "Execution Control:"
msgstr "Управление исполнением:"
-#: ../dialogs/FBDVariableDialog.py:79 ../dialogs/FBDBlockDialog.py:105
+#: ../dialogs/FBDVariableDialog.py:80 ../dialogs/FBDBlockDialog.py:108 msgstr "Порядок исполнения:"
@@ -1684,7 +1658,7 @@
msgstr "Взятие экспоненты"
-#: ../canfestival/canfestival.py:174
+#: ../canfestival/canfestival.py:176 msgid "Export CanOpen slave to EDS file"
msgstr "Экспортировать CanOpen ведомое устройство в EDS файл"
@@ -1692,11 +1666,11 @@
msgid "Export graph values to clipboard"
msgstr "Экспортировать график значений в буфер обмена"
-#: ../canfestival/canfestival.py:173
+#: ../canfestival/canfestival.py:175 msgstr "Экспортировать ведомое устройство"
-#: ../dialogs/FBDVariableDialog.py:89
+#: ../dialogs/FBDVariableDialog.py:90 @@ -1704,34 +1678,28 @@
-#: ../ProjectController.py:761
+#: ../ProjectController.py:790 msgid "Extracting Located Variables...\n"
msgstr "Экспорт локальных переменных...\n"
-msgid "FB for derivative term"
-msgstr "ФБ дифференцирования"
-msgid "FB for integral term"
-msgstr "ФД интегрирования"
-#: ../dialogs/PouTransitionDialog.py:40 ../dialogs/PouActionDialog.py:31
-#: ../dialogs/PouDialog.py:36 ../controls/ProjectPropertiesPanel.py:143
+#: ../dialogs/PouTransitionDialog.py:36 ../dialogs/PouActionDialog.py:32 +#: ../dialogs/PouDialog.py:37 ../controls/ProjectPropertiesPanel.py:144 -#: ../ProjectController.py:1750
+#: ../ProjectController.py:1779 msgid "Failed : Must build before transfer.\n"
msgstr "Ошибка: необходима сборка перед передачей.\n"
-#: ../dialogs/LDElementDialog.py:77 ../editors/Viewer.py:462
+#: ../dialogs/LDElementDialog.py:77 ../editors/Viewer.py:521 -#: ../ProjectController.py:1029
+#: ../ProjectController.py:1058 msgid "Fatal : cannot get builder.\n"
msgstr "Ошибка: невозможно получить сборщик.\n"
@@ -1751,8 +1719,8 @@
msgid "File '%s' already exists!"
msgstr "Файл '%s' уже существует!"
-#: ../dialogs/SearchInProjectDialog.py:100 ../dialogs/FindInPouDialog.py:36
-#: ../dialogs/FindInPouDialog.py:106 ../IDEFrame.py:375
+#: ../dialogs/SearchInProjectDialog.py:98 ../dialogs/FindInPouDialog.py:37 +#: ../dialogs/FindInPouDialog.py:104 ../IDEFrame.py:375 @@ -1768,7 +1736,7 @@
-#: ../dialogs/FindInPouDialog.py:57
+#: ../dialogs/FindInPouDialog.py:55 @@ -1776,7 +1744,7 @@
msgid "Force runtime reload\n"
msgstr "Принудительный перезапуск системы исполнения\n"
-#: ../editors/Viewer.py:1564
+#: ../editors/Viewer.py:1600 msgstr "Форсировать значение"
@@ -1784,27 +1752,27 @@
msgid "Forcing Variable Value"
msgstr "Форсировать значение переменной"
-#: ../dialogs/SFCTransitionDialog.py:179 ../dialogs/PouTransitionDialog.py:102
-#: ../dialogs/ProjectDialog.py:70 ../dialogs/PouActionDialog.py:94
+#: ../dialogs/SFCTransitionDialog.py:182 ../dialogs/PouTransitionDialog.py:97 +#: ../dialogs/ProjectDialog.py:73 ../dialogs/PouActionDialog.py:95 #: ../dialogs/PouDialog.py:116
msgid "Form isn't complete. %s must be filled!"
msgstr "Форма заполнена неполностью. %s должен быть заполнен!"
-#: ../dialogs/SFCStepDialog.py:144 ../dialogs/FBDBlockDialog.py:232
-#: ../dialogs/ConnectionDialog.py:160
+#: ../dialogs/SFCStepDialog.py:147 ../dialogs/FBDBlockDialog.py:236 +#: ../dialogs/ConnectionDialog.py:163 msgid "Form isn't complete. Name must be filled!"
msgstr "Форма заполнена неполностью. Имя должно быть заполнено!"
-#: ../dialogs/FBDBlockDialog.py:228
+#: ../dialogs/FBDBlockDialog.py:232 msgid "Form isn't complete. Valid block type must be selected!"
msgstr "Форма заполнена неполностью. Должен быть выбран корректный тип блока!"
-#: ../dialogs/FindInPouDialog.py:74
+#: ../dialogs/FindInPouDialog.py:72 -#: ../dialogs/SearchInProjectDialog.py:36 ../IDEFrame.py:1745
+#: ../dialogs/SearchInProjectDialog.py:37 ../IDEFrame.py:1749 @@ -1812,37 +1780,37 @@
msgstr "Функциональный &блок"
-#: ../dialogs/SearchInProjectDialog.py:37 ../IDEFrame.py:1744
+#: ../dialogs/SearchInProjectDialog.py:38 ../IDEFrame.py:1748 msgstr "Функциональный блок"
-#: ../controls/VariablePanel.py:837
+#: ../controls/VariablePanel.py:854 msgid "Function Block Types"
msgstr "Типы функциональных блоков"
-#: ../PLCControler.py:95
+#: ../PLCControler.py:97 msgstr "Функциональные блоки"
-#: ../editors/Viewer.py:248
+#: ../editors/Viewer.py:249 msgid "Function Blocks can't be used in Functions!"
msgstr "Функциональные блоки не могут использоваться в функциях!"
-#: ../PLCControler.py:2337
+#: ../PLCControler.py:2343 msgid "FunctionBlock \"%s\" can't be pasted in a Function!!!"
msgstr "Функциональный блок \"%s\" не может быть вставлен в функцию!!!"
-#: ../PLCControler.py:95
+#: ../PLCControler.py:97 -#: ../PLCOpenEditor.py:115
+#: ../PLCOpenEditor.py:117 msgstr "Сгенерировать программу"
-#: ../ProjectController.py:662
+#: ../ProjectController.py:691 msgid "Generating SoftPLC IEC-61131 ST/IL/SFC code...\n"
msgstr "Генерация МЭК-61131 ST/IL/SFC кода ПЛК...\n"
@@ -1857,7 +1825,7 @@
msgid "Go to current value"
msgstr "Перейти к текущему значению"
-#: ../controls/ProjectPropertiesPanel.py:173
+#: ../controls/ProjectPropertiesPanel.py:174 @@ -1869,15 +1837,15 @@
msgid "Greater than or equal to"
msgstr "Больше или равно"
-#: ../controls/ProjectPropertiesPanel.py:134
+#: ../controls/ProjectPropertiesPanel.py:135 -#: ../runtime/NevowServer.py:181
+#: ../runtime/NevowServer.py:182 msgid "HTTP interface port :"
msgstr "Порт HTTP-интерфейса :"
-#: ../controls/ProjectPropertiesPanel.py:120
+#: ../controls/ProjectPropertiesPanel.py:121 @@ -1885,18 +1853,19 @@
msgstr "Домашняя директория:"
-#: ../controls/ProjectPropertiesPanel.py:150
+#: ../controls/ProjectPropertiesPanel.py:151 -#: ../dialogs/DurationEditorDialog.py:44
+#: ../dialogs/DurationEditorDialog.py:45 -#: ../dialogs/PouActionDialog.py:31 ../dialogs/PouDialog.py:36
+#: ../dialogs/PouTransitionDialog.py:36 ../dialogs/PouActionDialog.py:32 +#: ../dialogs/PouDialog.py:37 @@ -1904,20 +1873,20 @@
-#: ../Beremiz_service.py:308 ../Beremiz_service.py:309
+#: ../Beremiz_service.py:310 ../Beremiz_service.py:311 msgstr "Неверный IP-адрес"
-#: ../svgui/svgui.py:42 ../svgui/svgui.py:43
+#: ../svgui/svgui.py:44 ../svgui/svgui.py:45 -#: ../dialogs/FBDVariableDialog.py:38 ../editors/Viewer.py:1591
+#: ../dialogs/FBDVariableDialog.py:39 ../editors/Viewer.py:1627 #: ../controls/VariablePanel.py:71
-#: ../editors/Viewer.py:1110
+#: ../editors/Viewer.py:431 @@ -1936,11 +1905,15 @@
msgid "Incompatible size of data between \"{a1}\" and \"{a2}\""
msgstr "\"{a1}\" и \"{a2}\" имеют несовместимый размер данных"
-#: ../dialogs/ActionBlockDialog.py:38
+#: ../dialogs/ActionBlockDialog.py:39 -#: ../editors/Viewer.py:552
+#: ../editors/CodeFileEditor.py:744 +msgstr "Исходное значение" +#: ../editors/Viewer.py:611 @@ -1954,32 +1927,23 @@
msgstr "Исходное значение:"
-msgstr "Исходное значение"
-#: ../dialogs/SFCTransitionDialog.py:75 ../dialogs/ActionBlockDialog.py:42
+#: ../dialogs/SFCTransitionDialog.py:76 ../dialogs/ActionBlockDialog.py:43 -#: ../dialogs/SFCStepDialog.py:70 ../dialogs/FBDVariableDialog.py:37
-#: ../dialogs/BrowseLocationsDialog.py:40 ../editors/Viewer.py:289
-#: ../editors/Viewer.py:1589 ../editors/TextViewer.py:307
+#: ../dialogs/SFCStepDialog.py:71 ../dialogs/FBDVariableDialog.py:38 +#: ../dialogs/BrowseLocationsDialog.py:41 ../editors/Viewer.py:290 +#: ../editors/Viewer.py:1625 ../editors/TextViewer.py:307 #: ../controls/LocationCellEditor.py:98 ../controls/VariablePanel.py:71
#: ../controls/VariablePanel.py:291 ../controls/VariablePanel.py:351
-msgid "Input to be differentiated"
-msgstr "Вход для дифференцирования"
-msgstr "Входная переменная"
-#: ../dialogs/FBDBlockDialog.py:93
+#: ../dialogs/FBDBlockDialog.py:96 @@ -1987,7 +1951,7 @@
msgstr "Вставка подстроки"
-#: ../plcopen/plcopen.py:1691
+#: ../plcopen/plcopen.py:1696 msgid "Instance with id %d doesn't exist!"
msgstr "Экземпляр с id %d не существует!"
@@ -1996,9 +1960,6 @@
-msgid "Integrated output"
-msgstr "Интегрированный выход"
#: ../controls/VariablePanel.py:70
@@ -2011,7 +1972,7 @@
-#: ../PLCControler.py:2325
+#: ../PLCControler.py:2331 msgid "Invalid plcopen element(s)!!!"
msgstr "Некорректный PlcOpen элемент(ы)!!!"
@@ -2037,12 +1998,12 @@
msgid "Invalid value \"%s\" for variable grid element"
msgstr "Неверное значение \"%s\" для значения размещения переменной"
-#: ../editors/Viewer.py:233 ../editors/Viewer.py:236
+#: ../editors/Viewer.py:234 ../editors/Viewer.py:237 msgid "Invalid value \"%s\" for viewer block"
msgstr "Неверное значение \"%s\" для вставки в редактор"
-#: ../dialogs/ForceVariableDialog.py:177
+#: ../dialogs/ForceVariableDialog.py:195 msgid "Invalid value \"{a1}\" for \"{a2}\" variable!"
msgstr "Неверное значение \"{a1}\" для переменной \"{a2}\"!"
@@ -2055,12 +2016,12 @@
"Необходимо ввести числовое значение."
-#: ../editors/Viewer.py:557 ../editors/Viewer.py:2354
+#: ../editors/Viewer.py:616 ../editors/Viewer.py:2390 msgstr "Безусловный переход"
-#: ../dialogs/PouTransitionDialog.py:40 ../dialogs/PouActionDialog.py:31
-#: ../dialogs/PouDialog.py:36 ../controls/ProjectPropertiesPanel.py:143
+#: ../dialogs/PouTransitionDialog.py:36 ../dialogs/PouActionDialog.py:32 +#: ../dialogs/PouDialog.py:37 ../controls/ProjectPropertiesPanel.py:144 @@ -2072,37 +2033,37 @@
msgid "Ladder element with id %d is on more than one rung."
msgstr "Элемент лестничной диаграммы с id %d более чем на одной ступени."
-#: ../dialogs/PouTransitionDialog.py:91 ../dialogs/PouActionDialog.py:83
+#: ../dialogs/PouTransitionDialog.py:86 ../dialogs/PouActionDialog.py:84 #: ../dialogs/PouDialog.py:104
-#: ../controls/ProjectPropertiesPanel.py:186
+#: ../controls/ProjectPropertiesPanel.py:187 msgid "Language (optional):"
msgstr "Язык (опционально):"
-#: ../dialogs/PouTransitionDialog.py:65 ../dialogs/PouActionDialog.py:56
+#: ../dialogs/PouTransitionDialog.py:60 ../dialogs/PouActionDialog.py:56 #: ../dialogs/PouDialog.py:73
-#: ../ProjectController.py:1756
+#: ../ProjectController.py:1785 msgid "Latest build already matches current target. Transfering anyway...\n"
msgstr "Загружаемая программа совпадает с текущий программой в целевом ПЛК. Загрузка продолжена...\n"
-#: ../Beremiz_service.py:271
+#: ../Beremiz_service.py:273 msgid "Launch WX GUI inspector"
msgstr "Запустить WX GUI Inspector"
-#: ../Beremiz_service.py:270
+#: ../Beremiz_service.py:272 msgid "Launch a live Python shell"
msgstr "Запустить консоль Python"
-#: ../editors/Viewer.py:485
+#: ../editors/Viewer.py:544 -#: ../dialogs/LDPowerRailDialog.py:62
+#: ../dialogs/LDPowerRailDialog.py:63 msgstr "Левая шина питания"
@@ -2134,34 +2095,34 @@
-#: ../targets/toolchain_gcc.py:166
+#: ../targets/toolchain_gcc.py:202 -#: ../dialogs/DiscoveryDialog.py:111 ../controls/VariablePanel.py:72
+#: ../dialogs/DiscoveryDialog.py:112 ../controls/VariablePanel.py:72 -#: ../canfestival/canfestival.py:346
+#: ../canfestival/canfestival.py:348 msgstr "Локальные записи"
-#: ../ProjectController.py:1662
+#: ../ProjectController.py:1691 msgid "Local service discovery failed!\n"
msgstr "Локальный сервис не найден!\n"
#: ../controls/VariablePanel.py:53
#: ../dialogs/BrowseLocationsDialog.py:72
msgid "Locations available:"
-msgstr "Доступные размещения:"
+msgstr "Доступные адреса:" #: ../plcopen/iec_std.csv:25
msgid "Logarithm to base 10"
@@ -2172,9 +2133,6 @@
msgid "MDNS resolution failure for '%s'\n"
msgstr "MDNS разрешение неудачно для '%s'\n"
-msgid "Manual output adjustment - Typically from transfer station"
#: ../canfestival/SlaveEditor.py:64 ../canfestival/NetworkEditor.py:85
msgstr "Отображение переменной"
@@ -2200,7 +2158,7 @@
-#: ../dialogs/BrowseLocationsDialog.py:42 ../editors/Viewer.py:289
+#: ../dialogs/BrowseLocationsDialog.py:43 ../editors/Viewer.py:290 #: ../editors/TextViewer.py:307 ../controls/LocationCellEditor.py:98
#: ../controls/VariablePanel.py:291 ../controls/VariablePanel.py:351
@@ -2210,15 +2168,15 @@
-#: ../dialogs/DurationEditorDialog.py:48
+#: ../dialogs/DurationEditorDialog.py:49 -#: ../editors/Viewer.py:490
+#: ../editors/Viewer.py:549 -#: ../dialogs/DurationEditorDialog.py:47
+#: ../dialogs/DurationEditorDialog.py:48 @@ -2230,11 +2188,11 @@
-#: ../dialogs/DurationEditorDialog.py:45
+#: ../dialogs/DurationEditorDialog.py:46 -#: ../controls/ProjectPropertiesPanel.py:210
+#: ../controls/ProjectPropertiesPanel.py:211 @@ -2291,11 +2249,11 @@
msgstr "Переместить выше"
-#: ../editors/CodeFileEditor.py:661 ../controls/VariablePanel.py:453
+#: ../editors/CodeFileEditor.py:663 ../controls/VariablePanel.py:453 msgid "Move variable down"
msgstr "Переместить переменную ниже"
-#: ../editors/CodeFileEditor.py:660 ../controls/VariablePanel.py:452
+#: ../editors/CodeFileEditor.py:662 ../controls/VariablePanel.py:452 msgstr "Переместить переменную выше"
@@ -2315,21 +2273,18 @@
#: ../editors/ResourceEditor.py:68 ../editors/ResourceEditor.py:83
-#: ../editors/DataTypeEditor.py:50 ../controls/VariablePanel.py:53
-#: ../controls/VariablePanel.py:54
+#: ../editors/DataTypeEditor.py:50 ../editors/CodeFileEditor.py:744 +#: ../controls/VariablePanel.py:53 ../controls/VariablePanel.py:54 -#: ../Beremiz_service.py:332
+#: ../Beremiz_service.py:334 msgid "Name must not be null!"
msgstr "Имя не может быть null!"
-#: ../dialogs/SFCStepDialog.py:56 ../dialogs/FBDBlockDialog.py:83
-#: ../dialogs/ConnectionDialog.py:75
+#: ../dialogs/SFCStepDialog.py:57 ../dialogs/FBDBlockDialog.py:86 +#: ../dialogs/ConnectionDialog.py:76 @@ -2337,20 +2292,20 @@
msgid "Natural logarithm"
msgstr "Натуральный логарифм"
-#: ../dialogs/LDElementDialog.py:75 ../editors/Viewer.py:460
+#: ../dialogs/LDElementDialog.py:75 ../editors/Viewer.py:519 -#: ../Beremiz_service.py:578
+#: ../Beremiz_service.py:580 msgid "Nevow Web service failed. "
msgstr "Ошибка Web сервиса Nevow. "
-#: ../Beremiz_service.py:554
+#: ../Beremiz_service.py:556 msgid "Nevow/Athena import failed :"
msgstr "Ошибка импорта Nevow/Athena :"
-#: ../PLCOpenEditor.py:102 ../PLCOpenEditor.py:144 ../Beremiz.py:321
+#: ../BeremizIDE.py:216 ../BeremizIDE.py:251 ../PLCOpenEditor.py:104 +#: ../PLCOpenEditor.py:146 @@ -2358,11 +2313,11 @@
-#: ../editors/Viewer.py:459
+#: ../editors/Viewer.py:518 msgstr "Нет модификатора"
-#: ../ProjectController.py:1784
+#: ../ProjectController.py:1814 msgid "No PLC to transfer (did build succeed ?)\n"
msgstr "Нет ПЛК для передачи (была сборка успешна?)\n"
@@ -2376,7 +2331,7 @@
msgid "No connector found corresponding to \"{a1}\" continuation in \"{a2}\" POU"
msgstr "Не найден коннектор, соответствующий продолжению цепи \"{a1}\" в POU \"{a2}\""
-#: ../PLCOpenEditor.py:347
+#: ../PLCOpenEditor.py:357 "No documentation available.\n"
@@ -2398,7 +2353,7 @@
msgid "No search results available."
msgstr "Ничего не найдено."
-#: ../svgui/svgui.py:131
+#: ../svgui/svgui.py:134 msgid "No such SVG file: %s\n"
msgstr "Нет такого SVG файла: %s\n"
@@ -2455,40 +2410,44 @@
msgstr "Математические функции"
-#: ../dialogs/SearchInProjectDialog.py:86
+#: ../editors/CodeFileEditor.py:744 +#: ../dialogs/SearchInProjectDialog.py:84 -#: ../PLCOpenEditor.py:104 ../PLCOpenEditor.py:145 ../Beremiz.py:323
+#: ../BeremizIDE.py:218 ../BeremizIDE.py:252 ../PLCOpenEditor.py:106 +#: ../PLCOpenEditor.py:147 -#: ../svgui/svgui.py:140
+#: ../svgui/svgui.py:143 msgstr "Открыть Inkscape"
msgid "Open Source framework for automation, implemented IEC 61131 IDE with constantly growing set of extensions and flexible PLC runtime."
msgstr "Свободное программное обеспечение для промышленной автоматизации, состоящие из среды разработки программ по стандарту МЭК 61131 с постоянно расширяющимся набором плагинов и гибкой системой исполнения для ПЛК."
-#: ../ProjectController.py:1836
+#: ../ProjectController.py:1866 msgid "Open a file explorer to manage project files"
msgstr "Открыть файловый менеджер для просмотра файлов проекта"
-#: ../wxglade_hmi/wxglade_hmi.py:138
+#: ../wxglade_hmi/wxglade_hmi.py:155 #: ../controls/VariablePanel.py:53 ../controls/VariablePanel.py:54
-#: ../dialogs/FindInPouDialog.py:83
+#: ../dialogs/FindInPouDialog.py:81 ../editors/CodeFileEditor.py:744 -#: ../controls/ProjectPropertiesPanel.py:97
+#: ../controls/ProjectPropertiesPanel.py:98 msgid "Organization (optional):"
msgstr "Организация (опционально):"
@@ -2496,17 +2455,14 @@
-#: ../dialogs/SFCStepDialog.py:71 ../dialogs/FBDVariableDialog.py:39
-#: ../dialogs/BrowseLocationsDialog.py:41 ../editors/Viewer.py:289
-#: ../editors/Viewer.py:1590 ../editors/TextViewer.py:307
+#: ../dialogs/SFCStepDialog.py:72 ../dialogs/FBDVariableDialog.py:40 +#: ../dialogs/BrowseLocationsDialog.py:42 ../editors/Viewer.py:290 +#: ../editors/Viewer.py:1626 ../editors/TextViewer.py:307 #: ../controls/LocationCellEditor.py:98 ../controls/VariablePanel.py:71
#: ../controls/VariablePanel.py:291 ../controls/VariablePanel.py:351
-msgid "Overriding reset"
-msgstr "Сброс интегратора"
#: ../canfestival/SlaveEditor.py:63 ../canfestival/NetworkEditor.py:84
@@ -2515,30 +2471,27 @@
-#: ../targets/toolchain_gcc.py:131
+#: ../targets/toolchain_gcc.py:167
-#: ../ProjectController.py:1013
+#: ../ProjectController.py:1042 msgid "PLC code generation failed !\n"
msgstr "Неудачная генерация кода!\n"
-#: ../Beremiz_service.py:295
+#: ../Beremiz_service.py:297 msgid "PLC is empty or already started."
msgstr "В ПЛК нет программы или он уже запущен."
-#: ../Beremiz_service.py:302
+#: ../Beremiz_service.py:304 msgid "PLC is not started."
-#: ../PLCOpenEditor.py:196 ../PLCOpenEditor.py:309
+#: ../PLCOpenEditor.py:206 ../PLCOpenEditor.py:319 "PLC syntax error at line {a1}:\n"
@@ -2547,15 +2500,15 @@
"Синтаксическая ошибка в строке {a1}:\n"
-#: ../PLCOpenEditor.py:292 ../PLCOpenEditor.py:373
+#: ../PLCOpenEditor.py:302 ../PLCOpenEditor.py:383 msgid "PLCOpen files (*.xml)|*.xml|All files|*.*"
msgstr "PLCOpen файлы (*.xml)|*.xml|All files|*.*"
-#: ../PLCOpenEditor.py:152 ../PLCOpenEditor.py:209
+#: ../PLCOpenEditor.py:154 ../PLCOpenEditor.py:219 -#: ../PLCOpenEditor.py:355
+#: ../PLCOpenEditor.py:365 "PLCOpenEditor is part of Beremiz project.\n"
@@ -2585,9 +2538,6 @@
-msgstr "Ошибка, PV - SP"
#: ../connectors/PYRO/__init__.py:45
msgid "PYRO connecting to URI : %s\n"
@@ -2598,15 +2548,15 @@
msgid "PYRO using certificates in '%s' \n"
msgstr "PYRO использует сертификаты в '%s'\n"
-#: ../PLCOpenEditor.py:118 ../Beremiz.py:336
+#: ../BeremizIDE.py:231 ../PLCOpenEditor.py:120 msgstr "Настройки страницы"
-#: ../controls/ProjectPropertiesPanel.py:110
+#: ../controls/ProjectPropertiesPanel.py:111 msgid "Page Size (optional):"
msgstr "Размер страницы (опционально):"
@@ -2615,11 +2565,11 @@
msgstr "Родительский экземпляр"
-#: ../editors/Viewer.py:598 ../IDEFrame.py:372 ../IDEFrame.py:426
+#: ../editors/Viewer.py:657 ../IDEFrame.py:372 ../IDEFrame.py:426
@@ -2627,11 +2577,11 @@
msgid "Pattern to search:"
-#: ../dialogs/LDPowerRailDialog.py:73
+#: ../dialogs/LDPowerRailDialog.py:74 -#: ../editors/Viewer.py:2717 ../editors/Viewer.py:2974
+#: ../editors/Viewer.py:2755 ../editors/Viewer.py:3012 #: ../editors/SFCViewer.py:770
msgid "Please choose a target"
msgstr "Выберите цель перехода"
@@ -2640,7 +2590,7 @@
msgid "Please enter a block name"
msgstr "Введите имя блока"
-#: ../editors/Viewer.py:2587 ../editors/Viewer.py:3016
+#: ../editors/Viewer.py:2625 ../editors/Viewer.py:3054 msgid "Please enter comment text"
msgstr "Введите текст комментария"
@@ -2649,7 +2599,7 @@
msgid "Please enter step name"
msgstr "Введите имя шага"
-#: ../Beremiz_service.py:194
+#: ../Beremiz_service.py:196 msgid "Please enter text"
@@ -2658,26 +2608,23 @@
msgid "Please enter value for a \"%s\" variable:"
msgstr "Введите значение для переменной \"%s\":"
-#: ../Beremiz_service.py:317
+#: ../Beremiz_service.py:319 msgid "Port number must be 0 <= port <= 65535!"
msgstr "Номер порта должен быть в диапазоне от 0 до 65535!"
-#: ../Beremiz_service.py:317
+#: ../Beremiz_service.py:319 msgid "Port number must be an integer!"
msgstr "Номер порта должен быть целым числом!"
-#: ../editors/Viewer.py:536 ../editors/Viewer.py:2378
+#: ../editors/Viewer.py:595 ../editors/Viewer.py:2414 -#: ../dialogs/LDPowerRailDialog.py:50
+#: ../dialogs/LDPowerRailDialog.py:51 msgid "Power Rail Properties"
msgstr "Свойства шины питания"
-#: ../PLCOpenEditor.py:120 ../Beremiz.py:338
+#: ../BeremizIDE.py:233 ../PLCOpenEditor.py:122 @@ -2685,12 +2632,12 @@
-#: ../PLCOpenEditor.py:122 ../PLCOpenEditor.py:148 ../Beremiz.py:340
+#: ../BeremizIDE.py:235 ../BeremizIDE.py:255 ../PLCOpenEditor.py:124 +#: ../PLCOpenEditor.py:150
msgstr "Предварительный просмотр"
@@ -2698,56 +2645,53 @@
-#: ../dialogs/SFCTransitionDialog.py:89
+#: ../dialogs/SFCTransitionDialog.py:90 -#: ../runtime/PLCObject.py:370
+#: ../runtime/PLCObject.py:369 msgid "Problem starting PLC : error %d"
msgstr "Проблема запуска ПЛК: ошибка %d"
-msgid "Process variable"
-msgstr "Текущее значение регулируемой переменной"
-#: ../dialogs/ProjectDialog.py:55
+#: ../dialogs/ProjectDialog.py:58 -#: ../controls/ProjectPropertiesPanel.py:80
-msgid "Product Name (required):"
-msgstr "Имя продукта (обязательно):"
-#: ../controls/ProjectPropertiesPanel.py:82
-msgid "Product Release (optional):"
-msgstr "Релиз продукта (опционально):"
-#: ../dialogs/ProjectDialog.py:56
-msgstr "Версия продукта"
#: ../controls/ProjectPropertiesPanel.py:81
+msgid "Product Name (required):" +msgstr "Имя продукта (обязательно):" +#: ../controls/ProjectPropertiesPanel.py:83 +msgid "Product Release (optional):" +msgstr "Релиз продукта (опционально):" +#: ../dialogs/ProjectDialog.py:59 +msgstr "Версия продукта" +#: ../controls/ProjectPropertiesPanel.py:82 msgid "Product Version (required):"
msgstr "Версия продукта (обязательно):"
-#: ../dialogs/SearchInProjectDialog.py:38 ../IDEFrame.py:1743
+#: ../dialogs/SearchInProjectDialog.py:39 ../IDEFrame.py:1747 -#: ../PLCOpenEditor.py:337
+#: ../PLCOpenEditor.py:347 msgid "Program was successfully generated!"
msgstr "Программа успешно сгенерирована!"
-#: ../PLCControler.py:96
+#: ../PLCControler.py:98 -#: ../editors/Viewer.py:242
+#: ../editors/Viewer.py:243 msgid "Programs can't be used by other POUs!"
msgstr "Программы не могут использоваться другими POU!"
-#: ../controls/ProjectPropertiesPanel.py:84 ../IDEFrame.py:584
+#: ../controls/ProjectPropertiesPanel.py:85 ../IDEFrame.py:584 @@ -2756,23 +2700,23 @@
-#: ../ProjectController.py:1835
+#: ../ProjectController.py:1865 -#: ../dialogs/ProjectDialog.py:54
+#: ../dialogs/ProjectDialog.py:57 -#: ../controls/ProjectPropertiesPanel.py:78
+#: ../controls/ProjectPropertiesPanel.py:79 msgid "Project Name (required):"
msgstr "Имя проекта (обязательно):"
-#: ../controls/ProjectPropertiesPanel.py:79
+#: ../controls/ProjectPropertiesPanel.py:80 msgid "Project Version (optional):"
msgstr "Версия проекта (опционально):"
-#: ../PLCControler.py:3158
+#: ../PLCControler.py:3164 "Project file syntax error:\n"
@@ -2780,7 +2724,7 @@
"Синтаксическая ошибка в файле проекта:\n"
-#: ../dialogs/ProjectDialog.py:32 ../editors/ProjectNodeEditor.py:37
+#: ../dialogs/ProjectDialog.py:33 ../editors/ProjectNodeEditor.py:37 msgid "Project properties"
msgstr "Свойства проекта"
@@ -2789,18 +2733,15 @@
msgid "Project tree layout do not match confnode.xml {a1}!={a2} "
msgstr "Дерево проекта не соответствует confnode.xml {a1}!={a2} "
-#: ../dialogs/ConnectionDialog.py:94
+#: ../dialogs/ConnectionDialog.py:98 -#: ../PLCControler.py:97
+#: ../PLCControler.py:99 -msgid "Proportionality constant"
-msgstr "Коэффициент пропорциональности"
-#: ../Beremiz_service.py:440
+#: ../Beremiz_service.py:442 msgid "Publishing service on local network"
msgstr "Сервис доступен в локальной сети"
@@ -2809,11 +2750,11 @@
msgid "Pyro exception: %s\n"
msgstr "Исключение Pyro: %s\n"
-#: ../Beremiz_service.py:427
+#: ../Beremiz_service.py:429 msgid "Pyro object's uri :"
-#: ../Beremiz_service.py:426
+#: ../Beremiz_service.py:428 @@ -2825,26 +2766,23 @@
-#: ../dialogs/ActionBlockDialog.py:38
+#: ../dialogs/ActionBlockDialog.py:39 -#: ../PLCOpenEditor.py:128 ../Beremiz.py:343 ../Beremiz_service.py:273
+#: ../BeremizIDE.py:238 ../PLCOpenEditor.py:130 ../Beremiz_service.py:275
-msgstr "Длительность нарастания"
#: ../controls/DebugVariablePanel/DebugVariablePanel.py:225
-#: ../ProjectController.py:1831
+#: ../ProjectController.py:1861
+#: ../BeremizIDE.py:1046 msgid "Really delete node '%s'?"
msgstr "Действительно удалить элемент '%s'?"
@@ -2853,11 +2791,11 @@
-#: ../dialogs/SFCTransitionDialog.py:74
+#: ../dialogs/SFCTransitionDialog.py:75 -#: ../dialogs/DiscoveryDialog.py:106 ../IDEFrame.py:432
+#: ../dialogs/DiscoveryDialog.py:107 ../IDEFrame.py:432 @@ -2865,11 +2803,11 @@
msgid "Regular expression"
msgstr "Регулярное выражение"
-#: ../dialogs/FindInPouDialog.py:98
+#: ../dialogs/FindInPouDialog.py:96 msgid "Regular expressions"
msgstr "Регулярные выражения"
-#: ../editors/Viewer.py:1567
+#: ../editors/Viewer.py:1603 msgstr "Освободить значение"
@@ -2877,16 +2815,16 @@
msgid "Remainder (modulo)"
msgstr "Остаток от деления (modulo)"
+#: ../BeremizIDE.py:1047 msgstr "Удалить %s элемент"
msgstr "Удалить тип данных"
@@ -2914,11 +2852,11 @@
-#: ../editors/CodeFileEditor.py:659 ../controls/VariablePanel.py:451
+#: ../editors/CodeFileEditor.py:661 ../controls/VariablePanel.py:451 msgstr "Удалить переменную"
@@ -2926,7 +2864,7 @@
-#: ../editors/Viewer.py:502
+#: ../editors/Viewer.py:561 msgid "Replace Wire by connections"
msgstr "Заменить цепь подключениями"
@@ -2938,7 +2876,7 @@
-#: ../editors/Viewer.py:583
+#: ../editors/Viewer.py:642 msgid "Reset Execution Order"
msgstr "Сбросить порядок исполнения"
@@ -2950,10 +2888,7 @@
msgid "Reset search result"
msgstr "Сбросить результаты поиска"
-msgstr "Постоянная времени интегрирования"
-#: ../PLCControler.py:97 ../Beremiz.py:1075
+#: ../BeremizIDE.py:978 ../PLCControler.py:99 @@ -2965,15 +2900,15 @@
msgstr "Возвращаемый тип:"
-#: ../editors/Viewer.py:487
+#: ../editors/Viewer.py:546 -#: ../dialogs/LDPowerRailDialog.py:63
+#: ../dialogs/LDPowerRailDialog.py:64 msgstr "Правая шина питания"
-#: ../dialogs/LDElementDialog.py:77 ../editors/Viewer.py:461
+#: ../dialogs/LDElementDialog.py:77 ../editors/Viewer.py:520 msgstr "Нарастающий фронт"
@@ -2989,15 +2924,15 @@
msgstr "Округление вверх/вниз"
-#: ../ProjectController.py:1799
+#: ../ProjectController.py:1829 -#: ../ProjectController.py:1058
+#: ../ProjectController.py:1087 msgid "Runtime IO extensions C code generation failed !\n"
msgstr "Ошибка генерации C-кода для расширений ввода-вывода!\n"
-#: ../ProjectController.py:1067
+#: ../ProjectController.py:1096 msgid "Runtime library extensions C code generation failed !\n"
msgstr "Ошибка генерации C-кода для библиотеки расширений системы исполнения!\n"
@@ -3009,7 +2944,7 @@
-#: ../dialogs/PouDialog.py:36 ../controls/ProjectPropertiesPanel.py:143
+#: ../dialogs/PouDialog.py:37 ../controls/ProjectPropertiesPanel.py:144 @@ -3023,16 +2958,16 @@
msgid "SFC transition in POU \"%s\" must be connected."
msgstr "SFC переход в POU \"%s\" должен быть подключен."
-#: ../dialogs/PouTransitionDialog.py:40 ../dialogs/PouActionDialog.py:31
-#: ../dialogs/PouDialog.py:36
+#: ../dialogs/PouTransitionDialog.py:36 ../dialogs/PouActionDialog.py:32 +#: ../dialogs/PouDialog.py:37 -#: ../PLCOpenEditor.py:324
+#: ../PLCOpenEditor.py:334 msgid "ST files (*.st)|*.st|All files|*.*"
msgstr "ST файлы (*.st)|*.st|Все файлы|*.*"
-#: ../svgui/svgui.py:125
+#: ../svgui/svgui.py:128 msgid "SVG files (*.svg)|*.svg|All files|*.*"
msgstr "SVG файлы (*.svg)|*.svg|Все файлы|*.*"
@@ -3040,23 +2975,20 @@
-msgstr "Период сэмплирования"
-#: ../PLCOpenEditor.py:111 ../PLCOpenEditor.py:146 ../Beremiz.py:327
+#: ../BeremizIDE.py:222 ../BeremizIDE.py:253 ../PLCOpenEditor.py:113 +#: ../PLCOpenEditor.py:148 -#: ../PLCOpenEditor.py:113 ../PLCOpenEditor.py:147 ../Beremiz.py:359
+#: ../BeremizIDE.py:254 ../PLCOpenEditor.py:115 ../PLCOpenEditor.py:149 msgstr "Сохранить как..."
-#: ../ProjectController.py:470
+#: ../ProjectController.py:499 msgid "Save path is the same as path of a project! \n"
msgstr "Выбранный путь совпадает с путём проекта!\n"
@@ -3068,11 +3000,11 @@
-#: ../dialogs/SearchInProjectDialog.py:44 ../IDEFrame.py:382 ../IDEFrame.py:428
+#: ../dialogs/SearchInProjectDialog.py:45 ../IDEFrame.py:382 ../IDEFrame.py:428 msgid "Search in Project"
-#: ../dialogs/DurationEditorDialog.py:46
+#: ../dialogs/DurationEditorDialog.py:47 @@ -3080,17 +3012,17 @@
-#: ../editors/Viewer.py:288 ../editors/TextViewer.py:306
+#: ../editors/Viewer.py:289 ../editors/TextViewer.py:306 #: ../controls/LocationCellEditor.py:97 ../controls/VariablePanel.py:290
#: ../controls/VariablePanel.py:350
msgid "Select a variable class:"
msgstr "Выберите класс переменной:"
-#: ../ProjectController.py:1216
+#: ../ProjectController.py:1245 msgid "Select an editor:"
msgstr "Выберите редактор:"
-#: ../controls/PouInstanceVariablesPanel.py:276
+#: ../controls/PouInstanceVariablesPanel.py:281 msgid "Select an instance"
msgstr "Выберите экземпляр"
@@ -3098,7 +3030,7 @@
-#: ../ProjectController.py:477
+#: ../ProjectController.py:506 msgid "Selected directory already contains another project. Overwrite? \n"
msgstr "Выбранная директория уже содержит другой проект. Перезаписать?\n"
@@ -3126,9 +3058,6 @@
#: ../plcopen/iec_std.csv:62
@@ -3137,19 +3066,19 @@
-#: ../ProjectController.py:1825
+#: ../ProjectController.py:1855 msgid "Show IEC code generated by PLCGenerator"
msgstr "Показать код, сгенерированный PLCGenerator"
-#: ../canfestival/canfestival.py:387
+#: ../canfestival/canfestival.py:389 msgstr "Показать ведущего"
-#: ../canfestival/canfestival.py:388
+#: ../canfestival/canfestival.py:390 msgid "Show Master generated by config_utils"
msgstr "Показать ведущий узел сгенерированный config_utils"
-#: ../ProjectController.py:1823
+#: ../ProjectController.py:1853 @@ -3182,52 +3111,52 @@
msgid "Square root (base 2)"
msgstr "Квадратный корень"
-#: ../plcopen/definitions.py:46
+#: ../plcopen/definitions.py:48 msgid "Standard function blocks"
msgstr "Стандартные функциональные блоки"
-#: ../ProjectController.py:1801 ../Beremiz_service.py:261
+#: ../ProjectController.py:1831 ../Beremiz_service.py:263 -#: ../ProjectController.py:1005
+#: ../ProjectController.py:1034 msgid "Start build in %s\n"
msgstr "Сборка запущена в %s\n"
-#: ../ProjectController.py:1319
+#: ../ProjectController.py:1348 -#: ../ProjectController.py:1607
+#: ../ProjectController.py:1636 msgstr "ПЛК запускается\n"
-#: ../editors/Viewer.py:553 ../editors/Viewer.py:2353
+#: ../editors/Viewer.py:612 ../editors/Viewer.py:2389 -#: ../ProjectController.py:1804
+#: ../ProjectController.py:1834 -#: ../Beremiz_service.py:262
+#: ../Beremiz_service.py:264 -#: ../ProjectController.py:1806
+#: ../ProjectController.py:1836 msgstr "Остановить запущенный ПЛК"
-#: ../ProjectController.py:1320
+#: ../ProjectController.py:1349 -#: ../ProjectController.py:1579
+#: ../ProjectController.py:1608 msgid "Stopping debugger...\n"
msgstr "Остановка отладчика...\n"
@@ -3243,7 +3172,7 @@
-#: ../ProjectController.py:1044
+#: ../ProjectController.py:1073 msgid "Successfully built.\n"
msgstr "Сборка прошла успешно.\n"
@@ -3260,7 +3189,7 @@
-#: ../dialogs/SearchInProjectDialog.py:165 ../dialogs/FindInPouDialog.py:172
+#: ../dialogs/SearchInProjectDialog.py:165 ../dialogs/FindInPouDialog.py:115 msgid "Syntax error in regular expression of pattern to search!"
msgstr "Синтаксическая ошибка в регулярном выражении шаблона поиска!"
@@ -3287,23 +3216,25 @@
-msgid "The PID (proportional, Integral, Derivative) function block provides the classical three term controller for closed loop control."
-msgstr "ПИД (Пропорциональный Интегральный Дифференциальный) ФБ - классический регулятор, используемый в системах с обратной связью."
-msgid "The RAMP function block is modelled on example given in the standard."
-msgstr "Ограничитель скорости изменения сигнала. Функциональный блок написан согласно примеру, приведенному в стандарте."
-msgid "The RS bistable is a latch where the Reset dominates."
-msgstr "RS-триггер с приоритетом выключения."
-msgid "The SR bistable is a latch where the Set dominates."
-msgstr "SR-триггер с приоритетом включения."
-msgid "The derivative function block produces an output XOUT proportional to the rate of change of the input XIN."
-msgstr "Функциональный блок формирует выход XOUT пропорционально частоте изменения входа XIN."
-msgid "The down-counter can be used to signal when a count has reached zero, on counting down from a preset value."
-msgstr "Декрементный счетчик может использоваться, когда необходимо сигнализировать, что счетчик достиг нулевого значения с исходного заданного значения."
+"The best place to ask questions about Beremiz/PLCOpenEditor\n" +"is project's mailing list: beremiz-devel@lists.sourceforge.net\n" +"This is the main community support channel.\n" +"For posting it is required to be subscribed to the mailing list.\n" +"You can subscribe to the list here:\n" +"https://lists.sourceforge.net/lists/listinfo/beremiz-devel" +"Самым лучшим местом для вопросов о Beremiz или PLCOpenEditor\n" +"является список рассылки проекта: beremiz-devel@lists.sourceforge.net\n" +"Это основной канал поддержки сообщества.\n" +"Для публикации вопроса в список рассылки необходимо на него подписаться.\n" +"Вы можете подписаться, перейдя по следующей ссылке:\n" +"https://lists.sourceforge.net/lists/listinfo/beremiz-devel" #: ../editors/FileManagementPanel.py:180
@@ -3318,49 +3249,16 @@
msgid "The group of block must be coherent!"
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 "Функциональный блок формирует дискретный выход с гистерезисом в зависимости от разницы двух вещественных входов XIN1 и XIN2."
-msgid "The integral function block integrates the value of input XIN over time."
-msgstr "Функциональный блок интегрирует входное значение XIN во времени."
-msgid "The off-delay timer can be used to delay setting an output false, for fixed period after input goes false."
-msgstr "Таймер выключения может быть использован, чтобы внести задержку установки выхода в FALSE на фиксированный период времени после того, как вход стал FALSE."
-msgid "The on-delay timer can be used to delay setting an output true, for fixed period after an input becomes true."
-msgstr "Таймер включения может быть использован, чтобы внести задержку установки выхода в TRUE на фиксированный период времени после того, как вход стал TRUE."
-msgid "The output produces a single pulse when a falling edge is detected."
-msgstr "Детектор падающего фронта. На выходе формируется одиночный импульс, если обнаружен падающий фронт."
-msgid "The output produces a single pulse when a rising edge is detected."
-msgstr "Детектор нарастающего фронта. На выходе формируется одиночный импульс, если обнаружен нарастающий фронт."
-msgid "The pulse timer can be used to generate output pulses of a given time duration."
-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 "The semaphore provides a mechanism to allow software elements mutually exclusive access to certain ressources."
-msgstr "Семафор предоставляет собой программный механизм синхронизации для обеспечения исключительного доступа к определенным ресурсам."
-msgid "The up-counter can be used to signal when a count has reached a maximum 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 "Инкрементный/декрементный счетчик имеет два входа CU и CD. Он может использоваться для счета вверх по одному входу и для счета низ по другому."
-#: ../Beremiz.py:640 ../IDEFrame.py:1011
+#: ../BeremizIDE.py:542 ../IDEFrame.py:1015 msgid "There are changes, do you want to save?"
msgstr "Хотите сохранить изменения?"
-#: ../IDEFrame.py:1654 ../IDEFrame.py:1673
+#: ../IDEFrame.py:1658 ../IDEFrame.py:1677 msgid "There is a POU named \"%s\". This could cause a conflict. Do you wish to continue?"
msgstr "Существует POU с именем \"%s\". Это может вызвать конфликт. Хотите продолжить?"
"There was a problem printing.\n"
"Perhaps your current printer is not set correctly?"
@@ -3410,27 +3308,31 @@
msgid "Time-of-day subtraction"
msgstr "Вычитание времени суток"
-#: ../editors/Viewer.py:489
+#: ../dialogs/ForceVariableDialog.py:172 +msgstr "Переключить значение" +#: ../editors/Viewer.py:548 -#: ../ProjectController.py:1813
+#: ../ProjectController.py:1843 -#: ../ProjectController.py:1815
+#: ../ProjectController.py:1845 -#: ../ProjectController.py:1779
+#: ../ProjectController.py:1808 msgid "Transfer completed successfully.\n"
msgstr "Передача успешно завершена.\n"
-#: ../ProjectController.py:1781
+#: ../ProjectController.py:1811 msgid "Transfer failed\n"
msgstr "Ошибка передачи\n"
-#: ../editors/Viewer.py:554 ../editors/Viewer.py:2355 ../editors/Viewer.py:2382
+#: ../editors/Viewer.py:613 ../editors/Viewer.py:2391 ../editors/Viewer.py:2418 @@ -3439,11 +3341,11 @@
msgid "Transition \"%s\" body must contain an output variable or coil referring to its name"
msgstr "Тело перехода \"%s\" должно содержать выходную переменную или катушку, ссылающуюся на его имя"
-#: ../dialogs/PouTransitionDialog.py:89
+#: ../dialogs/PouTransitionDialog.py:84 -#: ../dialogs/PouTransitionDialog.py:58
+#: ../dialogs/PouTransitionDialog.py:53 @@ -3457,12 +3359,12 @@
msgid "Transition with content \"{a1}\" not connected to a previous step in \"{a2}\" POU"
msgstr "Переход с содержимым \"{a1}\" не подключен к предыдущему шагу в POU \"{a2}\""
-#: ../plcopen/plcopen.py:1318
+#: ../plcopen/plcopen.py:1323 msgid "Transition with name %s doesn't exist!"
msgstr "Переход с именем %s отсутствует!"
-#: ../PLCControler.py:96
+#: ../PLCControler.py:98 @@ -3474,24 +3376,24 @@
-#: ../Beremiz_service.py:476
+#: ../Beremiz_service.py:478 msgid "Twisted unavailable."
msgstr "Модуль Twisted недоступен."
-#: ../dialogs/ActionBlockDialog.py:38 ../editors/ResourceEditor.py:83
-#: ../editors/DataTypeEditor.py:50 ../controls/VariablePanel.py:53
-#: ../controls/VariablePanel.py:54
+#: ../dialogs/ActionBlockDialog.py:39 ../editors/ResourceEditor.py:83 +#: ../editors/DataTypeEditor.py:50 ../editors/CodeFileEditor.py:744 +#: ../controls/VariablePanel.py:53 ../controls/VariablePanel.py:54 -#: ../dialogs/BrowseLocationsDialog.py:48
+#: ../dialogs/BrowseLocationsDialog.py:49 msgid "Type and derivated"
msgstr "Тип и его производные"
#: ../canfestival/config_utils.py:336 ../canfestival/config_utils.py:624
msgid "Type conflict for location \"%s\""
-msgstr "Конфликт типов \"%s\""
+msgstr "Конфликт типов для адреса \"%s\"" #: ../plcopen/iec_std.csv:16
@@ -3501,13 +3403,13 @@
msgstr "Информация о типе:"
-#: ../dialogs/BrowseLocationsDialog.py:49
+#: ../dialogs/BrowseLocationsDialog.py:50 msgstr "Только данный тип"
-#: ../dialogs/SFCDivergenceDialog.py:59 ../dialogs/SFCTransitionDialog.py:57
-#: ../dialogs/LDPowerRailDialog.py:56 ../dialogs/BrowseLocationsDialog.py:99
-#: ../dialogs/FBDBlockDialog.py:65 ../dialogs/ConnectionDialog.py:58
+#: ../dialogs/SFCDivergenceDialog.py:59 ../dialogs/SFCTransitionDialog.py:58 +#: ../dialogs/LDPowerRailDialog.py:57 ../dialogs/BrowseLocationsDialog.py:100 +#: ../dialogs/FBDBlockDialog.py:66 ../dialogs/ConnectionDialog.py:59 @@ -3538,20 +3440,20 @@
-#: ../ProjectController.py:382
+#: ../ProjectController.py:411 -#: ../editors/Viewer.py:393
+#: ../editors/Viewer.py:394 msgid "Unknown variable \"%s\" for this POU!"
msgstr "Неизвестная переменная \"%s\" для этого POU!"
-#: ../ProjectController.py:379 ../ProjectController.py:380
+#: ../ProjectController.py:408 ../ProjectController.py:409 -#: ../PLCControler.py:636
+#: ../PLCControler.py:638 @@ -3561,7 +3463,7 @@
msgid "Unrecognized data size \"%s\""
msgstr "Неопределенный размер данных \"%s\""
-#: ../editors/DataTypeEditor.py:632 ../controls/VariablePanel.py:810
+#: ../editors/DataTypeEditor.py:630 ../controls/VariablePanel.py:827 msgstr "Пользовательские типы данных"
@@ -3569,11 +3471,11 @@
msgstr "Пользовательский тип"
-#: ../PLCControler.py:95
+#: ../PLCControler.py:97 msgid "User-defined POUs"
msgstr "Пользовательские POU"
-#: ../dialogs/ActionBlockDialog.py:38
+#: ../dialogs/ActionBlockDialog.py:39 @@ -3581,28 +3483,28 @@
-#: ../dialogs/ActionBlockDialog.py:42 ../editors/Viewer.py:526
-#: ../editors/Viewer.py:2385
+#: ../dialogs/ActionBlockDialog.py:43 ../editors/Viewer.py:585 +#: ../editors/Viewer.py:2421 -#: ../editors/Viewer.py:308 ../editors/Viewer.py:338 ../editors/Viewer.py:360
+#: ../editors/Viewer.py:309 ../editors/Viewer.py:339 ../editors/Viewer.py:361 #: ../editors/TextViewer.py:292 ../editors/TextViewer.py:343
#: ../editors/TextViewer.py:366 ../controls/VariablePanel.py:329
msgstr "Перетаскивание переменной"
-#: ../dialogs/FBDVariableDialog.py:63
+#: ../dialogs/FBDVariableDialog.py:64 msgid "Variable Properties"
msgstr "Свойства переменных"
-#: ../editors/Viewer.py:288 ../editors/TextViewer.py:306
+#: ../editors/Viewer.py:289 ../editors/TextViewer.py:306 #: ../controls/LocationCellEditor.py:97 ../controls/VariablePanel.py:290
#: ../controls/VariablePanel.py:350
msgstr "Класс переменной"
-#: ../editors/Viewer.py:395 ../editors/TextViewer.py:387
+#: ../editors/Viewer.py:396 ../editors/TextViewer.py:387 msgid "Variable don't belong to this POU!"
msgstr "Переменная не принадлежит этому POU!"
@@ -3614,11 +3516,11 @@
-#: ../controls/ProjectPropertiesPanel.py:151
+#: ../controls/ProjectPropertiesPanel.py:152 -#: ../Beremiz_service.py:586
+#: ../Beremiz_service.py:588 msgid "WAMP client startup failed. "
msgstr "Ошибка импорта WAMP. "
@@ -3636,11 +3538,11 @@
msgid "WAMP connection to '%s' failed.\n"
msgstr "Не удалось установить WAMP подключение к %s.\n"
-#: ../Beremiz_service.py:562
+#: ../Beremiz_service.py:564 msgid "WAMP import failed :"
msgstr "Ошибка импорта WAMP :"
-#: ../wxglade_hmi/wxglade_hmi.py:35
+#: ../wxglade_hmi/wxglade_hmi.py:37 @@ -3648,7 +3550,7 @@
-#: ../ProjectController.py:666
+#: ../ProjectController.py:695 msgid "Warnings in ST/IL/SFC code generator :\n"
msgstr "Предупреждения в ST/IL/SFC коде генераторе:\n"
@@ -3656,14 +3558,14 @@
-#: ../controls/ProjectPropertiesPanel.py:119
+#: ../controls/ProjectPropertiesPanel.py:120 -#: ../dialogs/FindInPouDialog.py:93
+#: ../dialogs/FindInPouDialog.py:91 msgstr "Продолжить поиск сначала"
@@ -3681,7 +3583,7 @@
-#: ../svgui/svgui.py:139
+#: ../svgui/svgui.py:142 "You don't have write permissions.\n"
@@ -3689,7 +3591,7 @@
"У вас недостаточно прав для записи.\n"
"Открыть Inkscape все равно?"
-#: ../wxglade_hmi/wxglade_hmi.py:137
+#: ../wxglade_hmi/wxglade_hmi.py:154 "You don't have write permissions.\n"
@@ -3697,7 +3599,7 @@
"У вас недостаточно прав для записи.\n"
"Открыть wxGlade все равно?"
-#: ../ProjectController.py:342
+#: ../ProjectController.py:371 "You must have permission to work on the project\n"
"Work on a project copy ?"
@@ -3717,7 +3619,7 @@
msgid "You must type a name!"
-#: ../dialogs/ForceVariableDialog.py:175
+#: ../dialogs/ForceVariableDialog.py:193 msgid "You must type a value!"
msgstr "Введите значение!"
@@ -3735,7 +3637,7 @@
-#: ../PLCOpenEditor.py:333
+#: ../PLCOpenEditor.py:343 @@ -3745,25 +3647,19 @@
msgid "exited with status {a1} (pid {a2})\n"
msgstr "завершился с кодом {a1} (pid {a2})\n"
-#: ../PLCOpenEditor.py:396 ../PLCOpenEditor.py:398
+#: ../PLCOpenEditor.py:406 ../PLCOpenEditor.py:408 -msgid "first input parameter"
-msgstr "первый входной параметр"
-msgid "first output parameter"
-msgstr "первый выходной параметр"
-#: ../dialogs/PouDialog.py:31
+#: ../dialogs/PouDialog.py:32 -#: ../PLCOpenEditor.py:399
+#: ../PLCOpenEditor.py:409 -#: ../dialogs/PouDialog.py:31
+#: ../dialogs/PouDialog.py:32 msgstr "функциональный блок"
@@ -3774,10 +3670,7 @@
-msgid "internal state: 0-reset, 1-counting, 2-set"
-msgstr "состояние: 0 - сброс, 1 - счёт, 2 - установка"
-#: ../PLCOpenEditor.py:399
+#: ../PLCOpenEditor.py:409 @@ -3798,16 +3691,10 @@
-#: ../dialogs/PouDialog.py:31
+#: ../dialogs/PouDialog.py:32 -msgid "second input parameter"
-msgstr "второй входной параметр"
-msgid "second output parameter"
-msgstr "второй выходной параметр"
#: ../dialogs/DurationEditorDialog.py:152
@@ -3827,7 +3714,7 @@
msgid "update info unavailable."
msgstr "информация об обновлениях недоступна."
@@ -3837,12 +3724,12 @@
-#: ../PLCOpenEditor.py:331
+#: ../PLCOpenEditor.py:341 msgstr "предупреждение: %s\n"
-#: ../PLCControler.py:970
+#: ../PLCControler.py:972 msgid "{a1} \"{a2}\" can't be pasted as a {a3}."
msgstr "{a1} \"{a2}\" не может быть вставлен как {a3}."
@@ -3856,220 +3743,155 @@
"{a1} XML файл не следует XSD-схеме в строке {a2}:\n"
-#~ "An error has occurred.\n"
-#~ "Click OK to save an error report.\n"
-#~ "Please be kind enough to send this file to:\n"
-#~ "edouard.tisserant@gmail.com\n"
-#~ "Произошла ошибка.\n"
-#~ "Нажмите OK, чтобы сохранить репорт об ошибке.\n"
-#~ "Будьте так добры, пошлите этот файл:\n"
-#~ "edouard.tisserant@gmail.com\n"
-#~ msgid " -> Nothing to do\n"
-#~ msgstr " -> Ничего не нужно делать\n"
-#~ msgid "\"%s\" element can't be pasted here!!!"
-#~ msgstr "Элемент \"%s\" не может быть вставлен сюда!!!"
-#~ msgid "... debugger recovered\n"
-#~ msgstr "... отладчик восстановлен\n"
-#~ msgid "About Beremiz"
-#~ msgid "About PLCOpenEditor"
-#~ msgstr "О PLCOpenEditor"
-#~ msgid "Clear the graph values"
-#~ msgstr "Очистить значения на графике"
-#~ "The derivative function block produces an output XOUT proportional to the rate of change of the input XIN."
-#~ "Функциональный блок формирует выход XOUT пропорционально частоте изменения входа XIN."
-#~ "The down-counter can be used to signal when a count has reached zero, on counting down from a preset value."
-#~ "Декрементный счетчик\n"
-#~ "Декрементный счетчик может использоваться, когда необходимо сигнализировать, что счетчик достиг нулевого значения с исходного заданного значения."
-#~ msgid "Enable_Native_Library"
-#~ msgstr "Разрешить библиотеку Native"
-#~ "Falling edge detector\n"
-#~ "The output produces a single pulse when a falling edge is detected."
-#~ "Детектор падающего фронта\n"
-#~ "На выходе формируется одиночный импульс, если обнаружен падающий фронт."
-#~ msgid "Form isn't complete. Pattern to search must be filled!"
-#~ msgstr "Форма заполнена неполностью. Шаблон поиска должен быть заполнен!"
-#~ "The hysteresis function block provides a hysteresis boolean output driven by the difference of two floating point (REAL) inputs XIN1 and XIN2."
-#~ "Функциональный блок формирует дискретный выход с гистерезисом в зависимости от разницы двух вещественных входов XIN1 и XIN2."
-#~ msgid "IEC-61131-3 code generation failed !\n"
-#~ msgstr "Неудачная генерация МЭК-61131-3 кода!\n"
+#~ msgid "0 - current time, 1 - load time from PDT" +#~ msgstr "0 - текущее время, 1 - отклонение от PDT" +#~ msgid "0 - manual , 1 - automatic" +#~ msgstr "0 - ручной, 1 - автоматический" +#~ msgid "0 - track X0, 1 - ramp to/track X1" +#~ msgstr "0 - вход X0, 1 - нарастание до значения X1" +#~ msgid "1 = integrate, 0 = hold" +#~ msgstr "1 = интегрировать, 0 = остановка" +#~ msgid "BUSY = 1 during ramping period" +#~ msgstr "BUSY = 1 во время " +#~ msgstr "Копия входа IN" +#~ msgid "Datetime, current or relative to PDT" +#~ msgstr "Текущие дата и время, абсолютные или относительные от PDT" +#~ msgid "Derivative time constant" +#~ msgstr "Постоянная времени дифференцирования" +#~ msgid "Differentiated output" +#~ msgstr "Дифференцированный выход" +#~ msgid "Elapsed time of ramp" +#~ msgstr "Прошедшее время нарастания" +#~ msgid "FB for derivative term" +#~ msgstr "ФБ дифференцирования" +#~ msgid "FB for integral term" +#~ msgstr "ФД интегрирования" +#~ msgid "Initial value" #~ msgstr "Исходное значение"
-#~ "The integral function block integrates the value of input XIN over time."
-#~ "Функциональный блок интегрирует входное значение XIN во времени."
-#~ msgid "Move debug variable down"
-#~ msgstr "Переместить отлаживаемую переменную ниже"
-#~ msgid "Move debug variable up"
-#~ msgstr "Переместить отлаживаемую переменную выше"
-#~ msgid "No PLC project found"
-#~ msgstr "Не найден проект ПЛК"
-#~ msgid "No output variable found"
-#~ msgstr "Выходная переменная не найдена"
-#~ "The off-delay timer can be used to delay setting an output false, for fixed period after input goes false."
-#~ "Таймер выключения\n"
-#~ "Таймер выключения может быть использован, чтобы внести задержку установки выхода в FALSE на фиксированный период времени после того, как вход стал FALSE."
-#~ "The on-delay timer can be used to delay setting an output true, for fixed period after an input becomes true."
-#~ "Таймер выключения может быть использован, чтобы внести задержку установки выхода в TRUE на фиксированный период времени после того, как вход стал TRUE."
-#~ "The PID (proportional, Integral, Derivative) function block provides the classical three term controller for closed loop control."
-#~ "ПИД (Пропорциональный Интегральный Дифференциальный) ФБ - классический регулятор, используемый в системах с обратной связью."
-#~ "The pulse timer can be used to generate output pulses of a given time duration."
-#~ "Генератор импульсов\n"
-#~ "Функциональный блок используется для генерации выходных импульсов заданной длительности."
-#~ "The RS bistable is a latch where the Reset dominates."
-#~ "RS триггер - переключатель с доминантой выключения."
-#~ "The RAMP function block is modelled on example given in the standard."
-#~ "Ограничитель скорости изменения сигнала\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."
-#~ "Часы реального времени используется для получения меток времени, установки даты и времени дня в отчетах, сообщениях об авариях и пр."
-#~ msgid "Remove debug variable"
-#~ msgstr "Удалить отлаживаемую переменную"
-#~ msgid "Reset zoom and offset"
-#~ msgstr "Сбросить приближение и смещение"
-#~ "Rising edge detector\n"
-#~ "The output produces a single pulse when a rising edge is detected."
-#~ "Детектор нарастающего фронта\n"
-#~ "На выходе формируется одиночный импульс, если обнаружен нарастающий фронт."
-#~ "The SR bistable is a latch where the Set dominates."
-#~ "SR триггер - переключатель с доминантой включения."
-#~ "The semaphore provides a mechanism to allow software elements mutually exclusive access to certain ressources."
-#~ "Семафор предоставляет собой программный механизм синхронизации для обеспечения исключительного доступа к определенным ресурсам."
-#~ "The up-counter can be used to signal when a count has reached a maximum value."
-#~ "Инкрементный счетчик\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."
-#~ "Инкрементный/декрементный счетчик\n"
-#~ "Инкрементный/декрементный счетчик имеет два входа CU и CD. Он может использоваться для счета вверх по одному входу и для счета низ по другому."
-#~ msgid "Waiting debugger to recover...\n"
-#~ msgstr "Ожидание восстановления отладчика...\n"
-#~ msgstr "Приближение:"
-#~ msgstr "about.ru.html"
-#~ msgid "plcopen_about.html"
-#~ msgstr "plcopen_about.ru.html"
+#~ msgid "Input to be differentiated" +#~ msgstr "Вход для дифференцирования" +#~ msgid "Input variable" +#~ msgstr "Входная переменная" +#~ msgid "Integrated output" +#~ msgstr "Интегрированный выход" +#~ msgid "Manual output adjustment - Typically from transfer station" +#~ msgstr "Ручной выход" +#~ msgid "Overriding reset" +#~ msgstr "Сброс интегратора" +#~ msgstr "Ошибка, PV - SP" +#~ msgid "Preset datetime" +#~ msgstr "Основное время" +#~ msgid "Process variable" +#~ msgstr "Текущее значение регулируемой переменной" +#~ msgid "Proportionality constant" +#~ msgstr "Коэффициент пропорциональности" +#~ msgid "Ramp duration" +#~ msgstr "Длительность нарастания" +#~ msgstr "Постоянная времени интегрирования" +#~ msgid "Sampling period" +#~ msgstr "Период сэмплирования" +#~ msgid "The PID (proportional, Integral, Derivative) function block provides the classical three term controller for closed loop control." +#~ msgstr "ПИД (Пропорциональный Интегральный Дифференциальный) ФБ - классический регулятор, используемый в системах с обратной связью." +#~ msgid "The RAMP function block is modelled on example given in the standard." +#~ msgstr "Ограничитель скорости изменения сигнала. Функциональный блок написан согласно примеру, приведенному в стандарте." +#~ msgid "The RS bistable is a latch where the Reset dominates." +#~ msgstr "RS-триггер с приоритетом выключения." +#~ msgid "The SR bistable is a latch where the Set dominates." +#~ msgstr "SR-триггер с приоритетом включения." +#~ msgid "The derivative function block produces an output XOUT proportional to the rate of change of the input XIN." +#~ msgstr "Функциональный блок формирует выход XOUT пропорционально частоте изменения входа XIN." +#~ 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 hysteresis function block provides a hysteresis boolean output driven by the difference of two floating point (REAL) inputs XIN1 and XIN2." +#~ msgstr "Функциональный блок формирует дискретный выход с гистерезисом в зависимости от разницы двух вещественных входов XIN1 и XIN2." +#~ msgid "The integral function block integrates the value of input XIN over time." +#~ msgstr "Функциональный блок интегрирует входное значение XIN во времени." +#~ msgid "The off-delay timer can be used to delay setting an output false, for fixed period after input goes false." +#~ msgstr "Таймер выключения может быть использован, чтобы внести задержку установки выхода в FALSE на фиксированный период времени после того, как вход стал FALSE." +#~ msgid "The on-delay timer can be used to delay setting an output true, for fixed period after an input becomes true." +#~ msgstr "Таймер включения может быть использован, чтобы внести задержку установки выхода в TRUE на фиксированный период времени после того, как вход стал TRUE." +#~ msgid "The output produces a single pulse when a falling edge is detected." +#~ msgstr "Детектор падающего фронта. На выходе формируется одиночный импульс, если обнаружен падающий фронт." +#~ msgid "The output produces a single pulse when a rising edge is detected." +#~ msgstr "Детектор нарастающего фронта. На выходе формируется одиночный импульс, если обнаружен нарастающий фронт." +#~ msgid "The pulse timer can be used to generate output pulses of a given time duration." +#~ 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 "The semaphore provides a mechanism to allow software elements mutually exclusive access to certain ressources." +#~ msgstr "Семафор предоставляет собой программный механизм синхронизации для обеспечения исключительного доступа к определенным ресурсам." +#~ msgid "The up-counter can be used to signal when a count has reached a maximum 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 "Инкрементный/декрементный счетчик имеет два входа CU и CD. Он может использоваться для счета вверх по одному входу и для счета низ по другому." +#~ msgid "first input parameter" +#~ msgstr "первый входной параметр" +#~ msgid "first output parameter" +#~ msgstr "первый выходной параметр" +#~ msgid "internal state: 0-reset, 1-counting, 2-set" +#~ msgstr "состояние: 0 - сброс, 1 - счёт, 2 - установка" +#~ msgid "second input parameter" +#~ msgstr "второй входной параметр" +#~ msgid "second output parameter" +#~ msgstr "второй выходной параметр"