--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/CheckerPlugins/CodeStyleChecker/translations.py Sun Mar 30 22:00:14 2014 +0200 @@ -0,0 +1,552 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2014 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing message translations for the code style plugin messages. +""" + +from PyQt4.QtCore import QCoreApplication + +__all__ = ["getTranslatedMessage"] + +_messages = { + "E101": QCoreApplication.translate( + "pep8", + "indentation contains mixed spaces and tabs"), + "E111": QCoreApplication.translate( + "pep8", + "indentation is not a multiple of four"), + "E112": QCoreApplication.translate( + "pep8", + "expected an indented block"), + "E113": QCoreApplication.translate( + "pep8", + "unexpected indentation"), + "E121": QCoreApplication.translate( + "pep8", + "continuation line indentation is not a multiple of four"), + "E122": QCoreApplication.translate( + "pep8", + "continuation line missing indentation or outdented"), + "E123": QCoreApplication.translate( + "pep8", + "closing bracket does not match indentation of opening" + " bracket's line"), + "E124": QCoreApplication.translate( + "pep8", + "closing bracket does not match visual indentation"), + "E125": QCoreApplication.translate( + "pep8", + "continuation line does not distinguish itself from next" + " logical line"), + "E126": QCoreApplication.translate( + "pep8", + "continuation line over-indented for hanging indent"), + "E127": QCoreApplication.translate( + "pep8", + "continuation line over-indented for visual indent"), + "E128": QCoreApplication.translate( + "pep8", + "continuation line under-indented for visual indent"), + "E133": QCoreApplication.translate( + "pep8", + "closing bracket is missing indentation"), + "W191": QCoreApplication.translate( + "pep8", + "indentation contains tabs"), + "E201": QCoreApplication.translate( + "pep8", + "whitespace after '{0}'"), + "E202": QCoreApplication.translate( + "pep8", + "whitespace before '{0}'"), + "E203": QCoreApplication.translate( + "pep8", + "whitespace before '{0}'"), + "E211": QCoreApplication.translate( + "pep8", + "whitespace before '{0}'"), + "E221": QCoreApplication.translate( + "pep8", + "multiple spaces before operator"), + "E222": QCoreApplication.translate( + "pep8", + "multiple spaces after operator"), + "E223": QCoreApplication.translate( + "pep8", + "tab before operator"), + "E224": QCoreApplication.translate( + "pep8", + "tab after operator"), + "E225": QCoreApplication.translate( + "pep8", + "missing whitespace around operator"), + "E226": QCoreApplication.translate( + "pep8", + "missing whitespace around arithmetic operator"), + "E227": QCoreApplication.translate( + "pep8", + "missing whitespace around bitwise or shift operator"), + "E228": QCoreApplication.translate( + "pep8", + "missing whitespace around modulo operator"), + "E231": QCoreApplication.translate( + "pep8", + "missing whitespace after '{0}'"), + "E241": QCoreApplication.translate( + "pep8", + "multiple spaces after '{0}'"), + "E242": QCoreApplication.translate( + "pep8", + "tab after '{0}'"), + "E251": QCoreApplication.translate( + "pep8", + "unexpected spaces around keyword / parameter equals"), + "E261": QCoreApplication.translate( + "pep8", + "at least two spaces before inline comment"), + "E262": QCoreApplication.translate( + "pep8", + "inline comment should start with '# '"), + "E271": QCoreApplication.translate( + "pep8", + "multiple spaces after keyword"), + "E272": QCoreApplication.translate( + "pep8", + "multiple spaces before keyword"), + "E273": QCoreApplication.translate( + "pep8", + "tab after keyword"), + "E274": QCoreApplication.translate( + "pep8", + "tab before keyword"), + "W291": QCoreApplication.translate( + "pep8", + "trailing whitespace"), + "W292": QCoreApplication.translate( + "pep8", + "no newline at end of file"), + "W293": QCoreApplication.translate( + "pep8", + "blank line contains whitespace"), + "E301": QCoreApplication.translate( + "pep8", + "expected 1 blank line, found 0"), + "E302": QCoreApplication.translate( + "pep8", + "expected 2 blank lines, found {0}"), + "E303": QCoreApplication.translate( + "pep8", + "too many blank lines ({0})"), + "E304": QCoreApplication.translate( + "pep8", + "blank lines found after function decorator"), + "W391": QCoreApplication.translate( + "pep8", + "blank line at end of file"), + "E401": QCoreApplication.translate( + "pep8", + "multiple imports on one line"), + "E501": QCoreApplication.translate( + "pep8", + "line too long ({0} > {1} characters)"), + "E502": QCoreApplication.translate( + "pep8", + "the backslash is redundant between brackets"), + "W601": QCoreApplication.translate( + "pep8", + ".has_key() is deprecated, use 'in'"), + "W602": QCoreApplication.translate( + "pep8", + "deprecated form of raising exception"), + "W603": QCoreApplication.translate( + "pep8", + "'<>' is deprecated, use '!='"), + "W604": QCoreApplication.translate( + "pep8", + "backticks are deprecated, use 'repr()'"), + "E701": QCoreApplication.translate( + "pep8", + "multiple statements on one line (colon)"), + "E702": QCoreApplication.translate( + "pep8", + "multiple statements on one line (semicolon)"), + "E703": QCoreApplication.translate( + "pep8", + "statement ends with a semicolon"), + "E711": QCoreApplication.translate( + "pep8", + "comparison to {0} should be {1}"), + "E712": QCoreApplication.translate( + "pep8", + "comparison to {0} should be {1}"), + "E721": QCoreApplication.translate( + "pep8", + "do not compare types, use 'isinstance()'"), + "E901": QCoreApplication.translate( + "pep8", + "{0}: {1}"), + + # DocStyleChecker messages + "D101": QCoreApplication.translate( + "DocStyleChecker", "module is missing a docstring"), + "D102": QCoreApplication.translate( + "DocStyleChecker", + "public function/method is missing a docstring"), + "D103": QCoreApplication.translate( + "DocStyleChecker", + "private function/method may be missing a docstring"), + "D104": QCoreApplication.translate( + "DocStyleChecker", "public class is missing a docstring"), + "D105": QCoreApplication.translate( + "DocStyleChecker", "private class may be missing a docstring"), + "D111": QCoreApplication.translate( + "DocStyleChecker", 'docstring not surrounded by """'), + "D112": QCoreApplication.translate( + "DocStyleChecker", + 'docstring containing \\ not surrounded by r"""'), + "D113": QCoreApplication.translate( + "DocStyleChecker", + 'docstring containing unicode character not surrounded by u"""'), + "D121": QCoreApplication.translate( + "DocStyleChecker", "one-liner docstring on multiple lines"), + "D122": QCoreApplication.translate( + "DocStyleChecker", "docstring has wrong indentation"), + "D130": QCoreApplication.translate( + "DocStyleChecker", "docstring does not contain a summary"), + "D131": QCoreApplication.translate( + "DocStyleChecker", "docstring summary does not end with a period"), + "D132": QCoreApplication.translate( + "DocStyleChecker", + "docstring summary is not in imperative mood" + " (Does instead of Do)"), + "D133": QCoreApplication.translate( + "DocStyleChecker", + "docstring summary looks like a function's/method's signature"), + "D134": QCoreApplication.translate( + "DocStyleChecker", + "docstring does not mention the return value type"), + "D141": QCoreApplication.translate( + "DocStyleChecker", + "function/method docstring is separated by a blank line"), + "D142": QCoreApplication.translate( + "DocStyleChecker", + "class docstring is not preceded by a blank line"), + "D143": QCoreApplication.translate( + "DocStyleChecker", + "class docstring is not followed by a blank line"), + "D144": QCoreApplication.translate( + "DocStyleChecker", + "docstring summary is not followed by a blank line"), + "D145": QCoreApplication.translate( + "DocStyleChecker", + "last paragraph of docstring is not followed by a blank line"), + + "D203": QCoreApplication.translate( + "DocStyleChecker", + "private function/method is missing a docstring"), + "D205": QCoreApplication.translate( + "DocStyleChecker", "private class is missing a docstring"), + "D221": QCoreApplication.translate( + "DocStyleChecker", + "leading quotes of docstring not on separate line"), + "D222": QCoreApplication.translate( + "DocStyleChecker", + "trailing quotes of docstring not on separate line"), + "D231": QCoreApplication.translate( + "DocStyleChecker", "docstring summary does not end with a period"), + "D234": QCoreApplication.translate( + "DocStyleChecker", + "docstring does not contain a @return line but function/method" + " returns something"), + "D235": QCoreApplication.translate( + "DocStyleChecker", + "docstring contains a @return line but function/method doesn't" + " return anything"), + "D236": QCoreApplication.translate( + "DocStyleChecker", + "docstring does not contain enough @param/@keyparam lines"), + "D237": QCoreApplication.translate( + "DocStyleChecker", + "docstring contains too many @param/@keyparam lines"), + "D238": QCoreApplication.translate( + "DocStyleChecker", + "keyword only arguments must be documented with @keyparam lines"), + "D239": QCoreApplication.translate( + "DocStyleChecker", "order of @param/@keyparam lines does" + " not match the function/method signature"), + "D242": QCoreApplication.translate( + "DocStyleChecker", "class docstring is preceded by a blank line"), + "D243": QCoreApplication.translate( + "DocStyleChecker", "class docstring is followed by a blank line"), + "D244": QCoreApplication.translate( + "DocStyleChecker", + "function/method docstring is preceded by a blank line"), + "D245": QCoreApplication.translate( + "DocStyleChecker", + "function/method docstring is followed by a blank line"), + "D246": QCoreApplication.translate( + "DocStyleChecker", + "docstring summary is not followed by a blank line"), + "D247": QCoreApplication.translate( + "DocStyleChecker", + "last paragraph of docstring is followed by a blank line"), + "D250": QCoreApplication.translate( + "DocStyleChecker", + "docstring does not contain a @exception line but function/method" + " raises an exception"), + "D251": QCoreApplication.translate( + "DocStyleChecker", + "docstring contains a @exception line but function/method doesn't" + " raise an exception"), + + "D901": QCoreApplication.translate( + "DocStyleChecker", "{0}: {1}"), + + # NamingStyleChecker messages + "N801": QCoreApplication.translate( + "NamingStyleChecker", + "class names should use CapWords convention"), + "N802": QCoreApplication.translate( + "NamingStyleChecker", + "function name should be lowercase"), + "N803": QCoreApplication.translate( + "NamingStyleChecker", + "argument name should be lowercase"), + "N804": QCoreApplication.translate( + "NamingStyleChecker", + "first argument of a class method should be named 'cls'"), + "N805": QCoreApplication.translate( + "NamingStyleChecker", + "first argument of a method should be named 'self'"), + "N806": QCoreApplication.translate( + "NamingStyleChecker", + "first argument of a static method should not be named" + " 'self' or 'cls"), + "N807": QCoreApplication.translate( + "NamingStyleChecker", + "module names should be lowercase"), + "N808": QCoreApplication.translate( + "NamingStyleChecker", + "package names should be lowercase"), + "N811": QCoreApplication.translate( + "NamingStyleChecker", + "constant imported as non constant"), + "N812": QCoreApplication.translate( + "NamingStyleChecker", + "lowercase imported as non lowercase"), + "N813": QCoreApplication.translate( + "NamingStyleChecker", + "camelcase imported as lowercase"), + "N814": QCoreApplication.translate( + "NamingStyleChecker", + "camelcase imported as constant"), + "N821": QCoreApplication.translate( + "NamingStyleChecker", + "variable in function should be lowercase"), + "N831": QCoreApplication.translate( + "NamingStyleChecker", + "names 'l', 'O' and 'I' should be avoided"), + + # CodeStyleFixer messages + "FD111": QCoreApplication.translate( + 'CodeStyleFixer', + "Triple single quotes converted to triple double quotes."), + 'FD112': QCoreApplication.translate( + 'CodeStyleFixer', + 'Introductory quotes corrected to be {0}"""'), + "FD121": QCoreApplication.translate( + 'CodeStyleFixer', + "Single line docstring put on one line."), + "FD131": QCoreApplication.translate( + 'CodeStyleFixer', + "Period added to summary line."), + "FD141": QCoreApplication.translate( + 'CodeStyleFixer', + "Blank line before function/method docstring removed."), + "FD142": QCoreApplication.translate( + 'CodeStyleFixer', + "Blank line inserted before class docstring."), + "FD143": QCoreApplication.translate( + 'CodeStyleFixer', + "Blank line inserted after class docstring."), + "FD144": QCoreApplication.translate( + 'CodeStyleFixer', + "Blank line inserted after docstring summary."), + "FD145": QCoreApplication.translate( + 'CodeStyleFixer', + "Blank line inserted after last paragraph of docstring."), + "FD221": QCoreApplication.translate( + 'CodeStyleFixer', + "Leading quotes put on separate line."), + "FD222": QCoreApplication.translate( + 'CodeStyleFixer', + "Trailing quotes put on separate line."), + "FD242": QCoreApplication.translate( + 'CodeStyleFixer', + "Blank line before class docstring removed."), + "FD244": QCoreApplication.translate( + 'CodeStyleFixer', + "Blank line before function/method docstring removed."), + "FD243": QCoreApplication.translate( + 'CodeStyleFixer', + "Blank line after class docstring removed."), + "FD245": QCoreApplication.translate( + 'CodeStyleFixer', + "Blank line after function/method docstring removed."), + "FD247": QCoreApplication.translate( + 'CodeStyleFixer', + "Blank line after last paragraph removed."), + "FE101": QCoreApplication.translate( + 'CodeStyleFixer', + "Tab converted to 4 spaces."), + "FE111": QCoreApplication.translate( + 'CodeStyleFixer', + "Indentation adjusted to be a multiple of four."), + "FE121": QCoreApplication.translate( + 'CodeStyleFixer', + "Indentation of continuation line corrected."), + "FE124": QCoreApplication.translate( + 'CodeStyleFixer', + "Indentation of closing bracket corrected."), + "FE122": QCoreApplication.translate( + 'CodeStyleFixer', + "Missing indentation of continuation line corrected."), + "FE123": QCoreApplication.translate( + 'CodeStyleFixer', + "Closing bracket aligned to opening bracket."), + "FE125": QCoreApplication.translate( + 'CodeStyleFixer', + "Indentation level changed."), + "FE126": QCoreApplication.translate( + 'CodeStyleFixer', + "Indentation level of hanging indentation changed."), + "FE127": QCoreApplication.translate( + 'CodeStyleFixer', + "Visual indentation corrected."), + "FE201": QCoreApplication.translate( + 'CodeStyleFixer', + "Extraneous whitespace removed."), + "FE225": QCoreApplication.translate( + 'CodeStyleFixer', + "Missing whitespace added."), + "FE221": QCoreApplication.translate( + 'CodeStyleFixer', + "Extraneous whitespace removed."), + "FE231": QCoreApplication.translate( + 'CodeStyleFixer', + "Missing whitespace added."), + "FE251": QCoreApplication.translate( + 'CodeStyleFixer', + "Extraneous whitespace removed."), + "FE261": QCoreApplication.translate( + 'CodeStyleFixer', + "Whitespace around comment sign corrected."), + "FE301": QCoreApplication.translate( + 'CodeStyleFixer', + "One blank line inserted."), + + "FE302+": lambda n=1: QCoreApplication.translate( + 'CodeStyleFixer', + "%n blank line(s) inserted.", '', QCoreApplication.CodecForTr, n), + "FE302-": lambda n=1: QCoreApplication.translate( + 'CodeStyleFixer', + "%n superfluous lines removed", '', QCoreApplication.CodecForTr, n), + + "FE303": QCoreApplication.translate( + 'CodeStyleFixer', + "Superfluous blank lines removed."), + "FE304": QCoreApplication.translate( + 'CodeStyleFixer', + "Superfluous blank lines after function decorator removed."), + "FE401": QCoreApplication.translate( + 'CodeStyleFixer', + "Imports were put on separate lines."), + "FE501": QCoreApplication.translate( + 'CodeStyleFixer', + "Long lines have been shortened."), + "FE502": QCoreApplication.translate( + 'CodeStyleFixer', + "Redundant backslash in brackets removed."), + "FE701": QCoreApplication.translate( + 'CodeStyleFixer', + "Compound statement corrected."), + "FE702": QCoreApplication.translate( + 'CodeStyleFixer', + "Compound statement corrected."), + "FE711": QCoreApplication.translate( + 'CodeStyleFixer', + "Comparison to None/True/False corrected."), + "FN804": QCoreApplication.translate( + 'CodeStyleFixer', + "'{0}' argument added."), + "FN806": QCoreApplication.translate( + 'CodeStyleFixer', + "'{0}' argument removed."), + "FW291": QCoreApplication.translate( + 'CodeStyleFixer', + "Whitespace stripped from end of line."), + "FW292": QCoreApplication.translate( + 'CodeStyleFixer', + "newline added to end of file."), + "FW391": QCoreApplication.translate( + 'CodeStyleFixer', + "Superfluous trailing blank lines removed from end of file."), + "FW603": QCoreApplication.translate( + 'CodeStyleFixer', + "'<>' replaced by '!='."), + + "FWRITE_ERROR": QCoreApplication.translate( + 'CodeStyleFixer', + "Could not save the file! Skipping it. Reason: {0}"), +} + +_messages_sample_args = { + "E201": ["([{"], + "E202": ["}])"], + "E203": [",;:"], + "E211": ["(["], + "E231": [",;:"], + "E241": [",;:"], + "E242": [",;:"], + "E302": [1], + "E303": [3], + "E501": [85, 79], + "E711": ["None", "'if cond is None:'"], + "E712": ["True", "'if cond is True:' or 'if cond:'"], + "E901": ["SyntaxError", "Invalid Syntax"], + "D901": ["SyntaxError", "Invalid Syntax"], +} + + +def getTranslatedMessage(message): + """ + Module function to get a translated and formatted message for a + given pyflakes message ID. + + @param message the message ID (string) + @return translated and formatted message (string) + """ + if isinstance(message, list): + message, args = message + else: + args = [] + if message in _messages: + if isinstance(args, int): + # Retranslate with correct plural form + return _messages[message](args) + else: + if message.startswith('F'): + prefix = '' + else: + prefix = message + ' ' + return prefix + _messages[message].format(*args) + elif ' ' in message: + # already translated + return message + else: + return QCoreApplication.translate( + "CodeStyleFixer", " no message defined for code '{0}'")\ + .format(message)