Merged with changes already part of the master repo.

Tue, 13 Mar 2018 18:20:40 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 13 Mar 2018 18:20:40 +0100
changeset 6192
0fbc876d7468
parent 6191
bf6bd1ecfac7 (current diff)
parent 6188
5a6ae3be31e6 (diff)
child 6193
0313134e20b1

Merged with changes already part of the master repo.

UI/UserInterface.py file | annotate | diff | comparison | revisions
--- a/APIs/Python3/eric6.api	Tue Mar 13 18:18:04 2018 +0100
+++ b/APIs/Python3/eric6.api	Tue Mar 13 18:20:40 2018 +0100
@@ -4021,12 +4021,30 @@
 eric6.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.DocStyleContext.ssource?4()
 eric6.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.DocStyleContext.start?4()
 eric6.Plugins.CheckerPlugins.CodeStyleChecker.DocStyleChecker.DocStyleContext?1(source, startLine, contextType)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.BugBearVisitor.NodeWindowSize?7
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.BugBearVisitor.visit?4(node)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.BugBearVisitor.visit_Assign?4(node)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.BugBearVisitor.visit_Attribute?4(node)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.BugBearVisitor.visit_Call?4(node)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.BugBearVisitor.visit_For?4(node)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.BugBearVisitor.visit_UAdd?4(node)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.BugBearVisitor?1()
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.LoggingVisitor.LoggingLevels?7
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.LoggingVisitor.visit_BinOp?4(node)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.LoggingVisitor.visit_Call?4(node)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.LoggingVisitor.visit_JoinedStr?4(node)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.LoggingVisitor?1()
 eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.MiscellaneousChecker.BuiltinsWhiteList?7
 eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.MiscellaneousChecker.Codes?7
 eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.MiscellaneousChecker.FormatFieldRegex?7
 eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.MiscellaneousChecker.Formatter?7
 eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.MiscellaneousChecker.run?4()
 eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.MiscellaneousChecker?1(source, filename, select, ignore, expected, repeat, args)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.NameFinder.getNames?4()
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.NameFinder.visit?4(node)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.NameFinder.visit_Name?4(node)
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.NameFinder?1()
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.TextVisitor.visit_AsyncFunctionDef?4(node)
 eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.TextVisitor.visit_Bytes?4(node)
 eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.TextVisitor.visit_Call?4(node)
 eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.TextVisitor.visit_ClassDef?4(node)
@@ -4034,6 +4052,7 @@
 eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.TextVisitor.visit_Module?4(node)
 eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.TextVisitor.visit_Str?4(node)
 eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.TextVisitor?1()
+eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.composeCallPath?4(node)
 eric6.Plugins.CheckerPlugins.CodeStyleChecker.NamingStyleChecker.NamingStyleChecker.CamelcaseRegexp?7
 eric6.Plugins.CheckerPlugins.CodeStyleChecker.NamingStyleChecker.NamingStyleChecker.Codes?7
 eric6.Plugins.CheckerPlugins.CodeStyleChecker.NamingStyleChecker.NamingStyleChecker.LowercaseRegex?7
--- a/APIs/Python3/eric6.bas	Tue Mar 13 18:18:04 2018 +0100
+++ b/APIs/Python3/eric6.bas	Tue Mar 13 18:20:40 2018 +0100
@@ -64,6 +64,7 @@
 BrowserModel QAbstractItemModel
 BrowserSortFilterProxyModel QSortFilterProxyModel
 BrowserSysPathItem BrowserItem
+BugBearVisitor ast.NodeVisitor
 CallStackViewer QTreeWidget
 CallTraceViewer QWidget Ui_CallTraceViewer
 ChangeBookmarkCommand QUndoCommand
@@ -578,6 +579,7 @@
 LogViewer QWidget
 LogViewerEdit QTextEdit
 LogViewerPage ConfigurationPageBase Ui_LogViewerPage
+LoggingVisitor ast.NodeVisitor
 ManageDictionariesDialog QDialog Ui_ManageDictionariesDialog
 MarkdownProvider MarkupBase
 MasterPasswordEntryDialog QDialog Ui_MasterPasswordEntryDialog
@@ -600,6 +602,7 @@
 MultiProjectWriter XMLStreamWriterBase
 MultiValueDictResolver DictResolver
 MyMemoryEngine TranslationEngine
+NameFinder ast.NodeVisitor
 NannyNag Exception
 NavigationBar QWidget
 NavigationContainer QWidget
--- a/DataViews/CodeMetrics.py	Tue Mar 13 18:18:04 2018 +0100
+++ b/DataViews/CodeMetrics.py	Tue Mar 13 18:20:40 2018 +0100
@@ -171,7 +171,7 @@
         @param key the key to be incremented
         @param value the increment (int)
         """
-        for counterId, level, row in self.active:
+        for counterId, _level, _row in self.active:
             counters = self.counters.setdefault(counterId, {})
             counters[key] = counters.setdefault(key, 0) + value
 
--- a/DataViews/PyProfileDialog.py	Tue Mar 13 18:18:04 2018 +0100
+++ b/DataViews/PyProfileDialog.py	Tue Mar 13 18:20:40 2018 +0100
@@ -169,7 +169,7 @@
             self.resultList.setSortingEnabled(False)
             
             # now go through all the files
-            for func, (cc, nc, tt, ct, callers) in list(self.stats.items()):
+            for func, (cc, nc, tt, ct, _callers) in list(self.stats.items()):
                 if self.cancelled:
                     return
                 
--- a/DebugClients/Python/FlexCompleter.py	Tue Mar 13 18:18:04 2018 +0100
+++ b/DebugClients/Python/FlexCompleter.py	Tue Mar 13 18:20:40 2018 +0100
@@ -125,7 +125,7 @@
         @param word word to ammend (string)
         @return ammended word (string)
         """
-        if hasattr(val, '__call__'):
+        if callable(val):
             word = word + "("
         return word
 
@@ -139,13 +139,22 @@
         """
         import keyword
         matches = []
+        seen = {"__builtins__"}
         n = len(text)
         for word in keyword.kwlist:
             if word[:n] == text:
+                seen.add(word)
+                if word in {'finally', 'try'}:
+                    word = word + ':'
+                elif word not in {'False', 'None', 'True',
+                                  'break', 'continue', 'pass',
+                                  'else'}:
+                    word = word + ' '
                 matches.append(word)
         for nspace in [builtins.__dict__, self.namespace]:
             for word, val in nspace.items():
-                if word[:n] == text and word != "__builtins__":
+                if word[:n] == text and word not in seen:
+                    seen.add(word)
                     matches.append(self._callable_postfix(val, word))
         return matches
 
@@ -166,9 +175,7 @@
         """
         import re
 
-        # Another option, seems to work great. Catches things like ''.<tab>
-        m = re.match(r"(\S+(\.\w+)*)\.(\w*)", text)
-
+        m = re.match(r"(\w+(\.\w+)*)\.(\w*)", text)
         if not m:
             return
         expr, attr = m.group(1, 3)
@@ -178,27 +185,39 @@
             return []
 
         # get the content of the object, except __builtins__
-        words = dir(thisobject)
-        if "__builtins__" in words:
-            words.remove("__builtins__")
+        words = set(dir(thisobject))
+        words.discard("__builtins__")
 
         if hasattr(object, '__class__'):
-            words.append('__class__')
-            words = words + get_class_members(object.__class__)
+            words.add('__class__')
+            words.update(get_class_members(thisobject.__class__))
         matches = []
         n = len(attr)
-        for word in words:
-            try:
-                if word[:n] == attr and hasattr(thisobject, word):
-                    val = getattr(thisobject, word)
-                    word = self._callable_postfix(
-                        val, "{0}.{1}".format(expr, word))
-                    matches.append(word)
-            except Exception:
-                # some badly behaved objects pollute dir() with non-strings,
-                # which cause the completion to fail.  This way we skip the
-                # bad entries and can still continue processing the others.
-                pass
+        if attr == '':
+            noprefix = '_'
+        elif attr == '_':
+            noprefix = '__'
+        else:
+            noprefix = None
+        while True:
+            for word in words:
+                if word[:n] == attr and \
+                   not (noprefix and word[:n + 1] == noprefix):
+                    match = "{0}.{1}".format(expr, word)
+                    try:
+                        val = getattr(thisobject, word)
+                    except Exception:
+                        pass  # Include even if attribute not set
+                    else:
+                        match = self._callable_postfix(val, match)
+                    matches.append(match)
+            if matches or not noprefix:
+                break
+            if noprefix == '_':
+                noprefix = '__'
+            else:
+                noprefix = None
+        matches.sort()
         return matches
 
 
Binary file Documentation/Help/source.qch has changed
--- a/Documentation/Help/source.qhp	Tue Mar 13 18:18:04 2018 +0100
+++ b/Documentation/Help/source.qhp	Tue Mar 13 18:20:40 2018 +0100
@@ -2734,6 +2734,16 @@
       <keyword name="BrowserSysPathItem" id="BrowserSysPathItem" ref="eric6.UI.BrowserModel.html#BrowserSysPathItem" />
       <keyword name="BrowserSysPathItem (Constructor)" id="BrowserSysPathItem (Constructor)" ref="eric6.UI.BrowserModel.html#BrowserSysPathItem.__init__" />
       <keyword name="BrowserSysPathItem.name" id="BrowserSysPathItem.name" ref="eric6.UI.BrowserModel.html#BrowserSysPathItem.name" />
+      <keyword name="BugBearVisitor" id="BugBearVisitor" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#BugBearVisitor" />
+      <keyword name="BugBearVisitor (Constructor)" id="BugBearVisitor (Constructor)" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#BugBearVisitor.__init__" />
+      <keyword name="BugBearVisitor.__checkForM502" id="BugBearVisitor.__checkForM502" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#BugBearVisitor.__checkForM502" />
+      <keyword name="BugBearVisitor.__checkForM507" id="BugBearVisitor.__checkForM507" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#BugBearVisitor.__checkForM507" />
+      <keyword name="BugBearVisitor.visit" id="BugBearVisitor.visit" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#BugBearVisitor.visit" />
+      <keyword name="BugBearVisitor.visit_Assign" id="BugBearVisitor.visit_Assign" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#BugBearVisitor.visit_Assign" />
+      <keyword name="BugBearVisitor.visit_Attribute" id="BugBearVisitor.visit_Attribute" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#BugBearVisitor.visit_Attribute" />
+      <keyword name="BugBearVisitor.visit_Call" id="BugBearVisitor.visit_Call" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#BugBearVisitor.visit_Call" />
+      <keyword name="BugBearVisitor.visit_For" id="BugBearVisitor.visit_For" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#BugBearVisitor.visit_For" />
+      <keyword name="BugBearVisitor.visit_UAdd" id="BugBearVisitor.visit_UAdd" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#BugBearVisitor.visit_UAdd" />
       <keyword name="CallStackViewer" id="CallStackViewer" ref="eric6.Debugger.CallStackViewer.html#CallStackViewer" />
       <keyword name="CallStackViewer (Constructor)" id="CallStackViewer (Constructor)" ref="eric6.Debugger.CallStackViewer.html#CallStackViewer.__init__" />
       <keyword name="CallStackViewer (Module)" id="CallStackViewer (Module)" ref="eric6.Debugger.CallStackViewer.html" />
@@ -10778,6 +10788,16 @@
       <keyword name="LogViewerPage (Constructor)" id="LogViewerPage (Constructor)" ref="eric6.Preferences.ConfigurationPages.LogViewerPage.html#LogViewerPage.__init__" />
       <keyword name="LogViewerPage (Module)" id="LogViewerPage (Module)" ref="eric6.Preferences.ConfigurationPages.LogViewerPage.html" />
       <keyword name="LogViewerPage.save" id="LogViewerPage.save" ref="eric6.Preferences.ConfigurationPages.LogViewerPage.html#LogViewerPage.save" />
+      <keyword name="LoggingVisitor" id="LoggingVisitor" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#LoggingVisitor" />
+      <keyword name="LoggingVisitor (Constructor)" id="LoggingVisitor (Constructor)" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#LoggingVisitor.__init__" />
+      <keyword name="LoggingVisitor.__detectLoggingLevel" id="LoggingVisitor.__detectLoggingLevel" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#LoggingVisitor.__detectLoggingLevel" />
+      <keyword name="LoggingVisitor.__isFormatCall" id="LoggingVisitor.__isFormatCall" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#LoggingVisitor.__isFormatCall" />
+      <keyword name="LoggingVisitor.__withinExtraKeyword" id="LoggingVisitor.__withinExtraKeyword" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#LoggingVisitor.__withinExtraKeyword" />
+      <keyword name="LoggingVisitor.__withinLoggingArgument" id="LoggingVisitor.__withinLoggingArgument" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#LoggingVisitor.__withinLoggingArgument" />
+      <keyword name="LoggingVisitor.__withinLoggingStatement" id="LoggingVisitor.__withinLoggingStatement" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#LoggingVisitor.__withinLoggingStatement" />
+      <keyword name="LoggingVisitor.visit_BinOp" id="LoggingVisitor.visit_BinOp" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#LoggingVisitor.visit_BinOp" />
+      <keyword name="LoggingVisitor.visit_Call" id="LoggingVisitor.visit_Call" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#LoggingVisitor.visit_Call" />
+      <keyword name="LoggingVisitor.visit_JoinedStr" id="LoggingVisitor.visit_JoinedStr" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#LoggingVisitor.visit_JoinedStr" />
       <keyword name="LoginForm" id="LoginForm" ref="eric6.Helpviewer.Passwords.LoginForm.html#LoginForm" />
       <keyword name="LoginForm" id="LoginForm" ref="eric6.WebBrowser.Passwords.LoginForm.html#LoginForm" />
       <keyword name="LoginForm (Constructor)" id="LoginForm (Constructor)" ref="eric6.Helpviewer.Passwords.LoginForm.html#LoginForm.__init__" />
@@ -11007,6 +11027,7 @@
       <keyword name="MiscellaneousChecker" id="MiscellaneousChecker" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#MiscellaneousChecker" />
       <keyword name="MiscellaneousChecker (Constructor)" id="MiscellaneousChecker (Constructor)" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#MiscellaneousChecker.__init__" />
       <keyword name="MiscellaneousChecker (Module)" id="MiscellaneousChecker (Module)" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html" />
+      <keyword name="MiscellaneousChecker.__checkBugBear" id="MiscellaneousChecker.__checkBugBear" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#MiscellaneousChecker.__checkBugBear" />
       <keyword name="MiscellaneousChecker.__checkBuiltins" id="MiscellaneousChecker.__checkBuiltins" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#MiscellaneousChecker.__checkBuiltins" />
       <keyword name="MiscellaneousChecker.__checkCoding" id="MiscellaneousChecker.__checkCoding" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#MiscellaneousChecker.__checkCoding" />
       <keyword name="MiscellaneousChecker.__checkComprehensions" id="MiscellaneousChecker.__checkComprehensions" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#MiscellaneousChecker.__checkComprehensions" />
@@ -11014,6 +11035,8 @@
       <keyword name="MiscellaneousChecker.__checkDictWithSortedKeys" id="MiscellaneousChecker.__checkDictWithSortedKeys" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#MiscellaneousChecker.__checkDictWithSortedKeys" />
       <keyword name="MiscellaneousChecker.__checkFormatString" id="MiscellaneousChecker.__checkFormatString" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#MiscellaneousChecker.__checkFormatString" />
       <keyword name="MiscellaneousChecker.__checkFuture" id="MiscellaneousChecker.__checkFuture" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#MiscellaneousChecker.__checkFuture" />
+      <keyword name="MiscellaneousChecker.__checkGettext" id="MiscellaneousChecker.__checkGettext" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#MiscellaneousChecker.__checkGettext" />
+      <keyword name="MiscellaneousChecker.__checkLogging" id="MiscellaneousChecker.__checkLogging" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#MiscellaneousChecker.__checkLogging" />
       <keyword name="MiscellaneousChecker.__checkMutableDefault" id="MiscellaneousChecker.__checkMutableDefault" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#MiscellaneousChecker.__checkMutableDefault" />
       <keyword name="MiscellaneousChecker.__checkPep3101" id="MiscellaneousChecker.__checkPep3101" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#MiscellaneousChecker.__checkPep3101" />
       <keyword name="MiscellaneousChecker.__checkPrintStatements" id="MiscellaneousChecker.__checkPrintStatements" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#MiscellaneousChecker.__checkPrintStatements" />
@@ -11194,6 +11217,11 @@
       <keyword name="MyMemoryEngine.engineName" id="MyMemoryEngine.engineName" ref="eric6.Plugins.UiExtensionPlugins.Translator.TranslatorEngines.MyMemoryEngine.html#MyMemoryEngine.engineName" />
       <keyword name="MyMemoryEngine.getTranslation" id="MyMemoryEngine.getTranslation" ref="eric6.Plugins.UiExtensionPlugins.Translator.TranslatorEngines.MyMemoryEngine.html#MyMemoryEngine.getTranslation" />
       <keyword name="MyMemoryEngine.supportedLanguages" id="MyMemoryEngine.supportedLanguages" ref="eric6.Plugins.UiExtensionPlugins.Translator.TranslatorEngines.MyMemoryEngine.html#MyMemoryEngine.supportedLanguages" />
+      <keyword name="NameFinder" id="NameFinder" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#NameFinder" />
+      <keyword name="NameFinder (Constructor)" id="NameFinder (Constructor)" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#NameFinder.__init__" />
+      <keyword name="NameFinder.getNames" id="NameFinder.getNames" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#NameFinder.getNames" />
+      <keyword name="NameFinder.visit" id="NameFinder.visit" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#NameFinder.visit" />
+      <keyword name="NameFinder.visit_Name" id="NameFinder.visit_Name" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#NameFinder.visit_Name" />
       <keyword name="NamingStyleChecker" id="NamingStyleChecker" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.NamingStyleChecker.html#NamingStyleChecker" />
       <keyword name="NamingStyleChecker (Constructor)" id="NamingStyleChecker (Constructor)" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.NamingStyleChecker.html#NamingStyleChecker.__init__" />
       <keyword name="NamingStyleChecker (Module)" id="NamingStyleChecker (Module)" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.NamingStyleChecker.html" />
@@ -16093,6 +16121,7 @@
       <keyword name="TextVisitor.__isBaseString" id="TextVisitor.__isBaseString" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#TextVisitor.__isBaseString" />
       <keyword name="TextVisitor.__visitBody" id="TextVisitor.__visitBody" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#TextVisitor.__visitBody" />
       <keyword name="TextVisitor.__visitDefinition" id="TextVisitor.__visitDefinition" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#TextVisitor.__visitDefinition" />
+      <keyword name="TextVisitor.visit_AsyncFunctionDef" id="TextVisitor.visit_AsyncFunctionDef" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#TextVisitor.visit_AsyncFunctionDef" />
       <keyword name="TextVisitor.visit_Bytes" id="TextVisitor.visit_Bytes" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#TextVisitor.visit_Bytes" />
       <keyword name="TextVisitor.visit_Call" id="TextVisitor.visit_Call" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#TextVisitor.visit_Call" />
       <keyword name="TextVisitor.visit_ClassDef" id="TextVisitor.visit_ClassDef" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#TextVisitor.visit_ClassDef" />
@@ -18351,6 +18380,7 @@
       <keyword name="compileUiFiles" id="compileUiFiles" ref="eric6.install.html#compileUiFiles" />
       <keyword name="compileUiFiles (Module)" id="compileUiFiles (Module)" ref="eric6.compileUiFiles.html" />
       <keyword name="completeFormData" id="completeFormData" ref="eric6.WebBrowser.Tools.Scripts.html#completeFormData" />
+      <keyword name="composeCallPath" id="composeCallPath" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#composeCallPath" />
       <keyword name="compound_statements" id="compound_statements" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.html#compound_statements" />
       <keyword name="containsSpace" id="containsSpace" ref="eric6.WebBrowser.Tools.WebBrowserTools.html#containsSpace" />
       <keyword name="contentSniff" id="contentSniff" ref="eric6.Helpviewer.HelpBrowserWV.html#contentSniff" />
--- a/Documentation/Source/eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html	Tue Mar 13 18:18:04 2018 +0100
+++ b/Documentation/Source/eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html	Tue Mar 13 18:20:40 2018 +0100
@@ -30,17 +30,349 @@
 <h3>Classes</h3>
 <table>
 <tr>
+<td><a href="#BugBearVisitor">BugBearVisitor</a></td>
+<td>Class implementing a node visitor to check for various topics.</td>
+</tr><tr>
+<td><a href="#LoggingVisitor">LoggingVisitor</a></td>
+<td>Class implementing a node visitor to check logging statements.</td>
+</tr><tr>
 <td><a href="#MiscellaneousChecker">MiscellaneousChecker</a></td>
 <td>Class implementing a checker for miscellaneous checks.</td>
 </tr><tr>
+<td><a href="#NameFinder">NameFinder</a></td>
+<td>Class to extract a name out of a tree of nodes.</td>
+</tr><tr>
 <td><a href="#TextVisitor">TextVisitor</a></td>
 <td>Class implementing a node visitor for bytes and str instances.</td>
 </tr>
 </table>
 <h3>Functions</h3>
 <table>
+<tr>
+<td><a href="#composeCallPath">composeCallPath</a></td>
+<td>Generator function to assemble the call path of a given node.</td>
+</tr>
+</table>
+<hr /><hr />
+<a NAME="BugBearVisitor" ID="BugBearVisitor"></a>
+<h2>BugBearVisitor</h2>
+<p>
+    Class implementing a node visitor to check for various topics.
+</p>
+<h3>Derived from</h3>
+ast.NodeVisitor
+<h3>Class Attributes</h3>
+<table>
+<tr><td>NodeWindowSize</td></tr>
+</table>
+<h3>Class Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#BugBearVisitor.__init__">BugBearVisitor</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#BugBearVisitor.__checkForM502">__checkForM502</a></td>
+<td>Private method to check the use of *strip().</td>
+</tr><tr>
+<td><a href="#BugBearVisitor.__checkForM507">__checkForM507</a></td>
+<td>Private method to check for unused loop variables.</td>
+</tr><tr>
+<td><a href="#BugBearVisitor.visit">visit</a></td>
+<td>Public method to traverse a given AST node.</td>
+</tr><tr>
+<td><a href="#BugBearVisitor.visit_Assign">visit_Assign</a></td>
+<td>Public method to handle assignments.</td>
+</tr><tr>
+<td><a href="#BugBearVisitor.visit_Attribute">visit_Attribute</a></td>
+<td>Public method to handle attributes.</td>
+</tr><tr>
+<td><a href="#BugBearVisitor.visit_Call">visit_Call</a></td>
+<td>Public method to handle a function call.</td>
+</tr><tr>
+<td><a href="#BugBearVisitor.visit_For">visit_For</a></td>
+<td>Public method to handle 'for' statements.</td>
+</tr><tr>
+<td><a href="#BugBearVisitor.visit_UAdd">visit_UAdd</a></td>
+<td>Public method to handle unary additions.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="BugBearVisitor.__init__" ID="BugBearVisitor.__init__"></a>
+<h4>BugBearVisitor (Constructor)</h4>
+<b>BugBearVisitor</b>(<i></i>)
+<p>
+        Constructor
+</p><a NAME="BugBearVisitor.__checkForM502" ID="BugBearVisitor.__checkForM502"></a>
+<h4>BugBearVisitor.__checkForM502</h4>
+<b>__checkForM502</b>(<i>node</i>)
+<p>
+        Private method to check the use of *strip().
+</p><dl>
+<dt><i>node</i> (ast.Call)</dt>
+<dd>
+reference to the node to be processed
+</dd>
+</dl><a NAME="BugBearVisitor.__checkForM507" ID="BugBearVisitor.__checkForM507"></a>
+<h4>BugBearVisitor.__checkForM507</h4>
+<b>__checkForM507</b>(<i>node</i>)
+<p>
+        Private method to check for unused loop variables.
+</p><dl>
+<dt><i>node</i> (ast.For)</dt>
+<dd>
+reference to the node to be processed
+</dd>
+</dl><a NAME="BugBearVisitor.visit" ID="BugBearVisitor.visit"></a>
+<h4>BugBearVisitor.visit</h4>
+<b>visit</b>(<i>node</i>)
+<p>
+        Public method to traverse a given AST node.
+</p><dl>
+<dt><i>node</i> (ast.Node)</dt>
+<dd>
+AST node to be traversed
+</dd>
+</dl><a NAME="BugBearVisitor.visit_Assign" ID="BugBearVisitor.visit_Assign"></a>
+<h4>BugBearVisitor.visit_Assign</h4>
+<b>visit_Assign</b>(<i>node</i>)
+<p>
+        Public method to handle assignments.
+</p><dl>
+<dt><i>node</i> (ast.Assign)</dt>
+<dd>
+reference to the node to be processed
+</dd>
+</dl><a NAME="BugBearVisitor.visit_Attribute" ID="BugBearVisitor.visit_Attribute"></a>
+<h4>BugBearVisitor.visit_Attribute</h4>
+<b>visit_Attribute</b>(<i>node</i>)
+<p>
+        Public method to handle attributes.
+</p><dl>
+<dt><i>node</i> (ast.Attribute)</dt>
+<dd>
+reference to the node to be processed
+</dd>
+</dl><a NAME="BugBearVisitor.visit_Call" ID="BugBearVisitor.visit_Call"></a>
+<h4>BugBearVisitor.visit_Call</h4>
+<b>visit_Call</b>(<i>node</i>)
+<p>
+        Public method to handle a function call.
+</p><dl>
+<dt><i>node</i> (ast.Call)</dt>
+<dd>
+reference to the node to be processed
+</dd>
+</dl><a NAME="BugBearVisitor.visit_For" ID="BugBearVisitor.visit_For"></a>
+<h4>BugBearVisitor.visit_For</h4>
+<b>visit_For</b>(<i>node</i>)
+<p>
+        Public method to handle 'for' statements.
+</p><dl>
+<dt><i>node</i> (ast.For)</dt>
+<dd>
+reference to the node to be processed
+</dd>
+</dl><a NAME="BugBearVisitor.visit_UAdd" ID="BugBearVisitor.visit_UAdd"></a>
+<h4>BugBearVisitor.visit_UAdd</h4>
+<b>visit_UAdd</b>(<i>node</i>)
+<p>
+        Public method to handle unary additions.
+</p><dl>
+<dt><i>node</i> (ast.UAdd)</dt>
+<dd>
+reference to the node to be processed
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="LoggingVisitor" ID="LoggingVisitor"></a>
+<h2>LoggingVisitor</h2>
+<p>
+    Class implementing a node visitor to check logging statements.
+</p>
+<h3>Derived from</h3>
+ast.NodeVisitor
+<h3>Class Attributes</h3>
+<table>
+<tr><td>LoggingLevels</td></tr>
+</table>
+<h3>Class Methods</h3>
+<table>
 <tr><td>None</td></tr>
 </table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#LoggingVisitor.__init__">LoggingVisitor</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#LoggingVisitor.__detectLoggingLevel">__detectLoggingLevel</a></td>
