# HG changeset patch # User b.taylor@willowglen.ca # Date 1251901834 21600 # Node ID 8d9e7edc01952947e5e6ded2b97e536bdd6f8796 # Parent 127d524a5f1df36b3b9278f3cac85bcb1a7e764f# Parent d5a5eaea78443c4a74bf01ea3dbf355f1e30417c merged with lolitech diff -r 127d524a5f1d -r 8d9e7edc0195 PLCOpenEditor.py --- a/PLCOpenEditor.py Thu Aug 20 09:03:31 2009 -0600 +++ b/PLCOpenEditor.py Wed Sep 02 08:30:34 2009 -0600 @@ -283,6 +283,7 @@ self.ShowErrorMessage(_("\"%s\" is used by one or more POUs. It can't be removed!")%name) return DeleteElementFunction + #------------------------------------------------------------------------------- # PLCOpenEditor Main Class #------------------------------------------------------------------------------- @@ -372,6 +373,8 @@ kind=wx.ITEM_NORMAL, text=_(u'Undo\tCTRL+Z')) AppendMenu(parent, help='', id=wx.ID_REDO, kind=wx.ITEM_NORMAL, text=_(u'Redo\tCTRL+Y')) + AppendMenu(parent, help='', id=ID_PLCOPENEDITOREDITMENUENABLEUNDOREDO, + kind=wx.ITEM_CHECK, text=_(u'Enable Undo/Redo')) parent.AppendSeparator() AppendMenu(parent, help='', id=wx.ID_CUT, kind=wx.ITEM_NORMAL, text=_(u'Cut\tCTRL+X')) @@ -543,7 +546,7 @@ pos=wx.Point(0, 0), size=wx.Size(0, 0), style=wx.TR_HAS_BUTTONS|wx.TR_SINGLE|wx.SUNKEN_BORDER) - self.TabsImageList = wx.ImageList(16, 31) + self.TabsImageList = wx.ImageList(31, 16) self.TabsImageListIndexes = {} if self.Debug: @@ -815,19 +818,21 @@ def GetCopyBuffer(self): data = None - if wx.TheClipboard.Open(): + if wx.TheClipboard.IsOpened() or wx.TheClipboard.Open(): dataobj = wx.TextDataObject() if wx.TheClipboard.GetData(dataobj): data = dataobj.GetText() + if wx.TheClipboard.IsOpened(): wx.TheClipboard.Close() return data def SetCopyBuffer(self, text): - if wx.TheClipboard.Open(): + if wx.TheClipboard.IsOpened() or wx.TheClipboard.Open(): data = wx.TextDataObject() data.SetText(text) wx.TheClipboard.SetData(data) wx.TheClipboard.Flush() + if wx.TheClipboard.IsOpened(): wx.TheClipboard.Close() self.RefreshEditMenu() @@ -890,27 +895,30 @@ return index if icon2_name is None: # Bitmap with only one icon - tmp_bitmap = wx.Bitmap(os.path.join(CWD, 'Images', '%s.png'%icon1_name)) + bitmap = wx.Bitmap(os.path.join(CWD, 'Images', '%s.png'%icon1_name)) else: # Bitmap with two icon icon1 = wx.Bitmap(os.path.join(CWD, 'Images', '%s.png'%icon1_name)) icon2 = wx.Bitmap(os.path.join(CWD, 'Images', '%s.png'%icon2_name)) + # Calculate bitmap size width = icon1.GetWidth() + icon2.GetWidth() - 1 height = max(icon1.GetHeight(), icon2.GetHeight()) # Create bitmap with both icons - tmp_bitmap = wx.EmptyBitmap(width, height) + bitmap = wx.EmptyBitmap(width, height) dc = wx.MemoryDC() - dc.SelectObject(tmp_bitmap) + dc.SelectObject(bitmap) dc.Clear() dc.DrawBitmap(icon1, 0, 0) dc.DrawBitmap(icon2, icon1.GetWidth() - 1, 0) - # Store bitmap in ImageList - index = self.TabsImageList.Add(tmp_bitmap) - # Save bitmap index in ImageList in dictionary - self.TabsImageListIndexes[(icon1_name, icon2_name)] = index + dc.Destroy() + + # Store bitmap in ImageList + index = self.TabsImageList.Add(bitmap) + # Save bitmap index in ImageList in dictionary + self.TabsImageListIndexes[(icon1_name, icon2_name)] = index if USE_AUI: - return tmp_bitmap + return bitmap else: return index diff -r 127d524a5f1d -r 8d9e7edc0195 Viewer.py --- a/Viewer.py Thu Aug 20 09:03:31 2009 -0600 +++ b/Viewer.py Wed Sep 02 08:30:34 2009 -0600 @@ -907,6 +907,8 @@ if isinstance(element, SFC_Step): if len(instance["inputs"]) > 0: element.AddInput() + else: + element.RemoveInput() if len(instance["outputs"]) > 0: element.AddOutput() if isinstance(element, SFC_Transition) and specific_values["condition_type"] == "connection": diff -r 127d524a5f1d -r 8d9e7edc0195 generate_IEC_std.py --- a/generate_IEC_std.py Thu Aug 20 09:03:31 2009 -0600 +++ b/generate_IEC_std.py Wed Sep 02 08:30:34 2009 -0600 @@ -500,11 +500,11 @@ # Now, print that out, or write to files from sys.argv for path, name, ext in [ - ('stage4/generate_c','function_type_decl','h'), - ('stage4/generate_c','get_function_type_decl','c'), + ('absyntax_utils','function_type_decl','h'), + ('absyntax_utils','get_function_type_decl','c'), ('stage4/generate_c','st_code_gen','c'), ('stage4/generate_c','il_code_gen','c'), - ('stage4/generate_c','search_type_code','c'), + ('absyntax_utils','search_type_code','c'), ('stage1_2','standard_function_names','c'), ('lib', 'iec_std_lib_generated','h') ]: diff -r 127d524a5f1d -r 8d9e7edc0195 graphics/GraphicCommons.py --- a/graphics/GraphicCommons.py Thu Aug 20 09:03:31 2009 -0600 +++ b/graphics/GraphicCommons.py Wed Sep 02 08:30:34 2009 -0600 @@ -812,24 +812,25 @@ # Draws the handles of this element if it is selected def Draw(self, dc): - if self.Highlighted: - self.DrawHighlightment(dc) - if self.Selected: - dc.SetPen(wx.BLACK_PEN) - dc.SetBrush(wx.BLACK_BRUSH) - dc.DrawRectangle(self.BoundingBox.x - HANDLE_SIZE - 2, self.BoundingBox.y - HANDLE_SIZE - 2, HANDLE_SIZE, HANDLE_SIZE) - dc.DrawRectangle(self.BoundingBox.x + (self.BoundingBox.width - HANDLE_SIZE) / 2, - self.BoundingBox.y - HANDLE_SIZE - 2, HANDLE_SIZE, HANDLE_SIZE) - dc.DrawRectangle(self.BoundingBox.x + self.BoundingBox.width + 2, - self.BoundingBox.y - HANDLE_SIZE - 2, HANDLE_SIZE, HANDLE_SIZE) - dc.DrawRectangle(self.BoundingBox.x + self.BoundingBox.width + 2, - self.BoundingBox.y + (self.BoundingBox.height - HANDLE_SIZE) / 2, HANDLE_SIZE, HANDLE_SIZE) - dc.DrawRectangle(self.BoundingBox.x + self.BoundingBox.width + 2, - self.BoundingBox.y + self.BoundingBox.height + 2, HANDLE_SIZE, HANDLE_SIZE) - dc.DrawRectangle(self.BoundingBox.x + (self.BoundingBox.width - HANDLE_SIZE) / 2, - self.BoundingBox.y + self.BoundingBox.height + 2, HANDLE_SIZE, HANDLE_SIZE) - dc.DrawRectangle(self.BoundingBox.x - HANDLE_SIZE - 2, self.BoundingBox.y + self.BoundingBox.height + 2, HANDLE_SIZE, HANDLE_SIZE) - dc.DrawRectangle(self.BoundingBox.x - HANDLE_SIZE - 2, self.BoundingBox.y + (self.BoundingBox.height - HANDLE_SIZE) / 2, HANDLE_SIZE, HANDLE_SIZE) + if not getattr(dc, "printing", False): + if self.Highlighted: + self.DrawHighlightment(dc) + if self.Selected: + dc.SetPen(wx.BLACK_PEN) + dc.SetBrush(wx.BLACK_BRUSH) + dc.DrawRectangle(self.BoundingBox.x - HANDLE_SIZE - 2, self.BoundingBox.y - HANDLE_SIZE - 2, HANDLE_SIZE, HANDLE_SIZE) + dc.DrawRectangle(self.BoundingBox.x + (self.BoundingBox.width - HANDLE_SIZE) / 2, + self.BoundingBox.y - HANDLE_SIZE - 2, HANDLE_SIZE, HANDLE_SIZE) + dc.DrawRectangle(self.BoundingBox.x + self.BoundingBox.width + 2, + self.BoundingBox.y - HANDLE_SIZE - 2, HANDLE_SIZE, HANDLE_SIZE) + dc.DrawRectangle(self.BoundingBox.x + self.BoundingBox.width + 2, + self.BoundingBox.y + (self.BoundingBox.height - HANDLE_SIZE) / 2, HANDLE_SIZE, HANDLE_SIZE) + dc.DrawRectangle(self.BoundingBox.x + self.BoundingBox.width + 2, + self.BoundingBox.y + self.BoundingBox.height + 2, HANDLE_SIZE, HANDLE_SIZE) + dc.DrawRectangle(self.BoundingBox.x + (self.BoundingBox.width - HANDLE_SIZE) / 2, + self.BoundingBox.y + self.BoundingBox.height + 2, HANDLE_SIZE, HANDLE_SIZE) + dc.DrawRectangle(self.BoundingBox.x - HANDLE_SIZE - 2, self.BoundingBox.y + self.BoundingBox.height + 2, HANDLE_SIZE, HANDLE_SIZE) + dc.DrawRectangle(self.BoundingBox.x - HANDLE_SIZE - 2, self.BoundingBox.y + (self.BoundingBox.height - HANDLE_SIZE) / 2, HANDLE_SIZE, HANDLE_SIZE) #------------------------------------------------------------------------------- @@ -1930,15 +1931,21 @@ self.Segments = [] i = 0 while i < len(self.Points) - 1: - segment = vector(self.Points[i], self.Points[i + 1]) - if is_null_vector(segment) and i > 0: - segment = (self.Segments[-1][1], self.Segments[-1][0]) - if i < len(self.Points) - 2: - next = vector(self.Points[i + 1], self.Points[i + 2]) - if next == segment or is_null_vector(add_vectors(segment, next)): - self.Points.insert(i + 1, wx.Point(self.Points[i + 1].x, self.Points[i + 1].y)) - self.Segments.append(segment) - i += 1 + if 0 < i < len(self.Points) - 2 and \ + self.Points[i] == self.Points[i + 1] and \ + self.Segments[-1] == vector(self.Points[i + 1], self.Points[i + 2]): + for j in xrange(2): + self.Points.pop(i) + else: + segment = vector(self.Points[i], self.Points[i + 1]) + if is_null_vector(segment) and i > 0: + segment = (self.Segments[-1][1], self.Segments[-1][0]) + if i < len(self.Points) - 2: + next = vector(self.Points[i + 1], self.Points[i + 2]) + if next == segment or is_null_vector(add_vectors(segment, next)): + self.Points.insert(i + 1, wx.Point(self.Points[i + 1].x, self.Points[i + 1].y)) + self.Segments.append(segment) + i += 1 self.RefreshBoundingBox() self.RefreshRealPoints() @@ -2604,7 +2611,7 @@ dc.DrawLines(self.Points) dc.DrawPoint(self.Points[-1].x, self.Points[-1].y) # Draw the segment selected in red - if self.SelectedSegment is not None: + if not getattr(dc, "printing", False) and self.SelectedSegment is not None: dc.SetPen(wx.RED_PEN) dc.DrawLine(self.Points[self.SelectedSegment].x, self.Points[self.SelectedSegment].y, self.Points[self.SelectedSegment + 1].x, self.Points[self.SelectedSegment + 1].y) diff -r 127d524a5f1d -r 8d9e7edc0195 i18n/PLCOpenEditor_fr_FR.po --- a/i18n/PLCOpenEditor_fr_FR.po Thu Aug 20 09:03:31 2009 -0600 +++ b/i18n/PLCOpenEditor_fr_FR.po Wed Sep 02 08:30:34 2009 -0600 @@ -7,15 +7,15 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-07-24 16:55+0200\n" -"PO-Revision-Date: 2009-07-24 17:02+0100\n" +"POT-Creation-Date: 2009-08-26 19:19+0200\n" +"PO-Revision-Date: 2009-08-26 19:25+0100\n" "Last-Translator: \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../PLCOpenEditor.py:5044 +#: ../PLCOpenEditor.py:5046 msgid "" "\n" "An error happens.\n" @@ -41,41 +41,41 @@ "\n" "Erreur:\n" -#: ../PLCOpenEditor.py:3860 +#: ../PLCOpenEditor.py:3862 msgid " External" msgstr " Externe" -#: ../PLCOpenEditor.py:3859 +#: ../PLCOpenEditor.py:3861 msgid " InOut" msgstr " Entrée-Sortie" -#: ../PLCOpenEditor.py:3859 +#: ../PLCOpenEditor.py:3861 msgid " Input" msgstr " Entrée" -#: ../PLCOpenEditor.py:3860 +#: ../PLCOpenEditor.py:3862 msgid " Local" msgstr " Locale" -#: ../PLCOpenEditor.py:3859 +#: ../PLCOpenEditor.py:3861 msgid " Output" msgstr " Sortie" -#: ../PLCOpenEditor.py:3861 +#: ../PLCOpenEditor.py:3863 msgid " Temp" msgstr " Temporaire" -#: ../PLCOpenEditor.py:840 +#: ../PLCOpenEditor.py:842 msgid " (Debug)" msgstr " (Debug)" -#: ../PLCOpenEditor.py:5056 +#: ../PLCOpenEditor.py:5058 msgid " : " msgstr " : " -#: ../PLCOpenEditor.py:3283 -#: ../PLCOpenEditor.py:3446 -#: ../PLCOpenEditor.py:3590 +#: ../PLCOpenEditor.py:3285 +#: ../PLCOpenEditor.py:3448 +#: ../PLCOpenEditor.py:3592 #: ../Dialogs.py:1800 #, python-format msgid " and %s" @@ -101,8 +101,8 @@ msgid "\"%s\" can't use itself!" msgstr "\"%s\" ne peut pas s'utiliser lui-même !" -#: ../PLCOpenEditor.py:1617 -#: ../PLCOpenEditor.py:1637 +#: ../PLCOpenEditor.py:1619 +#: ../PLCOpenEditor.py:1639 #, python-format msgid "\"%s\" config already exists!" msgstr "La configuration \"%s\" existe déjà !" @@ -112,8 +112,8 @@ msgid "\"%s\" configuration already exists !!!" msgstr "La configuration \"%s\" existe déjà !!!" -#: ../PLCOpenEditor.py:1571 -#: ../PLCOpenEditor.py:3145 +#: ../PLCOpenEditor.py:1573 +#: ../PLCOpenEditor.py:3147 #, python-format msgid "\"%s\" data type already exists!" msgstr "Le type de données \"%s\" existe déjà !" @@ -123,8 +123,8 @@ msgid "\"%s\" element can't be paste here!!!" msgstr "L'élément \"%s\" ne peut être collé ici !!!" -#: ../PLCOpenEditor.py:3465 -#: ../PLCOpenEditor.py:3609 +#: ../PLCOpenEditor.py:3467 +#: ../PLCOpenEditor.py:3611 #: ../Viewer.py:248 #: ../Dialogs.py:261 #: ../Dialogs.py:898 @@ -137,14 +137,14 @@ 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:1562 -#: ../PLCOpenEditor.py:3141 -#: ../PLCOpenEditor.py:3294 -#: ../PLCOpenEditor.py:3457 -#: ../PLCOpenEditor.py:3601 -#: ../PLCOpenEditor.py:3672 -#: ../PLCOpenEditor.py:3735 -#: ../PLCOpenEditor.py:4449 +#: ../PLCOpenEditor.py:1564 +#: ../PLCOpenEditor.py:3143 +#: ../PLCOpenEditor.py:3296 +#: ../PLCOpenEditor.py:3459 +#: ../PLCOpenEditor.py:3603 +#: ../PLCOpenEditor.py:3674 +#: ../PLCOpenEditor.py:3737 +#: ../PLCOpenEditor.py:4451 #: ../Dialogs.py:253 #: ../Dialogs.py:652 #: ../Dialogs.py:890 @@ -167,20 +167,20 @@ msgid "\"%s\" is an invalid value!" msgstr "\"%s\" n'est pas une valeur valide !" -#: ../PLCOpenEditor.py:1097 -#: ../PLCOpenEditor.py:1126 +#: ../PLCOpenEditor.py:1099 +#: ../PLCOpenEditor.py:1128 #, python-format msgid "\"%s\" is not a valid folder!" msgstr "\"%s\" n'est pas un répertoire valide !" -#: ../PLCOpenEditor.py:1560 -#: ../PLCOpenEditor.py:3137 -#: ../PLCOpenEditor.py:3290 -#: ../PLCOpenEditor.py:3453 -#: ../PLCOpenEditor.py:3597 -#: ../PLCOpenEditor.py:3668 -#: ../PLCOpenEditor.py:3731 -#: ../PLCOpenEditor.py:4444 +#: ../PLCOpenEditor.py:1562 +#: ../PLCOpenEditor.py:3139 +#: ../PLCOpenEditor.py:3292 +#: ../PLCOpenEditor.py:3455 +#: ../PLCOpenEditor.py:3599 +#: ../PLCOpenEditor.py:3670 +#: ../PLCOpenEditor.py:3733 +#: ../PLCOpenEditor.py:4446 #: ../Dialogs.py:249 #: ../Dialogs.py:886 #: ../Dialogs.py:1529 @@ -192,14 +192,14 @@ msgstr "\"%s\" n'est pas un identifiant valide !" #: ../PLCOpenEditor.py:283 -#: ../PLCOpenEditor.py:2491 -#: ../PLCOpenEditor.py:2520 +#: ../PLCOpenEditor.py:2493 +#: ../PLCOpenEditor.py:2522 #, 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:1580 -#: ../PLCOpenEditor.py:3298 +#: ../PLCOpenEditor.py:1582 +#: ../PLCOpenEditor.py:3300 #: ../Viewer.py:246 #: ../Dialogs.py:257 #: ../Dialogs.py:894 @@ -262,21 +262,21 @@ msgid "%s body don't have text!" msgstr "Le code d'un %s n'a pas de texte !" -#: ../PLCOpenEditor.py:5032 #: ../PLCOpenEditor.py:5034 -#: ../PLCOpenEditor.py:5035 +#: ../PLCOpenEditor.py:5036 +#: ../PLCOpenEditor.py:5037 msgid ", " msgstr ", " -#: ../PLCOpenEditor.py:3285 -#: ../PLCOpenEditor.py:3448 -#: ../PLCOpenEditor.py:3592 +#: ../PLCOpenEditor.py:3287 +#: ../PLCOpenEditor.py:3450 +#: ../PLCOpenEditor.py:3594 #: ../Dialogs.py:1802 #, python-format msgid ", %s" msgstr ", %s" -#: ../PLCOpenEditor.py:5030 +#: ../PLCOpenEditor.py:5032 msgid ". " msgstr ". " @@ -285,29 +285,29 @@ msgid "A element with \"%s\" as name exists in this structure!" msgstr "Un élément nommé \"%s\" existe déjà dans la structure !" -#: ../PLCOpenEditor.py:1583 -#: ../PLCOpenEditor.py:1625 -#: ../PLCOpenEditor.py:1645 -#: ../PLCOpenEditor.py:3302 -#: ../PLCOpenEditor.py:3680 -#: ../PLCOpenEditor.py:3743 +#: ../PLCOpenEditor.py:1585 +#: ../PLCOpenEditor.py:1627 +#: ../PLCOpenEditor.py:1647 +#: ../PLCOpenEditor.py:3304 +#: ../PLCOpenEditor.py:3682 +#: ../PLCOpenEditor.py:3745 #, python-format msgid "A pou has an element with \"%s\" as name. It can generate 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:1620 -#: ../PLCOpenEditor.py:1640 +#: ../PLCOpenEditor.py:1622 +#: ../PLCOpenEditor.py:1642 #, python-format msgid "A pou is defined with \"%s\" as name. It can generate 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:1596 -#: ../PLCOpenEditor.py:1607 -#: ../PLCOpenEditor.py:3461 -#: ../PLCOpenEditor.py:3605 -#: ../PLCOpenEditor.py:3676 -#: ../PLCOpenEditor.py:3739 -#: ../PLCOpenEditor.py:4454 +#: ../PLCOpenEditor.py:1598 +#: ../PLCOpenEditor.py:1609 +#: ../PLCOpenEditor.py:3463 +#: ../PLCOpenEditor.py:3607 +#: ../PLCOpenEditor.py:3678 +#: ../PLCOpenEditor.py:3741 +#: ../PLCOpenEditor.py:4456 #: ../Dialogs.py:1537 #: ../Dialogs.py:2520 #: ../Dialogs.py:2587 @@ -315,20 +315,20 @@ msgid "A pou with \"%s\" as name exists!" msgstr "Un POU nommé \"%s\" existe déjà !" -#: ../PLCOpenEditor.py:1598 -#: ../PLCOpenEditor.py:1609 -#: ../PLCOpenEditor.py:4459 +#: ../PLCOpenEditor.py:1600 +#: ../PLCOpenEditor.py:1611 +#: ../PLCOpenEditor.py:4461 #: ../Dialogs.py:1541 #: ../Dialogs.py:2524 #, 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:445 +#: ../PLCOpenEditor.py:447 msgid "About" msgstr "A propos" -#: ../PLCOpenEditor.py:2614 +#: ../PLCOpenEditor.py:2616 msgid "About PLCOpenEditor" msgstr "A propos de PLCOpenEditor" @@ -341,11 +341,11 @@ msgid "Action" msgstr "Action" -#: ../PLCOpenEditor.py:3581 +#: ../PLCOpenEditor.py:3583 msgid "Action Name" msgstr "Nom de l'action" -#: ../PLCOpenEditor.py:3548 +#: ../PLCOpenEditor.py:3550 msgid "Action Name:" msgstr "Nom de l'action :" @@ -362,22 +362,22 @@ msgid "Actions:" msgstr "Actions :" -#: ../PLCOpenEditor.py:4244 +#: ../PLCOpenEditor.py:4246 #: ../Dialogs.py:2346 #: ../DataTypeEditor.py:539 msgid "Add" msgstr "Ajouter" -#: ../PLCOpenEditor.py:1800 -#: ../PLCOpenEditor.py:1873 +#: ../PLCOpenEditor.py:1802 +#: ../PLCOpenEditor.py:1875 msgid "Add Action" msgstr "Ajouter une action" -#: ../PLCOpenEditor.py:1856 +#: ../PLCOpenEditor.py:1858 msgid "Add Configuration" msgstr "Ajouter une configuration" -#: ../PLCOpenEditor.py:1844 +#: ../PLCOpenEditor.py:1846 msgid "Add DataType" msgstr "Ajouter un type de donnée" @@ -385,7 +385,7 @@ msgid "Add Divergence Branch" msgstr "Ajouter une branche à la divergence" -#: ../PLCOpenEditor.py:384 +#: ../PLCOpenEditor.py:386 msgid "Add Element" msgstr "Ajouter un élément" @@ -393,12 +393,12 @@ msgid "Add Instance" msgstr "Ajouter une instance" -#: ../PLCOpenEditor.py:1850 +#: ../PLCOpenEditor.py:1852 msgid "Add Pou" msgstr "Ajouter un POU" -#: ../PLCOpenEditor.py:1827 -#: ../PLCOpenEditor.py:1884 +#: ../PLCOpenEditor.py:1829 +#: ../PLCOpenEditor.py:1886 msgid "Add Resource" msgstr "Ajouter une resource" @@ -406,8 +406,8 @@ msgid "Add Task" msgstr "Ajouter une tâche" -#: ../PLCOpenEditor.py:1797 -#: ../PLCOpenEditor.py:1862 +#: ../PLCOpenEditor.py:1799 +#: ../PLCOpenEditor.py:1864 msgid "Add Transition" msgstr "Ajouter une transition" @@ -415,7 +415,7 @@ msgid "Add Wire Segment" msgstr "Ajouter un segment au fil" -#: ../PLCOpenEditor.py:2359 +#: ../PLCOpenEditor.py:2361 msgid "Add a new data type" msgstr "Ajouter un nouveau type de données" @@ -432,11 +432,11 @@ msgid "Add a new step" msgstr "Ajouter une nouvelle étape" -#: ../PLCOpenEditor.py:2416 +#: ../PLCOpenEditor.py:2418 msgid "Add new configuration" msgstr "Ajouter une nouvelle configuration" -#: ../PLCOpenEditor.py:2431 +#: ../PLCOpenEditor.py:2433 msgid "Add new resource" msgstr "Ajouter une nouvelle resource" @@ -452,7 +452,7 @@ msgid "Alignment" msgstr "Alignement" -#: ../PLCOpenEditor.py:3858 +#: ../PLCOpenEditor.py:3860 msgid "All" msgstr "Toutes" @@ -484,11 +484,11 @@ 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:2941 +#: ../PLCOpenEditor.py:2943 msgid "Author" msgstr "Auteur" -#: ../PLCOpenEditor.py:2926 +#: ../PLCOpenEditor.py:2928 msgid "Author Name (optional):" msgstr "Nom de l'auteur (optionel) :" @@ -498,7 +498,7 @@ msgid "Base Type:" msgstr "Type de base :" -#: ../PLCOpenEditor.py:4491 +#: ../PLCOpenEditor.py:4493 #: ../DataTypeEditor.py:798 msgid "Base Types" msgstr "Types de base" @@ -535,7 +535,7 @@ msgid "Block Properties" msgstr "Propriétés du bloc" -#: ../PLCOpenEditor.py:2077 +#: ../PLCOpenEditor.py:2079 #: ../Dialogs.py:269 msgid "Block Types" msgstr "Types de blocs" @@ -544,11 +544,11 @@ msgid "Bottom" msgstr "Bas" -#: ../PLCOpenEditor.py:2031 +#: ../PLCOpenEditor.py:2033 msgid "CSV Log" msgstr "Log CVS" -#: ../PLCOpenEditor.py:4072 +#: ../PLCOpenEditor.py:4074 msgid "Can affect a location only to local or global variables" msgstr "Une adresse ne peut être affecté qu'à des variables locales ou globales" @@ -559,16 +559,16 @@ 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 !" -#: ../PLCOpenEditor.py:4070 +#: ../PLCOpenEditor.py:4072 msgid "Can't affect a location to a function block instance" msgstr "Une adresse ne peut être affectée une instance de Function Block" -#: ../PLCOpenEditor.py:1092 +#: ../PLCOpenEditor.py:1094 #, python-format msgid "Can't generate program to file %s!" msgstr "Le programme n'a pu être généré dans le fichier \"%s\" !" -#: ../PLCOpenEditor.py:1124 +#: ../PLCOpenEditor.py:1126 #, python-format msgid "Can't save project to file %s!" msgstr "Le projet n'a pu être sauvé dans le fichier \"%s\" !" @@ -577,7 +577,7 @@ msgid "Center" msgstr "Centre" -#: ../PLCOpenEditor.py:1816 +#: ../PLCOpenEditor.py:1818 msgid "Change POU Type To" msgstr "Changer le type du POU pour" @@ -585,18 +585,18 @@ msgid "Character string" msgstr "Chaîne de caractères" -#: ../PLCOpenEditor.py:1031 -#: ../PLCOpenEditor.py:1082 -#: ../PLCOpenEditor.py:1118 +#: ../PLCOpenEditor.py:1033 +#: ../PLCOpenEditor.py:1084 +#: ../PLCOpenEditor.py:1120 msgid "Choose a file" msgstr "Choisissez un fichier" -#: ../PLCOpenEditor.py:3848 -#: ../PLCOpenEditor.py:3849 +#: ../PLCOpenEditor.py:3850 +#: ../PLCOpenEditor.py:3851 msgid "Class" msgstr "Classe" -#: ../PLCOpenEditor.py:4236 +#: ../PLCOpenEditor.py:4238 msgid "Class Filter:" msgstr "Filtre de classe :" @@ -604,7 +604,7 @@ msgid "Class:" msgstr "Classe :" -#: ../PLCOpenEditor.py:423 +#: ../PLCOpenEditor.py:425 msgid "Clear Errors\tCTRL+K" msgstr "Effacer les erreurs\tCTRL+K" @@ -616,7 +616,7 @@ msgid "Close\tCTRL+Q" msgstr "Fermer\tCTRL+Q" -#: ../PLCOpenEditor.py:961 +#: ../PLCOpenEditor.py:963 msgid "Close Application" msgstr "Fermer l'application" @@ -632,11 +632,11 @@ msgid "Comment" msgstr "Commentaire" -#: ../PLCOpenEditor.py:2910 +#: ../PLCOpenEditor.py:2912 msgid "Company Name (required):" msgstr "Nom de l'entreprise (obligatoire) :" -#: ../PLCOpenEditor.py:2918 +#: ../PLCOpenEditor.py:2920 msgid "Company URL (optional):" msgstr "URL de l'entreprise (optionel) :" @@ -648,7 +648,7 @@ msgid "Concatenation" msgstr "Concaténation" -#: ../PLCOpenEditor.py:394 +#: ../PLCOpenEditor.py:396 msgid "Configuration" msgstr "Configuration" @@ -672,12 +672,12 @@ msgid "Connectors:" msgstr "Connecteurs :" -#: ../PLCOpenEditor.py:3848 -#: ../PLCOpenEditor.py:3849 +#: ../PLCOpenEditor.py:3850 +#: ../PLCOpenEditor.py:3851 msgid "Constant" msgstr "Constante" -#: ../PLCOpenEditor.py:3000 +#: ../PLCOpenEditor.py:3002 msgid "Content Description (optional):" msgstr "Description du contenu (optionel) :" @@ -701,7 +701,7 @@ msgid "Conversion to time-of-day" msgstr "Conversion en heure de la journée" -#: ../PLCOpenEditor.py:379 +#: ../PLCOpenEditor.py:381 msgid "Copy\tCTRL+C" msgstr "Copier\tCtrl+C" @@ -709,16 +709,16 @@ msgid "Cosine" msgstr "Cosinus" -#: ../PLCOpenEditor.py:3223 +#: ../PLCOpenEditor.py:3225 msgid "Create a new POU" msgstr "Créer un nouveau POU" -#: ../PLCOpenEditor.py:1804 -#: ../PLCOpenEditor.py:2461 +#: ../PLCOpenEditor.py:1806 +#: ../PLCOpenEditor.py:2463 msgid "Create a new POU from" msgstr "Créer un nouveau POU à partir de" -#: ../PLCOpenEditor.py:3544 +#: ../PLCOpenEditor.py:3546 msgid "Create a new action" msgstr "Créer une nouvelle action" @@ -787,7 +787,7 @@ msgstr "Créer une nouvelle étape" #: ../PLCOpenEditor.py:211 -#: ../PLCOpenEditor.py:3400 +#: ../PLCOpenEditor.py:3402 msgid "Create a new transition" msgstr "Créer une nouvelle transition" @@ -797,11 +797,11 @@ msgid "Create a new variable" msgstr "Créer une nouvelle variable" -#: ../PLCOpenEditor.py:377 +#: ../PLCOpenEditor.py:379 msgid "Cut\tCTRL+X" msgstr "Couper\tCTRL+X" -#: ../PLCOpenEditor.py:386 +#: ../PLCOpenEditor.py:388 msgid "Data Type" msgstr "Type de donnée" @@ -826,12 +826,12 @@ msgid "Date subtraction" msgstr "Soustraction de date" -#: ../PLCOpenEditor.py:398 -#: ../PLCOpenEditor.py:1821 -#: ../PLCOpenEditor.py:1830 -#: ../PLCOpenEditor.py:1836 -#: ../PLCOpenEditor.py:4249 -#: ../PLCOpenEditor.py:4862 +#: ../PLCOpenEditor.py:400 +#: ../PLCOpenEditor.py:1823 +#: ../PLCOpenEditor.py:1832 +#: ../PLCOpenEditor.py:1838 +#: ../PLCOpenEditor.py:4251 +#: ../PLCOpenEditor.py:4864 #: ../Viewer.py:416 #: ../Dialogs.py:2351 #: ../DataTypeEditor.py:544 @@ -891,7 +891,7 @@ msgid "Division" msgstr "Division" -#: ../PLCOpenEditor.py:1086 +#: ../PLCOpenEditor.py:1088 msgid "Done" msgstr "Terminé" @@ -959,6 +959,10 @@ msgid "Elements :" msgstr "Eléments :" +#: ../PLCOpenEditor.py:376 +msgid "Enable Undo/Redo" +msgstr "Activer Défaire/Refaire" + #: ../DataTypeEditor.py:236 msgid "Enumerated" msgstr "Enumération" @@ -967,51 +971,51 @@ msgid "Equal to" msgstr "Egal à" -#: ../PLCOpenEditor.py:953 -#: ../PLCOpenEditor.py:1093 -#: ../PLCOpenEditor.py:1098 -#: ../PLCOpenEditor.py:1583 -#: ../PLCOpenEditor.py:1620 -#: ../PLCOpenEditor.py:1625 -#: ../PLCOpenEditor.py:1640 -#: ../PLCOpenEditor.py:1645 -#: ../PLCOpenEditor.py:2491 -#: ../PLCOpenEditor.py:2520 -#: ../PLCOpenEditor.py:3041 -#: ../PLCOpenEditor.py:3133 -#: ../PLCOpenEditor.py:3137 -#: ../PLCOpenEditor.py:3141 -#: ../PLCOpenEditor.py:3145 -#: ../PLCOpenEditor.py:3286 -#: ../PLCOpenEditor.py:3290 -#: ../PLCOpenEditor.py:3294 -#: ../PLCOpenEditor.py:3298 -#: ../PLCOpenEditor.py:3449 -#: ../PLCOpenEditor.py:3453 -#: ../PLCOpenEditor.py:3457 -#: ../PLCOpenEditor.py:3461 -#: ../PLCOpenEditor.py:3465 -#: ../PLCOpenEditor.py:3593 -#: ../PLCOpenEditor.py:3597 -#: ../PLCOpenEditor.py:3601 -#: ../PLCOpenEditor.py:3605 -#: ../PLCOpenEditor.py:3609 -#: ../PLCOpenEditor.py:3664 -#: ../PLCOpenEditor.py:3668 -#: ../PLCOpenEditor.py:3672 -#: ../PLCOpenEditor.py:3676 -#: ../PLCOpenEditor.py:3727 -#: ../PLCOpenEditor.py:3731 -#: ../PLCOpenEditor.py:3735 -#: ../PLCOpenEditor.py:3739 -#: ../PLCOpenEditor.py:4119 -#: ../PLCOpenEditor.py:4444 -#: ../PLCOpenEditor.py:4449 -#: ../PLCOpenEditor.py:4454 -#: ../PLCOpenEditor.py:4459 -#: ../PLCOpenEditor.py:4795 -#: ../PLCOpenEditor.py:5057 -#: ../PLCOpenEditor.py:5067 +#: ../PLCOpenEditor.py:955 +#: ../PLCOpenEditor.py:1095 +#: ../PLCOpenEditor.py:1100 +#: ../PLCOpenEditor.py:1585 +#: ../PLCOpenEditor.py:1622 +#: ../PLCOpenEditor.py:1627 +#: ../PLCOpenEditor.py:1642 +#: ../PLCOpenEditor.py:1647 +#: ../PLCOpenEditor.py:2493 +#: ../PLCOpenEditor.py:2522 +#: ../PLCOpenEditor.py:3043 +#: ../PLCOpenEditor.py:3135 +#: ../PLCOpenEditor.py:3139 +#: ../PLCOpenEditor.py:3143 +#: ../PLCOpenEditor.py:3147 +#: ../PLCOpenEditor.py:3288 +#: ../PLCOpenEditor.py:3292 +#: ../PLCOpenEditor.py:3296 +#: ../PLCOpenEditor.py:3300 +#: ../PLCOpenEditor.py:3451 +#: ../PLCOpenEditor.py:3455 +#: ../PLCOpenEditor.py:3459 +#: ../PLCOpenEditor.py:3463 +#: ../PLCOpenEditor.py:3467 +#: ../PLCOpenEditor.py:3595 +#: ../PLCOpenEditor.py:3599 +#: ../PLCOpenEditor.py:3603 +#: ../PLCOpenEditor.py:3607 +#: ../PLCOpenEditor.py:3611 +#: ../PLCOpenEditor.py:3666 +#: ../PLCOpenEditor.py:3670 +#: ../PLCOpenEditor.py:3674 +#: ../PLCOpenEditor.py:3678 +#: ../PLCOpenEditor.py:3729 +#: ../PLCOpenEditor.py:3733 +#: ../PLCOpenEditor.py:3737 +#: ../PLCOpenEditor.py:3741 +#: ../PLCOpenEditor.py:4121 +#: ../PLCOpenEditor.py:4446 +#: ../PLCOpenEditor.py:4451 +#: ../PLCOpenEditor.py:4456 +#: ../PLCOpenEditor.py:4461 +#: ../PLCOpenEditor.py:4797 +#: ../PLCOpenEditor.py:5059 +#: ../PLCOpenEditor.py:5069 #: ../Viewer.py:335 #: ../TextViewer.py:224 #: ../LDViewer.py:628 @@ -1078,15 +1082,15 @@ msgid "Expression:" msgstr "Expression :" -#: ../PLCOpenEditor.py:3860 +#: ../PLCOpenEditor.py:3862 msgid "External" msgstr "Externe" -#: ../PLCOpenEditor.py:2978 -#: ../PLCOpenEditor.py:3168 -#: ../PLCOpenEditor.py:3178 -#: ../PLCOpenEditor.py:3357 -#: ../PLCOpenEditor.py:3501 +#: ../PLCOpenEditor.py:2980 +#: ../PLCOpenEditor.py:3170 +#: ../PLCOpenEditor.py:3180 +#: ../PLCOpenEditor.py:3359 +#: ../PLCOpenEditor.py:3503 msgid "FBD" msgstr "FBD" @@ -1111,10 +1115,10 @@ msgid "Find position" msgstr "Trouver la position" -#: ../PLCOpenEditor.py:3041 -#: ../PLCOpenEditor.py:3286 -#: ../PLCOpenEditor.py:3449 -#: ../PLCOpenEditor.py:3593 +#: ../PLCOpenEditor.py:3043 +#: ../PLCOpenEditor.py:3288 +#: ../PLCOpenEditor.py:3451 +#: ../PLCOpenEditor.py:3595 #: ../Dialogs.py:1803 #, python-format msgid "Form isn't complete. %s must be filled!" @@ -1129,16 +1133,16 @@ 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:388 +#: ../PLCOpenEditor.py:390 msgid "Function" msgstr "Fonction" -#: ../PLCOpenEditor.py:390 -#: ../PLCOpenEditor.py:1811 +#: ../PLCOpenEditor.py:392 +#: ../PLCOpenEditor.py:1813 msgid "Function Block" msgstr "Bloc fonctionnel" -#: ../PLCOpenEditor.py:4506 +#: ../PLCOpenEditor.py:4508 msgid "Function Block Types" msgstr "Types de blocs fonctionnels" @@ -1167,15 +1171,15 @@ msgid "Generate Program\tCTRL+G" msgstr "Générer le program\tCTRL+G" -#: ../PLCOpenEditor.py:3861 +#: ../PLCOpenEditor.py:3863 msgid "Global" msgstr "Globale" -#: ../PLCOpenEditor.py:2028 +#: ../PLCOpenEditor.py:2030 msgid "Graphic Panel" msgstr "Graphique" -#: ../PLCOpenEditor.py:2983 +#: ../PLCOpenEditor.py:2985 msgid "Graphics" msgstr "Graphiques" @@ -1187,7 +1191,7 @@ msgid "Greater than or equal to" msgstr "Supérieur ou égal à" -#: ../PLCOpenEditor.py:2962 +#: ../PLCOpenEditor.py:2964 msgid "Height:" msgstr "Hauteur :" @@ -1201,29 +1205,29 @@ "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:3168 -#: ../PLCOpenEditor.py:3178 -#: ../PLCOpenEditor.py:3357 -#: ../PLCOpenEditor.py:3501 +#: ../PLCOpenEditor.py:3170 +#: ../PLCOpenEditor.py:3180 +#: ../PLCOpenEditor.py:3359 +#: ../PLCOpenEditor.py:3503 msgid "IL" msgstr "IL" -#: ../PLCOpenEditor.py:3859 +#: ../PLCOpenEditor.py:3861 #: ../Dialogs.py:426 msgid "InOut" msgstr "Entrée-Sortie" -#: ../PLCOpenEditor.py:4089 +#: ../PLCOpenEditor.py:4091 #, python-format msgid "Incompatible data types between \"%s\" and \"%s\"" msgstr "Types de donnée imcompatible entre \"%s\" et \"%s\"" -#: ../PLCOpenEditor.py:4100 +#: ../PLCOpenEditor.py:4102 #, python-format msgid "Incompatible size of data between \"%s\" and \"%s\"" msgstr "Taille de donnée incompatible entre \"%s\" et \"%s\"" -#: ../PLCOpenEditor.py:4096 +#: ../PLCOpenEditor.py:4098 #, python-format msgid "Incompatible size of data between \"%s\" and \"BOOL\"" msgstr "Taille de donnée incompatible entre \"%s\" et \"BOOL\"" @@ -1232,8 +1236,8 @@ msgid "Indicator" msgstr "Indicateur" -#: ../PLCOpenEditor.py:3848 -#: ../PLCOpenEditor.py:3849 +#: ../PLCOpenEditor.py:3850 +#: ../PLCOpenEditor.py:3851 #: ../DataTypeEditor.py:46 msgid "Initial Value" msgstr "Valeur initiale" @@ -1251,7 +1255,7 @@ msgid "Inline" msgstr "Inline" -#: ../PLCOpenEditor.py:3859 +#: ../PLCOpenEditor.py:3861 #: ../Dialogs.py:425 #: ../Dialogs.py:1472 msgid "Input" @@ -1270,8 +1274,8 @@ msgid "Instance with id %d doesn't exists!" msgstr "L'instance dont l'id est %d n'existe pas !" -#: ../PLCOpenEditor.py:559 -#: ../PLCOpenEditor.py:597 +#: ../PLCOpenEditor.py:561 +#: ../PLCOpenEditor.py:599 msgid "Instances" msgstr "Instances" @@ -1287,7 +1291,7 @@ "Intégrale\n" "Le bloc fonctionnel INTEGRAL intègre les valeurs de l'entrée XIN en fonction du temps." -#: ../PLCOpenEditor.py:3858 +#: ../PLCOpenEditor.py:3860 msgid "Interface" msgstr "Interface" @@ -1300,14 +1304,14 @@ msgid "Invalid plcopen element(s)!!!" msgstr "Les éléments plcopen ne sont pas valides !!! " -#: ../PLCOpenEditor.py:4784 -#: ../PLCOpenEditor.py:4787 +#: ../PLCOpenEditor.py:4786 +#: ../PLCOpenEditor.py:4789 #, python-format msgid "Invalid value \"%s\" for debug variable" msgstr "Chemin de variable à déboguer \"%s\" invalide" -#: ../PLCOpenEditor.py:4077 -#: ../PLCOpenEditor.py:4080 +#: ../PLCOpenEditor.py:4079 +#: ../PLCOpenEditor.py:4082 #, python-format msgid "Invalid value \"%s\" for location" msgstr "Adresse \"%s\" invalide " @@ -1318,11 +1322,11 @@ msgid "Invalid value \"%s\" for viewer block" msgstr "Valeur \"%s\" invalide pour un élément graphique" -#: ../PLCOpenEditor.py:2978 -#: ../PLCOpenEditor.py:3168 -#: ../PLCOpenEditor.py:3178 -#: ../PLCOpenEditor.py:3357 -#: ../PLCOpenEditor.py:3501 +#: ../PLCOpenEditor.py:2980 +#: ../PLCOpenEditor.py:3170 +#: ../PLCOpenEditor.py:3180 +#: ../PLCOpenEditor.py:3359 +#: ../PLCOpenEditor.py:3503 msgid "LD" msgstr "LD" @@ -1332,19 +1336,19 @@ 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:3276 -#: ../PLCOpenEditor.py:3439 -#: ../PLCOpenEditor.py:3583 +#: ../PLCOpenEditor.py:3278 +#: ../PLCOpenEditor.py:3441 +#: ../PLCOpenEditor.py:3585 msgid "Language" msgstr "Langue" -#: ../PLCOpenEditor.py:2992 +#: ../PLCOpenEditor.py:2994 msgid "Language (optional):" msgstr "Langue (optionnel) :" -#: ../PLCOpenEditor.py:3244 -#: ../PLCOpenEditor.py:3412 -#: ../PLCOpenEditor.py:3556 +#: ../PLCOpenEditor.py:3246 +#: ../PLCOpenEditor.py:3414 +#: ../PLCOpenEditor.py:3558 msgid "Language:" msgstr "Langue :" @@ -1368,7 +1372,7 @@ msgid "Less than or equal to" msgstr "Inférieur ou égal à" -#: ../PLCOpenEditor.py:638 +#: ../PLCOpenEditor.py:640 msgid "Library" msgstr "Librairie" @@ -1376,11 +1380,11 @@ msgid "Limitation" msgstr "Limitation" -#: ../PLCOpenEditor.py:3860 +#: ../PLCOpenEditor.py:3862 msgid "Local" msgstr "Locale" -#: ../PLCOpenEditor.py:3848 +#: ../PLCOpenEditor.py:3850 msgid "Location" msgstr "Adresse" @@ -1408,7 +1412,7 @@ msgid "Minimum:" msgstr "Minimum :" -#: ../PLCOpenEditor.py:3007 +#: ../PLCOpenEditor.py:3009 msgid "Miscellaneous" msgstr "Divers" @@ -1440,8 +1444,8 @@ msgid "Multiplication" msgstr "Multiplication" -#: ../PLCOpenEditor.py:3848 -#: ../PLCOpenEditor.py:3849 +#: ../PLCOpenEditor.py:3850 +#: ../PLCOpenEditor.py:3851 #: ../RessourceEditor.py:79 #: ../RessourceEditor.py:83 #: ../DataTypeEditor.py:46 @@ -1474,7 +1478,7 @@ msgid "New item" msgstr "Nouvel élément" -#: ../PLCOpenEditor.py:3853 +#: ../PLCOpenEditor.py:3855 msgid "No" msgstr "Non" @@ -1497,7 +1501,7 @@ 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:2606 +#: ../PLCOpenEditor.py:2608 msgid "" "No documentation available.\n" "Coming soon." @@ -1551,11 +1555,11 @@ msgid "Open\tCTRL+O" msgstr "Ouvrir\tCTRL+O" -#: ../PLCOpenEditor.py:2934 +#: ../PLCOpenEditor.py:2936 msgid "Organization (optional):" msgstr "Groupe (optionnel) :" -#: ../PLCOpenEditor.py:3859 +#: ../PLCOpenEditor.py:3861 #: ../Dialogs.py:427 #: ../Dialogs.py:1477 msgid "Output" @@ -1569,33 +1573,33 @@ "PID\n" "Le bloc fonctionnel PID (Proportionnel, Intégrale, Dérivée) fournit un controller de boucle fermé classique à trois paramètres." -#: ../PLCOpenEditor.py:1031 -#: ../PLCOpenEditor.py:1118 +#: ../PLCOpenEditor.py:1033 +#: ../PLCOpenEditor.py:1120 msgid "PLCOpen files (*.xml)|*.xml|All files|*.*" msgstr "Fichiers PLCOpen (*.xml)|*.xml|Tous les fichiers|*.*" -#: ../PLCOpenEditor.py:485 -#: ../PLCOpenEditor.py:838 +#: ../PLCOpenEditor.py:487 +#: ../PLCOpenEditor.py:840 msgid "PLCOpenEditor" msgstr "PLCOpenEditor" -#: ../PLCOpenEditor.py:438 +#: ../PLCOpenEditor.py:440 msgid "PLCOpenEditor\tF1" msgstr "PLCOpenEditor\tF1" -#: ../PLCOpenEditor.py:3272 +#: ../PLCOpenEditor.py:3274 msgid "POU Name" msgstr "Nom du POU" -#: ../PLCOpenEditor.py:3227 +#: ../PLCOpenEditor.py:3229 msgid "POU Name:" msgstr "Nom du POU :" -#: ../PLCOpenEditor.py:3274 +#: ../PLCOpenEditor.py:3276 msgid "POU Type" msgstr "Type du POU" -#: ../PLCOpenEditor.py:3235 +#: ../PLCOpenEditor.py:3237 msgid "POU Type:" msgstr "Type du POU :" @@ -1603,16 +1607,16 @@ msgid "Page Setup" msgstr "Mise en page..." -#: ../PLCOpenEditor.py:2950 +#: ../PLCOpenEditor.py:2952 msgid "Page Size (optional):" msgstr "Taille de la page (optionnel) :" -#: ../PLCOpenEditor.py:5000 +#: ../PLCOpenEditor.py:5002 #, python-format msgid "Page: %d" msgstr "Page: %d" -#: ../PLCOpenEditor.py:381 +#: ../PLCOpenEditor.py:383 msgid "Paste\tCTRL+V" msgstr "Coller\tCTRL+V" @@ -1626,7 +1630,7 @@ msgid "Please choose a target" msgstr "Choisissez une cible" -#: ../PLCOpenEditor.py:2461 +#: ../PLCOpenEditor.py:2463 msgid "Please enter POU name" msgstr "Saisissez le nom du POU" @@ -1637,17 +1641,17 @@ msgid "Please enter comment text" msgstr "Saisissez le texte du commentaire" -#: ../PLCOpenEditor.py:2416 -#: ../PLCOpenEditor.py:3647 +#: ../PLCOpenEditor.py:2418 +#: ../PLCOpenEditor.py:3649 msgid "Please enter configuration name" msgstr "Saisissez le nom de la configuration" -#: ../PLCOpenEditor.py:2359 +#: ../PLCOpenEditor.py:2361 msgid "Please enter data type name" msgstr "Saisissez le nom du type de donnée" -#: ../PLCOpenEditor.py:2431 -#: ../PLCOpenEditor.py:3710 +#: ../PLCOpenEditor.py:2433 +#: ../PLCOpenEditor.py:3712 msgid "Please enter resource name" msgstr "Saisissez le nom de la ressource" @@ -1657,7 +1661,7 @@ msgid "Please enter step name" msgstr "Saisissez le nom de l'étape" -#: ../PLCOpenEditor.py:3118 +#: ../PLCOpenEditor.py:3120 msgid "Please enter text" msgstr "Saisissez le texte" @@ -1688,7 +1692,7 @@ msgid "Print" msgstr "Imprimer" -#: ../PLCOpenEditor.py:1150 +#: ../PLCOpenEditor.py:1152 msgid "Print preview" msgstr "Aperçu avant impression" @@ -1700,24 +1704,24 @@ msgid "Priority:" msgstr "Priorité :" -#: ../PLCOpenEditor.py:2878 +#: ../PLCOpenEditor.py:2880 msgid "Product Name (required):" msgstr "Nom du produit (obligatoire) :" -#: ../PLCOpenEditor.py:2894 +#: ../PLCOpenEditor.py:2896 msgid "Product Release (optional):" msgstr "Publication du produit (optionnel) :" -#: ../PLCOpenEditor.py:2886 +#: ../PLCOpenEditor.py:2888 msgid "Product Version (required):" msgstr "Version du produit (obligatoire) :" -#: ../PLCOpenEditor.py:392 -#: ../PLCOpenEditor.py:1814 +#: ../PLCOpenEditor.py:394 +#: ../PLCOpenEditor.py:1816 msgid "Program" msgstr "Programme" -#: ../PLCOpenEditor.py:1095 +#: ../PLCOpenEditor.py:1097 msgid "Program was successfully generated!" msgstr "Le programme a été généré avec succès !" @@ -1729,20 +1733,20 @@ msgid "Programs can't be used by other POUs!" msgstr "Les programmes ne peuvent être utilisés par les autres POUs !" -#: ../PLCOpenEditor.py:497 -#: ../PLCOpenEditor.py:2901 +#: ../PLCOpenEditor.py:499 +#: ../PLCOpenEditor.py:2903 msgid "Project" msgstr "Projet" -#: ../PLCOpenEditor.py:2862 +#: ../PLCOpenEditor.py:2864 msgid "Project Name (required):" msgstr "Nom du projet (obligatoire) :" -#: ../PLCOpenEditor.py:2870 +#: ../PLCOpenEditor.py:2872 msgid "Project Version (optional):" msgstr "Version du projet (optionnel) :" -#: ../PLCOpenEditor.py:2848 +#: ../PLCOpenEditor.py:2850 msgid "Project properties" msgstr "Propriétés du projet" @@ -1794,7 +1798,7 @@ msgid "Reference" msgstr "Référence" -#: ../PLCOpenEditor.py:420 +#: ../PLCOpenEditor.py:422 msgid "Refresh\tF5" msgstr "Actualiser\tF5" @@ -1802,7 +1806,7 @@ msgid "Remainder (modulo)" msgstr "Modulo" -#: ../PLCOpenEditor.py:1818 +#: ../PLCOpenEditor.py:1820 msgid "Rename" msgstr "Renommer" @@ -1822,12 +1826,12 @@ msgid "Resources" msgstr "Ressources" -#: ../PLCOpenEditor.py:3848 -#: ../PLCOpenEditor.py:3849 +#: ../PLCOpenEditor.py:3850 +#: ../PLCOpenEditor.py:3851 msgid "Retain" msgstr "Persistante" -#: ../PLCOpenEditor.py:4227 +#: ../PLCOpenEditor.py:4229 msgid "Return Type:" msgstr "Type de retour :" @@ -1864,8 +1868,8 @@ msgid "Rounding up/down" msgstr "Arrondi" -#: ../PLCOpenEditor.py:2978 -#: ../PLCOpenEditor.py:3178 +#: ../PLCOpenEditor.py:2980 +#: ../PLCOpenEditor.py:3180 msgid "SFC" msgstr "SFC" @@ -1877,14 +1881,14 @@ "Bascule SR\n" "La bascule SR est une bascule où le Set est dominant." -#: ../PLCOpenEditor.py:3168 -#: ../PLCOpenEditor.py:3178 -#: ../PLCOpenEditor.py:3357 -#: ../PLCOpenEditor.py:3501 +#: ../PLCOpenEditor.py:3170 +#: ../PLCOpenEditor.py:3180 +#: ../PLCOpenEditor.py:3359 +#: ../PLCOpenEditor.py:3503 msgid "ST" msgstr "ST" -#: ../PLCOpenEditor.py:1082 +#: ../PLCOpenEditor.py:1084 msgid "ST files (*.st)|*.st|All files|*.*" msgstr "Fichiers ST (*.st)|*.st|Tous les fichiers|*.*" @@ -1896,20 +1900,20 @@ msgid "Save As...\tCTRL+SHIFT+S" msgstr "Enregistrer sous...\tCTRL+SHIFT+S" -#: ../PLCOpenEditor.py:2970 +#: ../PLCOpenEditor.py:2972 msgid "Scaling:" msgstr "Echelle :" -#: ../PLCOpenEditor.py:396 +#: ../PLCOpenEditor.py:398 msgid "Select All\tCTRL+A" msgstr "Tout sélectionner\tCTRL+A" -#: ../PLCOpenEditor.py:4102 +#: ../PLCOpenEditor.py:4104 msgid "Select a variable class:" msgstr "Sélectionner une direction pour la variable :" -#: ../PLCOpenEditor.py:604 -#: ../PLCOpenEditor.py:616 +#: ../PLCOpenEditor.py:606 +#: ../PLCOpenEditor.py:618 msgid "Select an object" msgstr "Sélectionner un objet" @@ -1993,7 +1997,7 @@ msgid "Tasks:" msgstr "Tâches :" -#: ../PLCOpenEditor.py:3861 +#: ../PLCOpenEditor.py:3863 msgid "Temp" msgstr "Temporaire" @@ -2001,11 +2005,11 @@ msgid "The group of block must be coherent!" msgstr "Le groupe de blocs doit être cohérent !" -#: ../PLCOpenEditor.py:961 +#: ../PLCOpenEditor.py:963 msgid "There are changes, do you want to save?" msgstr "Le projet a été modifié. Voulez-vous l'enregistrer ?" -#: ../PLCOpenEditor.py:1169 +#: ../PLCOpenEditor.py:1171 msgid "" "There was a problem printing.\n" "Perhaps your current printer is not set correctly?" @@ -2050,7 +2054,7 @@ msgid "Time-of-day subtraction" msgstr "Soustraction d'horodatage" -#: ../PLCOpenEditor.py:608 +#: ../PLCOpenEditor.py:610 msgid "Toolbar" msgstr "Barre d'outils" @@ -2058,11 +2062,11 @@ msgid "Top" msgstr "Haut" -#: ../PLCOpenEditor.py:3437 +#: ../PLCOpenEditor.py:3439 msgid "Transition Name" msgstr "Nom de la transition" -#: ../PLCOpenEditor.py:3404 +#: ../PLCOpenEditor.py:3406 msgid "Transition Name:" msgstr "Nom de la transition :" @@ -2085,8 +2089,8 @@ msgid "Transitions" msgstr "Transitions" -#: ../PLCOpenEditor.py:3848 -#: ../PLCOpenEditor.py:3849 +#: ../PLCOpenEditor.py:3850 +#: ../PLCOpenEditor.py:3851 #: ../RessourceEditor.py:83 #: ../Dialogs.py:2105 #: ../DataTypeEditor.py:46 @@ -2109,8 +2113,8 @@ msgid "Type:" msgstr "Type :" -#: ../PLCOpenEditor.py:560 -#: ../PLCOpenEditor.py:596 +#: ../PLCOpenEditor.py:562 +#: ../PLCOpenEditor.py:598 msgid "Types" msgstr "Types" @@ -2133,7 +2137,7 @@ msgid "Unnamed%d" msgstr "Sansnom%d" -#: ../PLCOpenEditor.py:4098 +#: ../PLCOpenEditor.py:4100 #, python-format msgid "Unrecognized data size \"%s\"" msgstr "Taille de donnée \"%s\" non identifié !" @@ -2154,7 +2158,7 @@ "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." -#: ../PLCOpenEditor.py:4497 +#: ../PLCOpenEditor.py:4499 #: ../DataTypeEditor.py:804 msgid "User Data Types" msgstr "Types de donnée du projet" @@ -2163,7 +2167,7 @@ msgid "User-defined POUs" msgstr "POUs du projet" -#: ../PLCOpenEditor.py:4614 +#: ../PLCOpenEditor.py:4616 #: ../Dialogs.py:2105 msgid "Value" msgstr "Valeur" @@ -2176,7 +2180,7 @@ msgid "Values:" msgstr "Valeurs" -#: ../PLCOpenEditor.py:4614 +#: ../PLCOpenEditor.py:4616 #: ../Dialogs.py:2109 msgid "Variable" msgstr "Variable" @@ -2185,7 +2189,7 @@ msgid "Variable Properties" msgstr "Propriétés de la variable" -#: ../PLCOpenEditor.py:4102 +#: ../PLCOpenEditor.py:4104 msgid "Variable class" msgstr "Direction de la variable" @@ -2194,32 +2198,32 @@ msgid "Variable don't belong to this POU!" msgstr "La variable n'appartient pas à ce POU !" -#: ../PLCOpenEditor.py:573 -#: ../PLCOpenEditor.py:624 -#: ../PLCOpenEditor.py:3860 +#: ../PLCOpenEditor.py:575 +#: ../PLCOpenEditor.py:626 +#: ../PLCOpenEditor.py:3862 msgid "Variables" msgstr "Variables" -#: ../PLCOpenEditor.py:3302 -#: ../PLCOpenEditor.py:3680 -#: ../PLCOpenEditor.py:3743 +#: ../PLCOpenEditor.py:3304 +#: ../PLCOpenEditor.py:3682 +#: ../PLCOpenEditor.py:3745 #: ../LDViewer.py:859 msgid "Warning" msgstr "Attention" -#: ../PLCOpenEditor.py:2954 +#: ../PLCOpenEditor.py:2956 msgid "Width:" msgstr "Longueur :" -#: ../PLCOpenEditor.py:2697 +#: ../PLCOpenEditor.py:2699 msgid "X Scale:" msgstr "Echelle X :" -#: ../PLCOpenEditor.py:2705 +#: ../PLCOpenEditor.py:2707 msgid "Y Scale:" msgstr "Echelle Y :" -#: ../PLCOpenEditor.py:3853 +#: ../PLCOpenEditor.py:3855 msgid "Yes" msgstr "Oui" @@ -2231,46 +2235,46 @@ 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:3133 -#: ../PLCOpenEditor.py:3664 -#: ../PLCOpenEditor.py:3727 +#: ../PLCOpenEditor.py:3135 +#: ../PLCOpenEditor.py:3666 +#: ../PLCOpenEditor.py:3729 #: ../Dialogs.py:1525 #: ../Dialogs.py:2508 #: ../Dialogs.py:2575 msgid "You must type a name!" msgstr "Vous devez saisir un nom !" -#: ../PLCOpenEditor.py:426 +#: ../PLCOpenEditor.py:428 msgid "Zoom" msgstr "Zoom" -#: ../PLCOpenEditor.py:1091 +#: ../PLCOpenEditor.py:1093 #, python-format msgid "error: %s\n" msgstr "erreur: %s\n" -#: ../PLCOpenEditor.py:5032 #: ../PLCOpenEditor.py:5034 +#: ../PLCOpenEditor.py:5036 msgid "file : " msgstr "fichier :" -#: ../PLCOpenEditor.py:3173 +#: ../PLCOpenEditor.py:3175 msgid "function" msgstr "fonction" -#: ../PLCOpenEditor.py:5035 +#: ../PLCOpenEditor.py:5037 msgid "function : " msgstr "fonction :" -#: ../PLCOpenEditor.py:3173 +#: ../PLCOpenEditor.py:3175 msgid "functionBlock" msgstr "Bloc fonctionnel" -#: ../PLCOpenEditor.py:5035 +#: ../PLCOpenEditor.py:5037 msgid "line : " msgstr "ligne :" -#: ../PLCOpenEditor.py:3173 +#: ../PLCOpenEditor.py:3175 msgid "program" msgstr "programme" @@ -2286,7 +2290,7 @@ msgid "string right of" msgstr "Caractères à droite de" -#: ../PLCOpenEditor.py:1089 +#: ../PLCOpenEditor.py:1091 #, python-format msgid "warning: %s\n" msgstr "attention: %s\n" diff -r 127d524a5f1d -r 8d9e7edc0195 i18n/messages.pot --- a/i18n/messages.pot Thu Aug 20 09:03:31 2009 -0600 +++ b/i18n/messages.pot Wed Sep 02 08:30:34 2009 -0600 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-07-24 16:55+0200\n" +"POT-Creation-Date: 2009-08-26 19:19+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -16,7 +16,7 @@ "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: ../PLCOpenEditor.py:5044 +#: ../PLCOpenEditor.py:5046 msgid "" "\n" "An error happens.\n" @@ -31,39 +31,39 @@ "Error:\n" msgstr "" -#: ../PLCOpenEditor.py:3860 +#: ../PLCOpenEditor.py:3862 msgid " External" msgstr "" -#: ../PLCOpenEditor.py:3859 +#: ../PLCOpenEditor.py:3861 msgid " InOut" msgstr "" -#: ../PLCOpenEditor.py:3859 +#: ../PLCOpenEditor.py:3861 msgid " Input" msgstr "" -#: ../PLCOpenEditor.py:3860 +#: ../PLCOpenEditor.py:3862 msgid " Local" msgstr "" -#: ../PLCOpenEditor.py:3859 +#: ../PLCOpenEditor.py:3861 msgid " Output" msgstr "" -#: ../PLCOpenEditor.py:3861 +#: ../PLCOpenEditor.py:3863 msgid " Temp" msgstr "" -#: ../PLCOpenEditor.py:840 +#: ../PLCOpenEditor.py:842 msgid " (Debug)" msgstr "" -#: ../PLCOpenEditor.py:5056 +#: ../PLCOpenEditor.py:5058 msgid " : " msgstr "" -#: ../PLCOpenEditor.py:3283 ../PLCOpenEditor.py:3446 ../PLCOpenEditor.py:3590 +#: ../PLCOpenEditor.py:3285 ../PLCOpenEditor.py:3448 ../PLCOpenEditor.py:3592 #: ../Dialogs.py:1800 #, python-format msgid " and %s" @@ -89,7 +89,7 @@ msgid "\"%s\" can't use itself!" msgstr "" -#: ../PLCOpenEditor.py:1617 ../PLCOpenEditor.py:1637 +#: ../PLCOpenEditor.py:1619 ../PLCOpenEditor.py:1639 #, python-format msgid "\"%s\" config already exists!" msgstr "" @@ -99,7 +99,7 @@ msgid "\"%s\" configuration already exists !!!" msgstr "" -#: ../PLCOpenEditor.py:1571 ../PLCOpenEditor.py:3145 +#: ../PLCOpenEditor.py:1573 ../PLCOpenEditor.py:3147 #, python-format msgid "\"%s\" data type already exists!" msgstr "" @@ -109,7 +109,7 @@ msgid "\"%s\" element can't be paste here!!!" msgstr "" -#: ../PLCOpenEditor.py:3465 ../PLCOpenEditor.py:3609 ../Viewer.py:248 +#: ../PLCOpenEditor.py:3467 ../PLCOpenEditor.py:3611 ../Viewer.py:248 #: ../Dialogs.py:261 ../Dialogs.py:898 #, python-format msgid "\"%s\" element for this pou already exists!" @@ -120,9 +120,9 @@ msgid "\"%s\" function cancelled in \"%s\" POU: No input connected" msgstr "" -#: ../PLCOpenEditor.py:1562 ../PLCOpenEditor.py:3141 ../PLCOpenEditor.py:3294 -#: ../PLCOpenEditor.py:3457 ../PLCOpenEditor.py:3601 ../PLCOpenEditor.py:3672 -#: ../PLCOpenEditor.py:3735 ../PLCOpenEditor.py:4449 ../Dialogs.py:253 +#: ../PLCOpenEditor.py:1564 ../PLCOpenEditor.py:3143 ../PLCOpenEditor.py:3296 +#: ../PLCOpenEditor.py:3459 ../PLCOpenEditor.py:3603 ../PLCOpenEditor.py:3674 +#: ../PLCOpenEditor.py:3737 ../PLCOpenEditor.py:4451 ../Dialogs.py:253 #: ../Dialogs.py:652 ../Dialogs.py:890 ../Dialogs.py:1533 ../Dialogs.py:2516 #: ../Dialogs.py:2583 ../DataTypeEditor.py:702 ../DataTypeEditor.py:762 #, python-format @@ -139,26 +139,26 @@ msgid "\"%s\" is an invalid value!" msgstr "" -#: ../PLCOpenEditor.py:1097 ../PLCOpenEditor.py:1126 +#: ../PLCOpenEditor.py:1099 ../PLCOpenEditor.py:1128 #, python-format msgid "\"%s\" is not a valid folder!" msgstr "" -#: ../PLCOpenEditor.py:1560 ../PLCOpenEditor.py:3137 ../PLCOpenEditor.py:3290 -#: ../PLCOpenEditor.py:3453 ../PLCOpenEditor.py:3597 ../PLCOpenEditor.py:3668 -#: ../PLCOpenEditor.py:3731 ../PLCOpenEditor.py:4444 ../Dialogs.py:249 +#: ../PLCOpenEditor.py:1562 ../PLCOpenEditor.py:3139 ../PLCOpenEditor.py:3292 +#: ../PLCOpenEditor.py:3455 ../PLCOpenEditor.py:3599 ../PLCOpenEditor.py:3670 +#: ../PLCOpenEditor.py:3733 ../PLCOpenEditor.py:4446 ../Dialogs.py:249 #: ../Dialogs.py:886 ../Dialogs.py:1529 ../Dialogs.py:2512 ../Dialogs.py:2579 #: ../DataTypeEditor.py:757 #, python-format msgid "\"%s\" is not a valid identifier!" msgstr "" -#: ../PLCOpenEditor.py:283 ../PLCOpenEditor.py:2491 ../PLCOpenEditor.py:2520 +#: ../PLCOpenEditor.py:283 ../PLCOpenEditor.py:2493 ../PLCOpenEditor.py:2522 #, python-format msgid "\"%s\" is used by one or more POUs. It can't be removed!" msgstr "" -#: ../PLCOpenEditor.py:1580 ../PLCOpenEditor.py:3298 ../Viewer.py:246 +#: ../PLCOpenEditor.py:1582 ../PLCOpenEditor.py:3300 ../Viewer.py:246 #: ../Dialogs.py:257 ../Dialogs.py:894 #, python-format msgid "\"%s\" pou already exists!" @@ -213,17 +213,17 @@ msgid "%s body don't have text!" msgstr "" -#: ../PLCOpenEditor.py:5032 ../PLCOpenEditor.py:5034 ../PLCOpenEditor.py:5035 +#: ../PLCOpenEditor.py:5034 ../PLCOpenEditor.py:5036 ../PLCOpenEditor.py:5037 msgid ", " msgstr "" -#: ../PLCOpenEditor.py:3285 ../PLCOpenEditor.py:3448 ../PLCOpenEditor.py:3592 +#: ../PLCOpenEditor.py:3287 ../PLCOpenEditor.py:3450 ../PLCOpenEditor.py:3594 #: ../Dialogs.py:1802 #, python-format msgid ", %s" msgstr "" -#: ../PLCOpenEditor.py:5030 +#: ../PLCOpenEditor.py:5032 msgid ". " msgstr "" @@ -232,36 +232,36 @@ msgid "A element with \"%s\" as name exists in this structure!" msgstr "" -#: ../PLCOpenEditor.py:1583 ../PLCOpenEditor.py:1625 ../PLCOpenEditor.py:1645 -#: ../PLCOpenEditor.py:3302 ../PLCOpenEditor.py:3680 ../PLCOpenEditor.py:3743 +#: ../PLCOpenEditor.py:1585 ../PLCOpenEditor.py:1627 ../PLCOpenEditor.py:1647 +#: ../PLCOpenEditor.py:3304 ../PLCOpenEditor.py:3682 ../PLCOpenEditor.py:3745 #, python-format msgid "A pou has an element with \"%s\" as name. It can generate a conflict. Do you wish to continue?" msgstr "" -#: ../PLCOpenEditor.py:1620 ../PLCOpenEditor.py:1640 +#: ../PLCOpenEditor.py:1622 ../PLCOpenEditor.py:1642 #, python-format msgid "A pou is defined with \"%s\" as name. It can generate a conflict. Do you wish to continue?" msgstr "" -#: ../PLCOpenEditor.py:1596 ../PLCOpenEditor.py:1607 ../PLCOpenEditor.py:3461 -#: ../PLCOpenEditor.py:3605 ../PLCOpenEditor.py:3676 ../PLCOpenEditor.py:3739 -#: ../PLCOpenEditor.py:4454 ../Dialogs.py:1537 ../Dialogs.py:2520 +#: ../PLCOpenEditor.py:1598 ../PLCOpenEditor.py:1609 ../PLCOpenEditor.py:3463 +#: ../PLCOpenEditor.py:3607 ../PLCOpenEditor.py:3678 ../PLCOpenEditor.py:3741 +#: ../PLCOpenEditor.py:4456 ../Dialogs.py:1537 ../Dialogs.py:2520 #: ../Dialogs.py:2587 #, python-format msgid "A pou with \"%s\" as name exists!" msgstr "" -#: ../PLCOpenEditor.py:1598 ../PLCOpenEditor.py:1609 ../PLCOpenEditor.py:4459 +#: ../PLCOpenEditor.py:1600 ../PLCOpenEditor.py:1611 ../PLCOpenEditor.py:4461 #: ../Dialogs.py:1541 ../Dialogs.py:2524 #, python-format msgid "A variable with \"%s\" as name already exists in this pou!" msgstr "" -#: ../PLCOpenEditor.py:445 +#: ../PLCOpenEditor.py:447 msgid "About" msgstr "" -#: ../PLCOpenEditor.py:2614 +#: ../PLCOpenEditor.py:2616 msgid "About PLCOpenEditor" msgstr "" @@ -273,11 +273,11 @@ msgid "Action" msgstr "" -#: ../PLCOpenEditor.py:3581 +#: ../PLCOpenEditor.py:3583 msgid "Action Name" msgstr "" -#: ../PLCOpenEditor.py:3548 +#: ../PLCOpenEditor.py:3550 msgid "Action Name:" msgstr "" @@ -294,19 +294,19 @@ msgid "Actions:" msgstr "" -#: ../PLCOpenEditor.py:4244 ../Dialogs.py:2346 ../DataTypeEditor.py:539 +#: ../PLCOpenEditor.py:4246 ../Dialogs.py:2346 ../DataTypeEditor.py:539 msgid "Add" msgstr "" -#: ../PLCOpenEditor.py:1800 ../PLCOpenEditor.py:1873 +#: ../PLCOpenEditor.py:1802 ../PLCOpenEditor.py:1875 msgid "Add Action" msgstr "" -#: ../PLCOpenEditor.py:1856 +#: ../PLCOpenEditor.py:1858 msgid "Add Configuration" msgstr "" -#: ../PLCOpenEditor.py:1844 +#: ../PLCOpenEditor.py:1846 msgid "Add DataType" msgstr "" @@ -314,7 +314,7 @@ msgid "Add Divergence Branch" msgstr "" -#: ../PLCOpenEditor.py:384 +#: ../PLCOpenEditor.py:386 msgid "Add Element" msgstr "" @@ -322,11 +322,11 @@ msgid "Add Instance" msgstr "" -#: ../PLCOpenEditor.py:1850 +#: ../PLCOpenEditor.py:1852 msgid "Add Pou" msgstr "" -#: ../PLCOpenEditor.py:1827 ../PLCOpenEditor.py:1884 +#: ../PLCOpenEditor.py:1829 ../PLCOpenEditor.py:1886 msgid "Add Resource" msgstr "" @@ -334,7 +334,7 @@ msgid "Add Task" msgstr "" -#: ../PLCOpenEditor.py:1797 ../PLCOpenEditor.py:1862 +#: ../PLCOpenEditor.py:1799 ../PLCOpenEditor.py:1864 msgid "Add Transition" msgstr "" @@ -342,7 +342,7 @@ msgid "Add Wire Segment" msgstr "" -#: ../PLCOpenEditor.py:2359 +#: ../PLCOpenEditor.py:2361 msgid "Add a new data type" msgstr "" @@ -358,11 +358,11 @@ msgid "Add a new step" msgstr "" -#: ../PLCOpenEditor.py:2416 +#: ../PLCOpenEditor.py:2418 msgid "Add new configuration" msgstr "" -#: ../PLCOpenEditor.py:2431 +#: ../PLCOpenEditor.py:2433 msgid "Add new resource" msgstr "" @@ -378,7 +378,7 @@ msgid "Alignment" msgstr "" -#: ../PLCOpenEditor.py:3858 +#: ../PLCOpenEditor.py:3860 msgid "All" msgstr "" @@ -410,11 +410,11 @@ msgid "At least a variable or an expression must be selected!" msgstr "" -#: ../PLCOpenEditor.py:2941 +#: ../PLCOpenEditor.py:2943 msgid "Author" msgstr "" -#: ../PLCOpenEditor.py:2926 +#: ../PLCOpenEditor.py:2928 msgid "Author Name (optional):" msgstr "" @@ -422,7 +422,7 @@ msgid "Base Type:" msgstr "" -#: ../PLCOpenEditor.py:4491 ../DataTypeEditor.py:798 +#: ../PLCOpenEditor.py:4493 ../DataTypeEditor.py:798 msgid "Base Types" msgstr "" @@ -458,7 +458,7 @@ msgid "Block Properties" msgstr "" -#: ../PLCOpenEditor.py:2077 ../Dialogs.py:269 +#: ../PLCOpenEditor.py:2079 ../Dialogs.py:269 msgid "Block Types" msgstr "" @@ -466,11 +466,11 @@ msgid "Bottom" msgstr "" -#: ../PLCOpenEditor.py:2031 +#: ../PLCOpenEditor.py:2033 msgid "CSV Log" msgstr "" -#: ../PLCOpenEditor.py:4072 +#: ../PLCOpenEditor.py:4074 msgid "Can affect a location only to local or global variables" msgstr "" @@ -479,16 +479,16 @@ msgid "Can only generate execution order on FBD networks!" msgstr "" -#: ../PLCOpenEditor.py:4070 +#: ../PLCOpenEditor.py:4072 msgid "Can't affect a location to a function block instance" msgstr "" -#: ../PLCOpenEditor.py:1092 +#: ../PLCOpenEditor.py:1094 #, python-format msgid "Can't generate program to file %s!" msgstr "" -#: ../PLCOpenEditor.py:1124 +#: ../PLCOpenEditor.py:1126 #, python-format msgid "Can't save project to file %s!" msgstr "" @@ -497,7 +497,7 @@ msgid "Center" msgstr "" -#: ../PLCOpenEditor.py:1816 +#: ../PLCOpenEditor.py:1818 msgid "Change POU Type To" msgstr "" @@ -505,15 +505,15 @@ msgid "Character string" msgstr "" -#: ../PLCOpenEditor.py:1031 ../PLCOpenEditor.py:1082 ../PLCOpenEditor.py:1118 +#: ../PLCOpenEditor.py:1033 ../PLCOpenEditor.py:1084 ../PLCOpenEditor.py:1120 msgid "Choose a file" msgstr "" -#: ../PLCOpenEditor.py:3848 ../PLCOpenEditor.py:3849 +#: ../PLCOpenEditor.py:3850 ../PLCOpenEditor.py:3851 msgid "Class" msgstr "" -#: ../PLCOpenEditor.py:4236 +#: ../PLCOpenEditor.py:4238 msgid "Class Filter:" msgstr "" @@ -521,7 +521,7 @@ msgid "Class:" msgstr "" -#: ../PLCOpenEditor.py:423 +#: ../PLCOpenEditor.py:425 msgid "Clear Errors\tCTRL+K" msgstr "" @@ -533,7 +533,7 @@ msgid "Close\tCTRL+Q" msgstr "" -#: ../PLCOpenEditor.py:961 +#: ../PLCOpenEditor.py:963 msgid "Close Application" msgstr "" @@ -549,11 +549,11 @@ msgid "Comment" msgstr "" -#: ../PLCOpenEditor.py:2910 +#: ../PLCOpenEditor.py:2912 msgid "Company Name (required):" msgstr "" -#: ../PLCOpenEditor.py:2918 +#: ../PLCOpenEditor.py:2920 msgid "Company URL (optional):" msgstr "" @@ -565,7 +565,7 @@ msgid "Concatenation" msgstr "" -#: ../PLCOpenEditor.py:394 +#: ../PLCOpenEditor.py:396 msgid "Configuration" msgstr "" @@ -589,11 +589,11 @@ msgid "Connectors:" msgstr "" -#: ../PLCOpenEditor.py:3848 ../PLCOpenEditor.py:3849 +#: ../PLCOpenEditor.py:3850 ../PLCOpenEditor.py:3851 msgid "Constant" msgstr "" -#: ../PLCOpenEditor.py:3000 +#: ../PLCOpenEditor.py:3002 msgid "Content Description (optional):" msgstr "" @@ -617,7 +617,7 @@ msgid "Conversion to time-of-day" msgstr "" -#: ../PLCOpenEditor.py:379 +#: ../PLCOpenEditor.py:381 msgid "Copy\tCTRL+C" msgstr "" @@ -625,15 +625,15 @@ msgid "Cosine" msgstr "" -#: ../PLCOpenEditor.py:3223 +#: ../PLCOpenEditor.py:3225 msgid "Create a new POU" msgstr "" -#: ../PLCOpenEditor.py:1804 ../PLCOpenEditor.py:2461 +#: ../PLCOpenEditor.py:1806 ../PLCOpenEditor.py:2463 msgid "Create a new POU from" msgstr "" -#: ../PLCOpenEditor.py:3544 +#: ../PLCOpenEditor.py:3546 msgid "Create a new action" msgstr "" @@ -693,7 +693,7 @@ msgid "Create a new step" msgstr "" -#: ../PLCOpenEditor.py:211 ../PLCOpenEditor.py:3400 +#: ../PLCOpenEditor.py:211 ../PLCOpenEditor.py:3402 msgid "Create a new transition" msgstr "" @@ -701,11 +701,11 @@ msgid "Create a new variable" msgstr "" -#: ../PLCOpenEditor.py:377 +#: ../PLCOpenEditor.py:379 msgid "Cut\tCTRL+X" msgstr "" -#: ../PLCOpenEditor.py:386 +#: ../PLCOpenEditor.py:388 msgid "Data Type" msgstr "" @@ -729,8 +729,8 @@ msgid "Date subtraction" msgstr "" -#: ../PLCOpenEditor.py:398 ../PLCOpenEditor.py:1821 ../PLCOpenEditor.py:1830 -#: ../PLCOpenEditor.py:1836 ../PLCOpenEditor.py:4249 ../PLCOpenEditor.py:4862 +#: ../PLCOpenEditor.py:400 ../PLCOpenEditor.py:1823 ../PLCOpenEditor.py:1832 +#: ../PLCOpenEditor.py:1838 ../PLCOpenEditor.py:4251 ../PLCOpenEditor.py:4864 #: ../Viewer.py:416 ../Dialogs.py:2351 ../DataTypeEditor.py:544 msgid "Delete" msgstr "" @@ -785,7 +785,7 @@ msgid "Division" msgstr "" -#: ../PLCOpenEditor.py:1086 +#: ../PLCOpenEditor.py:1088 msgid "Done" msgstr "" @@ -847,6 +847,10 @@ msgid "Elements :" msgstr "" +#: ../PLCOpenEditor.py:376 +msgid "Enable Undo/Redo" +msgstr "" + #: ../DataTypeEditor.py:236 msgid "Enumerated" msgstr "" @@ -855,21 +859,21 @@ msgid "Equal to" msgstr "" -#: ../PLCOpenEditor.py:953 ../PLCOpenEditor.py:1093 ../PLCOpenEditor.py:1098 -#: ../PLCOpenEditor.py:1583 ../PLCOpenEditor.py:1620 ../PLCOpenEditor.py:1625 -#: ../PLCOpenEditor.py:1640 ../PLCOpenEditor.py:1645 ../PLCOpenEditor.py:2491 -#: ../PLCOpenEditor.py:2520 ../PLCOpenEditor.py:3041 ../PLCOpenEditor.py:3133 -#: ../PLCOpenEditor.py:3137 ../PLCOpenEditor.py:3141 ../PLCOpenEditor.py:3145 -#: ../PLCOpenEditor.py:3286 ../PLCOpenEditor.py:3290 ../PLCOpenEditor.py:3294 -#: ../PLCOpenEditor.py:3298 ../PLCOpenEditor.py:3449 ../PLCOpenEditor.py:3453 -#: ../PLCOpenEditor.py:3457 ../PLCOpenEditor.py:3461 ../PLCOpenEditor.py:3465 -#: ../PLCOpenEditor.py:3593 ../PLCOpenEditor.py:3597 ../PLCOpenEditor.py:3601 -#: ../PLCOpenEditor.py:3605 ../PLCOpenEditor.py:3609 ../PLCOpenEditor.py:3664 -#: ../PLCOpenEditor.py:3668 ../PLCOpenEditor.py:3672 ../PLCOpenEditor.py:3676 -#: ../PLCOpenEditor.py:3727 ../PLCOpenEditor.py:3731 ../PLCOpenEditor.py:3735 -#: ../PLCOpenEditor.py:3739 ../PLCOpenEditor.py:4119 ../PLCOpenEditor.py:4444 -#: ../PLCOpenEditor.py:4449 ../PLCOpenEditor.py:4454 ../PLCOpenEditor.py:4459 -#: ../PLCOpenEditor.py:4795 ../PLCOpenEditor.py:5057 ../PLCOpenEditor.py:5067 +#: ../PLCOpenEditor.py:955 ../PLCOpenEditor.py:1095 ../PLCOpenEditor.py:1100 +#: ../PLCOpenEditor.py:1585 ../PLCOpenEditor.py:1622 ../PLCOpenEditor.py:1627 +#: ../PLCOpenEditor.py:1642 ../PLCOpenEditor.py:1647 ../PLCOpenEditor.py:2493 +#: ../PLCOpenEditor.py:2522 ../PLCOpenEditor.py:3043 ../PLCOpenEditor.py:3135 +#: ../PLCOpenEditor.py:3139 ../PLCOpenEditor.py:3143 ../PLCOpenEditor.py:3147 +#: ../PLCOpenEditor.py:3288 ../PLCOpenEditor.py:3292 ../PLCOpenEditor.py:3296 +#: ../PLCOpenEditor.py:3300 ../PLCOpenEditor.py:3451 ../PLCOpenEditor.py:3455 +#: ../PLCOpenEditor.py:3459 ../PLCOpenEditor.py:3463 ../PLCOpenEditor.py:3467 +#: ../PLCOpenEditor.py:3595 ../PLCOpenEditor.py:3599 ../PLCOpenEditor.py:3603 +#: ../PLCOpenEditor.py:3607 ../PLCOpenEditor.py:3611 ../PLCOpenEditor.py:3666 +#: ../PLCOpenEditor.py:3670 ../PLCOpenEditor.py:3674 ../PLCOpenEditor.py:3678 +#: ../PLCOpenEditor.py:3729 ../PLCOpenEditor.py:3733 ../PLCOpenEditor.py:3737 +#: ../PLCOpenEditor.py:3741 ../PLCOpenEditor.py:4121 ../PLCOpenEditor.py:4446 +#: ../PLCOpenEditor.py:4451 ../PLCOpenEditor.py:4456 ../PLCOpenEditor.py:4461 +#: ../PLCOpenEditor.py:4797 ../PLCOpenEditor.py:5059 ../PLCOpenEditor.py:5069 #: ../Viewer.py:335 ../TextViewer.py:224 ../LDViewer.py:628 ../LDViewer.py:850 #: ../LDViewer.py:854 ../Dialogs.py:241 ../Dialogs.py:245 ../Dialogs.py:249 #: ../Dialogs.py:253 ../Dialogs.py:257 ../Dialogs.py:261 ../Dialogs.py:648 @@ -905,12 +909,12 @@ msgid "Expression:" msgstr "" -#: ../PLCOpenEditor.py:3860 +#: ../PLCOpenEditor.py:3862 msgid "External" msgstr "" -#: ../PLCOpenEditor.py:2978 ../PLCOpenEditor.py:3168 ../PLCOpenEditor.py:3178 -#: ../PLCOpenEditor.py:3357 ../PLCOpenEditor.py:3501 +#: ../PLCOpenEditor.py:2980 ../PLCOpenEditor.py:3170 ../PLCOpenEditor.py:3180 +#: ../PLCOpenEditor.py:3359 ../PLCOpenEditor.py:3503 msgid "FBD" msgstr "" @@ -932,8 +936,8 @@ msgid "Find position" msgstr "" -#: ../PLCOpenEditor.py:3041 ../PLCOpenEditor.py:3286 ../PLCOpenEditor.py:3449 -#: ../PLCOpenEditor.py:3593 ../Dialogs.py:1803 +#: ../PLCOpenEditor.py:3043 ../PLCOpenEditor.py:3288 ../PLCOpenEditor.py:3451 +#: ../PLCOpenEditor.py:3595 ../Dialogs.py:1803 #, python-format msgid "Form isn't complete. %s must be filled!" msgstr "" @@ -946,15 +950,15 @@ msgid "Form isn't complete. Valid block type must be selected!" msgstr "" -#: ../PLCOpenEditor.py:388 +#: ../PLCOpenEditor.py:390 msgid "Function" msgstr "" -#: ../PLCOpenEditor.py:390 ../PLCOpenEditor.py:1811 +#: ../PLCOpenEditor.py:392 ../PLCOpenEditor.py:1813 msgid "Function Block" msgstr "" -#: ../PLCOpenEditor.py:4506 +#: ../PLCOpenEditor.py:4508 msgid "Function Block Types" msgstr "" @@ -983,15 +987,15 @@ msgid "Generate Program\tCTRL+G" msgstr "" -#: ../PLCOpenEditor.py:3861 +#: ../PLCOpenEditor.py:3863 msgid "Global" msgstr "" -#: ../PLCOpenEditor.py:2028 +#: ../PLCOpenEditor.py:2030 msgid "Graphic Panel" msgstr "" -#: ../PLCOpenEditor.py:2983 +#: ../PLCOpenEditor.py:2985 msgid "Graphics" msgstr "" @@ -1003,7 +1007,7 @@ msgid "Greater than or equal to" msgstr "" -#: ../PLCOpenEditor.py:2962 +#: ../PLCOpenEditor.py:2964 msgid "Height:" msgstr "" @@ -1017,26 +1021,26 @@ "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:3168 ../PLCOpenEditor.py:3178 ../PLCOpenEditor.py:3357 -#: ../PLCOpenEditor.py:3501 +#: ../PLCOpenEditor.py:3170 ../PLCOpenEditor.py:3180 ../PLCOpenEditor.py:3359 +#: ../PLCOpenEditor.py:3503 msgid "IL" msgstr "" -#: ../PLCOpenEditor.py:3859 ../Dialogs.py:426 +#: ../PLCOpenEditor.py:3861 ../Dialogs.py:426 msgid "InOut" msgstr "" -#: ../PLCOpenEditor.py:4089 +#: ../PLCOpenEditor.py:4091 #, python-format msgid "Incompatible data types between \"%s\" and \"%s\"" msgstr "" -#: ../PLCOpenEditor.py:4100 +#: ../PLCOpenEditor.py:4102 #, python-format msgid "Incompatible size of data between \"%s\" and \"%s\"" msgstr "" -#: ../PLCOpenEditor.py:4096 +#: ../PLCOpenEditor.py:4098 #, python-format msgid "Incompatible size of data between \"%s\" and \"BOOL\"" msgstr "" @@ -1045,7 +1049,7 @@ msgid "Indicator" msgstr "" -#: ../PLCOpenEditor.py:3848 ../PLCOpenEditor.py:3849 ../DataTypeEditor.py:46 +#: ../PLCOpenEditor.py:3850 ../PLCOpenEditor.py:3851 ../DataTypeEditor.py:46 msgid "Initial Value" msgstr "" @@ -1058,7 +1062,7 @@ msgid "Inline" msgstr "" -#: ../PLCOpenEditor.py:3859 ../Dialogs.py:425 ../Dialogs.py:1472 +#: ../PLCOpenEditor.py:3861 ../Dialogs.py:425 ../Dialogs.py:1472 msgid "Input" msgstr "" @@ -1075,7 +1079,7 @@ msgid "Instance with id %d doesn't exists!" msgstr "" -#: ../PLCOpenEditor.py:559 ../PLCOpenEditor.py:597 +#: ../PLCOpenEditor.py:561 ../PLCOpenEditor.py:599 msgid "Instances" msgstr "" @@ -1089,7 +1093,7 @@ "The integral function block integrates the value of input XIN over time." msgstr "" -#: ../PLCOpenEditor.py:3858 +#: ../PLCOpenEditor.py:3860 msgid "Interface" msgstr "" @@ -1101,12 +1105,12 @@ msgid "Invalid plcopen element(s)!!!" msgstr "" -#: ../PLCOpenEditor.py:4784 ../PLCOpenEditor.py:4787 +#: ../PLCOpenEditor.py:4786 ../PLCOpenEditor.py:4789 #, python-format msgid "Invalid value \"%s\" for debug variable" msgstr "" -#: ../PLCOpenEditor.py:4077 ../PLCOpenEditor.py:4080 +#: ../PLCOpenEditor.py:4079 ../PLCOpenEditor.py:4082 #, python-format msgid "Invalid value \"%s\" for location" msgstr "" @@ -1116,8 +1120,8 @@ msgid "Invalid value \"%s\" for viewer block" msgstr "" -#: ../PLCOpenEditor.py:2978 ../PLCOpenEditor.py:3168 ../PLCOpenEditor.py:3178 -#: ../PLCOpenEditor.py:3357 ../PLCOpenEditor.py:3501 +#: ../PLCOpenEditor.py:2980 ../PLCOpenEditor.py:3170 ../PLCOpenEditor.py:3180 +#: ../PLCOpenEditor.py:3359 ../PLCOpenEditor.py:3503 msgid "LD" msgstr "" @@ -1126,15 +1130,15 @@ msgid "Ladder element with id %d is on more than one rung." msgstr "" -#: ../PLCOpenEditor.py:3276 ../PLCOpenEditor.py:3439 ../PLCOpenEditor.py:3583 +#: ../PLCOpenEditor.py:3278 ../PLCOpenEditor.py:3441 ../PLCOpenEditor.py:3585 msgid "Language" msgstr "" -#: ../PLCOpenEditor.py:2992 +#: ../PLCOpenEditor.py:2994 msgid "Language (optional):" msgstr "" -#: ../PLCOpenEditor.py:3244 ../PLCOpenEditor.py:3412 ../PLCOpenEditor.py:3556 +#: ../PLCOpenEditor.py:3246 ../PLCOpenEditor.py:3414 ../PLCOpenEditor.py:3558 msgid "Language:" msgstr "" @@ -1158,7 +1162,7 @@ msgid "Less than or equal to" msgstr "" -#: ../PLCOpenEditor.py:638 +#: ../PLCOpenEditor.py:640 msgid "Library" msgstr "" @@ -1166,11 +1170,11 @@ msgid "Limitation" msgstr "" -#: ../PLCOpenEditor.py:3860 +#: ../PLCOpenEditor.py:3862 msgid "Local" msgstr "" -#: ../PLCOpenEditor.py:3848 +#: ../PLCOpenEditor.py:3850 msgid "Location" msgstr "" @@ -1198,7 +1202,7 @@ msgid "Minimum:" msgstr "" -#: ../PLCOpenEditor.py:3007 +#: ../PLCOpenEditor.py:3009 msgid "Miscellaneous" msgstr "" @@ -1227,7 +1231,7 @@ msgid "Multiplication" msgstr "" -#: ../PLCOpenEditor.py:3848 ../PLCOpenEditor.py:3849 ../RessourceEditor.py:79 +#: ../PLCOpenEditor.py:3850 ../PLCOpenEditor.py:3851 ../RessourceEditor.py:79 #: ../RessourceEditor.py:83 ../DataTypeEditor.py:46 msgid "Name" msgstr "" @@ -1253,7 +1257,7 @@ msgid "New item" msgstr "" -#: ../PLCOpenEditor.py:3853 +#: ../PLCOpenEditor.py:3855 msgid "No" msgstr "" @@ -1275,7 +1279,7 @@ msgid "No connector found corresponding to \"%s\" continuation in \"%s\" POU" msgstr "" -#: ../PLCOpenEditor.py:2606 +#: ../PLCOpenEditor.py:2608 msgid "" "No documentation available.\n" "Coming soon." @@ -1327,11 +1331,11 @@ msgid "Open\tCTRL+O" msgstr "" -#: ../PLCOpenEditor.py:2934 +#: ../PLCOpenEditor.py:2936 msgid "Organization (optional):" msgstr "" -#: ../PLCOpenEditor.py:3859 ../Dialogs.py:427 ../Dialogs.py:1477 +#: ../PLCOpenEditor.py:3861 ../Dialogs.py:427 ../Dialogs.py:1477 msgid "Output" msgstr "" @@ -1341,31 +1345,31 @@ "The PID (proportional, Integral, Derivative) function block provides the classical three term controller for closed loop control." msgstr "" -#: ../PLCOpenEditor.py:1031 ../PLCOpenEditor.py:1118 +#: ../PLCOpenEditor.py:1033 ../PLCOpenEditor.py:1120 msgid "PLCOpen files (*.xml)|*.xml|All files|*.*" msgstr "" -#: ../PLCOpenEditor.py:485 ../PLCOpenEditor.py:838 +#: ../PLCOpenEditor.py:487 ../PLCOpenEditor.py:840 msgid "PLCOpenEditor" msgstr "" -#: ../PLCOpenEditor.py:438 +#: ../PLCOpenEditor.py:440 msgid "PLCOpenEditor\tF1" msgstr "" -#: ../PLCOpenEditor.py:3272 +#: ../PLCOpenEditor.py:3274 msgid "POU Name" msgstr "" -#: ../PLCOpenEditor.py:3227 +#: ../PLCOpenEditor.py:3229 msgid "POU Name:" msgstr "" -#: ../PLCOpenEditor.py:3274 +#: ../PLCOpenEditor.py:3276 msgid "POU Type" msgstr "" -#: ../PLCOpenEditor.py:3235 +#: ../PLCOpenEditor.py:3237 msgid "POU Type:" msgstr "" @@ -1373,16 +1377,16 @@ msgid "Page Setup" msgstr "" -#: ../PLCOpenEditor.py:2950 +#: ../PLCOpenEditor.py:2952 msgid "Page Size (optional):" msgstr "" -#: ../PLCOpenEditor.py:5000 +#: ../PLCOpenEditor.py:5002 #, python-format msgid "Page: %d" msgstr "" -#: ../PLCOpenEditor.py:381 +#: ../PLCOpenEditor.py:383 msgid "Paste\tCTRL+V" msgstr "" @@ -1394,7 +1398,7 @@ msgid "Please choose a target" msgstr "" -#: ../PLCOpenEditor.py:2461 +#: ../PLCOpenEditor.py:2463 msgid "Please enter POU name" msgstr "" @@ -1402,15 +1406,15 @@ msgid "Please enter comment text" msgstr "" -#: ../PLCOpenEditor.py:2416 ../PLCOpenEditor.py:3647 +#: ../PLCOpenEditor.py:2418 ../PLCOpenEditor.py:3649 msgid "Please enter configuration name" msgstr "" -#: ../PLCOpenEditor.py:2359 +#: ../PLCOpenEditor.py:2361 msgid "Please enter data type name" msgstr "" -#: ../PLCOpenEditor.py:2431 ../PLCOpenEditor.py:3710 +#: ../PLCOpenEditor.py:2433 ../PLCOpenEditor.py:3712 msgid "Please enter resource name" msgstr "" @@ -1418,7 +1422,7 @@ msgid "Please enter step name" msgstr "" -#: ../PLCOpenEditor.py:3118 +#: ../PLCOpenEditor.py:3120 msgid "Please enter text" msgstr "" @@ -1443,7 +1447,7 @@ msgid "Print" msgstr "" -#: ../PLCOpenEditor.py:1150 +#: ../PLCOpenEditor.py:1152 msgid "Print preview" msgstr "" @@ -1455,23 +1459,23 @@ msgid "Priority:" msgstr "" -#: ../PLCOpenEditor.py:2878 +#: ../PLCOpenEditor.py:2880 msgid "Product Name (required):" msgstr "" -#: ../PLCOpenEditor.py:2894 +#: ../PLCOpenEditor.py:2896 msgid "Product Release (optional):" msgstr "" -#: ../PLCOpenEditor.py:2886 +#: ../PLCOpenEditor.py:2888 msgid "Product Version (required):" msgstr "" -#: ../PLCOpenEditor.py:392 ../PLCOpenEditor.py:1814 +#: ../PLCOpenEditor.py:394 ../PLCOpenEditor.py:1816 msgid "Program" msgstr "" -#: ../PLCOpenEditor.py:1095 +#: ../PLCOpenEditor.py:1097 msgid "Program was successfully generated!" msgstr "" @@ -1483,19 +1487,19 @@ msgid "Programs can't be used by other POUs!" msgstr "" -#: ../PLCOpenEditor.py:497 ../PLCOpenEditor.py:2901 +#: ../PLCOpenEditor.py:499 ../PLCOpenEditor.py:2903 msgid "Project" msgstr "" -#: ../PLCOpenEditor.py:2862 +#: ../PLCOpenEditor.py:2864 msgid "Project Name (required):" msgstr "" -#: ../PLCOpenEditor.py:2870 +#: ../PLCOpenEditor.py:2872 msgid "Project Version (optional):" msgstr "" -#: ../PLCOpenEditor.py:2848 +#: ../PLCOpenEditor.py:2850 msgid "Project properties" msgstr "" @@ -1541,7 +1545,7 @@ msgid "Reference" msgstr "" -#: ../PLCOpenEditor.py:420 +#: ../PLCOpenEditor.py:422 msgid "Refresh\tF5" msgstr "" @@ -1549,7 +1553,7 @@ msgid "Remainder (modulo)" msgstr "" -#: ../PLCOpenEditor.py:1818 +#: ../PLCOpenEditor.py:1820 msgid "Rename" msgstr "" @@ -1569,11 +1573,11 @@ msgid "Resources" msgstr "" -#: ../PLCOpenEditor.py:3848 ../PLCOpenEditor.py:3849 +#: ../PLCOpenEditor.py:3850 ../PLCOpenEditor.py:3851 msgid "Retain" msgstr "" -#: ../PLCOpenEditor.py:4227 +#: ../PLCOpenEditor.py:4229 msgid "Return Type:" msgstr "" @@ -1607,7 +1611,7 @@ msgid "Rounding up/down" msgstr "" -#: ../PLCOpenEditor.py:2978 ../PLCOpenEditor.py:3178 +#: ../PLCOpenEditor.py:2980 ../PLCOpenEditor.py:3180 msgid "SFC" msgstr "" @@ -1617,12 +1621,12 @@ "The SR bistable is a latch where the Set dominates." msgstr "" -#: ../PLCOpenEditor.py:3168 ../PLCOpenEditor.py:3178 ../PLCOpenEditor.py:3357 -#: ../PLCOpenEditor.py:3501 +#: ../PLCOpenEditor.py:3170 ../PLCOpenEditor.py:3180 ../PLCOpenEditor.py:3359 +#: ../PLCOpenEditor.py:3503 msgid "ST" msgstr "" -#: ../PLCOpenEditor.py:1082 +#: ../PLCOpenEditor.py:1084 msgid "ST files (*.st)|*.st|All files|*.*" msgstr "" @@ -1634,19 +1638,19 @@ msgid "Save As...\tCTRL+SHIFT+S" msgstr "" -#: ../PLCOpenEditor.py:2970 +#: ../PLCOpenEditor.py:2972 msgid "Scaling:" msgstr "" -#: ../PLCOpenEditor.py:396 +#: ../PLCOpenEditor.py:398 msgid "Select All\tCTRL+A" msgstr "" -#: ../PLCOpenEditor.py:4102 +#: ../PLCOpenEditor.py:4104 msgid "Select a variable class:" msgstr "" -#: ../PLCOpenEditor.py:604 ../PLCOpenEditor.py:616 +#: ../PLCOpenEditor.py:606 ../PLCOpenEditor.py:618 msgid "Select an object" msgstr "" @@ -1728,7 +1732,7 @@ msgid "Tasks:" msgstr "" -#: ../PLCOpenEditor.py:3861 +#: ../PLCOpenEditor.py:3863 msgid "Temp" msgstr "" @@ -1736,11 +1740,11 @@ msgid "The group of block must be coherent!" msgstr "" -#: ../PLCOpenEditor.py:961 +#: ../PLCOpenEditor.py:963 msgid "There are changes, do you want to save?" msgstr "" -#: ../PLCOpenEditor.py:1169 +#: ../PLCOpenEditor.py:1171 msgid "" "There was a problem printing.\n" "Perhaps your current printer is not set correctly?" @@ -1782,7 +1786,7 @@ msgid "Time-of-day subtraction" msgstr "" -#: ../PLCOpenEditor.py:608 +#: ../PLCOpenEditor.py:610 msgid "Toolbar" msgstr "" @@ -1790,11 +1794,11 @@ msgid "Top" msgstr "" -#: ../PLCOpenEditor.py:3437 +#: ../PLCOpenEditor.py:3439 msgid "Transition Name" msgstr "" -#: ../PLCOpenEditor.py:3404 +#: ../PLCOpenEditor.py:3406 msgid "Transition Name:" msgstr "" @@ -1817,7 +1821,7 @@ msgid "Transitions" msgstr "" -#: ../PLCOpenEditor.py:3848 ../PLCOpenEditor.py:3849 ../RessourceEditor.py:83 +#: ../PLCOpenEditor.py:3850 ../PLCOpenEditor.py:3851 ../RessourceEditor.py:83 #: ../Dialogs.py:2105 ../DataTypeEditor.py:46 msgid "Type" msgstr "" @@ -1835,7 +1839,7 @@ msgid "Type:" msgstr "" -#: ../PLCOpenEditor.py:560 ../PLCOpenEditor.py:596 +#: ../PLCOpenEditor.py:562 ../PLCOpenEditor.py:598 msgid "Types" msgstr "" @@ -1858,7 +1862,7 @@ msgid "Unnamed%d" msgstr "" -#: ../PLCOpenEditor.py:4098 +#: ../PLCOpenEditor.py:4100 #, python-format msgid "Unrecognized data size \"%s\"" msgstr "" @@ -1875,7 +1879,7 @@ "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 "" -#: ../PLCOpenEditor.py:4497 ../DataTypeEditor.py:804 +#: ../PLCOpenEditor.py:4499 ../DataTypeEditor.py:804 msgid "User Data Types" msgstr "" @@ -1883,7 +1887,7 @@ msgid "User-defined POUs" msgstr "" -#: ../PLCOpenEditor.py:4614 ../Dialogs.py:2105 +#: ../PLCOpenEditor.py:4616 ../Dialogs.py:2105 msgid "Value" msgstr "" @@ -1895,7 +1899,7 @@ msgid "Values:" msgstr "" -#: ../PLCOpenEditor.py:4614 ../Dialogs.py:2109 +#: ../PLCOpenEditor.py:4616 ../Dialogs.py:2109 msgid "Variable" msgstr "" @@ -1903,7 +1907,7 @@ msgid "Variable Properties" msgstr "" -#: ../PLCOpenEditor.py:4102 +#: ../PLCOpenEditor.py:4104 msgid "Variable class" msgstr "" @@ -1911,28 +1915,28 @@ msgid "Variable don't belong to this POU!" msgstr "" -#: ../PLCOpenEditor.py:573 ../PLCOpenEditor.py:624 ../PLCOpenEditor.py:3860 +#: ../PLCOpenEditor.py:575 ../PLCOpenEditor.py:626 ../PLCOpenEditor.py:3862 msgid "Variables" msgstr "" -#: ../PLCOpenEditor.py:3302 ../PLCOpenEditor.py:3680 ../PLCOpenEditor.py:3743 +#: ../PLCOpenEditor.py:3304 ../PLCOpenEditor.py:3682 ../PLCOpenEditor.py:3745 #: ../LDViewer.py:859 msgid "Warning" msgstr "" -#: ../PLCOpenEditor.py:2954 +#: ../PLCOpenEditor.py:2956 msgid "Width:" msgstr "" -#: ../PLCOpenEditor.py:2697 +#: ../PLCOpenEditor.py:2699 msgid "X Scale:" msgstr "" -#: ../PLCOpenEditor.py:2705 +#: ../PLCOpenEditor.py:2707 msgid "Y Scale:" msgstr "" -#: ../PLCOpenEditor.py:3853 +#: ../PLCOpenEditor.py:3855 msgid "Yes" msgstr "" @@ -1944,41 +1948,41 @@ msgid "You must select the wire where a contact should be added!" msgstr "" -#: ../PLCOpenEditor.py:3133 ../PLCOpenEditor.py:3664 ../PLCOpenEditor.py:3727 +#: ../PLCOpenEditor.py:3135 ../PLCOpenEditor.py:3666 ../PLCOpenEditor.py:3729 #: ../Dialogs.py:1525 ../Dialogs.py:2508 ../Dialogs.py:2575 msgid "You must type a name!" msgstr "" -#: ../PLCOpenEditor.py:426 +#: ../PLCOpenEditor.py:428 msgid "Zoom" msgstr "" -#: ../PLCOpenEditor.py:1091 +#: ../PLCOpenEditor.py:1093 #, python-format msgid "error: %s\n" msgstr "" -#: ../PLCOpenEditor.py:5032 ../PLCOpenEditor.py:5034 +#: ../PLCOpenEditor.py:5034 ../PLCOpenEditor.py:5036 msgid "file : " msgstr "" -#: ../PLCOpenEditor.py:3173 +#: ../PLCOpenEditor.py:3175 msgid "function" msgstr "" -#: ../PLCOpenEditor.py:5035 +#: ../PLCOpenEditor.py:5037 msgid "function : " msgstr "" -#: ../PLCOpenEditor.py:3173 +#: ../PLCOpenEditor.py:3175 msgid "functionBlock" msgstr "" -#: ../PLCOpenEditor.py:5035 +#: ../PLCOpenEditor.py:5037 msgid "line : " msgstr "" -#: ../PLCOpenEditor.py:3173 +#: ../PLCOpenEditor.py:3175 msgid "program" msgstr "" @@ -1994,7 +1998,7 @@ msgid "string right of" msgstr "" -#: ../PLCOpenEditor.py:1089 +#: ../PLCOpenEditor.py:1091 #, python-format msgid "warning: %s\n" msgstr "" diff -r 127d524a5f1d -r 8d9e7edc0195 locale/fr_FR/LC_MESSAGES/PLCOpenEditor.mo Binary file locale/fr_FR/LC_MESSAGES/PLCOpenEditor.mo has changed diff -r 127d524a5f1d -r 8d9e7edc0195 plcopen/structures.py --- a/plcopen/structures.py Thu Aug 20 09:03:31 2009 -0600 +++ b/plcopen/structures.py Wed Sep 02 08:30:34 2009 -0600 @@ -469,6 +469,8 @@ outs = reduce(lambda a,b: a or b, map(lambda testtype : IsOfType(fdecl["outputs"][0][1],testtype), OutTypes)) inps = reduce(lambda a,b: a or b, map(lambda testtype : IsOfType(fdecl["inputs"][0][1],testtype), InTypes)) if inps and outs and fdecl["outputs"][0][1] != fdecl["inputs"][0][1]: + if Format[1] is None: + return (Format[0], "__move_", "IN_type") return Format return None