--- a/src/eric7/i18n/eric7_en.ts Mon May 19 17:38:10 2025 +0200 +++ b/src/eric7/i18n/eric7_en.ts Mon May 19 17:53:17 2025 +0200 @@ -5315,6 +5315,31 @@ </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Enter directory names (one per line) to be checked for</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Insecure Hashes:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Enter a list of hash methods to be considered insecure separated by comma</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Insecure SSL Protocols:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Enter the names of insecure SSL protocols and methods (one per line)</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> <source>Weak Cryptographic Keys</source> <translation type="unfinished" /> </message> @@ -5379,26 +5404,6 @@ </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> - <source>Enter the names of insecure SSL protocols and methods (one per line)</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> - <source>Insecure SSL Protocols:</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> - <source>Insecure Hashes:</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> - <source>Enter a list of hash methods to be considered insecure separated by comma</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> <source>Select to also check for insecure exception handling for typed exceptions</source> <translation type="unfinished" /> </message> @@ -5409,7 +5414,27 @@ </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> - <source>Enter directory names (one per line) to be checked for</source> + <source>'markupsafe' XSS</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Additional Markup Names:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Enter the names (one per line) of additional markup functions</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Allowed Calls:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.ui" line="0" /> + <source>Enter names (one per line) of safe escape functions</source> <translation type="unfinished" /> </message> <message> @@ -5841,34 +5866,34 @@ <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1256" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1272" /> <source>{0} (ignored)</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1331" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1347" /> <source>No issues found.</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1335" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1351" /> <source>No files found (check your ignore list).</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1656" /> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1615" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1684" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1643" /> <source>{0} - {1}</source> <comment>issue code, message</comment> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="3010" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="3080" /> <source>Commented Code Whitelist Pattern</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="3011" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="3081" /> <source>Enter a Commented Code Whitelist Pattern</source> <translation type="unfinished" /> </message> @@ -52812,6 +52837,36 @@ <source>matching a default value should not contain a `return` statement before raising a `ValueError` exception</source> <translation type="unfinished" /> </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="650" /> + <source>Reassignment of constant '{0}' in scope '{1}'</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="654" /> + <source>Modification of class constant '{0}'</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="658" /> + <source>Augmented assignment to constant '{0}' in scope '{1}'</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="662" /> + <source>Augmented assignment to class constant '{0}'</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="666" /> + <source>Potential modification of constant '{0}' through method call in scope '{1}'</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="670" /> + <source>Constant '{0}' is defined as a mutable type</source> + <translation type="unfinished" /> + </message> </context> <context> <name>MouseClickDialog</name> @@ -61268,8 +61323,8 @@ <translation type="unfinished" /> </message> <message> - <location filename="../Project/ProjectBrowserModel.py" line="926" /> - <location filename="../Project/ProjectBrowserModel.py" line="904" /> + <location filename="../Project/ProjectBrowserModel.py" line="937" /> + <location filename="../Project/ProjectBrowserModel.py" line="915" /> <location filename="../Project/ProjectBrowserModel.py" line="548" /> <location filename="../Project/ProjectBrowserModel.py" line="418" /> <source>local</source> @@ -70823,36 +70878,41 @@ </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="381" /> - <source>Use of unsafe PyTorch load or save.</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="385" /> + <source>Use of unsafe PyTorch load.</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="383" /> <source>Using jinja2 templates with 'autoescape=False' is dangerous and can lead to XSS. Use 'autoescape=True' or use the 'select_autoescape' function to mitigate XSS vulnerabilities.</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="391" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="389" /> <source>By default, jinja2 sets 'autoescape' to False. Consider using 'autoescape=True' or use the 'select_autoescape' function to mitigate XSS vulnerabilities.</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="398" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="396" /> <source>Mako templates allow HTML/JS rendering by default and are inherently open to XSS attacks. Ensure variables in all templates are properly sanitized via the 'n', 'h' or 'x' flags (depending on context). For example, to HTML escape the variable 'data' do ${{ data |h }}.</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="406" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="404" /> <source>Potential XSS on 'mark_safe()' function.</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="410" /> - <source>Possible hardcoded AWS access key ID: {0}</source> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="408" /> + <source>Potential XSS with '{0}' detected. Do not use '{1}' on untrusted data.</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="413" /> + <source>Possible hardcoded AWS access key ID: {0}</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="416" /> <source>Possible hardcoded AWS secret access key: {0}</source> <translation type="unfinished" /> </message> @@ -102132,176 +102192,181 @@ </message> <message> <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/translations.py" line="55" /> + <source>`{0} {1}` is unused: name is never assigned in scope</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/translations.py" line="58" /> <source>Syntax error detected in doctest.</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/translations.py" line="56" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/translations.py" line="59" /> <source>'return' outside function</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/translations.py" line="57" /> - <source>'from {0} import *' only allowed at module level</source> - <translation type="unfinished" /> - </message> - <message> <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/translations.py" line="60" /> - <source>{0!r} may be undefined, or defined from star imports: {1}</source> + <source>'from {0} import *' only allowed at module level</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/translations.py" line="63" /> - <source>Dictionary key {0} repeated with different values</source> + <source>{0!r} may be undefined, or defined from star imports: {1}</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/translations.py" line="66" /> - <source>Dictionary key variable {0} repeated with different values</source> + <source>Dictionary key {0} repeated with different values</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/translations.py" line="69" /> - <source>Future feature {0} is not defined</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/translations.py" line="70" /> - <source>'yield' outside function</source> - <translation type="unfinished" /> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/translations.py" line="71" /> - <source>'continue' not properly in loop</source> + <source>Dictionary key variable {0} repeated with different values</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/translations.py" line="72" /> - <source>'break' outside loop</source> + <source>Future feature {0} is not defined</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/translations.py" line="73" /> - <source>Default 'except:' must be last</source> + <source>'yield' outside function</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/translations.py" line="74" /> - <source>Two starred expressions in assignment</source> + <source>'continue' not properly in loop</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/translations.py" line="75" /> + <source>'break' outside loop</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/translations.py" line="76" /> + <source>Default 'except:' must be last</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/translations.py" line="77" /> - <source>Too many expressions in star-unpacking assignment</source> + <source>Two starred expressions in assignment</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/translations.py" line="80" /> - <source>Assertion is always true, perhaps remove parentheses?</source> + <source>Too many expressions in star-unpacking assignment</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/translations.py" line="83" /> - <source>syntax error in forward annotation {0!r}</source> + <source>Assertion is always true, perhaps remove parentheses?</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/translations.py" line="86" /> - <source>'raise NotImplemented' should be 'raise NotImplementedError'</source> + <source>syntax error in forward annotation {0!r}</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/translations.py" line="89" /> - <source>use of >> is invalid with print function</source> + <source>'raise NotImplemented' should be 'raise NotImplementedError'</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/translations.py" line="92" /> - <source>use ==/!= to compare str, bytes, and int literals</source> + <source>use of >> is invalid with print function</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/translations.py" line="95" /> + <source>use ==/!= to compare str, bytes, and int literals</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/translations.py" line="98" /> <source>f-string is missing placeholders</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/translations.py" line="96" /> - <source>'...'.format(...) has unused arguments at position(s): {0}</source> - <translation type="unfinished" /> - </message> - <message> <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/translations.py" line="99" /> - <source>'...'.format(...) has unused named argument(s): {0}</source> + <source>'...'.format(...) has unused arguments at position(s): {0}</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/translations.py" line="102" /> - <source>'...'.format(...) is missing argument(s) for placeholder(s): {0}</source> + <source>'...'.format(...) has unused named argument(s): {0}</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/translations.py" line="105" /> - <source>'...'.format(...) mixes automatic and manual numbering</source> + <source>'...'.format(...) is missing argument(s) for placeholder(s): {0}</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/translations.py" line="108" /> - <source>'...'.format(...) has invalid format string: {0}</source> + <source>'...'.format(...) mixes automatic and manual numbering</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/translations.py" line="111" /> - <source>'...' % ... has invalid format string: {0}</source> + <source>'...'.format(...) has invalid format string: {0}</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/translations.py" line="114" /> - <source>'...' % ... has mixed positional and named placeholders</source> + <source>'...' % ... has invalid format string: {0}</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/translations.py" line="117" /> - <source>'...' % ... has unsupported format character {0!r}</source> + <source>'...' % ... has mixed positional and named placeholders</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/translations.py" line="120" /> - <source>'...' % ... has {0:d} placeholder(s) but {1:d} substitution(s)</source> + <source>'...' % ... has unsupported format character {0!r}</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/translations.py" line="123" /> - <source>'...' % ... has unused named argument(s): {0}</source> + <source>'...' % ... has {0:d} placeholder(s) but {1:d} substitution(s)</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/translations.py" line="126" /> - <source>'...' % ... is missing argument(s) for placeholder(s): {0}</source> + <source>'...' % ... has unused named argument(s): {0}</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/translations.py" line="129" /> - <source>'...' % ... expected mapping but got sequence</source> + <source>'...' % ... is missing argument(s) for placeholder(s): {0}</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/translations.py" line="132" /> - <source>'...' % ... expected sequence but got mapping</source> + <source>'...' % ... expected mapping but got sequence</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/translations.py" line="135" /> - <source>'...' % ... `*` specifier requires sequence</source> + <source>'...' % ... expected sequence but got mapping</source> <translation type="unfinished" /> </message> <message> <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/translations.py" line="138" /> + <source>'...' % ... `*` specifier requires sequence</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/translations.py" line="141" /> <source>'if tuple literal' is always true, perhaps remove accidental comma?</source> <translation type="unfinished" /> </message> <message> - <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/translations.py" line="162" /> + <location filename="../Plugins/CheckerPlugins/SyntaxChecker/pyflakes/translations.py" line="165" /> <source>no message defined for code '{0}'</source> <translation type="unfinished" /> </message>