+<td>Private method to decide whether an AST Call is a logging call.</td>
+</tr><tr>
+<td><a href="#LoggingVisitor.__isFormatCall">__isFormatCall</a></td>
+<td>Private method to check if a function call uses format.</td>
+</tr><tr>
+<td><a href="#LoggingVisitor.__withinExtraKeyword">__withinExtraKeyword</a></td>
+<td>Private method to check, if we are inside the extra keyword.</td>
+</tr><tr>
+<td><a href="#LoggingVisitor.__withinLoggingArgument">__withinLoggingArgument</a></td>
+<td>Private method to check, if we are inside a logging argument.</td>
+</tr><tr>
+<td><a href="#LoggingVisitor.__withinLoggingStatement">__withinLoggingStatement</a></td>
+<td>Private method to check, if we are inside a logging statement.</td>
+</tr><tr>
+<td><a href="#LoggingVisitor.visit_BinOp">visit_BinOp</a></td>
+<td>Public method to handle binary operations while processing the first logging argument.</td>
+</tr><tr>
+<td><a href="#LoggingVisitor.visit_Call">visit_Call</a></td>
+<td>Public method to handle a function call.</td>
+</tr><tr>
+<td><a href="#LoggingVisitor.visit_JoinedStr">visit_JoinedStr</a></td>
+<td>Public method to handle f-string arguments.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="LoggingVisitor.__init__" ID="LoggingVisitor.__init__"></a>
+<h4>LoggingVisitor (Constructor)</h4>
+<b>LoggingVisitor</b>(<i></i>)
+<p>
+        Constructor
+</p><a NAME="LoggingVisitor.__detectLoggingLevel" ID="LoggingVisitor.__detectLoggingLevel"></a>
+<h4>LoggingVisitor.__detectLoggingLevel</h4>
+<b>__detectLoggingLevel</b>(<i>node</i>)
+<p>
+        Private method to decide whether an AST Call is a logging call.
+</p><dl>
+<dt><i>node</i> (ast.Call)</dt>
+<dd>
+reference to the node to be processed
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+logging level
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+str or None
+</dd>
+</dl><a NAME="LoggingVisitor.__isFormatCall" ID="LoggingVisitor.__isFormatCall"></a>
+<h4>LoggingVisitor.__isFormatCall</h4>
+<b>__isFormatCall</b>(<i>node</i>)
+<p>
+        Private method to check if a function call uses format.
+</p><dl>
+<dt><i>node</i> (ast.Call)</dt>
+<dd>
+reference to the node to be processed
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating the function call uses format
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl><a NAME="LoggingVisitor.__withinExtraKeyword" ID="LoggingVisitor.__withinExtraKeyword"></a>
+<h4>LoggingVisitor.__withinExtraKeyword</h4>
+<b>__withinExtraKeyword</b>(<i>node</i>)
+<p>
+        Private method to check, if we are inside the extra keyword.
+</p><dl>
+<dt><i>node</i> (ast.keyword)</dt>
+<dd>
+reference to the node to be checked
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating we are inside the extra keyword
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl><a NAME="LoggingVisitor.__withinLoggingArgument" ID="LoggingVisitor.__withinLoggingArgument"></a>
+<h4>LoggingVisitor.__withinLoggingArgument</h4>
+<b>__withinLoggingArgument</b>(<i></i>)
+<p>
+        Private method to check, if we are inside a logging argument.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating we are inside a logging argument
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl><a NAME="LoggingVisitor.__withinLoggingStatement" ID="LoggingVisitor.__withinLoggingStatement"></a>
+<h4>LoggingVisitor.__withinLoggingStatement</h4>
+<b>__withinLoggingStatement</b>(<i></i>)
+<p>
+        Private method to check, if we are inside a logging statement.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating we are inside a logging statement
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl><a NAME="LoggingVisitor.visit_BinOp" ID="LoggingVisitor.visit_BinOp"></a>
+<h4>LoggingVisitor.visit_BinOp</h4>
+<b>visit_BinOp</b>(<i>node</i>)
+<p>
+        Public method to handle binary operations while processing the first
+        logging argument.
+</p><dl>
+<dt><i>node</i> (ast.BinOp)</dt>
+<dd>
+reference to the node to be processed
+</dd>
+</dl><a NAME="LoggingVisitor.visit_Call" ID="LoggingVisitor.visit_Call"></a>
+<h4>LoggingVisitor.visit_Call</h4>
+<b>visit_Call</b>(<i>node</i>)
+<p>
+        Public method to handle a function call.
+</p><p>
+        Every logging statement and string format is expected to be a function
+        call.
+</p><dl>
+<dt><i>node</i> (ast.Call)</dt>
+<dd>
+reference to the node to be processed
+</dd>
+</dl><a NAME="LoggingVisitor.visit_JoinedStr" ID="LoggingVisitor.visit_JoinedStr"></a>
+<h4>LoggingVisitor.visit_JoinedStr</h4>
+<b>visit_JoinedStr</b>(<i>node</i>)
+<p>
+        Public method to handle f-string arguments.
+</p><dl>
+<dt><i>node</i> (ast.JoinedStr)</dt>
+<dd>
+reference to the node to be processed
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
 <hr /><hr />
 <a NAME="MiscellaneousChecker" ID="MiscellaneousChecker"></a>
 <h2>MiscellaneousChecker</h2>
@@ -63,6 +395,9 @@
 <td><a href="#MiscellaneousChecker.__init__">MiscellaneousChecker</a></td>
 <td>Constructor</td>
 </tr><tr>
+<td><a href="#MiscellaneousChecker.__checkBugBear">__checkBugBear</a></td>
+<td>Private method to bugbear checks.</td>
+</tr><tr>
 <td><a href="#MiscellaneousChecker.__checkBuiltins">__checkBuiltins</a></td>
 <td>Private method to check, if built-ins are shadowed.</td>
 </tr><tr>
@@ -84,6 +419,12 @@
 <td><a href="#MiscellaneousChecker.__checkFuture">__checkFuture</a></td>
 <td>Private method to check the __future__ imports.</td>
 </tr><tr>
+<td><a href="#MiscellaneousChecker.__checkGettext">__checkGettext</a></td>
+<td>Private method to check the 'gettext' import statement.</td>
+</tr><tr>
+<td><a href="#MiscellaneousChecker.__checkLogging">__checkLogging</a></td>
+<td>Private method to check logging statements.</td>
+</tr><tr>
 <td><a href="#MiscellaneousChecker.__checkMutableDefault">__checkMutableDefault</a></td>
 <td>Private method to check for use of mutable types as default arguments.</td>
 </tr><tr>
@@ -150,7 +491,12 @@
 <dd>
 dictionary of arguments for the miscellaneous checks
 </dd>
-</dl><a NAME="MiscellaneousChecker.__checkBuiltins" ID="MiscellaneousChecker.__checkBuiltins"></a>
+</dl><a NAME="MiscellaneousChecker.__checkBugBear" ID="MiscellaneousChecker.__checkBugBear"></a>
+<h4>MiscellaneousChecker.__checkBugBear</h4>
+<b>__checkBugBear</b>(<i></i>)
+<p>
+        Private method to bugbear checks.
+</p><a NAME="MiscellaneousChecker.__checkBuiltins" ID="MiscellaneousChecker.__checkBuiltins"></a>
 <h4>MiscellaneousChecker.__checkBuiltins</h4>
 <b>__checkBuiltins</b>(<i></i>)
 <p>
@@ -186,6 +532,16 @@
 <b>__checkFuture</b>(<i></i>)
 <p>
         Private method to check the __future__ imports.
+</p><a NAME="MiscellaneousChecker.__checkGettext" ID="MiscellaneousChecker.__checkGettext"></a>
+<h4>MiscellaneousChecker.__checkGettext</h4>
+<b>__checkGettext</b>(<i></i>)
+<p>
+        Private method to check the 'gettext' import statement.
+</p><a NAME="MiscellaneousChecker.__checkLogging" ID="MiscellaneousChecker.__checkLogging"></a>
+<h4>MiscellaneousChecker.__checkLogging</h4>
+<b>__checkLogging</b>(<i></i>)
+<p>
+        Private method to check logging statements.
 </p><a NAME="MiscellaneousChecker.__checkMutableDefault" ID="MiscellaneousChecker.__checkMutableDefault"></a>
 <h4>MiscellaneousChecker.__checkMutableDefault</h4>
 <b>__checkMutableDefault</b>(<i></i>)
@@ -315,6 +671,84 @@
 </p>
 <div align="right"><a href="#top">Up</a></div>
 <hr /><hr />
+<a NAME="NameFinder" ID="NameFinder"></a>
+<h2>NameFinder</h2>
+<p>
+    Class to extract a name out of a tree of nodes.
+</p>
+<h3>Derived from</h3>
+ast.NodeVisitor
+<h3>Class Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Class Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#NameFinder.__init__">NameFinder</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#NameFinder.getNames">getNames</a></td>
+<td>Public method to return the extracted names and Name nodes.</td>
+</tr><tr>
+<td><a href="#NameFinder.visit">visit</a></td>
+<td>Public method to traverse a given AST node.</td>
+</tr><tr>
+<td><a href="#NameFinder.visit_Name">visit_Name</a></td>
+<td>Public method to handle 'Name' nodes.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="NameFinder.__init__" ID="NameFinder.__init__"></a>
+<h4>NameFinder (Constructor)</h4>
+<b>NameFinder</b>(<i></i>)
+<p>
+        Constructor
+</p><a NAME="NameFinder.getNames" ID="NameFinder.getNames"></a>
+<h4>NameFinder.getNames</h4>
+<b>getNames</b>(<i></i>)
+<p>
+        Public method to return the extracted names and Name nodes.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+dictionary containing the names as keys and the list of nodes
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+dict
+</dd>
+</dl><a NAME="NameFinder.visit" ID="NameFinder.visit"></a>
+<h4>NameFinder.visit</h4>
+<b>visit</b>(<i>node</i>)
+<p>
+        Public method to traverse a given AST node.
+</p><dl>
+<dt><i>node</i> (ast.Node)</dt>
+<dd>
+AST node to be traversed
+</dd>
+</dl><a NAME="NameFinder.visit_Name" ID="NameFinder.visit_Name"></a>
+<h4>NameFinder.visit_Name</h4>
+<b>visit_Name</b>(<i>node</i>)
+<p>
+        Public method to handle 'Name' nodes.
+</p><dl>
+<dt><i>node</i> (ast.Name)</dt>
+<dd>
+reference to the node to be processed
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
 <a NAME="TextVisitor" ID="TextVisitor"></a>
 <h2>TextVisitor</h2>
 <p>
@@ -351,6 +785,9 @@
 <td><a href="#TextVisitor.__visitDefinition">__visitDefinition</a></td>
 <td>Private method handling class and function definitions.</td>
 </tr><tr>
+<td><a href="#TextVisitor.visit_AsyncFunctionDef">visit_AsyncFunctionDef</a></td>
+<td>Public method to handle an asynchronous function definition.</td>
+</tr><tr>
 <td><a href="#TextVisitor.visit_Bytes">visit_Bytes</a></td>
 <td>Public method to record a bytes node.</td>
 </tr><tr>
@@ -428,7 +865,17 @@
 <p>
         Private method handling class and function definitions.
 </p><dl>
-<dt><i>node</i> (ast.FunctionDef or ast.ClassDef)</dt>
+<dt><i>node</i> (ast.FunctionDef, ast.AsyncFunctionDef or ast.ClassDef)</dt>
+<dd>
+reference to the node to handle
+</dd>
+</dl><a NAME="TextVisitor.visit_AsyncFunctionDef" ID="TextVisitor.visit_AsyncFunctionDef"></a>
+<h4>TextVisitor.visit_AsyncFunctionDef</h4>
+<b>visit_AsyncFunctionDef</b>(<i>node</i>)
+<p>
+        Public method to handle an asynchronous function definition.
+</p><dl>
+<dt><i>node</i> (ast.AsyncFunctionDef)</dt>
 <dd>
 reference to the node to handle
 </dd>
@@ -494,5 +941,28 @@
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="composeCallPath" ID="composeCallPath"></a>
+<h2>composeCallPath</h2>
+<b>composeCallPath</b>(<i>node</i>)
+<p>
+    Generator function to assemble the call path of a given node.
+</p><dl>
+<dt><i>node</i> (ast.Node)</dt>
+<dd>
+node to assemble call path for
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+call path components
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+str
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
 <hr />
 </body></html>
\ No newline at end of file
--- a/E5Gui/E5GenericDiffHighlighter.py	Tue Mar 13 18:18:04 2018 +0100
+++ b/E5Gui/E5GenericDiffHighlighter.py	Tue Mar 13 18:20:40 2018 +0100
@@ -62,7 +62,7 @@
         @param rules set of highlighting rules (list of tuples of rule
             pattern (string) and highlighting format (QTextCharFormat))
         """
-        for idx, ruleFormat in enumerate(rules):
+        for _idx, ruleFormat in enumerate(rules):
             rule, formats = ruleFormat
             terminal = rule.startswith(TERMINAL(''))
             if terminal:
--- a/E5Gui/E5SideBar.py	Tue Mar 13 18:18:04 2018 +0100
+++ b/E5Gui/E5SideBar.py	Tue Mar 13 18:20:40 2018 +0100
@@ -617,7 +617,7 @@
         self.__maxSize = max(stream.readUInt16(), maxSize)
         count = stream.readUInt16()
         self.splitterSizes = []
-        for i in range(count):
+        for _ in range(count):
             self.splitterSizes.append(stream.readUInt16())
         
         self.__autoHide = stream.readBool()
--- a/E5Gui/E5ToolBarManager.py	Tue Mar 13 18:18:04 2018 +0100
+++ b/E5Gui/E5ToolBarManager.py	Tue Mar 13 18:20:40 2018 +0100
@@ -549,11 +549,11 @@
             return False
         
         toolBarCount = stream.readUInt16()
-        for i in range(toolBarCount):
+        for _i in range(toolBarCount):
             objectName = Utilities.readStringFromStream(stream)
             actionCount = stream.readUInt16()
             actions = []
-            for j in range(actionCount):
+            for _j in range(actionCount):
                 actionName = Utilities.readStringFromStream(stream)
                 if actionName:
                     action = self.__findAction(actionName)
@@ -572,12 +572,12 @@
         oldCustomToolBars = self.__customToolBars[:]
         
         toolBarCount = stream.readUInt16()
-        for i in range(toolBarCount):
+        for _i in range(toolBarCount):
             objectName = Utilities.readStringFromStream(stream)
             toolBarTitle = Utilities.readStringFromStream(stream)
             actionCount = stream.readUInt16()
             actions = []
-            for j in range(actionCount):
+            for _j in range(actionCount):
                 actionName = Utilities.readStringFromStream(stream)
                 if actionName:
                     action = self.__findAction(actionName)
--- a/HexEdit/HexEditUndoStack.py	Tue Mar 13 18:18:04 2018 +0100
+++ b/HexEdit/HexEditUndoStack.py	Tue Mar 13 18:20:40 2018 +0100
@@ -181,7 +181,7 @@
             else:
                 txt = self.tr("Deleting %n byte(s)", "", length)
                 self.beginMacro(txt)
-                for cnt in range(length):
+                for _cnt in range(length):
                     uc = HexEditUndoCommand(
                         self.__chunks, HexEditCommand.RemoveAt, pos, 0)
                     self.push(uc)
--- a/Network/IRC/IrcWidget.py	Tue Mar 13 18:18:04 2018 +0100
+++ b/Network/IRC/IrcWidget.py	Tue Mar 13 18:20:40 2018 +0100
@@ -526,7 +526,7 @@
                 for line in self.__buffer.splitlines():
                     line = line.strip()
                     if line:
-                        logging.debug("<IRC> " + line)
+                        logging.debug("<IRC> %s", line)
                         handled = False
                         # step 1: give channels a chance to handle the message
                         for channel in self.__channelList:
--- a/PluginManager/PluginManager.py	Tue Mar 13 18:18:04 2018 +0100
+++ b/PluginManager/PluginManager.py	Tue Mar 13 18:20:40 2018 +0100
@@ -883,9 +883,8 @@
         """
         pluginDict = {}
         
-        for name, module in \
-            list(self.__onDemandActiveModules.items()) + \
-                list(self.__onDemandInactiveModules.items()):
+        for module in list(self.__onDemandActiveModules.values()) + \
+                list(self.__onDemandInactiveModules.values()):
             if getattr(module, "pluginType") == type_ and \
                getattr(module, "error", "") == "":
                 plugin_name = getattr(module, "pluginTypename")
@@ -909,9 +908,8 @@
         @param name name of the plugin type (string)
         @return preview pixmap (QPixmap)
         """
-        for modname, module in \
-            list(self.__onDemandActiveModules.items()) + \
-                list(self.__onDemandInactiveModules.items()):
+        for module in list(self.__onDemandActiveModules.values()) + \
+                list(self.__onDemandInactiveModules.values()):
             if getattr(module, "pluginType") == type_ and \
                getattr(module, "pluginTypename") == name:
                 if hasattr(module, "previewPix"):
@@ -1089,9 +1087,8 @@
         """
         vcsDict = {}
         
-        for name, module in \
-            list(self.__onDemandActiveModules.items()) + \
-                list(self.__onDemandInactiveModules.items()):
+        for module in list(self.__onDemandActiveModules.values()) + \
+                list(self.__onDemandInactiveModules.values()):
             if getattr(module, "pluginType") == "version_control":
                 if hasattr(module, "getVcsSystemIndicator"):
                     res = module.getVcsSystemIndicator()
@@ -1350,11 +1347,11 @@
         
         @param type_ type of the plugin to clear private data for (string)
         """
-        for name, module in \
-            list(self.__onDemandActiveModules.items()) + \
-            list(self.__onDemandInactiveModules.items()) + \
-            list(self.__activeModules.items()) + \
-                list(self.__inactiveModules.items()):
+        for module in \
+            list(self.__onDemandActiveModules.values()) + \
+            list(self.__onDemandInactiveModules.values()) + \
+            list(self.__activeModules.values()) + \
+                list(self.__inactiveModules.values()):
             if getattr(module, "pluginType", "") == type_:
                 if hasattr(module, "clearPrivateData"):
                     module.clearPrivateData()
--- a/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleChecker.py	Tue Mar 13 18:18:04 2018 +0100
+++ b/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleChecker.py	Tue Mar 13 18:20:40 2018 +0100
@@ -187,7 +187,7 @@
         taskQueue.put(task)
 
     # Start worker processes
-    for i in range(NumberOfProcesses):
+    for _ in range(NumberOfProcesses):
         multiprocessing.Process(target=worker, args=(taskQueue, doneQueue))\
             .start()
 
@@ -217,7 +217,7 @@
             taskQueue.put(argumentsList[i + initialTasks])
 
     # Tell child processes to stop
-    for i in range(NumberOfProcesses):
+    for _ in range(NumberOfProcesses):
         taskQueue.put('STOP')
 
 
@@ -322,7 +322,7 @@
         errors += complexityChecker.errors
     
     errorsDict = {}
-    for fname, lineno, position, text in errors:
+    for _fname, lineno, position, text in errors:
         if lineno > len(source):
             lineno = len(source)
         # inverse processing of messages and fixes
--- a/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py	Tue Mar 13 18:18:04 2018 +0100
+++ b/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py	Tue Mar 13 18:20:40 2018 +0100
@@ -668,8 +668,8 @@
         fixed = None
         ignoredErrors = 0
         if self.__itms:
-            for itm, (lineno, position, text, ignored, fixed, autofixing) in \
-                    zip(self.__itms, results):
+            for itm, (_lineno, _position, text, _ignored, fixed,
+                      _autofixing) in zip(self.__itms, results):
                 self.__modifyFixedResultItem(itm, text, fixed)
             self.__updateFixerStatistics(fixes)
         else:
--- a/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py	Tue Mar 13 18:18:04 2018 +0100
+++ b/Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleFixer.py	Tue Mar 13 18:20:40 2018 +0100
@@ -1238,7 +1238,7 @@
         tokens = '<>*/=^&|%!+-'
         pos2 = pos
         token_delimiter = len(tokens)
-        for i in range(3):
+        for _ in range(3):
             if pos2 < len(text) and text[pos2] in tokens[:token_delimiter]:
                 pos2 += 1
                 # only the first five could be repeated
--- a/Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py	Tue Mar 13 18:18:04 2018 +0100
+++ b/Plugins/CheckerPlugins/CodeStyleChecker/DocStyleChecker.py	Tue Mar 13 18:20:40 2018 +0100
@@ -508,7 +508,7 @@
         @param source source to parse (list of string)
         @return context of extracted docstring (DocStyleContext)
         """
