--- a/src/eric7/i18n/eric7_ru.ts Sun Feb 09 15:47:57 2025 +0100 +++ b/src/eric7/i18n/eric7_ru.ts Sat Mar 01 15:52:40 2025 +0100 @@ -3918,77 +3918,82 @@ <context> <name>CheckerCategories</name> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="85" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="86" /> <source>Annotations</source> <translation>Аннотации</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="86" /> - <source>Async Functions</source> - <translation>Асинхронные функции</translation> - </message> - <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="87" /> - <source>Code Complexity</source> - <translation>Сложность кода</translation> + <source>Async Functions</source> + <translation>Асинхронные функции</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="88" /> - <source>Documentation</source> - <translation>Документация</translation> + <source>Code Complexity</source> + <translation>Сложность кода</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="89" /> - <source>Errors</source> - <translation>Ошибки</translation> + <source>Documentation</source> + <translation>Документация</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="90" /> - <source>Imports</source> - <translation>Импорт</translation> + <source>Errors</source> + <translation>Ошибки</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="91" /> - <source>Logging</source> - <translation>Ведение журнала</translation> + <source>Imports</source> + <translation>Импорт</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="92" /> - <source>Miscellaneous</source> - <translation>Разное</translation> + <source>Logging</source> + <translation>Ведение журнала</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="93" /> - <source>Naming</source> - <translation>Именованные</translation> + <source>Miscellaneous</source> + <translation>Разное</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="94" /> - <source>Name Order</source> - <translation>Порядок имен</translation> + <source>Naming</source> + <translation>Именованные</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="95" /> - <source>'pathlib' Usage</source> - <translation>Использование 'pathlib'</translation> + <source>Name Order</source> + <translation>Порядок имен</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="96" /> - <source>Security</source> - <translation>Безопасность</translation> + <source>'pathlib' Usage</source> + <translation>Использование 'pathlib'</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="97" /> + <source>'pydantic' and 'dataclass' Usage</source> + <translation>Использование 'pydantic' и 'dataclass'</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="100" /> + <source>Security</source> + <translation>Безопасность</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="101" /> <source>Unused</source> <translation>Неиспользуемые</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="98" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="102" /> <source>Warnings</source> <translation>Предупреждения</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="99" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="103" /> <source>Simplify Code</source> <translation>Упрощенный код</translation> </message> @@ -5090,7 +5095,7 @@ <context> <name>CodeStyleChecker</name> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="516" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="528" /> <source>No message defined for code '{0}'.</source> <translation>Не определено сообщение для кода '{0}'.</translation> </message> @@ -6117,59 +6122,59 @@ <translation>Отфильтровать</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="131" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="135" /> <source>PEP-257</source> <translation>PEP-257</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="132" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="136" /> <source>Eric</source> <translation>Eric</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="133" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="137" /> <source>Eric (Blacked)</source> <translation>Eric (Blacked)</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="239" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="243" /> <source>Errors</source> <translation>Ошибки</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="264" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="268" /> <source>Error: {0}</source> <translation>Ошибка: {0}</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1252" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1256" /> <source>{0} (ignored)</source> <translation>{0} (проигнорировано)</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1327" /> - <source>No issues found.</source> - <translation>Проблем со стилем не найдено.</translation> - </message> - <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1331" /> + <source>No issues found.</source> + <translation>Проблем со стилем не найдено.</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1335" /> <source>No files found (check your ignore list).</source> <translation>Файлы не найдены (проверьте ваш игнор-лист).</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1652" /> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1611" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1656" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="1615" /> <source>{0} - {1}</source> <comment>issue code, message</comment> <translation>{0} - {1}</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2997" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="3010" /> <source>Commented Code Whitelist Pattern</source> <translation>Шаблон закомментированного кода</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="2998" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/CodeStyleCheckerDialog.py" line="3011" /> <source>Enter a Commented Code Whitelist Pattern</source> <translation>Задайте шаблон закомментированного кода</translation> </message> @@ -6239,146 +6244,146 @@ <context> <name>CodeStyleFixer</name> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="254" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="265" /> <source>Triple single quotes converted to triple double quotes.</source> <translation>Утроенные одинарные кавычки заменены утроенными двойными.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="257" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="268" /> <source>Introductory quotes corrected to be {0}"""</source> <translation>Кавычки во введении исправлены на {0}"""</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="260" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="271" /> <source>Single line docstring put on one line.</source> <translation>Одиночная строка документации располагается в одной строке.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="263" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="274" /> <source>Period added to summary line.</source> <translation>Добавлена точка в строке резюме.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="290" /> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="266" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="301" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="277" /> <source>Blank line before function/method docstring removed.</source> <translation>Удалена пустая строка перед строкой документации для function/method.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="269" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="280" /> <source>Blank line inserted before class docstring.</source> <translation>Добавлена пустая строка перед строкой документации для class.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="272" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="283" /> <source>Blank line inserted after class docstring.</source> <translation>Добавлена пустая строка после строки документации для class.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="275" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="286" /> <source>Blank line inserted after docstring summary.</source> <translation>Добавлена пустая строка после резюме строки документации.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="278" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="289" /> <source>Blank line inserted after last paragraph of docstring.</source> <translation>Добавлена пустая строка после последнего абзаца строки документации.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="281" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="292" /> <source>Leading quotes put on separate line.</source> <translation>Открывающие кавычки размещены на отдельной строке.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="284" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="295" /> <source>Trailing quotes put on separate line.</source> <translation>Закрывающие кавычки размещены на отдельной строке.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="287" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="298" /> <source>Blank line before class docstring removed.</source> <translation>Удалена пустая строка перед строкой документации для class.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="293" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="304" /> <source>Blank line after class docstring removed.</source> <translation>Удалена пустая строка после строки документации для class.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="296" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="307" /> <source>Blank line after function/method docstring removed.</source> <translation>Удалена пустая строка после строки документации для function/method.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="299" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="310" /> <source>Blank line after last paragraph removed.</source> <translation>Удалена пустая строка после последнего абзаца.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="302" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="313" /> <source>Tab converted to 4 spaces.</source> <translation>Символы табуляции заменяются на 4 пробела.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="305" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="316" /> <source>Indentation adjusted to be a multiple of four.</source> <translation>Величина отступа задана кратной четырём.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="308" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="319" /> <source>Indentation of continuation line corrected.</source> <translation>Исправлен размер отступа строки продолжения.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="311" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="322" /> <source>Indentation of closing bracket corrected.</source> <translation>Исправлен размер отступа закрывающей скобки.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="314" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="325" /> <source>Missing indentation of continuation line corrected.</source> <translation>Добавлен отступ к строке продолжения.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="317" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="328" /> <source>Closing bracket aligned to opening bracket.</source> <translation>Закрывающая скобка выровнена с открывающей.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="320" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="331" /> <source>Indentation level changed.</source> <translation>Изменен размер отступа.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="323" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="334" /> <source>Indentation level of hanging indentation changed.</source> <translation>Изменен размер отступа для висячих отступов.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="326" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="337" /> <source>Visual indentation corrected.</source> <translation>Исправленена величина визуального отступа.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="341" /> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="335" /> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="329" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="352" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="346" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="340" /> <source>Extraneous whitespace removed.</source> <translation>Посторонние пробельные символы удалены.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="338" /> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="332" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="349" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="343" /> <source>Missing whitespace added.</source> <translation>Добавлены недостающие пробельные символы.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="344" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="355" /> <source>Whitespace around comment sign corrected.</source> <translation>Пробельные символы вокруг символа комментария откорректированы.</translation> </message> <message numerus="yes"> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="347" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="358" /> <source>%n blank line(s) inserted.</source> <translation> <numerusform>%n пустая строка вставлена.</numerusform> @@ -6387,7 +6392,7 @@ </translation> </message> <message numerus="yes"> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="350" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="361" /> <source>%n superfluous lines removed</source> <translation> <numerusform>%n лишняя пустая строка удалена</numerusform> @@ -6396,73 +6401,73 @@ </translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="353" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="364" /> <source>Superfluous blank lines removed.</source> <translation>Удалены лишние пустые строки.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="356" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="367" /> <source>Superfluous blank lines after function decorator removed.</source> <translation>Удалены лишние пустые строки после декоратора функции.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="359" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="370" /> <source>Imports were put on separate lines.</source> <translation>Операторы импорта помещены на отдельных строках.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="362" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="373" /> <source>Long lines have been shortened.</source> <translation>Укорочены длинные строки.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="365" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="376" /> <source>Redundant backslash in brackets removed.</source> <translation>Удалены излишние символы '\'.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="371" /> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="368" /> - <source>Compound statement corrected.</source> - <translation>Составная инструкция исправлена.</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="374" /> - <source>Comparison to None/True/False corrected.</source> - <translation>Исправлено сравнение с None/True/False.</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="377" /> - <source>'{0}' argument added.</source> - <translation>Добавлен '{0}' аргумент.</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="378" /> - <source>'{0}' argument removed.</source> - <translation>Удалён '{0}' аргумент.</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="379" /> - <source>Whitespace stripped from end of line.</source> - <translation>Завершающие пробельные символы обрезаны.</translation> - </message> - <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="382" /> - <source>newline added to end of file.</source> - <translation>символ новой строки добавлен в конец файла.</translation> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="379" /> + <source>Compound statement corrected.</source> + <translation>Составная инструкция исправлена.</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="385" /> - <source>Superfluous trailing blank lines removed from end of file.</source> - <translation>Удалены пустые строки в конце файла.</translation> + <source>Comparison to None/True/False corrected.</source> + <translation>Исправлено сравнение с None/True/False.</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="388" /> - <source>'<>' replaced by '!='.</source> - <translation>'<>' заменен на '!='.</translation> + <source>'{0}' argument added.</source> + <translation>Добавлен '{0}' аргумент.</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="389" /> + <source>'{0}' argument removed.</source> + <translation>Удалён '{0}' аргумент.</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="390" /> + <source>Whitespace stripped from end of line.</source> + <translation>Завершающие пробельные символы обрезаны.</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="393" /> + <source>newline added to end of file.</source> + <translation>символ новой строки добавлен в конец файла.</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="396" /> + <source>Superfluous trailing blank lines removed from end of file.</source> + <translation>Удалены пустые строки в конце файла.</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="399" /> + <source>'<>' replaced by '!='.</source> + <translation>'<>' заменен на '!='.</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="400" /> <source>Could not save the file! Skipping it. Reason: {0}</source> <translation>Не удалось сохранить файл! Пропускаем. Причина: {0}</translation> </message> @@ -12587,7 +12592,7 @@ <translation>Раскомментировать</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="10163" /> + <location filename="../QScintilla/Editor.py" line="10164" /> <location filename="../QScintilla/Editor.py" line="1015" /> <source>Generate Docstring</source> <translation>Генерировать строки документации</translation> @@ -12870,7 +12875,7 @@ <translation>Проверка орфографии</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="9251" /> + <location filename="../QScintilla/Editor.py" line="9252" /> <location filename="../QScintilla/Editor.py" line="1420" /> <source>Check spelling...</source> <translation>Проверка орфографии...</translation> @@ -12931,7 +12936,7 @@ <translation>Редактировать точку останова...</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="6593" /> + <location filename="../QScintilla/Editor.py" line="6594" /> <location filename="../QScintilla/Editor.py" line="1505" /> <source>Enable breakpoint</source> <translation>Установить точку останова</translation> @@ -13175,370 +13180,370 @@ <translation>Введите полный путь к файлу устройства:</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="5742" /> + <location filename="../QScintilla/Editor.py" line="5743" /> <source>Autocompletion</source> <translation>Автодополнение</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="5743" /> + <location filename="../QScintilla/Editor.py" line="5744" /> <source>Autocompletion is not available because there is no autocompletion source set.</source> <translation>Автодополнение недоступно, так как не задан источник автодополнения.</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="5877" /> - <source>Auto-Completion Provider</source> - <translation>Источник автодополнений</translation> - </message> - <message> <location filename="../QScintilla/Editor.py" line="5878" /> + <source>Auto-Completion Provider</source> + <translation>Источник автодополнений</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="5879" /> <source>The completion list provider '{0}' was already registered. Ignoring duplicate request.</source> <translation>Список дополнений источника '{0}' уже зарегистрирован. Повторный запрос проигнорирован.</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="6174" /> - <source>Call-Tips Provider</source> - <translation>Источник всплывающих подсказок</translation> - </message> - <message> <location filename="../QScintilla/Editor.py" line="6175" /> + <source>Call-Tips Provider</source> + <translation>Источник всплывающих подсказок</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="6176" /> <source>The call-tips provider '{0}' was already registered. Ignoring duplicate request.</source> <translation>Источник всплывающих подсказок '{0}' уже зарегистрирован. Повторный запрос проигнорирован.</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="6597" /> + <location filename="../QScintilla/Editor.py" line="6598" /> <source>Disable breakpoint</source> <translation>Убрать точку останова</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="7021" /> - <source>Code Coverage</source> - <translation>Покрытие кода</translation> - </message> - <message> <location filename="../QScintilla/Editor.py" line="7022" /> + <source>Code Coverage</source> + <translation>Покрытие кода</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="7023" /> <source>Please select a coverage file</source> <translation>Пожалуйста выберите файл покрытия</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="7084" /> - <source>Load Coverage Data</source> - <translation>Загрузить данные покрытия</translation> - </message> - <message> <location filename="../QScintilla/Editor.py" line="7085" /> + <source>Load Coverage Data</source> + <translation>Загрузить данные покрытия</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="7086" /> <source><p>The coverage data could not be loaded from file <b>{0}</b>.</p><p>Reason: {1}</p></source> <translation><p>Не удалось загрузить данные о покрытии из файла <b>{0}</b>.</p><p>Причина: {1}</p></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="7114" /> - <location filename="../QScintilla/Editor.py" line="7106" /> - <source>Show Code Coverage Annotations</source> - <translation>Показать аннотации по покрытию кода</translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="7107" /> - <source>All lines have been covered.</source> - <translation>Все строки были охвачены.</translation> - </message> - <message> <location filename="../QScintilla/Editor.py" line="7115" /> + <location filename="../QScintilla/Editor.py" line="7107" /> + <source>Show Code Coverage Annotations</source> + <translation>Показать аннотации по покрытию кода</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="7108" /> + <source>All lines have been covered.</source> + <translation>Все строки были охвачены.</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="7116" /> <source>There is no coverage file available.</source> <translation>Нет доступного файла покрытия.</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="7223" /> - <source>Profile Data</source> - <translation>Данные профайлера</translation> - </message> - <message> <location filename="../QScintilla/Editor.py" line="7224" /> + <source>Profile Data</source> + <translation>Данные профайлера</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="7225" /> <source>Please select a profile file</source> <translation>Пожалуйста, выберите файл профиля</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="7386" /> - <location filename="../QScintilla/Editor.py" line="7380" /> - <source>Syntax Error</source> - <translation>Синтаксическая ошибка</translation> - </message> - <message> <location filename="../QScintilla/Editor.py" line="7387" /> + <location filename="../QScintilla/Editor.py" line="7381" /> + <source>Syntax Error</source> + <translation>Синтаксическая ошибка</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="7388" /> <source>No syntax error message available.</source> <translation>Нет сообщения о синтаксической ошибке.</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="7634" /> - <location filename="../QScintilla/Editor.py" line="7628" /> + <location filename="../QScintilla/Editor.py" line="7635" /> + <location filename="../QScintilla/Editor.py" line="7629" /> <source>Warning</source> <translation>Предупреждение</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="7634" /> + <location filename="../QScintilla/Editor.py" line="7635" /> <source>No warning messages available.</source> <translation>Нет предупреждающего сообщения.</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="7713" /> + <location filename="../QScintilla/Editor.py" line="7714" /> <source>Info: {0}</source> <translation>Инфо: {0}</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="7729" /> - <location filename="../QScintilla/Editor.py" line="7715" /> + <location filename="../QScintilla/Editor.py" line="7730" /> + <location filename="../QScintilla/Editor.py" line="7716" /> <source>Error: {0}</source> <translation>Ошибка: {0}</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="7717" /> + <location filename="../QScintilla/Editor.py" line="7718" /> <source>Style: {0}</source> <translation>Стиль: {0}</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="7722" /> + <location filename="../QScintilla/Editor.py" line="7723" /> <source>Warning: {0}</source> <translation>Предупреждение: {0}</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="7852" /> + <location filename="../QScintilla/Editor.py" line="7853" /> <source>Macro Name</source> <translation>Имя макроса</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="7852" /> + <location filename="../QScintilla/Editor.py" line="7853" /> <source>Select a macro name:</source> <translation>Задайте имя макроса:</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="7878" /> + <location filename="../QScintilla/Editor.py" line="7879" /> <source>Load macro file</source> <translation>Загрузить макрос</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="7924" /> - <location filename="../QScintilla/Editor.py" line="7880" /> + <location filename="../QScintilla/Editor.py" line="7925" /> + <location filename="../QScintilla/Editor.py" line="7881" /> <source>Macro files (*.macro)</source> <translation>Макросы (*.macro)</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="7902" /> - <location filename="../QScintilla/Editor.py" line="7892" /> - <source>Error loading macro</source> - <translation>Ошибка при загрузке макроса</translation> - </message> - <message> - <location filename="../QScintilla/Editor.py" line="7893" /> - <source><p>The macro file <b>{0}</b> could not be read.</p></source> - <translation><p>Невозможно прочитать файл с макросами: <b>{0}</b>.</p></translation> - </message> - <message> <location filename="../QScintilla/Editor.py" line="7903" /> + <location filename="../QScintilla/Editor.py" line="7893" /> + <source>Error loading macro</source> + <translation>Ошибка при загрузке макроса</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="7894" /> + <source><p>The macro file <b>{0}</b> could not be read.</p></source> + <translation><p>Невозможно прочитать файл с макросами: <b>{0}</b>.</p></translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="7904" /> <source><p>The macro file <b>{0}</b> is corrupt.</p></source> <translation><p>Файл с макросами <b>{0}</b> повреждён.</p></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="7922" /> + <location filename="../QScintilla/Editor.py" line="7923" /> <source>Save macro file</source> <translation>Сохранить файл с макросами</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="7940" /> - <source>Save macro</source> - <translation>Сохранить макрос</translation> - </message> - <message> <location filename="../QScintilla/Editor.py" line="7941" /> + <source>Save macro</source> + <translation>Сохранить макрос</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="7942" /> <source><p>The macro file <b>{0}</b> already exists. Overwrite it?</p></source> <translation><p>Макро <b>{0}</b> уже существует. Переписать?</p></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="7956" /> - <source>Error saving macro</source> - <translation>Ошибка при сохранении макроса</translation> - </message> - <message> <location filename="../QScintilla/Editor.py" line="7957" /> + <source>Error saving macro</source> + <translation>Ошибка при сохранении макроса</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="7958" /> <source><p>The macro file <b>{0}</b> could not be written.</p></source> <translation><p>Невозможно сохранить файл с макросами: <b>{0}</b>.</p></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="7970" /> - <source>Start Macro Recording</source> - <translation>Начать запись макроса</translation> - </message> - <message> <location filename="../QScintilla/Editor.py" line="7971" /> + <source>Start Macro Recording</source> + <translation>Начать запись макроса</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="7972" /> <source>Macro recording is already active. Start new?</source> <translation>Запись макроса уже идёт. Начать новую запись?</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="7997" /> - <source>Macro Recording</source> - <translation>Запись макроса</translation> - </message> - <message> <location filename="../QScintilla/Editor.py" line="7998" /> + <source>Macro Recording</source> + <translation>Запись макроса</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="7999" /> <source>Enter name of the macro:</source> <translation>Задайте имя макроса:</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="8215" /> + <location filename="../QScintilla/Editor.py" line="8216" /> <source>{0} (ro)</source> <translation>{0} (только чтение)</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="8412" /> + <location filename="../QScintilla/Editor.py" line="8413" /> <source><p>The file <b>{0}</b> has been changed while it was opened in eric. Reread it?</p></source> <translation><p>Файл <b>{0}</b> был изменён, будучи открытым в eric. Перепрочесть?</p></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="8418" /> + <location filename="../QScintilla/Editor.py" line="8419" /> <source><br><b>Warning:</b> You will lose your changes upon reopening it.</source> <translation><br><b>Предупреждение:</b> При переоткрытии все изменения будут потеряны.</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="8425" /> + <location filename="../QScintilla/Editor.py" line="8426" /> <source>File changed</source> <translation>Файл изменен</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="8569" /> - <source>Reload File</source> - <translation>Перезагрузить файл</translation> - </message> - <message> <location filename="../QScintilla/Editor.py" line="8570" /> + <source>Reload File</source> + <translation>Перезагрузить файл</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="8571" /> <source><p>The editor contains unsaved modifications.</p><p><b>Warning:</b> You will lose your changes upon reloading it.</p><p>Shall the editor really be reloaded?</p></source> <translation><p>Редактор содержит несохраненные изменения.</p><p><b>Внимание:</b> Вы потеряете свои изменения при повторной загрузке.</p><p>Действительно перезагрузить редактор?</p></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="8670" /> - <source>Drop Error</source> - <translation>Ошибка Drag&&Drop</translation> - </message> - <message> <location filename="../QScintilla/Editor.py" line="8671" /> + <source>Drop Error</source> + <translation>Ошибка Drag&&Drop</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="8672" /> <source><p><b>{0}</b> is not a file.</p></source> <translation><p><b>{0}</b> не является файлом.</p></translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="8692" /> + <location filename="../QScintilla/Editor.py" line="8693" /> <source>Resources</source> <translation>Ресурсы</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="8694" /> - <source>Add file...</source> - <translation>Добавить файл...</translation> - </message> - <message> <location filename="../QScintilla/Editor.py" line="8695" /> - <source>Add files...</source> - <translation>Добавить файлы...</translation> + <source>Add file...</source> + <translation>Добавить файл...</translation> </message> <message> <location filename="../QScintilla/Editor.py" line="8696" /> + <source>Add files...</source> + <translation>Добавить файлы...</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="8697" /> <source>Add aliased file...</source> <translation>Добавить файл под другим именем...</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="8698" /> + <location filename="../QScintilla/Editor.py" line="8699" /> <source>Add localized resource...</source> <translation>Добавить локализованный ресурс...</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="8701" /> + <location filename="../QScintilla/Editor.py" line="8702" /> <source>Add resource frame</source> <translation>Добавить фрагмент ресурсов</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="8721" /> + <location filename="../QScintilla/Editor.py" line="8722" /> <source>Add file resource</source> <translation>Добавить файл ресурсов</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="8735" /> + <location filename="../QScintilla/Editor.py" line="8736" /> <source>Add file resources</source> <translation>Добавить файлы ресурсов</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="8759" /> - <location filename="../QScintilla/Editor.py" line="8753" /> - <source>Add aliased file resource</source> - <translation>Добавить файл ресурсов под другим именем</translation> - </message> - <message> <location filename="../QScintilla/Editor.py" line="8760" /> + <location filename="../QScintilla/Editor.py" line="8754" /> + <source>Add aliased file resource</source> + <translation>Добавить файл ресурсов под другим именем</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="8761" /> <source>Alias for file <b>{0}</b>:</source> <translation>Другое имя для файла <b>{0}</b>:</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="8842" /> - <source>Package Diagram</source> - <translation>Диаграмма пакетов</translation> - </message> - <message> <location filename="../QScintilla/Editor.py" line="8843" /> + <source>Package Diagram</source> + <translation>Диаграмма пакетов</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="8844" /> <source>Include class attributes?</source> <translation>Включать атрибуты класса?</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="8863" /> - <source>Imports Diagram</source> - <translation>Диаграмма импортов</translation> - </message> - <message> <location filename="../QScintilla/Editor.py" line="8864" /> + <source>Imports Diagram</source> + <translation>Диаграмма импортов</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="8865" /> <source>Include imports from external modules?</source> <translation>Включать импорты из внешних модулей?</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="8883" /> - <source>Application Diagram</source> - <translation>Диаграмма приложения</translation> - </message> - <message> <location filename="../QScintilla/Editor.py" line="8884" /> + <source>Application Diagram</source> + <translation>Диаграмма приложения</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="8885" /> <source>Include module names?</source> <translation>Включать имена модулей?</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="9255" /> + <location filename="../QScintilla/Editor.py" line="9256" /> <source>Add to dictionary</source> <translation>Добавить в словарь</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="9257" /> + <location filename="../QScintilla/Editor.py" line="9258" /> <source>Ignore All</source> <translation>Игнорировать всё</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="9704" /> - <source>Sort Lines</source> - <translation>Сортировать строки</translation> - </message> - <message> <location filename="../QScintilla/Editor.py" line="9705" /> + <source>Sort Lines</source> + <translation>Сортировать строки</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="9706" /> <source>The selection contains illegal data for a numerical sort.</source> <translation>Выборка содержит данные неподходящие для сортировки как числа.</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="9798" /> - <source>Register Mouse Click Handler</source> - <translation>Регистрация обработчика кликов мышки</translation> - </message> - <message> <location filename="../QScintilla/Editor.py" line="9799" /> + <source>Register Mouse Click Handler</source> + <translation>Регистрация обработчика кликов мышки</translation> + </message> + <message> + <location filename="../QScintilla/Editor.py" line="9800" /> <source>A mouse click handler for "{0}" was already registered by "{1}". Aborting request by "{2}"...</source> <translation>Обработчик кликов мышки для "{0}" уже зарегистрирован "{1}". Запрос прерван "{2}"...</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="9892" /> + <location filename="../QScintilla/Editor.py" line="9893" /> <source>{0:4d} {1}</source> <comment>line number, source code</comment> <translation>{0:4d} {1}</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="9898" /> + <location filename="../QScintilla/Editor.py" line="9899" /> <source>{0:4d} {1} => {2}</source> <comment>line number, source code, file name</comment> @@ -13546,12 +13551,12 @@ => {2}</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="9976" /> + <location filename="../QScintilla/Editor.py" line="9977" /> <source>EditorConfig Properties</source> <translation>Свойства EditorConfig</translation> </message> <message> - <location filename="../QScintilla/Editor.py" line="9977" /> + <location filename="../QScintilla/Editor.py" line="9978" /> <source><p>The EditorConfig properties for file <b>{0}</b> could not be loaded.</p></source> <translation><p>Не удается загрузить свойства EditorConfig для файла <b>{0}</b>.</p></translation> </message> @@ -52886,18 +52891,18 @@ <context> <name>MicroPythonDevice</name> <message> - <location filename="../MicroPython/Devices/__init__.py" line="375" /> + <location filename="../MicroPython/Devices/__init__.py" line="399" /> <source>Generic MicroPython Board</source> <translation>Универсальная плата MicroPython</translation> </message> <message> - <location filename="../MicroPython/Devices/__init__.py" line="422" /> + <location filename="../MicroPython/Devices/__init__.py" line="446" /> <source>RP2040/RP2350 based</source> <translation>на базе RP2040/RP2350</translation> </message> <message> - <location filename="../MicroPython/Devices/__init__.py" line="582" /> - <location filename="../MicroPython/Devices/__init__.py" line="571" /> + <location filename="../MicroPython/Devices/__init__.py" line="606" /> + <location filename="../MicroPython/Devices/__init__.py" line="595" /> <source>Unknown Device</source> <translation>Неизвестное устройство</translation> </message> @@ -56175,18 +56180,18 @@ </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="346" /> - <source>return/continue/break inside finally blocks cause exceptions to be silenced. Exceptions should be silenced in except blocks. Control statements can be moved outside the finally block.</source> - <translation>return/continue/break внутри блоков finally заставляют исключения отключаться. Исключения должны быть отключены в блоках except. Управляющие операторы могут быть перемещены за пределы блока finally.</translation> + <source>return/continue/break inside finally blocks cause exceptions to be silenced. Exceptions should be silenced in except{0} blocks. Control statements can be moved outside the finally block.</source> + <translation>return/continue/break внутри finally blocks заставляют исключения отключаться. Исключения должны быть отключены в блоках except{0}. Управляющие операторы могут быть перемещены за пределы блока finally.</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="352" /> - <source>A length-one tuple literal is redundant. Write 'except {0}:' instead of 'except ({0},):'.</source> - <translation>Литерал односимвольного кортежа является избыточным. Используйте 'except {0}:' вместо 'except ({0},):'.</translation> + <source>A length-one tuple literal is redundant. Write 'except{1} {0}:' instead of 'except{1} ({0},):'.</source> + <translation>Литерал односимвольного кортежа является избыточным. Используйте 'except{1} {0}:' вместо 'except{1} ({0},):'.</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="357" /> - <source>Redundant exception types in 'except ({0}){1}:'. Write 'except {2}{1}:', which catches exactly the same exceptions.</source> - <translation>Избыточные типы исключений в 'except ({0}){1}:'. Используйте 'except {2}{1}:', чтобы перехватывать точно такие же исключения.</translation> + <source>Redundant exception types in 'except{3} ({0}){1}:'. Write 'except{3} {2}{1}:', which catches exactly the same exceptions.</source> + <translation>Избыточные типы исключений в 'except{3} ({0}){1}:'. Используйте 'except{3} {2}{1}:', чтобы перехватывать точно такие же исключения.</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="362" /> @@ -56240,8 +56245,8 @@ </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="417" /> - <source>Exception '{0}' has been caught multiple times. Only the first except will be considered and all other except catches can be safely removed.</source> - <translation>Исключение '{0}' было перехвачено несколько раз. Будет рассмотрено только первое исключение, а все остальные исключения могут быть безопасно удалены.</translation> + <source>Exception '{0}' has been caught multiple times. Only the first except{1} will be considered and all other except{1} catches can be safely removed.</source> + <translation>Исключение '{0}' было перехвачено несколько раз. Будет рассмотрено только первое except{1}, а все остальные except{1} могут быть безопасно удалены.</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="422" /> @@ -56260,8 +56265,8 @@ </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="442" /> - <source>Using 'except ():' with an empty tuple does not handle/catch anything. Add exceptions to handle.</source> - <translation>Использование 'except ():' с пустым кортежем ничего не обрабатывает/не перехватывает. Добавьте исключения для обработки.</translation> + <source>Using 'except{0} ():' with an empty tuple does not handle/catch anything. Add exceptions to handle.</source> + <translation>Использование 'except{0} ():' с пустым кортежем ничего не обрабатывает/не перехватывает. Добавьте исключения для обработки.</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="447" /> @@ -56300,7 +56305,7 @@ </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="480" /> - <source>Class '__init__' methods must not return or yield and any values.</source> + <source>Class '__init__' methods must not return or yield any values.</source> <translation>Методы класса '__init__' не должны возвращать или выдавать какие-либо значения.</translation> </message> <message> @@ -56314,156 +56319,171 @@ <translation>Исключение с добавленным примечанием не используется. Вы забыли его активировать?</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="495" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="494" /> + <source>Repeated key-value pair in dictionary literal.</source> + <translation>Повторяющаяся пара key-value в словарном литерале.</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="499" /> <source>Editing a loop's mutable iterable often leads to unexpected results/bugs.</source> <translation>Редактирование изменяемого итерационного параметра цикла часто приводит к неожиданным результатам/ошибкам.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="500" /> - <source>unncessary f-string</source> - <translation>ненужная f-string</translation> - </message> - <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="504" /> + <source>unncessary f-string</source> + <translation>ненужная f-string</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="508" /> <source>cannot use 'self.__class__' as first argument of 'super()' call</source> <translation>не используйте 'self .__ class__' в качестве первого аргумента вызова 'super ()'</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="509" /> - <source>found {0} formatter</source> - <translation>найден {0} форматтер</translation> - </message> - <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="513" /> - <source>format string does contain unindexed parameters</source> - <translation>строка формата действительно содержит неиндексированные параметры</translation> + <source>found {0} formatter</source> + <translation>найден {0} форматтер</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="517" /> - <source>docstring does contain unindexed parameters</source> - <translation>строка документации действительно содержит неиндексированные параметры</translation> + <source>format string does contain unindexed parameters</source> + <translation>строка формата действительно содержит неиндексированные параметры</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="521" /> - <source>other string does contain unindexed parameters</source> - <translation>другая строка действительно содержит неиндексированные параметры</translation> + <source>docstring does contain unindexed parameters</source> + <translation>строка документации действительно содержит неиндексированные параметры</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="525" /> - <source>format call uses too large index ({0})</source> - <translation>формат вызова использует слишком большой индекс ({0})</translation> + <source>other string does contain unindexed parameters</source> + <translation>другая строка действительно содержит неиндексированные параметры</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="529" /> - <source>format call uses missing keyword ({0})</source> - <translation>формат вызова использует отсутствующее ключевое слово ({0})</translation> + <source>format call uses too large index ({0})</source> + <translation>формат вызова использует слишком большой индекс ({0})</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="533" /> - <source>format call uses keyword arguments but no named entries</source> - <translation>формат вызова использует ключевые аргументы, но нет именованных записей</translation> + <source>format call uses missing keyword ({0})</source> + <translation>формат вызова использует отсутствующее ключевое слово ({0})</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="537" /> - <source>format call uses variable arguments but no numbered entries</source> - <translation>формат ячейки использует переменные аргументы, но нет пронумерованных записей</translation> + <source>format call uses keyword arguments but no named entries</source> + <translation>формат вызова использует ключевые аргументы, но нет именованных записей</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="541" /> - <source>format call uses implicit and explicit indexes together</source> - <translation>формат вызова использует скрытые и явные индексы вместе</translation> + <source>format call uses variable arguments but no numbered entries</source> + <translation>формат ячейки использует переменные аргументы, но нет пронумерованных записей</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="545" /> - <source>format call provides unused index ({0})</source> - <translation>формат вызова предоставляет неиспользованный индекс ({0})</translation> + <source>format call uses implicit and explicit indexes together</source> + <translation>формат вызова использует скрытые и явные индексы вместе</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="549" /> + <source>format call provides unused index ({0})</source> + <translation>формат вызова предоставляет неиспользованный индекс ({0})</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="553" /> <source>format call provides unused keyword ({0})</source> <translation>формат вызова предоставляет неиспользуемое ключевое слово ({0})</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="554" /> - <source>expected these __future__ imports: {0}; but only got: {1}</source> - <translation>ожидался __future__ imports: {0}; получены только: {1}</translation> - </message> - <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="558" /> + <source>expected these __future__ imports: {0}; but only got: {1}</source> + <translation>ожидался __future__ imports: {0}; получены только: {1}</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="562" /> <source>expected these __future__ imports: {0}; but got none</source> <translation>ожидался __future__ imports: {0}; не получено ничего</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="563" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="567" /> <source>gettext import with alias _ found: {0}</source> <translation>gettext import with alias _ found: {0}</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="568" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="572" /> <source>print statement found</source> <translation>обнаружена инструкция печати</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="573" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="577" /> <source>one element tuple found</source> <translation>найден одноэлементный кортеж</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="582" /> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="578" /> - <source>mutable default argument of type {0}</source> - <translation>изменяемый аргумент по умолчанию типа {0}</translation> - </message> - <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="586" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="582" /> + <source>mutable default argument of type {0}</source> + <translation>изменяемый аргумент по умолчанию типа {0}</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="590" /> <source>mutable default argument of function call '{0}'</source> <translation>измененный аргумент по умолчанию для вызова функции '{0}'</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="591" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="595" /> <source>None should not be added at any return if function has no return value except None</source> <translation>если функция не имеет возвращаемого значения, (кроме None), None не следует добавлять в каждый return</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="596" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="600" /> <source>an explicit value at every return should be added if function has a return value except None</source> <translation>если функция имеет возвращаемое значение, (кроме None), то явное значение должно быть добавлено каждому return</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="601" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="605" /> <source>an explicit return at the end of the function should be added if it has a return value except None</source> <translation>в конец функции, если она имеет возвращаемое значение, (кроме None), должен быть добавлен явный return</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="606" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="610" /> <source>a value should not be assigned to a variable if it will be used as a return value only</source> <translation>значение не должно присваиваться переменной, если оно будет использоваться только как возвращаемое значение</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="612" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="616" /> <source>prefer implied line continuation inside parentheses, brackets and braces as opposed to a backslash</source> <translation>для предполагаемого продолжения строки предпочтительнее использование круглых, квадратных или фигурных скобок, а не обратного слеша</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="618" /> - <source>implicitly concatenated string or bytes literals on one line</source> - <translation>неявно объединенные строковые или байтовые литералы в одной строке</translation> - </message> - <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="622" /> - <source>implicitly concatenated string or bytes literals over continuation line</source> - <translation>неявно объединенные строковые или байтовые литералы в строке продолжения</translation> + <source>implicitly concatenated string or bytes literals on one line</source> + <translation>неявно объединенные строковые или байтовые литералы в одной строке</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="626" /> + <source>implicitly concatenated string or bytes literals over continuation line</source> + <translation>неявно объединенные строковые или байтовые литералы в строке продолжения</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="630" /> <source>explicitly concatenated string or bytes should be implicitly concatenated</source> <translation>явно объединенные строковые или байтовые литералы должны быть неявно объединены</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="631" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="635" /> <source>commented code lines should be removed</source> <translation>закомментированные строки кода должны быть удалены</translation> </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="640" /> + <source>matching a default value should raise a `ValueError` exception</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Miscellaneous/translations.py" line="644" /> + <source>matching a default value should not contain a `return` statement before raising a `ValueError` exception</source> + <translation type="unfinished" /> + </message> </context> <context> <name>MouseClickDialog</name> @@ -58540,24 +58560,28 @@ </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/PathLib/translations.py" line="111" /> - <source>os.path.splitext('foo.bar') should be replaced by foo_path.suffix</source> - <translation>os.path.splitext('foo.bar') следует заменить на foo_path.suffix</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/PathLib/translations.py" line="115" /> + <source>os.path.splitext('foo.bar') should be replaced by foo_path.stem and foo_path.suffix</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/PathLib/translations.py" line="116" /> <source>os.path.relpath('/bar/foo', start='bar') should be replaced by foo_path.relative_to('/bar')</source> <translation>os.path.relpath('/bar/foo', start='bar') следует заменить на foo_path.relative_to('/bar')</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/PathLib/translations.py" line="120" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/PathLib/translations.py" line="121" /> <source>open('foo') should be replaced by Path('foo').open()</source> <translation>open('foo') следует заменить на Path('foo').open()</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/PathLib/translations.py" line="123" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/PathLib/translations.py" line="124" /> <source>py.path.local is in maintenance mode, use pathlib instead</source> <translation>py.path.local находится в режиме обслуживания, вместо этого используйте pathlib</translation> </message> + <message> + <source>os.path.splitext('foo.bar') should be replaced by foo_path.suffix</source> + <translation type="vanished">os.path.splitext('foo.bar') следует заменить на foo_path.suffix</translation> + </message> </context> <context> <name>PdfInfoWidget</name> @@ -59718,164 +59742,164 @@ <context> <name>Pip</name> <message> - <location filename="../PipInterface/Pip.py" line="156" /> + <location filename="../PipInterface/Pip.py" line="157" /> <source>python exited with an error ({0}).</source> <translation>python завершен с ошибкой ({0}).</translation> </message> <message> - <location filename="../PipInterface/Pip.py" line="165" /> + <location filename="../PipInterface/Pip.py" line="166" /> <source>python did not finish within 30 seconds.</source> <translation>python не завершился в течение 30 секунд.</translation> </message> <message> - <location filename="../PipInterface/Pip.py" line="167" /> + <location filename="../PipInterface/Pip.py" line="168" /> <source>python could not be started.</source> <translation>невозможно запустить python.</translation> </message> <message> - <location filename="../PipInterface/Pip.py" line="228" /> + <location filename="../PipInterface/Pip.py" line="229" /> <source><project></source> <translation><project></translation> </message> <message> - <location filename="../PipInterface/Pip.py" line="253" /> - <source>Interpreter for Virtual Environment</source> - <translation>Интерпретатор для виртуального окружения</translation> - </message> - <message> <location filename="../PipInterface/Pip.py" line="254" /> + <source>Interpreter for Virtual Environment</source> + <translation>Интерпретатор для виртуального окружения</translation> + </message> + <message> + <location filename="../PipInterface/Pip.py" line="255" /> <source>No interpreter configured for the selected virtual environment.</source> <translation>Для выбранного виртуального окружения не настроен интерпретатор.</translation> </message> <message> - <location filename="../PipInterface/Pip.py" line="307" /> + <location filename="../PipInterface/Pip.py" line="308" /> <source>Install PIP</source> <translation>Установка PIP</translation> </message> <message> - <location filename="../PipInterface/Pip.py" line="354" /> + <location filename="../PipInterface/Pip.py" line="355" /> <source>Repair PIP</source> <translation>Восстановление PIP</translation> </message> <message> - <location filename="../PipInterface/Pip.py" line="486" /> - <location filename="../PipInterface/Pip.py" line="468" /> + <location filename="../PipInterface/Pip.py" line="487" /> + <location filename="../PipInterface/Pip.py" line="469" /> <source>Upgrade Packages</source> <translation>Обновление пакетов</translation> </message> <message> - <location filename="../PipInterface/Pip.py" line="469" /> + <location filename="../PipInterface/Pip.py" line="470" /> <source>There are no packages except 'eric-ide' or 'PyQt6' left for upgrade.</source> <translation>Никаких пакетов для обновления не осталось, кроме 'eric-ide' или 'PyQt6'.</translation> </message> <message> - <location filename="../PipInterface/Pip.py" line="532" /> + <location filename="../PipInterface/Pip.py" line="533" /> <source>Install Packages</source> <translation>Установка пакетов</translation> </message> <message> - <location filename="../PipInterface/Pip.py" line="563" /> + <location filename="../PipInterface/Pip.py" line="564" /> <source>Install Packages from Requirements</source> <translation>Установка пакетов, перечисленных в зависимостях</translation> </message> <message> - <location filename="../PipInterface/Pip.py" line="585" /> + <location filename="../PipInterface/Pip.py" line="586" /> <source>Install Project</source> <translation>Установка проекта</translation> </message> <message> - <location filename="../PipInterface/Pip.py" line="620" /> - <location filename="../PipInterface/Pip.py" line="610" /> - <source>Install 'pyproject' Dependencies</source> - <translation>Установка зависимостей 'pyproject'</translation> - </message> - <message> - <location filename="../PipInterface/Pip.py" line="748" /> - <location filename="../PipInterface/Pip.py" line="611" /> - <source>The selected 'pyproject.toml' file does not contain a 'project.dependencies' section. Aborting...</source> - <translation>Выбранный файл 'project.toml' не содержит раздела 'project.dependencies'. Прервать...</translation> - </message> - <message> <location filename="../PipInterface/Pip.py" line="621" /> + <location filename="../PipInterface/Pip.py" line="611" /> + <source>Install 'pyproject' Dependencies</source> + <translation>Установка зависимостей 'pyproject'</translation> + </message> + <message> + <location filename="../PipInterface/Pip.py" line="749" /> + <location filename="../PipInterface/Pip.py" line="612" /> + <source>The selected 'pyproject.toml' file does not contain a 'project.dependencies' section. Aborting...</source> + <translation>Выбранный файл 'project.toml' не содержит раздела 'project.dependencies'. Прервать...</translation> + </message> + <message> + <location filename="../PipInterface/Pip.py" line="622" /> <source><p>The selected 'pyproject.toml' file could not be read.</p><p>Reason: {0}</p></source> <translation><p>Не удалось прочитать выбранный файл 'project.toml'.</p><p>Причина: {0}</p></translation> </message> <message> - <location filename="../PipInterface/Pip.py" line="641" /> + <location filename="../PipInterface/Pip.py" line="642" /> <source>Install Packages from 'pyproject.toml'</source> <translation>Установить пакеты из 'pyproject.toml'</translation> </message> <message> - <location filename="../PipInterface/Pip.py" line="775" /> - <location filename="../PipInterface/Pip.py" line="701" /> - <location filename="../PipInterface/Pip.py" line="671" /> - <location filename="../PipInterface/Pip.py" line="662" /> - <source>Uninstall Packages</source> - <translation>Деинсталяция пакетов</translation> - </message> - <message> <location filename="../PipInterface/Pip.py" line="776" /> <location filename="../PipInterface/Pip.py" line="702" /> + <location filename="../PipInterface/Pip.py" line="672" /> <location filename="../PipInterface/Pip.py" line="663" /> + <source>Uninstall Packages</source> + <translation>Деинсталяция пакетов</translation> + </message> + <message> + <location filename="../PipInterface/Pip.py" line="777" /> + <location filename="../PipInterface/Pip.py" line="703" /> + <location filename="../PipInterface/Pip.py" line="664" /> <source>Do you really want to uninstall these packages?</source> <translation>Вы действительно хотите деинсталировать эти пакеты?</translation> </message> <message> - <location filename="../PipInterface/Pip.py" line="719" /> + <location filename="../PipInterface/Pip.py" line="720" /> <source>Uninstall Packages from Requirements</source> <translation>Деинсталяция пакетов, перечисленных в требованиях</translation> </message> <message> - <location filename="../PipInterface/Pip.py" line="758" /> - <location filename="../PipInterface/Pip.py" line="747" /> - <source>Uninstall 'pyproject' Dependencies</source> - <translation>Деинсталировать зависимости 'pyproject'</translation> - </message> - <message> <location filename="../PipInterface/Pip.py" line="759" /> + <location filename="../PipInterface/Pip.py" line="748" /> + <source>Uninstall 'pyproject' Dependencies</source> + <translation>Деинсталировать зависимости 'pyproject'</translation> + </message> + <message> + <location filename="../PipInterface/Pip.py" line="760" /> <source><p>The selected 'pyproject.toml' file could not be read. </p><p>Reason: {0}</p></source> <translation><p>Не удалось прочитать выбранный файл 'project.toml'. </p><p>Причина: {0}</p></translation> </message> <message> - <location filename="../PipInterface/Pip.py" line="786" /> + <location filename="../PipInterface/Pip.py" line="787" /> <source>Uninstall Packages from 'pyproject.toml'</source> <translation>Деинсталировать пакеты из 'pyproject.toml'</translation> </message> <message> - <location filename="../PipInterface/Pip.py" line="1197" /> + <location filename="../PipInterface/Pip.py" line="1198" /> <source>Cache Info</source> <translation>Информация о кэше</translation> </message> <message> - <location filename="../PipInterface/Pip.py" line="1223" /> - <location filename="../PipInterface/Pip.py" line="1214" /> + <location filename="../PipInterface/Pip.py" line="1224" /> + <location filename="../PipInterface/Pip.py" line="1215" /> <source>List Cached Files</source> <translation>Список кэшированных файлов</translation> </message> <message> - <location filename="../PipInterface/Pip.py" line="1215" /> + <location filename="../PipInterface/Pip.py" line="1216" /> <source>Enter a file pattern (empty for all):</source> <translation>Задайте шаблон файлов (пустая строка - все файлы):</translation> </message> <message> - <location filename="../PipInterface/Pip.py" line="1247" /> - <location filename="../PipInterface/Pip.py" line="1240" /> + <location filename="../PipInterface/Pip.py" line="1248" /> + <location filename="../PipInterface/Pip.py" line="1241" /> <source>Remove Cached Files</source> <translation>Удалить кэшированные файлы</translation> </message> <message> - <location filename="../PipInterface/Pip.py" line="1241" /> + <location filename="../PipInterface/Pip.py" line="1242" /> <source>Enter a file pattern:</source> <translation>Задайте шаблон файла:</translation> </message> <message> - <location filename="../PipInterface/Pip.py" line="1272" /> - <location filename="../PipInterface/Pip.py" line="1264" /> + <location filename="../PipInterface/Pip.py" line="1273" /> + <location filename="../PipInterface/Pip.py" line="1265" /> <source>Purge Cache</source> <translation>Очистить кэш</translation> </message> <message> - <location filename="../PipInterface/Pip.py" line="1265" /> + <location filename="../PipInterface/Pip.py" line="1266" /> <source>Do you really want to purge the pip cache? All files need to be downloaded again.</source> <translation>Вы действительно хотите очистить pip-кэш? Все файлы должны быть загружены снова.</translation> </message> @@ -60636,6 +60660,16 @@ </message> <message> <location filename="../PipInterface/PipPackagesWidget.ui" line="0" /> + <source>Enter search term for packages</source> + <translation>Введите поисковый запрос для пакетов</translation> + </message> + <message> + <location filename="../PipInterface/PipPackagesWidget.ui" line="0" /> + <source>Package Search</source> + <translation>Поиск пакетов</translation> + </message> + <message> + <location filename="../PipInterface/PipPackagesWidget.ui" line="0" /> <source>View Type</source> <translation>Тип представления дерева зависимостей пакетов</translation> </message> @@ -60785,207 +60819,207 @@ <translation>Получение списка обновленных пакетов...</translation> </message> <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="735" /> - <location filename="../PipInterface/PipPackagesWidget.py" line="729" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="737" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="731" /> <source>Cleanup Environment</source> <translation>Очистка среды</translation> </message> <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="730" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="732" /> <source>The environment cleanup was successful.</source> <translation>Очистка среды прошла успешно.</translation> </message> <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="736" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="738" /> <source>Some leftover package directories could not been removed. Delete them manually.</source> <translation>Не удалось удалить некоторые оставшиеся директории пакетов. Удалите их вручную.</translation> </message> <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="832" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="834" /> <source>Search PyPI</source> <translation>Поиск в PyPI</translation> </message> <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="833" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="835" /> <source><p>No package details info for <b>{0}</b> available.</p></source> <translation><p>Недоступна подробная информация о пакете <b>{0}</b>.</p></translation> </message> <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="852" /> - <source>Pip</source> - <translation>Pip</translation> - </message> - <message> <location filename="../PipInterface/PipPackagesWidget.py" line="854" /> + <source>Pip</source> + <translation>Pip</translation> + </message> + <message> + <location filename="../PipInterface/PipPackagesWidget.py" line="856" /> <source>Install Pip</source> <translation>Инсталировать Pip</translation> </message> <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="857" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="859" /> <source>Install Pip to User-Site</source> <translation>Инсталировать Pip в User-Site</translation> </message> <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="860" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="862" /> <source>Repair Pip</source> <translation>Восстановить Pip</translation> </message> <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="867" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="869" /> <source>Install</source> <translation>Установить</translation> </message> <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="1046" /> - <location filename="../PipInterface/PipPackagesWidget.py" line="869" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="1048" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="871" /> <source>Install Packages</source> <translation>Установить пакеты</translation> </message> <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="872" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="874" /> <source>Install Local Package</source> <translation>Установить локальный пакет</translation> </message> <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="875" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="877" /> <source>Re-Install Selected Packages</source> <translation>Переинсталировать выбранные пакеты</translation> </message> <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="882" /> - <source>Requirements/Constraints</source> - <translation>Зависимости/Ограничения</translation> - </message> - <message> <location filename="../PipInterface/PipPackagesWidget.py" line="884" /> + <source>Requirements/Constraints</source> + <translation>Зависимости/Ограничения</translation> + </message> + <message> + <location filename="../PipInterface/PipPackagesWidget.py" line="886" /> <source>Install Requirements</source> <translation>Установить зависимости</translation> </message> <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="887" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="889" /> <source>Uninstall Requirements</source> <translation>Деинсталировать зависимости</translation> </message> <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="890" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="892" /> <source>Generate Requirements...</source> <translation>Генерировать зависимости...</translation> </message> <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="894" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="896" /> <source>Install from 'pyproject.toml'</source> <translation>Установить из 'pyproject.toml'</translation> </message> <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="898" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="900" /> <source>Uninstall from 'pyproject.toml'</source> <translation>Деинсталировать из 'pyproject.toml'</translation> </message> <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="903" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="905" /> <source>Generate Constraints...</source> <translation>Генерировать ограничения...</translation> </message> <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="910" /> - <source>Cache</source> - <translation>Кэш</translation> - </message> - <message> <location filename="../PipInterface/PipPackagesWidget.py" line="912" /> + <source>Cache</source> + <translation>Кэш</translation> + </message> + <message> + <location filename="../PipInterface/PipPackagesWidget.py" line="914" /> <source>Show Cache Info...</source> <translation>Показать информацию о кэше...</translation> </message> <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="915" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="917" /> <source>Show Cached Files...</source> <translation>Показать кэшированные файлы...</translation> </message> <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="918" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="920" /> <source>Remove Cached Files...</source> <translation>Удалить кэшированные файлы...</translation> </message> <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="921" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="923" /> <source>Purge Cache...</source> <translation>Очистить кэш...</translation> </message> <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="938" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="940" /> <source>Show Licenses...</source> <translation>Показать лицензии...</translation> </message> <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="942" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="944" /> <source>Check Vulnerabilities</source> <translation>Проверить уязвимости</translation> </message> <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="946" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="948" /> <source>Update Vulnerability Database</source> <translation>Обновить базу уязвимостей</translation> </message> <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="950" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="952" /> <source>Create SBOM file</source> <translation>Создать файл SBOM</translation> </message> <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="957" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="959" /> <source>Edit User Configuration...</source> <translation>Правка конфигурации пользователя...</translation> </message> <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="960" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="962" /> <source>Edit Environment Configuration...</source> <translation>Правка конфигурации среды окружения...</translation> </message> <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="965" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="967" /> <source>Configure...</source> <translation>Настроить...</translation> </message> <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="1209" /> - <location filename="../PipInterface/PipPackagesWidget.py" line="1196" /> - <location filename="../PipInterface/PipPackagesWidget.py" line="1185" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="1211" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="1198" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="1187" /> <source>Edit Configuration</source> <translation>Правка конфигурации</translation> </message> <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="1210" /> - <location filename="../PipInterface/PipPackagesWidget.py" line="1197" /> - <location filename="../PipInterface/PipPackagesWidget.py" line="1186" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="1212" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="1199" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="1188" /> <source>No valid configuration path determined. Aborting</source> <translation>Не определен допустимый путь конфигурации. Прерывание</translation> </message> <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="1419" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="1421" /> <source>{0} {1}</source> <comment>package name, package version</comment> <translation>{0} {1}</translation> </message> <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="1440" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="1442" /> <source>Affected Version:</source> <translatorcomment>Подверженная уязвимости версия: Пораженная версия Уязвимая</translatorcomment> <translation>Версия с уязвимостью:</translation> </message> <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="1443" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="1445" /> <source>Advisory:</source> <translatorcomment>Консультация: Рекомендация</translatorcomment> <translation>Рекомендуемая:</translation> </message> <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="1578" /> - <location filename="../PipInterface/PipPackagesWidget.py" line="1553" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="1585" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="1560" /> <source>unknown</source> <translation>неизвестная</translation> </message> <message> - <location filename="../PipInterface/PipPackagesWidget.py" line="1575" /> + <location filename="../PipInterface/PipPackagesWidget.py" line="1582" /> <source>any</source> <translation>любая</translation> </message> @@ -61085,6 +61119,21 @@ <source>Don't show 'Conda' environments</source> <translation>Не отображать среды окружения 'Conda'</translation> </message> + <message> + <location filename="../Preferences/ConfigurationPages/PipPage.ui" line="0" /> + <source>Dependencies List</source> + <translation>Список зависимостей</translation> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/PipPage.ui" line="0" /> + <source>Search Marker Background:</source> + <translation>Фон поискового маркера:</translation> + </message> + <message> + <location filename="../Preferences/ConfigurationPages/PipPage.ui" line="0" /> + <source>Select the color for the search highlight of the dependencies list.</source> + <translation>Выберите цвет подсветки поиска в списке зависимостей.</translation> + </message> </context> <context> <name>PipVulnerabilityChecker</name> @@ -62432,18 +62481,18 @@ <context> <name>Preferences</name> <message> - <location filename="../Preferences/__init__.py" line="1909" /> + <location filename="../Preferences/__init__.py" line="1910" /> <source>Export Preferences</source> <translation>Экспорт Preferences</translation> </message> <message> - <location filename="../Preferences/__init__.py" line="1938" /> - <location filename="../Preferences/__init__.py" line="1911" /> + <location filename="../Preferences/__init__.py" line="1939" /> + <location filename="../Preferences/__init__.py" line="1912" /> <source>Properties File (*.ini);;All Files (*)</source> <translation>Файлы Preferences (*.ini);;Все файлы (*)</translation> </message> <message> - <location filename="../Preferences/__init__.py" line="1936" /> + <location filename="../Preferences/__init__.py" line="1937" /> <source>Import Preferences</source> <translation>Импорт Preferences</translation> </message> @@ -69383,6 +69432,44 @@ </message> </context> <context> + <name>PydanticChecker</name> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Pydantic/translations.py" line="15" /> + <source>positional argument for Field default argument</source> + <translation>позиционный аргумент для поля по умолчанию</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Pydantic/translations.py" line="19" /> + <source>non-annotated attribute inside Pydantic model</source> + <translation>аргумент без аннотаций внутри модели Pydantic</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Pydantic/translations.py" line="23" /> + <source>unecessary Field call to specify a default value</source> + <translation>ненужный вызов поля для указания значения по умолчанию</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Pydantic/translations.py" line="27" /> + <source>default argument specified in annotated</source> + <translation>аргумент по умолчанию, указанный в аннотированном</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Pydantic/translations.py" line="31" /> + <source>field name overrides annotation</source> + <translation>имя поля переопределяет аннотацию</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Pydantic/translations.py" line="35" /> + <source>duplicate field name</source> + <translation>повторяющееся имя поля</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Pydantic/translations.py" line="39" /> + <source>usage of __pydantic_config__; consider using the `with_config` decorator</source> + <translation>Использование __pydantic_config__; рассмотрите возможность использования декоратора `with_config`</translation> + </message> + </context> + <context> <name>PytestExecutor</name> <message> <location filename="../Testing/Interfaces/PytestExecutor.py" line="42" /> @@ -74418,343 +74505,328 @@ <translation>'contextlib.suppress()' обнаружены.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="50" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="52" /> <source>Call to {0} without timeout.</source> <translation>Запросы вызова без тайм-аута.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="51" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="53" /> <source>Call to {0} with timeout set to None.</source> <translation>Запросы вызова с тайм-аутом, установленным в None.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="56" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="58" /> <source>A Flask app appears to be run with debug=True, which exposes the Werkzeug debugger and allows the execution of arbitrary code.</source> <translation>Приложение Flask запускается с параметром 'debug=True', который предоставляет отладчик Werkzeug и позволяет выполнять произвольный код.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="62" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="64" /> <source>Usage of 'tarfile.extractall(members=function(tarfile))'. Make sure your function properly discards dangerous members ({0}).</source> <translation>Используется 'tarfile.extractall(members=function(tarfile))'. Убедитесь, что ваша функция правильно отбрасывает опасные элементы ({0}).</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="67" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="69" /> <source>Found 'tarfile.extractall(members=?)' but couldn't identify the type of members. Check if the members were properly validated ({0}).</source> <translation>Найдено 'tarfile.extractall(members=?)', но не удалось определить тип членов. Проверьте правильность проверки членов ({0}).</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="72" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="74" /> <source>'tarfile.extractall()' used without any validation. Please check and discard dangerous members.</source> <translation>'tarfile.extractall()' используется без какой-либо валидации. Пожалуйста, проверьте и отбросьте опасные элементы.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="78" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="80" /> <source>Pickle and modules that wrap it can be unsafe when used to deserialize untrusted data, possible security issue.</source> <translation>Pickle и модули, которые служат его оберткой, могут быть небезопасны, когда используются для десериализации ненадежных данных, возможная проблема безопасности.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="83" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="85" /> <source>Deserialization with the marshal module is possibly dangerous.</source> <translation>Десериализация с помощью модуля marshal, возможно опасна.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="86" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="88" /> <source>Use of insecure MD2, MD4, MD5, or SHA1 hash function.</source> <translation>Использование небезопасной хеш-функции MD2, MD4, MD5 или SHA1.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="89" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="91" /> <source>Use of insecure cipher '{0}'. Replace with a known secure cipher such as AES.</source> <translation>Использование небезопасного шифра '{0}'. Замените известным безопасным шифром, таким как AES.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="94" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="96" /> <source>Use of insecure cipher mode '{0}'.</source> <translation>Использование небезопасного режима шифрования '{0}'.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="97" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="99" /> <source>Use of insecure and deprecated function (mktemp).</source> <translation>Использование небезопасной и устаревшей функции (mktemp).</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="100" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="102" /> <source>Use of possibly insecure function - consider using safer ast.literal_eval.</source> <translation>Использование возможно небезопасной функции - рассмотрите возможность использования более безопасного ast.literal_eval.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="104" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="106" /> <source>Use of mark_safe() may expose cross-site scripting vulnerabilities and should be reviewed.</source> <translation>Использование mark_safe () может проявить уязвимости межсайтового скриптинга и должно быть пересмотрено.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="109" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="111" /> <source>Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.</source> <translation>Аудит url открыт для разрешенных схем. Разрешение использования file:/ или пользовательских схем часто бывает неожиданным.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="114" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="116" /> <source>Standard pseudo-random generators are not suitable for security/cryptographic purposes.</source> <translation>Стандартные псевдослучайные генераторы не подходят для целей безопасности/криптографии.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="119" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="121" /> <source>Telnet-related functions are being called. Telnet is considered insecure. Use SSH or some other encrypted protocol.</source> <translation>Вызваны функции, связанные с Telnet. Telnet считается небезопасным. Используйте SSH или другой протокол шифрования.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="160" /> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="154" /> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="148" /> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="142" /> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="136" /> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="130" /> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="124" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="162" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="156" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="150" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="144" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="138" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="132" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="126" /> <source>Using '{0}' to parse untrusted XML data is known to be vulnerable to XML attacks. Replace '{0}' with its defusedxml equivalent function or make sure defusedxml.defuse_stdlib() is called.</source> <translation>Известно, что использование '{0}' для анализа ненадежных данных XML уязвимо для атак XML. Замените '{0}' его эквивалентной функцией defusedxml или убедитесь, что вызывается defusedxml.defuse_stdlib().</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="166" /> - <source>Using '{0}' to parse untrusted XML data is known to be vulnerable to XML attacks. Replace '{0}' with its defusedxml equivalent function.</source> - <translation>Известно, что использование '{0}' для анализа ненадежных данных XML уязвимо для атак XML. Замените '{0}' его эквивалентной функцией defusedxml.</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="172" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="168" /> <source>FTP-related functions are being called. FTP is considered insecure. Use SSH/SFTP/SCP or some other encrypted protocol.</source> <translation>Вызваны связанные с FTP функции. FTP считается небезопасным. Используйте SSH/SFTP/SCP или другой протокол шифрования.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="177" /> - <source>The input method in Python 2 will read from standard input, evaluate and run the resulting string as Python source code. This is similar, though in many ways worse, than using eval. On Python 2, use raw_input instead, input is safe in Python 3.</source> - <translation>The input method in Python 2 will read from standard input, evaluate and run the resulting string as Python source code. This is similar, though in many ways worse, than using eval. On Python 2, use raw_input instead, input is safe in Python 3.</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="184" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="173" /> <source>By default, Python will create a secure, verified SSL context for use in such classes as HTTPSConnection. However, it still allows using an insecure context via the _create_unverified_context that reverts to the previous behavior that does not validate certificates or perform hostname checks.</source> <translation>По умолчанию Python создаст безопасный проверенный контекст SSL для использования в таких классах, как HTTPSConnection. Но, тем не менее, он все еще позволяет использовать незащищенный контекст через _create_unverified_context, который возвращается к предыдущему поведению, которое не проверяет сертификаты или не выполняет проверки имени хоста.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="193" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="182" /> <source>Use of insecure {0} hash function.</source> <translation>Использование небезопасной хэш-функции {0}.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="196" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="185" /> <source>Use of insecure {0} hash for security. Consider 'usedforsecurity=False'.</source> <translation>Использование небезопасного хэша {0} в целях безопасности. Рассмотрим «usedforsecurity=False».</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="201" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="190" /> <source>A telnet-related module is being imported. Telnet is considered insecure. Use SSH or some other encrypted protocol.</source> <translation>Импортируется модуль, связанный с telnet. Telnet считается небезопасным. Используйте SSH или другой протокол шифрования.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="206" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="195" /> <source>A FTP-related module is being imported. FTP is considered insecure. Use SSH/SFTP/SCP or some other encrypted protocol.</source> <translation>Импортируется модуль, связанный с FTP. FTP считается небезопасным. Используйте SSH/SFTP/SCP или другой протокол шифрования.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="215" /> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="211" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="204" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="200" /> <source>Consider possible security implications associated with the '{0}' module.</source> <translation>Учитывайте возможные последствия для безопасности, связанные с модулем {0}.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="243" /> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="237" /> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="231" /> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="225" /> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="219" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="232" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="226" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="220" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="214" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="208" /> <source>Using '{0}' to parse untrusted XML data is known to be vulnerable to XML attacks. Replace '{0}' with the equivalent defusedxml package, or make sure defusedxml.defuse_stdlib() is called.</source> <translation>Известно, что использование '{0}' для анализа ненадежных данных XML уязвимо для атак XML. Замените '{0}' эквивалентным пакетом defusedxml или убедитесь, что вызывается defusedxml.defuse_stdlib ().</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="249" /> - <source>Using '{0}' to parse untrusted XML data is known to be vulnerable to XML attacks. Replace '{0}' with the equivalent defusedxml package.</source> - <translation>Известно, что использование '{0}' для анализа ненадежных данных XML уязвимо для XML-атак. Замените '{0}' эквивалентным пакетом defusedxml.</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="255" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="238" /> <source>Using '{0}' to parse untrusted XML data is known to be vulnerable to XML attacks. Use defusedxml.xmlrpc.monkey_patch() function to monkey-patch xmlrpclib and mitigate XML vulnerabilities.</source> <translation>Известно, что использование '{0}' для анализа ненадежных данных XML уязвимо для XML-атак. Используйте функцию defusedxml.xmlrpc.monkey_patch(), чтобы обезопасить xmlrpclib и устранить уязвимости XML.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="261" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="244" /> <source>Consider possible security implications associated with '{0}' module.</source> <translation>Учтитывайте возможные последствия для безопасности, связанные с модулем '{0}'.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="265" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="248" /> <source>The pyCrypto library and its module '{0}' are no longer actively maintained and have been deprecated. Consider using pyca/cryptography library.</source> <translation>Библиотека pyCrypto и ее модуль '{0}' больше не поддерживаются и не рекомендуются к использованию. Подумайте об использовании библиотеки pyca/cryptography.</translation> </message> <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="254" /> + <source>An IPMI-related module is being imported. IPMI is considered insecure. Use an encrypted protocol.</source> + <translation>Импортируется модуль, связанный с IPMI. IPMI считается небезопасным. Используйте зашифрованный протокол.</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="260" /> + <source>'requests' call with verify=False disabling SSL certificate checks, security issue.</source> + <translation>Вызов 'request' с параметром verify = False отключает проверку SSL-сертификатов, проблема безопасности.</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="266" /> + <source>'ssl.wrap_socket' call with insecure SSL/TLS protocol version identified, security issue.</source> + <translation>Вызов 'ssl.wrap_socket' с идентификацией небезопасной версии протокола SSL/TLS, проблема безопасности.</translation> + </message> + <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="271" /> - <source>An IPMI-related module is being imported. IPMI is considered insecure. Use an encrypted protocol.</source> - <translation>Импортируется модуль, связанный с IPMI. IPMI считается небезопасным. Используйте зашифрованный протокол.</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="277" /> - <source>'requests' call with verify=False disabling SSL certificate checks, security issue.</source> - <translation>Вызов 'request' с параметром verify = False отключает проверку SSL-сертификатов, проблема безопасности.</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="283" /> - <source>'ssl.wrap_socket' call with insecure SSL/TLS protocol version identified, security issue.</source> - <translation>Вызов 'ssl.wrap_socket' с идентификацией небезопасной версии протокола SSL/TLS, проблема безопасности.</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="288" /> <source>'SSL.Context' call with insecure SSL/TLS protocol version identified, security issue.</source> <translation>Вызов 'SSL.Context' с идентификацией небезопасной версии протокола SSL/TLS, проблема безопасности.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="293" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="276" /> <source>Function call with insecure SSL/TLS protocol version identified, security issue.</source> <translation>Вызов функции с идентификацией небезопасной версии протокола SSL/TLS, проблема безопасности.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="298" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="281" /> <source>Function definition identified with insecure SSL/TLS protocol version by default, possible security issue.</source> <translation>Определение функции с идентификацией небезопасной версии протокола SSL/TLS по умолчанию, возможная проблема безопасности.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="303" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="286" /> <source>'ssl.wrap_socket' call with no SSL/TLS protocol version specified, the default 'SSLv23' could be insecure, possible security issue.</source> <translation>Вызов 'ssl.wrap_socket' без указания версии протокола SSL/TLS, по умолчанию 'SSLv23', может быть небезопасным, возможна проблема безопасности.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="309" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="292" /> <source>{0} key sizes below {1:d} bits are considered breakable.</source> <translation>Размеры ключей {0} меньше {1:d} битов считаются разрушаемыми.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="313" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="296" /> <source>Use of unsafe 'yaml.load()'. Allows instantiation of arbitrary objects. Consider 'yaml.safe_load()'.</source> <translation>Использование небезопасного 'yaml.load()'. Позволяет создавать экземпляры произвольных объектов. Рассмотрите yaml.safe_load().</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="319" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="302" /> <source>Paramiko call with policy set to automatically trust the unknown host key.</source> <translation>Вызов Paramiko с установленной политикой автоматического доверия неизвестному ключу хоста.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="324" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="307" /> <source>The use of SNMPv1 and SNMPv2 is insecure. You should use SNMPv3 if possible.</source> <translation>Использование SNMPv1 и SNMPv2 небезопасно. По возможности следует использовать SNMPv3.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="328" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="311" /> <source>You should not use SNMPv3 without encryption. noAuthNoPriv & authNoPriv is insecure.</source> <translation>Вы не должны использовать SNMPv3 без шифрования. noAuthNoPriv и authNoPriv небезопасны.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="334" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="317" /> <source>Possible shell injection via 'Paramiko' call, check inputs are properly sanitized.</source> <translation>Возможно введение оболочки через вызов 'Paramiko', проверьте правильность санации входов.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="339" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="322" /> <source>'subprocess' call with shell=True seems safe, but may be changed in the future, consider rewriting without shell</source> <translation>Вызов 'subprocess' с параметром shell=True кажется безопасным, но может быть изменен в будущем, подумайте о перезаписи без shell</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="344" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="327" /> <source>'subprocess' call with shell=True identified, security issue.</source> <translation>Идентифицирован вызов 'subprocess' с параметром shell = True, проблема безопасности.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="347" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="330" /> <source>'subprocess' call - check for execution of untrusted input.</source> <translation>вызов 'subprocess' - проверка выполнения ненадежного ввода.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="350" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="333" /> <source>Function call with shell=True parameter identified, possible security issue.</source> <translation>Идентифицирован вызов функции с параметром shell = True, возможна проблема безопасности.</translation> </message> <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="338" /> + <source>Starting a process with a shell: Seems safe, but may be changed in the future, consider rewriting without shell</source> + <translation>Запуск процесса с shell: кажется безопасным, но в будущем может быть изменен, подумайте о переписывании без shell</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="343" /> + <source>Starting a process with a shell, possible injection detected, security issue.</source> + <translation>Запуск процесса с shell, обнаружение возможного внедрения, проблема безопасности.</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="348" /> + <source>Starting a process without a shell.</source> + <translation>Запуск процесса без shell.</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="351" /> + <source>Starting a process with a partial executable path.</source> + <translation>Запуск процесса с частичным исполняемым путем.</translation> + </message> + <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="355" /> - <source>Starting a process with a shell: Seems safe, but may be changed in the future, consider rewriting without shell</source> - <translation>Запуск процесса с shell: кажется безопасным, но в будущем может быть изменен, подумайте о переписывании без shell</translation> + <source>Possible SQL injection vector through string-based query construction.</source> + <translation>Возможный вектор внедрения SQL через построение строки на основе запроса.</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="360" /> - <source>Starting a process with a shell, possible injection detected, security issue.</source> - <translation>Запуск процесса с shell, обнаружение возможного внедрения, проблема безопасности.</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="365" /> - <source>Starting a process without a shell.</source> - <translation>Запуск процесса без shell.</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="368" /> - <source>Starting a process with a partial executable path.</source> - <translation>Запуск процесса с частичным исполняемым путем.</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="372" /> - <source>Possible SQL injection vector through string-based query construction.</source> - <translation>Возможный вектор внедрения SQL через построение строки на основе запроса.</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="377" /> <source>Possible wildcard injection in call: {0}</source> <translation>Возможно введение символа подстановки при вызове: {0}</translation> </message> <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="364" /> + <source>Use of 'extra()' opens a potential SQL attack vector.</source> + <translation>Использование 'extra()' открывает потенциальный вектор атаки SQL.</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="367" /> + <source>Use of 'RawSQL()' opens a potential SQL attack vector.</source> + <translation>Использование 'RawSQL()' открывает потенциальный вектор атаки SQL.</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="371" /> + <source>Use of insecure logging.config.listen() detected.</source> + <translation>Обнаружено использование небезопасной функции logging.config.listen().</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="376" /> + <source>The Python source file contains bidirectional control characters ({0}).</source> + <translation>Исходный файл Python содержит двунаправленные управляющие символы ({0}).</translation> + </message> + <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="381" /> - <source>Use of 'extra()' opens a potential SQL attack vector.</source> - <translation>Использование 'extra()' открывает потенциальный вектор атаки SQL.</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="384" /> - <source>Use of 'RawSQL()' opens a potential SQL attack vector.</source> - <translation>Использование 'RawSQL()' открывает потенциальный вектор атаки SQL.</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="388" /> - <source>Use of insecure logging.config.listen() detected.</source> - <translation>Обнаружено использование небезопасной функции logging.config.listen().</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="393" /> - <source>The Python source file contains bidirectional control characters ({0}).</source> - <translation>Исходный файл Python содержит двунаправленные управляющие символы ({0}).</translation> + <source>Use of unsafe PyTorch load or save.</source> + <translation>Использование небезопасной загрузки или сохранения PyTorch.</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="385" /> + <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>Использование шаблонов jinja2 с 'autoescape=False' опасно и может привести к XSS. Используйте 'autoescape=True' или используйте функцию 'select_autoescape' для устранения уязвимостей XSS.</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="391" /> + <source>By default, jinja2 sets 'autoescape' to False. Consider using 'autoescape=True' or use the 'select_autoescape' function to mitigate XSS vulnerabilities.</source> + <translation>По умолчанию jinja2 устанавливает для 'autoescape' значение False. Рекомендуется использовать 'autoescape=True' или использовать функцию 'select_autoescape' для устранения уязвимостей XSS.</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="398" /> - <source>Use of unsafe PyTorch load or save.</source> - <translation>Использование небезопасной загрузки или сохранения PyTorch.</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="402" /> - <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>Использование шаблонов jinja2 с 'autoescape=False' опасно и может привести к XSS. Используйте 'autoescape=True' или используйте функцию 'select_autoescape' для устранения уязвимостей XSS.</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="408" /> - <source>By default, jinja2 sets 'autoescape' to False. Consider using 'autoescape=True' or use the 'select_autoescape' function to mitigate XSS vulnerabilities.</source> - <translation>По умолчанию jinja2 устанавливает для 'autoescape' значение False. Рекомендуется использовать 'autoescape=True' или использовать функцию 'select_autoescape' для устранения уязвимостей XSS.</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="415" /> <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>Шаблоны Mako разрешают рендеринг HTML/JS по умолчанию и по своей природе открыты для атак XSS. Убедитесь, что переменные во всех шаблонах должным образом очищены с помощью флагов 'n', 'h' или 'x' (в зависимости от контекста). Например, для экранирования HTML используйте переменную 'data', выполните ${{ data |h }}.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="423" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="406" /> <source>Potential XSS on 'mark_safe()' function.</source> <translation>Потенциальный XSS на функцию 'mark_safe()'.</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="427" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="410" /> <source>Possible hardcoded AWS access key ID: {0}</source> <translation>Возможный жестко закодированный идентификатор ключа доступа AWS: {0}</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="430" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Security/translations.py" line="413" /> <source>Possible hardcoded AWS secret access key: {0}</source> <translation>Возможный жестко закодированный секретный ключ доступа AWS: {0}</translation> </message> @@ -77198,10 +77270,10 @@ <translation>Используйте "all({0} for {1} in {2})"</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Simplify/translations.py" line="175" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Simplify/translations.py" line="178" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Simplify/translations.py" line="169" /> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Simplify/translations.py" line="166" /> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Simplify/translations.py" line="163" /> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Simplify/translations.py" line="157" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Simplify/translations.py" line="160" /> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Simplify/translations.py" line="92" /> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Simplify/translations.py" line="52" /> <source>Use "{0}" instead of "{1}"</source> @@ -77358,22 +77430,27 @@ <translation>Используйте keyword-argument вместо magic number</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Simplify/translations.py" line="160" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Simplify/translations.py" line="158" /> + <source>Do not nest f-strings</source> + <translation>Do not nest f-strings</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Simplify/translations.py" line="163" /> <source>Initialize dictionary "{0}" directly</source> <translation>Инициализировать словарь "{0}" напрямую</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Simplify/translations.py" line="169" /> - <source>Use "Optional[{0}]" instead of "{1}"</source> - <translation>Используйте "Optional[{0}]" вместо "{1}"</translation> - </message> - <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Simplify/translations.py" line="172" /> + <source>Use "Optional[{0}]" instead of "{1}"</source> + <translation>Используйте "Optional[{0}]" вместо "{1}"</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Simplify/translations.py" line="175" /> <source>Remove reflexive assignment "{0}"</source> <translation>Удалить возвратное присвоение "{0}"</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Simplify/translations.py" line="178" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/Simplify/translations.py" line="181" /> <source>Use "{0}.items()" instead of "zip({0}.keys(), {0}.values())"</source> <translation>Используйте "{0}.items()" вместо "zip({0}.keys(), {0}.values())"</translation> </message> @@ -87738,8 +87815,12 @@ </message> <message> <location filename="../Templates/TemplatePropertiesDialog.py" line="122" /> + <source><p>To use variables in a template, you just have to enclose the variable name with $-characters. When you use the template, you will then be asked for a value for this variable.</p><p>Example template: This is a $VAR$</p><p>When you use this template you will be prompted for a value for the variable $VAR$. Any occurrences of $VAR$ will then be replaced with whatever you've entered.</p><p>If you need a single $-character in a template, which is not used to enclose a variable, type $$ (two dollar characters) instead. They will automatically be replaced with a single $-character when you use the template.</p><p>If you want a variables contents to be treated specially, the variable name must be followed by a ':' and one formatting specifier (e.g. $VAR:ml$). The supported specifiers are:<table><tr><td>ml</td><td>Specifies a multiline formatting. The first line of the variable contents is prefixed with the string occurring before the variable on the same line of the template. All other lines are prefixed by the same amount of whitespace as the line containing the variable.</td></tr><tr><td>rl</td><td>Specifies a repeated line formatting. Each line of the variable contents is prefixed with the string occurring before the variable on the same line of the template.</td></tr></table></p><p>The following predefined variables may be used in a template:<table><tr><td>date</td><td>today's date in ISO format (YYYY-MM-DD)</td></tr><tr><td>year</td><td>the current year</td></tr><tr><td>time</td><td>current time in ISO format (hh:mm:ss)</td></tr><tr><td>project_name</td><td>the name of the project (if any)</td></tr><tr><td>project_path</td><td>the path of the project (if any)</td></tr><tr><td>path_name</td><td>full path of the current file</td></tr><tr><td>path_name_rel</td><td>project relative path of the current file</td></tr><tr><td>dir_name</td><td>full path of the current file's directory</td></tr><tr><td>dir_name_rel</td><td>project relative path of the current file's directory</td></tr><tr><td>file_name</td><td>the current file's name (without directory)</td></tr><tr><td>base_name</td><td>like <i>file_name</i>, but without extension</td></tr><tr><td>ext</td><td>the extension of the current file</td></tr><tr><td>cur_select</td><td>the currently selected text</td></tr><tr><td>insertion</td><td>Sets insertion point for cursor after template is inserted.</td></tr><tr><td>select_start</td><td>Sets span of selected text in template after template is inserted (used together with 'select_end').</td></tr><tr><td>select_end</td><td>Sets span of selected text in template after template is inserted (used together with 'select_start').</td></tr><tr><td>clipboard</td><td>the text of the clipboard</td></tr></table></p><p>If you want to change the default delimiter to anything different, please use the configuration dialog to do so.</p></source> + <translation type="unfinished" /> + </message> + <message> <source><p>To use variables in a template, you just have to enclose the variable name with $-characters. When you use the template, you will then be asked for a value for this variable.</p><p>Example template: This is a $VAR$</p><p>When you use this template you will be prompted for a value for the variable $VAR$. Any occurrences of $VAR$ will then be replaced with whatever you've entered.</p><p>If you need a single $-character in a template, which is not used to enclose a variable, type $$(two dollar characters) instead. They will automatically be replaced with a single $-character when you use the template.</p><p>If you want a variables contents to be treated specially, the variable name must be followed by a ':' and one formatting specifier (e.g. $VAR:ml$). The supported specifiers are:<table><tr><td>ml</td><td>Specifies a multiline formatting. The first line of the variable contents is prefixed with the string occurring before the variable on the same line of the template. All other lines are prefixed by the same amount of whitespace as the line containing the variable.</td></tr><tr><td>rl</td><td>Specifies a repeated line formatting. Each line of the variable contents is prefixed with the string occurring before the variable on the same line of the template.</td></tr></table></p><p>The following predefined variables may be used in a template:<table><tr><td>date</td><td>today's date in ISO format (YYYY-MM-DD)</td></tr><tr><td>year</td><td>the current year</td></tr><tr><td>time</td><td>current time in ISO format (hh:mm:ss)</td></tr><tr><td>project_name</td><td>the name of the project (if any)</td></tr><tr><td>project_path</td><td>the path of the project (if any)</td></tr><tr><td>path_name</td><td>full path of the current file</td></tr><tr><td>path_name_rel</td><td>project relative path of the current file</td></tr><tr><td>dir_name</td><td>full path of the current file's directory</td></tr><tr><td>dir_name_rel</td><td>project relative path of the current file's directory</td></tr><tr><td>file_name</td><td>the current file's name (without directory)</td></tr><tr><td>base_name</td><td>like <i>file_name</i>, but without extension</td></tr><tr><td>ext</td><td>the extension of the current file</td></tr><tr><td>cur_select</td><td>the currently selected text</td></tr><tr><td>insertion</td><td>Sets insertion point for cursor after template is inserted.</td></tr><tr><td>select_start</td><td>Sets span of selected text in template after template is inserted (used together with 'select_end').</td></tr><tr><td>select_end</td><td>Sets span of selected text in template after template is inserted (used together with 'select_start').</td></tr><tr><td>clipboard</td><td>the text of the clipboard</td></tr></table></p><p>If you want to change the default delimiter to anything different, please use the configuration dialog to do so.</p></source> - <translation><p>Чтобы использовать переменные в шаблоне, вам просто нужно заключить имя переменной в символы $. Когда вы будете использовать шаблон, вам будет предложено ввести значение этой переменной.</p><p>Пример шаблона: $VAR$</p><p>При использовании этого шаблона вам будет предложено указать значение для переменной $VAR$. Все вхождения $VAR$ будут заменены введенным вами значением.</p><p>Если вам в шаблоне нужен одиночный символ $-типа, который не используется для 'окаймленной' переменной, введите $$ (два символа доллара). Они будут автоматически заменены одиночным $-символом при использовании шаблона.</p><p>Если вы хотите чтобы содержимое переменных обрабатывалось иначе, за именем переменной должны следовать ':' и один спецификатор форматирования (например $VAR:ml$). Поддерживаемые спецификаторы:<table><tr><td>ml</td><td>Специфицирует многострочное форматирование. Первая строка содержимого переменной предваряется строкой, расположенной перед переменной в той же строке шаблона. Все остальные строки предваряются таким же количеством символов пропуска, что и строка, содержащая переменную.</td></tr><tr><td>rl</td><td>Специфицирует повторное форматирование строки. Каждая строка содержимого переменной предваряется строкой, расположенной перед переменной в той же строке шаблона.</td></tr></table></p><p>Следующие предопределенные переменные могут использоваться в шаблоне:<table><tr><td>date</td><td>сегодняшняя дата в ISO формате (YYYY-MM-DD)</td></tr><tr><td>year</td><td>текущий год</td></tr><tr><td>project_name</td><td>имя проекта (если есть)</td></tr><tr><td>project_path</td><td>путь проекта (если есть)</td></tr><tr><td>path_name</td><td>полный путь к текущему файлу</td></tr><tr><td>dir_name</td><td>полный путь родительской директории</td></tr><tr><td>file_name</td><td>имя текущего файла (без директории)</td></tr><tr><td>base_name</td><td>как <i>file_name</i>, но без расширения</td></tr><tr><td>ext</td><td>расширение текущего файла</td></tr><tr><td>cur_select</td><td>текущий выбранный текст</td></tr><tr><td>insertion</td><td>Задает точку вставки курсора после вставки шаблона.</td></tr><tr><td>select_start</td><td>Задает диапазон выбранного текста в шаблоне после вставки шаблона (используется вместе с 'select_end').</td></tr><tr><td>select_end</td><td>Задает диапазон выбранного текста в шаблоне после вставки шаблона (используется вместе с 'select_start').</td></tr><tr><td>clipboard</td><td>текст в буфере обмена</td></tr></table></p><p>Если вы хотите изменить стандартные разделители на любые другие, пожалуйста используйте для этого диалог настройки шаблона.</p></translation> + <translation type="vanished"><p>Чтобы использовать переменные в шаблоне, вам просто нужно заключить имя переменной в символы $. Когда вы будете использовать шаблон, вам будет предложено ввести значение этой переменной.</p><p>Пример шаблона: $VAR$</p><p>При использовании этого шаблона вам будет предложено указать значение для переменной $VAR$. Все вхождения $VAR$ будут заменены введенным вами значением.</p><p>Если вам в шаблоне нужен одиночный символ $-типа, который не используется для 'окаймленной' переменной, введите $$ (два символа доллара). Они будут автоматически заменены одиночным $-символом при использовании шаблона.</p><p>Если вы хотите чтобы содержимое переменных обрабатывалось иначе, за именем переменной должны следовать ':' и один спецификатор форматирования (например $VAR:ml$). Поддерживаемые спецификаторы:<table><tr><td>ml</td><td>Специфицирует многострочное форматирование. Первая строка содержимого переменной предваряется строкой, расположенной перед переменной в той же строке шаблона. Все остальные строки предваряются таким же количеством символов пропуска, что и строка, содержащая переменную.</td></tr><tr><td>rl</td><td>Специфицирует повторное форматирование строки. Каждая строка содержимого переменной предваряется строкой, расположенной перед переменной в той же строке шаблона.</td></tr></table></p><p>Следующие предопределенные переменные могут использоваться в шаблоне:<table><tr><td>date</td><td>сегодняшняя дата в ISO формате (YYYY-MM-DD)</td></tr><tr><td>year</td><td>текущий год</td></tr><tr><td>project_name</td><td>имя проекта (если есть)</td></tr><tr><td>project_path</td><td>путь проекта (если есть)</td></tr><tr><td>path_name</td><td>полный путь к текущему файлу</td></tr><tr><td>dir_name</td><td>полный путь родительской директории</td></tr><tr><td>file_name</td><td>имя текущего файла (без директории)</td></tr><tr><td>base_name</td><td>как <i>file_name</i>, но без расширения</td></tr><tr><td>ext</td><td>расширение текущего файла</td></tr><tr><td>cur_select</td><td>текущий выбранный текст</td></tr><tr><td>insertion</td><td>Задает точку вставки курсора после вставки шаблона.</td></tr><tr><td>select_start</td><td>Задает диапазон выбранного текста в шаблоне после вставки шаблона (используется вместе с 'select_end').</td></tr><tr><td>select_end</td><td>Задает диапазон выбранного текста в шаблоне после вставки шаблона (используется вместе с 'select_start').</td></tr><tr><td>clipboard</td><td>текст в буфере обмена</td></tr></table></p><p>Если вы хотите изменить стандартные разделители на любые другие, пожалуйста используйте для этого диалог настройки шаблона.</p></translation> </message> </context> <context> @@ -90223,133 +90304,133 @@ <context> <name>UF2FlashDialog</name> <message> - <location filename="../MicroPython/UF2FlashDialog.py" line="735" /> + <location filename="../MicroPython/UF2FlashDialog.py" line="754" /> <source><h3>CircuitPython Board</h3><p>In order to prepare the board for flashing follow these steps:</p><ol><li>Switch your device to 'bootloader' mode by double-pressing the reset button.</li><li>Wait until the device has entered 'bootloader' mode.</li><li>(If this does not happen, then try shorter or longer pauses between presses.)</li><li>Ensure the boot volume is available (this may require mounting it).</li><li>Select the firmware file to be flashed and click the flash button.</li></ol></source> <translation><h3>Плата CircuitPython</h3><p>Для подготовки платы к прошивке выполните следующие действия:</p><ol><li>Переключите устройство в режим 'bootloader' двойным нажатием кнопки RESET.</li><li>Подождите, пока устройство не перейдет в режим 'bootloader'.</li><li>(Если этого не произошло, попробуйте сделать паузы между нажатиями короче или длинее.)</li><li>Убедитесь, что загрузочный том доступен (для этого может потребоваться его установка).</li><li>Выберите файл микрокода для прошивки и нажмите кнопку прошивки.</li></ol></translation> </message> <message> - <location filename="../MicroPython/UF2FlashDialog.py" line="761" /> + <location filename="../MicroPython/UF2FlashDialog.py" line="780" /> <source><h3>Pi Pico (RP2040/RP2350) Board</h3><p>In order to prepare the board for flashing follow these steps:</p><ol><li>Enter 'bootloader' mode (board <b>without</b> RESET button):<ul><li>Plug in your board while holding the BOOTSEL button.</li></ul>Enter 'bootloader' mode (board <b>with</b> RESET button):<ul><li>hold down RESET</li><li>hold down BOOTSEL</li><li>release RESET</li><li>release BOOTSEL</li></ul></li><li>Wait until the device has entered 'bootloader' mode.</li><li>Ensure the boot volume is available (this may require mounting it).</li><li>Select the firmware file to be flashed and click the flash button.</li></ol></source> <translation><h3>Плата Pico (RP2040/RP2350)</h3><p>Для подготовки платы к перепрошивке выполните следующие действия:</p><ol><li>Установите режим загрузчика (плата <b>без</b> кнопки RESET):<ul><li>Подключите плату удерживая кнопку BOOTSEL.</li></ul>Установите режим 'bootloader' (плата <b>с</b> кнопкой RESET):<ul><li>удерживайте нажатой кнопку RESET </li><li>удерживайте кнопку BOOTSEL</li><li>отпустите RESET</li><li>отпустите кнопку BOOTSEL</li></ul></li><li>Подождите, пока устройство не перейдет в режим 'bootloader'.</li><li>Убедитесь, что загрузочный том доступен (может потребоваться его установка).</li><li>Выберите файл микрокода для прошивки и нажмите кнопка прошивки.</li></ol></translation> </message> <message> - <location filename="../MicroPython/UF2FlashDialog.py" line="883" /> + <location filename="../MicroPython/UF2FlashDialog.py" line="902" /> <source>MicroPython/CircuitPython Files (*.uf2);;All Files (*)</source> <translation>Файлы MicroPython/CircuitPython (*.uf2);;Все файлы (*)</translation> </message> <message> - <location filename="../MicroPython/UF2FlashDialog.py" line="950" /> - <location filename="../MicroPython/UF2FlashDialog.py" line="942" /> - <location filename="../MicroPython/UF2FlashDialog.py" line="926" /> + <location filename="../MicroPython/UF2FlashDialog.py" line="969" /> + <location filename="../MicroPython/UF2FlashDialog.py" line="961" /> + <location filename="../MicroPython/UF2FlashDialog.py" line="945" /> <source>Manual Select</source> <translation>Ручной выбор</translation> </message> <message> + <location filename="../MicroPython/UF2FlashDialog.py" line="1073" /> + <location filename="../MicroPython/UF2FlashDialog.py" line="1041" /> + <location filename="../MicroPython/UF2FlashDialog.py" line="1018" /> + <source>Reset Instructions:</source> + <translation>Инструкции по перезагрузке:</translation> + </message> + <message> + <location filename="../MicroPython/UF2FlashDialog.py" line="1020" /> + <source><h4>No known devices detected.</h4><p>Follow the appropriate instructions below to set <b>one</b> board into 'bootloader' mode. Press <b>Refresh</b> when ready.</p></source> + <translation><h4>Известные устройства не обнаружены.</h4><p>Следуйте приведеным ниже инструкциям для установки <b>одной</b> платы в режим 'bootloader'. По готовности нажмите <b>Освежить</b>.</p></translation> + </message> + <message> + <location filename="../MicroPython/UF2FlashDialog.py" line="1044" /> + <source><h4>Flash {0} Firmware</h4><p>Follow the instructions below to set <b>one</b> board into 'bootloader' mode. Press <b>Refresh</b> when ready.</p><hr/>{1}</source> + <translation><h4>Загрузить прошивку {0}</h4><p>Следуйте приведенным ниже инструкциям для установки <b>одной</b> платы в режим 'bootloader'. По готовности нажмите кнопку <b>Освежить</b>.</p><hr/>{1}</translation> + </message> + <message> <location filename="../MicroPython/UF2FlashDialog.py" line="1054" /> - <location filename="../MicroPython/UF2FlashDialog.py" line="1022" /> - <location filename="../MicroPython/UF2FlashDialog.py" line="999" /> - <source>Reset Instructions:</source> - <translation>Инструкции по перезагрузке:</translation> - </message> - <message> - <location filename="../MicroPython/UF2FlashDialog.py" line="1001" /> - <source><h4>No known devices detected.</h4><p>Follow the appropriate instructions below to set <b>one</b> board into 'bootloader' mode. Press <b>Refresh</b> when ready.</p></source> - <translation><h4>Известные устройства не обнаружены.</h4><p>Следуйте приведеным ниже инструкциям для установки <b>одной</b> платы в режим 'bootloader'. По готовности нажмите <b>Освежить</b>.</p></translation> - </message> - <message> - <location filename="../MicroPython/UF2FlashDialog.py" line="1025" /> - <source><h4>Flash {0} Firmware</h4><p>Follow the instructions below to set <b>one</b> board into 'bootloader' mode. Press <b>Refresh</b> when ready.</p><hr/>{1}</source> - <translation><h4>Загрузить прошивку {0}</h4><p>Следуйте приведенным ниже инструкциям для установки <b>одной</b> платы в режим 'bootloader'. По готовности нажмите кнопку <b>Освежить</b>.</p><hr/>{1}</translation> - </message> - <message> - <location filename="../MicroPython/UF2FlashDialog.py" line="1035" /> <source><h4>Potentially UF2 capable devices found</h4><p>Found these potentially UF2 capable devices:</p><ul><li>{0}</li></ul><p>Follow the instructions below to set <b>one</b> board into 'bootloader' mode. Press <b>Refresh</b> when ready.</p></source> <translation><h4>Обнаружены устройства, потенциально поддерживающие UF2</h4><p>Найдены следующие устройства, возможно поддерживающие UF2:</p><ul><li>{0}</li></ul><p>Следуйте приведенным ниже инструкциям для установки <b>одной</b> платы в режим 'bootloader'. По готовности нажмите кнопку <b>Освежить</b>.</p></translation> </message> <message> - <location filename="../MicroPython/UF2FlashDialog.py" line="1056" /> + <location filename="../MicroPython/UF2FlashDialog.py" line="1075" /> <source><h4>No known devices detected.</h4><p>Follow the instructions below to set <b>one</b> board into 'bootloader' mode. Press <b>Refresh</b> when ready.</p></source> <translation><h4>Известные устройства не обнаружены.</h4><p>Следуйте приведенным ниже инструкциям для установки <b>одной</b> платы в режим 'bootloader'. По готовности нажмите <b>Освежить</b>.</p></translation> </message> <message> - <location filename="../MicroPython/UF2FlashDialog.py" line="1068" /> + <location filename="../MicroPython/UF2FlashDialog.py" line="1087" /> <source>Flash Instructions:</source> <translation>Инструкции для прошивки:</translation> </message> <message> - <location filename="../MicroPython/UF2FlashDialog.py" line="1070" /> + <location filename="../MicroPython/UF2FlashDialog.py" line="1089" /> <source><h4>Flash method 'manual' selected.</h4><p>Follow the instructions below to flash a device by entering the data manually.</p><ol><li>Change the device to 'bootloader' mode.</li><li>Wait until the device has entered 'bootloader' mode.</li><li>Ensure the boot volume is available (this may require mounting it) and select its path.</li><li>Select the firmware file to be flashed and click the flash button.</li></ol></source> <translation><h4>Выбран метод прошивки 'ручной'.</h4><p>Чтобы прошить устройство путем ввода данных вручную следуйте приведенным ниже инструкциям .</p><ol><li>Переведите устройство в режим 'bootloader'.</li><li>Подождите, пока устройство не перейдет в режим 'bootloader'.</li><li>Убедитесь, что загрузочный том доступен (для этого может потребоваться его установка), и выберите путь к нему.</li><li>Выберите файл микрокода для прошивки и нажмите кнопку прошивки.</li></ol></translation> </message> <message> - <location filename="../MicroPython/UF2FlashDialog.py" line="1095" /> + <location filename="../MicroPython/UF2FlashDialog.py" line="1114" /> <source>Boot Volume not found:</source> <translation>Загрузочный том не найден:</translation> </message> <message> - <location filename="../MicroPython/UF2FlashDialog.py" line="1097" /> + <location filename="../MicroPython/UF2FlashDialog.py" line="1116" /> <source><h4>No Boot Volume detected.</h4><p>Please ensure that the boot volume of the device to be flashed is available. </source> <translation><h4>Не обнаружен загрузочный том.</h4><p>Пожалуйста убедитесь, что загрузочный том устройства доступен для прошивки. </translation> </message> <message> - <location filename="../MicroPython/UF2FlashDialog.py" line="1103" /> + <location filename="../MicroPython/UF2FlashDialog.py" line="1122" /> <source>This volume should be named <b>{0}</b>. Press <b>Refresh</b> when ready.</p></source> <translation>Этот том должен иметь имя <b>{0}</b>. По готовности нажмите <b>Освежить</b>.</p></translation> </message> <message> - <location filename="../MicroPython/UF2FlashDialog.py" line="1108" /> + <location filename="../MicroPython/UF2FlashDialog.py" line="1127" /> <source>This volume should have one of these names.</p><ul><li>{0}</li></ul><p>Press <b>Refresh</b> when ready.</p></source> <translation>Этот том должен иметь одно из этих имен.</p><ul><li>{0}</li></ul><p>По готовности нажмите <b>Освежить</b>.</p></translation> </message> <message> - <location filename="../MicroPython/UF2FlashDialog.py" line="1115" /> - <source><h4>Reset Instructions</h4><p>Follow the instructions below to set the board into 'bootloader' mode. Press <b>Refresh</b> when ready.</p></source> - <translation><h4>Инструкции по сбросу</h4><p>Следуйте приведенным ниже инструкциям для установки платы в режим 'bootloader'. По готовности нажмите <b>Освежить</b>.</p></translation> - </message> - <message> <location filename="../MicroPython/UF2FlashDialog.py" line="1134" /> + <source><h4>Reset Instructions</h4><p>Follow the instructions below to set the board into 'bootloader' mode. Press <b>Refresh</b> when ready.</p></source> + <translation><h4>Инструкции по сбросу</h4><p>Следуйте приведенным ниже инструкциям для установки платы в режим 'bootloader'. По готовности нажмите <b>Освежить</b>.</p></translation> + </message> + <message> + <location filename="../MicroPython/UF2FlashDialog.py" line="1153" /> <source>Multiple Boot Volumes found:</source> <translation>Обнаружены несколько загрузочных томов:</translation> </message> <message> - <location filename="../MicroPython/UF2FlashDialog.py" line="1136" /> - <source><h4>Multiple Boot Volumes were found</h4><p>These volume paths were found.</p><ul><li>{0}</li></ul><p>Please ensure that only one device of a type is ready for flashing. Press <b>Refresh</b> when ready.</p></source> - <translation><h4>Обнаружены несколько загрузочных томов</h4><p>Были найдены пути к этим томам.</p><ul><li>{0}</li></ul><p>Убедитесь, что только одно устройство определенного типа готово для прошивки. По готовности нажмите <b>Освежить</b>.</p></translation> - </message> - <message> <location filename="../MicroPython/UF2FlashDialog.py" line="1155" /> + <source><h4>Multiple Boot Volumes were found</h4><p>These volume paths were found.</p><ul><li>{0}</li></ul><p>Please ensure that only one device of a type is ready for flashing. Press <b>Refresh</b> when ready.</p></source> + <translation><h4>Обнаружены несколько загрузочных томов</h4><p>Были найдены пути к этим томам.</p><ul><li>{0}</li></ul><p>Убедитесь, что только одно устройство определенного типа готово для прошивки. По готовности нажмите <b>Освежить</b>.</p></translation> + </message> + <message> + <location filename="../MicroPython/UF2FlashDialog.py" line="1174" /> <source>Flashing Firmware</source> <translation>Прошивка микрокода</translation> </message> <message> - <location filename="../MicroPython/UF2FlashDialog.py" line="1157" /> + <location filename="../MicroPython/UF2FlashDialog.py" line="1176" /> <source><p>Flashing the selected firmware to the device. Please wait until the device resets automatically.</p></source> <translation><p>Прошивка выбранного микрокода на устройство. Подождите, пока устройство не перезагрузится автоматически.</p></translation> </message> <message> - <location filename="../MicroPython/UF2FlashDialog.py" line="1164" /> + <location filename="../MicroPython/UF2FlashDialog.py" line="1183" /> <source>Flashing {0}</source> <translation>Прошивка {0}</translation> </message> <message> - <location filename="../MicroPython/UF2FlashDialog.py" line="1166" /> + <location filename="../MicroPython/UF2FlashDialog.py" line="1185" /> <source><p>Flashing the {0} firmware to the device. Please wait until the device resets automatically.</p></source> <translation><p>Прошивка микрокода {0} на устройство. Подождите, пока устройство не перезагрузится автоматически.</p></translation> </message> <message> <location filename="../MicroPython/UF2FlashDialog.ui" line="0" /> - <location filename="../MicroPython/UF2FlashDialog.py" line="1278" /> - <location filename="../MicroPython/UF2FlashDialog.py" line="1270" /> + <location filename="../MicroPython/UF2FlashDialog.py" line="1297" /> + <location filename="../MicroPython/UF2FlashDialog.py" line="1289" /> <source>Flash UF2 Device</source> <translation>Прошивка UF2-устройств</translation> </message> <message> - <location filename="../MicroPython/UF2FlashDialog.py" line="1271" /> + <location filename="../MicroPython/UF2FlashDialog.py" line="1290" /> <source>No UF2 device 'boot' volumes found.</source> <translation>Загрузочные тома устройства UF2 не найдены.</translation> </message> <message> - <location filename="../MicroPython/UF2FlashDialog.py" line="1279" /> + <location filename="../MicroPython/UF2FlashDialog.py" line="1298" /> <source>Select the Boot Volume of the device:</source> <translation>Выберите загрузочный том устройства:</translation> </message> @@ -106684,406 +106765,406 @@ <context> <name>pycodestyle</name> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="40" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="41" /> <source>indentation contains mixed spaces and tabs</source> <translation>отступ содержит смесь пробелов и табуляции</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="43" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="44" /> <source>indentation is not a multiple of four</source> <translation>размер отступа не кратен четырем</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="46" /> - <source>expected an indented block</source> - <translation>ожидался блок с отступом</translation> - </message> - <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="47" /> - <source>unexpected indentation</source> - <translation>неожиданный отступ</translation> + <source>expected an indented block</source> + <translation>ожидался блок с отступом</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="48" /> + <source>unexpected indentation</source> + <translation>неожиданный отступ</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="49" /> <source>indentation is not a multiple of four (comment)</source> <translation>размер отступа не кратен четырем (комментарий)</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="51" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="52" /> <source>expected an indented block (comment)</source> <translation>ожидался блок с отступом (комментарий)</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="54" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="55" /> <source>unexpected indentation (comment)</source> <translation>неожиданный отступ (комментарий)</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="57" /> - <source>over-indented</source> - <translation>over-indented</translation> - </message> - <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="58" /> + <source>over-indented</source> + <translation>over-indented</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="59" /> <source>continuation line indentation is not a multiple of four</source> <translation>отступ строки продолжения не кратен четырём</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="61" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="62" /> <source>continuation line missing indentation or outdented</source> <translation>строка продолжения не имеет отступа или выступа</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="64" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="65" /> <source>closing bracket does not match indentation of opening bracket's line</source> <translation>закрывающая скобка не соответствует отступу скобки, открывающей строку</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="68" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="69" /> <source>closing bracket does not match visual indentation</source> <translation>закрывающая скобка визуально не соответствует отступу</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="71" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="72" /> <source>continuation line with same indent as next logical line</source> <translation>отступ строки продолжения такой же как у следующей логической строки</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="74" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="75" /> <source>continuation line over-indented for hanging indent</source> <translation>строка продолжения с отступом для висящего отступа</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="77" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="78" /> <source>continuation line over-indented for visual indent</source> <translation>строка продолжения с отступом для визуального отступа</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="80" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="81" /> <source>continuation line under-indented for visual indent</source> <translation>continuation line under-indented for visual indent</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="83" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="84" /> <source>visually indented line with same indent as next logical line</source> <translation>визуально отступ строки такой же как у следующей логической строки</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="86" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="87" /> <source>continuation line unaligned for hanging indent</source> <translation>у висячего отступа невыровненная строка продолжения</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="89" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="90" /> <source>closing bracket is missing indentation</source> <translation>закрывающая скобка не имеет отступа</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="92" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="93" /> <source>whitespace after '{0}'</source> <translation>символ пропуска после '{0}'</translation> </message> <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="99" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="95" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="94" /> + <source>whitespace before '{0}'</source> + <translation>символ пропуска перед '{0}'</translation> + </message> + <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="96" /> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="94" /> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="93" /> - <source>whitespace before '{0}'</source> - <translation>символ пропуска перед '{0}'</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="95" /> <source>whitespace after decorator '@'</source> <translation>символ пропуска после символа декоратора "@"</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="97" /> - <source>multiple spaces before operator</source> - <translation>множественные пробелы перед оператором</translation> - </message> - <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="100" /> - <source>multiple spaces after operator</source> - <translation>множественные пробелы после оператора</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="101" /> - <source>tab before operator</source> - <translation>табуляция перед оператором</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="102" /> - <source>tab after operator</source> - <translation>табуляция после оператора</translation> + <source>multiple spaces before operator</source> + <translation>множественные пробелы перед оператором</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="103" /> - <source>missing whitespace around operator</source> - <translation>отсутствуют символы пропуска вокруг оператора</translation> + <source>multiple spaces after operator</source> + <translation>множественные пробелы после оператора</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="106" /> + <source>tab before operator</source> + <translation>табуляция перед оператором</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="107" /> + <source>tab after operator</source> + <translation>табуляция после оператора</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="108" /> + <source>missing whitespace around operator</source> + <translation>отсутствуют символы пропуска вокруг оператора</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="111" /> <source>missing whitespace around arithmetic operator</source> <translation>отсутствуют символы пропуска вокруг арифметического оператора</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="109" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="114" /> <source>missing whitespace around bitwise or shift operator</source> <translation>отсутствуют символы пропуска вокруг побитового оператора или оператора сдвига</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="112" /> - <source>missing whitespace around modulo operator</source> - <translation>отсутствуют символы пропуска вокруг оператора по модулю</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="115" /> - <source>missing whitespace after '{0}'</source> - <translation>отсутствуют символы пропуска после '{0}'</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="116" /> - <source>multiple spaces after '{0}'</source> - <translation>множественные пробелы после '{0}'</translation> - </message> - <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="117" /> - <source>tab after '{0}'</source> - <translation>табуляция после '{0}'</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="118" /> - <source>unexpected spaces around keyword / parameter equals</source> - <translation>неожиданные пробелы вокруг ключевого слова / параметра equals</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="121" /> - <source>missing whitespace around parameter equals</source> - <translation>отсутствие символов пропуска вокруг параметра equals</translation> + <source>missing whitespace around modulo operator</source> + <translation>отсутствуют символы пропуска вокруг оператора по модулю</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="120" /> + <source>missing whitespace after '{0}'</source> + <translation>отсутствуют символы пропуска после '{0}'</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="123" /> + <source>multiple spaces after '{0}'</source> + <translation>множественные пробелы после '{0}'</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="124" /> + <source>tab after '{0}'</source> + <translation>табуляция после '{0}'</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="125" /> + <source>unexpected spaces around keyword / parameter equals</source> + <translation>неожиданные пробелы вокруг ключевого слова / параметра equals</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="128" /> + <source>missing whitespace around parameter equals</source> + <translation>отсутствие символов пропуска вокруг параметра equals</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="131" /> <source>at least two spaces before inline comment</source> <translation>по крайней мере два пробела перед комментарием в строке кода</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="127" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="134" /> <source>inline comment should start with '# '</source> <translation>комментарий в строке кода должен начинаться с '# '</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="130" /> - <source>block comment should start with '# '</source> - <translation>блок комментариев должен начинаться с '# '</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="133" /> - <source>too many leading '#' for block comment</source> - <translation>слишком много лидирующих '#' для блока комментария</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="136" /> - <source>multiple spaces after keyword</source> - <translation>множественные пробелы после ключевого слова</translation> - </message> - <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="137" /> - <source>multiple spaces before keyword</source> - <translation>множественные пробелы перед ключевым словом</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="138" /> - <source>tab after keyword</source> - <translation>табуляция после ключевого слова</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="139" /> - <source>tab before keyword</source> - <translation>табуляция перед ключевым словом</translation> + <source>block comment should start with '# '</source> + <translation>блок комментариев должен начинаться с '# '</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="140" /> - <source>missing whitespace after keyword</source> - <translation>отсутствует символ пропуска после ключевого слова</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="146" /> + <source>too many leading '#' for block comment</source> + <translation>слишком много лидирующих '#' для блока комментария</translation> + </message> + <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="143" /> - <source>expected {0} blank lines, found {1}</source> - <translation>ожидалось {0} пустых строк, найдено {1}</translation> + <source>multiple spaces after keyword</source> + <translation>множественные пробелы после ключевого слова</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="144" /> + <source>multiple spaces before keyword</source> + <translation>множественные пробелы перед ключевым словом</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="147" /> + <source>tab after keyword</source> + <translation>табуляция после ключевого слова</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="148" /> + <source>tab before keyword</source> + <translation>табуляция перед ключевым словом</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="149" /> - <source>too many blank lines ({0}), expected {1}</source> - <translation>слишком много пустых строк ({0}), ожидалось {1}</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="152" /> - <source>blank lines found after function decorator</source> - <translation>пустые строки после декоратора функции</translation> + <source>missing whitespace after keyword</source> + <translation>отсутствует символ пропуска после ключевого слова</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="155" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="152" /> + <source>expected {0} blank lines, found {1}</source> + <translation>ожидалось {0} пустых строк, найдено {1}</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="158" /> + <source>too many blank lines ({0}), expected {1}</source> + <translation>слишком много пустых строк ({0}), ожидалось {1}</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="161" /> + <source>blank lines found after function decorator</source> + <translation>пустые строки после декоратора функции</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="164" /> <source>expected {0} blank lines after class or function definition, found {1}</source> <translation>ожидалось {0} пустых строк после определения класса или функции, найдено {1}</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="159" /> - <source>expected {0} blank lines before a nested definition, found {1}</source> - <translation>ожидалось {0} пустых строк перед вложенным определением, найдено {1}</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="162" /> - <source>too many blank lines ({0}) before a nested definition, expected {1}</source> - <translation>слишком много пустых строк ({0}) перед вложенным определением, ожидалось {1}</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="166" /> - <source>too many blank lines ({0})</source> - <translation>слишком много пустых строк ({0})</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="167" /> - <source>multiple imports on one line</source> - <translation>множественный импорт в одной строке</translation> - </message> - <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="168" /> - <source>module level import not at top of file</source> - <translation>импорт модуля не в начале файла</translation> + <source>expected {0} blank lines before a nested definition, found {1}</source> + <translation>ожидалось {0} пустых строк перед вложенным определением, найдено {1}</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="171" /> - <source>line too long ({0} > {1} characters)</source> - <translation>слишком длинная строка ({0} > {1} символов)</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="174" /> - <source>the backslash is redundant between brackets</source> - <translation>символ '\' излишний внутри скобок</translation> + <source>too many blank lines ({0}) before a nested definition, expected {1}</source> + <translation>слишком много пустых строк ({0}) перед вложенным определением, ожидалось {1}</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="175" /> + <source>too many blank lines ({0})</source> + <translation>слишком много пустых строк ({0})</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="176" /> + <source>multiple imports on one line</source> + <translation>множественный импорт в одной строке</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="177" /> - <source>multiple statements on one line (colon)</source> - <translation>несколько инструкций в одной строке (двоеточие)</translation> + <source>module level import not at top of file</source> + <translation>импорт модуля не в начале файла</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="180" /> - <source>multiple statements on one line (semicolon)</source> - <translation>несколько инструкций в одной строке (точка с запятой)</translation> + <source>line too long ({0} > {1} characters)</source> + <translation>слишком длинная строка ({0} > {1} символов)</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="183" /> - <source>statement ends with a semicolon</source> - <translation>инструкция завершается точкой с запятой</translation> + <source>the backslash is redundant between brackets</source> + <translation>символ '\' излишний внутри скобок</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="186" /> - <source>multiple statements on one line (def)</source> - <translation>несколько инструкций в одной строке (def)</translation> + <source>multiple statements on one line (colon)</source> + <translation>несколько инструкций в одной строке (двоеточие)</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="189" /> + <source>multiple statements on one line (semicolon)</source> + <translation>несколько инструкций в одной строке (точка с запятой)</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="192" /> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="189" /> - <source>comparison to {0} should be {1}</source> - <translation>сравнение с {0} должно быть {1}</translation> + <source>statement ends with a semicolon</source> + <translation>инструкция завершается точкой с запятой</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="195" /> - <source>test for membership should be 'not in'</source> - <translation>проверка на членство должна быть 'not in'</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="198" /> - <source>test for object identity should be 'is not'</source> - <translation>проверка на идентичность объекта должна быть 'is not'</translation> + <source>multiple statements on one line (def)</source> + <translation>несколько инструкций в одной строке (def)</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="201" /> - <source>do not compare types, for exact checks use 'is' / 'is not', for instance checks use 'isinstance()'</source> - <translation>не сравнивайте типы, для точных проверок используйте 'is' / 'is not', например, для проверок используйте 'isinstance()'</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="206" /> - <source>do not use bare except</source> - <translation>не используйте bare except</translation> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="198" /> + <source>comparison to {0} should be {1}</source> + <translation>сравнение с {0} должно быть {1}</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="204" /> + <source>test for membership should be 'not in'</source> + <translation>проверка на членство должна быть 'not in'</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="207" /> - <source>do not assign a lambda expression, use a def</source> - <translation>не назначайте лямбда-выражение, используйте def</translation> + <source>test for object identity should be 'is not'</source> + <translation>проверка на идентичность объекта должна быть 'is not'</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="210" /> + <source>do not compare types, for exact checks use 'is' / 'is not', for instance checks use 'isinstance()'</source> + <translation>не сравнивайте типы, для точных проверок используйте 'is' / 'is not', например, для проверок используйте 'isinstance()'</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="215" /> + <source>do not use bare except</source> + <translation>не используйте bare except</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="216" /> + <source>do not assign a lambda expression, use a def</source> + <translation>не назначайте лямбда-выражение, используйте def</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="219" /> <source>ambiguous variable name '{0}'</source> <translation>неоднозначное имя переменной '{0}'</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="211" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="220" /> <source>ambiguous class definition '{0}'</source> <translation>неоднозначное определение класса '{0}'</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="214" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="223" /> <source>ambiguous function definition '{0}'</source> <translation>неоднозначное определение функции '{0}'</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="217" /> - <source>{0}: {1}</source> - <translation>{0}: {1}</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="218" /> - <source>{0}</source> - <translation>{0}</translation> - </message> - <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="226" /> - <source>indentation contains tabs</source> - <translation>отступ содержит табуляцию</translation> + <source>{0}: {1}</source> + <translation>{0}: {1}</translation> </message> <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="227" /> + <source>{0}</source> + <translation>{0}</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="235" /> + <source>indentation contains tabs</source> + <translation>отступ содержит табуляцию</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="236" /> <source>trailing whitespace</source> <translation>завершающие символы пропуска</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="228" /> - <source>no newline at end of file</source> - <translation>нет символа новой строки в конце файла</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="229" /> - <source>blank line contains whitespace</source> - <translation>пустая строка содержит символы пропуска</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="230" /> - <source>blank line at end of file</source> - <translation>пустая строка в конце файла</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="231" /> - <source>line break before binary operator</source> - <translation>разрыв строки перед бинарным оператором</translation> - </message> - <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="234" /> - <source>line break after binary operator</source> - <translation>разрыв строки после бинарного оператора</translation> - </message> - <message> <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="237" /> + <source>no newline at end of file</source> + <translation>нет символа новой строки в конце файла</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="238" /> + <source>blank line contains whitespace</source> + <translation>пустая строка содержит символы пропуска</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="241" /> + <source>blank line at end of file</source> + <translation>пустая строка в конце файла</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="242" /> + <source>line break before binary operator</source> + <translation>разрыв строки перед бинарным оператором</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="245" /> + <source>line break after binary operator</source> + <translation>разрыв строки после бинарного оператора</translation> + </message> + <message> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="248" /> <source>doc line too long ({0} > {1} characters)</source> <translation>слишком длинная строка документа ({0} > {1} символов)</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="240" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="251" /> <source>invalid escape sequence '\{0}'</source> <translation>недействительная escape-последовательность '\{0}'</translation> </message> <message> - <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="243" /> + <location filename="../Plugins/CheckerPlugins/CodeStyleChecker/translations.py" line="254" /> <source>'async' and 'await' are reserved keywords starting with Python 3.7</source> <translation>'async' и 'await' - зарезервированные ключевые слова начиная с Python 3.7</translation> </message>