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