-        for kind, value, (line, char), _, _ in tokenize.generate_tokens(
+        for kind, value, (line, _char), _, _ in tokenize.generate_tokens(
                 StringIO("".join(source)).readline):
             if kind in [tokenize.COMMENT, tokenize.NEWLINE, tokenize.NL]:
                 continue
--- a/Plugins/CheckerPlugins/CodeStyleChecker/MiscellaneousChecker.py	Tue Mar 13 18:18:04 2018 +0100
+++ b/Plugins/CheckerPlugins/CodeStyleChecker/MiscellaneousChecker.py	Tue Mar 13 18:20:40 2018 +0100
@@ -14,6 +14,23 @@
 from string import Formatter
 
 
+def composeCallPath(node):
+    """
+    Generator function to assemble the call path of a given node.
+    
+    @param node node to assemble call path for
+    @type ast.Node
+    @return call path components
+    @rtype str
+    """
+    if isinstance(node, ast.Attribute):
+        for v in composeCallPath(node.value):
+            yield v
+        yield node.attr
+    elif isinstance(node, ast.Name):
+        yield node.id
+
+
 class MiscellaneousChecker(object):
     """
     Class implementing a checker for miscellaneous checks.
@@ -28,12 +45,17 @@
         
         "M201",
         
+        "M501", "M502", "M503", "M504", "M505", "M506", "M507",
+        "M511", "M512", "M513", "M514",
+        
         "M601",
         "M611", "M612", "M613",
         "M621", "M622", "M623", "M624", "M625",
         "M631", "M632",
+        "M651", "M652", "M653", "M654", "M655",
         
         "M701", "M702",
+        "M711",
         
         "M801",
         "M811",
@@ -108,7 +130,12 @@
             (self.__checkFormatString, ("M611", "M612", "M613",
                                         "M621", "M622", "M623", "M624", "M625",
                                         "M631", "M632")),
+            (self.__checkBugBear, ("M501", "M502", "M503", "M504", "M505",
+                                   "M506", "M507",
+                                   "M511", "M512", "M513", "M514")),
+            (self.__checkLogging, ("M651", "M652", "M653", "M654", "M655")),
             (self.__checkFuture, ("M701", "M702")),
+            (self.__checkGettext, ("M711",)),
             (self.__checkPrintStatements, ("M801",)),
             (self.__checkTuple, ("M811", )),
             (self.__checkMutableDefault, ("M821", "M822")),
@@ -480,7 +507,7 @@
         implicit = False
         explicit = False
         try:
-            for literal, field, spec, conv in self.Formatter.parse(string):
+            for _literal, field, spec, conv in self.Formatter.parse(string):
                 if field is not None and (conv is None or conv in 'rsa'):
                     if not field:
                         field = str(next(cnt))
@@ -500,6 +527,12 @@
         """
         Private method to check, if built-ins are shadowed.
         """
+        functionDefs = [ast.FunctionDef]
+        try:
+            functionDefs.append(ast.AsyncFunctionDef)
+        except AttributeError:
+            pass
+        
         ignoreBuiltinAssignments = self.__args.get(
             "BuiltinsChecker", self.__defaultArgs["BuiltinsChecker"])
         
@@ -538,8 +571,9 @@
                             self.__error(element.lineno - 1,
                                          element.col_offset,
                                          "M131", element.id)
-            elif isinstance(node, ast.FunctionDef):
-                # function definition
+            elif any(isinstance(node, functionDef)
+                     for functionDef in functionDefs):
+                # (asynchronous) function definition
                 if sys.version_info >= (3, 0):
                     for arg in node.args.args:
                         if isinstance(arg, ast.arg) and \
@@ -596,25 +630,52 @@
         """
         Private method to check for use of mutable types as default arguments.
         """
-        mutableTypes = [
+        mutableTypes = (
             ast.Call,
             ast.Dict,
             ast.List,
             ast.Set,
-        ]
+        )
+        mutableCalls = (
+            "Counter",
+            "OrderedDict",
+            "collections.Counter",
+            "collections.OrderedDict",
+            "collections.defaultdict",
+            "collections.deque",
+            "defaultdict",
+            "deque",
+            "dict",
+            "list",
+            "set",
+        )
+        functionDefs = [ast.FunctionDef]
+        try:
+            functionDefs.append(ast.AsyncFunctionDef)
+        except AttributeError:
+            pass
         
         for node in ast.walk(self.__tree):
-            if isinstance(node, ast.FunctionDef):
+            if any(isinstance(node, functionDef)
+                   for functionDef in functionDefs):
                 for default in node.args.defaults:
                     if any(isinstance(default, mutableType)
                            for mutableType in mutableTypes):
                         typeName = type(default).__name__
                         if isinstance(default, ast.Call):
-                            errorCode = "M822"
+                            callPath = '.'.join(composeCallPath(default.func))
+                            if callPath in mutableCalls:
+                                self.__error(default.lineno - 1,
+                                             default.col_offset,
+                                             "M823", callPath + "()")
+                            else:
+                                self.__error(default.lineno - 1,
+                                             default.col_offset,
+                                             "M822", typeName)
                         else:
-                            errorCode = "M821"
-                        self.__error(default.lineno - 1, default.col_offset,
-                                     errorCode, typeName)
+                            self.__error(default.lineno - 1,
+                                         default.col_offset,
+                                         "M821", typeName)
     
     def __dictShouldBeChecked(self, node):
         """
@@ -644,6 +705,37 @@
                     if key2.s < key1.s:
                         self.__error(key2.lineno - 1, key2.col_offset,
                                      "M201", key2.s, key1.s)
+    
+    def __checkLogging(self):
+        """
+        Private method to check logging statements.
+        """
+        visitor = LoggingVisitor()
+        visitor.visit(self.__tree)
+        for node, reason in visitor.violations:
+            self.__error(node.lineno - 1, node.col_offset, reason)
+    
+    def __checkGettext(self):
+        """
+        Private method to check the 'gettext' import statement.
+        """
+        for node in ast.walk(self.__tree):
+            if isinstance(node, ast.ImportFrom) and \
+               any(name.asname == '_' for name in node.names):
+                self.__error(node.lineno - 1, node.col_offset, "M711",
+                             node.names[0].name)
+    
+    def __checkBugBear(self):
+        """
+        Private method to bugbear checks.
+        """
+        visitor = BugBearVisitor()
+        visitor.visit(self.__tree)
+        for violation in visitor.violations:
+            node = violation[0]
+            reason = violation[1]
+            params = violation[2:]
+            self.__error(node.lineno - 1, node.col_offset, reason, *params)
 
 
 class TextVisitor(ast.NodeVisitor):
@@ -711,7 +803,7 @@
         Private method handling class and function definitions.
         
         @param node reference to the node to handle
-        @type ast.FunctionDef or ast.ClassDef
+        @type ast.FunctionDef, ast.AsyncFunctionDef or ast.ClassDef
         """
         # Manually traverse class or function definition
         # * Handle decorators normally
@@ -767,6 +859,16 @@
         # Skipped nodes: ('name', 'args', 'returns')
         self.__visitDefinition(node)
 
+    def visit_AsyncFunctionDef(self, node):
+        """
+        Public method to handle an asynchronous function definition.
+        
+        @param node reference to the node to handle
+        @type ast.AsyncFunctionDef
+        """
+        # Skipped nodes: ('name', 'args', 'returns')
+        self.__visitDefinition(node)
+
     def visit_Call(self, node):
         """
         Public method to handle a function call.
@@ -784,5 +886,407 @@
                 self.calls[node.args[0]] = (node, True)
         super(TextVisitor, self).generic_visit(node)
 
+
+class LoggingVisitor(ast.NodeVisitor):
+    """
+    Class implementing a node visitor to check logging statements.
+    """
+    LoggingLevels = {
+        "debug",
+        "critical",
+        "error",
+        "info",
+        "warn",
+        "warning",
+    }
+    
+    def __init__(self):
+        """
+        Constructor
+        """
+        super(LoggingVisitor, self).__init__()
+        
+        self.__currentLoggingCall = None
+        self.__currentLoggingArgument = None
+        self.__currentLoggingLevel = None
+        self.__currentExtraKeyword = None
+        self.violations = []
+
+    def __withinLoggingStatement(self):
+        """
+        Private method to check, if we are inside a logging statement.
+        
+        @return flag indicating we are inside a logging statement
+        @rtype bool
+        """
+        return self.__currentLoggingCall is not None
+
+    def __withinLoggingArgument(self):
+        """
+        Private method to check, if we are inside a logging argument.
+        
+        @return flag indicating we are inside a logging argument
+        @rtype bool
+        """
+        return self.__currentLoggingArgument is not None
+
+    def __withinExtraKeyword(self, node):
+        """
+        Private method to check, if we are inside the extra keyword.
+        
+        @param node reference to the node to be checked
+        @type ast.keyword
+        @return flag indicating we are inside the extra keyword
+        @rtype bool
+        """
+        return self.__currentExtraKeyword is not None and \
+            self.__currentExtraKeyword != node
+    
+    def __detectLoggingLevel(self, node):
+        """
+        Private method to decide whether an AST Call is a logging call.
+        
+        @param node reference to the node to be processed
+        @type ast.Call
+        @return logging level
+        @rtype str or None
+        """
+        try:
+            if node.func.value.id == "warnings":
+                return None
+            
+            if node.func.attr in LoggingVisitor.LoggingLevels:
+                return node.func.attr
+        except AttributeError:
+            pass
+        
+        return None
+
+    def __isFormatCall(self, node):
+        """
+        Private method to check if a function call uses format.
+
+        @param node reference to the node to be processed
+        @type ast.Call
+        @return flag indicating the function call uses format
+        @rtype bool
+        """
+        try:
+            return node.func.attr == "format"
+        except AttributeError:
+            return False
+    
+    def visit_Call(self, node):
+        """
+        Public method to handle a function call.
+
+        Every logging statement and string format is expected to be a function
+        call.
+        
+        @param node reference to the node to be processed
+        @type ast.Call
+        """
+        # we are in a logging statement
+        if self.__withinLoggingStatement():
+            if self.__withinLoggingArgument() and self.__isFormatCall(node):
+                self.violations.append((node, "M651"))
+                super(LoggingVisitor, self).generic_visit(node)
+                return
+        
+        loggingLevel = self.__detectLoggingLevel(node)
+        
+        if loggingLevel and self.__currentLoggingLevel is None:
+            self.__currentLoggingLevel = loggingLevel
+        
+        # we are in some other statement
+        if loggingLevel is None:
+            super(LoggingVisitor, self).generic_visit(node)
+            return
+        
+        # we are entering a new logging statement
+        self.__currentLoggingCall = node
+        
+        if loggingLevel == "warn":
+            self.violations.append((node, "M655"))
+        
+        for index, child in enumerate(ast.iter_child_nodes(node)):
+            if index == 1:
+                self.__currentLoggingArgument = child
+            if index > 1 and isinstance(child, ast.keyword) and \
+               child.arg == "extra":
+                self.__currentExtraKeyword = child
+            
+            super(LoggingVisitor, self).visit(child)
+            
+            self.__currentLoggingArgument = None
+            self.__currentExtraKeyword = None
+        
+        self.__currentLoggingCall = None
+        self.__currentLoggingLevel = None
+    
+    def visit_BinOp(self, node):
+        """
+        Public method to handle binary operations while processing the first
+        logging argument.
+        
+        @param node reference to the node to be processed
+        @type ast.BinOp
+        """
+        if self.__withinLoggingStatement() and self.__withinLoggingArgument():
+            # handle percent format
+            if isinstance(node.op, ast.Mod):
+                self.violations.append((node, "M652"))
+            
+            # handle string concat
+            if isinstance(node.op, ast.Add):
+                self.violations.append((node, "M653"))
+        
+        super(LoggingVisitor, self).generic_visit(node)
+    
+    def visit_JoinedStr(self, node):
+        """
+        Public method to handle f-string arguments.
+        
+        @param node reference to the node to be processed
+        @type ast.JoinedStr
+        """
+        if sys.version_info >= (3, 6):
+            if self.__withinLoggingStatement():
+                if any(isinstance(i, ast.FormattedValue) for i in node.values):
+                    if self.__withinLoggingArgument():
+                        self.violations.append((node, "M654"))
+                        
+                        super(LoggingVisitor, self).generic_visit(node)
+
+
+class BugBearVisitor(ast.NodeVisitor):
+    """
+    Class implementing a node visitor to check for various topics.
+    """
+    #
+    # This class was implemented along the BugBear flake8 extension (v 18.2.0).
+    # Original: Copyright (c) 2016 Łukasz Langa
+    #
+    
+    NodeWindowSize = 4
+    
+    def __init__(self):
+        """
+        Constructor
+        """
+        super(BugBearVisitor, self).__init__()
+        
+        self.__nodeStack = []
+        self.__nodeWindow = []
+        self.violations = []
+    
+    def visit(self, node):
+        """
+        Public method to traverse a given AST node.
+        
+        @param node AST node to be traversed
+        @type ast.Node
+        """
+        self.__nodeStack.append(node)
+        self.__nodeWindow.append(node)
+        self.__nodeWindow = \
+            self.__nodeWindow[-BugBearVisitor.NodeWindowSize:]
+        
+        super(BugBearVisitor, self).visit(node)
+        
+        self.__nodeStack.pop()
+    
+    def visit_UAdd(self, node):
+        """
+        Public method to handle unary additions.
+        
+        @param node reference to the node to be processed
+        @type ast.UAdd
+        """
+        trailingNodes = list(map(type, self.__nodeWindow[-4:]))
+        if trailingNodes == [ast.UnaryOp, ast.UAdd, ast.UnaryOp, ast.UAdd]:
+            originator = self.__nodeWindow[-4]
+            self.violations.append((originator, "M501"))
+        
+        self.generic_visit(node)
+    
+    def visit_Call(self, node):
+        """
+        Public method to handle a function call.
+        
+        @param node reference to the node to be processed
+        @type ast.Call
+        """
+        if sys.version_info >= (3, 0):
+            validPaths = ("six", "future.utils", "builtins")
+            methodsDict = {
+                "M511": ("iterkeys", "itervalues", "iteritems", "iterlists"),
+                "M512": ("viewkeys", "viewvalues", "viewitems", "viewlists"),
+                "M513": ("next",),
+            }
+        else:
+            validPaths = ()
+            methodsDict = {}
+        
+        if isinstance(node.func, ast.Attribute):
+            for code, methods in methodsDict.items():
+                if node.func.attr in methods:
+                    callPath = ".".join(composeCallPath(node.func.value))
+                    if callPath not in validPaths:
+                        self.violations.append((node, code))
+                    break
+            else:
+                self.__checkForM502(node)
+        else:
+            try:
+                if (
+                    node.func.id in ("getattr", "hasattr") and
+                    node.args[1].s == "__call__"
+                ):
+                    self.violations.append((node, "M503"))
+            except (AttributeError, IndexError):
+                pass
+
+            self.generic_visit(node)
+    
+    def visit_Attribute(self, node):
+        """
+        Public method to handle attributes.
+        
+        @param node reference to the node to be processed
+        @type ast.Attribute
+        """
+        callPath = list(composeCallPath(node))
+        
+        if '.'.join(callPath) == 'sys.maxint' and sys.version_info >= (3, 0):
+            self.violations.append((node, "M504"))
+        
+        elif len(callPath) == 2 and callPath[1] == 'message' and \
+                sys.version_info >= (2, 6):
+            name = callPath[0]
+            for elem in reversed(self.__nodeStack[:-1]):
+                if isinstance(elem, ast.ExceptHandler) and elem.name == name:
+                    self.violations.append((node, "M505"))
+                    break
+    
+    def visit_Assign(self, node):
+        """
+        Public method to handle assignments.
+        
+        @param node reference to the node to be processed
+        @type ast.Assign
+        """
+        if isinstance(self.__nodeStack[-2], ast.ClassDef):
+            # By using 'hasattr' below we're ignoring starred arguments, slices
+            # and tuples for simplicity.
+            assignTargets = {t.id for t in node.targets if hasattr(t, 'id')}
+            if '__metaclass__' in assignTargets and sys.version_info >= (3, 0):
+                self.violations.append((node, "M514"))
+        
+        elif len(node.targets) == 1:
+            target = node.targets[0]
+            if isinstance(target, ast.Attribute) and \
+               isinstance(target.value, ast.Name):
+                if (target.value.id, target.attr) == ('os', 'environ'):
+                    self.violations.append((node, "M506"))
+        
+        self.generic_visit(node)
+    
+    def visit_For(self, node):
+        """
+        Public method to handle 'for' statements.
+        
+        @param node reference to the node to be processed
+        @type ast.For
+        """
+        self.__checkForM507(node)
+        
+        self.generic_visit(node)
+    
+    def __checkForM502(self, node):
+        """
+        Private method to check the use of *strip().
+        
+        @param node reference to the node to be processed
+        @type ast.Call
+        """
+        if node.func.attr not in ("lstrip", "rstrip", "strip"):
+            return          # method name doesn't match
+        
+        if len(node.args) != 1 or not isinstance(node.args[0], ast.Str):
+            return          # used arguments don't match the builtin strip
+        
+        s = node.args[0].s
+        if len(s) == 1:
+            return          # stripping just one character
+        
+        if len(s) == len(set(s)):
+            return          # no characters appear more than once
+
+        self.violations.append((node, "M502"))
+    
+    def __checkForM507(self, node):
+        """
+        Private method to check for unused loop variables.
+        
+        @param node reference to the node to be processed
+        @type ast.For
+        """
+        targets = NameFinder()
+        targets.visit(node.target)
+        ctrlNames = set(filter(lambda s: not s.startswith('_'),
+                               targets.getNames()))
+        body = NameFinder()
+        for expr in node.body:
+            body.visit(expr)
+        usedNames = set(body.getNames())
+        for name in sorted(ctrlNames - usedNames):
+            n = targets.getNames()[name][0]
+            self.violations.append((n, "M507", name))
+
+
+class NameFinder(ast.NodeVisitor):
+    """
+    Class to extract a name out of a tree of nodes.
+    """
+    def __init__(self):
+        """
+        Constructor
+        """
+        super(NameFinder, self).__init__()
+        
+        self.__names = {}
+
+    def visit_Name(self, node):
+        """
+        Public method to handle 'Name' nodes.
+        
+        @param node reference to the node to be processed
+        @type ast.Name
+        """
+        self.__names.setdefault(node.id, []).append(node)
+
+    def visit(self, node):
+        """
+        Public method to traverse a given AST node.
+        
+        @param node AST node to be traversed
+        @type ast.Node
+        """
+        if isinstance(node, list):
+            for elem in node:
+                super(NameFinder, self).visit(elem)
+        else:
+            super(NameFinder, self).visit(node)
+    
+    def getNames(self):
+        """
+        Public method to return the extracted names and Name nodes.
+        
+        @return dictionary containing the names as keys and the list of nodes
+        @rtype dict
+        """
+        return self.__names
+
 #
 # eflag: noqa = M702
--- a/Plugins/CheckerPlugins/CodeStyleChecker/translations.py	Tue Mar 13 18:18:04 2018 +0100
+++ b/Plugins/CheckerPlugins/CodeStyleChecker/translations.py	Tue Mar 13 18:20:40 2018 +0100
@@ -502,6 +502,45 @@
     "M201": QCoreApplication.translate(
         "MiscellaneousChecker",
         "sort keys - '{0}' should be before '{1}'"),
+    "M501": QCoreApplication.translate(
+        "MiscellaneousChecker",
+        "Python does not support the unary prefix increment"),
+    "M502": QCoreApplication.translate(
+        "MiscellaneousChecker",
+        "using .strip() with multi-character strings is misleading"),
+    "M503": QCoreApplication.translate(
+        "MiscellaneousChecker",
+        """using 'hasattr(x, "__call__")' to test if 'x' is callable is"""
+        """ unreliable"""),
+    "M504": QCoreApplication.translate(
+        "MiscellaneousChecker",
+        "'sys.maxint' is not defined in Python 3 - use 'sys.maxsize'"),
+    "M505": QCoreApplication.translate(
+        "MiscellaneousChecker",
+        "'BaseException.message' has been deprecated as of Python 2.6 and is"
+        " removed in Python 3 - use 'str(e)'"),
+    "M506": QCoreApplication.translate(
+        "MiscellaneousChecker",
+        "assigning to 'os.environ' does not clear the environment -"
+        " use 'os.environ.clear()'"),
+    "M507": QCoreApplication.translate(
+        "MiscellaneousChecker",
+        "loop control variable {0} not used within the loop body -"
+        " start the name with an underscore"),
+    "M511": QCoreApplication.translate(
+        "MiscellaneousChecker",
+        "Python 3 does not include '.iter*' methods on dictionaries"),
+    "M512": QCoreApplication.translate(
+        "MiscellaneousChecker",
+        "Python 3 does not include '.view*' methods on dictionaries"),
+    "M513": QCoreApplication.translate(
+        "MiscellaneousChecker",
+        "'.next()' does not exist in Python 3"),
+    "M514": QCoreApplication.translate(
+        "MiscellaneousChecker",
+        "'__metaclass__' does nothing on Python 3 -"
+        " use 'class MyClass(BaseClass, metaclass=...)'"),
+    
     "M601": QCoreApplication.translate(
         "MiscellaneousChecker",
         "found {0} formatter"),
@@ -535,12 +574,30 @@
     "M632": QCoreApplication.translate(
         "MiscellaneousChecker",
         "format call provides unused keyword ({0})"),
+    "M651": QCoreApplication.translate(
+        "MiscellaneousChecker",
+        "logging statement uses string.format()"),
+    "M652": QCoreApplication.translate(
+        "MiscellaneousChecker",
+        "logging statement uses '%'"),          # __IGNORE_WARNING_M601__
+    "M653": QCoreApplication.translate(
+        "MiscellaneousChecker",
+        "logging statement uses '+'"),
+    "M654": QCoreApplication.translate(
+        "MiscellaneousChecker",
+        "logging statement uses f-string"),
+    "M655": QCoreApplication.translate(
+        "MiscellaneousChecker",
+        "logging statement uses 'warn' instead of 'warning'"),
     "M701": QCoreApplication.translate(
         "MiscellaneousChecker",
         "expected these __future__ imports: {0}; but only got: {1}"),
     "M702": QCoreApplication.translate(
         "MiscellaneousChecker",
         "expected these __future__ imports: {0}; but got none"),
+    "M711": QCoreApplication.translate(
+        "MiscellaneousChecker",
+        "gettext import with alias _ found: {0}"),
     "M801": QCoreApplication.translate(
         "MiscellaneousChecker",
         "print statement found"),
@@ -553,6 +610,9 @@
     "M822": QCoreApplication.translate(
         "MiscellaneousChecker",
         "mutable default argument of type {0}"),
+    "M823": QCoreApplication.translate(
+        "MiscellaneousChecker",
+        "mutable default argument of function call '{0}'"),
     "M901": QCoreApplication.translate(
         "MiscellaneousChecker",
         "{0}: {1}"),
@@ -744,6 +804,7 @@
     "M132": ["list"],
     "M198": ["sorted"],
     "M201": ["bar", "foo"],
+    "M507": ["x"],
     "M601": ["%s"],
     "M621": [5],
     "M622": ["foo"],
@@ -751,8 +812,10 @@
     "M632": ["foo"],
     "M701": ["print_function, unicode_literals", "print_function"],
     "M702": ["print_function, unicode_literals"],
+    "M711": ["lgettext"],
     "M821": ["Dict"],
     "M822": ["Call"],
+    "M823": ["dict"],
     "M901": ["SyntaxError", "Invalid Syntax"],
     "FWRITE_ERROR": ["IOError"],
 }
--- a/Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheck.py	Tue Mar 13 18:18:04 2018 +0100
+++ b/Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheck.py	Tue Mar 13 18:20:40 2018 +0100
@@ -163,7 +163,7 @@
         taskQueue.put(task)
 
     # Start worker processes
-    for i in range(NumberOfProcesses):
+    for _ in range(NumberOfProcesses):
         multiprocessing.Process(target=worker, args=(taskQueue, doneQueue))\
             .start()
 
@@ -193,7 +193,7 @@
             taskQueue.put(argumentsList[i + initialTasks])
 
     # Tell child processes to stop
-    for i in range(NumberOfProcesses):
+    for _ in range(NumberOfProcesses):
         taskQueue.put('STOP')
 
 
--- a/Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py	Tue Mar 13 18:18:04 2018 +0100
+++ b/Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckService.py	Tue Mar 13 18:20:40 2018 +0100
@@ -57,7 +57,8 @@
         if pyVer:
             return 'Python{0}'.format(pyVer)
         
-        for lang, (env, getArgs, getExt) in self.__supportedLanguages.items():
+        for lang, (_env, _getArgs, getExt) in \
+                self.__supportedLanguages.items():
             if filename.endswith(tuple(getExt())):
                 return lang
         
@@ -112,7 +113,7 @@
         @return set of all supported file extensions (set of str)
         """
         extensions = set()
-        for env, getArgs, getExt in self.__supportedLanguages.values():
+        for _env, _getArgs, getExt in self.__supportedLanguages.values():
             for ext in getExt():
                 extensions.add(ext)
         return extensions
--- a/Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py	Tue Mar 13 18:18:04 2018 +0100
+++ b/Plugins/CheckerPlugins/SyntaxChecker/SyntaxCheckerDialog.py	Tue Mar 13 18:20:40 2018 +0100
@@ -357,7 +357,7 @@
                     source = ""
             else:
                 source = self.source.splitlines()
-            for _fn, lineno, col, code, msg in warnings:
+            for filename, lineno, col, _code, msg in warnings:
                 self.noResults = False
                 if source:
                     try:
@@ -366,7 +366,8 @@
                         scr_line = ""
                 else:
                     scr_line = ""
-                self.__createResultItem(_fn, lineno, col, msg, scr_line, True)
+                self.__createResultItem(filename, lineno, col, msg, scr_line,
+                                        True)
 
         self.progress += 1
         self.checkProgress.setValue(self.progress)
--- a/Plugins/CheckerPlugins/SyntaxChecker/jsCheckSyntax.py	Tue Mar 13 18:18:04 2018 +0100
+++ b/Plugins/CheckerPlugins/SyntaxChecker/jsCheckSyntax.py	Tue Mar 13 18:20:40 2018 +0100
@@ -27,7 +27,7 @@
     @return the entry point for the background client (function)
     """
     path = __file__
-    for i in range(4):
+    for _ in range(4):
         path = os.path.dirname(path)
     sys.path.insert(2, os.path.join(path, "ThirdParty", "Jasy"))
     return jsSyntaxCheck
@@ -114,7 +114,7 @@
         taskQueue.put(task)
 
     # Start worker processes
-    for i in range(NumberOfProcesses):
+    for _ in range(NumberOfProcesses):
         multiprocessing.Process(target=worker, args=(taskQueue, doneQueue))\
             .start()
 
@@ -144,7 +144,7 @@
             taskQueue.put(argumentsList[i + initialTasks])
 
     # Tell child processes to stop
-    for i in range(NumberOfProcesses):
+    for _ in range(NumberOfProcesses):
         taskQueue.put('STOP')
 
 
--- a/Plugins/CheckerPlugins/Tabnanny/Tabnanny.py	Tue Mar 13 18:18:04 2018 +0100
+++ b/Plugins/CheckerPlugins/Tabnanny/Tabnanny.py	Tue Mar 13 18:20:40 2018 +0100
@@ -171,7 +171,7 @@
         taskQueue.put(task)
 
     # Start worker processes
-    for i in range(NumberOfProcesses):
+    for _ in range(NumberOfProcesses):
         multiprocessing.Process(target=worker, args=(taskQueue, doneQueue))\
             .start()
 
@@ -201,7 +201,7 @@
             taskQueue.put(argumentsList[i + initialTasks])
 
     # Tell child processes to stop
-    for i in range(NumberOfProcesses):
+    for _ in range(NumberOfProcesses):
         taskQueue.put('STOP')
 
 
@@ -475,7 +475,7 @@
     indents = [Whitespace("")]
     check_equal = 0
     
-    for (tokenType, token, start, end, line) in tokens:
+    for (tokenType, token, start, _end, line) in tokens:
         if tokenType == NEWLINE:
             # a program statement, or ENDMARKER, will eventually follow,
             # after some (possibly empty) run of tokens of the form
--- a/Plugins/DocumentationPlugins/Ericapi/EricapiConfigDialog.py	Tue Mar 13 18:18:04 2018 +0100
+++ b/Plugins/DocumentationPlugins/Ericapi/EricapiConfigDialog.py	Tue Mar 13 18:20:40 2018 +0100
@@ -63,8 +63,7 @@
         
         # combine it with the values of parms
         if parms is not None:
-            for key, value in list(parms.items()):
-                self.parameters[key] = parms[key]
+            self.parameters.update(parms)
         self.parameters['outputFile'] = \
             Utilities.toNativeSeparators(self.parameters['outputFile'])
         
--- a/Plugins/DocumentationPlugins/Ericdoc/EricdocConfigDialog.py	Tue Mar 13 18:18:04 2018 +0100
+++ b/Plugins/DocumentationPlugins/Ericdoc/EricdocConfigDialog.py	Tue Mar 13 18:20:40 2018 +0100
@@ -88,7 +88,7 @@
         
         # combine it with the values of parms
         if parms is not None:
-            for key, value in list(parms.items()):
+            for key in parms:
                 if key.endswith("Color"):
                     self.colors[key] = parms[key]
                 else:
@@ -240,7 +240,7 @@
             else:
                 args.append(
                     os.path.join(self.ppath, self.parameters['cssFile']))
-        for key, value in list(self.colors.items()):
+        for key in self.colors:
             if self.colors[key] != eric6docDefaultColors[key]:
                 parms[key] = self.colors[key]
                 args.append("--{0}={1}".format(
--- a/Plugins/VcsPlugins/vcsGit/GitDiffHighlighter.py	Tue Mar 13 18:18:04 2018 +0100
+++ b/Plugins/VcsPlugins/vcsGit/GitDiffHighlighter.py	Tue Mar 13 18:20:40 2018 +0100
@@ -71,7 +71,7 @@
             @param rules set of highlighting rules (list of tuples of rule
                 pattern (string) and highlighting format (QTextCharFormat))
             """
-            for idx, ruleFormat in enumerate(rules):
+            for ruleFormat in rules:
                 rule, formats = ruleFormat
                 terminal = rule.startswith(TERMINAL(''))
                 if terminal:
--- a/Plugins/VcsPlugins/vcsPySvn/SvnRepoBrowserDialog.py	Tue Mar 13 18:18:04 2018 +0100
+++ b/Plugins/VcsPlugins/vcsPySvn/SvnRepoBrowserDialog.py	Tue Mar 13 18:20:40 2018 +0100
@@ -164,7 +164,7 @@
                 entries = self.client.list(url, recurse=False)
                 firstTime = parent == self.repoTree
                 # dirent elements are all unicode in Python 2
-                for dirent, lock in entries:
+                for dirent, _lock in entries:
                     if (firstTime and dirent["path"] != url) or \
                        (parent != self.repoTree and dirent["path"] == url):
                         continue
--- a/Plugins/VcsPlugins/vcsPySvn/SvnTagBranchListDialog.py	Tue Mar 13 18:18:04 2018 +0100
+++ b/Plugins/VcsPlugins/vcsPySvn/SvnTagBranchListDialog.py	Tue Mar 13 18:20:40 2018 +0100
@@ -137,7 +137,7 @@
         try:
             entries = self.client.list(path, recurse=False)
             # dirent, lock already unicode in Python 2
-            for dirent, lock in entries:
+            for dirent, _lock in entries:
                 if dirent["path"] != path:
                     name = dirent["path"].replace(path + '/', "")
                     self.__generateItem(dirent["created_rev"].number,
--- a/Plugins/WizardPlugins/PyRegExpWizard/PyRegExpWizardDialog.py	Tue Mar 13 18:18:04 2018 +0100
+++ b/Plugins/WizardPlugins/PyRegExpWizard/PyRegExpWizardDialog.py	Tue Mar 13 18:20:40 2018 +0100
@@ -127,7 +127,7 @@
                 steps = abs(steps)
             else:
                 act = QTextCursor.Right
-            for i in range(steps):
+            for _ in range(steps):
                 tc.movePosition(act)
         self.regexpTextEdit.setTextCursor(tc)
         
--- a/Plugins/WizardPlugins/QRegularExpressionWizard/QRegularExpressionWizardDialog.py	Tue Mar 13 18:18:04 2018 +0100
+++ b/Plugins/WizardPlugins/QRegularExpressionWizard/QRegularExpressionWizardDialog.py	Tue Mar 13 18:20:40 2018 +0100
@@ -199,7 +199,7 @@
                 steps = abs(steps)
             else:
                 act = QTextCursor.Right
-            for i in range(steps):
+            for _ in range(steps):
                 tc.movePosition(act)
         self.regexpTextEdit.setTextCursor(tc)
     
--- a/Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py	Tue Mar 13 18:18:04 2018 +0100
+++ b/Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py	Tue Mar 13 18:20:40 2018 +0100
@@ -509,7 +509,7 @@
         startDir = self.packageRootEdit.text() or self.__getStartDir()
         if startDir:
             self.packagesList.clear()
-            for dirpath, dirnames, filenames in os.walk(startDir):
+            for dirpath, _dirnames, filenames in os.walk(startDir):
                 if "__init__.py" in filenames:
                     self.__addPackage(dirpath)
         self.autodiscoverPackagesButton.setEnabled(True)
--- a/Preferences/ConfigurationDialog.py	Tue Mar 13 18:18:04 2018 +0100
+++ b/Preferences/ConfigurationDialog.py	Tue Mar 13 18:20:40 2018 +0100
@@ -855,7 +855,7 @@
         Public method called to store the selected values into the preferences
         storage.
         """
-        for key, pageData in list(self.configItems.items()):
+        for pageData in self.configItems.values():
             if pageData[-1]:
                 pageData[-1].save()
                 # page was loaded (and possibly modified)
--- a/Project/Project.py	Tue Mar 13 18:18:04 2018 +0100
+++ b/Project/Project.py	Tue Mar 13 18:20:40 2018 +0100
@@ -2337,7 +2337,7 @@
                     if os.path.exists(os.path.join(self.ppath, indicator)):
                         if len(vcsData) > 1:
                             vcsList = []
-                            for vcsSystemStr, vcsSystemDisplay in vcsData:
+                            for _vcsSystemStr, vcsSystemDisplay in vcsData:
                                 vcsList.append(vcsSystemDisplay)
                             res, vcs_ok = QInputDialog.getItem(
                                 None,
@@ -2412,10 +2412,10 @@
                 if ok and vcsSelected != self.tr("None"):
                     for vcsSystem, vcsSystemDisplay in vcsSystemsDict.items():
                         if vcsSystemDisplay == vcsSelected:
+                            self.pdata["VCS"] = vcsSystem
                             break
                     else:
-                        vcsSystem = "None"
-                    self.pdata["VCS"] = vcsSystem
+                        self.pdata["VCS"] = 'None'
                 else:
                     self.pdata["VCS"] = 'None'
                 self.vcs = self.initVCS()
@@ -2757,7 +2757,7 @@
                                     os.path.join(self.ppath, indicator)):
                                 if len(vcsData) > 1:
                                     vcsList = []
-                                    for vcsSystemStr, vcsSystemDisplay in \
+                                    for _vcsSystemStr, vcsSystemDisplay in \
                                             vcsData:
                                         vcsList.append(vcsSystemDisplay)
                                     QApplication.restoreOverrideCursor()
--- a/Project/QuickFindFileDialog.py	Tue Mar 13 18:18:04 2018 +0100
+++ b/Project/QuickFindFileDialog.py	Tue Mar 13 18:20:40 2018 +0100
@@ -215,7 +215,7 @@
         self.fileList.clear()
         locations = {}
 
-        for in_order, age, name in ordered:
+        for _in_order, _age, name in ordered:
             found = True
             QTreeWidgetItem(self.fileList, [os.path.basename(name),
                                             os.path.dirname(name)])
--- a/Project/UserPropertiesDialog.py	Tue Mar 13 18:18:04 2018 +0100
+++ b/Project/UserPropertiesDialog.py	Tue Mar 13 18:20:40 2018 +0100
@@ -47,10 +47,10 @@
         enableVcsGroup = False
         if self.project.pdata["VCS"]:
             found = False
-            for indicator, vcsData in \
+            for _indicator, vcsData in \
                     e5App().getObject("PluginManager")\
                     .getVcsSystemIndicators().items():
-                for vcsSystem, vcsSystemDisplay in vcsData:
+                for vcsSystem, _vcsSystemDisplay in vcsData:
                     if vcsSystem == self.project.pdata["VCS"]:
                         found = True
                         break
--- a/QScintilla/Editor.py	Tue Mar 13 18:18:04 2018 +0100
+++ b/QScintilla/Editor.py	Tue Mar 13 18:20:40 2018 +0100
@@ -2174,12 +2174,12 @@
         Note: This doesn't clear the breakpoint in the debugger,
         it just deletes it from the editor internal list of breakpoints.
         
-        @param line linenumber of the breakpoint (integer)
+        @param line line number of the breakpoint (integer)
         """
         if self.inLinesChanged:
             return
         
-        for handle, (ln, _, _, _, _) in list(self.breaks.items()):
+        for handle in self.breaks:
             if self.markerLine(handle) == line - 1:
                 break
         else:
@@ -2218,7 +2218,7 @@
         @param line line number of the breakpoint (integer)
         @param temporary flag indicating a temporary breakpoint (boolean)
         """
-        for handle, (ln, _, _, _, _) in list(self.breaks.items()):
+        for handle in self.breaks:
             if self.markerLine(handle) == line - 1:
                 # delete breakpoint or toggle it to the next state
                 index = self.breakpointModel.getBreakPointIndex(
@@ -2253,16 +2253,13 @@
         
         @param line line number of the breakpoint (integer)
         """
-        for handle, (ln, cond, temp, enabled, ignorecount) in \
-                self.breaks.items():
+        for handle in self.breaks:
             if self.markerLine(handle) == line - 1:
+                index = self.breakpointModel.getBreakPointIndex(
+                    self.fileName, line)
+                self.breakpointModel.setBreakPointEnabledByIndex(
+                    index, not self.breaks[handle][3])
                 break
-        else:
-            # no breakpoint found on that line
-            return
-        
-        index = self.breakpointModel.getBreakPointIndex(self.fileName, line)
-        self.breakpointModel.setBreakPointEnabledByIndex(index, not enabled)
         
     def curLineHasBreakpoint(self):
         """
@@ -2340,28 +2337,25 @@
             self.line = line - 1
         if self.line < 0:
             self.line, index = self.getCursorPosition()
-        found = False
-        for handle, (ln, cond, temp, enabled, ignorecount) in \
-                self.breaks.items():
+        
+        for handle in self.breaks:
             if self.markerLine(handle) == self.line:
-                found = True
-                break
-        
-        if found:
-            index = self.breakpointModel.getBreakPointIndex(self.fileName, ln)
-            if not index.isValid():
-                return
-            
-            from Debugger.EditBreakpointDialog import EditBreakpointDialog
-            dlg = EditBreakpointDialog(
-                (self.fileName, ln),
-                (cond, temp, enabled, ignorecount),
-                self.condHistory, self, modal=True)
-            if dlg.exec_() == QDialog.Accepted:
-                cond, temp, enabled, ignorecount = dlg.getData()
-                self.breakpointModel.setBreakPointByIndex(
-                    index, self.fileName, ln,
-                    (cond, temp, enabled, ignorecount))
+                ln, cond, temp, enabled, ignorecount = self.breaks[handle]
+                index = self.breakpointModel.getBreakPointIndex(self.fileName,
+                                                                ln)
+                if not index.isValid():
+                    return
+                
+                from Debugger.EditBreakpointDialog import EditBreakpointDialog
+                dlg = EditBreakpointDialog(
+                    (self.fileName, ln),
+                    (cond, temp, enabled, ignorecount),
+                    self.condHistory, self, modal=True)
+                if dlg.exec_() == QDialog.Accepted:
+                    cond, temp, enabled, ignorecount = dlg.getData()
+                    self.breakpointModel.setBreakPointByIndex(
+                        index, self.fileName, ln,
+                        (cond, temp, enabled, ignorecount))
         
         self.line = -1
         
@@ -2413,7 +2407,7 @@
         @param fileName name of the file (string)
         """
         idxList = []
-        for handle, (ln, _, _, _, _) in list(self.breaks.items()):
+        for (ln, _, _, _, _) in self.breaks.values():
             index = self.breakpointModel.getBreakPointIndex(fileName, ln)
             if index.isValid():
                 idxList.append(index)
@@ -2771,7 +2765,7 @@
         newL = self.__lastSavedText.splitlines()
         matcher = difflib.SequenceMatcher(None, oldL, newL)
         
-        for token, i1, i2, j1, j2 in matcher.get_opcodes():
+        for token, _, _, j1, j2 in matcher.get_opcodes():
             if token in ["insert", "replace"]:
                 for lineNo in range(j1, j2):
                     self.markerAdd(lineNo, self.__changeMarkerSaved)
@@ -2782,7 +2776,7 @@
         newL = self.text().splitlines()
         matcher = difflib.SequenceMatcher(None, oldL, newL)
         
-        for token, i1, i2, j1, j2 in matcher.get_opcodes():
+        for token, _, _, j1, j2 in matcher.get_opcodes():
             if token in ["insert", "replace"]:
                 for lineNo in range(j1, j2):
                     self.markerAdd(lineNo, self.__changeMarkerUnsaved)
@@ -2804,7 +2798,7 @@
         newL = self.__lastSavedText.splitlines()
         matcher = difflib.SequenceMatcher(None, oldL, newL)
         
-        for token, i1, i2, j1, j2 in matcher.get_opcodes():
+        for token, _, _, j1, j2 in matcher.get_opcodes():
             if token in ["insert", "replace"]:
                 for lineNo in range(j1, j2):
                     self.markerAdd(lineNo, self.__changeMarkerSaved)
@@ -5698,7 +5692,7 @@
             self.toggleSyntaxError(lineno, col, True, msg)
         
         warnings = problems.get('warnings', [])
-        for _fn, lineno, col, code, msg in warnings:
+        for _fn, lineno, col, _code, msg in warnings:
             self.toggleWarning(lineno, col, True, msg)
         
         self.updateVerticalScrollBar()
--- a/QScintilla/EditorAssembly.py	Tue Mar 13 18:18:04 2018 +0100
+++ b/QScintilla/EditorAssembly.py	Tue Mar 13 18:20:40 2018 +0100
@@ -316,23 +316,23 @@
         lineno += 1     # cursor position is zero based, code info one based
         
         # step 1: search in the globals
+        indexFound = 0
         for (lower, upper), index in self.__globalsBoundaries.items():
             if upper == -1:
                 upper = 1000000     # it is the last line
             if lower <= lineno <= upper:
+                indexFound = index
                 break
-        else:
-            index = 0
-        self.__globalsCombo.setCurrentIndex(index)
-        self.__globalsActivated(index, moveCursor=False)
+        self.__globalsCombo.setCurrentIndex(indexFound)
+        self.__globalsActivated(indexFound, moveCursor=False)
         
         # step 2: search in members
+        indexFound = 0
         for (lower, upper), index in self.__membersBoundaries.items():
             if upper == -1:
                 upper = 1000000     # it is the last line
             if lower <= lineno <= upper:
+                indexFound = index
                 break
-        else:
-            index = 0
-        self.__membersCombo.setCurrentIndex(index)
-        self.__membersActivated(index, moveCursor=False)
+        self.__membersCombo.setCurrentIndex(indexFound)
+        self.__membersActivated(indexFound, moveCursor=False)
--- a/QScintilla/QsciScintillaCompat.py	Tue Mar 13 18:18:04 2018 +0100
+++ b/QScintilla/QsciScintillaCompat.py	Tue Mar 13 18:20:40 2018 +0100
@@ -1539,7 +1539,7 @@
             pos = self.SendScintilla(QsciScintilla.SCI_POSITIONFROMLINE, line)
             
             # Allow for multi-byte characters
-            for i in range(index):
+            for _ in range(index):
                 pos = self.positionAfter(pos)
             
             return pos
--- a/UI/NumbersWidget.py	Tue Mar 13 18:18:04 2018 +0100
+++ b/UI/NumbersWidget.py	Tue Mar 13 18:20:40 2018 +0100
@@ -226,7 +226,7 @@
         # determine byte count
         byteCount = 8
         tmp = self.__input
-        for i in range(8):
+        for _ in range(8):
             c = (tmp & 0xff00000000000000) >> 7 * 8
             if c != 0 and self.__input >= 0:
                 break
@@ -301,7 +301,7 @@
         
         tmp1 = self.__input
         tmp2 = 0
-        for i in range(bytesIn):
+        for _ in range(bytesIn):
             tmp2 <<= 8
             tmp2 |= tmp1 & 0xff
             tmp1 >>= 8
--- a/UI/UserInterface.py	Tue Mar 13 18:18:04 2018 +0100
+++ b/UI/UserInterface.py	Tue Mar 13 18:20:40 2018 +0100
@@ -3722,12 +3722,12 @@
         name = act.data()
         if name:
             if name == "__SHOW__":
-                for text, tb in list(self.__toolbars.values()):
+                for _text, tb in self.__toolbars.values():
                     tb.show()
                 if self.__menus["toolbars"].isTearOffMenuVisible():
                     self.__menus["toolbars"].hideTearOffMenu()
             elif name == "__HIDE__":
-                for text, tb in list(self.__toolbars.values()):
+                for _text, tb in self.__toolbars.values():
                     tb.hide()
                 if self.__menus["toolbars"].isTearOffMenuVisible():
                     self.__menus["toolbars"].hideTearOffMenu()
@@ -3748,10 +3748,10 @@
         name = act.data()
         if name:
             if name == "__SHOW__":
-                for text, tb in list(self.__toolbars.values()):
+                for _text, tb in self.__toolbars.values():
                     tb.show()
             elif name == "__HIDE__":
-                for text, tb in list(self.__toolbars.values()):
+                for _text, tb in self.__toolbars.values():
                     tb.hide()
             else:
                 tb = self.__toolbars[name][1]
@@ -4950,7 +4950,7 @@
         ioEncoding = Preferences.getSystem("IOEncoding")
         
         # loop through all running tool processes
-        for program, toolProc, toolProcData in self.toolProcs:
+        for program, toolProc, _toolProcData in self.toolProcs:
             toolProc.setReadChannel(QProcess.StandardError)
             
             while toolProc.canReadLine():
--- a/Utilities/BackgroundService.py	Tue Mar 13 18:18:04 2018 +0100
+++ b/Utilities/BackgroundService.py	Tue Mar 13 18:20:40 2018 +0100
@@ -445,6 +445,6 @@
             connection.blockSignals(True)
             connection.close()
         
-        for process, interpreter in self.processes.values():
+        for process, _interpreter in self.processes.values():
             process.close()
             process = None
--- a/Utilities/binplistlib.py	Tue Mar 13 18:18:04 2018 +0100
+++ b/Utilities/binplistlib.py	Tue Mar 13 18:20:40 2018 +0100
@@ -997,7 +997,7 @@
         all_positions = []
         writtenReferences = list(self.writtenReferences.items())
         writtenReferences.sort(key=lambda x: x[1])
-        for obj, order in writtenReferences:
+        for obj, _order in writtenReferences:
             position = self.referencePositions.get(obj)
             if position is None:
                 raise InvalidPlistException(
--- a/Utilities/crypto/py3AES.py	Tue Mar 13 18:18:04 2018 +0100
+++ b/Utilities/crypto/py3AES.py	Tue Mar 13 18:20:40 2018 +0100
@@ -289,7 +289,7 @@
         @return result (byte)
         """
         p = 0
-        for counter in range(8):
+        for _counter in range(8):
             if b & 1:
                 p ^= a
             hi_bit_set = a & 0x80
@@ -344,7 +344,7 @@
         @return modified state (bytearray)
         """
         state = state[:]
-        for i in range(nbr):
+        for _ in range(nbr):
             if isInv:
                 state[statePointer:statePointer + 4] = \
                     state[statePointer + 3:statePointer + 4] + \
--- a/Utilities/crypto/py3PBKDF2.py	Tue Mar 13 18:18:04 2018 +0100
+++ b/Utilities/crypto/py3PBKDF2.py	Tue Mar 13 18:20:40 2018 +0100
@@ -37,7 +37,7 @@
     @return hashed password (bytes)
     """
     pwHash = password
-    for i in range(iterations):
+    for _ in range(iterations):
         pwHash = hmac.new(salt, pwHash, digestMod).digest()
     return pwHash
 
--- a/VCS/ProjectHelper.py	Tue Mar 13 18:18:04 2018 +0100
+++ b/VCS/ProjectHelper.py	Tue Mar 13 18:20:40 2018 +0100
@@ -211,14 +211,17 @@
             0, False)
         if not ok:
             return
+        
+        selectedVcsSystem = None
         for vcsSystem, vcsSystemDisplay in list(vcsSystemsDict.items()):
             if vcsSystemDisplay == vcsSelected:
+                selectedVcsSystem = vcsSystem
                 break
         
         if not self.project.closeProject():
             return
         
-        vcs = self.project.initVCS(vcsSystem)
+        vcs = self.project.initVCS(selectedVcsSystem)
         if vcs is not None:
             vcsdlg = vcs.vcsNewProjectOptionsDialog()
             if vcsdlg.exec_() == QDialog.Accepted:
@@ -313,7 +316,7 @@
                             if dlg.exec_() == QDialog.Accepted:
                                 dlg.storeData()
                                 self.project.initFileTypes()
-                                self.project.pdata["VCS"] = vcsSystem
+                                self.project.pdata["VCS"] = selectedVcsSystem
                                 self.project.setDirty(True)
                                 if self.project.pdata["MAINSCRIPT"]:
                                     ms = os.path.join(
@@ -405,49 +408,54 @@
             0, False)
         if not ok:
             return
+        
+        selectedVcsSystem = None
         for vcsSystem, vcsSystemDisplay in list(vcsSystemsDict.items()):
             if vcsSystemDisplay == vcsSelected:
+                selectedVcsSystem = vcsSystem
                 break
         
-        self.project.pdata["VCS"] = vcsSystem
-        self.project.vcs = self.project.initVCS(vcsSystem)
-        if self.project.vcs is not None:
-            vcsdlg = self.project.vcs.vcsOptionsDialog(self.project,
-                                                       self.project.name, 1)
-            if vcsdlg.exec_() == QDialog.Accepted:
-                vcsDataDict = vcsdlg.getData()
-                # edit VCS command options
-                if self.project.vcs.vcsSupportCommandOptions():
-                    vcores = E5MessageBox.yesNo(
-                        self.parent(),
-                        QCoreApplication.translate(
-                            "VcsProjectHelper", "Import Project"),
-                        QCoreApplication.translate(
-                            "VcsProjectHelper",
-                            """Would you like to edit the VCS command"""
-                            """ options?"""))
+        if selectedVcsSystem is not None:
+            self.project.pdata["VCS"] = selectedVcsSystem
+            self.project.vcs = self.project.initVCS(selectedVcsSystem)
+            if self.project.vcs is not None:
+                vcsdlg = self.project.vcs.vcsOptionsDialog(
+                    self.project, self.project.name, 1)
+                if vcsdlg.exec_() == QDialog.Accepted:
+                    vcsDataDict = vcsdlg.getData()
+                    # edit VCS command options
+                    if self.project.vcs.vcsSupportCommandOptions():
+                        vcores = E5MessageBox.yesNo(
+                            self.parent(),
+                            QCoreApplication.translate(
+                                "VcsProjectHelper", "Import Project"),
+                            QCoreApplication.translate(
+                                "VcsProjectHelper",
+                                """Would you like to edit the VCS command"""
+                                """ options?"""))
+                    else:
+                        vcores = False
+                    if vcores:
+                        from .CommandOptionsDialog import \
+                            VcsCommandOptionsDialog
+                        codlg = VcsCommandOptionsDialog(self.project.vcs)
+                        if codlg.exec_() == QDialog.Accepted:
+                            self.project.vcs.vcsSetOptions(codlg.getOptions())
+                    self.project.setDirty(True)
+                    self.project.vcs.vcsSetDataFromDict(vcsDataDict)
+                    self.project.saveProject()
+                    isVcsControlled = self.project.vcs.vcsImport(
+                        vcsDataDict, self.project.ppath)[0]
+                    if isVcsControlled:
+                        # reopen the project
+                        self.project.openProject(self.project.pfile)
+                    else:
+                        # revert the changes to the local project
+                        # because the project dir is not a VCS directory
+                        revertChanges()
                 else:
-                    vcores = False
-                if vcores:
-                    from .CommandOptionsDialog import VcsCommandOptionsDialog
-                    codlg = VcsCommandOptionsDialog(self.project.vcs)
-                    if codlg.exec_() == QDialog.Accepted:
-                        self.project.vcs.vcsSetOptions(codlg.getOptions())
-                self.project.setDirty(True)
-                self.project.vcs.vcsSetDataFromDict(vcsDataDict)
-                self.project.saveProject()
-                isVcsControlled = self.project.vcs.vcsImport(
-                    vcsDataDict, self.project.ppath)[0]
-                if isVcsControlled:
-                    # reopen the project
-                    self.project.openProject(self.project.pfile)
-                else:
-                    # revert the changes to the local project
-                    # because the project dir is not a VCS directory
+                    # revert the changes because user cancelled
                     revertChanges()
-            else:
-                # revert the changes because user cancelled
-                revertChanges()
 
     def _vcsUpdate(self):
         """
--- a/VCS/__init__.py	Tue Mar 13 18:18:04 2018 +0100
+++ b/VCS/__init__.py	Tue Mar 13 18:20:40 2018 +0100
@@ -40,23 +40,16 @@
     if vc is None:
         # try alternative vcs interfaces assuming, that there is a common
         # indicator for the alternatives
-        found = False
-        for indicator, vcsData in \
-                pluginManager.getVcsSystemIndicators().items():
-            for vcsSystem, vcsSystemDisplay in vcsData:
-                if vcsSystem == vcs:
-                    found = True
-                    break
-            
-            if found:
-                if len(vcsData) > 1:
-                    for vcsSystem, vcsSystemDisplay in vcsData:
+        for vcsData in pluginManager.getVcsSystemIndicators().values():
+            for vcsSystem, _vcsSystemDisplay in vcsData:
+                if vcsSystem == vcs and len(vcsData) > 1:
+                    for vcsSystem, _vcsSystemDisplay in vcsData:
                         if vcsSystem != vcs:
                             vc = pluginManager.getPluginObject(
                                 "version_control", vcsSystem, maybeActive=True)
                             if vc is not None:
-                                break
-                break
+                                return vc
+    
     return vc
 
 
--- a/WebBrowser/SafeBrowsing/SafeBrowsingCache.py	Tue Mar 13 18:18:04 2018 +0100
+++ b/WebBrowser/SafeBrowsing/SafeBrowsingCache.py	Tue Mar 13 18:20:40 2018 +0100
@@ -293,7 +293,7 @@
                 
                 query.exec_()
                 
-                while query.next():
+                while query.next():             # __IGNORE_WARNING_M513__
                     threatType = query.value(0)
                     platformType = query.value(1)
                     threatEntryType = query.value(2)
@@ -338,7 +338,7 @@
                 
                 query.exec_()
                 
-                while query.next():
+                while query.next():             # __IGNORE_WARNING_M513__
                     fullHash = bytes(query.value(0))
                     threatType = query.value(1)
                     platformType = query.value(2)
@@ -518,7 +518,7 @@
                 
                 query.exec_()
                 
-                while query.next():
+                while query.next():             # __IGNORE_WARNING_M513__
                     threatType = query.value(0)
                     platformType = query.value(1)
                     threatEntryType = query.value(2)
@@ -646,7 +646,7 @@
                 
                 query.exec_()
                 
-                while query.next():
+                while query.next():             # __IGNORE_WARNING_M513__
                     sha256Hash.addData(query.value(0))
                     QCoreApplication.processEvents(QEventLoop.AllEvents,
                                                    self.maxProcessEventsTime)
@@ -727,7 +727,7 @@
                 query.exec_()
                 
                 index = 0
-                while query.next():
+                while query.next():         # __IGNORE_WARNING_M513__
                     if index in indexes:
                         prefix = bytes(query.value(0))
                         output.append(prefix)
--- a/WebBrowser/SafeBrowsing/SafeBrowsingManager.py	Tue Mar 13 18:18:04 2018 +0100
+++ b/WebBrowser/SafeBrowsing/SafeBrowsingManager.py	Tue Mar 13 18:20:40 2018 +0100
@@ -246,7 +246,7 @@
         
         # step 2: update threat lists
         threatListsForRemove = {}
-        for threatList, clientState in self.__cache.getThreatLists():
+        for threatList, _clientState in self.__cache.getThreatLists():
             threatListsForRemove[repr(threatList)] = threatList
         threatLists = self.__apiClient.getThreatLists()
         maximum = len(threatLists)
@@ -404,7 +404,7 @@
         matchingFullHashes = set()
         isPotentialThreat = False
         # Lookup hash prefixes which match full URL hash
-        for threatList, hashPrefix, negativeCacheExpired in \
+        for _threatList, hashPrefix, negativeCacheExpired in \
                 self.__cache.lookupHashPrefix(cues):
             for fullHash in fullHashes:
                 if fullHash.startswith(hashPrefix):
@@ -486,7 +486,7 @@
         negativeCacheDuration = int(
             fullHashResponses["negativeCacheDuration"].rstrip("s"))
         for prefixValue in hashPrefixes:
-            for threatList, clientState in threatLists:
+            for threatList, _clientState in threatLists:
                 self.__cache.updateHashPrefixExpiration(
                     threatList, prefixValue, negativeCacheDuration)
     
--- a/WebBrowser/WebBrowserWindow.py	Tue Mar 13 18:18:04 2018 +0100
+++ b/WebBrowser/WebBrowserWindow.py	Tue Mar 13 18:20:40 2018 +0100
@@ -4289,11 +4289,11 @@
                 self.__setStatusBarVisible(act.isChecked())
             
             elif name == "__SHOW__":
-                for text, tb in list(self.__toolbars.values()):
+                for _text, tb in list(self.__toolbars.values()):
                     tb.show()
             
             elif name == "__HIDE__":
-                for text, tb in list(self.__toolbars.values()):
+                for _text, tb in list(self.__toolbars.values()):
                     tb.hide()
             
             else:
@@ -4558,7 +4558,7 @@
                 self.__searchWidget.hide()
                 self.__tabWidget.tabBar().hide()
                 if Preferences.getWebBrowser("ShowToolbars"):
-                    for title, toolbar in self.__toolbars.values():
+                    for _title, toolbar in self.__toolbars.values():
                         if toolbar is not self.__bookmarksToolBar:
                             toolbar.hide()
                 self.__navigationBar.exitFullScreenButton().setVisible(True)
--- a/changelog	Tue Mar 13 18:18:04 2018 +0100
+++ b/changelog	Tue Mar 13 18:20:40 2018 +0100
@@ -5,6 +5,9 @@
 - Code Style Checker
   -- added checks for default docstring in functions and modules
   -- added check for dictionaries with sorted keys
+  -- added checks for logging statements
+  -- added check for the 'gettext' import statement
+  -- added some checks of the bugbear checker
 
 Version 18.03:
 - bug fixes
--- a/eric6.e4p	Tue Mar 13 18:18:04 2018 +0100
+++ b/eric6.e4p	Tue Mar 13 18:20:40 2018 +0100
@@ -2200,14 +2200,14 @@
   </Resources>
   <Others>
     <Other>.hgignore</Other>
+    <Other>APIs/Python/zope-2.10.7.api</Other>
+    <Other>APIs/Python/zope-2.11.2.api</Other>
+    <Other>APIs/Python/zope-3.3.1.api</Other>
     <Other>APIs/Python3/PyQt4.bas</Other>
     <Other>APIs/Python3/PyQt5.bas</Other>
     <Other>APIs/Python3/QScintilla2.bas</Other>
     <Other>APIs/Python3/eric6.api</Other>
     <Other>APIs/Python3/eric6.bas</Other>
-    <Other>APIs/Python/zope-2.10.7.api</Other>
-    <Other>APIs/Python/zope-2.11.2.api</Other>
-    <Other>APIs/Python/zope-3.3.1.api</Other>
     <Other>APIs/QSS/qss.api</Other>
     <Other>APIs/Ruby/Ruby-1.8.7.api</Other>
     <Other>APIs/Ruby/Ruby-1.8.7.bas</Other>
@@ -2832,7 +2832,7 @@
               <string>ExcludeMessages</string>
             </key>
             <value>
-              <string>C101, E265, E266, E305, E402, M811, N802, N803, N807, N808, N821, W293</string>
+              <string>C101, E265, E266, E305, E402, M811, N802, N803, N807, N808, N821, W293, M201</string>
             </value>
             <key>
               <string>FixCodes</string>
--- a/eric6.py	Tue Mar 13 18:18:04 2018 +0100
+++ b/eric6.py	Tue Mar 13 18:20:40 2018 +0100
@@ -372,7 +372,7 @@
     # start the event loop
     inMainLoop = True
     res = app.exec_()
-    logging.debug("Shutting down, result {0:d}".format(res))
+    logging.debug("Shutting down, result %d", res)
     logging.shutdown()
     sys.exit(res)
 
--- a/i18n/eric6_cs.ts	Tue Mar 13 18:18:04 2018 +0100
+++ b/i18n/eric6_cs.ts	Tue Mar 13 18:20:40 2018 +0100
@@ -3807,147 +3807,147 @@
 <context>
     <name>CodeStyleFixer</name>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="561"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="621"/>
         <source>Triple single quotes converted to triple double quotes.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="564"/>
-        <source>Introductory quotes corrected to be {0}&quot;&quot;&quot;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="567"/>
-        <source>Single line docstring put on one line.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="570"/>
-        <source>Period added to summary line.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="597"/>
-        <source>Blank line before function/method docstring removed.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="576"/>
-        <source>Blank line inserted before class docstring.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="579"/>
-        <source>Blank line inserted after class docstring.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="582"/>
-        <source>Blank line inserted after docstring summary.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="585"/>
-        <source>Blank line inserted after last paragraph of docstring.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="588"/>
-        <source>Leading quotes put on separate line.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="591"/>
-        <source>Trailing quotes put on separate line.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="594"/>
-        <source>Blank line before class docstring removed.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="600"/>
-        <source>Blank line after class docstring removed.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="603"/>
-        <source>Blank line after function/method docstring removed.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="606"/>
-        <source>Blank line after last paragraph removed.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="609"/>
-        <source>Tab converted to 4 spaces.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="612"/>
-        <source>Indentation adjusted to be a multiple of four.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="615"/>
-        <source>Indentation of continuation line corrected.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="618"/>
-        <source>Indentation of closing bracket corrected.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="621"/>
-        <source>Missing indentation of continuation line corrected.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="624"/>
-        <source>Closing bracket aligned to opening bracket.</source>
+        <source>Introductory quotes corrected to be {0}&quot;&quot;&quot;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="627"/>
-        <source>Indentation level changed.</source>
+        <source>Single line docstring put on one line.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="630"/>
-        <source>Indentation level of hanging indentation changed.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="633"/>
-        <source>Visual indentation corrected.</source>
+        <source>Period added to summary line.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="657"/>
+        <source>Blank line before function/method docstring removed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="636"/>
+        <source>Blank line inserted before class docstring.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="639"/>
+        <source>Blank line inserted after class docstring.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="642"/>
+        <source>Blank line inserted after docstring summary.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="645"/>
+        <source>Blank line inserted after last paragraph of docstring.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="648"/>
-        <source>Extraneous whitespace removed.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="645"/>
-        <source>Missing whitespace added.</source>
+        <source>Leading quotes put on separate line.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="651"/>
-        <source>Whitespace around comment sign corrected.</source>
+        <source>Trailing quotes put on separate line.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="654"/>
+        <source>Blank line before class docstring removed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="660"/>
+        <source>Blank line after class docstring removed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="663"/>
+        <source>Blank line after function/method docstring removed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="666"/>
+        <source>Blank line after last paragraph removed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="669"/>
+        <source>Tab converted to 4 spaces.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="672"/>
+        <source>Indentation adjusted to be a multiple of four.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="675"/>
+        <source>Indentation of continuation line corrected.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="678"/>
+        <source>Indentation of closing bracket corrected.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="681"/>
+        <source>Missing indentation of continuation line corrected.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="684"/>
+        <source>Closing bracket aligned to opening bracket.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="687"/>
+        <source>Indentation level changed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="690"/>
+        <source>Indentation level of hanging indentation changed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="693"/>
+        <source>Visual indentation corrected.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="708"/>
+        <source>Extraneous whitespace removed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="705"/>
+        <source>Missing whitespace added.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="711"/>
+        <source>Whitespace around comment sign corrected.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="714"/>
         <source>One blank line inserted.</source>
         <translation type="unfinished"></translation>
     </message>
     <message numerus="yes">
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="658"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="718"/>
         <source>%n blank line(s) inserted.</source>
         <translation type="unfinished">
             <numerusform></numerusform>
@@ -3956,7 +3956,7 @@
         </translation>
     </message>
     <message numerus="yes">
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="661"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="721"/>
         <source>%n superfluous lines removed</source>
         <translation type="unfinished">
             <numerusform></numerusform>
@@ -3965,77 +3965,77 @@
         </translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="665"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="725"/>
         <source>Superfluous blank lines removed.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="668"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="728"/>
         <source>Superfluous blank lines after function decorator removed.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="671"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="731"/>
         <source>Imports were put on separate lines.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="674"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="734"/>
         <source>Long lines have been shortened.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="677"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="737"/>
         <source>Redundant backslash in brackets removed.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="683"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="743"/>
         <source>Compound statement corrected.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="686"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="746"/>
         <source>Comparison to None/True/False corrected.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="689"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="749"/>
         <source>&apos;{0}&apos; argument added.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="692"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="752"/>
         <source>&apos;{0}&apos; argument removed.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="695"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="755"/>
         <source>Whitespace stripped from end of line.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="698"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="758"/>
         <source>newline added to end of file.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="701"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="761"/>
         <source>Superfluous trailing blank lines removed from end of file.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="704"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="764"/>
         <source>&apos;&lt;&gt;&apos; replaced by &apos;!=&apos;.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="708"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="768"/>
         <source>Could not save the file! Skipping it. Reason: {0}</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="789"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="852"/>
         <source> no message defined for code &apos;{0}&apos;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -45680,82 +45680,82 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="505"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="544"/>
         <source>found {0} formatter</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="508"/>
-        <source>format string does contain unindexed parameters</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="511"/>
-        <source>docstring does contain unindexed parameters</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="514"/>
-        <source>other string does contain unindexed parameters</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="517"/>
-        <source>format call uses too large index ({0})</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="520"/>
-        <source>format call uses missing keyword ({0})</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="523"/>
-        <source>format call uses keyword arguments but no named entries</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="526"/>
-        <source>format call uses variable arguments but no numbered entries</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="529"/>
-        <source>format call uses implicit and explicit indexes together</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="532"/>
-        <source>format call provides unused index ({0})</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="535"/>
-        <source>format call provides unused keyword ({0})</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="538"/>
-        <source>expected these __future__ imports: {0}; but only got: {1}</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="541"/>
-        <source>expected these __future__ imports: {0}; but got none</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="544"/>
-        <source>print statement found</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="547"/>
-        <source>one element tuple found</source>
+        <source>format string does contain unindexed parameters</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="550"/>
+        <source>docstring does contain unindexed parameters</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="553"/>
+        <source>other string does contain unindexed parameters</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="556"/>
+        <source>format call uses too large index ({0})</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="559"/>
+        <source>format call uses missing keyword ({0})</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="562"/>
+        <source>format call uses keyword arguments but no named entries</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="565"/>
+        <source>format call uses variable arguments but no numbered entries</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="568"/>
+        <source>format call uses implicit and explicit indexes together</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="571"/>
+        <source>format call provides unused index ({0})</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="574"/>
+        <source>format call provides unused keyword ({0})</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="592"/>
+        <source>expected these __future__ imports: {0}; but only got: {1}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="595"/>
+        <source>expected these __future__ imports: {0}; but got none</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="601"/>
+        <source>print statement found</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="604"/>
+        <source>one element tuple found</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="616"/>
         <source>{0}: {1}</source>
         <translation type="unfinished"></translation>
     </message>
@@ -45810,7 +45810,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="553"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="610"/>
         <source>mutable default argument of type {0}</source>
         <translation type="unfinished"></translation>
     </message>
@@ -45819,6 +45819,96 @@
         <source>sort keys - &apos;{0}&apos; should be before &apos;{1}&apos;</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="580"/>
+        <source>logging statement uses &apos;%&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="586"/>
+        <source>logging statement uses f-string</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="589"/>
+        <source>logging statement uses &apos;warn&apos; instead of &apos;warning&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="577"/>
+        <source>logging statement uses string.format()</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="583"/>
+        <source>logging statement uses &apos;+&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="598"/>
+        <source>gettext import with alias _ found: {0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="505"/>
+        <source>Python does not support the unary prefix increment</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="515"/>
+        <source>&apos;sys.maxint&apos; is not defined in Python 3 - use &apos;sys.maxsize&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="518"/>
+        <source>&apos;BaseException.message&apos; has been deprecated as of Python 2.6 and is removed in Python 3 - use &apos;str(e)&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="522"/>
+        <source>assigning to &apos;os.environ&apos; does not clear the environment - use &apos;os.environ.clear()&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="530"/>
+        <source>Python 3 does not include &apos;.iter*&apos; methods on dictionaries</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="533"/>
+        <source>Python 3 does not include &apos;.view*&apos; methods on dictionaries</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="536"/>
+        <source>&apos;.next()&apos; does not exist in Python 3</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="539"/>
+        <source>&apos;__metaclass__&apos; does nothing on Python 3 - use &apos;class MyClass(BaseClass, metaclass=...)&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="613"/>
+        <source>mutable default argument of function call &apos;{0}&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="508"/>
+        <source>using .strip() with multi-character strings is misleading</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="511"/>
+        <source>using &apos;hasattr(x, &quot;__call__&quot;)&apos; to test if &apos;x&apos; is callable is unreliable</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="526"/>
+        <source>loop control variable {0} not used within the loop body - start the name with an underscore</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>MouseClickDialog</name>
@@ -49266,37 +49356,37 @@
 <context>
     <name>PluginInfoDialog</name>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="13"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="14"/>
         <source>Loaded Plugins</source>
         <translation>Načtené pluginy</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="32"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="33"/>
         <source>&lt;b&gt;Plugin List&lt;/b&gt;&lt;p&gt;This lists all loaded plugins. Double-clicking an entry shows more detailed information in a separate dialog.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Seznam pluginů&lt;/b&gt;&lt;p&gt;Seznam všech načtených modulů. Dvojitý klik na položku zobrazí v dialogovém okně více inforamcí o položce.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="48"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="52"/>
         <source>Module</source>
         <translation>Modul</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="53"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="57"/>
         <source>Name</source>
         <translation>Jméno</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="63"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="67"/>
         <source>Autoactivate</source>
         <translation>Autoaktivovat</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="68"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="72"/>
         <source>Active</source>
         <translation>Aktivní</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="73"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="77"/>
         <source>Description</source>
         <translation>Popisek</translation>
     </message>
@@ -49326,12 +49416,12 @@
         <translation>Deaktivovat</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="22"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="23"/>
         <source>Double-Click an entry to show detailed info. Plugins with an error are shown in red.</source>
         <translation>Dvojitý klik na položku zobrazí detailní info. Pluginy s chybami jsou zobrazeny červeně.</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="58"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="62"/>
         <source>Version</source>
         <translation>Verze</translation>
     </message>
Binary file i18n/eric6_de.qm has changed
--- a/i18n/eric6_de.ts	Tue Mar 13 18:18:04 2018 +0100
+++ b/i18n/eric6_de.ts	Tue Mar 13 18:20:40 2018 +0100
@@ -3714,147 +3714,147 @@
 <context>
     <name>CodeStyleFixer</name>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="561"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="621"/>
         <source>Triple single quotes converted to triple double quotes.</source>
         <translation>Dreifache Einfachanführungszeichen in dreifache Doppelanführungszeichen umgewandelt.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="564"/>
-        <source>Introductory quotes corrected to be {0}&quot;&quot;&quot;</source>
-        <translation>Einleitende Anführungszeichen in {0}&quot;&quot;&quot; korrigiert</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="567"/>
-        <source>Single line docstring put on one line.</source>
-        <translation>Einzeiligen Docstring auf eine Zeile gebracht.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="570"/>
-        <source>Period added to summary line.</source>
-        <translation>Punkt an die Zusammenfassungszeile angefügt.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="597"/>
-        <source>Blank line before function/method docstring removed.</source>
-        <translation>Leerzeile vor Funktions-/Methodendocstring entfernt.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="576"/>
-        <source>Blank line inserted before class docstring.</source>
-        <translation>Leerzeile vor Klassendocstring eingefügt.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="579"/>
-        <source>Blank line inserted after class docstring.</source>
-        <translation>Leerzeile nach Klassendocstring eingefügt.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="582"/>
-        <source>Blank line inserted after docstring summary.</source>
-        <translation>Leerzeile nach Docstring Zusammenfassung eingefügt.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="585"/>
-        <source>Blank line inserted after last paragraph of docstring.</source>
-        <translation>Leerzeile nach letztem Abschnitt des Docstring eingefügt.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="588"/>
-        <source>Leading quotes put on separate line.</source>
-        <translation>Einleitende Anführungszeichen auf separate Zeile gesetzt.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="591"/>
-        <source>Trailing quotes put on separate line.</source>
-        <translation>Schließende Anführungszeichen auf separate Zeile gesetzt.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="594"/>
-        <source>Blank line before class docstring removed.</source>
-        <translation>Leerzeile vor Klassendocstring entfernt.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="600"/>
-        <source>Blank line after class docstring removed.</source>
-        <translation>Leerzeile nach Klassendocstring entfernt.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="603"/>
-        <source>Blank line after function/method docstring removed.</source>
-        <translation>Leerzeile nach Funktions-/Methodendocstring entfernt.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="606"/>
-        <source>Blank line after last paragraph removed.</source>
-        <translation>Leerzeile nach letzten Abschnitt entfernt.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="609"/>
-        <source>Tab converted to 4 spaces.</source>
-        <translation>Tabulator in 4 Leerzeichen gewandelt.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="612"/>
-        <source>Indentation adjusted to be a multiple of four.</source>
-        <translation>Einrückung auf ein Vielfaches von vier korrigiert.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="615"/>
-        <source>Indentation of continuation line corrected.</source>
-        <translation>Einrückung der Fortsetzungszeile korrigiert.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="618"/>
-        <source>Indentation of closing bracket corrected.</source>
-        <translation>Einrückung der schließenden Klammer korrigiert.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="621"/>
-        <source>Missing indentation of continuation line corrected.</source>
-        <translation>Fehlende Einrückung der Fortsetzungszeile korrigiert.</translation>
-    </message>
-    <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="624"/>
-        <source>Closing bracket aligned to opening bracket.</source>
-        <translation>Schließende Klammer an öffnender Klammer ausgerichtet.</translation>
+        <source>Introductory quotes corrected to be {0}&quot;&quot;&quot;</source>
+        <translation>Einleitende Anführungszeichen in {0}&quot;&quot;&quot; korrigiert</translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="627"/>
-        <source>Indentation level changed.</source>
-        <translation>Einrückungsebene geändert.</translation>
+        <source>Single line docstring put on one line.</source>
+        <translation>Einzeiligen Docstring auf eine Zeile gebracht.</translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="630"/>
-        <source>Indentation level of hanging indentation changed.</source>
-        <translation>Einrückungsebene der hängenden Einrückung geändert.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="633"/>
-        <source>Visual indentation corrected.</source>
-        <translation>Visuelle Einrückung korrigiert.</translation>
+        <source>Period added to summary line.</source>
+        <translation>Punkt an die Zusammenfassungszeile angefügt.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="657"/>
+        <source>Blank line before function/method docstring removed.</source>
+        <translation>Leerzeile vor Funktions-/Methodendocstring entfernt.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="636"/>
+        <source>Blank line inserted before class docstring.</source>
+        <translation>Leerzeile vor Klassendocstring eingefügt.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="639"/>
+        <source>Blank line inserted after class docstring.</source>
+        <translation>Leerzeile nach Klassendocstring eingefügt.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="642"/>
+        <source>Blank line inserted after docstring summary.</source>
+        <translation>Leerzeile nach Docstring Zusammenfassung eingefügt.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="645"/>
+        <source>Blank line inserted after last paragraph of docstring.</source>
+        <translation>Leerzeile nach letztem Abschnitt des Docstring eingefügt.</translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="648"/>
-        <source>Extraneous whitespace removed.</source>
-        <translation>Überzählige Leerzeichen gelöscht.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="645"/>
-        <source>Missing whitespace added.</source>
-        <translation>Fehlende Leerzeichen eingefügt.</translation>
+        <source>Leading quotes put on separate line.</source>
+        <translation>Einleitende Anführungszeichen auf separate Zeile gesetzt.</translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="651"/>
-        <source>Whitespace around comment sign corrected.</source>
-        <translation>Leerzeichen um Kommentarzeichen korrigiert.</translation>
+        <source>Trailing quotes put on separate line.</source>
+        <translation>Schließende Anführungszeichen auf separate Zeile gesetzt.</translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="654"/>
+        <source>Blank line before class docstring removed.</source>
+        <translation>Leerzeile vor Klassendocstring entfernt.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="660"/>
+        <source>Blank line after class docstring removed.</source>
+        <translation>Leerzeile nach Klassendocstring entfernt.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="663"/>
+        <source>Blank line after function/method docstring removed.</source>
+        <translation>Leerzeile nach Funktions-/Methodendocstring entfernt.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="666"/>
+        <source>Blank line after last paragraph removed.</source>
+        <translation>Leerzeile nach letzten Abschnitt entfernt.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="669"/>
+        <source>Tab converted to 4 spaces.</source>
+        <translation>Tabulator in 4 Leerzeichen gewandelt.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="672"/>
+        <source>Indentation adjusted to be a multiple of four.</source>
+        <translation>Einrückung auf ein Vielfaches von vier korrigiert.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="675"/>
+        <source>Indentation of continuation line corrected.</source>
+        <translation>Einrückung der Fortsetzungszeile korrigiert.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="678"/>
+        <source>Indentation of closing bracket corrected.</source>
+        <translation>Einrückung der schließenden Klammer korrigiert.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="681"/>
+        <source>Missing indentation of continuation line corrected.</source>
+        <translation>Fehlende Einrückung der Fortsetzungszeile korrigiert.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="684"/>
+        <source>Closing bracket aligned to opening bracket.</source>
+        <translation>Schließende Klammer an öffnender Klammer ausgerichtet.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="687"/>
+        <source>Indentation level changed.</source>
+        <translation>Einrückungsebene geändert.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="690"/>
+        <source>Indentation level of hanging indentation changed.</source>
+        <translation>Einrückungsebene der hängenden Einrückung geändert.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="693"/>
+        <source>Visual indentation corrected.</source>
+        <translation>Visuelle Einrückung korrigiert.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="708"/>
+        <source>Extraneous whitespace removed.</source>
+        <translation>Überzählige Leerzeichen gelöscht.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="705"/>
+        <source>Missing whitespace added.</source>
+        <translation>Fehlende Leerzeichen eingefügt.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="711"/>
+        <source>Whitespace around comment sign corrected.</source>
+        <translation>Leerzeichen um Kommentarzeichen korrigiert.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="714"/>
         <source>One blank line inserted.</source>
         <translation>Eine Leerzeile eingefügt.</translation>
     </message>
     <message numerus="yes">
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="658"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="718"/>
         <source>%n blank line(s) inserted.</source>
         <translation>
             <numerusform>Eine Leerzeile eingefügt.</numerusform>
@@ -3862,7 +3862,7 @@
         </translation>
     </message>
     <message numerus="yes">
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="661"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="721"/>
         <source>%n superfluous lines removed</source>
         <translation>
             <numerusform>Eine überflüssige Zeile gelöscht</numerusform>
@@ -3870,77 +3870,77 @@
         </translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="665"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="725"/>
         <source>Superfluous blank lines removed.</source>
         <translation>Überflüssige Leerzeilen gelöscht.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="668"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="728"/>
         <source>Superfluous blank lines after function decorator removed.</source>
         <translation>Überflüssige Leerzeilen nach Funktionsdekorator gelöscht.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="671"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="731"/>
         <source>Imports were put on separate lines.</source>
         <translation>Imports wurden auf separate Zeilen verteilt.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="674"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="734"/>
         <source>Long lines have been shortened.</source>
         <translation>Lange Zeilen wurden gekürzt.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="677"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="737"/>
         <source>Redundant backslash in brackets removed.</source>
         <translation>Redundante Backslashes in Klammern entfernt.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="683"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="743"/>
         <source>Compound statement corrected.</source>
         <translation>Compund Statement korrigiert.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="686"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="746"/>
         <source>Comparison to None/True/False corrected.</source>
         <translation>Vergleich mit None/True/False korrigiert.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="689"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="749"/>
         <source>&apos;{0}&apos; argument added.</source>
         <translation>&apos;{0}&apos; Argument hinzugefügt.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="692"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="752"/>
         <source>&apos;{0}&apos; argument removed.</source>
         <translation>&apos;{0}&apos; Argument entfernt.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="695"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="755"/>
         <source>Whitespace stripped from end of line.</source>
         <translation>Leerzeichen am Zeilenende entfernt.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="698"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="758"/>
         <source>newline added to end of file.</source>
         <translation>Zeilenvorschub am Dateiende angefügt.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="701"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="761"/>
         <source>Superfluous trailing blank lines removed from end of file.</source>
         <translation>Überflüssige Leerzeilen am Dateiende gelöscht.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="704"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="764"/>
         <source>&apos;&lt;&gt;&apos; replaced by &apos;!=&apos;.</source>
         <translation>„&lt;&gt;“ durch „!=“ ersetzt.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="708"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="768"/>
         <source>Could not save the file! Skipping it. Reason: {0}</source>
         <translation>Datei konnte nicht gespeichert werden! Ursache: {0}</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="789"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="852"/>
         <source> no message defined for code &apos;{0}&apos;</source>
         <translation> keine Nachricht für &apos;{0}&apos; definiert</translation>
     </message>
@@ -44710,82 +44710,82 @@
         <translation>Copyrightvermerk enthält ungültigen Autor</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="505"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="544"/>
         <source>found {0} formatter</source>
         <translation>{0} Format gefunden</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="508"/>
-        <source>format string does contain unindexed parameters</source>
-        <translation>Formatstring enthält nicht indizierte Parameter</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="511"/>
-        <source>docstring does contain unindexed parameters</source>
-        <translation>Dokumentationsstring enthält nicht indizierte Parameter</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="514"/>
-        <source>other string does contain unindexed parameters</source>
-        <translation>Anderer String enthält nicht indizierte Parameter</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="517"/>
-        <source>format call uses too large index ({0})</source>
-        <translation>Format Aufruf enthält zu großen Index ({0})</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="520"/>
-        <source>format call uses missing keyword ({0})</source>
-        <translation>Format Aufruf verwendet fehlendes Schlüsselwort ({0})</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="523"/>
-        <source>format call uses keyword arguments but no named entries</source>
-        <translation>Format Aufruf verwendet Schlüsselwort Argumente, enthält aber keine benannten Einträge</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="526"/>
-        <source>format call uses variable arguments but no numbered entries</source>
-        <translation>Format Aufruf verwendet variable argumente, enthält aber keine nummerierten Einträge</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="529"/>
-        <source>format call uses implicit and explicit indexes together</source>
-        <translation>Format Aufruf verwendet sowohl implizite als auch explizite Indizes</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="532"/>
-        <source>format call provides unused index ({0})</source>
-        <translation>Format Aufruf verwendet ungenutzten Index ({0})</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="535"/>
-        <source>format call provides unused keyword ({0})</source>
-        <translation>Format Aufruf verwendet ungenutztes Schlüsselwort ({0})</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="538"/>
-        <source>expected these __future__ imports: {0}; but only got: {1}</source>
-        <translation>erwartete __future__ Imports: {0}; aber nur {1} gefunden</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="541"/>
-        <source>expected these __future__ imports: {0}; but got none</source>
-        <translation>erwartete __future__ Imports: {0}; jedoch keine gefunden</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="544"/>
-        <source>print statement found</source>
-        <translation>print Statement gefunden</translation>
-    </message>
-    <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="547"/>
-        <source>one element tuple found</source>
-        <translation>Tuple mit einem Element gefunden</translation>
+        <source>format string does contain unindexed parameters</source>
+        <translation>Formatstring enthält nicht indizierte Parameter</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="550"/>
+        <source>docstring does contain unindexed parameters</source>
+        <translation>Dokumentationsstring enthält nicht indizierte Parameter</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="553"/>
+        <source>other string does contain unindexed parameters</source>
+        <translation>Anderer String enthält nicht indizierte Parameter</translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="556"/>
+        <source>format call uses too large index ({0})</source>
+        <translation>Format Aufruf enthält zu großen Index ({0})</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="559"/>
+        <source>format call uses missing keyword ({0})</source>
+        <translation>Format Aufruf verwendet fehlendes Schlüsselwort ({0})</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="562"/>
+        <source>format call uses keyword arguments but no named entries</source>
+        <translation>Format Aufruf verwendet Schlüsselwort Argumente, enthält aber keine benannten Einträge</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="565"/>
+        <source>format call uses variable arguments but no numbered entries</source>
+        <translation>Format Aufruf verwendet variable argumente, enthält aber keine nummerierten Einträge</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="568"/>
+        <source>format call uses implicit and explicit indexes together</source>
+        <translation>Format Aufruf verwendet sowohl implizite als auch explizite Indizes</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="571"/>
+        <source>format call provides unused index ({0})</source>
+        <translation>Format Aufruf verwendet ungenutzten Index ({0})</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="574"/>
+        <source>format call provides unused keyword ({0})</source>
+        <translation>Format Aufruf verwendet ungenutztes Schlüsselwort ({0})</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="592"/>
+        <source>expected these __future__ imports: {0}; but only got: {1}</source>
+        <translation>erwartete __future__ Imports: {0}; aber nur {1} gefunden</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="595"/>
+        <source>expected these __future__ imports: {0}; but got none</source>
+        <translation>erwartete __future__ Imports: {0}; jedoch keine gefunden</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="601"/>
+        <source>print statement found</source>
+        <translation>print Statement gefunden</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="604"/>
+        <source>one element tuple found</source>
+        <translation>Tuple mit einem Element gefunden</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="616"/>
         <source>{0}: {1}</source>
         <translation>{0}: {1}</translation>
     </message>
@@ -44840,7 +44840,7 @@
         <translation>unnötige List Comprehension - &quot;{0}&quot; kann einen Generator verwenden</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="553"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="610"/>
         <source>mutable default argument of type {0}</source>
         <translation>veränderbares Standardargument des Typs {0}</translation>
     </message>
@@ -44849,6 +44849,96 @@
         <source>sort keys - &apos;{0}&apos; should be before &apos;{1}&apos;</source>
         <translation>Schlüssel sortieren - &apos;{0}&apos; sollte vor &apos;{1}&apos; kommen</translation>
     </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="580"/>
+        <source>logging statement uses &apos;%&apos;</source>
+        <translation>Loggingbefehl verwendet &apos;%&apos;</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="586"/>
+        <source>logging statement uses f-string</source>
+        <translation>Loggingbefehl verwendet &apos;f-string&apos;</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="589"/>
+        <source>logging statement uses &apos;warn&apos; instead of &apos;warning&apos;</source>
+        <translation>Loggingbefehl verwendet &apos;warn&apos; anstelle &apos;warning&apos;</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="577"/>
+        <source>logging statement uses string.format()</source>
+        <translation>Loggingbefehl verwendet &apos;string.format()&apos;</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="583"/>
+        <source>logging statement uses &apos;+&apos;</source>
+        <translation>Loggingbefehl verwendet &apos;+&apos;</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="598"/>
+        <source>gettext import with alias _ found: {0}</source>
+        <translation>gettext Import mit Alias _ entdeckt: {0}</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="505"/>
+        <source>Python does not support the unary prefix increment</source>
+        <translation>Python unterstützt kein &apos;Unary Prefix Increment&apos;</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="515"/>
+        <source>&apos;sys.maxint&apos; is not defined in Python 3 - use &apos;sys.maxsize&apos;</source>
+        <translation>&apos;sys.maxint&apos; ist in Python 3 nicht definiert - verwende &apos;sys.maxsize&apos;</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="518"/>
+        <source>&apos;BaseException.message&apos; has been deprecated as of Python 2.6 and is removed in Python 3 - use &apos;str(e)&apos;</source>
+        <translation>&apos;BaseException.message&apos; wurde mit Python 2.6 als überholt markiert und in Python 3 entfernt - verwende &apos;str(e)&apos;</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="522"/>
+        <source>assigning to &apos;os.environ&apos; does not clear the environment - use &apos;os.environ.clear()&apos;</source>
+        <translation>Zuweisungen an &apos;os.environ&apos; löschen nicht die Umgebungsvariablen - verwende &apos;os.environ.clear()&apos;</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="530"/>
+        <source>Python 3 does not include &apos;.iter*&apos; methods on dictionaries</source>
+        <translation>Python 3 enthält keine &apos;.iter*&apos; Methoden für Dictionaries</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="533"/>
+        <source>Python 3 does not include &apos;.view*&apos; methods on dictionaries</source>
+        <translation>Python 3 enthält keine &apos;.view*&apos; Methoden für Dictionaries</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="536"/>
+        <source>&apos;.next()&apos; does not exist in Python 3</source>
+        <translation>&apos;.next()&apos; existiert in Python 3 nicht</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="539"/>
+        <source>&apos;__metaclass__&apos; does nothing on Python 3 - use &apos;class MyClass(BaseClass, metaclass=...)&apos;</source>
+        <translation>&apos;__metaclass__&apos; tut nichts in Python 3 - verwende &apos;class MyClass(BaseClass, metaclass=...)&apos;</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="613"/>
+        <source>mutable default argument of function call &apos;{0}&apos;</source>
+        <translation>Funktionsaufruf &apos;{0}&apos; als veränderbares Standardargument</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="508"/>
+        <source>using .strip() with multi-character strings is misleading</source>
+        <translation>Verwendung von .strip() mit Zeichenketten mit mehreren Zeichen ist missverständlich</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="511"/>
+        <source>using &apos;hasattr(x, &quot;__call__&quot;)&apos; to test if &apos;x&apos; is callable is unreliable</source>
+        <translation>Verwendung von &apos;hasattr(x, &quot;__call__&quot;)&apos; zum Test, ob &apos;x&apos; aufrufbar ist, ist unzuverlässig</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="526"/>
+        <source>loop control variable {0} not used within the loop body - start the name with an underscore</source>
+        <translation>Schleifenvariable {0} wird im Schleifenkörper nicht verwendet - beginne den Namen mit einem Unterstrich</translation>
+    </message>
 </context>
 <context>
     <name>MouseClickDialog</name>
@@ -48271,37 +48361,37 @@
 <context>
     <name>PluginInfoDialog</name>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="13"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="14"/>
         <source>Loaded Plugins</source>
         <translation>Geladene Plugins</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="32"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="33"/>
         <source>&lt;b&gt;Plugin List&lt;/b&gt;&lt;p&gt;This lists all loaded plugins. Double-clicking an entry shows more detailed information in a separate dialog.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Pluginliste&lt;/b&gt;&lt;p&gt;Dies listet alel geladenen Plugins. Doppelklicken Sie einen Eintrag, so werden detailliertere Informationen in einem separaten Dialog angezeigt.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="48"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="52"/>
         <source>Module</source>
         <translation>Modul</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="53"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="57"/>
         <source>Name</source>
         <translation>Name</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="63"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="67"/>
         <source>Autoactivate</source>
         <translation>Autoaktivierung</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="68"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="72"/>
         <source>Active</source>
         <translation>Aktiv</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="73"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="77"/>
         <source>Description</source>
         <translation>Beschreibung</translation>
     </message>
@@ -48331,12 +48421,12 @@
         <translation>Deaktivieren</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="22"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="23"/>
         <source>Double-Click an entry to show detailed info. Plugins with an error are shown in red.</source>
         <translation>Einen Eintrag doppelklicken, um detaillierte Informationen anzuzeigen. Plugins mit Fehler werden in Rot dargestellt.</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="58"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="62"/>
         <source>Version</source>
         <translation>Version</translation>
     </message>
--- a/i18n/eric6_empty.ts	Tue Mar 13 18:18:04 2018 +0100
+++ b/i18n/eric6_empty.ts	Tue Mar 13 18:20:40 2018 +0100
@@ -3668,231 +3668,231 @@
 <context>
     <name>CodeStyleFixer</name>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="561"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="621"/>
         <source>Triple single quotes converted to triple double quotes.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="564"/>
-        <source>Introductory quotes corrected to be {0}&quot;&quot;&quot;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="567"/>
-        <source>Single line docstring put on one line.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="570"/>
-        <source>Period added to summary line.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="597"/>
-        <source>Blank line before function/method docstring removed.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="576"/>
-        <source>Blank line inserted before class docstring.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="579"/>
-        <source>Blank line inserted after class docstring.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="582"/>
-        <source>Blank line inserted after docstring summary.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="585"/>
-        <source>Blank line inserted after last paragraph of docstring.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="588"/>
-        <source>Leading quotes put on separate line.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="591"/>
-        <source>Trailing quotes put on separate line.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="594"/>
-        <source>Blank line before class docstring removed.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="600"/>
-        <source>Blank line after class docstring removed.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="603"/>
-        <source>Blank line after function/method docstring removed.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="606"/>
-        <source>Blank line after last paragraph removed.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="609"/>
-        <source>Tab converted to 4 spaces.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="612"/>
-        <source>Indentation adjusted to be a multiple of four.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="615"/>
-        <source>Indentation of continuation line corrected.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="618"/>
-        <source>Indentation of closing bracket corrected.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="621"/>
-        <source>Missing indentation of continuation line corrected.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="624"/>
-        <source>Closing bracket aligned to opening bracket.</source>
+        <source>Introductory quotes corrected to be {0}&quot;&quot;&quot;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="627"/>
-        <source>Indentation level changed.</source>
+        <source>Single line docstring put on one line.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="630"/>
-        <source>Indentation level of hanging indentation changed.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="633"/>
-        <source>Visual indentation corrected.</source>
+        <source>Period added to summary line.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="657"/>
+        <source>Blank line before function/method docstring removed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="636"/>
+        <source>Blank line inserted before class docstring.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="639"/>
+        <source>Blank line inserted after class docstring.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="642"/>
+        <source>Blank line inserted after docstring summary.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="645"/>
+        <source>Blank line inserted after last paragraph of docstring.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="648"/>
-        <source>Extraneous whitespace removed.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="645"/>
-        <source>Missing whitespace added.</source>
+        <source>Leading quotes put on separate line.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="651"/>
-        <source>Whitespace around comment sign corrected.</source>
+        <source>Trailing quotes put on separate line.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="654"/>
+        <source>Blank line before class docstring removed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="660"/>
+        <source>Blank line after class docstring removed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="663"/>
+        <source>Blank line after function/method docstring removed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="666"/>
+        <source>Blank line after last paragraph removed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="669"/>
+        <source>Tab converted to 4 spaces.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="672"/>
+        <source>Indentation adjusted to be a multiple of four.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="675"/>
+        <source>Indentation of continuation line corrected.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="678"/>
+        <source>Indentation of closing bracket corrected.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="681"/>
+        <source>Missing indentation of continuation line corrected.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="684"/>
+        <source>Closing bracket aligned to opening bracket.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="687"/>
+        <source>Indentation level changed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="690"/>
+        <source>Indentation level of hanging indentation changed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="693"/>
+        <source>Visual indentation corrected.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="708"/>
+        <source>Extraneous whitespace removed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="705"/>
+        <source>Missing whitespace added.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="711"/>
+        <source>Whitespace around comment sign corrected.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="714"/>
         <source>One blank line inserted.</source>
         <translation type="unfinished"></translation>
     </message>
     <message numerus="yes">
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="658"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="718"/>
         <source>%n blank line(s) inserted.</source>
         <translation type="unfinished">
             <numerusform></numerusform>
         </translation>
     </message>
     <message numerus="yes">
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="661"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="721"/>
         <source>%n superfluous lines removed</source>
         <translation type="unfinished">
             <numerusform></numerusform>
         </translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="665"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="725"/>
         <source>Superfluous blank lines removed.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="668"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="728"/>
         <source>Superfluous blank lines after function decorator removed.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="671"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="731"/>
         <source>Imports were put on separate lines.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="674"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="734"/>
         <source>Long lines have been shortened.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="677"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="737"/>
         <source>Redundant backslash in brackets removed.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="683"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="743"/>
         <source>Compound statement corrected.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="686"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="746"/>
         <source>Comparison to None/True/False corrected.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="689"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="749"/>
         <source>&apos;{0}&apos; argument added.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="692"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="752"/>
         <source>&apos;{0}&apos; argument removed.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="695"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="755"/>
         <source>Whitespace stripped from end of line.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="698"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="758"/>
         <source>newline added to end of file.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="701"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="761"/>
         <source>Superfluous trailing blank lines removed from end of file.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="704"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="764"/>
         <source>&apos;&lt;&gt;&apos; replaced by &apos;!=&apos;.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="708"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="768"/>
         <source>Could not save the file! Skipping it. Reason: {0}</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="789"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="852"/>
         <source> no message defined for code &apos;{0}&apos;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -44472,82 +44472,82 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="505"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="544"/>
         <source>found {0} formatter</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="508"/>
-        <source>format string does contain unindexed parameters</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="511"/>
-        <source>docstring does contain unindexed parameters</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="514"/>
-        <source>other string does contain unindexed parameters</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="517"/>
-        <source>format call uses too large index ({0})</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="520"/>
-        <source>format call uses missing keyword ({0})</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="523"/>
-        <source>format call uses keyword arguments but no named entries</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="526"/>
-        <source>format call uses variable arguments but no numbered entries</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="529"/>
-        <source>format call uses implicit and explicit indexes together</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="532"/>
-        <source>format call provides unused index ({0})</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="535"/>
-        <source>format call provides unused keyword ({0})</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="538"/>
-        <source>expected these __future__ imports: {0}; but only got: {1}</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="541"/>
-        <source>expected these __future__ imports: {0}; but got none</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="544"/>
-        <source>print statement found</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="547"/>
-        <source>one element tuple found</source>
+        <source>format string does contain unindexed parameters</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="550"/>
+        <source>docstring does contain unindexed parameters</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="553"/>
+        <source>other string does contain unindexed parameters</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="556"/>
+        <source>format call uses too large index ({0})</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="559"/>
+        <source>format call uses missing keyword ({0})</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="562"/>
+        <source>format call uses keyword arguments but no named entries</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="565"/>
+        <source>format call uses variable arguments but no numbered entries</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="568"/>
+        <source>format call uses implicit and explicit indexes together</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="571"/>
+        <source>format call provides unused index ({0})</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="574"/>
+        <source>format call provides unused keyword ({0})</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="592"/>
+        <source>expected these __future__ imports: {0}; but only got: {1}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="595"/>
+        <source>expected these __future__ imports: {0}; but got none</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="601"/>
+        <source>print statement found</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="604"/>
+        <source>one element tuple found</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="616"/>
         <source>{0}: {1}</source>
         <translation type="unfinished"></translation>
     </message>
@@ -44602,7 +44602,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="553"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="610"/>
         <source>mutable default argument of type {0}</source>
         <translation type="unfinished"></translation>
     </message>
@@ -44611,6 +44611,96 @@
         <source>sort keys - &apos;{0}&apos; should be before &apos;{1}&apos;</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="580"/>
+        <source>logging statement uses &apos;%&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="586"/>
+        <source>logging statement uses f-string</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="589"/>
+        <source>logging statement uses &apos;warn&apos; instead of &apos;warning&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="577"/>
+        <source>logging statement uses string.format()</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="583"/>
+        <source>logging statement uses &apos;+&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="598"/>
+        <source>gettext import with alias _ found: {0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="505"/>
+        <source>Python does not support the unary prefix increment</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="515"/>
+        <source>&apos;sys.maxint&apos; is not defined in Python 3 - use &apos;sys.maxsize&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="518"/>
+        <source>&apos;BaseException.message&apos; has been deprecated as of Python 2.6 and is removed in Python 3 - use &apos;str(e)&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="522"/>
+        <source>assigning to &apos;os.environ&apos; does not clear the environment - use &apos;os.environ.clear()&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="530"/>
+        <source>Python 3 does not include &apos;.iter*&apos; methods on dictionaries</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="533"/>
+        <source>Python 3 does not include &apos;.view*&apos; methods on dictionaries</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="536"/>
+        <source>&apos;.next()&apos; does not exist in Python 3</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="539"/>
+        <source>&apos;__metaclass__&apos; does nothing on Python 3 - use &apos;class MyClass(BaseClass, metaclass=...)&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="613"/>
+        <source>mutable default argument of function call &apos;{0}&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="508"/>
+        <source>using .strip() with multi-character strings is misleading</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="511"/>
+        <source>using &apos;hasattr(x, &quot;__call__&quot;)&apos; to test if &apos;x&apos; is callable is unreliable</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="526"/>
+        <source>loop control variable {0} not used within the loop body - start the name with an underscore</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>MouseClickDialog</name>
@@ -48028,47 +48118,47 @@
 <context>
     <name>PluginInfoDialog</name>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="13"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="14"/>
         <source>Loaded Plugins</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="22"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="23"/>
         <source>Double-Click an entry to show detailed info. Plugins with an error are shown in red.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="32"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="33"/>
         <source>&lt;b&gt;Plugin List&lt;/b&gt;&lt;p&gt;This lists all loaded plugins. Double-clicking an entry shows more detailed information in a separate dialog.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="48"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="52"/>
         <source>Module</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="53"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="57"/>
         <source>Name</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="58"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="62"/>
         <source>Version</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="63"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="67"/>
         <source>Autoactivate</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="68"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="72"/>
         <source>Active</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="73"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="77"/>
         <source>Description</source>
         <translation type="unfinished"></translation>
     </message>
--- a/i18n/eric6_en.ts	Tue Mar 13 18:18:04 2018 +0100
+++ b/i18n/eric6_en.ts	Tue Mar 13 18:20:40 2018 +0100
@@ -3668,147 +3668,147 @@
 <context>
     <name>CodeStyleFixer</name>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="561"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="621"/>
         <source>Triple single quotes converted to triple double quotes.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="564"/>
-        <source>Introductory quotes corrected to be {0}&quot;&quot;&quot;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="567"/>
-        <source>Single line docstring put on one line.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="570"/>
-        <source>Period added to summary line.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="597"/>
-        <source>Blank line before function/method docstring removed.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="576"/>
-        <source>Blank line inserted before class docstring.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="579"/>
-        <source>Blank line inserted after class docstring.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="582"/>
-        <source>Blank line inserted after docstring summary.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="585"/>
-        <source>Blank line inserted after last paragraph of docstring.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="588"/>
-        <source>Leading quotes put on separate line.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="591"/>
-        <source>Trailing quotes put on separate line.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="594"/>
-        <source>Blank line before class docstring removed.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="600"/>
-        <source>Blank line after class docstring removed.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="603"/>
-        <source>Blank line after function/method docstring removed.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="606"/>
-        <source>Blank line after last paragraph removed.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="609"/>
-        <source>Tab converted to 4 spaces.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="612"/>
-        <source>Indentation adjusted to be a multiple of four.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="615"/>
-        <source>Indentation of continuation line corrected.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="618"/>
-        <source>Indentation of closing bracket corrected.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="621"/>
-        <source>Missing indentation of continuation line corrected.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="624"/>
-        <source>Closing bracket aligned to opening bracket.</source>
+        <source>Introductory quotes corrected to be {0}&quot;&quot;&quot;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="627"/>
-        <source>Indentation level changed.</source>
+        <source>Single line docstring put on one line.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="630"/>
-        <source>Indentation level of hanging indentation changed.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="633"/>
-        <source>Visual indentation corrected.</source>
+        <source>Period added to summary line.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="657"/>
+        <source>Blank line before function/method docstring removed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="636"/>
+        <source>Blank line inserted before class docstring.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="639"/>
+        <source>Blank line inserted after class docstring.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="642"/>
+        <source>Blank line inserted after docstring summary.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="645"/>
+        <source>Blank line inserted after last paragraph of docstring.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="648"/>
-        <source>Extraneous whitespace removed.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="645"/>
-        <source>Missing whitespace added.</source>
+        <source>Leading quotes put on separate line.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="651"/>
-        <source>Whitespace around comment sign corrected.</source>
+        <source>Trailing quotes put on separate line.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="654"/>
+        <source>Blank line before class docstring removed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="660"/>
+        <source>Blank line after class docstring removed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="663"/>
+        <source>Blank line after function/method docstring removed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="666"/>
+        <source>Blank line after last paragraph removed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="669"/>
+        <source>Tab converted to 4 spaces.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="672"/>
+        <source>Indentation adjusted to be a multiple of four.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="675"/>
+        <source>Indentation of continuation line corrected.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="678"/>
+        <source>Indentation of closing bracket corrected.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="681"/>
+        <source>Missing indentation of continuation line corrected.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="684"/>
+        <source>Closing bracket aligned to opening bracket.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="687"/>
+        <source>Indentation level changed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="690"/>
+        <source>Indentation level of hanging indentation changed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="693"/>
+        <source>Visual indentation corrected.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="708"/>
+        <source>Extraneous whitespace removed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="705"/>
+        <source>Missing whitespace added.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="711"/>
+        <source>Whitespace around comment sign corrected.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="714"/>
         <source>One blank line inserted.</source>
         <translation type="unfinished"></translation>
     </message>
     <message numerus="yes">
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="658"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="718"/>
         <source>%n blank line(s) inserted.</source>
         <translation>
             <numerusform>%n blank line inserted.</numerusform>
@@ -3816,7 +3816,7 @@
         </translation>
     </message>
     <message numerus="yes">
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="661"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="721"/>
         <source>%n superfluous lines removed</source>
         <translation>
             <numerusform>%n superfluous line removed</numerusform>
@@ -3824,77 +3824,77 @@
         </translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="665"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="725"/>
         <source>Superfluous blank lines removed.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="668"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="728"/>
         <source>Superfluous blank lines after function decorator removed.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="671"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="731"/>
         <source>Imports were put on separate lines.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="674"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="734"/>
         <source>Long lines have been shortened.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="677"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="737"/>
         <source>Redundant backslash in brackets removed.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="683"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="743"/>
         <source>Compound statement corrected.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="686"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="746"/>
         <source>Comparison to None/True/False corrected.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="689"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="749"/>
         <source>&apos;{0}&apos; argument added.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="692"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="752"/>
         <source>&apos;{0}&apos; argument removed.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="695"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="755"/>
         <source>Whitespace stripped from end of line.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="698"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="758"/>
         <source>newline added to end of file.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="701"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="761"/>
         <source>Superfluous trailing blank lines removed from end of file.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="704"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="764"/>
         <source>&apos;&lt;&gt;&apos; replaced by &apos;!=&apos;.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="708"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="768"/>
         <source>Could not save the file! Skipping it. Reason: {0}</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="789"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="852"/>
         <source> no message defined for code &apos;{0}&apos;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -44514,82 +44514,82 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="505"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="544"/>
         <source>found {0} formatter</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="508"/>
-        <source>format string does contain unindexed parameters</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="511"/>
-        <source>docstring does contain unindexed parameters</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="514"/>
-        <source>other string does contain unindexed parameters</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="517"/>
-        <source>format call uses too large index ({0})</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="520"/>
-        <source>format call uses missing keyword ({0})</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="523"/>
-        <source>format call uses keyword arguments but no named entries</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="526"/>
-        <source>format call uses variable arguments but no numbered entries</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="529"/>
-        <source>format call uses implicit and explicit indexes together</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="532"/>
-        <source>format call provides unused index ({0})</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="535"/>
-        <source>format call provides unused keyword ({0})</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="538"/>
-        <source>expected these __future__ imports: {0}; but only got: {1}</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="541"/>
-        <source>expected these __future__ imports: {0}; but got none</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="544"/>
-        <source>print statement found</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="547"/>
-        <source>one element tuple found</source>
+        <source>format string does contain unindexed parameters</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="550"/>
+        <source>docstring does contain unindexed parameters</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="553"/>
+        <source>other string does contain unindexed parameters</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="556"/>
+        <source>format call uses too large index ({0})</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="559"/>
+        <source>format call uses missing keyword ({0})</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="562"/>
+        <source>format call uses keyword arguments but no named entries</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="565"/>
+        <source>format call uses variable arguments but no numbered entries</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="568"/>
+        <source>format call uses implicit and explicit indexes together</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="571"/>
+        <source>format call provides unused index ({0})</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="574"/>
+        <source>format call provides unused keyword ({0})</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="592"/>
+        <source>expected these __future__ imports: {0}; but only got: {1}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="595"/>
+        <source>expected these __future__ imports: {0}; but got none</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="601"/>
+        <source>print statement found</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="604"/>
+        <source>one element tuple found</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="616"/>
         <source>{0}: {1}</source>
         <translation type="unfinished"></translation>
     </message>
@@ -44644,7 +44644,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="553"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="610"/>
         <source>mutable default argument of type {0}</source>
         <translation type="unfinished"></translation>
     </message>
@@ -44653,6 +44653,96 @@
         <source>sort keys - &apos;{0}&apos; should be before &apos;{1}&apos;</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="580"/>
+        <source>logging statement uses &apos;%&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="586"/>
+        <source>logging statement uses f-string</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="589"/>
+        <source>logging statement uses &apos;warn&apos; instead of &apos;warning&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="577"/>
+        <source>logging statement uses string.format()</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="583"/>
+        <source>logging statement uses &apos;+&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="598"/>
+        <source>gettext import with alias _ found: {0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="505"/>
+        <source>Python does not support the unary prefix increment</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="515"/>
+        <source>&apos;sys.maxint&apos; is not defined in Python 3 - use &apos;sys.maxsize&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="518"/>
+        <source>&apos;BaseException.message&apos; has been deprecated as of Python 2.6 and is removed in Python 3 - use &apos;str(e)&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="522"/>
+        <source>assigning to &apos;os.environ&apos; does not clear the environment - use &apos;os.environ.clear()&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="530"/>
+        <source>Python 3 does not include &apos;.iter*&apos; methods on dictionaries</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="533"/>
+        <source>Python 3 does not include &apos;.view*&apos; methods on dictionaries</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="536"/>
+        <source>&apos;.next()&apos; does not exist in Python 3</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="539"/>
+        <source>&apos;__metaclass__&apos; does nothing on Python 3 - use &apos;class MyClass(BaseClass, metaclass=...)&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="613"/>
+        <source>mutable default argument of function call &apos;{0}&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="508"/>
+        <source>using .strip() with multi-character strings is misleading</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="511"/>
+        <source>using &apos;hasattr(x, &quot;__call__&quot;)&apos; to test if &apos;x&apos; is callable is unreliable</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="526"/>
+        <source>loop control variable {0} not used within the loop body - start the name with an underscore</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>MouseClickDialog</name>
@@ -48072,47 +48162,47 @@
 <context>
     <name>PluginInfoDialog</name>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="13"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="14"/>
         <source>Loaded Plugins</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="22"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="23"/>
         <source>Double-Click an entry to show detailed info. Plugins with an error are shown in red.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="32"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="33"/>
         <source>&lt;b&gt;Plugin List&lt;/b&gt;&lt;p&gt;This lists all loaded plugins. Double-clicking an entry shows more detailed information in a separate dialog.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="48"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="52"/>
         <source>Module</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="53"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="57"/>
         <source>Name</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="58"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="62"/>
         <source>Version</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="63"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="67"/>
         <source>Autoactivate</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="68"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="72"/>
         <source>Active</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="73"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="77"/>
         <source>Description</source>
         <translation type="unfinished"></translation>
     </message>
--- a/i18n/eric6_es.ts	Tue Mar 13 18:18:04 2018 +0100
+++ b/i18n/eric6_es.ts	Tue Mar 13 18:20:40 2018 +0100
@@ -3709,147 +3709,147 @@
 <context>
     <name>CodeStyleFixer</name>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="561"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="621"/>
         <source>Triple single quotes converted to triple double quotes.</source>
         <translation>Triple comilla simple convertida a triple comilla doble.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="564"/>
-        <source>Introductory quotes corrected to be {0}&quot;&quot;&quot;</source>
-        <translation>Comillas introductorias corregidas para ser {0}&quot;&quot;&quot;</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="567"/>
-        <source>Single line docstring put on one line.</source>
-        <translation>Docstrings de una sola línea puestos en una sola línea.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="570"/>
-        <source>Period added to summary line.</source>
-        <translation>Coma añadida a la línea de resumen.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="597"/>
-        <source>Blank line before function/method docstring removed.</source>
-        <translation>Línea en blanco antes de docstring de función/método eliminada.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="576"/>
-        <source>Blank line inserted before class docstring.</source>
-        <translation>Linea en blanco insertada delante de docstring de clase.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="579"/>
-        <source>Blank line inserted after class docstring.</source>
-        <translation>Linea en blanco insertada detrás de docstring.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="582"/>
-        <source>Blank line inserted after docstring summary.</source>
-        <translation>Linea en blanco insertada detrás de docstring de resumen.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="585"/>
-        <source>Blank line inserted after last paragraph of docstring.</source>
-        <translation>Linea en blanco insertada detrás de último párrafo de docstring.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="588"/>
-        <source>Leading quotes put on separate line.</source>
-        <translation>Comillas iniciales puestas en línea separada.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="591"/>
-        <source>Trailing quotes put on separate line.</source>
-        <translation>Comillas finales puestas en línea separada.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="594"/>
-        <source>Blank line before class docstring removed.</source>
-        <translation>Línea en blanco antes de docstring de clase eliminada.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="600"/>
-        <source>Blank line after class docstring removed.</source>
-        <translation>Línea en blanco detrás de docstring eliminada.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="603"/>
-        <source>Blank line after function/method docstring removed.</source>
-        <translation>Línea en blanco detrás de docstring de función/método eliminada.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="606"/>
-        <source>Blank line after last paragraph removed.</source>
-        <translation>Linea en blanco detrás de último párrafo eliminada.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="609"/>
-        <source>Tab converted to 4 spaces.</source>
-        <translation>Tabulador convertido a 4 espacios.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="612"/>
-        <source>Indentation adjusted to be a multiple of four.</source>
-        <translation>Indentación ajustada para ser un múltiplo de cuatro.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="615"/>
-        <source>Indentation of continuation line corrected.</source>
-        <translation>Indentación de línea de continuación corregida.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="618"/>
-        <source>Indentation of closing bracket corrected.</source>
-        <translation>Indentación de llave de cierre corregida.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="621"/>
-        <source>Missing indentation of continuation line corrected.</source>
-        <translation>Indentación inexistente en línea de continuación corregida.</translation>
-    </message>
-    <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="624"/>
-        <source>Closing bracket aligned to opening bracket.</source>
-        <translation>Llave de cierre alineada a llave de apertura.</translation>
+        <source>Introductory quotes corrected to be {0}&quot;&quot;&quot;</source>
+        <translation>Comillas introductorias corregidas para ser {0}&quot;&quot;&quot;</translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="627"/>
-        <source>Indentation level changed.</source>
-        <translation>Nivel de indentación corregida.</translation>
+        <source>Single line docstring put on one line.</source>
+        <translation>Docstrings de una sola línea puestos en una sola línea.</translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="630"/>
-        <source>Indentation level of hanging indentation changed.</source>
-        <translation>Nivel de indentación de indentación colgante corregida.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="633"/>
-        <source>Visual indentation corrected.</source>
-        <translation>Indentación visual corregida.</translation>
+        <source>Period added to summary line.</source>
+        <translation>Coma añadida a la línea de resumen.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="657"/>
+        <source>Blank line before function/method docstring removed.</source>
+        <translation>Línea en blanco antes de docstring de función/método eliminada.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="636"/>
+        <source>Blank line inserted before class docstring.</source>
+        <translation>Linea en blanco insertada delante de docstring de clase.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="639"/>
+        <source>Blank line inserted after class docstring.</source>
+        <translation>Linea en blanco insertada detrás de docstring.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="642"/>
+        <source>Blank line inserted after docstring summary.</source>
+        <translation>Linea en blanco insertada detrás de docstring de resumen.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="645"/>
+        <source>Blank line inserted after last paragraph of docstring.</source>
+        <translation>Linea en blanco insertada detrás de último párrafo de docstring.</translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="648"/>
-        <source>Extraneous whitespace removed.</source>
-        <translation>Eliminado espacio en blanco extraño.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="645"/>
-        <source>Missing whitespace added.</source>
-        <translation>Añadido espacio en blanco que faltaba.</translation>
+        <source>Leading quotes put on separate line.</source>
+        <translation>Comillas iniciales puestas en línea separada.</translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="651"/>
-        <source>Whitespace around comment sign corrected.</source>
-        <translation>Espacio en blanco alrededor de signo de comentario corregido.</translation>
+        <source>Trailing quotes put on separate line.</source>
+        <translation>Comillas finales puestas en línea separada.</translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="654"/>
+        <source>Blank line before class docstring removed.</source>
+        <translation>Línea en blanco antes de docstring de clase eliminada.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="660"/>
+        <source>Blank line after class docstring removed.</source>
+        <translation>Línea en blanco detrás de docstring eliminada.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="663"/>
+        <source>Blank line after function/method docstring removed.</source>
+        <translation>Línea en blanco detrás de docstring de función/método eliminada.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="666"/>
+        <source>Blank line after last paragraph removed.</source>
+        <translation>Linea en blanco detrás de último párrafo eliminada.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="669"/>
+        <source>Tab converted to 4 spaces.</source>
+        <translation>Tabulador convertido a 4 espacios.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="672"/>
+        <source>Indentation adjusted to be a multiple of four.</source>
+        <translation>Indentación ajustada para ser un múltiplo de cuatro.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="675"/>
+        <source>Indentation of continuation line corrected.</source>
+        <translation>Indentación de línea de continuación corregida.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="678"/>
+        <source>Indentation of closing bracket corrected.</source>
+        <translation>Indentación de llave de cierre corregida.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="681"/>
+        <source>Missing indentation of continuation line corrected.</source>
+        <translation>Indentación inexistente en línea de continuación corregida.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="684"/>
+        <source>Closing bracket aligned to opening bracket.</source>
+        <translation>Llave de cierre alineada a llave de apertura.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="687"/>
+        <source>Indentation level changed.</source>
+        <translation>Nivel de indentación corregida.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="690"/>
+        <source>Indentation level of hanging indentation changed.</source>
+        <translation>Nivel de indentación de indentación colgante corregida.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="693"/>
+        <source>Visual indentation corrected.</source>
+        <translation>Indentación visual corregida.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="708"/>
+        <source>Extraneous whitespace removed.</source>
+        <translation>Eliminado espacio en blanco extraño.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="705"/>
+        <source>Missing whitespace added.</source>
+        <translation>Añadido espacio en blanco que faltaba.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="711"/>
+        <source>Whitespace around comment sign corrected.</source>
+        <translation>Espacio en blanco alrededor de signo de comentario corregido.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="714"/>
         <source>One blank line inserted.</source>
         <translation>Insertada una línea en blanco.</translation>
     </message>
     <message numerus="yes">
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="658"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="718"/>
         <source>%n blank line(s) inserted.</source>
         <translation>
             <numerusform>Insertada %n línea en blanco.</numerusform>
@@ -3857,7 +3857,7 @@
         </translation>
     </message>
     <message numerus="yes">
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="661"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="721"/>
         <source>%n superfluous lines removed</source>
         <translation>
             <numerusform>Eliminada %n línea en blanco sobrante</numerusform>
@@ -3865,77 +3865,77 @@
         </translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="665"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="725"/>
         <source>Superfluous blank lines removed.</source>
         <translation>Eliminadas líneas en blanco sobrantes.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="668"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="728"/>
         <source>Superfluous blank lines after function decorator removed.</source>
         <translation>Eliminadas líneas en blanco sobrantes después de decorador de función.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="671"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="731"/>
         <source>Imports were put on separate lines.</source>
         <translation>Imports estaban puestos en líneas separadas.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="674"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="734"/>
         <source>Long lines have been shortened.</source>
         <translation>Líneas largas se han acortado.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="677"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="737"/>
         <source>Redundant backslash in brackets removed.</source>
         <translation>Backslash redundante en llaves eliminado.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="683"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="743"/>
         <source>Compound statement corrected.</source>
         <translation>Sentencia compuesta corregida.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="686"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="746"/>
         <source>Comparison to None/True/False corrected.</source>
         <translation>Comparación a None/True/False corregida.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="689"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="749"/>
         <source>&apos;{0}&apos; argument added.</source>
         <translation>Añadido el argumento &apos;{0}&apos;.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="692"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="752"/>
         <source>&apos;{0}&apos; argument removed.</source>
         <translation>Eliminado el argumento &apos;{0}&apos;.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="695"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="755"/>
         <source>Whitespace stripped from end of line.</source>
         <translation>Espacio eliminado del final de la línea.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="698"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="758"/>
         <source>newline added to end of file.</source>
         <translation>Carácter de nueva línea añadido al final del archivo.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="701"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="761"/>
         <source>Superfluous trailing blank lines removed from end of file.</source>
         <translation>Eliminadas líneas en blanco sobrantes de final de archivo.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="704"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="764"/>
         <source>&apos;&lt;&gt;&apos; replaced by &apos;!=&apos;.</source>
         <translation>&apos;&lt;&gt;&apos; reemplazado por &apos;!=&apos;.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="708"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="768"/>
         <source>Could not save the file! Skipping it. Reason: {0}</source>
         <translation>¡No se ha podido guardar el archivo! Va a ser omitido. Razón: {0}</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="789"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="852"/>
         <source> no message defined for code &apos;{0}&apos;</source>
         <translation> sin mensaje definido para el código &apos;{0}&apos;</translation>
     </message>
@@ -44712,82 +44712,82 @@
         <translation>la nota de copyright contiene un autor no válido</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="505"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="544"/>
         <source>found {0} formatter</source>
         <translation>encontrado formateador {0}</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="508"/>
-        <source>format string does contain unindexed parameters</source>
-        <translation>cadena de formato que contiene parámetros sin indexar</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="511"/>
-        <source>docstring does contain unindexed parameters</source>
-        <translation>docstring cque contiene parámetros sin indexar</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="514"/>
-        <source>other string does contain unindexed parameters</source>
-        <translation>otra cadena contiene parámetros sin indexar</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="517"/>
-        <source>format call uses too large index ({0})</source>
-        <translation>llamada de formato usa un índice demasiado largo ({0})</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="520"/>
-        <source>format call uses missing keyword ({0})</source>
-        <translation>llamada de formato usa una palabra clave desaparecida ({0})</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="523"/>
-        <source>format call uses keyword arguments but no named entries</source>
-        <translation>llamada de formato usa argumentos de palabra clave pero sin entradas con nombre</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="526"/>
-        <source>format call uses variable arguments but no numbered entries</source>
-        <translation>llamada de formato usa argumentos de variable pero sin entradas numeradas</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="529"/>
-        <source>format call uses implicit and explicit indexes together</source>
-        <translation>llamada de formato usa juntos índices implícitos y explícitos</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="532"/>
-        <source>format call provides unused index ({0})</source>
-        <translation>llamada de formato proporciona índice que no se usa ({0})</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="535"/>
-        <source>format call provides unused keyword ({0})</source>
-        <translation>llamada de formato proporciona palabra clave que no se usa ({0})</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="538"/>
-        <source>expected these __future__ imports: {0}; but only got: {1}</source>
-        <translation>se esperaban estos __future__ imports: {0} pero solamente hay: {1}</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="541"/>
-        <source>expected these __future__ imports: {0}; but got none</source>
-        <translation>se esperaban estos __future__ imports: {0}; but no hay ninguno</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="544"/>
-        <source>print statement found</source>
-        <translation>encontrada sentencia print</translation>
-    </message>
-    <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="547"/>
-        <source>one element tuple found</source>
-        <translation>tupla de un elemento encontrada</translation>
+        <source>format string does contain unindexed parameters</source>
+        <translation>cadena de formato que contiene parámetros sin indexar</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="550"/>
+        <source>docstring does contain unindexed parameters</source>
+        <translation>docstring cque contiene parámetros sin indexar</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="553"/>
+        <source>other string does contain unindexed parameters</source>
+        <translation>otra cadena contiene parámetros sin indexar</translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="556"/>
+        <source>format call uses too large index ({0})</source>
+        <translation>llamada de formato usa un índice demasiado largo ({0})</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="559"/>
+        <source>format call uses missing keyword ({0})</source>
+        <translation>llamada de formato usa una palabra clave desaparecida ({0})</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="562"/>
+        <source>format call uses keyword arguments but no named entries</source>
+        <translation>llamada de formato usa argumentos de palabra clave pero sin entradas con nombre</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="565"/>
+        <source>format call uses variable arguments but no numbered entries</source>
+        <translation>llamada de formato usa argumentos de variable pero sin entradas numeradas</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="568"/>
+        <source>format call uses implicit and explicit indexes together</source>
+        <translation>llamada de formato usa juntos índices implícitos y explícitos</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="571"/>
+        <source>format call provides unused index ({0})</source>
+        <translation>llamada de formato proporciona índice que no se usa ({0})</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="574"/>
+        <source>format call provides unused keyword ({0})</source>
+        <translation>llamada de formato proporciona palabra clave que no se usa ({0})</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="592"/>
+        <source>expected these __future__ imports: {0}; but only got: {1}</source>
+        <translation>se esperaban estos __future__ imports: {0} pero solamente hay: {1}</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="595"/>
+        <source>expected these __future__ imports: {0}; but got none</source>
+        <translation>se esperaban estos __future__ imports: {0}; but no hay ninguno</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="601"/>
+        <source>print statement found</source>
+        <translation>encontrada sentencia print</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="604"/>
+        <source>one element tuple found</source>
+        <translation>tupla de un elemento encontrada</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="616"/>
         <source>{0}: {1}</source>
         <translation>{0}: {1}</translation>
     </message>
@@ -44842,7 +44842,7 @@
         <translation>lista de comprehensión innecesaria - &quot;{0}&quot; puede aceptar un generador</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="553"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="610"/>
         <source>mutable default argument of type {0}</source>
         <translation>argumento por defecto mutable de tipo {0}</translation>
     </message>
@@ -44851,6 +44851,96 @@
         <source>sort keys - &apos;{0}&apos; should be before &apos;{1}&apos;</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="580"/>
+        <source>logging statement uses &apos;%&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="586"/>
+        <source>logging statement uses f-string</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="589"/>
+        <source>logging statement uses &apos;warn&apos; instead of &apos;warning&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="577"/>
+        <source>logging statement uses string.format()</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="583"/>
+        <source>logging statement uses &apos;+&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="598"/>
+        <source>gettext import with alias _ found: {0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="505"/>
+        <source>Python does not support the unary prefix increment</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="515"/>
+        <source>&apos;sys.maxint&apos; is not defined in Python 3 - use &apos;sys.maxsize&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="518"/>
+        <source>&apos;BaseException.message&apos; has been deprecated as of Python 2.6 and is removed in Python 3 - use &apos;str(e)&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="522"/>
+        <source>assigning to &apos;os.environ&apos; does not clear the environment - use &apos;os.environ.clear()&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="530"/>
+        <source>Python 3 does not include &apos;.iter*&apos; methods on dictionaries</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="533"/>
+        <source>Python 3 does not include &apos;.view*&apos; methods on dictionaries</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="536"/>
+        <source>&apos;.next()&apos; does not exist in Python 3</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="539"/>
+        <source>&apos;__metaclass__&apos; does nothing on Python 3 - use &apos;class MyClass(BaseClass, metaclass=...)&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="613"/>
+        <source>mutable default argument of function call &apos;{0}&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="508"/>
+        <source>using .strip() with multi-character strings is misleading</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="511"/>
+        <source>using &apos;hasattr(x, &quot;__call__&quot;)&apos; to test if &apos;x&apos; is callable is unreliable</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="526"/>
+        <source>loop control variable {0} not used within the loop body - start the name with an underscore</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>MouseClickDialog</name>
@@ -48273,42 +48363,42 @@
 <context>
     <name>PluginInfoDialog</name>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="13"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="14"/>
         <source>Loaded Plugins</source>
         <translation>Plugins Cargados</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="22"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="23"/>
         <source>Double-Click an entry to show detailed info. Plugins with an error are shown in red.</source>
         <translation>Haga doble click sobre una entrada para mostrar información detallada. Los plugins con un errores se muestran en rojo.</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="32"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="33"/>
         <source>&lt;b&gt;Plugin List&lt;/b&gt;&lt;p&gt;This lists all loaded plugins. Double-clicking an entry shows more detailed information in a separate dialog.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Lista de Plugins&lt;/b&gt;&lt;p&gt;Muestra todos los plugins cargados. Un doble click en una entrada muestra más información en un diálogo aparte.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="48"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="52"/>
         <source>Module</source>
         <translation>Módulo</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="53"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="57"/>
         <source>Name</source>
         <translation>Nombre</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="63"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="67"/>
         <source>Autoactivate</source>
         <translation>Autoactivar</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="68"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="72"/>
         <source>Active</source>
         <translation>Activo</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="73"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="77"/>
         <source>Description</source>
         <translation>Descripción</translation>
     </message>
@@ -48338,7 +48428,7 @@
         <translation>No</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="58"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="62"/>
         <source>Version</source>
         <translation>Versión</translation>
     </message>
--- a/i18n/eric6_fr.ts	Tue Mar 13 18:18:04 2018 +0100
+++ b/i18n/eric6_fr.ts	Tue Mar 13 18:20:40 2018 +0100
@@ -3824,147 +3824,147 @@
 <context>
     <name>CodeStyleFixer</name>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="561"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="621"/>
         <source>Triple single quotes converted to triple double quotes.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="564"/>
-        <source>Introductory quotes corrected to be {0}&quot;&quot;&quot;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="567"/>
-        <source>Single line docstring put on one line.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="570"/>
-        <source>Period added to summary line.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="597"/>
-        <source>Blank line before function/method docstring removed.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="576"/>
-        <source>Blank line inserted before class docstring.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="579"/>
-        <source>Blank line inserted after class docstring.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="582"/>
-        <source>Blank line inserted after docstring summary.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="585"/>
-        <source>Blank line inserted after last paragraph of docstring.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="588"/>
-        <source>Leading quotes put on separate line.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="591"/>
-        <source>Trailing quotes put on separate line.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="594"/>
-        <source>Blank line before class docstring removed.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="600"/>
-        <source>Blank line after class docstring removed.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="603"/>
-        <source>Blank line after function/method docstring removed.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="606"/>
-        <source>Blank line after last paragraph removed.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="609"/>
-        <source>Tab converted to 4 spaces.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="612"/>
-        <source>Indentation adjusted to be a multiple of four.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="615"/>
-        <source>Indentation of continuation line corrected.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="618"/>
-        <source>Indentation of closing bracket corrected.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="621"/>
-        <source>Missing indentation of continuation line corrected.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="624"/>
-        <source>Closing bracket aligned to opening bracket.</source>
+        <source>Introductory quotes corrected to be {0}&quot;&quot;&quot;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="627"/>
-        <source>Indentation level changed.</source>
+        <source>Single line docstring put on one line.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="630"/>
-        <source>Indentation level of hanging indentation changed.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="633"/>
-        <source>Visual indentation corrected.</source>
+        <source>Period added to summary line.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="657"/>
+        <source>Blank line before function/method docstring removed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="636"/>
+        <source>Blank line inserted before class docstring.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="639"/>
+        <source>Blank line inserted after class docstring.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="642"/>
+        <source>Blank line inserted after docstring summary.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="645"/>
+        <source>Blank line inserted after last paragraph of docstring.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="648"/>
-        <source>Extraneous whitespace removed.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="645"/>
-        <source>Missing whitespace added.</source>
+        <source>Leading quotes put on separate line.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="651"/>
-        <source>Whitespace around comment sign corrected.</source>
+        <source>Trailing quotes put on separate line.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="654"/>
+        <source>Blank line before class docstring removed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="660"/>
+        <source>Blank line after class docstring removed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="663"/>
+        <source>Blank line after function/method docstring removed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="666"/>
+        <source>Blank line after last paragraph removed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="669"/>
+        <source>Tab converted to 4 spaces.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="672"/>
+        <source>Indentation adjusted to be a multiple of four.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="675"/>
+        <source>Indentation of continuation line corrected.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="678"/>
+        <source>Indentation of closing bracket corrected.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="681"/>
+        <source>Missing indentation of continuation line corrected.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="684"/>
+        <source>Closing bracket aligned to opening bracket.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="687"/>
+        <source>Indentation level changed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="690"/>
+        <source>Indentation level of hanging indentation changed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="693"/>
+        <source>Visual indentation corrected.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="708"/>
+        <source>Extraneous whitespace removed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="705"/>
+        <source>Missing whitespace added.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="711"/>
+        <source>Whitespace around comment sign corrected.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="714"/>
         <source>One blank line inserted.</source>
         <translation type="unfinished"></translation>
     </message>
     <message numerus="yes">
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="658"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="718"/>
         <source>%n blank line(s) inserted.</source>
         <translation type="unfinished">
             <numerusform></numerusform>
@@ -3972,7 +3972,7 @@
         </translation>
     </message>
     <message numerus="yes">
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="661"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="721"/>
         <source>%n superfluous lines removed</source>
         <translation type="unfinished">
             <numerusform></numerusform>
@@ -3980,77 +3980,77 @@
         </translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="665"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="725"/>
         <source>Superfluous blank lines removed.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="668"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="728"/>
         <source>Superfluous blank lines after function decorator removed.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="671"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="731"/>
         <source>Imports were put on separate lines.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="674"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="734"/>
         <source>Long lines have been shortened.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="677"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="737"/>
         <source>Redundant backslash in brackets removed.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="683"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="743"/>
         <source>Compound statement corrected.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="686"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="746"/>
         <source>Comparison to None/True/False corrected.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="689"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="749"/>
         <source>&apos;{0}&apos; argument added.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="692"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="752"/>
         <source>&apos;{0}&apos; argument removed.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="695"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="755"/>
         <source>Whitespace stripped from end of line.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="698"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="758"/>
         <source>newline added to end of file.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="701"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="761"/>
         <source>Superfluous trailing blank lines removed from end of file.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="704"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="764"/>
         <source>&apos;&lt;&gt;&apos; replaced by &apos;!=&apos;.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="708"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="768"/>
         <source>Could not save the file! Skipping it. Reason: {0}</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="789"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="852"/>
         <source> no message defined for code &apos;{0}&apos;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -45424,82 +45424,82 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="505"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="544"/>
         <source>found {0} formatter</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="508"/>
-        <source>format string does contain unindexed parameters</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="511"/>
-        <source>docstring does contain unindexed parameters</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="514"/>
-        <source>other string does contain unindexed parameters</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="517"/>
-        <source>format call uses too large index ({0})</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="520"/>
-        <source>format call uses missing keyword ({0})</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="523"/>
-        <source>format call uses keyword arguments but no named entries</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="526"/>
-        <source>format call uses variable arguments but no numbered entries</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="529"/>
-        <source>format call uses implicit and explicit indexes together</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="532"/>
-        <source>format call provides unused index ({0})</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="535"/>
-        <source>format call provides unused keyword ({0})</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="538"/>
-        <source>expected these __future__ imports: {0}; but only got: {1}</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="541"/>
-        <source>expected these __future__ imports: {0}; but got none</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="544"/>
-        <source>print statement found</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="547"/>
-        <source>one element tuple found</source>
+        <source>format string does contain unindexed parameters</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="550"/>
+        <source>docstring does contain unindexed parameters</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="553"/>
+        <source>other string does contain unindexed parameters</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="556"/>
+        <source>format call uses too large index ({0})</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="559"/>
+        <source>format call uses missing keyword ({0})</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="562"/>
+        <source>format call uses keyword arguments but no named entries</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="565"/>
+        <source>format call uses variable arguments but no numbered entries</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="568"/>
+        <source>format call uses implicit and explicit indexes together</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="571"/>
+        <source>format call provides unused index ({0})</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="574"/>
+        <source>format call provides unused keyword ({0})</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="592"/>
+        <source>expected these __future__ imports: {0}; but only got: {1}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="595"/>
+        <source>expected these __future__ imports: {0}; but got none</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="601"/>
+        <source>print statement found</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="604"/>
+        <source>one element tuple found</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="616"/>
         <source>{0}: {1}</source>
         <translation type="unfinished"></translation>
     </message>
@@ -45554,7 +45554,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="553"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="610"/>
         <source>mutable default argument of type {0}</source>
         <translation type="unfinished"></translation>
     </message>
@@ -45563,6 +45563,96 @@
         <source>sort keys - &apos;{0}&apos; should be before &apos;{1}&apos;</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="580"/>
+        <source>logging statement uses &apos;%&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="586"/>
+        <source>logging statement uses f-string</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="589"/>
+        <source>logging statement uses &apos;warn&apos; instead of &apos;warning&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="577"/>
+        <source>logging statement uses string.format()</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="583"/>
+        <source>logging statement uses &apos;+&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="598"/>
+        <source>gettext import with alias _ found: {0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="505"/>
+        <source>Python does not support the unary prefix increment</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="515"/>
+        <source>&apos;sys.maxint&apos; is not defined in Python 3 - use &apos;sys.maxsize&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="518"/>
+        <source>&apos;BaseException.message&apos; has been deprecated as of Python 2.6 and is removed in Python 3 - use &apos;str(e)&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="522"/>
+        <source>assigning to &apos;os.environ&apos; does not clear the environment - use &apos;os.environ.clear()&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="530"/>
+        <source>Python 3 does not include &apos;.iter*&apos; methods on dictionaries</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="533"/>
+        <source>Python 3 does not include &apos;.view*&apos; methods on dictionaries</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="536"/>
+        <source>&apos;.next()&apos; does not exist in Python 3</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="539"/>
+        <source>&apos;__metaclass__&apos; does nothing on Python 3 - use &apos;class MyClass(BaseClass, metaclass=...)&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="613"/>
+        <source>mutable default argument of function call &apos;{0}&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="508"/>
+        <source>using .strip() with multi-character strings is misleading</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="511"/>
+        <source>using &apos;hasattr(x, &quot;__call__&quot;)&apos; to test if &apos;x&apos; is callable is unreliable</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="526"/>
+        <source>loop control variable {0} not used within the loop body - start the name with an underscore</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>MouseClickDialog</name>
@@ -49002,17 +49092,17 @@
 <context>
     <name>PluginInfoDialog</name>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="48"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="52"/>
         <source>Module</source>
         <translation>Module</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="53"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="57"/>
         <source>Name</source>
         <translation>Nom</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="73"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="77"/>
         <source>Description</source>
         <translation>Description</translation>
     </message>
@@ -49027,27 +49117,27 @@
         <translation>Non</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="13"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="14"/>
         <source>Loaded Plugins</source>
         <translation>Plugins chargés</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="22"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="23"/>
         <source>Double-Click an entry to show detailed info. Plugins with an error are shown in red.</source>
         <translation>Double-cliquer sur une entrée pour afficher les informations détaillées. Les plugins ayant des erreurs sont affichés en rouge.</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="32"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="33"/>
         <source>&lt;b&gt;Plugin List&lt;/b&gt;&lt;p&gt;This lists all loaded plugins. Double-clicking an entry shows more detailed information in a separate dialog.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Liste des plugins&lt;/b&gt;&lt;p&gt;Cette liste affiche tous les plugins chargés. Un double-click sur une entrée affiche des informations détaillées dans une fenêtre séparée.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="63"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="67"/>
         <source>Autoactivate</source>
         <translation>Activation automatique</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="68"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="72"/>
         <source>Active</source>
         <translation>Actif</translation>
     </message>
@@ -49067,7 +49157,7 @@
         <translation>Désactiver</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="58"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="62"/>
         <source>Version</source>
         <translation>Version</translation>
     </message>
--- a/i18n/eric6_it.ts	Tue Mar 13 18:18:04 2018 +0100
+++ b/i18n/eric6_it.ts	Tue Mar 13 18:20:40 2018 +0100
@@ -3741,147 +3741,147 @@
 <context>
     <name>CodeStyleFixer</name>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="561"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="621"/>
         <source>Triple single quotes converted to triple double quotes.</source>
         <translation>Triple virgolette singole convertite in triple virgolette doppie.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="564"/>
-        <source>Introductory quotes corrected to be {0}&quot;&quot;&quot;</source>
-        <translation>Virgolette introduttive corrette in {0}&quot;&quot;&quot;</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="567"/>
-        <source>Single line docstring put on one line.</source>
-        <translation>Singole righe documentazione raggruppate su una sola.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="570"/>
-        <source>Period added to summary line.</source>
-        <translation>Aggiunto punto alla riga sommario.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="597"/>
-        <source>Blank line before function/method docstring removed.</source>
-        <translation>Riga vuota prima della stringa di documentazione funzione/metodo rimossa.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="576"/>
-        <source>Blank line inserted before class docstring.</source>
-        <translation>Riga vuota inserita prima della stringa di documentazione della classe.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="579"/>
-        <source>Blank line inserted after class docstring.</source>
-        <translation>Linea vuota inserita dopo la stringa di documentazione della classe.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="582"/>
-        <source>Blank line inserted after docstring summary.</source>
-        <translation>Linea vuota inserita dopo la stringa di documentazione del sommario.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="585"/>
-        <source>Blank line inserted after last paragraph of docstring.</source>
-        <translation>Linea vuota inserita dopo l&apos;ultimo paragrafo della stringa di documentazione.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="588"/>
-        <source>Leading quotes put on separate line.</source>
-        <translation>Le virgolette di testa messe su una riga separata.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="591"/>
-        <source>Trailing quotes put on separate line.</source>
-        <translation>Le virgolette di coda messe su una riga separata.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="594"/>
-        <source>Blank line before class docstring removed.</source>
-        <translation>Rimossa riga vuota prima della stringa di documentazione.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="600"/>
-        <source>Blank line after class docstring removed.</source>
-        <translation>Rimossa riga vuota dopo della stringa di documentazione.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="603"/>
-        <source>Blank line after function/method docstring removed.</source>
-        <translation>Riga vuota dopo la stringa di documentazione funzione/metodo rimossa.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="606"/>
-        <source>Blank line after last paragraph removed.</source>
-        <translation>Rimossa riga vuota dopo l&apos;ultimo paragrafo.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="609"/>
-        <source>Tab converted to 4 spaces.</source>
-        <translation>Convertita Tabulazione in 4 spazi.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="612"/>
-        <source>Indentation adjusted to be a multiple of four.</source>
-        <translation>Identazione portata ad un multiplo di quattro.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="615"/>
-        <source>Indentation of continuation line corrected.</source>
-        <translation>Identazione di continuazione riga corretta.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="618"/>
-        <source>Indentation of closing bracket corrected.</source>
-        <translation>Identazione di parentesi chiusa corretta.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="621"/>
-        <source>Missing indentation of continuation line corrected.</source>
-        <translation>Corretta la mancanza di indentazione della continuazione riga.</translation>
-    </message>
-    <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="624"/>
-        <source>Closing bracket aligned to opening bracket.</source>
-        <translation>Parentesi chiusa allineata con quella d&apos;apertura.</translation>
+        <source>Introductory quotes corrected to be {0}&quot;&quot;&quot;</source>
+        <translation>Virgolette introduttive corrette in {0}&quot;&quot;&quot;</translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="627"/>
-        <source>Indentation level changed.</source>
-        <translation>Livello di indentazione modificato.</translation>
+        <source>Single line docstring put on one line.</source>
+        <translation>Singole righe documentazione raggruppate su una sola.</translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="630"/>
-        <source>Indentation level of hanging indentation changed.</source>
-        <translation>Modificato il livello di indentazione dell&apos;indentazione pendente.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="633"/>
-        <source>Visual indentation corrected.</source>
-        <translation></translation>
+        <source>Period added to summary line.</source>
+        <translation>Aggiunto punto alla riga sommario.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="657"/>
+        <source>Blank line before function/method docstring removed.</source>
+        <translation>Riga vuota prima della stringa di documentazione funzione/metodo rimossa.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="636"/>
+        <source>Blank line inserted before class docstring.</source>
+        <translation>Riga vuota inserita prima della stringa di documentazione della classe.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="639"/>
+        <source>Blank line inserted after class docstring.</source>
+        <translation>Linea vuota inserita dopo la stringa di documentazione della classe.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="642"/>
+        <source>Blank line inserted after docstring summary.</source>
+        <translation>Linea vuota inserita dopo la stringa di documentazione del sommario.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="645"/>
+        <source>Blank line inserted after last paragraph of docstring.</source>
+        <translation>Linea vuota inserita dopo l&apos;ultimo paragrafo della stringa di documentazione.</translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="648"/>
-        <source>Extraneous whitespace removed.</source>
-        <translation>Spazio non pertinente eliminato.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="645"/>
-        <source>Missing whitespace added.</source>
-        <translation>Spazi mancanti aggiunti.</translation>
+        <source>Leading quotes put on separate line.</source>
+        <translation>Le virgolette di testa messe su una riga separata.</translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="651"/>
-        <source>Whitespace around comment sign corrected.</source>
-        <translation>Corretto spazio vicino al segno di commento.</translation>
+        <source>Trailing quotes put on separate line.</source>
+        <translation>Le virgolette di coda messe su una riga separata.</translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="654"/>
+        <source>Blank line before class docstring removed.</source>
+        <translation>Rimossa riga vuota prima della stringa di documentazione.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="660"/>
+        <source>Blank line after class docstring removed.</source>
+        <translation>Rimossa riga vuota dopo della stringa di documentazione.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="663"/>
+        <source>Blank line after function/method docstring removed.</source>
+        <translation>Riga vuota dopo la stringa di documentazione funzione/metodo rimossa.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="666"/>
+        <source>Blank line after last paragraph removed.</source>
+        <translation>Rimossa riga vuota dopo l&apos;ultimo paragrafo.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="669"/>
+        <source>Tab converted to 4 spaces.</source>
+        <translation>Convertita Tabulazione in 4 spazi.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="672"/>
+        <source>Indentation adjusted to be a multiple of four.</source>
+        <translation>Identazione portata ad un multiplo di quattro.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="675"/>
+        <source>Indentation of continuation line corrected.</source>
+        <translation>Identazione di continuazione riga corretta.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="678"/>
+        <source>Indentation of closing bracket corrected.</source>
+        <translation>Identazione di parentesi chiusa corretta.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="681"/>
+        <source>Missing indentation of continuation line corrected.</source>
+        <translation>Corretta la mancanza di indentazione della continuazione riga.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="684"/>
+        <source>Closing bracket aligned to opening bracket.</source>
+        <translation>Parentesi chiusa allineata con quella d&apos;apertura.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="687"/>
+        <source>Indentation level changed.</source>
+        <translation>Livello di indentazione modificato.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="690"/>
+        <source>Indentation level of hanging indentation changed.</source>
+        <translation>Modificato il livello di indentazione dell&apos;indentazione pendente.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="693"/>
+        <source>Visual indentation corrected.</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="708"/>
+        <source>Extraneous whitespace removed.</source>
+        <translation>Spazio non pertinente eliminato.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="705"/>
+        <source>Missing whitespace added.</source>
+        <translation>Spazi mancanti aggiunti.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="711"/>
+        <source>Whitespace around comment sign corrected.</source>
+        <translation>Corretto spazio vicino al segno di commento.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="714"/>
         <source>One blank line inserted.</source>
         <translation>Inserita una riga vuota.</translation>
     </message>
     <message numerus="yes">
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="658"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="718"/>
         <source>%n blank line(s) inserted.</source>
         <translation type="unfinished">
             <numerusform>%n riga vuota inserita.</numerusform>
@@ -3889,7 +3889,7 @@
         </translation>
     </message>
     <message numerus="yes">
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="661"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="721"/>
         <source>%n superfluous lines removed</source>
         <translation type="unfinished">
             <numerusform>%n riga superflua eliminata</numerusform>
@@ -3897,77 +3897,77 @@
         </translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="665"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="725"/>
         <source>Superfluous blank lines removed.</source>
         <translation>Righe vuote superflue eliminate.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="668"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="728"/>
         <source>Superfluous blank lines after function decorator removed.</source>
         <translation>Righe vuote superflue eliminate dopo a dichiarazione della funzione.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="671"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="731"/>
         <source>Imports were put on separate lines.</source>
         <translation>Import messi su righe separate.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="674"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="734"/>
         <source>Long lines have been shortened.</source>
         <translation>Accorciate righe lughe.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="677"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="737"/>
         <source>Redundant backslash in brackets removed.</source>
         <translation>Rimossi barre rovesciate ridondanti.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="683"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="743"/>
         <source>Compound statement corrected.</source>
         <translation>Corretta istruzione composta.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="686"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="746"/>
         <source>Comparison to None/True/False corrected.</source>
         <translation>Corretta comparazione con None/True/False.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="689"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="749"/>
         <source>&apos;{0}&apos; argument added.</source>
         <translation>&apos;{0}&apos; argumento aggiunto.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="692"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="752"/>
         <source>&apos;{0}&apos; argument removed.</source>
         <translation>&apos;{0}&apos; argumento rimosso.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="695"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="755"/>
         <source>Whitespace stripped from end of line.</source>
         <translation>Eliminati gli spazi alla fine della linea.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="698"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="758"/>
         <source>newline added to end of file.</source>
         <translation>Aggiunta una nuova riga alla fine del file.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="701"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="761"/>
         <source>Superfluous trailing blank lines removed from end of file.</source>
         <translation>Rghe vuote superflue eliminate dalla fine del file.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="704"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="764"/>
         <source>&apos;&lt;&gt;&apos; replaced by &apos;!=&apos;.</source>
         <translation>&apos;&lt;&gt;&apos; sostituito da &apos;!=&apos;.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="708"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="768"/>
         <source>Could not save the file! Skipping it. Reason: {0}</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="789"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="852"/>
         <source> no message defined for code &apos;{0}&apos;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -44685,82 +44685,82 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="505"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="544"/>
         <source>found {0} formatter</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="508"/>
-        <source>format string does contain unindexed parameters</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="511"/>
-        <source>docstring does contain unindexed parameters</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="514"/>
-        <source>other string does contain unindexed parameters</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="517"/>
-        <source>format call uses too large index ({0})</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="520"/>
-        <source>format call uses missing keyword ({0})</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="523"/>
-        <source>format call uses keyword arguments but no named entries</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="526"/>
-        <source>format call uses variable arguments but no numbered entries</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="529"/>
-        <source>format call uses implicit and explicit indexes together</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="532"/>
-        <source>format call provides unused index ({0})</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="535"/>
-        <source>format call provides unused keyword ({0})</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="538"/>
-        <source>expected these __future__ imports: {0}; but only got: {1}</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="541"/>
-        <source>expected these __future__ imports: {0}; but got none</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="544"/>
-        <source>print statement found</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="547"/>
-        <source>one element tuple found</source>
+        <source>format string does contain unindexed parameters</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="550"/>
+        <source>docstring does contain unindexed parameters</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="553"/>
+        <source>other string does contain unindexed parameters</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="556"/>
+        <source>format call uses too large index ({0})</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="559"/>
+        <source>format call uses missing keyword ({0})</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="562"/>
+        <source>format call uses keyword arguments but no named entries</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="565"/>
+        <source>format call uses variable arguments but no numbered entries</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="568"/>
+        <source>format call uses implicit and explicit indexes together</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="571"/>
+        <source>format call provides unused index ({0})</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="574"/>
+        <source>format call provides unused keyword ({0})</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="592"/>
+        <source>expected these __future__ imports: {0}; but only got: {1}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="595"/>
+        <source>expected these __future__ imports: {0}; but got none</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="601"/>
+        <source>print statement found</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="604"/>
+        <source>one element tuple found</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="616"/>
         <source>{0}: {1}</source>
         <translation type="unfinished">{0}: {1}</translation>
     </message>
@@ -44815,7 +44815,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="553"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="610"/>
         <source>mutable default argument of type {0}</source>
         <translation type="unfinished"></translation>
     </message>
@@ -44824,6 +44824,96 @@
         <source>sort keys - &apos;{0}&apos; should be before &apos;{1}&apos;</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="580"/>
+        <source>logging statement uses &apos;%&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="586"/>
+        <source>logging statement uses f-string</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="589"/>
+        <source>logging statement uses &apos;warn&apos; instead of &apos;warning&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="577"/>
+        <source>logging statement uses string.format()</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="583"/>
+        <source>logging statement uses &apos;+&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="598"/>
+        <source>gettext import with alias _ found: {0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="505"/>
+        <source>Python does not support the unary prefix increment</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="515"/>
+        <source>&apos;sys.maxint&apos; is not defined in Python 3 - use &apos;sys.maxsize&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="518"/>
+        <source>&apos;BaseException.message&apos; has been deprecated as of Python 2.6 and is removed in Python 3 - use &apos;str(e)&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="522"/>
+        <source>assigning to &apos;os.environ&apos; does not clear the environment - use &apos;os.environ.clear()&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="530"/>
+        <source>Python 3 does not include &apos;.iter*&apos; methods on dictionaries</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="533"/>
+        <source>Python 3 does not include &apos;.view*&apos; methods on dictionaries</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="536"/>
+        <source>&apos;.next()&apos; does not exist in Python 3</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="539"/>
+        <source>&apos;__metaclass__&apos; does nothing on Python 3 - use &apos;class MyClass(BaseClass, metaclass=...)&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="613"/>
+        <source>mutable default argument of function call &apos;{0}&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="508"/>
+        <source>using .strip() with multi-character strings is misleading</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="511"/>
+        <source>using &apos;hasattr(x, &quot;__call__&quot;)&apos; to test if &apos;x&apos; is callable is unreliable</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="526"/>
+        <source>loop control variable {0} not used within the loop body - start the name with an underscore</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>MouseClickDialog</name>
@@ -48245,17 +48335,17 @@
 <context>
     <name>PluginInfoDialog</name>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="48"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="52"/>
         <source>Module</source>
         <translation>Modulo</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="53"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="57"/>
         <source>Name</source>
         <translation>Nome</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="73"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="77"/>
         <source>Description</source>
         <translation>Descrizione</translation>
     </message>
@@ -48270,27 +48360,27 @@
         <translation>No</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="13"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="14"/>
         <source>Loaded Plugins</source>
         <translation>Plugin caricati</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="22"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="23"/>
         <source>Double-Click an entry to show detailed info. Plugins with an error are shown in red.</source>
         <translation>Doppio click su un elemento per vedere informazioni dettagliate. I Plugin con errori sono mostrati in rosso.</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="32"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="33"/>
         <source>&lt;b&gt;Plugin List&lt;/b&gt;&lt;p&gt;This lists all loaded plugins. Double-clicking an entry shows more detailed information in a separate dialog.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Lista dei Plugin&lt;/b&gt;&lt;p&gt;Lista dei plugin caricati. Doppio click su un elemento per vedere informazioni dettagliate in un dialogo&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="63"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="67"/>
         <source>Autoactivate</source>
         <translation>Autoattiva</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="68"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="72"/>
         <source>Active</source>
         <translation>Attivo</translation>
     </message>
@@ -48310,7 +48400,7 @@
         <translation>Disattivare</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="58"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="62"/>
         <source>Version</source>
         <translation>Versione</translation>
     </message>
--- a/i18n/eric6_pt.ts	Tue Mar 13 18:18:04 2018 +0100
+++ b/i18n/eric6_pt.ts	Tue Mar 13 18:20:40 2018 +0100
@@ -3873,147 +3873,147 @@
 <context>
     <name>CodeStyleFixer</name>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="561"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="621"/>
         <source>Triple single quotes converted to triple double quotes.</source>
         <translation>Três aspas simples convertidas a três aspas duplas.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="564"/>
-        <source>Introductory quotes corrected to be {0}&quot;&quot;&quot;</source>
-        <translation>Corrigidas as aspas introdutórias para ser {0}&quot;&quot;&quot;</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="567"/>
-        <source>Single line docstring put on one line.</source>
-        <translation>Docstring de linha única posta numa linha.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="570"/>
-        <source>Period added to summary line.</source>
-        <translation>Ponto adicionado à linha sumário.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="597"/>
-        <source>Blank line before function/method docstring removed.</source>
-        <translation>Retirada a linha vazia antes da docstring de função/método.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="576"/>
-        <source>Blank line inserted before class docstring.</source>
-        <translation>Linha branca inserida antes da docstring de classe.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="579"/>
-        <source>Blank line inserted after class docstring.</source>
-        <translation>Inserida linha vazia depois da docstring de classe.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="582"/>
-        <source>Blank line inserted after docstring summary.</source>
-        <translation>Inserida linha vazia depois da docstring de sumário.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="585"/>
-        <source>Blank line inserted after last paragraph of docstring.</source>
-        <translation>Inserida linha vazia depois do último parágrafo da docstring.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="588"/>
-        <source>Leading quotes put on separate line.</source>
-        <translation>Aspas iniciais postas numa linha separada.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="591"/>
-        <source>Trailing quotes put on separate line.</source>
-        <translation>Aspas finais postas numa linha separada.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="594"/>
-        <source>Blank line before class docstring removed.</source>
-        <translation>Retirada linha vazia antes da docstring de classe.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="600"/>
-        <source>Blank line after class docstring removed.</source>
-        <translation>Retirada linha vazia depois da docstring de classe.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="603"/>
-        <source>Blank line after function/method docstring removed.</source>
-        <translation>Retirada a linha vazia depois da docstring de função/método.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="606"/>
-        <source>Blank line after last paragraph removed.</source>
-        <translation>Retirada linha vazia depois do último parágrafo.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="609"/>
-        <source>Tab converted to 4 spaces.</source>
-        <translation>Tabulação convertida a 4 espaços.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="612"/>
-        <source>Indentation adjusted to be a multiple of four.</source>
-        <translation>Ajustada a indentação a múltiplos de quatro.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="615"/>
-        <source>Indentation of continuation line corrected.</source>
-        <translation>Corrigida a indentação da linha de continuação.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="618"/>
-        <source>Indentation of closing bracket corrected.</source>
-        <translation>Corrigida a indentação de parêntesis de fecho.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="621"/>
-        <source>Missing indentation of continuation line corrected.</source>
-        <translation>Corrigida falta de indentação na linha de continuação.</translation>
-    </message>
-    <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="624"/>
-        <source>Closing bracket aligned to opening bracket.</source>
-        <translation>Parêntesis de fecho alinhado com parêntesis de abertura.</translation>
+        <source>Introductory quotes corrected to be {0}&quot;&quot;&quot;</source>
+        <translation>Corrigidas as aspas introdutórias para ser {0}&quot;&quot;&quot;</translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="627"/>
-        <source>Indentation level changed.</source>
-        <translation>Alterado o nível da indentação.</translation>
+        <source>Single line docstring put on one line.</source>
+        <translation>Docstring de linha única posta numa linha.</translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="630"/>
-        <source>Indentation level of hanging indentation changed.</source>
-        <translation>Alterado o nível da indentação pendente.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="633"/>
-        <source>Visual indentation corrected.</source>
-        <translation>Indentação visual corrigida.</translation>
+        <source>Period added to summary line.</source>
+        <translation>Ponto adicionado à linha sumário.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="657"/>
+        <source>Blank line before function/method docstring removed.</source>
+        <translation>Retirada a linha vazia antes da docstring de função/método.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="636"/>
+        <source>Blank line inserted before class docstring.</source>
+        <translation>Linha branca inserida antes da docstring de classe.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="639"/>
+        <source>Blank line inserted after class docstring.</source>
+        <translation>Inserida linha vazia depois da docstring de classe.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="642"/>
+        <source>Blank line inserted after docstring summary.</source>
+        <translation>Inserida linha vazia depois da docstring de sumário.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="645"/>
+        <source>Blank line inserted after last paragraph of docstring.</source>
+        <translation>Inserida linha vazia depois do último parágrafo da docstring.</translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="648"/>
-        <source>Extraneous whitespace removed.</source>
-        <translation>Espaço estranho retirado.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="645"/>
-        <source>Missing whitespace added.</source>
-        <translation>Adicionado espaço branco em falta.</translation>
+        <source>Leading quotes put on separate line.</source>
+        <translation>Aspas iniciais postas numa linha separada.</translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="651"/>
-        <source>Whitespace around comment sign corrected.</source>
-        <translation>Corrigido espaço em volta do símbolo de comentário.</translation>
+        <source>Trailing quotes put on separate line.</source>
+        <translation>Aspas finais postas numa linha separada.</translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="654"/>
+        <source>Blank line before class docstring removed.</source>
+        <translation>Retirada linha vazia antes da docstring de classe.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="660"/>
+        <source>Blank line after class docstring removed.</source>
+        <translation>Retirada linha vazia depois da docstring de classe.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="663"/>
+        <source>Blank line after function/method docstring removed.</source>
+        <translation>Retirada a linha vazia depois da docstring de função/método.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="666"/>
+        <source>Blank line after last paragraph removed.</source>
+        <translation>Retirada linha vazia depois do último parágrafo.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="669"/>
+        <source>Tab converted to 4 spaces.</source>
+        <translation>Tabulação convertida a 4 espaços.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="672"/>
+        <source>Indentation adjusted to be a multiple of four.</source>
+        <translation>Ajustada a indentação a múltiplos de quatro.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="675"/>
+        <source>Indentation of continuation line corrected.</source>
+        <translation>Corrigida a indentação da linha de continuação.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="678"/>
+        <source>Indentation of closing bracket corrected.</source>
+        <translation>Corrigida a indentação de parêntesis de fecho.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="681"/>
+        <source>Missing indentation of continuation line corrected.</source>
+        <translation>Corrigida falta de indentação na linha de continuação.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="684"/>
+        <source>Closing bracket aligned to opening bracket.</source>
+        <translation>Parêntesis de fecho alinhado com parêntesis de abertura.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="687"/>
+        <source>Indentation level changed.</source>
+        <translation>Alterado o nível da indentação.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="690"/>
+        <source>Indentation level of hanging indentation changed.</source>
+        <translation>Alterado o nível da indentação pendente.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="693"/>
+        <source>Visual indentation corrected.</source>
+        <translation>Indentação visual corrigida.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="708"/>
+        <source>Extraneous whitespace removed.</source>
+        <translation>Espaço estranho retirado.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="705"/>
+        <source>Missing whitespace added.</source>
+        <translation>Adicionado espaço branco em falta.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="711"/>
+        <source>Whitespace around comment sign corrected.</source>
+        <translation>Corrigido espaço em volta do símbolo de comentário.</translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="714"/>
         <source>One blank line inserted.</source>
         <translation>Inserida uma linha vazia.</translation>
     </message>
     <message numerus="yes">
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="658"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="718"/>
         <source>%n blank line(s) inserted.</source>
         <translation>
             <numerusform>inserida uma linha vazia.</numerusform>
@@ -4021,7 +4021,7 @@
         </translation>
     </message>
     <message numerus="yes">
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="661"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="721"/>
         <source>%n superfluous lines removed</source>
         <translation>
             <numerusform>retirada uma linha desnecessária</numerusform>
@@ -4029,77 +4029,77 @@
         </translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="665"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="725"/>
         <source>Superfluous blank lines removed.</source>
         <translation>Retiradas linhas vazias desnecessárias.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="668"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="728"/>
         <source>Superfluous blank lines after function decorator removed.</source>
         <translation>Retiradas linhas vazias desnecessárias após o decorador de função.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="671"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="731"/>
         <source>Imports were put on separate lines.</source>
         <translation>Imports foram postos em linhas separadas.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="674"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="734"/>
         <source>Long lines have been shortened.</source>
         <translation>Foram encolhidas as linhas compridas.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="677"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="737"/>
         <source>Redundant backslash in brackets removed.</source>
         <translation>Retirada barra invertida redundante entre parêntesis.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="683"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="743"/>
         <source>Compound statement corrected.</source>
         <translation>Instrução composta corrigida.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="686"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="746"/>
         <source>Comparison to None/True/False corrected.</source>
         <translation>Corrigida a comparação a None/True/False.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="689"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="749"/>
         <source>&apos;{0}&apos; argument added.</source>
         <translation>Adicionado o argumento &apos;{0}&apos;.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="692"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="752"/>
         <source>&apos;{0}&apos; argument removed.</source>
         <translation>Removido o argumento &apos;{0}&apos;.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="695"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="755"/>
         <source>Whitespace stripped from end of line.</source>
         <translation>Eliminado o espaço no fim de linha.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="698"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="758"/>
         <source>newline added to end of file.</source>
         <translation>adicionada uma linha nova ao fim do ficheiro.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="701"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="761"/>
         <source>Superfluous trailing blank lines removed from end of file.</source>
         <translation>Retiradas linhas vazias desnecessárias do fim do ficheiro.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="704"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="764"/>
         <source>&apos;&lt;&gt;&apos; replaced by &apos;!=&apos;.</source>
         <translation>&apos;&lt;&gt;&apos; substituido por &apos;!=&apos;.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="708"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="768"/>
         <source>Could not save the file! Skipping it. Reason: {0}</source>
         <translation>Não se pode gravar ficheiro! Saltando-o. Motivo: {0}</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="789"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="852"/>
         <source> no message defined for code &apos;{0}&apos;</source>
         <translation> sem mensagem definida para código &apos;{0}&apos;</translation>
     </message>
@@ -46132,82 +46132,82 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="505"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="544"/>
         <source>found {0} formatter</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="508"/>
-        <source>format string does contain unindexed parameters</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="511"/>
-        <source>docstring does contain unindexed parameters</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="514"/>
-        <source>other string does contain unindexed parameters</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="517"/>
-        <source>format call uses too large index ({0})</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="520"/>
-        <source>format call uses missing keyword ({0})</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="523"/>
-        <source>format call uses keyword arguments but no named entries</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="526"/>
-        <source>format call uses variable arguments but no numbered entries</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="529"/>
-        <source>format call uses implicit and explicit indexes together</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="532"/>
-        <source>format call provides unused index ({0})</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="535"/>
-        <source>format call provides unused keyword ({0})</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="538"/>
-        <source>expected these __future__ imports: {0}; but only got: {1}</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="541"/>
-        <source>expected these __future__ imports: {0}; but got none</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="544"/>
-        <source>print statement found</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="547"/>
-        <source>one element tuple found</source>
+        <source>format string does contain unindexed parameters</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="550"/>
+        <source>docstring does contain unindexed parameters</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="553"/>
+        <source>other string does contain unindexed parameters</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="556"/>
+        <source>format call uses too large index ({0})</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="559"/>
+        <source>format call uses missing keyword ({0})</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="562"/>
+        <source>format call uses keyword arguments but no named entries</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="565"/>
+        <source>format call uses variable arguments but no numbered entries</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="568"/>
+        <source>format call uses implicit and explicit indexes together</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="571"/>
+        <source>format call provides unused index ({0})</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="574"/>
+        <source>format call provides unused keyword ({0})</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="592"/>
+        <source>expected these __future__ imports: {0}; but only got: {1}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="595"/>
+        <source>expected these __future__ imports: {0}; but got none</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="601"/>
+        <source>print statement found</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="604"/>
+        <source>one element tuple found</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="616"/>
         <source>{0}: {1}</source>
         <translation type="unfinished">{0}: {1}</translation>
     </message>
@@ -46262,7 +46262,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="553"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="610"/>
         <source>mutable default argument of type {0}</source>
         <translation type="unfinished"></translation>
     </message>
@@ -46271,6 +46271,96 @@
         <source>sort keys - &apos;{0}&apos; should be before &apos;{1}&apos;</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="580"/>
+        <source>logging statement uses &apos;%&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="586"/>
+        <source>logging statement uses f-string</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="589"/>
+        <source>logging statement uses &apos;warn&apos; instead of &apos;warning&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="577"/>
+        <source>logging statement uses string.format()</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="583"/>
+        <source>logging statement uses &apos;+&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="598"/>
+        <source>gettext import with alias _ found: {0}</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="505"/>
+        <source>Python does not support the unary prefix increment</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="515"/>
+        <source>&apos;sys.maxint&apos; is not defined in Python 3 - use &apos;sys.maxsize&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="518"/>
+        <source>&apos;BaseException.message&apos; has been deprecated as of Python 2.6 and is removed in Python 3 - use &apos;str(e)&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="522"/>
+        <source>assigning to &apos;os.environ&apos; does not clear the environment - use &apos;os.environ.clear()&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="530"/>
+        <source>Python 3 does not include &apos;.iter*&apos; methods on dictionaries</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="533"/>
+        <source>Python 3 does not include &apos;.view*&apos; methods on dictionaries</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="536"/>
+        <source>&apos;.next()&apos; does not exist in Python 3</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="539"/>
+        <source>&apos;__metaclass__&apos; does nothing on Python 3 - use &apos;class MyClass(BaseClass, metaclass=...)&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="613"/>
+        <source>mutable default argument of function call &apos;{0}&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="508"/>
+        <source>using .strip() with multi-character strings is misleading</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="511"/>
+        <source>using &apos;hasattr(x, &quot;__call__&quot;)&apos; to test if &apos;x&apos; is callable is unreliable</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="526"/>
+        <source>loop control variable {0} not used within the loop body - start the name with an underscore</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>MouseClickDialog</name>
@@ -49705,47 +49795,47 @@
 <context>
     <name>PluginInfoDialog</name>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="13"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="14"/>
         <source>Loaded Plugins</source>
         <translation>Complementos Carregados</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="22"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="23"/>
         <source>Double-Click an entry to show detailed info. Plugins with an error are shown in red.</source>
         <translation>Duplo clique numa entrada para mostrar informação detalhada. Os complementos com algum erro aparecem a vermelho.</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="32"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="33"/>
         <source>&lt;b&gt;Plugin List&lt;/b&gt;&lt;p&gt;This lists all loaded plugins. Double-clicking an entry shows more detailed information in a separate dialog.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Lista de Complementos&lt;/b&gt;&lt;p&gt;Lista todos os complementos carregados. Duplo clique numa entrada mostra mais informação detalhada numa caixa de diálogo aparte.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="48"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="52"/>
         <source>Module</source>
         <translation>Módulo</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="53"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="57"/>
         <source>Name</source>
         <translation>Nome</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="58"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="62"/>
         <source>Version</source>
         <translation>Versão</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="63"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="67"/>
         <source>Autoactivate</source>
         <translation>Auto-ativar</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="68"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="72"/>
         <source>Active</source>
         <translation>Ativo</translation>
     </message>
     <message>
-        <location filename="../PluginManager/PluginInfoDialog.ui" line="73"/>
+        <location filename="../PluginManager/PluginInfoDialog.ui" line="77"/>
         <source>Description</source>
         <translation>Descrição</translation>
     </message>
--- a/i18n/eric6_ru.ts	Tue Mar 13 18:18:04 2018 +0100
+++ b/i18n/eric6_ru.ts	Tue Mar 13 18:20:40 2018 +0100
@@ -3711,147 +3711,147 @@
 <context>
     <name>CodeStyleFixer</name>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="561"/>
+        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="621"/>
         <source>Triple single quotes converted to triple double quotes.</source>
         <translation>Тройные одинарные кавычки заменены тройными двойными.</translation>
     </message>
     <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="564"/>
-        <source>Introductory quotes corrected to be {0}&quot;&quot;&quot;</source>
-        <translation>Кавычки во введении исправлены на {0}&quot;&quot;&quot;</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="567"/>
-        <source>Single line docstring put on one line.</source>
-        <translation>Одиночная строка документации распологается в одной строке.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="570"/>
-        <source>Period added to summary line.</source>
-        <translation>Добавлена точка в строке резюме.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="597"/>
-        <source>Blank line before function/method docstring removed.</source>
-        <translation>Удалена пустая строка перед строкой документации для function/method.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="576"/>
-        <source>Blank line inserted before class docstring.</source>
-        <translation>Добавлена пустая строка перед строкой документации для class.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="579"/>
-        <source>Blank line inserted after class docstring.</source>
-        <translation>Добавлена пустая строка после строки документации для class.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="582"/>
-        <source>Blank line inserted after docstring summary.</source>
-        <translation>Добавлена пустая строка после резюме строки документации.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="585"/>
-        <source>Blank line inserted after last paragraph of docstring.</source>
-        <translation>Добавлена пустая строка после последнего абзаца строки документации.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="588"/>
-        <source>Leading quotes put on separate line.</source>
-        <translation>Открывающие кавычки размещены на отдельной строке.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="591"/>
-        <source>Trailing quotes put on separate line.</source>
-        <translation>Закрывающие кавычки размещены на отдельной строке.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="594"/>
-        <source>Blank line before class docstring removed.</source>
-        <translation>Удалена пустая строка перед строкой документации для class.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="600"/>
-        <source>Blank line after class docstring removed.</source>
-        <translation>Удалена пустая строка после строки документации для class.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="603"/>
-        <source>Blank line after function/method docstring removed.</source>
-        <translation>Удалена пустая строка после строки документации для function/method.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="606"/>
-        <source>Blank line after last paragraph removed.</source>
-        <translation>Удалена пустая строка после последнего абзаца.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="609"/>
-        <source>Tab converted to 4 spaces.</source>
-        <translation>Символы табуляции заменяются на 4 пробела.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="612"/>
-        <source>Indentation adjusted to be a multiple of four.</source>
-        <translation>Величина отступа сделана кратной четырём.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="615"/>
-        <source>Indentation of continuation line corrected.</source>
-        <translation>Исправлен размер отступа строки продолжения.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="618"/>
-        <source>Indentation of closing bracket corrected.</source>
-        <translation>Исправлен размер отступа закрывающей скобки.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="621"/>
-        <source>Missing indentation of continuation line corrected.</source>
-        <translation>Добавлен отступ к строке продолжения.</translation>
-    </message>
-    <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="624"/>
-        <source>Closing bracket aligned to opening bracket.</source>
-        <translation>Закрывающая скобка выровнена с открывающей.</translation>
+        <source>Introductory quotes corrected to be {0}&quot;&quot;&quot;</source>
+        <translation>Кавычки во введении исправлены на {0}&quot;&quot;&quot;</translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="627"/>
-        <source>Indentation level changed.</source>
-        <translation>Изменен размер отступа.</translation>
+        <source>Single line docstring put on one line.</source>
+        <translation>Одиночная строка документации распологается в одной строке.</translation>
     </message>
     <message>
         <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="630"/>
-        <source>Indentation level of hanging indentation changed.</source>
-        <translation>Изменен размер отступа для висячих отступов.</translation>
-    </message>
-    <message>
-        <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="633"/>
-        <source>Visual indentation corrected.</source>
-        <translation>Исправленена величина визуального отступа.</translation>
+        <source>Period added to summary line.</source>
+        <translation>Добавлена то