From 66539798e6c51addf2fefdb82c09e602ed2f799b Mon Sep 17 00:00:00 2001 From: camellan Date: Sat, 15 Jun 2019 20:03:20 +0400 Subject: [PATCH 1/5] Update Russian translation --- FlatCAMApp.py | 4 +- flatcamGUI/GUIElements.py | 2 +- locale/ru/LC_MESSAGES/strings.mo | Bin 105638 -> 169348 bytes locale/ru/LC_MESSAGES/strings.po | 1406 ++++++++++++++++++------------ locale_template/strings.pot | 4 + 5 files changed, 840 insertions(+), 576 deletions(-) diff --git a/FlatCAMApp.py b/FlatCAMApp.py index 6849e678..dd5773fe 100644 --- a/FlatCAMApp.py +++ b/FlatCAMApp.py @@ -1833,7 +1833,7 @@ class App(QtCore.QObject): self.shell.setWindowTitle("FlatCAM Shell") self.shell.resize(*self.defaults["global_shell_shape"]) self.shell.append_output("FlatCAM %s (c)2014-2019 Juan Pablo Caram " % self.version) - self.shell.append_output("(Type help to get started)\n\n") + self.shell.append_output(_("(Type help to get started)\n\n")) self.init_tcl() @@ -8044,7 +8044,7 @@ class App(QtCore.QObject): This behavior works only within main thread, errors with promissed tasks can be catched and detected only with log. - TODO: this problem have to be addressed somehow, maybe rewrite promissing to be blocking somehow for + TODO: this problem have to be addressed somehow, maybe rewrite promissing to be blocking somehow for TCL shell. Kamil's comment: I will rewrite existing TCL commands from time to time to follow this rules. diff --git a/flatcamGUI/GUIElements.py b/flatcamGUI/GUIElements.py index 89a24ace..be90969a 100644 --- a/flatcamGUI/GUIElements.py +++ b/flatcamGUI/GUIElements.py @@ -680,7 +680,7 @@ class FCTextAreaExtended(QtWidgets.QTextEdit): if character == "#": # delete # self.textCursor().deletePreviousChar() - # delete white space + # delete white space self.moveCursor(QtGui.QTextCursor.NextWord,QtGui.QTextCursor.KeepAnchor) self.textCursor().removeSelectedText() else: diff --git a/locale/ru/LC_MESSAGES/strings.mo b/locale/ru/LC_MESSAGES/strings.mo index 496bf459585179c6a6bcb10b352d2952d38645b0..5efa1776e2b5a2ad1e7b08c8f8e83035092ca6fa 100644 GIT binary patch literal 169348 zcmdSBcX(7)8@IbN2$)b5K@b$(fIyHGs!9YTB%v9K3DQJyl1#!tG7~csswiT`u3*7} z*adsc!fJ@Kw*+nnkAmlhJZ}{Q zUfv?lYXb+uc5nog-F~nwJkW72+!?tMc7>fPt~h~ram8}u7t7x)rX zdcK66;7?HDv|Vh&@8mcDDxOl<0an8u;3BASPK5G*3G4=Mhsy8sPX5R-w8W;XyJIh? z^!9^UaHx|3Rz81mA*6-%n8CY`4^=vxnoJ zQ1R>s75-c(e@8g^9JnL$b+8+J1S-6D9Dj!0k+(n0>hqxN$3TTQ8@7iDsQ6bvwTIPE z;oJ^o{~T2LeF(e4-=OSwTxR3#3nh<+vYQH(|0q;E3!u_>GE{t5LY2d9j!!zi>G-u{ zi^Dx{SL`}Ng*z0g-A#ZhhZ%5tc&OtFsBl+7#eX?eK5laEPeJ*A!|_wcpJ6!-ywwr3 zaolGe>3R8ZB~-rdfNJMY!QSw7$BY%Wy!yfl^!vdD@LD($_CCtcHSh7;jvxBw1>cffr38C1G=KGw!J01ihU1#{psSPeJ8oneRLY`nSfT;x6Bp>QKq z`iqXY{b+xvdWgXm@HnXSp9sgnbKth{UB^%1-pJpzN2DXK(p!(A~sC?Z3RUWrH{R2?(Z*qJO zwn6?DDx5!|^40cao9@9-;f;npU^!H}8ll2D0V;pzI(a=*y6%Ae-~&+pK7&4NcZ!|2 z@*F2YwW}CZIu=32cQjNzp9z(ZYhf>V3)~gH3ajDIa59{8Ds2Q_2iw8#pz@t@nk}y^ zsBvX`sCw!Jv*2D%KN`+JJ^*T*yB4bco`4$v-i0dvpJ8vf!|AsD?+rB%hoQnf5}I^F z`M(w_-H*b3;iry!oMHXXgYv%$?gDRuitjl%0Dc7Jf2UP;TpJGiBhQCBz_X#;H#qq} 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 A>Hq)$ diff --git a/locale/ru/LC_MESSAGES/strings.po b/locale/ru/LC_MESSAGES/strings.po index 999d4e7d..97c05b2f 100644 --- a/locale/ru/LC_MESSAGES/strings.po +++ b/locale/ru/LC_MESSAGES/strings.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"POT-Creation-Date: 2019-06-09 17:10+0300\n" -"PO-Revision-Date: 2019-06-09 21:57+0400\n" +"POT-Creation-Date: 2019-06-11 23:00+0300\n" +"PO-Revision-Date: 2019-06-15 19:59+0400\n" "Last-Translator: Andrey Kultyapov \n" "Language-Team: \n" "Language: ru\n" @@ -28,26 +28,34 @@ msgid "[ERROR] Could not find the Language files. The App strings are missing." msgstr "" "[ERROR] Не удалось найти языковые файлы. Строки приложения отсутствуют." -#: FlatCAMApp.py:2019 ObjectCollection.py:80 flatcamTools/ToolImage.py:213 +#: FlatCAMApp.py:1836 +msgid "" +"(Type help to get started)\n" +"\n" +msgstr "" +"(Введите help для начала работы.)\n" +"\n" + +#: FlatCAMApp.py:2018 ObjectCollection.py:80 flatcamTools/ToolImage.py:213 #: flatcamTools/ToolPcbWizard.py:299 flatcamTools/ToolPcbWizard.py:322 msgid "Open cancelled." -msgstr "Открытие завершено." +msgstr "Открытие отменено." -#: FlatCAMApp.py:2033 +#: FlatCAMApp.py:2032 msgid "Open Config file failed." msgstr "Не удалось открыть файл конфигурации." -#: FlatCAMApp.py:2047 +#: FlatCAMApp.py:2046 msgid "Open Script file failed." msgstr "Ошибка открытия файла сценария." -#: FlatCAMApp.py:2236 +#: FlatCAMApp.py:2235 msgid "[WARNING_NOTCL] Select a Geometry, Gerber or Excellon Object to edit." msgstr "" "[WARNING_NOTCL] Выберите объект Geometry, Gerber или Excellon для " "редактирования." -#: FlatCAMApp.py:2246 +#: FlatCAMApp.py:2245 msgid "" "[WARNING_NOTCL] Simultanoeus editing of tools geometry in a MultiGeo " "Geometry is not possible.\n" @@ -57,97 +65,97 @@ msgstr "" "невозможно.\n" "Редактируйте только одну геометрию за раз." -#: FlatCAMApp.py:2290 +#: FlatCAMApp.py:2289 msgid "[WARNING_NOTCL] Editor is activated ..." msgstr "[WARNING_NOTCL] Редактор активирован ..." -#: FlatCAMApp.py:2308 +#: FlatCAMApp.py:2307 msgid "Do you want to save the edited object?" msgstr "Вы хотите сохранить редактируемый объект?" -#: FlatCAMApp.py:2309 flatcamGUI/FlatCAMGUI.py:1618 +#: FlatCAMApp.py:2308 flatcamGUI/FlatCAMGUI.py:1618 msgid "Close Editor" msgstr "Закрыть редактор" -#: FlatCAMApp.py:2312 FlatCAMApp.py:3404 FlatCAMApp.py:5882 +#: FlatCAMApp.py:2311 FlatCAMApp.py:3403 FlatCAMApp.py:5881 #: FlatCAMTranslation.py:89 flatcamGUI/FlatCAMGUI.py:3730 msgid "Yes" msgstr "Да" -#: FlatCAMApp.py:2313 FlatCAMApp.py:3405 FlatCAMApp.py:5883 +#: FlatCAMApp.py:2312 FlatCAMApp.py:3404 FlatCAMApp.py:5882 #: FlatCAMTranslation.py:90 flatcamGUI/FlatCAMGUI.py:3731 msgid "No" msgstr "Нет" -#: FlatCAMApp.py:2314 FlatCAMApp.py:3406 FlatCAMApp.py:3738 FlatCAMApp.py:5884 +#: FlatCAMApp.py:2313 FlatCAMApp.py:3405 FlatCAMApp.py:3737 FlatCAMApp.py:5883 msgid "Cancel" msgstr "Отмена" -#: FlatCAMApp.py:2341 +#: FlatCAMApp.py:2340 msgid "[WARNING] Object empty after edit." msgstr "[WARNING] Объект пуст после редактирования." -#: FlatCAMApp.py:2363 FlatCAMApp.py:2382 FlatCAMApp.py:2394 +#: FlatCAMApp.py:2362 FlatCAMApp.py:2381 FlatCAMApp.py:2393 msgid "[WARNING_NOTCL] Select a Gerber, Geometry or Excellon Object to update." msgstr "" "[WARNING_NOTCL] Выберите объект Gerber, Geometry или Excellon для обновления." -#: FlatCAMApp.py:2366 +#: FlatCAMApp.py:2365 #, python-format msgid "[selected] %s is updated, returning to App..." msgstr "[selected] %s обновлён, возврат в приложение ..." -#: FlatCAMApp.py:2731 +#: FlatCAMApp.py:2730 msgid "[ERROR] Could not load defaults file." msgstr "[ERROR] Не удаётся загрузить файл настроек." -#: FlatCAMApp.py:2743 +#: FlatCAMApp.py:2742 msgid "[ERROR] Failed to parse defaults file." msgstr "[ERRORr] Не удаётся прочитать файл настроек." -#: FlatCAMApp.py:2764 FlatCAMApp.py:2768 +#: FlatCAMApp.py:2763 FlatCAMApp.py:2767 msgid "Import FlatCAM Preferences" msgstr "Импорт настроек FlatCAM" -#: FlatCAMApp.py:2774 +#: FlatCAMApp.py:2773 msgid "[WARNING_NOTCL] FlatCAM preferences import cancelled." msgstr "[WARNING_NOTCL] Импорт настроек FlatCAM отменен." -#: FlatCAMApp.py:2782 FlatCAMApp.py:2836 FlatCAMApp.py:3283 +#: FlatCAMApp.py:2781 FlatCAMApp.py:2835 FlatCAMApp.py:3282 msgid "[ERROR_NOTCL] Could not load defaults file." msgstr "[ERROR_NOTCL] Не удалось загрузить файл значений по умолчанию." -#: FlatCAMApp.py:2790 FlatCAMApp.py:3292 +#: FlatCAMApp.py:2789 FlatCAMApp.py:3291 msgid "[ERROR_NOTCL] Failed to parse defaults file." msgstr "[ERROR_NOTCL] Не удалось прочитать файл значений по умолчанию." -#: FlatCAMApp.py:2793 +#: FlatCAMApp.py:2792 #, python-format msgid "[success] Imported Defaults from %s" msgstr "[success] Значения по умолчанию импортированы из %s" -#: FlatCAMApp.py:2808 FlatCAMApp.py:2813 +#: FlatCAMApp.py:2807 FlatCAMApp.py:2812 msgid "Export FlatCAM Preferences" msgstr "Экспорт настроек FlatCAM" -#: FlatCAMApp.py:2820 +#: FlatCAMApp.py:2819 msgid "[WARNING_NOTCL] FlatCAM preferences export cancelled." -msgstr "[WARNING_NOTCL] Экспорт настроек FlatCAM завершён." +msgstr "[WARNING_NOTCL] Экспорт настроек FlatCAM отменён." -#: FlatCAMApp.py:2855 FlatCAMApp.py:3337 +#: FlatCAMApp.py:2854 FlatCAMApp.py:3336 msgid "[ERROR_NOTCL] Failed to write defaults to file." msgstr "[ERROR_NOTCL] Не удалось записать значения по умолчанию в файл." -#: FlatCAMApp.py:2908 +#: FlatCAMApp.py:2907 msgid "[ERROR_NOTCL] Failed to open recent files file for writing." msgstr "[ERROR_NOTCL] Не удалось открыть файл истории файлов для записи." -#: FlatCAMApp.py:2985 camlib.py:4443 +#: FlatCAMApp.py:2984 camlib.py:4454 msgid "[ERROR_NOTCL] An internal error has ocurred. See shell.\n" msgstr "" "[ERROR_NOTCL] Произошла внутренняя ошибка. Посмотрите в командную строку.\n" -#: FlatCAMApp.py:2986 +#: FlatCAMApp.py:2985 #, python-brace-format msgid "" "Object ({kind}) failed because: {error} \n" @@ -156,11 +164,11 @@ msgstr "" "Объект ({kind}) не выполнен, потому что: {error} \n" "\n" -#: FlatCAMApp.py:3006 +#: FlatCAMApp.py:3005 msgid "Converting units to " msgstr "Конвертирование единиц в " -#: FlatCAMApp.py:3085 FlatCAMApp.py:3088 FlatCAMApp.py:3091 FlatCAMApp.py:3094 +#: FlatCAMApp.py:3084 FlatCAMApp.py:3087 FlatCAMApp.py:3090 FlatCAMApp.py:3093 #, python-brace-format msgid "" "[selected] {kind} created/selected: {name}{name}" -#: FlatCAMApp.py:3188 +#: FlatCAMApp.py:3187 #, python-brace-format msgid "" "FlatCAM
Version {version} {beta} ({date}) - " @@ -191,31 +199,31 @@ msgstr "" "a>
ЗАГРУЗИТЬ можно отсюда.
" -#: FlatCAMApp.py:3341 +#: FlatCAMApp.py:3340 msgid "[success] Defaults saved." msgstr "[success] Значения по умолчанию сохранены." -#: FlatCAMApp.py:3362 +#: FlatCAMApp.py:3361 msgid "[ERROR_NOTCL] Could not load factory defaults file." msgstr "[ERROR_NOTCL] Не удалось загрузить файл с исходными значениями." -#: FlatCAMApp.py:3371 +#: FlatCAMApp.py:3370 msgid "[ERROR_NOTCL] Failed to parse factory defaults file." msgstr "[ERROR_NOTCL] Не удалось прочитать файл с исходными значениями." -#: FlatCAMApp.py:3385 +#: FlatCAMApp.py:3384 msgid "[ERROR_NOTCL] Failed to write factory defaults to file." msgstr "[ERROR_NOTCL] Не удалось записать исходные значения в файл." -#: FlatCAMApp.py:3389 +#: FlatCAMApp.py:3388 msgid "Factory defaults saved." msgstr "Исходные значения сохранены." -#: FlatCAMApp.py:3394 flatcamGUI/FlatCAMGUI.py:3106 +#: FlatCAMApp.py:3393 flatcamGUI/FlatCAMGUI.py:3106 msgid "[WARNING_NOTCL] Application is saving the project. Please wait ..." msgstr "[WARNING_NOTCL] Приложение сохраняет проект. Пожалуйста, подождите ..." -#: FlatCAMApp.py:3399 +#: FlatCAMApp.py:3398 msgid "" "There are files/objects modified in FlatCAM. \n" "Do you want to Save the project?" @@ -223,11 +231,11 @@ msgstr "" "Есть файлы/объекты, измененные в FlatCAM.\n" "Вы хотите сохранить проект?" -#: FlatCAMApp.py:3402 FlatCAMApp.py:5880 +#: FlatCAMApp.py:3401 FlatCAMApp.py:5879 msgid "Save changes" msgstr "Сохранить изменения" -#: FlatCAMApp.py:3469 +#: FlatCAMApp.py:3468 msgid "" "[ERROR] Failed join. The Geometry objects are of different types.\n" "At least one is MultiGeo type and the other is SingleGeo type. A possibility " @@ -243,70 +251,70 @@ msgstr "" "потеряна, и результат может не соответствовать ожидаемому. \n" "Проверьте сгенерированный GCODE." -#: FlatCAMApp.py:3510 +#: FlatCAMApp.py:3509 msgid "[ERROR_NOTCL] Failed. Excellon joining works only on Excellon objects." msgstr "" "[ERROR_NOTCL] Неудача. Присоединение Excellon работает только на объектах " "Excellon." -#: FlatCAMApp.py:3532 +#: FlatCAMApp.py:3531 msgid "[ERROR_NOTCL] Failed. Gerber joining works only on Gerber objects." msgstr "" "[ERROR_NOTCL] Неудача. Объединение Gerber работает только на объектах Gerber." -#: FlatCAMApp.py:3547 FlatCAMApp.py:3572 +#: FlatCAMApp.py:3546 FlatCAMApp.py:3571 msgid "[ERROR_NOTCL] Failed. Select a Geometry Object and try again." msgstr "[ERROR_NOTCL] Неудалось. Выберите объект Geometry и попробуйте снова." -#: FlatCAMApp.py:3551 FlatCAMApp.py:3576 +#: FlatCAMApp.py:3550 FlatCAMApp.py:3575 #, python-format msgid "[ERROR_NOTCL] Expected a FlatCAMGeometry, got %s" msgstr "[ERROR_NOTCL] Ожидается FlatCAMGeometry, получено %s" -#: FlatCAMApp.py:3564 +#: FlatCAMApp.py:3563 msgid "[success] A Geometry object was converted to MultiGeo type." msgstr "[success] Объект Geometry был преобразован в тип MultiGeo." -#: FlatCAMApp.py:3590 +#: FlatCAMApp.py:3589 msgid "[success] A Geometry object was converted to SingleGeo type." msgstr "[success] Объект Geometry был преобразован в тип SingleGeo." -#: FlatCAMApp.py:3737 FlatCAMApp.py:4573 FlatCAMApp.py:6155 FlatCAMApp.py:6166 -#: FlatCAMApp.py:6406 FlatCAMApp.py:6416 +#: FlatCAMApp.py:3736 FlatCAMApp.py:4572 FlatCAMApp.py:6154 FlatCAMApp.py:6165 +#: FlatCAMApp.py:6405 FlatCAMApp.py:6415 msgid "Ok" msgstr "Да" -#: FlatCAMApp.py:3779 +#: FlatCAMApp.py:3778 #, python-format msgid "[success] Converted units to %s" msgstr "[success] Конвертирование единиц в %s" -#: FlatCAMApp.py:3790 +#: FlatCAMApp.py:3789 msgid "[WARNING_NOTCL] Units conversion cancelled." -msgstr "[WARNING_NOTCL] Преобразование единиц завершено." +msgstr "[WARNING_NOTCL] Преобразование единиц отменено." -#: FlatCAMApp.py:4442 +#: FlatCAMApp.py:4441 msgid "Open file" msgstr "Открыть файл" -#: FlatCAMApp.py:4473 FlatCAMApp.py:4478 +#: FlatCAMApp.py:4472 FlatCAMApp.py:4477 msgid "Export G-Code ..." msgstr "Экспорт G-Code …" -#: FlatCAMApp.py:4481 +#: FlatCAMApp.py:4480 msgid "[WARNING_NOTCL] Export Code cancelled." -msgstr "[WARNING_NOTCL] Экспорт Code завершён." +msgstr "[WARNING_NOTCL] Экспорт Code отменён." -#: FlatCAMApp.py:4491 +#: FlatCAMApp.py:4490 msgid "[WARNING] No such file or directory" msgstr "[WARNING] Нет такого файла или каталога" -#: FlatCAMApp.py:4498 +#: FlatCAMApp.py:4497 #, python-format msgid "Saved to: %s" msgstr "Сохранёно в: %s" -#: FlatCAMApp.py:4561 FlatCAMApp.py:4594 FlatCAMApp.py:4605 FlatCAMApp.py:4616 +#: FlatCAMApp.py:4560 FlatCAMApp.py:4593 FlatCAMApp.py:4604 FlatCAMApp.py:4615 #: flatcamTools/ToolNonCopperClear.py:489 flatcamTools/ToolSolderPaste.py:765 msgid "" "[WARNING_NOTCL] Please enter a tool diameter with non-zero value, in Float " @@ -315,12 +323,12 @@ msgstr "" "[WARNING_NOTCL] Пожалуйста, введите диаметр инструмента с ненулевым " "значением в float формате." -#: FlatCAMApp.py:4566 FlatCAMApp.py:4599 FlatCAMApp.py:4610 FlatCAMApp.py:4621 +#: FlatCAMApp.py:4565 FlatCAMApp.py:4598 FlatCAMApp.py:4609 FlatCAMApp.py:4620 #: flatcamGUI/FlatCAMGUI.py:3001 msgid "[WARNING_NOTCL] Adding Tool cancelled ..." -msgstr "[WARNING_NOTCL] Добавление инструмента завершено ..." +msgstr "[WARNING_NOTCL] Добавление инструмента отменено ..." -#: FlatCAMApp.py:4569 +#: FlatCAMApp.py:4568 msgid "" "Adding Tool works only when Advanced is checked.\n" "Go to Preferences -> General - Show Advanced Options." @@ -329,35 +337,35 @@ msgstr "" "«Дополнительно».\n" "Перейдите в Настройки -> Основные парам. - Показать дополнительные параметры." -#: FlatCAMApp.py:4682 +#: FlatCAMApp.py:4681 msgid "Object(s) deleted ..." msgstr "Объект(ы) удален ..." -#: FlatCAMApp.py:4686 +#: FlatCAMApp.py:4685 msgid "Failed. No object(s) selected..." msgstr "Нудача. Объекты не выбраны ..." -#: FlatCAMApp.py:4688 +#: FlatCAMApp.py:4687 msgid "Save the work in Editor and try again ..." msgstr "Сохраните работу в редакторе и попробуйте снова ..." -#: FlatCAMApp.py:4701 +#: FlatCAMApp.py:4700 msgid "Click to set the origin ..." -msgstr "Кликните, чтобы указать начало ..." +msgstr "Кликните, чтобы указать начало координат ..." -#: FlatCAMApp.py:4713 +#: FlatCAMApp.py:4712 msgid "Jump to ..." msgstr "Перейти к ..." -#: FlatCAMApp.py:4714 +#: FlatCAMApp.py:4713 msgid "Enter the coordinates in format X,Y:" msgstr "Введите координаты в формате X, Y:" -#: FlatCAMApp.py:4721 +#: FlatCAMApp.py:4720 msgid "Wrong coordinates. Enter coordinates in format: X,Y" msgstr "Неверные координаты. Введите координаты в формате: X, Y" -#: FlatCAMApp.py:4739 flatcamEditors/FlatCAMExcEditor.py:2320 +#: FlatCAMApp.py:4738 flatcamEditors/FlatCAMExcEditor.py:2320 #: flatcamEditors/FlatCAMExcEditor.py:2327 #: flatcamEditors/FlatCAMGeoEditor.py:3645 #: flatcamEditors/FlatCAMGeoEditor.py:3659 @@ -371,84 +379,84 @@ msgstr "Неверные координаты. Введите координат msgid "[success] Done." msgstr "[success] Готово." -#: FlatCAMApp.py:4871 FlatCAMApp.py:4938 +#: FlatCAMApp.py:4870 FlatCAMApp.py:4937 msgid "[WARNING_NOTCL] No object is selected. Select an object and try again." msgstr "[WARNING_NOTCL] Объект не выбран. Выберите объект и попробуйте снова." -#: FlatCAMApp.py:4979 +#: FlatCAMApp.py:4978 msgid "[success] Origin set ..." -msgstr "[success] Начало установлено ..." +msgstr "[success] Начало координат установлено ..." -#: FlatCAMApp.py:4999 +#: FlatCAMApp.py:4998 msgid "Preferences" msgstr "Настройки" -#: FlatCAMApp.py:5019 +#: FlatCAMApp.py:5018 msgid "[WARNING_NOTCL] No object selected to Flip on Y axis." msgstr "[WARNING_NOTCL] Не выбран объект для отражения по оси Y." -#: FlatCAMApp.py:5044 +#: FlatCAMApp.py:5043 msgid "[success] Flip on Y axis done." msgstr "[success] Отражение по оси Y завершено." -#: FlatCAMApp.py:5046 FlatCAMApp.py:5086 +#: FlatCAMApp.py:5045 FlatCAMApp.py:5085 #: flatcamEditors/FlatCAMGeoEditor.py:1355 #: flatcamEditors/FlatCAMGrbEditor.py:5331 flatcamTools/ToolTransform.py:748 #, python-format msgid "[ERROR_NOTCL] Due of %s, Flip action was not executed." msgstr "[ERROR_NOTCL] Из-за %s, операция переворота не была выполнена." -#: FlatCAMApp.py:5059 +#: FlatCAMApp.py:5058 msgid "[WARNING_NOTCL] No object selected to Flip on X axis." msgstr "[WARNING_NOTCL] Не выбран объект для отражения по оси Х." -#: FlatCAMApp.py:5084 +#: FlatCAMApp.py:5083 msgid "[success] Flip on X axis done." msgstr "[success] Отражение по оси Х завершено." -#: FlatCAMApp.py:5099 +#: FlatCAMApp.py:5098 msgid "[WARNING_NOTCL] No object selected to Rotate." msgstr "[WARNING_NOTCL] Не выбран ни один объект для вращения." -#: FlatCAMApp.py:5102 FlatCAMApp.py:5147 FlatCAMApp.py:5178 +#: FlatCAMApp.py:5101 FlatCAMApp.py:5146 FlatCAMApp.py:5177 msgid "Transform" msgstr "Трансформация" -#: FlatCAMApp.py:5102 FlatCAMApp.py:5147 FlatCAMApp.py:5178 +#: FlatCAMApp.py:5101 FlatCAMApp.py:5146 FlatCAMApp.py:5177 msgid "Enter the Angle value:" msgstr "Введите значение угла:" -#: FlatCAMApp.py:5132 +#: FlatCAMApp.py:5131 msgid "[success] Rotation done." msgstr "[success] Вращение завершено." -#: FlatCAMApp.py:5134 flatcamEditors/FlatCAMGeoEditor.py:1298 +#: FlatCAMApp.py:5133 flatcamEditors/FlatCAMGeoEditor.py:1298 #: flatcamEditors/FlatCAMGrbEditor.py:5262 flatcamTools/ToolTransform.py:677 #, python-format msgid "[ERROR_NOTCL] Due of %s, rotation movement was not executed." msgstr "[ERROR_NOTCL] Из-за %s вращение не было выполнено." -#: FlatCAMApp.py:5145 +#: FlatCAMApp.py:5144 msgid "[WARNING_NOTCL] No object selected to Skew/Shear on X axis." msgstr "[WARNING_NOTCL] Не выбран ни один объект для наклона/сдвига по оси X." -#: FlatCAMApp.py:5166 +#: FlatCAMApp.py:5165 msgid "[success] Skew on X axis done." msgstr "[success] Наклон по оси X выполнен." -#: FlatCAMApp.py:5176 +#: FlatCAMApp.py:5175 msgid "[WARNING_NOTCL] No object selected to Skew/Shear on Y axis." -msgstr "" +msgstr "[WARNING_NOTCL] Нет объекта, выбранного для наклона/сдвига по оси Y." -#: FlatCAMApp.py:5197 +#: FlatCAMApp.py:5196 msgid "[success] Skew on Y axis done." -msgstr "" +msgstr "[success] Наклон по оси Y выполнен." -#: FlatCAMApp.py:5266 +#: FlatCAMApp.py:5265 msgid "Grid On/Off" msgstr "Сетка вкл/откл" -#: FlatCAMApp.py:5279 flatcamEditors/FlatCAMGeoEditor.py:937 +#: FlatCAMApp.py:5278 flatcamEditors/FlatCAMGeoEditor.py:937 #: flatcamEditors/FlatCAMGrbEditor.py:2381 #: flatcamEditors/FlatCAMGrbEditor.py:4853 flatcamGUI/ObjectUI.py:991 #: flatcamTools/ToolDblSided.py:160 flatcamTools/ToolDblSided.py:208 @@ -458,7 +466,7 @@ msgstr "Сетка вкл/откл" msgid "Add" msgstr "Добавить" -#: FlatCAMApp.py:5280 FlatCAMObj.py:3306 +#: FlatCAMApp.py:5279 FlatCAMObj.py:3270 #: flatcamEditors/FlatCAMGrbEditor.py:2386 flatcamGUI/FlatCAMGUI.py:527 #: flatcamGUI/FlatCAMGUI.py:724 flatcamGUI/FlatCAMGUI.py:1616 #: flatcamGUI/FlatCAMGUI.py:1953 flatcamGUI/ObjectUI.py:1007 @@ -467,15 +475,15 @@ msgstr "Добавить" msgid "Delete" msgstr "Удалить" -#: FlatCAMApp.py:5293 +#: FlatCAMApp.py:5292 msgid "New Grid ..." msgstr "Новая сетка ..." -#: FlatCAMApp.py:5294 +#: FlatCAMApp.py:5293 msgid "Enter a Grid Value:" msgstr "Введите размер сетки:" -#: FlatCAMApp.py:5302 FlatCAMApp.py:5329 +#: FlatCAMApp.py:5301 FlatCAMApp.py:5328 msgid "" "[WARNING_NOTCL] Please enter a grid value with non-zero value, in Float " "format." @@ -483,48 +491,48 @@ msgstr "" "[WARNING_NOTCL] Пожалуйста, введите значение сетки с ненулевым значением в " "float формате." -#: FlatCAMApp.py:5308 +#: FlatCAMApp.py:5307 msgid "[success] New Grid added ..." msgstr "[success] Новая сетка добавлена ..." -#: FlatCAMApp.py:5311 +#: FlatCAMApp.py:5310 msgid "[WARNING_NOTCL] Grid already exists ..." -msgstr "" +msgstr "[WARNING_NOTCL] Сетка уже существует ..." -#: FlatCAMApp.py:5314 +#: FlatCAMApp.py:5313 msgid "[WARNING_NOTCL] Adding New Grid cancelled ..." -msgstr "" +msgstr "[WARNING_NOTCL] Добавление новой сетки отменено ..." -#: FlatCAMApp.py:5336 +#: FlatCAMApp.py:5335 msgid "[ERROR_NOTCL] Grid Value does not exist ..." -msgstr "" +msgstr "[ERROR_NOTCL] Значение сетки не существует ..." -#: FlatCAMApp.py:5339 +#: FlatCAMApp.py:5338 msgid "[success] Grid Value deleted ..." -msgstr "" +msgstr "[success] Значение сетки удалено ..." -#: FlatCAMApp.py:5342 +#: FlatCAMApp.py:5341 msgid "[WARNING_NOTCL] Delete Grid value cancelled ..." -msgstr "" +msgstr "[WARNING_NOTCL] Удаление значения сетки отменено ..." -#: FlatCAMApp.py:5381 +#: FlatCAMApp.py:5380 msgid "[WARNING_NOTCL] No object selected to copy it's name" -msgstr "" +msgstr "[WARNING_NOTCL] Нет объекта, выбранного для копирования его имени" -#: FlatCAMApp.py:5385 +#: FlatCAMApp.py:5384 msgid "Name copied on clipboard ..." msgstr "Имя скопировано в буфер обмена ..." -#: FlatCAMApp.py:5678 FlatCAMApp.py:5681 FlatCAMApp.py:5684 FlatCAMApp.py:5687 -#: FlatCAMApp.py:5702 FlatCAMApp.py:5705 FlatCAMApp.py:5708 FlatCAMApp.py:5711 -#: FlatCAMApp.py:5751 FlatCAMApp.py:5754 FlatCAMApp.py:5757 FlatCAMApp.py:5760 +#: FlatCAMApp.py:5677 FlatCAMApp.py:5680 FlatCAMApp.py:5683 FlatCAMApp.py:5686 +#: FlatCAMApp.py:5701 FlatCAMApp.py:5704 FlatCAMApp.py:5707 FlatCAMApp.py:5710 +#: FlatCAMApp.py:5750 FlatCAMApp.py:5753 FlatCAMApp.py:5756 FlatCAMApp.py:5759 #: ObjectCollection.py:719 ObjectCollection.py:722 ObjectCollection.py:725 #: ObjectCollection.py:728 #, python-brace-format msgid "[selected]{name} selected" msgstr "[selected]{name} выбран" -#: FlatCAMApp.py:5877 +#: FlatCAMApp.py:5876 msgid "" "There are files/objects opened in FlatCAM.\n" "Creating a New project will delete them.\n" @@ -534,216 +542,229 @@ msgstr "" "Создание нового проекта удалит их.\n" "Вы хотите сохранить проект?" -#: FlatCAMApp.py:5898 +#: FlatCAMApp.py:5897 msgid "[success] New Project created..." msgstr "[success] Новый проект создан ..." -#: FlatCAMApp.py:6014 FlatCAMApp.py:6017 flatcamGUI/FlatCAMGUI.py:608 +#: FlatCAMApp.py:6013 FlatCAMApp.py:6016 flatcamGUI/FlatCAMGUI.py:608 #: flatcamGUI/FlatCAMGUI.py:1832 msgid "Open Gerber" msgstr "Открыть Gerber" -#: FlatCAMApp.py:6022 +#: FlatCAMApp.py:6021 msgid "[WARNING_NOTCL] Open Gerber cancelled." -msgstr "" +msgstr "[WARNING_NOTCL] Открытие Gerber отменено." -#: FlatCAMApp.py:6043 FlatCAMApp.py:6046 flatcamGUI/FlatCAMGUI.py:609 +#: FlatCAMApp.py:6042 FlatCAMApp.py:6045 flatcamGUI/FlatCAMGUI.py:609 #: flatcamGUI/FlatCAMGUI.py:1833 msgid "Open Excellon" msgstr "Открыть Excellon" -#: FlatCAMApp.py:6051 +#: FlatCAMApp.py:6050 msgid "[WARNING_NOTCL] Open Excellon cancelled." -msgstr "" +msgstr "[WARNING_NOTCL] Открытие Excellon отменено." -#: FlatCAMApp.py:6073 FlatCAMApp.py:6076 +#: FlatCAMApp.py:6072 FlatCAMApp.py:6075 msgid "Open G-Code" msgstr "Открыть G-Code" -#: FlatCAMApp.py:6081 +#: FlatCAMApp.py:6080 msgid "[WARNING_NOTCL] Open G-Code cancelled." -msgstr "" +msgstr "[WARNING_NOTCL] Открытие G-Code отменено." -#: FlatCAMApp.py:6099 FlatCAMApp.py:6102 +#: FlatCAMApp.py:6098 FlatCAMApp.py:6101 msgid "Open Project" msgstr "Открыть проект" -#: FlatCAMApp.py:6110 +#: FlatCAMApp.py:6109 msgid "[WARNING_NOTCL] Open Project cancelled." -msgstr "" +msgstr "[WARNING_NOTCL] Открытие проекта отменено." -#: FlatCAMApp.py:6129 FlatCAMApp.py:6132 +#: FlatCAMApp.py:6128 FlatCAMApp.py:6131 msgid "Open Configuration File" msgstr "Открыть файл конфигурации" -#: FlatCAMApp.py:6136 +#: FlatCAMApp.py:6135 msgid "[WARNING_NOTCL] Open Config cancelled." -msgstr "[WARNING_NOTCL] Открытие конфигурации завершено." +msgstr "[WARNING_NOTCL] Открытие конфигурации отменено." -#: FlatCAMApp.py:6151 FlatCAMApp.py:6402 FlatCAMApp.py:8552 FlatCAMApp.py:8572 -#: FlatCAMApp.py:8593 FlatCAMApp.py:8615 +#: FlatCAMApp.py:6150 FlatCAMApp.py:6401 FlatCAMApp.py:8551 FlatCAMApp.py:8571 +#: FlatCAMApp.py:8592 FlatCAMApp.py:8614 msgid "[WARNING_NOTCL] No object selected." msgstr "[WARNING_NOTCL] Нет выбранных объектов." -#: FlatCAMApp.py:6152 FlatCAMApp.py:6403 +#: FlatCAMApp.py:6151 FlatCAMApp.py:6402 msgid "Please Select a Geometry object to export" msgstr "Выберите объект Geometry для экспорта" -#: FlatCAMApp.py:6163 +#: FlatCAMApp.py:6162 msgid "[ERROR_NOTCL] Only Geometry, Gerber and CNCJob objects can be used." msgstr "" +"[ERROR_NOTCL] Можно использовать только объекты Geometry, Gerber и CNCJob." -#: FlatCAMApp.py:6176 FlatCAMApp.py:6180 +#: FlatCAMApp.py:6175 FlatCAMApp.py:6179 msgid "Export SVG" msgstr "Экспорт SVG" -#: FlatCAMApp.py:6185 +#: FlatCAMApp.py:6184 msgid "[WARNING_NOTCL] Export SVG cancelled." -msgstr "" +msgstr "[WARNING_NOTCL] Экспорт SVG отменён." -#: FlatCAMApp.py:6204 +#: FlatCAMApp.py:6203 msgid "[[WARNING_NOTCL]] Data must be a 3D array with last dimension 3 or 4" msgstr "" +"[WARNING_NOTCL] Данные должны быть 3D массивом с последним размером 3 или 4" -#: FlatCAMApp.py:6210 FlatCAMApp.py:6214 +#: FlatCAMApp.py:6209 FlatCAMApp.py:6213 msgid "Export PNG Image" msgstr "Экспорт PNG изображения" -#: FlatCAMApp.py:6219 +#: FlatCAMApp.py:6218 msgid "Export PNG cancelled." -msgstr "Экспорт PNG завершён." +msgstr "Экспорт PNG отменён." -#: FlatCAMApp.py:6238 +#: FlatCAMApp.py:6237 msgid "" "[WARNING_NOTCL] No object selected. Please select an Gerber object to export." msgstr "" "[WARNING_NOTCL] Нет выбранных объектов. Пожалуйста, выберите Gerber объект " "для экспорта." -#: FlatCAMApp.py:6243 FlatCAMApp.py:6366 +#: FlatCAMApp.py:6242 FlatCAMApp.py:6365 msgid "" "[ERROR_NOTCL] Failed. Only Gerber objects can be saved as Gerber files..." msgstr "" +"[ERROR_NOTCL] Ошибка. Только объекты Gerber могут быть сохранены как файлы " +"Gerber..." -#: FlatCAMApp.py:6255 +#: FlatCAMApp.py:6254 msgid "Save Gerber source file" msgstr "Сохранить исходный файл Gerber" -#: FlatCAMApp.py:6260 +#: FlatCAMApp.py:6259 msgid "[WARNING_NOTCL] Save Gerber source file cancelled." -msgstr "" +msgstr "[WARNING_NOTCL] Сохранение исходного кода файла Gerber отменено." -#: FlatCAMApp.py:6279 +#: FlatCAMApp.py:6278 msgid "" "[WARNING_NOTCL] No object selected. Please select an Excellon object to " "export." msgstr "" +"[WARNING_NOTCL] Объект не выбран. Пожалуйста, выберите Excellon объект для " +"экспорта." -#: FlatCAMApp.py:6284 FlatCAMApp.py:6325 +#: FlatCAMApp.py:6283 FlatCAMApp.py:6324 msgid "" "[ERROR_NOTCL] Failed. Only Excellon objects can be saved as Excellon files..." msgstr "" +"[ERROR_NOTCL] Ошибка. Только объекты Excellon могут быть сохранены как файлы " +"Excellon..." -#: FlatCAMApp.py:6292 FlatCAMApp.py:6296 +#: FlatCAMApp.py:6291 FlatCAMApp.py:6295 msgid "Save Excellon source file" msgstr "Сохранить исходный файл Excellon" -#: FlatCAMApp.py:6301 +#: FlatCAMApp.py:6300 msgid "[WARNING_NOTCL] Saving Excellon source file cancelled." -msgstr "" +msgstr "[WARNING_NOTCL] Сохранение исходного кода файла Excellon отменено." -#: FlatCAMApp.py:6320 +#: FlatCAMApp.py:6319 msgid "" "[WARNING_NOTCL] No object selected. Please Select an Excellon object to " "export." msgstr "" +"[WARNING_NOTCL] Объект не выбран. Пожалуйста, выберите Excellon объект для " +"экспорта." -#: FlatCAMApp.py:6333 FlatCAMApp.py:6337 +#: FlatCAMApp.py:6332 FlatCAMApp.py:6336 msgid "Export Excellon" msgstr "Экспорт Excellon" -#: FlatCAMApp.py:6342 +#: FlatCAMApp.py:6341 msgid "[WARNING_NOTCL] Export Excellon cancelled." -msgstr "" +msgstr "[WARNING_NOTCL] Экспорт Excellon отменен." -#: FlatCAMApp.py:6361 +#: FlatCAMApp.py:6360 msgid "" "[WARNING_NOTCL] No object selected. Please Select an Gerber object to export." msgstr "" "[WARNING_NOTCL] Нет выбранных объектов. Пожалуйста, выберите Gerber объект " "для экспорта." -#: FlatCAMApp.py:6374 FlatCAMApp.py:6378 +#: FlatCAMApp.py:6373 FlatCAMApp.py:6377 msgid "Export Gerber" msgstr "Экспорт Gerber" -#: FlatCAMApp.py:6383 +#: FlatCAMApp.py:6382 msgid "[WARNING_NOTCL] Export Gerber cancelled." -msgstr "" +msgstr "[WARNING_NOTCL] Экспорт Gerber отменен." -#: FlatCAMApp.py:6413 +#: FlatCAMApp.py:6412 msgid "[ERROR_NOTCL] Only Geometry objects can be used." -msgstr "" +msgstr "[ERROR_NOTCL] Можно использовать только объекты Geometry." -#: FlatCAMApp.py:6427 FlatCAMApp.py:6431 +#: FlatCAMApp.py:6426 FlatCAMApp.py:6430 msgid "Export DXF" msgstr "Экспорт DXF" -#: FlatCAMApp.py:6437 +#: FlatCAMApp.py:6436 msgid "[WARNING_NOTCL] Export DXF cancelled." -msgstr "" +msgstr "[WARNING_NOTCL] Экспорт DXF отменен." -#: FlatCAMApp.py:6457 FlatCAMApp.py:6460 +#: FlatCAMApp.py:6456 FlatCAMApp.py:6459 msgid "Import SVG" msgstr "Импорт SVG" -#: FlatCAMApp.py:6469 +#: FlatCAMApp.py:6468 msgid "[WARNING_NOTCL] Open SVG cancelled." -msgstr "" +msgstr "[WARNING_NOTCL] Открытие SVG отменено." -#: FlatCAMApp.py:6488 FlatCAMApp.py:6492 +#: FlatCAMApp.py:6487 FlatCAMApp.py:6491 msgid "Import DXF" msgstr "Импорт DXF" -#: FlatCAMApp.py:6501 +#: FlatCAMApp.py:6500 msgid "[WARNING_NOTCL] Open DXF cancelled." -msgstr "" +msgstr "[WARNING_NOTCL] Открытие DXF отменено." -#: FlatCAMApp.py:6519 +#: FlatCAMApp.py:6518 #, python-format msgid "%s" msgstr "%s" -#: FlatCAMApp.py:6539 +#: FlatCAMApp.py:6538 msgid "" "[WARNING_NOTCL] Select an Gerber or Excellon file to view it's source file." msgstr "" +"[WARNING_NOTCL] Выберите файл Gerber или Excellon для просмотра исходного " +"кода файла." -#: FlatCAMApp.py:6546 +#: FlatCAMApp.py:6545 msgid "" "[WARNING_NOTCL] There is no selected object for which to see it's source " "file code." msgstr "" +"[WARNING_NOTCL] Нет выбранного объекта, для просмотра исходного кода файла." -#: FlatCAMApp.py:6554 +#: FlatCAMApp.py:6553 msgid "Source Editor" msgstr "Редактор исходного кода" -#: FlatCAMApp.py:6564 +#: FlatCAMApp.py:6563 #, python-format msgid "[ERROR]App.on_view_source() -->%s" -msgstr "" +msgstr "[ERROR]App.on_view_source() -->%s" -#: FlatCAMApp.py:6576 FlatCAMApp.py:7718 FlatCAMObj.py:5587 +#: FlatCAMApp.py:6575 FlatCAMApp.py:7717 FlatCAMObj.py:5551 #: flatcamTools/ToolSolderPaste.py:1278 msgid "Code Editor" msgstr "Редактор кода" -#: FlatCAMApp.py:6588 +#: FlatCAMApp.py:6587 msgid "Script Editor" msgstr "Редактор сценариев" -#: FlatCAMApp.py:6591 +#: FlatCAMApp.py:6590 msgid "" "#\n" "# CREATE A NEW FLATCAM TCL SCRIPT\n" @@ -787,216 +808,226 @@ msgstr "" "#\n" "\n" -#: FlatCAMApp.py:6614 FlatCAMApp.py:6617 +#: FlatCAMApp.py:6613 FlatCAMApp.py:6616 msgid "Open TCL script" msgstr "Открыть сценарий TCL" -#: FlatCAMApp.py:6625 +#: FlatCAMApp.py:6624 msgid "[WARNING_NOTCL] Open TCL script cancelled." -msgstr "" +msgstr "[WARNING_NOTCL] Открытие сценария отменено." -#: FlatCAMApp.py:6637 +#: FlatCAMApp.py:6636 #, python-format msgid "[ERROR]App.on_fileopenscript() -->%s" -msgstr "" +msgstr "[ERROR]App.on_fileopenscript() -->%s" -#: FlatCAMApp.py:6663 FlatCAMApp.py:6666 +#: FlatCAMApp.py:6662 FlatCAMApp.py:6665 msgid "Run TCL script" msgstr "Запустить сценарий TCL" -#: FlatCAMApp.py:6674 +#: FlatCAMApp.py:6673 msgid "[WARNING_NOTCL] Run TCL script cancelled." -msgstr "" +msgstr "[WARNING_NOTCL] Запуск сценария отменен." -#: FlatCAMApp.py:6724 FlatCAMApp.py:6728 +#: FlatCAMApp.py:6723 FlatCAMApp.py:6727 msgid "Save Project As ..." msgstr "Сохранить проект как..." -#: FlatCAMApp.py:6725 +#: FlatCAMApp.py:6724 #, python-brace-format msgid "{l_save}/Project_{date}" msgstr "{l_save}/Project_{date}" -#: FlatCAMApp.py:6733 +#: FlatCAMApp.py:6732 msgid "[WARNING_NOTCL] Save Project cancelled." -msgstr "" +msgstr "[WARNING_NOTCL] Сохранение проекта отменено." -#: FlatCAMApp.py:6777 +#: FlatCAMApp.py:6776 msgid "Exporting SVG" msgstr "Экспортирование SVG" -#: FlatCAMApp.py:6811 FlatCAMApp.py:6917 FlatCAMApp.py:7032 +#: FlatCAMApp.py:6810 FlatCAMApp.py:6916 FlatCAMApp.py:7031 #, python-format msgid "[success] SVG file exported to %s" -msgstr "" +msgstr "[success] Файл SVG экспортируется в %s" -#: FlatCAMApp.py:6842 FlatCAMApp.py:6963 +#: FlatCAMApp.py:6841 FlatCAMApp.py:6962 #, python-format msgid "[WARNING_NOTCL] No object Box. Using instead %s" -msgstr "" +msgstr "[WARNING_NOTCL] Нет объекта Box. Используйте взамен %s" -#: FlatCAMApp.py:6920 FlatCAMApp.py:7035 +#: FlatCAMApp.py:6919 FlatCAMApp.py:7034 msgid "Generating Film ... Please wait." msgstr "Создание фильма ... Пожалуйста, подождите." -#: FlatCAMApp.py:7183 +#: FlatCAMApp.py:7182 #, python-format msgid "[success] Excellon file exported to %s" -msgstr "" +msgstr "[success] Файл Excellon экспортируется в %s" -#: FlatCAMApp.py:7190 +#: FlatCAMApp.py:7189 msgid "Exporting Excellon" msgstr "Экспорт Excellon" -#: FlatCAMApp.py:7195 FlatCAMApp.py:7202 +#: FlatCAMApp.py:7194 FlatCAMApp.py:7201 msgid "[ERROR_NOTCL] Could not export Excellon file." -msgstr "" +msgstr "[ERROR_NOTCL] Не удалось экспортировать файл Excellon." -#: FlatCAMApp.py:7300 +#: FlatCAMApp.py:7299 #, python-format msgid "[success] Gerber file exported to %s" -msgstr "" +msgstr "[success] Файл Gerber экспортируется в %s" -#: FlatCAMApp.py:7307 +#: FlatCAMApp.py:7306 msgid "Exporting Gerber" msgstr "Экспортирование Gerber" -#: FlatCAMApp.py:7312 FlatCAMApp.py:7319 +#: FlatCAMApp.py:7311 FlatCAMApp.py:7318 msgid "[ERROR_NOTCL] Could not export Gerber file." -msgstr "" +msgstr "[ERROR_NOTCL] Не удалось экспортировать файл Gerber." -#: FlatCAMApp.py:7359 +#: FlatCAMApp.py:7358 #, python-format msgid "[success] DXF file exported to %s" -msgstr "" +msgstr "[success] Файл DXF экспортируется в %s" -#: FlatCAMApp.py:7365 +#: FlatCAMApp.py:7364 msgid "Exporting DXF" msgstr "Экспорт DXF" -#: FlatCAMApp.py:7370 FlatCAMApp.py:7377 +#: FlatCAMApp.py:7369 FlatCAMApp.py:7376 msgid "[[WARNING_NOTCL]] Could not export DXF file." -msgstr "" +msgstr "[WARNING_NOTCL] Не удалось экспортировать файл DXF." -#: FlatCAMApp.py:7397 FlatCAMApp.py:7439 FlatCAMApp.py:7483 +#: FlatCAMApp.py:7396 FlatCAMApp.py:7438 FlatCAMApp.py:7482 msgid "" "[ERROR_NOTCL] Not supported type is picked as parameter. Only Geometry and " "Gerber are supported" msgstr "" +"[ERROR_NOTCL] В качестве параметра выбран не поддерживаемый тип. " +"Поддерживаются только Geometry и Gerber" -#: FlatCAMApp.py:7407 +#: FlatCAMApp.py:7406 msgid "Importing SVG" msgstr "Импортирование SVG" -#: FlatCAMApp.py:7418 FlatCAMApp.py:7460 FlatCAMApp.py:7503 FlatCAMApp.py:7580 -#: FlatCAMApp.py:7641 FlatCAMApp.py:7704 flatcamTools/ToolPDF.py:212 +#: FlatCAMApp.py:7417 FlatCAMApp.py:7459 FlatCAMApp.py:7502 FlatCAMApp.py:7579 +#: FlatCAMApp.py:7640 FlatCAMApp.py:7703 flatcamTools/ToolPDF.py:212 #, python-format msgid "[success] Opened: %s" msgstr "[success] Открыт: %s" -#: FlatCAMApp.py:7449 +#: FlatCAMApp.py:7448 msgid "Importing DXF" msgstr "Импорт DXF" -#: FlatCAMApp.py:7491 +#: FlatCAMApp.py:7490 msgid "Importing Image" msgstr "Импорт изображения" -#: FlatCAMApp.py:7532 FlatCAMApp.py:7534 +#: FlatCAMApp.py:7531 FlatCAMApp.py:7533 #, python-format msgid "[ERROR_NOTCL] Failed to open file: %s" -msgstr "" +msgstr "[ERROR_NOTCL] Не удалось открыть файл: %s" -#: FlatCAMApp.py:7537 +#: FlatCAMApp.py:7536 #, python-brace-format msgid "[ERROR_NOTCL] Failed to parse file: {name}. {error}" -msgstr "" +msgstr "[ERROR_NOTCL] Не удалось проанализировать файл: {name}. {error}" -#: FlatCAMApp.py:7544 FlatCAMObj.py:4266 +#: FlatCAMApp.py:7543 FlatCAMObj.py:4230 #: flatcamEditors/FlatCAMExcEditor.py:2077 msgid "[ERROR] An internal error has ocurred. See shell.\n" msgstr "[ERROR] Произошла внутренняя ошибка. Посмотрите в командную строку.\n" -#: FlatCAMApp.py:7553 +#: FlatCAMApp.py:7552 msgid "" "[ERROR_NOTCL] Object is not Gerber file or empty. Aborting object creation." msgstr "" +"[ERROR_NOTCL] Объект не является файлом Gerber или пустым. Прерывание " +"создания объекта." -#: FlatCAMApp.py:7561 +#: FlatCAMApp.py:7560 msgid "Opening Gerber" msgstr "Открытие Gerber" -#: FlatCAMApp.py:7571 +#: FlatCAMApp.py:7570 msgid "[ERROR_NOTCL] Open Gerber failed. Probable not a Gerber file." -msgstr "" +msgstr "[ERROR_NOTCL] Открыть Gerber не удалось. Вероятно это не Gerber файл." -#: FlatCAMApp.py:7604 flatcamTools/ToolPcbWizard.py:421 +#: FlatCAMApp.py:7603 flatcamTools/ToolPcbWizard.py:421 msgid "[ERROR_NOTCL] This is not Excellon file." -msgstr "" +msgstr "[ERROR_NOTCL] Это не Excellon файл." -#: FlatCAMApp.py:7607 +#: FlatCAMApp.py:7606 #, python-format msgid "[ERROR_NOTCL] Cannot open file: %s" -msgstr "" +msgstr "[ERROR_NOTCL] Не удается открыть файл: %s" -#: FlatCAMApp.py:7612 flatcamTools/ToolPcbWizard.py:429 +#: FlatCAMApp.py:7611 flatcamTools/ToolPcbWizard.py:429 msgid "[ERROR_NOTCL] An internal error has occurred. See shell.\n" msgstr "" +"[ERROR_NOTCL] Произошла внутренняя ошибка. Смотрите коммандную строку.\n" -#: FlatCAMApp.py:7625 flatcamTools/ToolPDF.py:262 +#: FlatCAMApp.py:7624 flatcamTools/ToolPDF.py:262 #: flatcamTools/ToolPcbWizard.py:442 #, python-format msgid "[ERROR_NOTCL] No geometry found in file: %s" -msgstr "" +msgstr "[ERROR_NOTCL] Геометрия не найдена в файле: %s" -#: FlatCAMApp.py:7628 +#: FlatCAMApp.py:7627 msgid "Opening Excellon." msgstr "Открытие Excellon." -#: FlatCAMApp.py:7634 +#: FlatCAMApp.py:7633 msgid "[ERROR_NOTCL] Open Excellon file failed. Probable not an Excellon file." msgstr "" +"[ERROR_NOTCL] Не удалось открыть файл Excellon. Вероятно это не файл " +"Excellon." -#: FlatCAMApp.py:7671 +#: FlatCAMApp.py:7670 #, python-format msgid "[ERROR_NOTCL] Failed to open %s" -msgstr "" +msgstr "[ERROR_NOTCL] Не удалось открыть %s" -#: FlatCAMApp.py:7681 +#: FlatCAMApp.py:7680 msgid "[ERROR_NOTCL] This is not GCODE" -msgstr "" +msgstr "[ERROR_NOTCL] Это не GCODE" -#: FlatCAMApp.py:7687 +#: FlatCAMApp.py:7686 msgid "Opening G-Code." msgstr "Открытие G-Code." -#: FlatCAMApp.py:7695 +#: FlatCAMApp.py:7694 msgid "" "[ERROR_NOTCL] Failed to create CNCJob Object. Probable not a GCode file.\n" " Attempting to create a FlatCAM CNCJob Object from G-Code file failed during " "processing" msgstr "" +"[ERROR_NOTCL] Не удалось создать объект CNCJob. Вероятно это не файл GCode.\n" +" Попытка создать объект Flatcam CNCJob из файла G-кода не удалась во время " +"обработки" -#: FlatCAMApp.py:7735 +#: FlatCAMApp.py:7734 #, python-format msgid "[ERROR_NOTCL] Failed to open config file: %s" -msgstr "" +msgstr "[ERROR_NOTCL] Не удалось открыть файл конфигурации: %s" -#: FlatCAMApp.py:7761 FlatCAMApp.py:7778 +#: FlatCAMApp.py:7760 FlatCAMApp.py:7777 #, python-format msgid "[ERROR_NOTCL] Failed to open project file: %s" -msgstr "" +msgstr "[ERROR_NOTCL] Не удалось открыть файл проекта: %s" -#: FlatCAMApp.py:7801 +#: FlatCAMApp.py:7800 #, python-format msgid "[success] Project loaded from: %s" -msgstr "" +msgstr "[success] Проект загружен из: %s" -#: FlatCAMApp.py:7906 +#: FlatCAMApp.py:7905 msgid "Available commands:\n" msgstr "Доступные команды:\n" -#: FlatCAMApp.py:7908 +#: FlatCAMApp.py:7907 msgid "" "\n" "\n" @@ -1008,27 +1039,27 @@ msgstr "" "Для дополнительной информации ведите help <имя_команды> .\n" "Пример: help open_gerber" -#: FlatCAMApp.py:8058 +#: FlatCAMApp.py:8057 msgid "Shows list of commands." msgstr "Показывает список команд." -#: FlatCAMApp.py:8115 +#: FlatCAMApp.py:8114 msgid "[ERROR_NOTCL] Failed to load recent item list." -msgstr "" +msgstr "[ERROR_NOTCL] Не удалось загрузить список недавних файлов." -#: FlatCAMApp.py:8122 +#: FlatCAMApp.py:8121 msgid "[ERROR_NOTCL] Failed to parse recent item list." -msgstr "" +msgstr "[ERROR_NOTCL] Не удалось прочитать список недавних файлов." -#: FlatCAMApp.py:8166 +#: FlatCAMApp.py:8165 msgid "Clear Recent files" msgstr "Очистить список" -#: FlatCAMApp.py:8183 flatcamGUI/FlatCAMGUI.py:968 +#: FlatCAMApp.py:8182 flatcamGUI/FlatCAMGUI.py:968 msgid "Shortcut Key List" msgstr "Список сочетаний клавиш" -#: FlatCAMApp.py:8190 +#: FlatCAMApp.py:8189 msgid "" "\n" "

Selected Tab - Choose an Item from " @@ -1077,24 +1108,71 @@ msgid "" "\n" " " msgstr "" +"\n" +"

Вкладка \"Выбранное\" - выбранный " +"элемент на вкладке \"Проект\"

\n" +"\n" +"

Детали:
\n" +"Нормальный порядок при работе в FlatCAM заключается в следующем:

\n" +"\n" +"
    \n" +"\t
  1. Загрузите/импортируйте файл Gerber, " +"Excellon, Gcode, DXF, растровое изображение или SVG в FlatCAM, используя " +"меню, панели инструментов, сочетания клавиш или просто перетаскивая файлы в " +"окно программы.
    \n" +"\t
    \n" +"\tВы также можете загрузить FlatCAM проект дважды щелкнув " +"файл проекта, перетащив его в окно программы или через ссылки меню/панелей " +"инструментов, предлагаемых в приложении.

    \n" +"\t 
  2. \n" +"\t
  3. После того, как объект стал доступен на " +"вкладке \"Проект\", выберите его, а затем сосредоточьте внимание на " +"вкладке \"Выбранное\" (еще проще-дважды щелкнуть мышью на " +"имени объекта на вкладке \"Проект\" ), во вкладке \"Выбранное\" будут обновлены свойства объекта в соответствии с его видом: Gerber, " +"Excellon, Geometry или объект CNCJob.
    \n" +"\t
    \n" +"\tЕсли выбор объекта выполняется на холсте одним щелчком мыши, а " +"вкладка \"Выбранное\"находится в фокусе, свойства объекта " +"снова будут отображаться на вкладке \"Выбранное\". Кроме того, двойной " +"щелчок по объекту на холсте откроет вкладку \"Выбранное\" и " +"заполнит ее, даже если она была не в фокусе.
    \n" +"\t
    \n" +"\tВы можете изменить параметры на этом экране, и порядок будет таким:
    \n" +"\t
    \n" +"\tGerber/Excellon Object -> Change Param -> Generate " +"Geometry -> Geometry Object -> Add tools (change " +"param in Selected Tab) -> Generate CNCJob -> CNCJob Object -> Verify GCode (through Edit CNC Code) and/or append/prepend to " +"GCode (again, done in SELECTED TAB) -> Save GCode
  4. \n" +"
\n" +"\n" +"

Список сочетаний клавиш доступен через " +"пункт меню Помощь -> Список быстрых клавиш или " +"через клавишу: F3.

\n" +"\n" +" " -#: FlatCAMApp.py:8294 +#: FlatCAMApp.py:8293 msgid "[WARNING_NOTCL] Failed checking for latest version. Could not connect." msgstr "" +"[WARNING_NOTCL] Не удалось проверить обновление программы. Отсутствует " +"интернет подключение ." -#: FlatCAMApp.py:8301 +#: FlatCAMApp.py:8300 msgid "[ERROR_NOTCL] Could not parse information about latest version." -msgstr "" +msgstr "[ERROR_NOTCL] Не удается обработать информацию о последней версии." -#: FlatCAMApp.py:8311 +#: FlatCAMApp.py:8310 msgid "[success] FlatCAM is up to date!" msgstr "[success] FlatCAM в актуальном состоянии!" -#: FlatCAMApp.py:8316 +#: FlatCAMApp.py:8315 msgid "Newer Version Available" msgstr "Доступна новая версия" -#: FlatCAMApp.py:8317 +#: FlatCAMApp.py:8316 msgid "" "There is a newer version of FlatCAM available for download:\n" "\n" @@ -1102,79 +1180,85 @@ msgstr "" "Новая версия FlatCAM доступна для загрузки:\n" "\n" -#: FlatCAMApp.py:8319 +#: FlatCAMApp.py:8318 msgid "info" msgstr "инфо" -#: FlatCAMApp.py:8338 +#: FlatCAMApp.py:8337 msgid "[success] All plots disabled." -msgstr "" +msgstr "[success] Все участки отключены." -#: FlatCAMApp.py:8344 +#: FlatCAMApp.py:8343 msgid "[success] All non selected plots disabled." -msgstr "" +msgstr "[success] Все невыбранные участки отключены.." -#: FlatCAMApp.py:8350 +#: FlatCAMApp.py:8349 msgid "[success] All plots enabled." -msgstr "" +msgstr "[success] Все участки включены." -#: FlatCAMApp.py:8356 +#: FlatCAMApp.py:8355 msgid "[success] Selected plots enabled..." -msgstr "" +msgstr "[success] Выбранные участки включены..." -#: FlatCAMApp.py:8364 +#: FlatCAMApp.py:8363 msgid "[success] Selected plots disabled..." -msgstr "" +msgstr "[success] Выбранные участки отключены..." -#: FlatCAMApp.py:8374 FlatCAMApp.py:8387 +#: FlatCAMApp.py:8373 FlatCAMApp.py:8386 msgid "Working ..." msgstr "Обработка…" -#: FlatCAMApp.py:8421 +#: FlatCAMApp.py:8420 msgid "Saving FlatCAM Project" msgstr "Сохранение проекта FlatCAM" -#: FlatCAMApp.py:8442 FlatCAMApp.py:8473 +#: FlatCAMApp.py:8441 FlatCAMApp.py:8472 #, python-format msgid "[success] Project saved to: %s" -msgstr "" +msgstr "[success] Проект сохранён в: %s" -#: FlatCAMApp.py:8460 +#: FlatCAMApp.py:8459 #, python-format msgid "[ERROR_NOTCL] Failed to verify project file: %s. Retry to save it." msgstr "" +"[ERROR_NOTCL] Не удалось проверить файл проекта: %s. Повторите попытку " +"сохранения." -#: FlatCAMApp.py:8467 +#: FlatCAMApp.py:8466 #, python-format msgid "[ERROR_NOTCL] Failed to parse saved project file: %s. Retry to save it." msgstr "" +"[ERROR_NOTCL] Не удалось проанализировать сохраняемый файл проекта: %s. " +"Повторите попытку сохранения." -#: FlatCAMApp.py:8475 +#: FlatCAMApp.py:8474 #, python-format msgid "[ERROR_NOTCL] Failed to save project file: %s. Retry to save it." msgstr "" +"[ERROR_NOTCL] Не удалось сохранить файл проекта: %s. Повторите попытку " +"сохранения." #: FlatCAMObj.py:202 #, python-brace-format msgid "[success] Name changed from {old} to {new}" -msgstr "" +msgstr "[success] Имя изменено с {old} на {new}" -#: FlatCAMObj.py:546 FlatCAMObj.py:2031 FlatCAMObj.py:3311 FlatCAMObj.py:5484 +#: FlatCAMObj.py:545 FlatCAMObj.py:2031 FlatCAMObj.py:3275 FlatCAMObj.py:5448 msgid "Basic" msgstr "Базовый" -#: FlatCAMObj.py:558 FlatCAMObj.py:2047 FlatCAMObj.py:3333 FlatCAMObj.py:5490 +#: FlatCAMObj.py:557 FlatCAMObj.py:2047 FlatCAMObj.py:3297 FlatCAMObj.py:5454 msgid "Advanced" msgstr "Расширенный" -#: FlatCAMObj.py:921 FlatCAMObj.py:976 +#: FlatCAMObj.py:920 FlatCAMObj.py:975 #, python-format msgid "[success] Isolation geometry created: %s" -msgstr "" +msgstr "[success] Создана геометрия изоляции: %s" -#: FlatCAMObj.py:1155 +#: FlatCAMObj.py:1154 msgid "Plotting Apertures" -msgstr "" +msgstr "Создание отверстия" #: FlatCAMObj.py:1870 flatcamEditors/FlatCAMExcEditor.py:1368 msgid "Total Drills" @@ -1182,11 +1266,11 @@ msgstr "Всего отверстий" #: FlatCAMObj.py:1896 flatcamEditors/FlatCAMExcEditor.py:1400 msgid "Total Slots" -msgstr "Всего ячеек" +msgstr "Всего пазов" -#: FlatCAMObj.py:2103 FlatCAMObj.py:3384 FlatCAMObj.py:3682 FlatCAMObj.py:3869 -#: FlatCAMObj.py:3882 FlatCAMObj.py:3999 FlatCAMObj.py:4416 FlatCAMObj.py:4654 -#: FlatCAMObj.py:5067 flatcamEditors/FlatCAMExcEditor.py:1474 +#: FlatCAMObj.py:2103 FlatCAMObj.py:3348 FlatCAMObj.py:3646 FlatCAMObj.py:3833 +#: FlatCAMObj.py:3846 FlatCAMObj.py:3963 FlatCAMObj.py:4380 FlatCAMObj.py:4618 +#: FlatCAMObj.py:5031 flatcamEditors/FlatCAMExcEditor.py:1474 #: flatcamTools/ToolCalculators.py:307 flatcamTools/ToolCalculators.py:318 #: flatcamTools/ToolCalculators.py:330 flatcamTools/ToolCalculators.py:345 #: flatcamTools/ToolCalculators.py:358 flatcamTools/ToolCalculators.py:372 @@ -1203,17 +1287,19 @@ msgstr "Всего ячеек" #: flatcamTools/ToolPanelize.py:435 flatcamTools/ToolPanelize.py:446 #: flatcamTools/ToolSolderPaste.py:756 flatcamTools/ToolSolderPaste.py:827 msgid "[ERROR_NOTCL] Wrong value format entered, use a number." -msgstr "" +msgstr "[ERROR_NOTCL] Неправильно введен формат значения, используйте числа." #: FlatCAMObj.py:2327 FlatCAMObj.py:2418 FlatCAMObj.py:2540 msgid "" "[ERROR_NOTCL] Please select one or more tools from the list and try again." msgstr "" +"[ERROR_NOTCL] Пожалуйста, выберите один или несколько инструментов из списка " +"и попробуйте еще раз." #: FlatCAMObj.py:2334 msgid "" "[ERROR_NOTCL] Milling tool for DRILLS is larger than hole size. Cancelled." -msgstr "" +msgstr "[ERROR_NOTCL] Сверло больше, чем размер отверстия. Отмена." #: FlatCAMObj.py:2348 FlatCAMObj.py:2442 FlatCAMObj.py:2560 msgid "Tool_nr" @@ -1229,191 +1315,221 @@ msgstr "Диаметр" #: FlatCAMObj.py:2348 FlatCAMObj.py:2442 FlatCAMObj.py:2560 msgid "Drills_Nr" -msgstr "№ сверла" +msgstr "№ отверстия" #: FlatCAMObj.py:2348 FlatCAMObj.py:2442 FlatCAMObj.py:2560 msgid "Slots_Nr" -msgstr "№ ячейки" +msgstr "№ паза" #: FlatCAMObj.py:2428 msgid "" "[ERROR_NOTCL] Milling tool for SLOTS is larger than hole size. Cancelled." msgstr "" +"[ERROR_NOTCL] Инструмент для прорезания пазов больше, чем размер отверстия. " +"Отмена." -#: FlatCAMObj.py:2602 FlatCAMObj.py:4304 FlatCAMObj.py:4520 FlatCAMObj.py:4837 +#: FlatCAMObj.py:2602 FlatCAMObj.py:4268 FlatCAMObj.py:4484 FlatCAMObj.py:4801 msgid "" "[ERROR_NOTCL] Wrong value format for self.defaults[\"z_pdepth\"] or self." "options[\"z_pdepth\"]" msgstr "" +"[ERROR_NOTCL] Неправильный формат значения для self.defaults[\"z_pdepth\"] " +"или self.options[\"z_pdepth\"]" -#: FlatCAMObj.py:2614 FlatCAMObj.py:4316 FlatCAMObj.py:4532 FlatCAMObj.py:4849 +#: FlatCAMObj.py:2614 FlatCAMObj.py:4280 FlatCAMObj.py:4496 FlatCAMObj.py:4813 msgid "" "[ERROR_NOTCL] Wrong value format for self.defaults[\"feedrate_probe\"] or " "self.options[\"feedrate_probe\"]" msgstr "" +"[ERROR_NOTCL] Неправильный формат значения для self.defaults[\"feedrate_probe" +"\"] или self.options[\"feedrate_probe\"]" -#: FlatCAMObj.py:2646 FlatCAMObj.py:4725 FlatCAMObj.py:4730 FlatCAMObj.py:4880 +#: FlatCAMObj.py:2646 FlatCAMObj.py:4689 FlatCAMObj.py:4694 FlatCAMObj.py:4844 msgid "Generating CNC Code" msgstr "Генерация кода ЧПУ" -#: FlatCAMObj.py:2672 FlatCAMObj.py:5026 camlib.py:5151 camlib.py:5610 -#: camlib.py:5873 +#: FlatCAMObj.py:2672 FlatCAMObj.py:4990 camlib.py:5164 camlib.py:5623 +#: camlib.py:5886 msgid "" "[ERROR]The Toolchange X,Y field in Edit -> Preferences has to be in the " "format (x, y) \n" "but now there is only one value, not two. " msgstr "" +"[ERROR] Поле X, Y смены инструмента в Правка - > Параметры должно быть в " +"формате (x, y)\n" +"но теперь есть только одно значение, а не два. " -#: FlatCAMObj.py:3020 FlatCAMObj.py:3925 FlatCAMObj.py:3926 FlatCAMObj.py:3935 +#: FlatCAMObj.py:2984 FlatCAMObj.py:3889 FlatCAMObj.py:3890 FlatCAMObj.py:3899 msgid "Iso" msgstr "Iso" -#: FlatCAMObj.py:3020 FlatCAMObj.py:3269 FlatCAMObj.py:3549 +#: FlatCAMObj.py:2984 FlatCAMObj.py:3233 FlatCAMObj.py:3513 msgid "Rough" msgstr "Грубый" -#: FlatCAMObj.py:3020 +#: FlatCAMObj.py:2984 msgid "Finish" msgstr "Конец" -#: FlatCAMObj.py:3304 flatcamGUI/FlatCAMGUI.py:526 flatcamGUI/FlatCAMGUI.py:722 +#: FlatCAMObj.py:3268 flatcamGUI/FlatCAMGUI.py:526 flatcamGUI/FlatCAMGUI.py:722 #: flatcamGUI/FlatCAMGUI.py:1615 flatcamGUI/FlatCAMGUI.py:1951 #: flatcamGUI/ObjectUI.py:999 msgid "Copy" msgstr "Копировать" -#: FlatCAMObj.py:3519 +#: FlatCAMObj.py:3483 msgid "[ERROR_NOTCL] Please enter the desired tool diameter in Float format." msgstr "" +"[ERROR_NOTCL] Пожалуйста, введите нужный диаметр инструмента в формате числа " +"с плавающей точкой." -#: FlatCAMObj.py:3592 +#: FlatCAMObj.py:3556 msgid "[success] Tool added in Tool Table." -msgstr "" +msgstr "[success] Инструмент добавлен в таблицу инструментов." -#: FlatCAMObj.py:3597 +#: FlatCAMObj.py:3561 msgid "[ERROR_NOTCL] Default Tool added. Wrong value format entered." msgstr "" +"[ERROR_NOTCL] Добавлен инструмент по умолчанию. Введен неправильный формат " +"значения." -#: FlatCAMObj.py:3627 FlatCAMObj.py:3637 +#: FlatCAMObj.py:3591 FlatCAMObj.py:3601 msgid "[WARNING_NOTCL] Failed. Select a tool to copy." -msgstr "" +msgstr "[WARNING_NOTCL] Ошибка. Выберите инструмент для копирования." -#: FlatCAMObj.py:3666 +#: FlatCAMObj.py:3630 msgid "[success] Tool was copied in Tool Table." -msgstr "" +msgstr "[success] Инструмент скопирован в таблицу инструментов." -#: FlatCAMObj.py:3699 +#: FlatCAMObj.py:3663 msgid "[success] Tool was edited in Tool Table." -msgstr "" +msgstr "[success] Инструмент был изменён в таблице инструментов." -#: FlatCAMObj.py:3730 FlatCAMObj.py:3740 +#: FlatCAMObj.py:3694 FlatCAMObj.py:3704 msgid "[WARNING_NOTCL] Failed. Select a tool to delete." -msgstr "" +msgstr "[WARNING_NOTCL] Ошибка. Выберите инструмент для удаления." -#: FlatCAMObj.py:3764 +#: FlatCAMObj.py:3728 msgid "[success] Tool was deleted in Tool Table." -msgstr "" +msgstr "[success] Инструмент был удален из таблицы инструментов." -#: FlatCAMObj.py:4185 +#: FlatCAMObj.py:4149 #, python-format msgid "" "[WARNING_NOTCL] This Geometry can't be processed because it is %s geometry." msgstr "" +"[WARNING_NOTCL] Эта Geometry не может быть обработана, так как это %s " +"геометрия." -#: FlatCAMObj.py:4202 +#: FlatCAMObj.py:4166 msgid "[ERROR_NOTCL] Wrong Tool Dia value format entered, use a number." msgstr "" +"[ERROR_NOTCL] Неверный формат ввода диаметра инструмента, используйте цифры." -#: FlatCAMObj.py:4229 +#: FlatCAMObj.py:4193 msgid "[ERROR_NOTCL] Failed. No tool selected in the tool table ..." -msgstr "" +msgstr "[ERROR_NOTCL] Ошибка. Инструмент не выбран в таблице инструментов ..." -#: FlatCAMObj.py:4267 +#: FlatCAMObj.py:4231 #, python-format msgid "FlatCAMObj.FlatCAMGeometry.mtool_gen_cncjob() --> %s" -msgstr "" +msgstr "FlatCAMObj.FlatCAMGeometry.mtool_gen_cncjob() --> %s" -#: FlatCAMObj.py:4425 FlatCAMObj.py:4663 +#: FlatCAMObj.py:4389 FlatCAMObj.py:4627 msgid "" "[WARNING] Tool Offset is selected in Tool Table but no value is provided.\n" "Add a Tool Offset or change the Offset Type." msgstr "" +"[WARNING] Смещение выбранного в таблице инструментов инструмента не " +"указано.\n" +"Добавьте смещение инструмента или измените тип смещения." -#: FlatCAMObj.py:4544 flatcamTools/ToolSolderPaste.py:1107 +#: FlatCAMObj.py:4508 flatcamTools/ToolSolderPaste.py:1107 #: flatcamTools/ToolSolderPaste.py:1162 msgid "[ERROR_NOTCL] Cancelled. Empty file, it has no geometry..." -msgstr "" +msgstr "[ERROR_NOTCL] Отмена. Пустой файл, он не имеет геометрии..." -#: FlatCAMObj.py:4913 FlatCAMObj.py:4923 camlib.py:3335 camlib.py:3344 +#: FlatCAMObj.py:4877 FlatCAMObj.py:4887 camlib.py:3347 camlib.py:3356 msgid "[ERROR_NOTCL] Scale factor has to be a number: integer or float." msgstr "" +"[ERROR_NOTCL] Коэффициент масштабирования должен быть числом: целочисленным " +"или с плавающей запятой." -#: FlatCAMObj.py:4961 +#: FlatCAMObj.py:4925 msgid "[success] Geometry Scale done." -msgstr "" +msgstr "[success] Масштабирование Geometry выполнено." -#: FlatCAMObj.py:4978 camlib.py:3414 +#: FlatCAMObj.py:4942 camlib.py:3425 msgid "" "[ERROR_NOTCL] An (x,y) pair of values are needed. Probable you entered only " "one value in the Offset field." msgstr "" +"[ERROR_NOTCL] Необходима пара значений (x,y). Возможно, вы ввели только одно " +"значение в поле \"Смещение\"." -#: FlatCAMObj.py:4998 +#: FlatCAMObj.py:4962 msgid "[success] Geometry Offset done." -msgstr "" +msgstr "[success] Смещение Geometry выполнено." -#: FlatCAMObj.py:5552 FlatCAMObj.py:5557 flatcamTools/ToolSolderPaste.py:1361 +#: FlatCAMObj.py:5516 FlatCAMObj.py:5521 flatcamTools/ToolSolderPaste.py:1361 msgid "Export Machine Code ..." msgstr "Экспорт GCode ..." -#: FlatCAMObj.py:5563 flatcamTools/ToolSolderPaste.py:1364 +#: FlatCAMObj.py:5527 flatcamTools/ToolSolderPaste.py:1364 msgid "[WARNING_NOTCL] Export Machine Code cancelled ..." -msgstr "" +msgstr "[WARNING_NOTCL] Экспорт GCode отменен ..." -#: FlatCAMObj.py:5576 +#: FlatCAMObj.py:5540 #, python-format msgid "[success] Machine Code file saved to: %s" -msgstr "" +msgstr "[success] Файл GCode сохранён в: %s" -#: FlatCAMObj.py:5598 +#: FlatCAMObj.py:5562 #, python-format msgid "[ERROR]FlatCAMCNNJob.on_edit_code_click() -->%s" -msgstr "" +msgstr "[ERROR]FlatCAMCNNJob.on_edit_code_click() -->%s" -#: FlatCAMObj.py:5715 +#: FlatCAMObj.py:5679 #, python-format msgid "" "[WARNING_NOTCL] This CNCJob object can't be processed because it is a %s " "CNCJob object." msgstr "" +"[WARNING_NOTCL] CNCJob объект %s не может быть обработан, так как он " +"является объектом CNCJob." -#: FlatCAMObj.py:5768 +#: FlatCAMObj.py:5732 msgid "[ERROR_NOTCL] G-code does not have a units code: either G20 or G21" -msgstr "" +msgstr "[ERROR_NOTCL] G-code не имеет кода единиц измерения: G20 или G21" -#: FlatCAMObj.py:5781 +#: FlatCAMObj.py:5745 msgid "" "[ERROR_NOTCL] Cancelled. The Toolchange Custom code is enabled but it's " "empty." msgstr "" +"[ERROR_NOTCL] Отмена. Пользовательский код смены инструмента включен, но он " +"пуст." -#: FlatCAMObj.py:5788 +#: FlatCAMObj.py:5752 msgid "[success] Toolchange G-code was replaced by a custom code." msgstr "" +"[success] G-code смены инструмента был заменен на пользовательский код." -#: FlatCAMObj.py:5803 flatcamTools/ToolSolderPaste.py:1390 +#: FlatCAMObj.py:5767 flatcamTools/ToolSolderPaste.py:1390 msgid "[WARNING_NOTCL] No such file or directory" -msgstr "" +msgstr "[WARNING_NOTCL] Нет такого файла или каталога" -#: FlatCAMObj.py:5823 FlatCAMObj.py:5835 +#: FlatCAMObj.py:5787 FlatCAMObj.py:5799 msgid "" "[WARNING_NOTCL] The used postprocessor file has to have in it's name: " "'toolchange_custom'" msgstr "" +"[WARNING_NOTCL] Используемый файл постпроцессора должен иметь имя: " +"'toolchange_custom'" -#: FlatCAMObj.py:5841 +#: FlatCAMObj.py:5805 msgid "[ERROR] There is no postprocessor file." -msgstr "" +msgstr "[ERROR] Это не файл постпроцессора." #: ObjectCollection.py:420 #, python-brace-format @@ -1423,85 +1539,90 @@ msgstr "Объект переименован из {old} в {new}" #: ObjectCollection.py:759 #, python-format msgid "[ERROR] Cause of error: %s" -msgstr "" +msgstr "[ERROR] Причина ошибки: %s" -#: camlib.py:198 +#: camlib.py:197 msgid "[ERROR_NOTCL] self.solid_geometry is neither BaseGeometry or list." msgstr "" +"[ERROR_NOTCL] self.solid_geometry не является базовой геометрией или списком." -#: camlib.py:1381 +#: camlib.py:1391 msgid "[success] Object was mirrored ..." -msgstr "" +msgstr "[success] Объект был отзеркалирован ..." -#: camlib.py:1383 +#: camlib.py:1393 msgid "[ERROR_NOTCL] Failed to mirror. No object selected" -msgstr "" +msgstr "[ERROR_NOTCL] Не удалось зеркалировать. Объект не выбран" -#: camlib.py:1419 +#: camlib.py:1429 msgid "[success] Object was rotated ..." -msgstr "" +msgstr "[success] Объект был повернут ..." -#: camlib.py:1421 +#: camlib.py:1431 msgid "[ERROR_NOTCL] Failed to rotate. No object selected" -msgstr "" +msgstr "[ERROR_NOTCL] Не удалось повернуть. Объект не выбран" -#: camlib.py:1455 +#: camlib.py:1465 msgid "[success] Object was skewed ..." -msgstr "" +msgstr "[success] Объект был наклонён ..." -#: camlib.py:1457 +#: camlib.py:1467 msgid "[ERROR_NOTCL] Failed to skew. No object selected" -msgstr "" +msgstr "[ERROR_NOTCL] Не удалось наклонить. Объект не выбран" -#: camlib.py:2717 camlib.py:2802 +#: camlib.py:2727 camlib.py:2812 #, python-format msgid "[WARNING] Coordinates missing, line ignored: %s" -msgstr "" +msgstr "[WARNING] Координаты отсутствуют, строка игнорируется: %s" -#: camlib.py:2718 camlib.py:2803 +#: camlib.py:2728 camlib.py:2813 msgid "[WARNING_NOTCL] GERBER file might be CORRUPT. Check the file !!!" -msgstr "" +msgstr "[WARNING_NOTCL] Файл GERBER может быть поврежден. Проверьте файл !!!" -#: camlib.py:2767 +#: camlib.py:2777 #, python-format msgid "" "[ERROR] Region does not have enough points. File will be processed but there " "are parser errors. Line number: %s" msgstr "" +"[ERROR] Региону не хватает точек. Файл будет обработан, но есть ошибки " +"разбора. Номер строки: %s" -#: camlib.py:3159 +#: camlib.py:3169 #, python-format msgid "" "[ERROR]Gerber Parser ERROR.\n" "%s:" msgstr "" +"[ERROR]Ошибка разбора Gerber.\n" +"%s:" -#: camlib.py:3381 +#: camlib.py:3393 msgid "[success] Gerber Scale done." -msgstr "" +msgstr "[success] Масштабирование Gerber выполнено." -#: camlib.py:3447 +#: camlib.py:3458 msgid "[success] Gerber Offset done." -msgstr "" +msgstr "[success] Смещение Gerber выполнено." -#: camlib.py:3501 +#: camlib.py:3512 msgid "[success] Gerber Mirror done." -msgstr "" +msgstr "[success] Зеркалирование Gerber выполнено." -#: camlib.py:3547 +#: camlib.py:3558 msgid "[success] Gerber Skew done." -msgstr "" +msgstr "[success] Наклон Gerber выполнен." -#: camlib.py:3585 +#: camlib.py:3596 msgid "[success] Gerber Rotate done." -msgstr "" +msgstr "[success] Вращение Gerber выполнено." -#: camlib.py:3864 +#: camlib.py:3875 #, python-format msgid "[ERROR_NOTCL] This is GCODE mark: %s" -msgstr "" +msgstr "[ERROR_NOTCL] Это метка GCODE: %s" -#: camlib.py:3979 +#: camlib.py:3990 #, python-format msgid "" "[WARNING] No tool diameter info's. See shell.\n" @@ -1511,27 +1632,38 @@ msgid "" "The user needs to edit the resulting Excellon object and change the " "diameters to reflect the real diameters." msgstr "" +"[WARNING] Нет информации о диаметре инструмента. Смотрите коммандную строку\n" +"Событие изменения инструмента: T%s было найдено, но в файле Excellon нет " +"информации о диаметрах инструмента, поэтому приложение попытается загрузить " +"его с помощью некоторых \"поддельных\" диаметров.\n" +"Пользователю необходимо отредактировать полученный объект Excellon и " +"изменить диаметры, чтобы отразить реальные диаметры." -#: camlib.py:4444 +#: camlib.py:4455 #, python-brace-format msgid "" "[ERROR] Excellon Parser error.\n" "Parsing Failed. Line {l_nr}: {line}\n" msgstr "" +"[ERROR] Ошибка разбора Excellon.\n" +"Ошибка разбора. Строка {l_nr}: {line}\n" -#: camlib.py:4521 +#: camlib.py:4534 msgid "" "[WARNING] Excellon.create_geometry() -> a drill location was skipped due of " "not having a tool associated.\n" "Check the resulting GCode." msgstr "" +"[WARNING] Excellon.create_geometry() ->расположение отверстия было пропущено " +"из-за отсутствия связанного инструмента.\n" +"Проверьте полученный GCode." -#: camlib.py:5060 +#: camlib.py:5073 #, python-format msgid "[ERROR] There is no such parameter: %s" -msgstr "" +msgstr "[ERROR] Такого параметра нет: %s" -#: camlib.py:5130 +#: camlib.py:5143 msgid "" "[WARNING] The Cut Z parameter has positive value. It is the depth value to " "drill into material.\n" @@ -1539,28 +1671,37 @@ msgid "" "therefore the app will convert the value to negative. Check the resulting " "CNC code (Gcode etc)." msgstr "" +"[WARNING] Параметр \"Глубина резания\" имеет положительное значение. " +"Значение глубины, которую нужно просверлить в материале.\n" +"Параметр \"Глубина резания\" должен иметь отрицательное значение, " +"предполагая, что это опечатка, приложение преобразует значение в " +"отрицательное. Проверьте полученный CNC code (Gcode и т. д.)." -#: camlib.py:5137 camlib.py:5633 camlib.py:5896 +#: camlib.py:5150 camlib.py:5646 camlib.py:5909 #, python-format msgid "" "[WARNING] The Cut Z parameter is zero. There will be no cut, skipping %s file" msgstr "" +"[WARNING] Параметр \"Глубина резания\" равен нулю. Обрезки не будет , " +"пропускается файл %s " -#: camlib.py:5366 camlib.py:5463 camlib.py:5521 +#: camlib.py:5379 camlib.py:5476 camlib.py:5534 msgid "[ERROR_NOTCL] The loaded Excellon file has no drills ..." -msgstr "" +msgstr "[ERROR_NOTCL] загруженный файл Excellon не имеет отверстий ..." -#: camlib.py:5468 +#: camlib.py:5481 msgid "[ERROR_NOTCL] Wrong optimization type selected." -msgstr "" +msgstr "[ERROR_NOTCL] Выбран неправильный тип оптимизации." -#: camlib.py:5621 camlib.py:5884 +#: camlib.py:5634 camlib.py:5897 msgid "" "[ERROR_NOTCL] Cut_Z parameter is None or zero. Most likely a bad " "combinations of other parameters." msgstr "" +"[ERROR_NOTCL] Параметр \"Глубина резания\" равен None или пуст. Скорее всего " +"неудачное сочетание других параметров." -#: camlib.py:5626 camlib.py:5889 +#: camlib.py:5639 camlib.py:5902 msgid "" "[WARNING] The Cut Z parameter has positive value. It is the depth value to " "cut into material.\n" @@ -1568,12 +1709,17 @@ msgid "" "therefore the app will convert the value to negative.Check the resulting CNC " "code (Gcode etc)." msgstr "" +"[WARNING] Параметр \"Глубина резания\" имеет положительное значение. " +"Значение глубины, которую нужно просверлить в материале.\n" +"Параметр \"Глубина резания\" должен иметь отрицательное значение, " +"предполагая, что это опечатка, приложение преобразует значение в " +"отрицательное. Проверьте полученный CNC code (Gcode и т. д.)." -#: camlib.py:5638 camlib.py:5901 +#: camlib.py:5651 camlib.py:5914 msgid "[ERROR_NOTCL] Travel Z parameter is None or zero." -msgstr "" +msgstr "[ERROR_NOTCL] Параметр \"Отвод по Z\" равен None или пуст." -#: camlib.py:5642 camlib.py:5905 +#: camlib.py:5655 camlib.py:5918 msgid "" "[WARNING] The Travel Z parameter has negative value. It is the height value " "to travel between cuts.\n" @@ -1581,34 +1727,45 @@ msgid "" "therefore the app will convert the value to positive.Check the resulting CNC " "code (Gcode etc)." msgstr "" +"[WARNING] Параметр \"Отвод по Z\" имеет отрицательное значение. Это значение " +"высоты для перемещения между разрезами.\n" +"Параметр \"Отвод по Z\" должен иметь положительное значение. Предполагая, " +"что это опечатка, приложение преобразует значение в положительное. Проверьте " +"полученный CNC code (Gcode и т. д.)." -#: camlib.py:5649 camlib.py:5912 +#: camlib.py:5662 camlib.py:5925 #, python-format msgid "" "[WARNING] The Z Travel parameter is zero. This is dangerous, skipping %s file" msgstr "" +"[WARNING] Параметр \"Отвод по Z\" равен нулю. Это опасно, пропускается файл " +"%s" -#: camlib.py:5779 +#: camlib.py:5792 #, python-format msgid "[ERROR]Expected a Geometry, got %s" -msgstr "" +msgstr "[ERROR]Ожидалась Geometry, получили %s" -#: camlib.py:5785 +#: camlib.py:5798 msgid "" "[ERROR_NOTCL] Trying to generate a CNC Job from a Geometry object without " "solid_geometry." msgstr "" +"[ERROR_NOTCL] Попытка создать CNC Job из объекта Geometry без solid_geometry." -#: camlib.py:5824 +#: camlib.py:5837 msgid "" "[ERROR_NOTCL] The Tool Offset value is too negative to use for the " "current_geometry.\n" "Raise the value (in module) and try again." msgstr "" +"[ERROR_NOTCL] Значение смещения инструмента слишком отрицательно для " +"current_geometry.\n" +"Увеличте значение (в модуле) и повторите попытку." -#: camlib.py:6036 +#: camlib.py:6049 msgid "[ERROR_NOTCL] There is no tool data in the SolderPaste geometry." -msgstr "" +msgstr "[ERROR_NOTCL] В геометрии SolderPaste нет данных инструмента." #: flatcamEditors/FlatCAMExcEditor.py:37 flatcamEditors/FlatCAMExcEditor.py:143 #: flatcamEditors/FlatCAMGrbEditor.py:229 @@ -1618,7 +1775,7 @@ msgstr "Нажмите для размещения ..." #: flatcamEditors/FlatCAMExcEditor.py:46 msgid "[WARNING_NOTCL] To add a drill first select a tool" -msgstr "" +msgstr "[WARNING_NOTCL] Чтобы добавить отверстие, сначала выберите инструмент" #: flatcamEditors/FlatCAMExcEditor.py:62 flatcamEditors/FlatCAMExcEditor.py:165 #: flatcamEditors/FlatCAMExcEditor.py:450 @@ -1636,10 +1793,12 @@ msgstr "[success] Готово. Сверло добавлено." #: flatcamEditors/FlatCAMExcEditor.py:150 msgid "[WARNING_NOTCL] To add an Drill Array first select a tool in Tool Table" msgstr "" +"[WARNING_NOTCL] Чтобы добавить массив отверстий, сначала выберите инструмент " +"в таблице инструментов" #: flatcamEditors/FlatCAMExcEditor.py:182 msgid "Click on the Drill Circular Array Start position" -msgstr "" +msgstr "Нажмите на начальную позицию кругового массива отверстий" #: flatcamEditors/FlatCAMExcEditor.py:204 #: flatcamEditors/FlatCAMGrbEditor.py:494 @@ -1647,19 +1806,22 @@ msgid "" "[ERROR_NOTCL] The value is not Float. Check for comma instead of dot " "separator." msgstr "" +"[ERROR_NOTCL] Это не значение с плавающей точкой. Проверьте наличие запятой " +"в качестве разделителя." #: flatcamEditors/FlatCAMExcEditor.py:207 #, python-format msgid "[ERROR_NOTCL] The value is mistyped. Check the value. %s" -msgstr "" +msgstr "[ERROR_NOTCL] Значение введено с ошибкой. Проверьте значение. %s" #: flatcamEditors/FlatCAMExcEditor.py:305 msgid "[WARNING_NOTCL] Too many drills for the selected spacing angle." msgstr "" +"[WARNING_NOTCL] Слишком много отверстий для выбранного интервала угла ." #: flatcamEditors/FlatCAMExcEditor.py:322 msgid "[success] Done. Drill Array added." -msgstr "" +msgstr "[success] Готово. Массив отверстий добавлен." #: flatcamEditors/FlatCAMExcEditor.py:333 msgid "Click on the Drill(s) to resize ..." @@ -1669,14 +1831,16 @@ msgstr "Нажмите на сверло для изменения размер msgid "" "[ERROR_NOTCL] Resize drill(s) failed. Please enter a diameter for resize." msgstr "" +"[ERROR_NOTCL] Не удалось изменить размер отверстий. Пожалуйста введите " +"диаметр для изменения размера." #: flatcamEditors/FlatCAMExcEditor.py:424 msgid "[success] Done. Drill Resize completed." -msgstr "" +msgstr "[success] Готово. Изменение размера отверстий выполнено." #: flatcamEditors/FlatCAMExcEditor.py:427 msgid "[WARNING_NOTCL] Cancelled. No drills selected for resize ..." -msgstr "" +msgstr "[WARNING_NOTCL] Отмена. Не выбраны отверстия для изменения размера..." #: flatcamEditors/FlatCAMExcEditor.py:452 #: flatcamEditors/FlatCAMGrbEditor.py:1778 @@ -1685,11 +1849,11 @@ msgstr "Кликните на конечную точку ..." #: flatcamEditors/FlatCAMExcEditor.py:507 msgid "[success] Done. Drill(s) Move completed." -msgstr "" +msgstr "[success] Готово. Перемещение отверстий завершено." #: flatcamEditors/FlatCAMExcEditor.py:592 msgid "[success] Done. Drill(s) copied." -msgstr "" +msgstr "[success] Готово. Отверстия скопированы." #: flatcamEditors/FlatCAMExcEditor.py:792 flatcamGUI/FlatCAMGUI.py:5026 msgid "Excellon Editor" @@ -1889,26 +2053,30 @@ msgid "" "[WARNING_NOTCL] Tool already in the original or actual tool list.\n" "Save and reedit Excellon if you need to add this tool. " msgstr "" +"[WARNING_NOTCL] Инструмент уже есть в исходном или фактическом списке " +"инструментов.\n" +"Сохраните и повторно отредактируйте Excellon, если вам нужно добавить этот " +"инструмент." #: flatcamEditors/FlatCAMExcEditor.py:1496 flatcamGUI/FlatCAMGUI.py:2997 #, python-brace-format msgid "[success] Added new tool with dia: {dia} {units}" -msgstr "" +msgstr "[success] Добавлен новый инструмент с диаметром: {dia} {units}" #: flatcamEditors/FlatCAMExcEditor.py:1528 msgid "[WARNING_NOTCL] Select a tool in Tool Table" -msgstr "" +msgstr "[WARNING_NOTCL] Выберите инструмент в таблице инструментов" #: flatcamEditors/FlatCAMExcEditor.py:1560 #, python-brace-format msgid "[success] Deleted tool with dia: {del_dia} {units}" -msgstr "" +msgstr "[success] Удален инструмент с диаметром: {del_dia} {units}" #: flatcamEditors/FlatCAMExcEditor.py:2074 msgid "" "[ERROR_NOTCL] There are no Tools definitions in the file. Aborting Excellon " "creation." -msgstr "" +msgstr "[ERROR_NOTCL] В файле нет инструментов. Прерывание создания Excellon." #: flatcamEditors/FlatCAMExcEditor.py:2083 msgid "Creating Excellon." @@ -1916,15 +2084,15 @@ msgstr "Создание Excellon." #: flatcamEditors/FlatCAMExcEditor.py:2092 msgid "[success] Excellon editing finished." -msgstr "" +msgstr "[success] Редактирование Excellon завершено." #: flatcamEditors/FlatCAMExcEditor.py:2109 msgid "[WARNING_NOTCL] Cancelled. There is no Tool/Drill selected" -msgstr "" +msgstr "[WARNING_NOTCL] Отмена. Инструмент/сверло не выбрано" #: flatcamEditors/FlatCAMExcEditor.py:2637 msgid "[success] Done. Drill(s) deleted." -msgstr "" +msgstr "[success] Готово. Отверстия удалены." #: flatcamEditors/FlatCAMExcEditor.py:2705 #: flatcamEditors/FlatCAMGrbEditor.py:4340 @@ -1934,12 +2102,12 @@ msgstr "Нажмите на центральную позицию кругово #: flatcamEditors/FlatCAMGeoEditor.py:80 #: flatcamEditors/FlatCAMGrbEditor.py:2416 msgid "Buffer distance:" -msgstr "Буферное расстояние:" +msgstr "Расстояние буфера:" #: flatcamEditors/FlatCAMGeoEditor.py:81 #: flatcamEditors/FlatCAMGrbEditor.py:2417 msgid "Buffer corner:" -msgstr "" +msgstr "Угол буфера:" #: flatcamEditors/FlatCAMGeoEditor.py:83 msgid "" @@ -1971,20 +2139,20 @@ msgstr "Скошенный" #: flatcamEditors/FlatCAMGeoEditor.py:98 msgid "Buffer Interior" -msgstr "" +msgstr "Буфер внутри" #: flatcamEditors/FlatCAMGeoEditor.py:100 msgid "Buffer Exterior" -msgstr "" +msgstr "Буфер снаружи" #: flatcamEditors/FlatCAMGeoEditor.py:106 msgid "Full Buffer" -msgstr "" +msgstr "Полный буфер" #: flatcamEditors/FlatCAMGeoEditor.py:127 #: flatcamEditors/FlatCAMGeoEditor.py:2682 msgid "Buffer Tool" -msgstr "" +msgstr "Буфер" #: flatcamEditors/FlatCAMGeoEditor.py:138 #: flatcamEditors/FlatCAMGeoEditor.py:155 @@ -1997,6 +2165,8 @@ msgid "" "[WARNING_NOTCL] Buffer distance value is missing or wrong format. Add it and " "retry." msgstr "" +"[WARNING_NOTCL] Отсутствует значение расстояния буфера или оно имеет " +"неправильный формат. Добавьте его и повторите попытку." #: flatcamEditors/FlatCAMGeoEditor.py:343 msgid "Text Tool" @@ -2126,7 +2296,7 @@ msgstr "Рисование" #: flatcamEditors/FlatCAMGeoEditor.py:563 msgid "[WARNING_NOTCL] Paint cancelled. No shape selected." -msgstr "" +msgstr "[WARNING_NOTCL] Рисование отменено. Фугура не выбрана." #: flatcamEditors/FlatCAMGeoEditor.py:574 flatcamTools/ToolCutOut.py:355 #: flatcamTools/ToolCutOut.py:518 flatcamTools/ToolCutOut.py:657 @@ -2135,17 +2305,23 @@ msgid "" "[WARNING_NOTCL] Tool diameter value is missing or wrong format. Add it and " "retry." msgstr "" +"[WARNING_NOTCL] Отсутствует значение диаметра инструмента или оно имеет " +"неправильный формат. Добавьте его и повторите попытку." #: flatcamEditors/FlatCAMGeoEditor.py:585 msgid "" "[WARNING_NOTCL] Overlap value is missing or wrong format. Add it and retry." msgstr "" +"[WARNING_NOTCL] Значение перекрытия отсутствует или оно имеет неправильный " +"формат. Добавьте его и повторите попытку." #: flatcamEditors/FlatCAMGeoEditor.py:597 msgid "" "[WARNING_NOTCL] Margin distance value is missing or wrong format. Add it and " "retry." msgstr "" +"[WARNING_NOTCL] Значение отступа отсутствует или оно имеет неправильный " +"формат. Добавьте его и повторите попытку." #: flatcamEditors/FlatCAMGeoEditor.py:606 #: flatcamEditors/FlatCAMGeoEditor.py:2707 @@ -2343,6 +2519,10 @@ msgid "" "and the center of the biggest bounding box\n" "of the selected shapes when unchecked." msgstr "" +"Масштаб выбранной фигуры(фигур)\n" +"использует точку начала координат, если флажок включен,\n" +"и центр самой большой ограничительной рамки\n" +"выбранных фигур, если флажок снят." #: flatcamEditors/FlatCAMGeoEditor.py:835 #: flatcamEditors/FlatCAMGrbEditor.py:4751 flatcamTools/ToolTransform.py:238 @@ -2467,47 +2647,62 @@ msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1054 #: flatcamEditors/FlatCAMGrbEditor.py:4980 msgid "[WARNING_NOTCL] Transformation cancelled. No shape selected." -msgstr "" +msgstr "[WARNING_NOTCL] Трансформация отменена. Фигура не выбрана." #: flatcamEditors/FlatCAMGeoEditor.py:1075 #: flatcamEditors/FlatCAMGrbEditor.py:5000 flatcamTools/ToolTransform.py:468 msgid "[ERROR_NOTCL] Wrong value format entered for Rotate, use a number." msgstr "" +"[ERROR_NOTCL] Неверный формат значения, введенный для поворота, используйте " +"числа." #: flatcamEditors/FlatCAMGeoEditor.py:1112 #: flatcamEditors/FlatCAMGrbEditor.py:5043 flatcamTools/ToolTransform.py:502 msgid "[ERROR_NOTCL] Wrong value format entered for Skew X, use a number." msgstr "" +"[ERROR_NOTCL] Неверный формат значения, введенный для наклона по X, " +"используйте числа." #: flatcamEditors/FlatCAMGeoEditor.py:1133 #: flatcamEditors/FlatCAMGrbEditor.py:5070 flatcamTools/ToolTransform.py:520 msgid "[ERROR_NOTCL] Wrong value format entered for Skew Y, use a number." msgstr "" +"[ERROR_NOTCL] Неверный формат значения, введенный для наклона поY, " +"используйте числа." #: flatcamEditors/FlatCAMGeoEditor.py:1154 #: flatcamEditors/FlatCAMGrbEditor.py:5097 flatcamTools/ToolTransform.py:538 msgid "[ERROR_NOTCL] Wrong value format entered for Scale X, use a number." msgstr "" +"[ERROR_NOTCL] Неверный формат значения, введенный для масштабирования по X, " +"используйте числа." #: flatcamEditors/FlatCAMGeoEditor.py:1191 #: flatcamEditors/FlatCAMGrbEditor.py:5138 flatcamTools/ToolTransform.py:572 msgid "[ERROR_NOTCL] Wrong value format entered for Scale Y, use a number." msgstr "" +"[ERROR_NOTCL] Неверный формат значения, введенный для масштабирования по Y, " +"используйте числа." #: flatcamEditors/FlatCAMGeoEditor.py:1223 #: flatcamEditors/FlatCAMGrbEditor.py:5176 flatcamTools/ToolTransform.py:601 msgid "[ERROR_NOTCL] Wrong value format entered for Offset X, use a number." msgstr "" +"[ERROR_NOTCL] Неверный формат значения, введенный для смещения по X, " +"используйте числа." #: flatcamEditors/FlatCAMGeoEditor.py:1244 #: flatcamEditors/FlatCAMGrbEditor.py:5202 flatcamTools/ToolTransform.py:619 msgid "[ERROR_NOTCL] Wrong value format entered for Offset Y, use a number." msgstr "" +"[ERROR_NOTCL] Неверный формат значения, введенный для смещения по Y, " +"используйте числа." #: flatcamEditors/FlatCAMGeoEditor.py:1262 #: flatcamEditors/FlatCAMGrbEditor.py:5225 msgid "[WARNING_NOTCL] No shape selected. Please Select a shape to rotate!" msgstr "" +"[WARNING_NOTCL] Фигура не выбрана. Пожалуйста, выберите фигуру для поворота!" #: flatcamEditors/FlatCAMGeoEditor.py:1265 #: flatcamEditors/FlatCAMGrbEditor.py:5228 flatcamTools/ToolTransform.py:640 @@ -2523,6 +2718,8 @@ msgstr "[success] Готово. Поворот выполнен." #: flatcamEditors/FlatCAMGrbEditor.py:5278 msgid "[WARNING_NOTCL] No shape selected. Please Select a shape to flip!" msgstr "" +"[WARNING_NOTCL] Фигура не выбрана. Пожалуйста, выберите фигуру для " +"переворота!" #: flatcamEditors/FlatCAMGeoEditor.py:1312 #: flatcamEditors/FlatCAMGrbEditor.py:5281 flatcamTools/ToolTransform.py:691 @@ -2543,6 +2740,8 @@ msgstr "[success] Отражение по оси Х завершёно ..." #: flatcamEditors/FlatCAMGrbEditor.py:5346 msgid "[WARNING_NOTCL] No shape selected. Please Select a shape to shear/skew!" msgstr "" +"[WARNING_NOTCL] Фигура не выбрана. Пожалуйста, выберите фигуру для сдвига/" +"наклона!" #: flatcamEditors/FlatCAMGeoEditor.py:1367 #: flatcamEditors/FlatCAMGrbEditor.py:5349 flatcamTools/ToolTransform.py:760 @@ -2553,18 +2752,20 @@ msgstr "Применение наклона" #: flatcamEditors/FlatCAMGrbEditor.py:5382 flatcamTools/ToolTransform.py:791 #, python-format msgid "[success] Skew on the %s axis done ..." -msgstr "" +msgstr "[success] Наклон по оси %s выполнен ..." #: flatcamEditors/FlatCAMGeoEditor.py:1396 #: flatcamEditors/FlatCAMGrbEditor.py:5386 flatcamTools/ToolTransform.py:795 #, python-format msgid "[ERROR_NOTCL] Due of %s, Skew action was not executed." -msgstr "" +msgstr "[ERROR_NOTCL] Из-за %s наклон не был выполнен." #: flatcamEditors/FlatCAMGeoEditor.py:1407 #: flatcamEditors/FlatCAMGrbEditor.py:5405 msgid "[WARNING_NOTCL] No shape selected. Please Select a shape to scale!" msgstr "" +"[WARNING_NOTCL] Фигура не выбрана. Пожалуйста, выберите фигуру для " +"масштабирования!" #: flatcamEditors/FlatCAMGeoEditor.py:1410 #: flatcamEditors/FlatCAMGrbEditor.py:5408 flatcamTools/ToolTransform.py:809 @@ -2575,18 +2776,19 @@ msgstr "Применение масштабирования" #: flatcamEditors/FlatCAMGrbEditor.py:5444 flatcamTools/ToolTransform.py:848 #, python-format msgid "[success] Scale on the %s axis done ..." -msgstr "" +msgstr "[success] Масштабирование по оси %s выполнено ..." #: flatcamEditors/FlatCAMGeoEditor.py:1446 #: flatcamEditors/FlatCAMGrbEditor.py:5447 flatcamTools/ToolTransform.py:851 #, python-format msgid "[ERROR_NOTCL] Due of %s, Scale action was not executed." -msgstr "" +msgstr "[ERROR_NOTCL] Из-за %s, операция масштабирования не была выполнена." #: flatcamEditors/FlatCAMGeoEditor.py:1455 #: flatcamEditors/FlatCAMGrbEditor.py:5460 msgid "[WARNING_NOTCL] No shape selected. Please Select a shape to offset!" msgstr "" +"[WARNING_NOTCL] Фигура не выбрана. Пожалуйста, выберите фигуру для смещения!" #: flatcamEditors/FlatCAMGeoEditor.py:1458 #: flatcamEditors/FlatCAMGrbEditor.py:5463 flatcamTools/ToolTransform.py:861 @@ -2597,13 +2799,13 @@ msgstr "Применение смещения" #: flatcamEditors/FlatCAMGrbEditor.py:5484 flatcamTools/ToolTransform.py:880 #, python-format msgid "[success] Offset on the %s axis done ..." -msgstr "" +msgstr "[success] Смещение по оси %s выполнено ..." #: flatcamEditors/FlatCAMGeoEditor.py:1473 #: flatcamEditors/FlatCAMGrbEditor.py:5488 flatcamTools/ToolTransform.py:884 #, python-format msgid "[ERROR_NOTCL] Due of %s, Offset action was not executed." -msgstr "" +msgstr "[ERROR_NOTCL] Из-за %s операция смещения не была выполнена." #: flatcamEditors/FlatCAMGeoEditor.py:1477 #: flatcamEditors/FlatCAMGrbEditor.py:5492 @@ -2622,12 +2824,12 @@ msgstr "Введите значение угла (градусы):" #: flatcamEditors/FlatCAMGeoEditor.py:1487 #: flatcamEditors/FlatCAMGrbEditor.py:5502 msgid "[success] Geometry shape rotate done..." -msgstr "" +msgstr "[success] Вращение фигуры выполнено..." #: flatcamEditors/FlatCAMGeoEditor.py:1492 #: flatcamEditors/FlatCAMGrbEditor.py:5507 msgid "[WARNING_NOTCL] Geometry shape rotate cancelled..." -msgstr "" +msgstr "[WARNING_NOTCL] Вращение фигуры отменено..." #: flatcamEditors/FlatCAMGeoEditor.py:1498 #: flatcamEditors/FlatCAMGrbEditor.py:5513 @@ -2645,12 +2847,12 @@ msgstr "Введите значение расстояния (%s):" #: flatcamEditors/FlatCAMGeoEditor.py:1508 #: flatcamEditors/FlatCAMGrbEditor.py:5523 msgid "[success] Geometry shape offset on X axis done..." -msgstr "" +msgstr "[success] Смещение формы по оси X выполнено..." #: flatcamEditors/FlatCAMGeoEditor.py:1512 #: flatcamEditors/FlatCAMGrbEditor.py:5527 msgid "[WARNING_NOTCL] Geometry shape offset X cancelled..." -msgstr "" +msgstr "[WARNING_NOTCL] Смещение формы по оси X отменено..." #: flatcamEditors/FlatCAMGeoEditor.py:1517 #: flatcamEditors/FlatCAMGrbEditor.py:5532 @@ -2660,12 +2862,12 @@ msgstr "Смещение по оси Y ..." #: flatcamEditors/FlatCAMGeoEditor.py:1527 #: flatcamEditors/FlatCAMGrbEditor.py:5542 msgid "[success] Geometry shape offset on Y axis done..." -msgstr "" +msgstr "[success] Смещение формы по оси Y выполнено..." #: flatcamEditors/FlatCAMGeoEditor.py:1531 #: flatcamEditors/FlatCAMGrbEditor.py:5546 msgid "[WARNING_NOTCL] Geometry shape offset Y cancelled..." -msgstr "" +msgstr "[WARNING_NOTCL] Смещение формы по оси Y отменено..." #: flatcamEditors/FlatCAMGeoEditor.py:1534 #: flatcamEditors/FlatCAMGrbEditor.py:5549 @@ -2675,12 +2877,12 @@ msgstr "Наклон по оси X ..." #: flatcamEditors/FlatCAMGeoEditor.py:1544 #: flatcamEditors/FlatCAMGrbEditor.py:5559 msgid "[success] Geometry shape skew on X axis done..." -msgstr "" +msgstr "[success] Наклон формы по оси X выполнен..." #: flatcamEditors/FlatCAMGeoEditor.py:1548 #: flatcamEditors/FlatCAMGrbEditor.py:5563 msgid "[WARNING_NOTCL] Geometry shape skew X cancelled..." -msgstr "" +msgstr "[WARNING_NOTCL] Наклон формы по оси X отменён..." #: flatcamEditors/FlatCAMGeoEditor.py:1551 #: flatcamEditors/FlatCAMGrbEditor.py:5566 @@ -2690,12 +2892,12 @@ msgstr "Наклон по оси Y ..." #: flatcamEditors/FlatCAMGeoEditor.py:1561 #: flatcamEditors/FlatCAMGrbEditor.py:5576 msgid "[success] Geometry shape skew on Y axis done..." -msgstr "" +msgstr "[success] Наклон формы по оси Y выполнен..." #: flatcamEditors/FlatCAMGeoEditor.py:1565 #: flatcamEditors/FlatCAMGrbEditor.py:5580 msgid "[WARNING_NOTCL] Geometry shape skew Y cancelled..." -msgstr "" +msgstr "[WARNING_NOTCL] Наклон формы по оси Y отменён..." #: flatcamEditors/FlatCAMGeoEditor.py:1929 #: flatcamEditors/FlatCAMGeoEditor.py:1980 @@ -2711,7 +2913,7 @@ msgstr "Для завершения щелкните по периметру ... #: flatcamEditors/FlatCAMGeoEditor.py:1965 msgid "[success] Done. Adding Circle completed." -msgstr "" +msgstr "[success] Готово. Добавление круга завершено." #: flatcamEditors/FlatCAMGeoEditor.py:2000 #: flatcamEditors/FlatCAMGrbEditor.py:1462 @@ -2766,7 +2968,7 @@ msgstr "Режим: Центр -> Старт -> Стоп. Нажмите на ц #: flatcamEditors/FlatCAMGeoEditor.py:2179 msgid "[success] Done. Arc completed." -msgstr "" +msgstr "[success] Готово. Дуга завершена." #: flatcamEditors/FlatCAMGeoEditor.py:2198 #: flatcamEditors/FlatCAMGeoEditor.py:2251 @@ -2780,7 +2982,7 @@ msgstr "Нажмите на противоположном углу для за #: flatcamEditors/FlatCAMGeoEditor.py:2232 msgid "[success] Done. Rectangle completed." -msgstr "" +msgstr "[success] Готово. Прямоугольник завершен." #: flatcamEditors/FlatCAMGeoEditor.py:2258 msgid "Click on next Point or click right mouse button to complete ..." @@ -2790,22 +2992,24 @@ msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:2286 msgid "[success] Done. Polygon completed." -msgstr "" +msgstr "[success] Готово. Полигон завершен." #: flatcamEditors/FlatCAMGeoEditor.py:2296 #: flatcamEditors/FlatCAMGeoEditor.py:2342 #: flatcamEditors/FlatCAMGrbEditor.py:1058 #: flatcamEditors/FlatCAMGrbEditor.py:1252 msgid "Backtracked one point ..." -msgstr "" +msgstr "Отступ на одну точку ..." #: flatcamEditors/FlatCAMGeoEditor.py:2324 msgid "[success] Done. Path completed." -msgstr "" +msgstr "[success] Готово. Путь завершен." #: flatcamEditors/FlatCAMGeoEditor.py:2447 msgid "[WARNING_NOTCL] MOVE: No shape selected. Select a shape to move ..." msgstr "" +"[WARNING_NOTCL] ПЕРЕМЕЩЕНИЕ: Фигура не выбрана. Выберите фигуру для " +"перемещения ..." #: flatcamEditors/FlatCAMGeoEditor.py:2449 #: flatcamEditors/FlatCAMGeoEditor.py:2461 @@ -2818,11 +3022,11 @@ msgstr " Нажмите на конечную точку ..." #: flatcamEditors/FlatCAMGeoEditor.py:2486 msgid "[success] Done. Geometry(s) Move completed." -msgstr "" +msgstr "[success] Готово. Перемещение Geometry завершено." #: flatcamEditors/FlatCAMGeoEditor.py:2606 msgid "[success] Done. Geometry(s) Copy completed." -msgstr "" +msgstr "[success] Готово. Копирование Geometry завершено." #: flatcamEditors/FlatCAMGeoEditor.py:2640 #, python-format @@ -2830,45 +3034,47 @@ msgid "" "[ERROR]Font not supported. Only Regular, Bold, Italic and BoldItalic are " "supported. Error: %s" msgstr "" +"[ERROR] Шрифт не поддерживается. Поддерживаются только обычный, полужирный, " +"курсив и полужирный курсив. Ошибка: %s" #: flatcamEditors/FlatCAMGeoEditor.py:2650 msgid "[success] Done. Adding Text completed." -msgstr "" +msgstr "[success] Готово. Добавление текста завершено." #: flatcamEditors/FlatCAMGeoEditor.py:2678 msgid "Create buffer geometry ..." -msgstr "" +msgstr "Создание геометрии буфера ..." #: flatcamEditors/FlatCAMGeoEditor.py:2689 #: flatcamEditors/FlatCAMGeoEditor.py:2715 #: flatcamEditors/FlatCAMGeoEditor.py:2741 msgid "[WARNING_NOTCL] Buffer cancelled. No shape selected." -msgstr "" +msgstr "[WARNING_NOTCL] Создание буфера отменено. Фигура не выбрана." #: flatcamEditors/FlatCAMGeoEditor.py:2711 #: flatcamEditors/FlatCAMGrbEditor.py:4442 msgid "[success] Done. Buffer Tool completed." -msgstr "" +msgstr "[success] Готово. Создание буфера завершено." #: flatcamEditors/FlatCAMGeoEditor.py:2737 msgid "[success] Done. Buffer Int Tool completed." -msgstr "" +msgstr "[success] Готово. Внутренний буфер создан." #: flatcamEditors/FlatCAMGeoEditor.py:2763 msgid "[success] Done. Buffer Ext Tool completed." -msgstr "" +msgstr "[success] Готово. Внешний буфер создан." #: flatcamEditors/FlatCAMGeoEditor.py:2798 #: flatcamEditors/FlatCAMGrbEditor.py:1983 msgid "Select a shape to act as deletion area ..." -msgstr "" +msgstr "Выберите фигуру в качестве области для удаления ..." #: flatcamEditors/FlatCAMGeoEditor.py:2800 #: flatcamEditors/FlatCAMGeoEditor.py:2819 #: flatcamEditors/FlatCAMGeoEditor.py:2825 #: flatcamEditors/FlatCAMGrbEditor.py:1985 msgid "Click to pick-up the erase shape..." -msgstr "" +msgstr "Кликните, что бы выбрать фигуру для стирания ..." #: flatcamEditors/FlatCAMGeoEditor.py:2829 #: flatcamEditors/FlatCAMGrbEditor.py:2042 @@ -2878,26 +3084,28 @@ msgstr "Нажмите для очистки ..." #: flatcamEditors/FlatCAMGeoEditor.py:2858 #: flatcamEditors/FlatCAMGrbEditor.py:2075 msgid "[success] Done. Eraser tool action completed." -msgstr "" +msgstr "[success] Готово. Действие инструмента стирания завершено.." #: flatcamEditors/FlatCAMGeoEditor.py:2901 msgid "Create Paint geometry ..." -msgstr "" +msgstr "Создать геометрию окрашивания ..." #: flatcamEditors/FlatCAMGeoEditor.py:2915 #: flatcamEditors/FlatCAMGrbEditor.py:2217 msgid "Shape transformations ..." -msgstr "" +msgstr "Преобразования фигуры ..." #: flatcamEditors/FlatCAMGeoEditor.py:3416 #, python-brace-format msgid "" "[WARNING_NOTCL] Editing MultiGeo Geometry, tool: {tool} with diameter: {dia}" msgstr "" +"[WARNING_NOTCL] Редактирование MultiGeo Geometry, инструментом: {tool} с " +"диаметром: {dia}" #: flatcamEditors/FlatCAMGeoEditor.py:3793 msgid "[WARNING_NOTCL] Copy cancelled. No shape selected." -msgstr "" +msgstr "[WARNING_NOTCL] Копирование отменено. Форма не выбрана." #: flatcamEditors/FlatCAMGeoEditor.py:3800 flatcamGUI/FlatCAMGUI.py:2727 #: flatcamGUI/FlatCAMGUI.py:2773 flatcamGUI/FlatCAMGUI.py:2791 @@ -2912,6 +3120,8 @@ msgid "" "[WARNING_NOTCL] A selection of at least 2 geo items is required to do " "Intersection." msgstr "" +"[WARNING_NOTCL] Выберите по крайней мере 2 geo элемента, что-бы сделать " +"пересечение." #: flatcamEditors/FlatCAMGeoEditor.py:4163 #: flatcamEditors/FlatCAMGeoEditor.py:4201 @@ -2920,45 +3130,49 @@ msgid "" "[ERROR_NOTCL] Negative buffer value is not accepted. Use Buffer interior to " "generate an 'inside' shape" msgstr "" +"[ERROR_NOTCL] Отрицательное значение буфера не принимается. Используйте " +"внутренний буфер для создания \"внутри\" формы" #: flatcamEditors/FlatCAMGeoEditor.py:4172 #: flatcamEditors/FlatCAMGeoEditor.py:4210 #: flatcamEditors/FlatCAMGeoEditor.py:4285 msgid "[WARNING_NOTCL] Nothing selected for buffering." -msgstr "" +msgstr "[WARNING_NOTCL] Ничего не выбрано для создания буфера." #: flatcamEditors/FlatCAMGeoEditor.py:4176 #: flatcamEditors/FlatCAMGeoEditor.py:4214 #: flatcamEditors/FlatCAMGeoEditor.py:4289 msgid "[WARNING_NOTCL] Invalid distance for buffering." -msgstr "" +msgstr "[WARNING_NOTCL] Недопустимое расстояние для создания буфера." #: flatcamEditors/FlatCAMGeoEditor.py:4186 #: flatcamEditors/FlatCAMGeoEditor.py:4298 msgid "" "[ERROR_NOTCL] Failed, the result is empty. Choose a different buffer value." msgstr "" +"[ERROR_NOTCL] Ошибка, результат нулевой. Выберите другое значение буфера." #: flatcamEditors/FlatCAMGeoEditor.py:4194 msgid "[success] Full buffer geometry created." -msgstr "" +msgstr "[success] Создана геометрия полного буфера" #: flatcamEditors/FlatCAMGeoEditor.py:4224 msgid "" "[ERROR_NOTCL] Failed, the result is empty. Choose a smaller buffer value." msgstr "" +"[ERROR_NOTCL] Ошибка, результат нулевой. Выберите меньшее значение буфера." #: flatcamEditors/FlatCAMGeoEditor.py:4239 msgid "[success] Interior buffer geometry created." -msgstr "" +msgstr "[success] Создана геометрия внутреннего буфера." #: flatcamEditors/FlatCAMGeoEditor.py:4310 msgid "[success] Exterior buffer geometry created." -msgstr "" +msgstr "[success] Создана геометрия внешнего буфера." #: flatcamEditors/FlatCAMGeoEditor.py:4374 msgid "[WARNING_NOTCL] Nothing selected for painting." -msgstr "" +msgstr "[WARNING_NOTCL] Ничего не выбрано для рисования." #: flatcamEditors/FlatCAMGeoEditor.py:4380 msgid "[WARNING] Invalid value for {}" @@ -2969,6 +3183,8 @@ msgid "" "[ERROR_NOTCL] Could not do Paint. Overlap value has to be less than 1.00 " "(100%)." msgstr "" +"[ERROR_NOTCL] Окраска не выполнена. Значение перекрытия должно быть меньше " +"1,00 (100%)." #: flatcamEditors/FlatCAMGeoEditor.py:4445 #, python-format @@ -2977,20 +3193,26 @@ msgid "" "different method of Paint\n" "%s" msgstr "" +"[ERROR] Окраска не выполнена. Попробуйте другую комбинацию параметров. Или " +"другой способ рисования\n" +"%s" #: flatcamEditors/FlatCAMGeoEditor.py:4456 msgid "[success] Paint done." -msgstr "" +msgstr "[success] Окраска выполнена." #: flatcamEditors/FlatCAMGrbEditor.py:200 msgid "[WARNING_NOTCL] To add an Pad first select a aperture in Aperture Table" msgstr "" +"[WARNING_NOTCL] Чтобы добавить площадку, сначала выберите отверстие в " +"таблице отверстий" #: flatcamEditors/FlatCAMGrbEditor.py:206 #: flatcamEditors/FlatCAMGrbEditor.py:398 msgid "" "[WARNING_NOTCL] Aperture size is zero. It needs to be greater than zero." msgstr "" +"[WARNING_NOTCL] Размер отверстия равен нулю. Он должен быть больше нуля." #: flatcamEditors/FlatCAMGrbEditor.py:357 #: flatcamEditors/FlatCAMGrbEditor.py:662 @@ -3001,28 +3223,30 @@ msgstr "" #: flatcamEditors/FlatCAMGrbEditor.py:369 msgid "[success] Done. Adding Pad completed." -msgstr "" +msgstr "[success] Готово. Добавление площадки завершено." #: flatcamEditors/FlatCAMGrbEditor.py:391 msgid "" "[WARNING_NOTCL] To add an Pad Array first select a aperture in Aperture Table" msgstr "" +"[WARNING_NOTCL] Чтобы добавить массив площадок, сначала выберите отверстие в " +"таблице отверстий" #: flatcamEditors/FlatCAMGrbEditor.py:468 msgid "Click on the Pad Circular Array Start position" -msgstr "" +msgstr "Нажмите на начальную точку кругового массива контактных площадок" #: flatcamEditors/FlatCAMGrbEditor.py:497 msgid "[ERROR_NOTCL] The value is mistyped. Check the value." -msgstr "" +msgstr "[ERROR_NOTCL] Значение введено с ошибкой. Проверьте значение." #: flatcamEditors/FlatCAMGrbEditor.py:687 msgid "[WARNING_NOTCL] Too many Pads for the selected spacing angle." -msgstr "" +msgstr "[WARNING_NOTCL] Слишком много площадок для выбранного интервала угла." #: flatcamEditors/FlatCAMGrbEditor.py:709 msgid "[success] Done. Pad Array added." -msgstr "" +msgstr "[success] Done. Pad Array added." #: flatcamEditors/FlatCAMGrbEditor.py:730 msgid "Select shape(s) and then click ..." @@ -3030,17 +3254,19 @@ msgstr "Выберите фигуры, а затем нажмите ..." #: flatcamEditors/FlatCAMGrbEditor.py:741 msgid "[ERROR_NOTCL] Failed. Nothing selected." -msgstr "" +msgstr "[ERROR_NOTCL] Ошибка. Ничего не выбрано." #: flatcamEditors/FlatCAMGrbEditor.py:756 msgid "" "[WARNING_NOTCL] Failed. Poligonize works only on geometries belonging to the " "same aperture." msgstr "" +"[WARNING_NOTCL] Неудачный. Полигонизация работает только с геометриями, " +"принадлежащими к одному отверстию." #: flatcamEditors/FlatCAMGrbEditor.py:809 msgid "[success] Done. Poligonize completed." -msgstr "" +msgstr "[success] Готово. Полигонизация выполнена." #: flatcamEditors/FlatCAMGrbEditor.py:860 #: flatcamEditors/FlatCAMGrbEditor.py:1075 @@ -3083,27 +3309,27 @@ msgstr "Угловой режим 5: свободный угол ..." #: flatcamEditors/FlatCAMGrbEditor.py:1284 #: flatcamEditors/FlatCAMGrbEditor.py:1323 msgid "Track Mode 1: 45 degrees ..." -msgstr "" +msgstr "Режим дорожки 1: 45 градусов ..." #: flatcamEditors/FlatCAMGrbEditor.py:1264 #: flatcamEditors/FlatCAMGrbEditor.py:1318 msgid "Track Mode 2: Reverse 45 degrees ..." -msgstr "" +msgstr "Режим дорожки 2: реверс 45 градусов ..." #: flatcamEditors/FlatCAMGrbEditor.py:1269 #: flatcamEditors/FlatCAMGrbEditor.py:1313 msgid "Track Mode 3: 90 degrees ..." -msgstr "" +msgstr "Режим дорожки 3: 90 градусов ..." #: flatcamEditors/FlatCAMGrbEditor.py:1274 #: flatcamEditors/FlatCAMGrbEditor.py:1308 msgid "Track Mode 4: Reverse 90 degrees ..." -msgstr "" +msgstr "Режим дорожки 4: реверс 90 градусов ..." #: flatcamEditors/FlatCAMGrbEditor.py:1279 #: flatcamEditors/FlatCAMGrbEditor.py:1303 msgid "Track Mode 5: Free angle ..." -msgstr "" +msgstr "Режим дорожки 5: свободный угол ..." #: flatcamEditors/FlatCAMGrbEditor.py:1683 msgid "Scale the selected Gerber apertures ..." @@ -3111,19 +3337,19 @@ msgstr "Масштабирование выбранных отверстий Ger #: flatcamEditors/FlatCAMGrbEditor.py:1725 msgid "Buffer the selected apertures ..." -msgstr "" +msgstr "Создание буфера для выбранных отверстий ..." #: flatcamEditors/FlatCAMGrbEditor.py:1769 msgid "[WARNING_NOTCL] Nothing selected to move ..." -msgstr "" +msgstr "[WARNING_NOTCL] Ничего не выбрано для перемещения ..." #: flatcamEditors/FlatCAMGrbEditor.py:1892 msgid "[success] Done. Apertures Move completed." -msgstr "" +msgstr "[success] Готово. Перемещение отверстий завершено." #: flatcamEditors/FlatCAMGrbEditor.py:1968 msgid "[success] Done. Apertures copied." -msgstr "" +msgstr "[success] Готово. Отверстия скопированы." #: flatcamEditors/FlatCAMGrbEditor.py:2259 flatcamGUI/FlatCAMGUI.py:1604 #: flatcamGUI/FlatCAMGUI.py:4323 @@ -3169,7 +3395,7 @@ msgstr "Код отверстия" #: flatcamEditors/FlatCAMGrbEditor.py:2299 flatcamGUI/ObjectUI.py:236 msgid "Type of aperture: circular, rectangle, macros etc" -msgstr "" +msgstr "Тип отверстия: круг, прямоугольник, макросы и т.д." #: flatcamEditors/FlatCAMGrbEditor.py:2301 #: flatcamEditors/FlatCAMGrbEditor.py:2334 flatcamGUI/ObjectUI.py:238 @@ -3256,11 +3482,11 @@ msgstr "Удаляет отверстие в таблице отверстий" #: flatcamEditors/FlatCAMGrbEditor.py:2404 msgid "Buffer Aperture:" -msgstr "" +msgstr "Буфер отверстия:" #: flatcamEditors/FlatCAMGrbEditor.py:2406 msgid "Buffer a aperture in the aperture list" -msgstr "" +msgstr "Создаёт буфер для отверстия в списке отверстий" #: flatcamEditors/FlatCAMGrbEditor.py:2419 msgid "" @@ -3270,52 +3496,61 @@ msgid "" " - 'Beveled:' the corner is a line that directly connects the features " "meeting in the corner" msgstr "" +"Существует 3 типа углов:\n" +" - 'Круг': угол закруглен.\n" +" - 'Квадрат': угол встречается под острым углом.\n" +" - 'Скошенный:' угол-это линия, которая непосредственно соединяет элементы, " +"встречающиеся в углу" #: flatcamEditors/FlatCAMGrbEditor.py:2434 flatcamGUI/FlatCAMGUI.py:717 #: flatcamGUI/FlatCAMGUI.py:1946 msgid "Buffer" -msgstr "Буффер" +msgstr "Буфер" #: flatcamEditors/FlatCAMGrbEditor.py:2448 msgid "Scale Aperture:" -msgstr "" +msgstr "Масштаб. отверстий:" #: flatcamEditors/FlatCAMGrbEditor.py:2450 msgid "Scale a aperture in the aperture list" -msgstr "" +msgstr "Масштабирование отверстия в списке отверстий" #: flatcamEditors/FlatCAMGrbEditor.py:2458 msgid "Scale factor:" -msgstr "" +msgstr "Коэффициент масш.:" #: flatcamEditors/FlatCAMGrbEditor.py:2460 msgid "" "The factor by which to scale the selected aperture.\n" "Values can be between 0.0000 and 999.9999" msgstr "" +"Коэффициент масштабирования выбранного отверстия.\n" +"Значения могут быть между 0.0000 и 999.9999" #: flatcamEditors/FlatCAMGrbEditor.py:2488 flatcamGUI/FlatCAMGUI.py:707 #: flatcamGUI/FlatCAMGUI.py:1936 msgid "Add Pad Array" -msgstr "" +msgstr "Добавить массив контактных площадок" #: flatcamEditors/FlatCAMGrbEditor.py:2490 msgid "Add an array of pads (linear or circular array)" -msgstr "" +msgstr "Добавляет массив контактных площадок (линейный или круговой массив)" #: flatcamEditors/FlatCAMGrbEditor.py:2496 msgid "" "Select the type of pads array to create.\n" "It can be Linear X(Y) or Circular" msgstr "" +"Выбор типа массива контактных площадок.\n" +"Он может быть линейным X (Y) или круговым" #: flatcamEditors/FlatCAMGrbEditor.py:2507 msgid "Nr of pads:" -msgstr "" +msgstr "№ площ.:" #: flatcamEditors/FlatCAMGrbEditor.py:2509 msgid "Specify how many pads to be in the array." -msgstr "" +msgstr "Укажите, сколько контактных площадок должно быть в массиве." #: flatcamEditors/FlatCAMGrbEditor.py:2986 #: flatcamEditors/FlatCAMGrbEditor.py:2990 @@ -3323,56 +3558,63 @@ msgid "" "[WARNING_NOTCL] Aperture code value is missing or wrong format. Add it and " "retry." msgstr "" +"[WARNING_NOTCL] Отсутствует значение кода отверстия или оно имеет " +"неправильный формат. Добавьте его и повторите попытку." #: flatcamEditors/FlatCAMGrbEditor.py:3026 msgid "" "[WARNING_NOTCL] Aperture dimensions value is missing or wrong format. Add it " "in format (width, height) and retry." msgstr "" +"[WARNING_NOTCL] Отсутствует значение размера отверстия или оно имеет " +"неправильный формат. Добавьте его в формате (ширина, высота) и повторите " +"попытку." #: flatcamEditors/FlatCAMGrbEditor.py:3038 msgid "" "[WARNING_NOTCL] Aperture size value is missing or wrong format. Add it and " "retry." msgstr "" +"[WARNING_NOTCL] Отсутствует значение размера отверстия или оно имеет " +"неправильный формат. Добавьте его и повторите попытку." #: flatcamEditors/FlatCAMGrbEditor.py:3049 msgid "[WARNING_NOTCL] Aperture already in the aperture table." -msgstr "" +msgstr "[WARNING_NOTCL] Отверстие уже присутствует в таблице отверстий." #: flatcamEditors/FlatCAMGrbEditor.py:3056 #, python-brace-format msgid "[success] Added new aperture with code: {apid}" -msgstr "" +msgstr "[success] Добавлено новое отверстие с кодом: {apid}" #: flatcamEditors/FlatCAMGrbEditor.py:3084 msgid "[WARNING_NOTCL] Select an aperture in Aperture Table" -msgstr "" +msgstr "[WARNING_NOTCL] Выберите отверстие в таблице отверстий" #: flatcamEditors/FlatCAMGrbEditor.py:3090 #, python-format msgid "[WARNING_NOTCL] Select an aperture in Aperture Table --> %s" -msgstr "" +msgstr "[WARNING_NOTCL] Выберите отверстие в таблице отверстий --> %s" #: flatcamEditors/FlatCAMGrbEditor.py:3113 #, python-brace-format msgid "[success] Deleted aperture with code: {del_dia}" -msgstr "" +msgstr "[success] Удалено отверстие с кодом: {del_dia}" #: flatcamEditors/FlatCAMGrbEditor.py:3533 #, python-format msgid "Adding aperture: %s geo ..." -msgstr "" +msgstr "Добавление отверстия: %s geo ..." #: flatcamEditors/FlatCAMGrbEditor.py:3718 msgid "" "[ERROR_NOTCL] There are no Aperture definitions in the file. Aborting Gerber " "creation." -msgstr "" +msgstr "[ERROR_NOTCL] В файле нет отверстий. Прерывание создания Gerber." #: flatcamEditors/FlatCAMGrbEditor.py:3721 msgid "[ERROR] An internal error has occurred. See shell.\n" -msgstr "" +msgstr "[ERROR] Произошла внутренняя ошибка. Смотрите коммандную строку.\n" #: flatcamEditors/FlatCAMGrbEditor.py:3726 msgid "Creating Gerber." @@ -3380,41 +3622,47 @@ msgstr "Создание Gerber." #: flatcamEditors/FlatCAMGrbEditor.py:3734 msgid "[success] Gerber editing finished." -msgstr "" +msgstr "[success] Редактирование Gerber завершено." #: flatcamEditors/FlatCAMGrbEditor.py:3750 msgid "[WARNING_NOTCL] Cancelled. No aperture is selected" -msgstr "" +msgstr "[WARNING_NOTCL] Отмена. Нет выбранных отверстий" #: flatcamEditors/FlatCAMGrbEditor.py:4270 msgid "[ERROR_NOTCL] Failed. No aperture geometry is selected." -msgstr "" +msgstr "[ERROR_NOTCL] Ошибка. Не выбрана геометрия отверстий." #: flatcamEditors/FlatCAMGrbEditor.py:4278 msgid "[success] Done. Apertures geometry deleted." -msgstr "" +msgstr "[success] Готово. Геометрия отверстий удалена." #: flatcamEditors/FlatCAMGrbEditor.py:4427 msgid "" "[WARNING_NOTCL] No aperture to buffer. Select at least one aperture and try " "again." msgstr "" +"[WARNING_NOTCL] Нет отверстий для создания буфера. Выберите хотя бы одно " +"отверстие и повторите попытку." #: flatcamEditors/FlatCAMGrbEditor.py:4456 msgid "" "[WARNING_NOTCL] Scale factor value is missing or wrong format. Add it and " "retry." msgstr "" +"[WARNING_NOTCL] Отсутствует значение коэффициента масштабирования или оно " +"имеет неправильный формат. Добавьте его и повторите попытку." #: flatcamEditors/FlatCAMGrbEditor.py:4486 msgid "" "[WARNING_NOTCL] No aperture to scale. Select at least one aperture and try " "again." msgstr "" +"[WARNING_NOTCL] Нет отверстий для масштабирования. Выберите хотя бы одно " +"отверстие и повторите попытку." #: flatcamEditors/FlatCAMGrbEditor.py:4502 msgid "[success] Done. Scale Tool completed." -msgstr "" +msgstr "[success] Готово. Масштабирование выполнено." #: flatcamGUI/FlatCAMGUI.py:50 msgid "&File" @@ -3507,6 +3755,9 @@ msgid "" "enabling the automation of certain\n" "functions of FlatCAM." msgstr "" +"Будет запущен открытый сценарий\n" +"включающий автоматизацию некоторых\n" +"функций FlatCAM." #: flatcamGUI/FlatCAMGUI.py:138 msgid "Import" @@ -3683,7 +3934,7 @@ msgstr "&Удалить\tDEL" #: flatcamGUI/FlatCAMGUI.py:295 msgid "Se&t Origin\tO" -msgstr "" +msgstr "Ук&азать начало координат\tO" #: flatcamGUI/FlatCAMGUI.py:296 msgid "Jump to Location\tJ" @@ -3735,11 +3986,11 @@ msgstr "&Вид" #: flatcamGUI/FlatCAMGUI.py:350 msgid "Enable all plots\tALT+1" -msgstr "Включить все чертежи\tALT+1" +msgstr "Включить все участки\tALT+1" #: flatcamGUI/FlatCAMGUI.py:352 msgid "Disable all plots\tALT+2" -msgstr "Отключить все чертежи\tALT+2" +msgstr "Отключить все участки\tALT+2" #: flatcamGUI/FlatCAMGUI.py:354 msgid "Disable non-selected\tALT+3" @@ -3767,11 +4018,11 @@ msgstr "&Во весь экран\tALT+F10" #: flatcamGUI/FlatCAMGUI.py:368 msgid "&Toggle Plot Area\tCTRL+F10" -msgstr "&Чертёж\tCTRL+F10" +msgstr "&Рабочая область\tCTRL+F10" #: flatcamGUI/FlatCAMGUI.py:370 msgid "&Toggle Project/Sel/Tool\t`" -msgstr "&Проект/Выбр./Инструм.\t`" +msgstr "&Боковая панель\t`" #: flatcamGUI/FlatCAMGUI.py:373 msgid "&Toggle Grid Snap\tG" @@ -3783,7 +4034,7 @@ msgstr "&Оси\tSHIFT+G" #: flatcamGUI/FlatCAMGUI.py:378 msgid "Toggle Workspace\tSHIFT+W" -msgstr "Рабочее пространство\tSHIFT+W" +msgstr "Границы рабочего пространства\tSHIFT+W" #: flatcamGUI/FlatCAMGUI.py:381 msgid "&Tool" @@ -3843,15 +4094,15 @@ msgstr "Добавить текст\tT" #: flatcamGUI/FlatCAMGUI.py:416 msgid "Polygon Union\tU" -msgstr "" +msgstr "Объединение полигонов\tU" #: flatcamGUI/FlatCAMGUI.py:418 msgid "Polygon Intersection\tE" -msgstr "" +msgstr "Пересечение полигонов\tE" #: flatcamGUI/FlatCAMGUI.py:420 msgid "Polygon Subtraction\tS" -msgstr "" +msgstr "Вычитание полигонов\tS" #: flatcamGUI/FlatCAMGUI.py:424 msgid "Cut Path\tX" @@ -3871,11 +4122,11 @@ msgstr "Переместить\tM" #: flatcamGUI/FlatCAMGUI.py:433 msgid "Buffer Tool\tB" -msgstr "" +msgstr "Буфер\tB" #: flatcamGUI/FlatCAMGUI.py:436 msgid "Paint Tool\tI" -msgstr "" +msgstr "Рисование\tI" #: flatcamGUI/FlatCAMGUI.py:439 msgid "Transform Tool\tALT+R" @@ -3883,7 +4134,7 @@ msgstr "Трансформация\tALT+R" #: flatcamGUI/FlatCAMGUI.py:443 msgid "Toggle Corner Snap\tK" -msgstr "" +msgstr "Привязка к углу\tK" #: flatcamGUI/FlatCAMGUI.py:446 msgid ">Excellon Editor<" @@ -3899,7 +4150,7 @@ msgstr "Добавить сверло\tD" #: flatcamGUI/FlatCAMGUI.py:456 msgid "Resize Drill(S)\tR" -msgstr "" +msgstr "Изменить размер отверстия\tR" #: flatcamGUI/FlatCAMGUI.py:458 flatcamGUI/FlatCAMGUI.py:496 msgid "Copy\tC" @@ -3919,11 +4170,11 @@ msgstr ">Редактор Gerber<" #: flatcamGUI/FlatCAMGUI.py:472 msgid "Add Pad\tP" -msgstr "" +msgstr "Добавить площадку\tP" #: flatcamGUI/FlatCAMGUI.py:474 msgid "Add Pad Array\tA" -msgstr "" +msgstr "Добавить массив площадок\tA" #: flatcamGUI/FlatCAMGUI.py:476 msgid "Add Track\tT" @@ -3935,7 +4186,7 @@ msgstr "Добавить регион\tN" #: flatcamGUI/FlatCAMGUI.py:482 msgid "Poligonize\tALT+N" -msgstr "" +msgstr "Полигонизация\tALT+N" #: flatcamGUI/FlatCAMGUI.py:484 msgid "Add SemiDisc\tE" @@ -3947,7 +4198,7 @@ msgstr "Добавить диск\tD" #: flatcamGUI/FlatCAMGUI.py:488 msgid "Buffer\tB" -msgstr "" +msgstr "Буфер\tB" #: flatcamGUI/FlatCAMGUI.py:490 msgid "Scale\tS" @@ -3959,11 +4210,11 @@ msgstr "Трансформировать\tALT+R" #: flatcamGUI/FlatCAMGUI.py:519 msgid "Enable Plot" -msgstr "Включить чертёж" +msgstr "Включить участок" #: flatcamGUI/FlatCAMGUI.py:520 flatcamGUI/FlatCAMGUI.py:1577 msgid "Disable Plot" -msgstr "Отключить чертёж" +msgstr "Отключить участок" #: flatcamGUI/FlatCAMGUI.py:522 msgid "Generate CNC" @@ -4056,7 +4307,7 @@ msgstr "&Перерисовать объект" #: flatcamGUI/FlatCAMGUI.py:629 flatcamGUI/FlatCAMGUI.py:1852 msgid "&Clear plot" -msgstr "&Очистить чертёж" +msgstr "&Очистить участок" #: flatcamGUI/FlatCAMGUI.py:630 flatcamGUI/FlatCAMGUI.py:1853 msgid "Zoom In" @@ -4167,11 +4418,11 @@ msgstr "Добавить текст" #: flatcamGUI/FlatCAMGUI.py:682 flatcamGUI/FlatCAMGUI.py:1910 msgid "Add Buffer" -msgstr "" +msgstr "Добавить буфер" #: flatcamGUI/FlatCAMGUI.py:683 flatcamGUI/FlatCAMGUI.py:1911 msgid "Paint Shape" -msgstr "" +msgstr "Нарисовать фигуру" #: flatcamGUI/FlatCAMGUI.py:684 flatcamGUI/FlatCAMGUI.py:719 #: flatcamGUI/FlatCAMGUI.py:1912 flatcamGUI/FlatCAMGUI.py:1948 @@ -4213,7 +4464,7 @@ msgstr "Переместить объект " #: flatcamGUI/FlatCAMGUI.py:706 flatcamGUI/FlatCAMGUI.py:1935 msgid "Add Pad" -msgstr "" +msgstr "Добавить площадку" #: flatcamGUI/FlatCAMGUI.py:708 flatcamGUI/FlatCAMGUI.py:1937 msgid "Add Track" @@ -4225,7 +4476,7 @@ msgstr "Добавить регион" #: flatcamGUI/FlatCAMGUI.py:711 flatcamGUI/FlatCAMGUI.py:1940 msgid "Poligonize" -msgstr "" +msgstr "Полигонизация" #: flatcamGUI/FlatCAMGUI.py:713 flatcamGUI/FlatCAMGUI.py:1942 msgid "SemiDisc" @@ -4247,17 +4498,19 @@ msgstr "Привязка к сетке" #: flatcamGUI/FlatCAMGUI.py:737 flatcamGUI/FlatCAMGUI.py:1966 msgid "Grid X snapping distance" -msgstr "" +msgstr "Размер сетки по X" #: flatcamGUI/FlatCAMGUI.py:742 flatcamGUI/FlatCAMGUI.py:1971 msgid "Grid Y snapping distance" -msgstr "" +msgstr "Размер сетки по Y" #: flatcamGUI/FlatCAMGUI.py:748 flatcamGUI/FlatCAMGUI.py:1977 msgid "" "When active, value on Grid_X\n" "is copied to the Grid_Y value." msgstr "" +"Если активен, значение на Grid_X\n" +"копируется в значение Grid_Y." #: flatcamGUI/FlatCAMGUI.py:754 flatcamGUI/FlatCAMGUI.py:1983 msgid "Snap to corner" @@ -4278,7 +4531,7 @@ msgstr "Выбранное" #: flatcamGUI/FlatCAMGUI.py:815 flatcamGUI/FlatCAMGUI.py:823 msgid "Plot Area" -msgstr "Чертёж" +msgstr "Рабочая область" #: flatcamGUI/FlatCAMGUI.py:847 msgid "General" @@ -4306,7 +4559,7 @@ msgstr "GEOMETRY" #: flatcamGUI/FlatCAMGUI.py:896 msgid "CNC-JOB" -msgstr "" +msgstr "CNC-JOB" #: flatcamGUI/FlatCAMGUI.py:905 msgid "TOOLS" @@ -4324,6 +4577,11 @@ msgid "" "FlatCAM automatically save a 'factory_defaults' file\n" "on the first start. Do not delete that file." msgstr "" +"Импорт полного набора настроек FlatCAM из файла,\n" +"ранее сохранённого на жестком диске.\n" +"\n" +"FlatCAM автоматически создаёт файл factory_defaults\n" +"при первом запуске. Не удаляйте этот файл." #: flatcamGUI/FlatCAMGUI.py:932 msgid "Export Preferences" @@ -4334,6 +4592,8 @@ msgid "" "Export a full set of FlatCAM settings in a file\n" "that is saved on HDD." msgstr "" +"Экспорт полного набора настроек FlatCAM в файл\n" +"который сохраняется на жестком диске." #: flatcamGUI/FlatCAMGUI.py:940 msgid "Open Pref Folder" @@ -4341,7 +4601,7 @@ msgstr "Открыть папку настроек" #: flatcamGUI/FlatCAMGUI.py:943 msgid "Open the folder where FlatCAM save the preferences files." -msgstr "" +msgstr "Открывает папку, в которой FlatCAM сохраняет файлы настроек." #: flatcamGUI/FlatCAMGUI.py:951 msgid "Save Preferences" @@ -4981,7 +5241,7 @@ msgstr "Вид" #: flatcamGUI/FlatCAMGUI.py:1593 msgid "Clear Plot" -msgstr "Очистить чертёж" +msgstr "Очистить участок" #: flatcamGUI/FlatCAMGUI.py:1594 msgid "Replot" @@ -5005,11 +5265,11 @@ msgstr "Вырезать" #: flatcamGUI/FlatCAMGUI.py:1605 msgid "Pad" -msgstr "" +msgstr "Площадка" #: flatcamGUI/FlatCAMGUI.py:1606 msgid "Pad Array" -msgstr "" +msgstr "Массив площадок" #: flatcamGUI/FlatCAMGUI.py:1607 msgid "Track" @@ -5021,7 +5281,7 @@ msgstr "Регион" #: flatcamGUI/FlatCAMGUI.py:1610 msgid "Exc Editor" -msgstr "" +msgstr "Редактор Excellon" #: flatcamGUI/FlatCAMGUI.py:1611 msgid "Add Drill" @@ -5105,7 +5365,7 @@ msgstr "Внимание" #: flatcamGUI/FlatCAMGUI.py:2434 flatcamGUI/FlatCAMGUI.py:2633 #: flatcamGUI/FlatCAMGUI.py:2844 msgid "[WARNING_NOTCL] Cancelled." -msgstr "" +msgstr "[WARNING_NOTCL] Отмена." #: flatcamGUI/FlatCAMGUI.py:2499 msgid "" @@ -5622,7 +5882,7 @@ msgstr "Окрашивать полигоны разными цветами." #: flatcamGUI/FlatCAMGUI.py:4016 flatcamGUI/FlatCAMGUI.py:4367 #: flatcamGUI/FlatCAMGUI.py:5157 flatcamGUI/ObjectUI.py:172 msgid "Plot" -msgstr "Чертёж" +msgstr "Участок" #: flatcamGUI/FlatCAMGUI.py:4018 flatcamGUI/FlatCAMGUI.py:5159 #: flatcamGUI/ObjectUI.py:174 flatcamGUI/ObjectUI.py:546 @@ -6098,7 +6358,7 @@ msgstr "Смена инструмента Z :" #: flatcamGUI/FlatCAMGUI.py:4655 flatcamGUI/FlatCAMGUI.py:5272 msgid "Toolchange Z position." -msgstr "" +msgstr "Позиция Z смены инструмента." #: flatcamGUI/FlatCAMGUI.py:4661 msgid "Feedrate:" @@ -6240,11 +6500,11 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:4810 flatcamGUI/FlatCAMGUI.py:5375 msgid "Toolchange X,Y:" -msgstr "" +msgstr "Смена инструмента X,Y:" #: flatcamGUI/FlatCAMGUI.py:4812 flatcamGUI/FlatCAMGUI.py:5377 msgid "Toolchange X,Y position." -msgstr "" +msgstr "Позиция X,Y смены инструмента." #: flatcamGUI/FlatCAMGUI.py:4818 flatcamGUI/FlatCAMGUI.py:5384 #: flatcamGUI/ObjectUI.py:634 @@ -6743,7 +7003,7 @@ msgstr "CNC Job дополн." #: flatcamGUI/FlatCAMGUI.py:5707 flatcamGUI/ObjectUI.py:1523 msgid "Toolchange G-Code:" -msgstr "" +msgstr "G-Code смены инструмента:" #: flatcamGUI/FlatCAMGUI.py:5709 msgid "" @@ -6795,15 +7055,15 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:5751 flatcamGUI/ObjectUI.py:1571 msgid "x_toolchange = X coord for Toolchange" -msgstr "" +msgstr "x_toolchange = координата X для смены инструмента" #: flatcamGUI/FlatCAMGUI.py:5752 flatcamGUI/ObjectUI.py:1572 msgid "y_toolchange = Y coord for Toolchange" -msgstr "" +msgstr "y_toolchange = координата Y для смены инструмента" #: flatcamGUI/FlatCAMGUI.py:5753 flatcamGUI/ObjectUI.py:1573 msgid "z_toolchange = Z coord for Toolchange" -msgstr "" +msgstr "z_toolchange = координата Z для смены инструмента" #: flatcamGUI/FlatCAMGUI.py:5754 msgid "z_cut = Z depth for the cut" @@ -7428,7 +7688,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:6579 flatcamTools/ToolSolderPaste.py:200 msgid "Z Toolchange:" -msgstr "" +msgstr "Z смены инструмента:" #: flatcamGUI/FlatCAMGUI.py:6581 flatcamTools/ToolSolderPaste.py:202 msgid "The height (Z) for tool (nozzle) change." @@ -7436,7 +7696,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:6588 flatcamTools/ToolSolderPaste.py:208 msgid "XY Toolchange:" -msgstr "" +msgstr "XY смены инструмента:" #: flatcamGUI/FlatCAMGUI.py:6590 flatcamTools/ToolSolderPaste.py:210 msgid "" @@ -7775,11 +8035,11 @@ msgstr "Таблица инструментов" #: flatcamGUI/ObjectUI.py:556 msgid "Drills" -msgstr "Свёрла" +msgstr "Отверстия" #: flatcamGUI/ObjectUI.py:556 msgid "Slots" -msgstr "Ячейки" +msgstr "Пазы" #: flatcamGUI/ObjectUI.py:557 msgid "Offset Z" @@ -8215,11 +8475,11 @@ msgstr "" #: flatcamGUI/ObjectUI.py:1472 msgid "Update Plot" -msgstr "Обновить чертёж" +msgstr "Обновить участок" #: flatcamGUI/ObjectUI.py:1474 msgid "Update the plot." -msgstr "Обновление чертёжа." +msgstr "Обновление участка." #: flatcamGUI/ObjectUI.py:1481 msgid "Export CNC Code:" @@ -9064,22 +9324,22 @@ msgstr "" msgid "Stop" msgstr "Конечн." -#: flatcamTools/ToolMeasurement.py:55 -msgid "Dx:" -msgstr "Дистанция по X:" - -#: flatcamTools/ToolMeasurement.py:58 -msgid "Dy:" -msgstr "Дистанция по Y:" - #: flatcamTools/ToolMeasurement.py:53 flatcamTools/ToolMeasurement.py:70 msgid "This is the measuring Stop point coordinates." msgstr "" +#: flatcamTools/ToolMeasurement.py:55 +msgid "Dx:" +msgstr "Дистанция по X:" + #: flatcamTools/ToolMeasurement.py:56 flatcamTools/ToolMeasurement.py:74 msgid "This is the distance measured over the X axis." msgstr "" +#: flatcamTools/ToolMeasurement.py:58 +msgid "Dy:" +msgstr "Дистанция по Y:" + #: flatcamTools/ToolMeasurement.py:59 flatcamTools/ToolMeasurement.py:79 msgid "This is the distance measured over the Y axis." msgstr "" @@ -9593,7 +9853,7 @@ msgstr "" #: flatcamTools/ToolPanelize.py:370 #, python-format msgid "[WARNING_NOTCL]No object Box. Using instead %s" -msgstr "" +msgstr "[WARNING_NOTCL]Нет объекта Box. Используйте взамен %s" #: flatcamTools/ToolPanelize.py:453 msgid "" diff --git a/locale_template/strings.pot b/locale_template/strings.pot index cfb7147a..a0af088c 100644 --- a/locale_template/strings.pot +++ b/locale_template/strings.pot @@ -27,6 +27,10 @@ msgstr "" msgid "[ERROR] Could not find the Language files. The App strings are missing." msgstr "" +#: FlatCAMApp.py:1836 +msgid "(Type help to get started)\n\n" +msgstr "" + #: FlatCAMApp.py:2018 ObjectCollection.py:80 flatcamTools/ToolImage.py:213 #: flatcamTools/ToolPcbWizard.py:299 flatcamTools/ToolPcbWizard.py:322 msgid "Open cancelled." From ef2a36cac4beea9253127f35cee3a2f1b4f3da8d Mon Sep 17 00:00:00 2001 From: camellan Date: Sun, 23 Jun 2019 21:05:38 +0400 Subject: [PATCH 2/5] Up version. Update ru translate. --- FlatCAMApp.py | 191 +++- FlatCAMObj.py | 155 ++- ObjectCollection.py | 8 +- README.md | 48 + camlib.py | 23 +- flatcamEditors/FlatCAMExcEditor.py | 6 +- flatcamEditors/FlatCAMGeoEditor.py | 7 +- flatcamEditors/FlatCAMGrbEditor.py | 147 +-- flatcamGUI/FlatCAMGUI.py | 77 +- flatcamGUI/GUIElements.py | 46 +- flatcamParsers/ParseDXF.py | 6 +- flatcamTools/ToolNonCopperClear.py | 8 +- flatcamTools/ToolPaint.py | 20 +- flatcamTools/ToolSolderPaste.py | 4 +- locale/ru/LC_MESSAGES/strings.po | 1635 ++++++++++++++-------------- locale_template/strings.pot | 1582 +++++++++++++-------------- 16 files changed, 2113 insertions(+), 1850 deletions(-) diff --git a/FlatCAMApp.py b/FlatCAMApp.py index dd5773fe..fe43e101 100644 --- a/FlatCAMApp.py +++ b/FlatCAMApp.py @@ -94,8 +94,8 @@ class App(QtCore.QObject): log.addHandler(handler) # Version - version = 8.918 - version_date = "2019/06/11" + version = 8.919 + version_date = "2019/06/23" beta = True # current date now @@ -780,7 +780,7 @@ class App(QtCore.QObject): # Geometry General "geometry_plot": True, "geometry_circle_steps": 128, - "geometry_cnctooldia": 0.016, + "geometry_cnctooldia": "0.016", # Geometry Options "geometry_cutz": -0.002, @@ -2059,9 +2059,9 @@ class App(QtCore.QObject): except Exception as e: log.debug("App.defaults_read_form() --> %s" % str(e)) - def defaults_write_form(self, factor=None): + def defaults_write_form(self, factor=None, fl_units=None): for option in self.defaults: - self.defaults_write_form_field(option, factor=factor) + self.defaults_write_form_field(option, factor=factor, units=fl_units) # try: # self.defaults_form_fields[option].set_value(self.defaults[option]) # except KeyError: @@ -2069,12 +2069,22 @@ class App(QtCore.QObject): # # TODO: Rethink this? # pass - def defaults_write_form_field(self, field, factor=None): + def defaults_write_form_field(self, field, factor=None, units=None): try: if factor is None: - self.defaults_form_fields[field].set_value(self.defaults[field]) + if units is None: + self.defaults_form_fields[field].set_value(self.defaults[field]) + elif units == 'IN' and (field == 'global_gridx' or field == 'global_gridy'): + self.defaults_form_fields[field].set_value(self.defaults[field], decimals=6) + elif units == 'MM' and (field == 'global_gridx' or field == 'global_gridy'): + self.defaults_form_fields[field].set_value(self.defaults[field], decimals=4) else: - self.defaults_form_fields[field].set_value(self.defaults[field] * factor) + if units is None: + self.defaults_form_fields[field].set_value(self.defaults[field] * factor) + elif units == 'IN' and (field == 'global_gridx' or field == 'global_gridy'): + self.defaults_form_fields[field].set_value((self.defaults[field] * factor), decimals=6) + elif units == 'MM' and (field == 'global_gridx' or field == 'global_gridy'): + self.defaults_form_fields[field].set_value((self.defaults[field] * factor), decimals=4) except KeyError: # self.log.debug("defaults_write_form(): No field for: %s" % option) # TODO: Rethink this? @@ -2108,11 +2118,10 @@ class App(QtCore.QObject): self.paste_tool.install(icon=QtGui.QIcon('share/solderpastebis32.png')) self.calculator_tool = ToolCalculator(self) - self.calculator_tool.install(icon=QtGui.QIcon('share/calculator24.png')) + self.calculator_tool.install(icon=QtGui.QIcon('share/calculator24.png'), separator=True) self.sub_tool = ToolSub(self) - self.sub_tool.install(icon=QtGui.QIcon('share/sub32.png'), pos=self.ui.menuedit_convert, - before=self.ui.menuedit_convert_sg2mg) + self.sub_tool.install(icon=QtGui.QIcon('share/sub32.png'), pos=self.ui.menutool, separator=True) self.move_tool = ToolMove(self) self.move_tool.install(icon=QtGui.QIcon('share/move16.png'), pos=self.ui.menuedit, @@ -2245,7 +2254,18 @@ class App(QtCore.QObject): self.inform.emit(_("[WARNING_NOTCL] Simultanoeus editing of tools geometry in a MultiGeo Geometry " "is not possible.\n" "Edit only one geometry at a time.")) - self.geo_editor.edit_fcgeometry(edited_object, multigeo_tool=edited_tools[0]) + + # determine the tool dia of the selected tool + selected_tooldia = float(edited_object.ui.geo_tools_table.item((edited_tools[0] - 1), 1).text()) + + # now find the key in the edited_object.tools that has this tooldia + multi_tool = 1 + for tool in edited_object.tools: + if edited_object.tools[tool]['tooldia'] == selected_tooldia: + multi_tool = tool + break + + self.geo_editor.edit_fcgeometry(edited_object, multigeo_tool=multi_tool) else: self.geo_editor.edit_fcgeometry(edited_object) @@ -3618,9 +3638,10 @@ class App(QtCore.QObject): if self.toggle_units_ignore: return + new_units = self.ui.general_defaults_form.general_app_group.units_radio.get_value().upper() + # If option is the same, then ignore - if self.ui.general_defaults_form.general_app_group.units_radio.get_value().upper() == \ - self.defaults["units"].upper(): + if new_units == self.defaults["units"].upper(): self.log.debug("on_toggle_units(): Same as defaults, so ignoring.") return @@ -3667,21 +3688,60 @@ class App(QtCore.QObject): coords_xy[0] *= sfactor coords_xy[1] *= sfactor self.options['geometry_toolchangexy'] = "%f, %f" % (coords_xy[0], coords_xy[1]) + elif dim == 'geometry_cnctooldia': + tools_diameters = [] + try: + tools_string = self.defaults["geometry_cnctooldia"].split(",") + tools_diameters = [eval(a) for a in tools_string if a != ''] + except Exception as e: + log.debug("App.on_toggle_units().scale_options() --> %s" % str(e)) + + self.options['geometry_cnctooldia'] = '' + for t in range(len(tools_diameters)): + tools_diameters[t] *= sfactor + self.options['geometry_cnctooldia'] += "%f," % tools_diameters[t] elif dim == 'tools_ncctools': - ncctols = [float(eval(a)) for a in self.defaults["tools_ncctools"].split(",")] - ncctols[0] *= sfactor - ncctols[1] *= sfactor - self.options['tools_ncctools'] = "%f, %f" % (ncctols[0], ncctols[1]) + ncctools = [] + try: + tools_string = self.defaults["tools_ncctools"].split(",") + ncctools = [eval(a) for a in tools_string if a != ''] + except Exception as e: + log.debug("App.on_toggle_units().scale_options() --> %s" % str(e)) + + self.options['tools_ncctools'] = '' + for t in range(len(ncctools)): + ncctools[t] *= sfactor + self.options['tools_ncctools'] += "%f," % ncctools[t] elif dim == 'tools_solderpaste_tools': - sp_tools = [float(eval(a)) for a in self.defaults["tools_solderpaste_tools"].split(",")] - sp_tools[0] *= sfactor - sp_tools[1] *= sfactor - self.options['tools_solderpaste_tools'] = "%f, %f" % (sp_tools[0], sp_tools[1]) + sptools = [] + try: + tools_string = self.defaults["tools_solderpaste_tools"].split(",") + sptools = [eval(a) for a in tools_string if a != ''] + except Exception as e: + log.debug("App.on_toggle_units().scale_options() --> %s" % str(e)) + + self.options['tools_solderpaste_tools'] = "" + for t in range(len(sptools)): + sptools[t] *= sfactor + self.options['tools_solderpaste_tools'] += "%f," % sptools[t] elif dim == 'tools_solderpaste_xy_toolchange': sp_coords = [float(eval(a)) for a in self.defaults["tools_solderpaste_xy_toolchange"].split(",")] sp_coords[0] *= sfactor sp_coords[1] *= sfactor self.options['tools_solderpaste_xy_toolchange'] = "%f, %f" % (sp_coords[0], sp_coords[1]) + elif dim == 'global_gridx' or dim == 'global_gridy': + if new_units == 'IN': + try: + val = float(self.defaults[dim]) * sfactor + self.options[dim] = float('%.6f' % val) + except Exception as e: + log.debug('App.on_toggle_units().scale_defaults() --> %s' % str(e)) + else: + try: + val = float(self.defaults[dim]) * sfactor + self.options[dim] = float('%.4f' % val) + except Exception as e: + log.debug('App.on_toggle_units().scale_defaults() --> %s' % str(e)) else: try: self.options[dim] = float(self.options[dim]) * sfactor @@ -3700,21 +3760,60 @@ class App(QtCore.QObject): coords_xy[0] *= sfactor coords_xy[1] *= sfactor self.defaults['geometry_toolchangexy'] = "%.4f, %.4f" % (coords_xy[0], coords_xy[1]) + elif dim == 'geometry_cnctooldia': + tools_diameters = [] + try: + tools_string = self.defaults["geometry_cnctooldia"].split(",") + tools_diameters = [eval(a) for a in tools_string if a != ''] + except Exception as e: + log.debug("App.on_toggle_units().scale_options() --> %s" % str(e)) + + self.defaults['geometry_cnctooldia'] = '' + for t in range(len(tools_diameters)): + tools_diameters[t] *= sfactor + self.defaults['geometry_cnctooldia'] += "%.4f," % tools_diameters[t] elif dim == 'tools_ncctools': - ncctols = [float(eval(a)) for a in self.defaults["tools_ncctools"].split(",")] - ncctols[0] *= sfactor - ncctols[1] *= sfactor - self.defaults['tools_ncctools'] = "%.4f, %.4f" % (ncctols[0], ncctols[1]) + ncctools = [] + try: + tools_string = self.defaults["tools_ncctools"].split(",") + ncctools = [eval(a) for a in tools_string if a != ''] + except Exception as e: + log.debug("App.on_toggle_units().scale_options() --> %s" % str(e)) + + self.defaults['tools_ncctools'] = '' + for t in range(len(ncctools)): + ncctools[t] *= sfactor + self.defaults['tools_ncctools'] += "%.4f," % ncctools[t] elif dim == 'tools_solderpaste_tools': - sp_tools = [float(eval(a)) for a in self.defaults["tools_solderpaste_tools"].split(",")] - sp_tools[0] *= sfactor - sp_tools[1] *= sfactor - self.defaults['tools_solderpaste_tools'] = "%.4f, %.4f" % (sp_tools[0], sp_tools[1]) + sptools = [] + try: + tools_string = self.defaults["tools_solderpaste_tools"].split(",") + sptools = [eval(a) for a in tools_string if a != ''] + except Exception as e: + log.debug("App.on_toggle_units().scale_options() --> %s" % str(e)) + + self.defaults['tools_solderpaste_tools'] = "" + for t in range(len(sptools)): + sptools[t] *= sfactor + self.defaults['tools_solderpaste_tools'] += "%.4f," % sptools[t] elif dim == 'tools_solderpaste_xy_toolchange': sp_coords = [float(eval(a)) for a in self.defaults["tools_solderpaste_xy_toolchange"].split(",")] sp_coords[0] *= sfactor sp_coords[1] *= sfactor self.defaults['tools_solderpaste_xy_toolchange'] = "%.4f, %.4f" % (sp_coords[0], sp_coords[1]) + elif dim == 'global_gridx' or dim == 'global_gridy': + if new_units == 'IN': + try: + val = float(self.defaults[dim]) * sfactor + self.defaults[dim] = float('%.6f' % val) + except Exception as e: + log.debug('App.on_toggle_units().scale_defaults() --> %s' % str(e)) + else: + try: + val = float(self.defaults[dim]) * sfactor + self.defaults[dim] = float('%.4f' % val) + except Exception as e: + log.debug('App.on_toggle_units().scale_defaults() --> %s' % str(e)) else: try: self.defaults[dim] = float(self.defaults[dim]) * sfactor @@ -3723,7 +3822,7 @@ class App(QtCore.QObject): # The scaling factor depending on choice of units. factor = 1/25.4 - if self.ui.general_defaults_form.general_app_group.units_radio.get_value().upper() == 'MM': + if new_units == 'MM': factor = 25.4 # Changing project units. Warn user. @@ -3748,7 +3847,7 @@ class App(QtCore.QObject): self.defaults_read_form() scale_defaults(factor) - self.defaults_write_form() + self.defaults_write_form(fl_units=new_units) self.should_we_save = True @@ -3757,12 +3856,15 @@ class App(QtCore.QObject): self.plotcanvas.draw_workspace() # adjust the grid values on the main toolbar - self.ui.grid_gap_x_entry.set_value(float(self.ui.grid_gap_x_entry.get_value()) * factor) - self.ui.grid_gap_y_entry.set_value(float(self.ui.grid_gap_y_entry.get_value()) * factor) + dec = 6 if new_units == 'IN'else 4 + val_x = float(self.ui.grid_gap_x_entry.get_value()) * factor + self.ui.grid_gap_x_entry.set_value(val_x, decimals=dec) + if not self.ui.grid_gap_link_cb.isChecked(): + val_y = float(self.ui.grid_gap_y_entry.get_value()) * factor + self.ui.grid_gap_y_entry.set_value(val_y, decimals=dec) - units = self.ui.general_defaults_form.general_app_group.units_radio.get_value().upper() for obj in self.collection.get_list(): - obj.convert_units(units) + obj.convert_units(new_units) # make that the properties stored in the object are also updated self.object_changed.emit(obj) @@ -3775,9 +3877,9 @@ class App(QtCore.QObject): current.to_form() self.plot_all() - self.inform.emit(_("[success] Converted units to %s") % units) + self.inform.emit(_("[success] Converted units to %s") % new_units) # self.ui.units_label.setText("[" + self.options["units"] + "]") - self.set_screen_units(units) + self.set_screen_units(new_units) else: # Undo toggling self.toggle_units_ignore = True @@ -5249,6 +5351,7 @@ class App(QtCore.QObject): if index.isValid(): if index.internalPointer().parent_item != self.collection.root_item: self.ui.notebook.setCurrentWidget(self.ui.selected_tab) + self.collection.on_item_activated(index) def grid_status(self): if self.ui.grid_snap_btn.isChecked(): @@ -5423,6 +5526,7 @@ class App(QtCore.QObject): self.click_noproject = True self.clipboard.setText(self.defaults["global_point_clipboard_format"] % (self.pos[0], self.pos[1])) + self.inform.emit(_("[success] Coordinates copied to clipboard.")) return self.on_mouse_move_over_plot(event, origin_click=True) @@ -5579,6 +5683,10 @@ class App(QtCore.QObject): if self.command_active is None: self.select_objects(key='CTRL') self.delete_hover_shape() + elif modifiers == QtCore.Qt.ShiftModifier: + # if SHIFT was pressed and LMB is clicked then we have a coordinates copy to clipboard + # therefore things should stay as they are + pass else: # If there is no active command (self.command_active is None) then we check if we clicked # on a object by checking the bounding limits against mouse click position @@ -8044,7 +8152,7 @@ class App(QtCore.QObject): This behavior works only within main thread, errors with promissed tasks can be catched and detected only with log. - TODO: this problem have to be addressed somehow, maybe rewrite promissing to be blocking somehow for + TODO: this problem have to be addressed somehow, maybe rewrite promissing to be blocking somehow for TCL shell. Kamil's comment: I will rewrite existing TCL commands from time to time to follow this rules. @@ -8252,7 +8360,10 @@ The normal flow when working in FlatCAM is the following:

""" FlatCAMObj.app = self ObjectCollection.app = self - + Gerber.app = self + Excellon.app = self + Geometry.app = self + CNCjob.app = self FCProcess.app = self FCProcessContainer.app = self diff --git a/FlatCAMObj.py b/FlatCAMObj.py index 4b3a278e..ba8e7600 100644 --- a/FlatCAMObj.py +++ b/FlatCAMObj.py @@ -68,6 +68,9 @@ class FlatCAMObj(QtCore.QObject): self.form_fields = {} + # store here the default data for Geometry Data + self.default_data = {} + self.kind = None # Override with proper name # self.shapes = ShapeCollection(parent=self.app.plotcanvas.vispy_canvas.view.scene) @@ -137,7 +140,7 @@ class FlatCAMObj(QtCore.QObject): if key == 'plot': self.visible = self.options['plot'] - # self.optionChanged.emit(key) + self.optionChanged.emit(key) def set_ui(self, ui): self.ui = ui @@ -199,6 +202,8 @@ class FlatCAMObj(QtCore.QObject): log.debug("on_name_activate() --> Could not remove the old object name from auto-completer model list") self.options["name"] = self.ui.name_entry.get_value() + self.default_data["name"] = self.ui.name_entry.get_value() + self.app.collection.update_view() self.app.inform.emit(_("[success] Name changed from {old} to {new}").format(old=old_name, new=new_name)) def on_offset_button_click(self): @@ -338,7 +343,7 @@ class FlatCAMObj(QtCore.QObject): return self.shapes.visible @visible.setter - def visible(self, value): + def visible(self, value, threaded=False): log.debug("FlatCAMObj.visible()") def worker_task(app_obj): @@ -350,7 +355,10 @@ class FlatCAMObj(QtCore.QObject): except Exception as e: pass - self.app.worker_task.emit({'fcn': worker_task, 'params': [self]}) + if threaded is False: + worker_task(self) + else: + self.app.worker_task.emit({'fcn': worker_task, 'params': [self]}) @property def drawing_tolerance(self): @@ -810,7 +818,7 @@ class FlatCAMGerber(FlatCAMObj, Gerber): def follow_init(follow_obj, app): # Propagate options - follow_obj.options["cnctooldia"] = float(self.options["isotooldia"]) + follow_obj.options["cnctooldia"] = str(self.options["isotooldia"]) follow_obj.solid_geometry = self.follow_geometry # TODO: Do something if this is None. Offer changing name? @@ -832,7 +840,6 @@ class FlatCAMGerber(FlatCAMObj, Gerber): :return: None """ - if dia is None: dia = float(self.options["isotooldia"]) if passes is None: @@ -893,7 +900,7 @@ class FlatCAMGerber(FlatCAMObj, Gerber): # TODO: This is ugly. Create way to pass data into init function. def iso_init(geo_obj, app_obj): # Propagate options - geo_obj.options["cnctooldia"] = float(self.options["isotooldia"]) + geo_obj.options["cnctooldia"] = str(self.options["isotooldia"]) geo_obj.solid_geometry = [] for i in range(passes): iso_offset = (((2 * i + 1) / 2.0) * dia) - (i * overlap * dia) @@ -950,7 +957,7 @@ class FlatCAMGerber(FlatCAMObj, Gerber): # TODO: This is ugly. Create way to pass data into init function. def iso_init(geo_obj, app_obj): # Propagate options - geo_obj.options["cnctooldia"] = float(self.options["isotooldia"]) + geo_obj.options["cnctooldia"] = str(self.options["isotooldia"]) # if milling type is climb then the move is counter-clockwise around features if milling_type == 'cl': @@ -1638,7 +1645,7 @@ class FlatCAMExcellon(FlatCAMObj, Excellon): exc.app.log.warning("Failed to copy option.", option) for drill in exc.drills: - exc_tool_dia = float('%.3f' % exc.tools[drill['tool']]['C']) + exc_tool_dia = float('%.4f' % exc.tools[drill['tool']]['C']) if exc_tool_dia not in custom_dict_drills: custom_dict_drills[exc_tool_dia] = [drill['point']] @@ -1646,7 +1653,7 @@ class FlatCAMExcellon(FlatCAMObj, Excellon): custom_dict_drills[exc_tool_dia].append(drill['point']) for slot in exc.slots: - exc_tool_dia = float('%.3f' % exc.tools[slot['tool']]['C']) + exc_tool_dia = float('%.4f' % exc.tools[slot['tool']]['C']) if exc_tool_dia not in custom_dict_slots: custom_dict_slots[exc_tool_dia] = [[slot['start'], slot['stop']]] @@ -1739,7 +1746,7 @@ class FlatCAMExcellon(FlatCAMObj, Excellon): temp_tools[tool_name_temp] = spec_temp for drill in exc_final.drills: - exc_tool_dia = float('%.3f' % exc_final.tools[drill['tool']]['C']) + exc_tool_dia = float('%.4f' % exc_final.tools[drill['tool']]['C']) if exc_tool_dia == ordered_dia: temp_drills.append( { @@ -1749,7 +1756,7 @@ class FlatCAMExcellon(FlatCAMObj, Excellon): ) for slot in exc_final.slots: - slot_tool_dia = float('%.3f' % exc_final.tools[slot['tool']]['C']) + slot_tool_dia = float('%.4f' % exc_final.tools[slot['tool']]['C']) if slot_tool_dia == ordered_dia: temp_slots.append( { @@ -1825,7 +1832,7 @@ class FlatCAMExcellon(FlatCAMObj, Excellon): if self.units == 'MM': dia = QtWidgets.QTableWidgetItem('%.2f' % (self.tools[tool_no]['C'])) else: - dia = QtWidgets.QTableWidgetItem('%.3f' % (self.tools[tool_no]['C'])) + dia = QtWidgets.QTableWidgetItem('%.4f' % (self.tools[tool_no]['C'])) dia.setFlags(QtCore.Qt.ItemIsEnabled) @@ -1843,7 +1850,7 @@ class FlatCAMExcellon(FlatCAMObj, Excellon): if self.units == 'MM': t_offset = self.tool_offset[float('%.2f' % float(self.tools[tool_no]['C']))] else: - t_offset = self.tool_offset[float('%.3f' % float(self.tools[tool_no]['C']))] + t_offset = self.tool_offset[float('%.4f' % float(self.tools[tool_no]['C']))] except KeyError: t_offset = self.app.defaults['excellon_offset'] tool_offset_item = QtWidgets.QTableWidgetItem('%s' % str(t_offset)) @@ -1934,10 +1941,6 @@ class FlatCAMExcellon(FlatCAMObj, Excellon): self.ui.tools_table.setColumnWidth(5, 17) # horizontal_header.setStretchLastSection(True) - - - - # horizontal_header.setColumnWidth(2, QtWidgets.QHeaderView.ResizeToContents) # horizontal_header.setStretchLastSection(True) @@ -2022,7 +2025,7 @@ class FlatCAMExcellon(FlatCAMObj, Excellon): if self.units == 'MM': dia = float('%.2f' % float(value['C'])) else: - dia = float('%.3f' % float(value['C'])) + dia = float('%.4f' % float(value['C'])) self.tool_offset[dia] = t_default_offset # Show/Hide Advanced Options @@ -2086,7 +2089,7 @@ class FlatCAMExcellon(FlatCAMObj, Excellon): if self.units == 'MM': dia = float('%.2f' % float(self.ui.tools_table.item(row_of_item_changed, 1).text())) else: - dia = float('%.3f' % float(self.ui.tools_table.item(row_of_item_changed, 1).text())) + dia = float('%.4f' % float(self.ui.tools_table.item(row_of_item_changed, 1).text())) current_table_offset_edited = None if self.ui.tools_table.currentItem() is not None: @@ -2349,6 +2352,7 @@ class FlatCAMExcellon(FlatCAMObj, Excellon): geo_obj.options['Tools_in_use'] = tool_table_items geo_obj.options['type'] = 'Excellon Geometry' + geo_obj.options["cnctooldia"] = str(tooldia) geo_obj.solid_geometry = [] @@ -2443,6 +2447,7 @@ class FlatCAMExcellon(FlatCAMObj, Excellon): geo_obj.options['Tools_in_use'] = tool_table_items geo_obj.options['type'] = 'Excellon Geometry' + geo_obj.options["cnctooldia"] = str(tooldia) geo_obj.solid_geometry = [] @@ -2953,6 +2958,14 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): if "cnctooldia" not in self.options: self.options["cnctooldia"] = self.app.defaults["geometry_cnctooldia"] + # try: + # self.options["cnctooldia"] = [ + # float(eval(dia)) for dia in str(self.app.defaults["geometry_cnctooldia"]).split(",") + # ] + # except Exception as e: + # log.error("At least one tool diameter needed. Verify in Edit -> Preferences -> Geometry General -> " + # "Tool dia. %s" % str(e)) + # return self.options["startz"] = self.app.defaults["geometry_startz"] @@ -2998,9 +3011,6 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): self.old_pp_state = '' self.old_toolchangeg_state = '' - # store here the default data for Geometry Data - self.default_data = {} - # Attributes to be included in serialization # Always append to it because it carries contents # from predecessors. @@ -3009,7 +3019,6 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): def build_ui(self): self.ui_disconnect() - FlatCAMObj.build_ui(self) offset = 0 @@ -3147,6 +3156,10 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): self.set_tool_offset_visibility(selected_row) self.ui_connect() + # HACK: for whatever reasons the name in Selected tab is reverted to the original one after a successful rename + # done in the collection view but only for Geometry objects. Perhaps some references remains. Should be fixed. + self.ui.name_entry.set_value(self.options['name']) + def set_ui(self, ui): FlatCAMObj.set_ui(self, ui) @@ -3221,21 +3234,33 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): for def_key in self.default_data: for opt_key, opt_val in self.options.items(): if def_key == opt_key: - self.default_data[def_key] = opt_val + self.default_data[def_key] = deepcopy(opt_val) + + try: + tools_list = [ + float(eval(dia)) for dia in self.options["cnctooldia"].split(",") + ] + except Exception as e: + log.error("At least one tool diameter needed. Verify in Edit -> Preferences -> Geometry General -> " + "Tool dia. %s" % str(e)) + return self.tooluid += 1 + if not self.tools: - self.tools.update({ - self.tooluid: { - 'tooldia': float(self.options["cnctooldia"]), - 'offset': ('Path'), - 'offset_value': 0.0, - 'type': _('Rough'), - 'tool_type': 'C1', - 'data': self.default_data, - 'solid_geometry': self.solid_geometry - } - }) + for toold in tools_list: + self.tools.update({ + self.tooluid: { + 'tooldia': float(toold), + 'offset': ('Path'), + 'offset_value': 0.0, + 'type': _('Rough'), + 'tool_type': 'C1', + 'data': self.default_data, + 'solid_geometry': self.solid_geometry + } + }) + self.tooluid += 1 else: # if self.tools is not empty then it can safely be assumed that it comes from an opened project. # Because of the serialization the self.tools list on project save, the dict keys (members of self.tools @@ -3321,10 +3346,11 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): return def on_offset_value_edited(self): - ''' - This will save the offset_value into self.tools storage whenever the oofset value is edited + """ + This will save the offset_value into self.tools storage whenever the offset value is edited :return: - ''' + """ + for current_row in self.ui.geo_tools_table.selectedItems(): # sometime the header get selected and it has row number -1 # we don't want to do anything with the header :) @@ -3367,7 +3393,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): # works for Entry try: self.ui.grid3.itemAt(i).widget().editingFinished.connect(self.gui_form_to_storage) - except: + except Exception as e3: pass for row in range(self.ui.geo_tools_table.rowCount()): @@ -3405,56 +3431,56 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): isinstance(self.ui.grid3.itemAt(i).widget(), IntEntry) or \ isinstance(self.ui.grid3.itemAt(i).widget(), FCEntry): self.ui.grid3.itemAt(i).widget().editingFinished.disconnect() - except: + except Exception as e: pass try: for row in range(self.ui.geo_tools_table.rowCount()): for col in [2, 3, 4]: self.ui.geo_tools_table.cellWidget(row, col).currentIndexChanged.disconnect() - except: + except Exception as e: pass # I use lambda's because the connected functions have parameters that could be used in certain scenarios try: self.ui.addtool_btn.clicked.disconnect() - except: + except Exception as e: pass try: self.ui.copytool_btn.clicked.disconnect() - except: + except Exception as e: pass try: self.ui.deltool_btn.clicked.disconnect() - except: + except Exception as e: pass try: self.ui.geo_tools_table.currentItemChanged.disconnect() - except: + except Exception as e: pass try: self.ui.geo_tools_table.itemChanged.disconnect() - except: + except Exception as e: pass try: self.ui.tool_offset_entry.editingFinished.disconnect() - except: + except Exception as e: pass for row in range(self.ui.geo_tools_table.rowCount()): try: self.ui.geo_tools_table.cellWidget(row, 6).clicked.disconnect() - except: + except Exception as e: pass try: self.ui.plot_cb.stateChanged.disconnect() - except: + except Exception as e: pass def on_tool_add(self, dia=None): @@ -3475,7 +3501,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): tooldia = float(self.ui.addtool_entry.get_value().replace(',', '.')) except ValueError: change_message = True - tooldia = float(self.app.defaults["geometry_cnctooldia"]) + tooldia = self.options["cnctooldia"][0] if tooldia is None: self.build_ui() @@ -3541,6 +3567,8 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): } }) + self.tools[self.tooluid]['data']['name'] = self.options['name'] + self.ui.tool_offset_entry.hide() self.ui.tool_offset_lbl.hide() @@ -3772,7 +3800,11 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): # populate the form with the data from the tool associated with the row parameter try: - tooluid = int(self.ui.geo_tools_table.item(current_row, 5).text()) + item = self.ui.geo_tools_table.item(current_row, 5) + if item is not None: + tooluid = int(item.text()) + else: + return except Exception as e: log.debug("Tool missing. Add a tool in Geo Tool Table. %s" % str(e)) return @@ -3780,8 +3812,12 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): # update the form with the V-Shape fields if V-Shape selected in the geo_tool_table # also modify the Cut Z form entry to reflect the calculated Cut Z from values got from V-Shape Fields try: - tool_type_txt = self.ui.geo_tools_table.cellWidget(current_row, 4).currentText() - self.ui_update_v_shape(tool_type_txt=tool_type_txt) + item = self.ui.geo_tools_table.cellWidget(current_row, 4) + if item is not None: + tool_type_txt = item.currentText() + self.ui_update_v_shape(tool_type_txt=tool_type_txt) + else: + return except Exception as e: log.debug("Tool missing. Add a tool in Geo Tool Table. %s" % str(e)) return @@ -4137,7 +4173,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): self.ui.cncfeedrate_rapid_entry.hide() def on_generatecnc_button_click(self, *args): - + log.debug("Generating CNCJob from Geometry ...") self.app.report_usage("geometry_on_generatecnc_button") self.read_form() @@ -5291,6 +5327,7 @@ class FlatCAMCNCjob(FlatCAMObj, CNCjob): else: self.ui.cnc_tools_table.hide() + self.units = self.app.ui.general_defaults_form.general_app_group.units_radio.get_value().upper() offset = 0 tool_idx = 0 @@ -5891,13 +5928,19 @@ class FlatCAMCNCjob(FlatCAMObj, CNCjob): self.shapes.clear(update=True) self.annotation.clear(update=True) + if self.ui.annotation_cb.get_value() and self.ui.plot_cb.get_value(): + self.app.plotcanvas.text_collection.enabled = True + else: + self.app.plotcanvas.text_collection.enabled = False + def on_annotation_change(self): if self.ui.annotation_cb.get_value(): self.app.plotcanvas.text_collection.enabled = True else: self.app.plotcanvas.text_collection.enabled = False - kind = self.ui.cncplot_method_combo.get_value() - self.plot(kind=kind) + # kind = self.ui.cncplot_method_combo.get_value() + # self.plot(kind=kind) + self.annotation.redraw() def convert_units(self, units): factor = CNCjob.convert_units(self, units) diff --git a/ObjectCollection.py b/ObjectCollection.py index 9e23279d..fddc19a4 100644 --- a/ObjectCollection.py +++ b/ObjectCollection.py @@ -263,10 +263,9 @@ class ObjectCollection(QtCore.QAbstractItemModel): # ## GUI Events self.view.selectionModel().selectionChanged.connect(self.on_list_selection_change) - self.view.activated.connect(self.on_item_activated) - # self.view.keyPressed.connect(self.on_key) + # self.view.activated.connect(self.on_item_activated) self.view.keyPressed.connect(self.app.ui.keyPressEvent) - self.view.clicked.connect(self.on_mouse_down) + # self.view.clicked.connect(self.on_mouse_down) self.view.customContextMenuRequested.connect(self.on_menu_request) self.click_modifier = None @@ -398,8 +397,9 @@ class ObjectCollection(QtCore.QAbstractItemModel): def setData(self, index, data, role=None): if index.isValid(): obj = index.internalPointer().obj + if obj: - old_name = obj.options['name'] + old_name = deepcopy(obj.options['name']) new_name = str(data) if old_name != new_name and new_name != '': # rename the object diff --git a/README.md b/README.md index 2d4940f3..f5e299c7 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,54 @@ CAD program, and create G-Code for Isolation routing. ================================================= +23.06.2019 + +- fixes issues with units conversion when the tool diameters are a list of comma separated values (NCC Tool, SolderPaste Tool and Geometry Object) +- fixed a "typo" kind of bug in SolderPaste Tool +- RELEASE 8.919 + +22.06.2019 + +- some GUI layout optimizations in Edit -> Preferences +- added the possibility for multiple tool diameters in the Edit -> Preferences -> Geometry -> Geometry General -> Tool dia separated by comma +- fixed scaling for the multiple tool diameters in Edit -> Preferences -> Geometry -> Geometry General -> Tool dia, for NCC tools more than 2 and for Solderpaste nozzles more than 2 +- fixed bug in CNCJob where the CNC Tools table will show always only 2 decimals for Tool diameters regardless of the current measuring units +- made the tools diameters decimals in case of INCH FlatCAM units to be 4 instead of 3 +- fixed bug in updating Grid values whenever toggling the FlatCAM units and the X, Y Grid values are linked, bugs which caused the Y value to be scaled incorrectly +- set the decimals for Grid values to be set to 6 if the units of FlatCAM is INCH and to set to 4 if FlatCAM units are METRIC +- updated translations +- updated the Russian translation from 51% complete to 69% complete using the Yandex translation engine +- fixed recently introduced bug in milling drills/slots functions +- moved Substract Tool from Menu -> Edit -> Conversions to Menu -> Tool +- fixed bug in Gerber isolation (Geometry expects now a value in string format and not float) +- fixed bug in Paint tool: now it is possible to paint geometry generated by External Isolation (or Internal isolation) +- fixed bug in editing a multigeo Geometry object if previously a tool was deleted +- optimized the toggle of annotations; now there is no need to replot the entire CNCJob object too on toggling of the annotations +- on toggling off the plot visibility the annotations are turned off too +- updated translations; Russian translation at 76% (using Yandex translator engine - needs verification by a native speaker of Russian) + +20.06.2019 + +- fixed Scale and Buffer Tool in Gerber Editor +- fixed Editor Transform Tool in Gerber Editor +- added a message in the status bar when copying coordinates to clipboard with SHIFT + LMB click combo +- languages update + +19.06.2019 + +- milling an Excellon file (holes and/or slots) will now transfer the chosen milling bit diameter to the resulting Geometry object + +17.06.2019 + +- fixed bug where for Geometry objects after a successful object rename done in the Object collection view (Project tab), deselect the object and reselect it and then in the Selected tab the name is not the new one but the old one +- for Geometry objects, adding a new tool to the Tools table after a successful rename will now store the new name in the tool data + +15.06.2019 + +- fixed bug in Gerber parser that made the Gerber files generated by Altium Designer 18 not to be loaded +- fixed bug in Gerber editor - on multiple edits on the same object, the aperture size and dims were continuously multiplied due of the file units not being updated +- restored the FlatCAMObj.visible() to a non-threaded default + 11.06.2019 - fixed the Edit -> Conversion -> Join ... functions (merge() functions) diff --git a/camlib.py b/camlib.py index 33c80b7d..47d787e7 100644 --- a/camlib.py +++ b/camlib.py @@ -112,9 +112,9 @@ class Geometry(object): self.geo_steps_per_circle = geo_steps_per_circle - if geo_steps_per_circle is None: - geo_steps_per_circle = int(Geometry.defaults["geo_steps_per_circle"]) - self.geo_steps_per_circle = geo_steps_per_circle + # if geo_steps_per_circle is None: + # geo_steps_per_circle = int(Geometry.defaults["geo_steps_per_circle"]) + # self.geo_steps_per_circle = geo_steps_per_circle def make_index(self): self.flatten() @@ -1849,6 +1849,8 @@ class ApertureMacro: class Gerber (Geometry): """ + Here it is done all the Gerber parsing. + **ATTRIBUTES** * ``apertures`` (dict): The keys are names/identifiers of each aperture. @@ -2452,7 +2454,6 @@ class Gerber (Geometry): # --- Buffered --- try: log.debug("Bare op-code %d." % current_operation_code) - geo_dict = dict() flash = self.create_flash_geometry( Point(current_x, current_y), self.apertures[current_aperture], @@ -2467,7 +2468,7 @@ class Gerber (Geometry): else: geo_dict['solid'] = flash - if last_path_aperture not in self.apertures: + if current_aperture not in self.apertures: self.apertures[current_aperture] = dict() if 'geometry' not in self.apertures[current_aperture]: self.apertures[current_aperture]['geometry'] = [] @@ -3598,6 +3599,8 @@ class Gerber (Geometry): class Excellon(Geometry): """ + Here it is done all the Excellon parsing. + *ATTRIBUTES* * ``tools`` (dict): The key is the tool name and the value is @@ -5350,7 +5353,7 @@ class CNCjob(Geometry): if self.units == 'MM': current_tooldia = float('%.2f' % float(exobj.tools[tool]["C"])) else: - current_tooldia = float('%.3f' % float(exobj.tools[tool]["C"])) + current_tooldia = float('%.4f' % float(exobj.tools[tool]["C"])) # TODO apply offset only when using the GUI, for TclCommand this will create an error # because the values for Z offset are created in build_ui() @@ -5448,7 +5451,7 @@ class CNCjob(Geometry): if self.units == 'MM': current_tooldia = float('%.2f' % float(exobj.tools[tool]["C"])) else: - current_tooldia = float('%.3f' % float(exobj.tools[tool]["C"])) + current_tooldia = float('%.4f' % float(exobj.tools[tool]["C"])) # TODO apply offset only when using the GUI, for TclCommand this will create an error # because the values for Z offset are created in build_ui() @@ -5504,7 +5507,7 @@ class CNCjob(Geometry): if self.units == 'MM': current_tooldia = float('%.2f' % float(exobj.tools[tool]["C"])) else: - current_tooldia = float('%.3f' % float(exobj.tools[tool]["C"])) + current_tooldia = float('%.4f' % float(exobj.tools[tool]["C"])) # TODO apply offset only when using the GUI, for TclCommand this will create an error # because the values for Z offset are created in build_ui() @@ -6139,7 +6142,7 @@ class CNCjob(Geometry): gcode += self.doformat(p.down_z_start_code) gcode += self.doformat(p.spindle_fwd_code) # Start dispensing gcode += self.doformat(p.dwell_fwd_code) - gcode += self.doformat(p.z_feedrate_dispense_code) + gcode += self.doformat(p.feedrate_z_dispense_code) gcode += self.doformat(p.lift_z_dispense_code) gcode += self.doformat(p.feedrate_xy_code) @@ -6158,7 +6161,7 @@ class CNCjob(Geometry): elif type(geometry) == Point: gcode += self.doformat(p.linear_code, x=path[0][0], y=path[0][1]) # Move to first point - gcode += self.doformat(p.z_feedrate_dispense_code) + gcode += self.doformat(p.feedrate_z_dispense_code) gcode += self.doformat(p.down_z_start_code) gcode += self.doformat(p.spindle_fwd_code) # Start dispensing gcode += self.doformat(p.dwell_fwd_code) diff --git a/flatcamEditors/FlatCAMExcEditor.py b/flatcamEditors/FlatCAMExcEditor.py index d7e56db0..f2cfdab7 100644 --- a/flatcamEditors/FlatCAMExcEditor.py +++ b/flatcamEditors/FlatCAMExcEditor.py @@ -1209,7 +1209,7 @@ class FlatCAMExcEditor(QtCore.QObject): for drill in self.exc_obj.drills: if drill['tool'] in self.exc_obj.tools: if self.units == 'IN': - tool_dia = float('%.3f' % self.exc_obj.tools[drill['tool']]['C']) + tool_dia = float('%.4f' % self.exc_obj.tools[drill['tool']]['C']) else: tool_dia = float('%.2f' % self.exc_obj.tools[drill['tool']]['C']) @@ -1238,7 +1238,7 @@ class FlatCAMExcEditor(QtCore.QObject): # but use the real order found in the exc_obj.tools for k, v in self.exc_obj.tools.items(): if self.units == 'IN': - tool_dia = float('%.3f' % v['C']) + tool_dia = float('%.4f' % v['C']) else: tool_dia = float('%.2f' % v['C']) self.tool2tooldia[int(k)] = tool_dia @@ -1324,7 +1324,7 @@ class FlatCAMExcEditor(QtCore.QObject): if self.units == 'MM': dia = QtWidgets.QTableWidgetItem('%.2f' % self.olddia_newdia[tool_no]) else: - dia = QtWidgets.QTableWidgetItem('%.3f' % self.olddia_newdia[tool_no]) + dia = QtWidgets.QTableWidgetItem('%.4f' % self.olddia_newdia[tool_no]) dia.setFlags(QtCore.Qt.ItemIsEnabled) diff --git a/flatcamEditors/FlatCAMGeoEditor.py b/flatcamEditors/FlatCAMGeoEditor.py index bec802a1..dcbf35c3 100644 --- a/flatcamEditors/FlatCAMGeoEditor.py +++ b/flatcamEditors/FlatCAMGeoEditor.py @@ -3059,8 +3059,11 @@ class FlatCAMGeoEditor(QtCore.QObject): val = float(self.app.ui.grid_gap_x_entry.get_value()) except ValueError: return + + units = self.app.ui.general_defaults_form.general_app_group.units_radio.get_value().upper() + dec = 6 if units == 'IN' else 4 if self.app.ui.grid_gap_link_cb.isChecked(): - self.app.ui.grid_gap_y_entry.set_value(val) + self.app.ui.grid_gap_y_entry.set_value(val, decimals=dec) self.app.ui.grid_gap_x_entry.setValidator(QtGui.QDoubleValidator()) self.app.ui.grid_gap_x_entry.textChanged.connect( @@ -3999,7 +4002,7 @@ class FlatCAMGeoEditor(QtCore.QObject): def update_options(self, obj): if self.paint_tooldia: - obj.options['cnctooldia'] = self.paint_tooldia + obj.options['cnctooldia'] = deepcopy(str(self.paint_tooldia)) self.paint_tooldia = None return True else: diff --git a/flatcamEditors/FlatCAMGrbEditor.py b/flatcamEditors/FlatCAMGrbEditor.py index 53f454e8..43c84084 100644 --- a/flatcamEditors/FlatCAMGrbEditor.py +++ b/flatcamEditors/FlatCAMGrbEditor.py @@ -3445,7 +3445,6 @@ class FlatCAMGrbEditor(QtCore.QObject): file_units = self.gerber_obj.gerber_units if self.gerber_obj.gerber_units else 'IN' app_units = self.app.defaults['units'] - self.conversion_factor = 25.4 if file_units == 'IN' else (1 / 25.4) if file_units != app_units else 1 # Hide original geometry @@ -3478,6 +3477,7 @@ class FlatCAMGrbEditor(QtCore.QObject): conv_apertures[apid][key] = self.gerber_obj.apertures[apid][key] self.gerber_obj.apertures = conv_apertures + self.gerber_obj.gerber_units = app_units # ############################################################# ## # APPLY CLEAR_GEOMETRY on the SOLID_GEOMETRY @@ -3575,7 +3575,6 @@ class FlatCAMGrbEditor(QtCore.QObject): :return: None """ - new_grb_name = self.edited_obj_name # if the 'delayed plot' malfunctioned stop the QTimer @@ -3710,6 +3709,7 @@ class FlatCAMGrbEditor(QtCore.QObject): grb_obj.source_file = [] grb_obj.multigeo = False grb_obj.follow = False + grb_obj.gerber_units = app_obj.defaults['units'] try: grb_obj.create_geometry() @@ -3890,7 +3890,17 @@ class FlatCAMGrbEditor(QtCore.QObject): "%.4f    " % (0, 0)) # Selection with left mouse button - if self.active_tool is not None and event.button is 1: + if self.active_tool is not None: + modifiers = QtWidgets.QApplication.keyboardModifiers() + + # If the SHIFT key is pressed when LMB is clicked then the coordinates are copied to clipboard + if modifiers == QtCore.Qt.ShiftModifier: + self.app.clipboard.setText( + self.app.defaults["global_point_clipboard_format"] % (self.pos[0], self.pos[1]) + ) + self.app.inform.emit(_("[success] Coordinates copied to clipboard.")) + return + # Dispatch event to active_tool self.active_tool.click(self.app.geo_editor.snap(self.pos[0], self.pos[1])) @@ -4406,19 +4416,13 @@ class FlatCAMGrbEditor(QtCore.QObject): if geom_el in selection: geometric_data = geom_el.geo buffered_geom_el = dict() - if 'solid' in geom_el: - buffered_geom_el['solid'] = DrawToolShape( - geometric_data['solid'].buffer(buff_value, join_style=join_style) - ) - if 'follow' in geom_el: - buffered_geom_el['follow'] = DrawToolShape( - geometric_data['follow'].buffer(buff_value, join_style=join_style) - ) - if 'clear' in geom_el: - buffered_geom_el['clear'] = DrawToolShape( - geometric_data['clear'].buffer(buff_value, join_style=join_style) - ) - return buffered_geom_el + if 'solid' in geometric_data: + buffered_geom_el['solid'] = geometric_data['solid'].buffer(buff_value, join_style=join_style) + if 'follow' in geometric_data: + buffered_geom_el['follow'] = geometric_data['follow'].buffer(buff_value, join_style=join_style) + if 'clear' in geometric_data: + buffered_geom_el['clear'] = geometric_data['clear'].buffer(buff_value, join_style=join_style) + return DrawToolShape(buffered_geom_el) else: return geom_el @@ -4435,9 +4439,10 @@ class FlatCAMGrbEditor(QtCore.QObject): temp_storage = deepcopy(buffer_recursion(self.storage_dict[apid]['geometry'], self.selected)) self.storage_dict[apid]['geometry'] = [] self.storage_dict[apid]['geometry'] = temp_storage - except Exception as e: - log.debug("FlatCAMGrbEditor.buffer() --> %s" % str(e)) + log.debug("FlatCAMGrbEditor.buffer() --> %s\n%s" % str(e)) + self.app.inform.emit(_("[ERROR_NOTCL] Failed.\n%s") % str(traceback.print_exc())) + return self.plot_all() self.app.inform.emit(_("[success] Done. Buffer Tool completed.")) @@ -4467,17 +4472,20 @@ class FlatCAMGrbEditor(QtCore.QObject): if geom_el in selection: geometric_data = geom_el.geo scaled_geom_el = dict() - if 'solid' in geom_el: - scaled_geom_el['solid'] = DrawToolShape( - affinity.scale(geometric_data['solid'], scale_factor, scale_factor, origin='center')) - if 'follow' in geom_el: - scaled_geom_el['follow'] = DrawToolShape( - affinity.scale(geometric_data['follow'], scale_factor, scale_factor, origin='center')) - if 'clear' in geom_el: - scaled_geom_el['clear'] = DrawToolShape( - affinity.scale(geometric_data['clear'], scale_factor, scale_factor, origin='center')) + if 'solid' in geometric_data: + scaled_geom_el['solid'] = affinity.scale( + geometric_data['solid'], scale_factor, scale_factor, origin='center' + ) + if 'follow' in geometric_data: + scaled_geom_el['follow'] = affinity.scale( + geometric_data['follow'], scale_factor, scale_factor, origin='center' + ) + if 'clear' in geometric_data: + scaled_geom_el['clear'] = affinity.scale( + geometric_data['clear'], scale_factor, scale_factor, origin='center' + ) - return scaled_geom_el + return DrawToolShape(scaled_geom_el) else: return geom_el @@ -5229,9 +5237,10 @@ class TransformEditorTool(FlatCAMTool): try: # first get a bounding box to fit all; we use only the 'solids' as those should provide the biggest # bounding box - for el in elem_list: + for el_shape in elem_list: + el = el_shape.geo if 'solid' in el: - xmin, ymin, xmax, ymax = el['solid'].bounds() + xmin, ymin, xmax, ymax = el['solid'].bounds xminlist.append(xmin) yminlist.append(ymin) xmaxlist.append(xmax) @@ -5247,13 +5256,14 @@ class TransformEditorTool(FlatCAMTool): px = 0.5 * (xminimal + xmaximal) py = 0.5 * (yminimal + ymaximal) - for sel_el in elem_list: + for sel_el_shape in elem_list: + sel_el = sel_el_shape.geo if 'solid' in sel_el: - sel_el['solid'].rotate(-num, point=(px, py)) + sel_el['solid'] = affinity.rotate(sel_el['solid'], angle=-num, origin=(px, py)) if 'follow' in sel_el: - sel_el['follow'].rotate(-num, point=(px, py)) + sel_el['follow'] = affinity.rotate(sel_el['follow'], angle=-num, origin=(px, py)) if 'clear' in sel_el: - sel_el['clear'].rotate(-num, point=(px, py)) + sel_el['clear'] = affinity.rotate(sel_el['clear'], angle=-num, origin=(px, py)) self.draw_app.plot_all() self.app.inform.emit(_("[success] Done. Rotate completed.")) @@ -5287,9 +5297,10 @@ class TransformEditorTool(FlatCAMTool): else: # first get a bounding box to fit all; we use only the 'solids' as those should provide the biggest # bounding box - for el in elem_list: + for el_shape in elem_list: + el = el_shape.geo if 'solid' in el: - xmin, ymin, xmax, ymax = el['solid'].bounds() + xmin, ymin, xmax, ymax = el['solid'].bounds xminlist.append(xmin) yminlist.append(ymin) xmaxlist.append(xmax) @@ -5307,22 +5318,23 @@ class TransformEditorTool(FlatCAMTool): self.app.progress.emit(20) # execute mirroring - for sel_el in elem_list: + for sel_el_shape in elem_list: + sel_el = sel_el_shape.geo if axis is 'X': if 'solid' in sel_el: - sel_el['solid'].mirror('X', (px, py)) + sel_el['solid'] = affinity.scale(sel_el['solid'], xfact=1, yfact=-1, origin=(px, py)) if 'follow' in sel_el: - sel_el['follow'].mirror('X', (px, py)) + sel_el['follow'] = affinity.scale(sel_el['follow'], xfact=1, yfact=-1, origin=(px, py)) if 'clear' in sel_el: - sel_el['clear'].mirror('X', (px, py)) + sel_el['clear'] = affinity.scale(sel_el['clear'], xfact=1, yfact=-1, origin=(px, py)) self.app.inform.emit(_('[success] Flip on the Y axis done ...')) elif axis is 'Y': if 'solid' in sel_el: - sel_el['solid'].mirror('Y', (px, py)) + sel_el['solid'] = affinity.scale(sel_el['solid'], xfact=-1, yfact=1, origin=(px, py)) if 'follow' in sel_el: - sel_el['follow'].mirror('Y', (px, py)) + sel_el['follow'] = affinity.scale(sel_el['follow'], xfact=-1, yfact=1, origin=(px, py)) if 'clear' in sel_el: - sel_el['clear'].mirror('Y', (px, py)) + sel_el['clear'] = affinity.scale(sel_el['clear'], xfact=-1, yfact=1, origin=(px, py)) self.app.inform.emit(_('[success] Flip on the X axis done ...')) self.draw_app.plot_all() self.app.progress.emit(100) @@ -5350,9 +5362,10 @@ class TransformEditorTool(FlatCAMTool): try: # first get a bounding box to fit all; we use only the 'solids' as those should provide the biggest # bounding box - for el in elem_list: + for el_shape in elem_list: + el = el_shape.geo if 'solid' in el: - xmin, ymin, xmax, ymax = el['solid'].bounds() + xmin, ymin, xmax, ymax = el['solid'].bounds xminlist.append(xmin) yminlist.append(ymin) @@ -5362,21 +5375,22 @@ class TransformEditorTool(FlatCAMTool): self.app.progress.emit(20) - for sel_el in elem_list: + for sel_el_shape in elem_list: + sel_el = sel_el_shape.geo if axis is 'X': if 'solid' in sel_el: - sel_el['solid'].skew(num, 0, point=(xminimal, yminimal)) + sel_el['solid'] = affinity.skew(sel_el['solid'], num, 0, origin=(xminimal, yminimal)) if 'follow' in sel_el: - sel_el['follow'].skew(num, 0, point=(xminimal, yminimal)) + sel_el['follow'] = affinity.skew(sel_el['follow'], num, 0, origin=(xminimal, yminimal)) if 'clear' in sel_el: - sel_el['clear'].skew(num, 0, point=(xminimal, yminimal)) + sel_el['clear'] = affinity.skew(sel_el['clear'], num, 0, origin=(xminimal, yminimal)) elif axis is 'Y': if 'solid' in sel_el: - sel_el['solid'].skew(0, num, point=(xminimal, yminimal)) + sel_el['solid'] = affinity.skew(sel_el['solid'], 0, num, origin=(xminimal, yminimal)) if 'follow' in sel_el: - sel_el['follow'].skew(0, num, point=(xminimal, yminimal)) + sel_el['follow'] = affinity.skew(sel_el['follow'], 0, num, origin=(xminimal, yminimal)) if 'clear' in sel_el: - sel_el['clear'].skew(0, num, point=(xminimal, yminimal)) + sel_el['clear'] = affinity.skew(sel_el['clear'], 0, num, origin=(xminimal, yminimal)) self.draw_app.plot_all() self.app.inform.emit(_('[success] Skew on the %s axis done ...') % str(axis)) @@ -5409,9 +5423,10 @@ class TransformEditorTool(FlatCAMTool): try: # first get a bounding box to fit all; we use only the 'solids' as those should provide the biggest # bounding box - for el in elem_list: + for el_shape in elem_list: + el = el_shape.geo if 'solid' in el: - xmin, ymin, xmax, ymax = el['solid'].bounds() + xmin, ymin, xmax, ymax = el['solid'].bounds xminlist.append(xmin) yminlist.append(ymin) xmaxlist.append(xmax) @@ -5432,13 +5447,14 @@ class TransformEditorTool(FlatCAMTool): px = 0 py = 0 - for sel_el in elem_list: + for sel_el_shape in elem_list: + sel_el = sel_el_shape.geo if 'solid' in sel_el: - sel_el['solid'].scale(xfactor, yfactor, point=(px, py)) + sel_el['solid'] = affinity.scale(sel_el['solid'], xfactor, yfactor, origin=(px, py)) if 'follow' in sel_el: - sel_el['follow'].scale(xfactor, yfactor, point=(px, py)) + sel_el['follow'] = affinity.scale(sel_el['follow'], xfactor, yfactor, origin=(px, py)) if 'clear' in sel_el: - sel_el['clear'].scale(xfactor, yfactor, point=(px, py)) + sel_el['clear'] = affinity.scale(sel_el['clear'], xfactor, yfactor, origin=(px, py)) self.draw_app.plot_all() self.app.inform.emit(_('[success] Scale on the %s axis done ...') % str(axis)) @@ -5464,21 +5480,22 @@ class TransformEditorTool(FlatCAMTool): try: self.app.progress.emit(20) - for sel_el in elem_list: + for sel_el_shape in elem_list: + sel_el = sel_el_shape.geo if axis is 'X': if 'solid' in sel_el: - sel_el['solid'].offset((num, 0)) + sel_el['solid'] = affinity.translate(sel_el['solid'], num, 0) if 'follow' in sel_el: - sel_el['follow'].offset((num, 0)) + sel_el['follow'] = affinity.translate(sel_el['follow'], num, 0) if 'clear' in sel_el: - sel_el['clear'].offset((num, 0)) + sel_el['clear'] = affinity.translate(sel_el['clear'], num, 0) elif axis is 'Y': if 'solid' in sel_el: - sel_el['solid'].offset((0, num)) + sel_el['solid'] = affinity.translate(sel_el['solid'], 0, num) if 'follow' in sel_el: - sel_el['follow'].offset((0, num)) + sel_el['follow'] = affinity.translate(sel_el['follow'], 0, num) if 'clear' in sel_el: - sel_el['clear'].offset((0, num)) + sel_el['clear'] = affinity.translate(sel_el['clear'], 0, num) self.draw_app.plot_all() self.app.inform.emit(_('[success] Offset on the %s axis done ...') % str(axis)) diff --git a/flatcamGUI/FlatCAMGUI.py b/flatcamGUI/FlatCAMGUI.py index 580b2d72..51feb37f 100644 --- a/flatcamGUI/FlatCAMGUI.py +++ b/flatcamGUI/FlatCAMGUI.py @@ -3330,14 +3330,14 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI): self.gridx_label.setToolTip( _("This is the Grid snap value on X axis.") ) - self.gridx_entry = LengthEntry() + self.gridx_entry = FCEntry3() # Grid Y Entry self.gridy_label = QtWidgets.QLabel(_('Grid Y value:')) self.gridy_label.setToolTip( _("This is the Grid snap value on Y axis.") ) - self.gridy_entry = LengthEntry() + self.gridy_entry = FCEntry3() # Snap Max Entry self.snap_max_label = QtWidgets.QLabel(_('Snap Max:')) @@ -4096,7 +4096,7 @@ class GerberOptPrefGroupUI(OptionsGroupUI): self.combine_passes_cb.setToolTip( _("Combine all passes into one object") ) - grid0.addWidget(self.combine_passes_cb, 4, 0) + grid0.addWidget(self.combine_passes_cb, 4, 0, 1, 2) # ## Clear non-copper regions self.clearcopper_label = QtWidgets.QLabel(_("Clear non-copper:")) @@ -4468,8 +4468,8 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI): hlay2.addWidget(self.excellon_format_lower_mm_entry, QtCore.Qt.AlignLeft) hlay2.addStretch() - hlay3 = QtWidgets.QHBoxLayout() - self.layout.addLayout(hlay3) + grid2 = QtWidgets.QGridLayout() + self.layout.addLayout(grid2) self.excellon_zeros_label = QtWidgets.QLabel(_('Default Zeros:')) self.excellon_zeros_label.setAlignment(QtCore.Qt.AlignLeft) @@ -4480,7 +4480,7 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI): "If TZ is checked then Trailing Zeros are kept\n" "and Leading Zeros are removed.") ) - hlay3.addWidget(self.excellon_zeros_label) + grid2.addWidget(self.excellon_zeros_label, 0, 0) self.excellon_zeros_radio = RadioSet([{'label': 'LZ', 'value': 'L'}, {'label': 'TZ', 'value': 'T'}]) @@ -4493,11 +4493,7 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI): "If TZ is checked then Trailing Zeros are kept\n" "and Leading Zeros are removed.") ) - hlay3.addStretch() - hlay3.addWidget(self.excellon_zeros_radio, QtCore.Qt.AlignRight) - - hlay4 = QtWidgets.QHBoxLayout() - self.layout.addLayout(hlay4) + grid2.addWidget(self.excellon_zeros_radio, 0, 1) self.excellon_units_label = QtWidgets.QLabel(_('Default Units:')) self.excellon_units_label.setAlignment(QtCore.Qt.AlignLeft) @@ -4508,7 +4504,7 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI): "Some Excellon files don't have an header\n" "therefore this parameter will be used.") ) - hlay4.addWidget(self.excellon_units_label) + grid2.addWidget(self.excellon_units_label, 1, 0) self.excellon_units_radio = RadioSet([{'label': 'INCH', 'value': 'INCH'}, {'label': 'MM', 'value': 'METRIC'}]) @@ -4517,27 +4513,14 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI): "Some Excellon files don't have an header\n" "therefore this parameter will be used.") ) - hlay4.addStretch() - hlay4.addWidget(self.excellon_units_radio, QtCore.Qt.AlignRight) + grid2.addWidget(self.excellon_units_radio, 1, 1) - hlay5 = QtWidgets.QVBoxLayout() - self.layout.addLayout(hlay5) - - self.empty_label = QtWidgets.QLabel("") - hlay5.addWidget(self.empty_label) - - hlay6 = QtWidgets.QVBoxLayout() - self.layout.addLayout(hlay6) + grid2.addWidget(QtWidgets.QLabel(""), 2, 0) self.excellon_general_label = QtWidgets.QLabel(_("Excellon Optimization:")) - hlay6.addWidget(self.excellon_general_label) - - # Create a form layout for the Excellon general settings - form_box_excellon = QtWidgets.QFormLayout() - hlay6.addLayout(form_box_excellon) + grid2.addWidget(self.excellon_general_label, 3, 0, 1, 2) self.excellon_optimization_label = QtWidgets.QLabel(_('Algorithm: ')) - self.excellon_optimization_label.setAlignment(QtCore.Qt.AlignLeft) self.excellon_optimization_label.setToolTip( _("This sets the optimization type for the Excellon drill path.\n" "If MH is checked then Google OR-Tools algorithm with MetaHeuristic\n" @@ -4548,6 +4531,7 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI): "If DISABLED, then FlatCAM works in 32bit mode and it uses \n" "Travelling Salesman algorithm for path optimization.") ) + grid2.addWidget(self.excellon_optimization_label, 4, 0) self.excellon_optimization_radio = RadioSet([{'label': 'MH', 'value': 'M'}, {'label': 'Basic', 'value': 'B'}]) @@ -4561,8 +4545,7 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI): "If DISABLED, then FlatCAM works in 32bit mode and it uses \n" "Travelling Salesman algorithm for path optimization.") ) - - form_box_excellon.addRow(self.excellon_optimization_label, self.excellon_optimization_radio) + grid2.addWidget(self.excellon_optimization_radio, 4, 1) self.optimization_time_label = QtWidgets.QLabel(_('Optimization Time: ')) self.optimization_time_label.setAlignment(QtCore.Qt.AlignLeft) @@ -4573,10 +4556,11 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI): "In seconds.") ) + grid2.addWidget(self.optimization_time_label, 5, 0) self.optimization_time_entry = IntEntry() self.optimization_time_entry.setValidator(QtGui.QIntValidator(0, 999)) - form_box_excellon.addRow(self.optimization_time_label, self.optimization_time_entry) + grid2.addWidget(self.optimization_time_entry, 5, 1) current_platform = platform.architecture()[0] if current_platform == '64bit': @@ -4744,25 +4728,23 @@ class ExcellonOptPrefGroupUI(OptionsGroupUI): self.mill_hole_label.setToolTip( _("Create Geometry for milling holes.") ) - self.layout.addWidget(self.mill_hole_label) + grid2.addWidget(excellon_gcode_type_label, 11, 0, 1, 2) - grid3 = QtWidgets.QGridLayout() - self.layout.addLayout(grid3) tdlabel = QtWidgets.QLabel(_('Drill Tool dia:')) tdlabel.setToolTip( _("Diameter of the cutting tool.") ) - grid3.addWidget(tdlabel, 0, 0) + grid2.addWidget(tdlabel, 12, 0) self.tooldia_entry = LengthEntry() - grid3.addWidget(self.tooldia_entry, 0, 1) + grid2.addWidget(self.tooldia_entry, 12, 1) stdlabel = QtWidgets.QLabel(_('Slot Tool dia:')) stdlabel.setToolTip( _("Diameter of the cutting tool\n" "when milling slots.") ) - grid3.addWidget(stdlabel, 1, 0) + grid2.addWidget(stdlabel, 13, 0) self.slot_tooldia_entry = LengthEntry() - grid3.addWidget(self.slot_tooldia_entry, 1, 1) + grid2.addWidget(self.slot_tooldia_entry, 13, 1) grid4 = QtWidgets.QGridLayout() self.layout.addLayout(grid4) @@ -5162,6 +5144,7 @@ class GeometryGenPrefGroupUI(OptionsGroupUI): grid0 = QtWidgets.QGridLayout() self.layout.addLayout(grid0) + # Number of circle steps for circular aperture linear approximation self.circle_steps_label = QtWidgets.QLabel(_("Circle Steps:")) self.circle_steps_label.setToolTip( @@ -5173,21 +5156,17 @@ class GeometryGenPrefGroupUI(OptionsGroupUI): grid0.addWidget(self.circle_steps_entry, 1, 1) # Tools - self.tools_label = QtWidgets.QLabel(_("Tools")) - self.layout.addWidget(self.tools_label) - - grid0_b = QtWidgets.QGridLayout() - self.layout.addLayout(grid0_b) + self.tools_label = QtWidgets.QLabel(_("Tools:")) + grid0.addWidget(self.tools_label, 2, 0, 1, 2) # Tooldia - tdlabel = QtWidgets.QLabel(_('Tool dia: ')) + tdlabel = QtWidgets.QLabel(_('Tool dia:')) tdlabel.setToolTip( - _("The diameter of the cutting\n" - "tool..") + _("Diameters of the cutting tools, separated by ','") ) - grid0_b.addWidget(tdlabel, 0, 0) - self.cnctooldia_entry = LengthEntry() - grid0_b.addWidget(self.cnctooldia_entry, 0, 1) + grid0.addWidget(tdlabel, 3, 0) + self.cnctooldia_entry = FCEntry() + grid0.addWidget(self.cnctooldia_entry, 3, 1) self.layout.addStretch() diff --git a/flatcamGUI/GUIElements.py b/flatcamGUI/GUIElements.py index be90969a..ea306902 100644 --- a/flatcamGUI/GUIElements.py +++ b/flatcamGUI/GUIElements.py @@ -190,7 +190,7 @@ class LengthEntry(QtWidgets.QLineEdit): units = raw[-2:] units = self.scales[self.output_units][units.upper()] value = raw[:-2] - return float(eval(value))*units + return float(eval(value))* units except IndexError: value = raw return float(eval(value)) @@ -390,12 +390,40 @@ class FCEntry2(FCEntry): def on_edit_finished(self): self.clearFocus() - def set_value(self, val): + def set_value(self, val, decimals=4): try: fval = float(val) except ValueError: return - self.setText('%.4f' % fval) + + self.setText('%.*f' % (decimals, fval)) + + +class FCEntry3(FCEntry): + def __init__(self, parent=None): + super(FCEntry3, self).__init__(parent) + self.readyToEdit = True + self.editingFinished.connect(self.on_edit_finished) + + def on_edit_finished(self): + self.clearFocus() + + def set_value(self, val, decimals=4): + try: + fval = float(val) + except ValueError: + return + + self.setText('%.*f' % (decimals, fval)) + + def get_value(self): + value = str(self.text()).strip(' ') + + try: + return float(eval(value)) + except Exception as e: + log.warning("Could not parse value in entry: %s" % str(e)) + return None class EvalEntry(QtWidgets.QLineEdit): @@ -680,7 +708,7 @@ class FCTextAreaExtended(QtWidgets.QTextEdit): if character == "#": # delete # self.textCursor().deletePreviousChar() - # delete white space + # delete white space self.moveCursor(QtGui.QTextCursor.NextWord,QtGui.QTextCursor.KeepAnchor) self.textCursor().removeSelectedText() else: @@ -1059,7 +1087,6 @@ class FCDetachableTab(QtWidgets.QTabWidget): # Re-attach the tab at the given index self.attachTab(contentWidget, name, icon, index) - # If the drop did not occur on an existing tab, determine if the drop # occurred in the tab bar area (the area to the side of the QTabBar) else: @@ -1227,14 +1254,17 @@ class FCDetachableTab(QtWidgets.QTabWidget): :return: """ # Determine if the current movement is detected as a drag - if not self.dragStartPos.isNull() and ((event.pos() - self.dragStartPos).manhattanLength() < QtWidgets.QApplication.startDragDistance()): + if not self.dragStartPos.isNull() and \ + ((event.pos() - self.dragStartPos).manhattanLength() < QtWidgets.QApplication.startDragDistance()): self.dragInitiated = True # If the current movement is a drag initiated by the left button if (((event.buttons() & QtCore.Qt.LeftButton)) and self.dragInitiated): # Stop the move event - finishMoveEvent = QtGui.QMouseEvent(QtCore.QEvent.MouseMove, event.pos(), QtCore.Qt.NoButton, QtCore.Qt.NoButton, QtCore.Qt.NoModifier) + finishMoveEvent = QtGui.QMouseEvent( + QtCore.QEvent.MouseMove, event.pos(), QtCore.Qt.NoButton, QtCore.Qt.NoButton, QtCore.Qt.NoModifier + ) QtWidgets.QTabBar.mouseMoveEvent(self, finishMoveEvent) # Convert the move event into a drag @@ -1261,13 +1291,11 @@ class FCDetachableTab(QtWidgets.QTabWidget): # Initiate the drag dropAction = drag.exec_(QtCore.Qt.MoveAction | QtCore.Qt.CopyAction) - # For Linux: Here, drag.exec_() will not return MoveAction on Linux. So it # must be set manually if self.dragDropedPos.x() != 0 and self.dragDropedPos.y() != 0: dropAction = QtCore.Qt.MoveAction - # If the drag completed outside of the tab bar, detach the tab and move # the content to the current cursor position if dropAction == QtCore.Qt.IgnoreAction: diff --git a/flatcamParsers/ParseDXF.py b/flatcamParsers/ParseDXF.py index 88326afe..b6be8b98 100644 --- a/flatcamParsers/ParseDXF.py +++ b/flatcamParsers/ParseDXF.py @@ -91,7 +91,7 @@ def dxfarc2shapely(arc, n_points=100): # angle += step_angle # # - # log.debug("X = %.3f, Y = %.3f, Radius = %.3f, start_angle = %.1f, stop_angle = %.1f, step_angle = %.3f, dir=%s" % + # log.debug("X = %.4f, Y = %.4f, Radius = %.4f, start_angle = %.1f, stop_angle = %.1f, step_angle = %.4f, dir=%s" % # (center_x, center_y, radius, start_angle, end_angle, step_angle, dir)) # # geo = LineString(point_list) @@ -142,7 +142,7 @@ def dxfarc2shapely(arc, n_points=100): y = center_y + radius * math.sin(math.radians(- end_angle)) point_list.append((x, y)) - # log.debug("X = %.3f, Y = %.3f, Radius = %.3f, start_angle = %.1f, stop_angle = %.1f, step_angle = %.3f" % + # log.debug("X = %.4f, Y = %.4f, Radius = %.4f, start_angle = %.1f, stop_angle = %.1f, step_angle = %.4f" % # (center_x, center_y, radius, start_angle, end_angle, step_angle)) geo = LineString(point_list) @@ -450,4 +450,4 @@ def getdxftext(exf_object, object_type, units=None): # geo = rotate(geo, phi, origin=tr) # # geo_block_transformed.append(geo) -# return geo_block_transformed \ No newline at end of file +# return geo_block_transformed diff --git a/flatcamTools/ToolNonCopperClear.py b/flatcamTools/ToolNonCopperClear.py index 52c847ab..24734e4a 100644 --- a/flatcamTools/ToolNonCopperClear.py +++ b/flatcamTools/ToolNonCopperClear.py @@ -343,7 +343,7 @@ class NonCopperClear(FlatCAMTool, Gerber): }) try: - dias = [float(eval(dia)) for dia in self.app.defaults["tools_ncctools"].split(",")] + dias = [float(eval(dia)) for dia in self.app.defaults["tools_ncctools"].split(",") if dia != ''] except: log.error("At least one tool diameter needed. Verify in Edit -> Preferences -> TOOLS -> NCC Tools.") return @@ -404,7 +404,7 @@ class NonCopperClear(FlatCAMTool, Gerber): if self.units == 'MM': dia = QtWidgets.QTableWidgetItem('%.2f' % tooluid_value['tooldia']) else: - dia = QtWidgets.QTableWidgetItem('%.3f' % tooluid_value['tooldia']) + dia = QtWidgets.QTableWidgetItem('%.4f' % tooluid_value['tooldia']) dia.setFlags(QtCore.Qt.ItemIsEnabled) @@ -787,7 +787,7 @@ class NonCopperClear(FlatCAMTool, Gerber): else: log.debug("There are no geometries in the cleared polygon.") - geo_obj.options["cnctooldia"] = tool + geo_obj.options["cnctooldia"] = str(tool) geo_obj.multigeo = True def job_thread(app_obj): @@ -929,7 +929,7 @@ class NonCopperClear(FlatCAMTool, Gerber): log.debug("There are no geometries in the cleared polygon.") geo_obj.multigeo = True - geo_obj.options["cnctooldia"] = tool + geo_obj.options["cnctooldia"] = str(tool) # check to see if geo_obj.tools is empty # it will be updated only if there is a solid_geometry for tools diff --git a/flatcamTools/ToolPaint.py b/flatcamTools/ToolPaint.py index 00ec1dd5..f2009c88 100644 --- a/flatcamTools/ToolPaint.py +++ b/flatcamTools/ToolPaint.py @@ -468,7 +468,7 @@ class ToolPaint(FlatCAMTool, Gerber): if self.units == 'MM': dia = QtWidgets.QTableWidgetItem('%.2f' % tooluid_value['tooldia']) else: - dia = QtWidgets.QTableWidgetItem('%.3f' % tooluid_value['tooldia']) + dia = QtWidgets.QTableWidgetItem('%.4f' % tooluid_value['tooldia']) dia.setFlags(QtCore.Qt.ItemIsEnabled) @@ -920,7 +920,7 @@ class ToolPaint(FlatCAMTool, Gerber): log.debug("Could not Paint the polygons. %s" % str(e)) self.app.inform.emit( _("[ERROR] Could not do Paint. Try a different combination of parameters. " - "Or a different strategy of paint\n%s") % str(e)) + "Or a different strategy of paint\n%s") % str(e)) return if cp is not None: @@ -930,7 +930,7 @@ class ToolPaint(FlatCAMTool, Gerber): else: geo_obj.solid_geometry = list(cp.get_objects()) - geo_obj.options["cnctooldia"] = tooldia + geo_obj.options["cnctooldia"] = str(tooldia) # this turn on the FlatCAMCNCJob plot for multiple tools geo_obj.multigeo = False geo_obj.multitool = True @@ -1043,7 +1043,11 @@ class ToolPaint(FlatCAMTool, Gerber): # ## Not iterable, do the actual indexing and add. except TypeError: - self.flat_geometry.append(geometry) + if isinstance(geometry, LinearRing): + g = Polygon(geometry) + self.flat_geometry.append(g) + else: + self.flat_geometry.append(geometry) return self.flat_geometry @@ -1127,7 +1131,7 @@ class ToolPaint(FlatCAMTool, Gerber): self.paint_tools[current_uid]['data']['name'] = name total_geometry[:] = [] - geo_obj.options["cnctooldia"] = tool_dia + geo_obj.options["cnctooldia"] = str(tool_dia) # this turn on the FlatCAMCNCJob plot for multiple tools geo_obj.multigeo = True geo_obj.multitool = True @@ -1141,8 +1145,8 @@ class ToolPaint(FlatCAMTool, Gerber): has_solid_geo += 1 if has_solid_geo == 0: self.app.inform.emit(_("[ERROR] There is no Painting Geometry in the file.\n" - "Usually it means that the tool diameter is too big for the painted geometry.\n" - "Change the painting parameters and try again.")) + "Usually it means that the tool diameter is too big for the painted geometry.\n" + "Change the painting parameters and try again.")) return # Experimental... @@ -1222,7 +1226,7 @@ class ToolPaint(FlatCAMTool, Gerber): self.paint_tools[current_uid]['data']['name'] = name cleared_geo[:] = [] - geo_obj.options["cnctooldia"] = tool_dia + geo_obj.options["cnctooldia"] = str(tool_dia) # this turn on the FlatCAMCNCJob plot for multiple tools geo_obj.multigeo = True geo_obj.multitool = True diff --git a/flatcamTools/ToolSolderPaste.py b/flatcamTools/ToolSolderPaste.py index 47b728f6..7f4b5e3e 100644 --- a/flatcamTools/ToolSolderPaste.py +++ b/flatcamTools/ToolSolderPaste.py @@ -482,7 +482,7 @@ class SolderPaste(FlatCAMTool): self.on_tool_delete(rows_to_delete=None, all=None), icon=QtGui.QIcon("share/delete32.png")) try: - dias = [float(eval(dia)) for dia in self.app.defaults["tools_solderpaste_tools"].split(",")] + dias = [float(eval(dia)) for dia in self.app.defaults["tools_solderpaste_tools"].split(",") if dia != ''] except: log.error("At least one Nozzle tool diameter needed. " "Verify in Edit -> Preferences -> TOOLS -> Solder Paste Tools.") @@ -548,7 +548,7 @@ class SolderPaste(FlatCAMTool): if self.units == 'MM': dia = QtWidgets.QTableWidgetItem('%.2f' % tooluid_value['tooldia']) else: - dia = QtWidgets.QTableWidgetItem('%.3f' % tooluid_value['tooldia']) + dia = QtWidgets.QTableWidgetItem('%.4f' % tooluid_value['tooldia']) dia.setFlags(QtCore.Qt.ItemIsEnabled) diff --git a/locale/ru/LC_MESSAGES/strings.po b/locale/ru/LC_MESSAGES/strings.po index 97c05b2f..f96bf852 100644 --- a/locale/ru/LC_MESSAGES/strings.po +++ b/locale/ru/LC_MESSAGES/strings.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"POT-Creation-Date: 2019-06-11 23:00+0300\n" -"PO-Revision-Date: 2019-06-15 19:59+0400\n" +"POT-Creation-Date: 2019-06-22 23:56+0300\n" +"PO-Revision-Date: 2019-06-23 21:04+0400\n" "Last-Translator: Andrey Kultyapov \n" "Language-Team: \n" "Language: ru\n" @@ -14,10 +14,10 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" -"X-Generator: Poedit 2.0.6\n" +"X-Generator: Poedit 2.2.3\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Poedit-Basepath: ..\n" +"X-Poedit-Basepath: ../../..\n" "X-Poedit-SearchPath-0: .\n" "X-Poedit-SearchPathExcluded-0: build\n" "X-Poedit-SearchPathExcluded-1: doc\n" @@ -49,13 +49,13 @@ msgstr "Не удалось открыть файл конфигурации." msgid "Open Script file failed." msgstr "Ошибка открытия файла сценария." -#: FlatCAMApp.py:2235 +#: FlatCAMApp.py:2244 msgid "[WARNING_NOTCL] Select a Geometry, Gerber or Excellon Object to edit." msgstr "" "[WARNING_NOTCL] Выберите объект Geometry, Gerber или Excellon для " "редактирования." -#: FlatCAMApp.py:2245 +#: FlatCAMApp.py:2254 msgid "" "[WARNING_NOTCL] Simultanoeus editing of tools geometry in a MultiGeo " "Geometry is not possible.\n" @@ -65,97 +65,97 @@ msgstr "" "невозможно.\n" "Редактируйте только одну геометрию за раз." -#: FlatCAMApp.py:2289 +#: FlatCAMApp.py:2309 msgid "[WARNING_NOTCL] Editor is activated ..." msgstr "[WARNING_NOTCL] Редактор активирован ..." -#: FlatCAMApp.py:2307 +#: FlatCAMApp.py:2327 msgid "Do you want to save the edited object?" msgstr "Вы хотите сохранить редактируемый объект?" -#: FlatCAMApp.py:2308 flatcamGUI/FlatCAMGUI.py:1618 +#: FlatCAMApp.py:2328 flatcamGUI/FlatCAMGUI.py:1618 msgid "Close Editor" msgstr "Закрыть редактор" -#: FlatCAMApp.py:2311 FlatCAMApp.py:3403 FlatCAMApp.py:5881 +#: FlatCAMApp.py:2331 FlatCAMApp.py:3423 FlatCAMApp.py:5989 #: FlatCAMTranslation.py:89 flatcamGUI/FlatCAMGUI.py:3730 msgid "Yes" msgstr "Да" -#: FlatCAMApp.py:2312 FlatCAMApp.py:3404 FlatCAMApp.py:5882 +#: FlatCAMApp.py:2332 FlatCAMApp.py:3424 FlatCAMApp.py:5990 #: FlatCAMTranslation.py:90 flatcamGUI/FlatCAMGUI.py:3731 msgid "No" msgstr "Нет" -#: FlatCAMApp.py:2313 FlatCAMApp.py:3405 FlatCAMApp.py:3737 FlatCAMApp.py:5883 +#: FlatCAMApp.py:2333 FlatCAMApp.py:3425 FlatCAMApp.py:3836 FlatCAMApp.py:5991 msgid "Cancel" msgstr "Отмена" -#: FlatCAMApp.py:2340 +#: FlatCAMApp.py:2360 msgid "[WARNING] Object empty after edit." msgstr "[WARNING] Объект пуст после редактирования." -#: FlatCAMApp.py:2362 FlatCAMApp.py:2381 FlatCAMApp.py:2393 +#: FlatCAMApp.py:2382 FlatCAMApp.py:2401 FlatCAMApp.py:2413 msgid "[WARNING_NOTCL] Select a Gerber, Geometry or Excellon Object to update." msgstr "" "[WARNING_NOTCL] Выберите объект Gerber, Geometry или Excellon для обновления." -#: FlatCAMApp.py:2365 +#: FlatCAMApp.py:2385 #, python-format msgid "[selected] %s is updated, returning to App..." msgstr "[selected] %s обновлён, возврат в приложение ..." -#: FlatCAMApp.py:2730 +#: FlatCAMApp.py:2750 msgid "[ERROR] Could not load defaults file." msgstr "[ERROR] Не удаётся загрузить файл настроек." -#: FlatCAMApp.py:2742 +#: FlatCAMApp.py:2762 msgid "[ERROR] Failed to parse defaults file." msgstr "[ERRORr] Не удаётся прочитать файл настроек." -#: FlatCAMApp.py:2763 FlatCAMApp.py:2767 +#: FlatCAMApp.py:2783 FlatCAMApp.py:2787 msgid "Import FlatCAM Preferences" msgstr "Импорт настроек FlatCAM" -#: FlatCAMApp.py:2773 +#: FlatCAMApp.py:2793 msgid "[WARNING_NOTCL] FlatCAM preferences import cancelled." msgstr "[WARNING_NOTCL] Импорт настроек FlatCAM отменен." -#: FlatCAMApp.py:2781 FlatCAMApp.py:2835 FlatCAMApp.py:3282 +#: FlatCAMApp.py:2801 FlatCAMApp.py:2855 FlatCAMApp.py:3302 msgid "[ERROR_NOTCL] Could not load defaults file." msgstr "[ERROR_NOTCL] Не удалось загрузить файл значений по умолчанию." -#: FlatCAMApp.py:2789 FlatCAMApp.py:3291 +#: FlatCAMApp.py:2809 FlatCAMApp.py:3311 msgid "[ERROR_NOTCL] Failed to parse defaults file." msgstr "[ERROR_NOTCL] Не удалось прочитать файл значений по умолчанию." -#: FlatCAMApp.py:2792 +#: FlatCAMApp.py:2812 #, python-format msgid "[success] Imported Defaults from %s" msgstr "[success] Значения по умолчанию импортированы из %s" -#: FlatCAMApp.py:2807 FlatCAMApp.py:2812 +#: FlatCAMApp.py:2827 FlatCAMApp.py:2832 msgid "Export FlatCAM Preferences" msgstr "Экспорт настроек FlatCAM" -#: FlatCAMApp.py:2819 +#: FlatCAMApp.py:2839 msgid "[WARNING_NOTCL] FlatCAM preferences export cancelled." msgstr "[WARNING_NOTCL] Экспорт настроек FlatCAM отменён." -#: FlatCAMApp.py:2854 FlatCAMApp.py:3336 +#: FlatCAMApp.py:2874 FlatCAMApp.py:3356 msgid "[ERROR_NOTCL] Failed to write defaults to file." msgstr "[ERROR_NOTCL] Не удалось записать значения по умолчанию в файл." -#: FlatCAMApp.py:2907 +#: FlatCAMApp.py:2927 msgid "[ERROR_NOTCL] Failed to open recent files file for writing." msgstr "[ERROR_NOTCL] Не удалось открыть файл истории файлов для записи." -#: FlatCAMApp.py:2984 camlib.py:4454 +#: FlatCAMApp.py:3004 camlib.py:4457 msgid "[ERROR_NOTCL] An internal error has ocurred. See shell.\n" msgstr "" "[ERROR_NOTCL] Произошла внутренняя ошибка. Посмотрите в командную строку.\n" -#: FlatCAMApp.py:2985 +#: FlatCAMApp.py:3005 #, python-brace-format msgid "" "Object ({kind}) failed because: {error} \n" @@ -164,11 +164,11 @@ msgstr "" "Объект ({kind}) не выполнен, потому что: {error} \n" "\n" -#: FlatCAMApp.py:3005 +#: FlatCAMApp.py:3025 msgid "Converting units to " msgstr "Конвертирование единиц в " -#: FlatCAMApp.py:3084 FlatCAMApp.py:3087 FlatCAMApp.py:3090 FlatCAMApp.py:3093 +#: FlatCAMApp.py:3104 FlatCAMApp.py:3107 FlatCAMApp.py:3110 FlatCAMApp.py:3113 #, python-brace-format msgid "" "[selected] {kind} created/selected: {name}{name}" -#: FlatCAMApp.py:3187 +#: FlatCAMApp.py:3207 #, python-brace-format msgid "" "FlatCAM
Version {version} {beta} ({date}) - " @@ -199,31 +199,31 @@ msgstr "" "a>
ЗАГРУЗИТЬ можно отсюда.
" -#: FlatCAMApp.py:3340 +#: FlatCAMApp.py:3360 msgid "[success] Defaults saved." msgstr "[success] Значения по умолчанию сохранены." -#: FlatCAMApp.py:3361 +#: FlatCAMApp.py:3381 msgid "[ERROR_NOTCL] Could not load factory defaults file." msgstr "[ERROR_NOTCL] Не удалось загрузить файл с исходными значениями." -#: FlatCAMApp.py:3370 +#: FlatCAMApp.py:3390 msgid "[ERROR_NOTCL] Failed to parse factory defaults file." msgstr "[ERROR_NOTCL] Не удалось прочитать файл с исходными значениями." -#: FlatCAMApp.py:3384 +#: FlatCAMApp.py:3404 msgid "[ERROR_NOTCL] Failed to write factory defaults to file." msgstr "[ERROR_NOTCL] Не удалось записать исходные значения в файл." -#: FlatCAMApp.py:3388 +#: FlatCAMApp.py:3408 msgid "Factory defaults saved." msgstr "Исходные значения сохранены." -#: FlatCAMApp.py:3393 flatcamGUI/FlatCAMGUI.py:3106 +#: FlatCAMApp.py:3413 flatcamGUI/FlatCAMGUI.py:3106 msgid "[WARNING_NOTCL] Application is saving the project. Please wait ..." msgstr "[WARNING_NOTCL] Приложение сохраняет проект. Пожалуйста, подождите ..." -#: FlatCAMApp.py:3398 +#: FlatCAMApp.py:3418 msgid "" "There are files/objects modified in FlatCAM. \n" "Do you want to Save the project?" @@ -231,11 +231,11 @@ msgstr "" "Есть файлы/объекты, измененные в FlatCAM.\n" "Вы хотите сохранить проект?" -#: FlatCAMApp.py:3401 FlatCAMApp.py:5879 +#: FlatCAMApp.py:3421 FlatCAMApp.py:5987 msgid "Save changes" msgstr "Сохранить изменения" -#: FlatCAMApp.py:3468 +#: FlatCAMApp.py:3488 msgid "" "[ERROR] Failed join. The Geometry objects are of different types.\n" "At least one is MultiGeo type and the other is SingleGeo type. A possibility " @@ -251,70 +251,70 @@ msgstr "" "потеряна, и результат может не соответствовать ожидаемому. \n" "Проверьте сгенерированный GCODE." -#: FlatCAMApp.py:3509 +#: FlatCAMApp.py:3529 msgid "[ERROR_NOTCL] Failed. Excellon joining works only on Excellon objects." msgstr "" "[ERROR_NOTCL] Неудача. Присоединение Excellon работает только на объектах " "Excellon." -#: FlatCAMApp.py:3531 +#: FlatCAMApp.py:3551 msgid "[ERROR_NOTCL] Failed. Gerber joining works only on Gerber objects." msgstr "" "[ERROR_NOTCL] Неудача. Объединение Gerber работает только на объектах Gerber." -#: FlatCAMApp.py:3546 FlatCAMApp.py:3571 +#: FlatCAMApp.py:3566 FlatCAMApp.py:3591 msgid "[ERROR_NOTCL] Failed. Select a Geometry Object and try again." msgstr "[ERROR_NOTCL] Неудалось. Выберите объект Geometry и попробуйте снова." -#: FlatCAMApp.py:3550 FlatCAMApp.py:3575 +#: FlatCAMApp.py:3570 FlatCAMApp.py:3595 #, python-format msgid "[ERROR_NOTCL] Expected a FlatCAMGeometry, got %s" msgstr "[ERROR_NOTCL] Ожидается FlatCAMGeometry, получено %s" -#: FlatCAMApp.py:3563 +#: FlatCAMApp.py:3583 msgid "[success] A Geometry object was converted to MultiGeo type." msgstr "[success] Объект Geometry был преобразован в тип MultiGeo." -#: FlatCAMApp.py:3589 +#: FlatCAMApp.py:3609 msgid "[success] A Geometry object was converted to SingleGeo type." msgstr "[success] Объект Geometry был преобразован в тип SingleGeo." -#: FlatCAMApp.py:3736 FlatCAMApp.py:4572 FlatCAMApp.py:6154 FlatCAMApp.py:6165 -#: FlatCAMApp.py:6405 FlatCAMApp.py:6415 +#: FlatCAMApp.py:3835 FlatCAMApp.py:4674 FlatCAMApp.py:6262 FlatCAMApp.py:6273 +#: FlatCAMApp.py:6513 FlatCAMApp.py:6523 msgid "Ok" msgstr "Да" -#: FlatCAMApp.py:3778 +#: FlatCAMApp.py:3880 #, python-format msgid "[success] Converted units to %s" msgstr "[success] Конвертирование единиц в %s" -#: FlatCAMApp.py:3789 +#: FlatCAMApp.py:3891 msgid "[WARNING_NOTCL] Units conversion cancelled." msgstr "[WARNING_NOTCL] Преобразование единиц отменено." -#: FlatCAMApp.py:4441 +#: FlatCAMApp.py:4543 msgid "Open file" msgstr "Открыть файл" -#: FlatCAMApp.py:4472 FlatCAMApp.py:4477 +#: FlatCAMApp.py:4574 FlatCAMApp.py:4579 msgid "Export G-Code ..." msgstr "Экспорт G-Code …" -#: FlatCAMApp.py:4480 +#: FlatCAMApp.py:4582 msgid "[WARNING_NOTCL] Export Code cancelled." msgstr "[WARNING_NOTCL] Экспорт Code отменён." -#: FlatCAMApp.py:4490 +#: FlatCAMApp.py:4592 msgid "[WARNING] No such file or directory" msgstr "[WARNING] Нет такого файла или каталога" -#: FlatCAMApp.py:4497 +#: FlatCAMApp.py:4599 #, python-format msgid "Saved to: %s" msgstr "Сохранёно в: %s" -#: FlatCAMApp.py:4560 FlatCAMApp.py:4593 FlatCAMApp.py:4604 FlatCAMApp.py:4615 +#: FlatCAMApp.py:4662 FlatCAMApp.py:4695 FlatCAMApp.py:4706 FlatCAMApp.py:4717 #: flatcamTools/ToolNonCopperClear.py:489 flatcamTools/ToolSolderPaste.py:765 msgid "" "[WARNING_NOTCL] Please enter a tool diameter with non-zero value, in Float " @@ -323,12 +323,12 @@ msgstr "" "[WARNING_NOTCL] Пожалуйста, введите диаметр инструмента с ненулевым " "значением в float формате." -#: FlatCAMApp.py:4565 FlatCAMApp.py:4598 FlatCAMApp.py:4609 FlatCAMApp.py:4620 +#: FlatCAMApp.py:4667 FlatCAMApp.py:4700 FlatCAMApp.py:4711 FlatCAMApp.py:4722 #: flatcamGUI/FlatCAMGUI.py:3001 msgid "[WARNING_NOTCL] Adding Tool cancelled ..." msgstr "[WARNING_NOTCL] Добавление инструмента отменено ..." -#: FlatCAMApp.py:4568 +#: FlatCAMApp.py:4670 msgid "" "Adding Tool works only when Advanced is checked.\n" "Go to Preferences -> General - Show Advanced Options." @@ -337,128 +337,128 @@ msgstr "" "«Дополнительно».\n" "Перейдите в Настройки -> Основные парам. - Показать дополнительные параметры." -#: FlatCAMApp.py:4681 +#: FlatCAMApp.py:4783 msgid "Object(s) deleted ..." msgstr "Объект(ы) удален ..." -#: FlatCAMApp.py:4685 +#: FlatCAMApp.py:4787 msgid "Failed. No object(s) selected..." msgstr "Нудача. Объекты не выбраны ..." -#: FlatCAMApp.py:4687 +#: FlatCAMApp.py:4789 msgid "Save the work in Editor and try again ..." msgstr "Сохраните работу в редакторе и попробуйте снова ..." -#: FlatCAMApp.py:4700 +#: FlatCAMApp.py:4802 msgid "Click to set the origin ..." msgstr "Кликните, чтобы указать начало координат ..." -#: FlatCAMApp.py:4712 +#: FlatCAMApp.py:4814 msgid "Jump to ..." msgstr "Перейти к ..." -#: FlatCAMApp.py:4713 +#: FlatCAMApp.py:4815 msgid "Enter the coordinates in format X,Y:" msgstr "Введите координаты в формате X, Y:" -#: FlatCAMApp.py:4720 +#: FlatCAMApp.py:4822 msgid "Wrong coordinates. Enter coordinates in format: X,Y" msgstr "Неверные координаты. Введите координаты в формате: X, Y" -#: FlatCAMApp.py:4738 flatcamEditors/FlatCAMExcEditor.py:2320 +#: FlatCAMApp.py:4840 flatcamEditors/FlatCAMExcEditor.py:2320 #: flatcamEditors/FlatCAMExcEditor.py:2327 -#: flatcamEditors/FlatCAMGeoEditor.py:3645 -#: flatcamEditors/FlatCAMGeoEditor.py:3659 +#: flatcamEditors/FlatCAMGeoEditor.py:3648 +#: flatcamEditors/FlatCAMGeoEditor.py:3662 #: flatcamEditors/FlatCAMGrbEditor.py:1040 #: flatcamEditors/FlatCAMGrbEditor.py:1141 #: flatcamEditors/FlatCAMGrbEditor.py:1409 #: flatcamEditors/FlatCAMGrbEditor.py:1666 -#: flatcamEditors/FlatCAMGrbEditor.py:3950 -#: flatcamEditors/FlatCAMGrbEditor.py:3964 flatcamGUI/FlatCAMGUI.py:2414 +#: flatcamEditors/FlatCAMGrbEditor.py:3960 +#: flatcamEditors/FlatCAMGrbEditor.py:3974 flatcamGUI/FlatCAMGUI.py:2414 #: flatcamGUI/FlatCAMGUI.py:2426 msgid "[success] Done." msgstr "[success] Готово." -#: FlatCAMApp.py:4870 FlatCAMApp.py:4937 +#: FlatCAMApp.py:4972 FlatCAMApp.py:5039 msgid "[WARNING_NOTCL] No object is selected. Select an object and try again." msgstr "[WARNING_NOTCL] Объект не выбран. Выберите объект и попробуйте снова." -#: FlatCAMApp.py:4978 +#: FlatCAMApp.py:5080 msgid "[success] Origin set ..." msgstr "[success] Начало координат установлено ..." -#: FlatCAMApp.py:4998 +#: FlatCAMApp.py:5100 msgid "Preferences" msgstr "Настройки" -#: FlatCAMApp.py:5018 +#: FlatCAMApp.py:5120 msgid "[WARNING_NOTCL] No object selected to Flip on Y axis." msgstr "[WARNING_NOTCL] Не выбран объект для отражения по оси Y." -#: FlatCAMApp.py:5043 +#: FlatCAMApp.py:5145 msgid "[success] Flip on Y axis done." msgstr "[success] Отражение по оси Y завершено." -#: FlatCAMApp.py:5045 FlatCAMApp.py:5085 +#: FlatCAMApp.py:5147 FlatCAMApp.py:5187 #: flatcamEditors/FlatCAMGeoEditor.py:1355 -#: flatcamEditors/FlatCAMGrbEditor.py:5331 flatcamTools/ToolTransform.py:748 +#: flatcamEditors/FlatCAMGrbEditor.py:5343 flatcamTools/ToolTransform.py:748 #, python-format msgid "[ERROR_NOTCL] Due of %s, Flip action was not executed." msgstr "[ERROR_NOTCL] Из-за %s, операция переворота не была выполнена." -#: FlatCAMApp.py:5058 +#: FlatCAMApp.py:5160 msgid "[WARNING_NOTCL] No object selected to Flip on X axis." msgstr "[WARNING_NOTCL] Не выбран объект для отражения по оси Х." -#: FlatCAMApp.py:5083 +#: FlatCAMApp.py:5185 msgid "[success] Flip on X axis done." msgstr "[success] Отражение по оси Х завершено." -#: FlatCAMApp.py:5098 +#: FlatCAMApp.py:5200 msgid "[WARNING_NOTCL] No object selected to Rotate." msgstr "[WARNING_NOTCL] Не выбран ни один объект для вращения." -#: FlatCAMApp.py:5101 FlatCAMApp.py:5146 FlatCAMApp.py:5177 +#: FlatCAMApp.py:5203 FlatCAMApp.py:5248 FlatCAMApp.py:5279 msgid "Transform" msgstr "Трансформация" -#: FlatCAMApp.py:5101 FlatCAMApp.py:5146 FlatCAMApp.py:5177 +#: FlatCAMApp.py:5203 FlatCAMApp.py:5248 FlatCAMApp.py:5279 msgid "Enter the Angle value:" msgstr "Введите значение угла:" -#: FlatCAMApp.py:5131 +#: FlatCAMApp.py:5233 msgid "[success] Rotation done." msgstr "[success] Вращение завершено." -#: FlatCAMApp.py:5133 flatcamEditors/FlatCAMGeoEditor.py:1298 -#: flatcamEditors/FlatCAMGrbEditor.py:5262 flatcamTools/ToolTransform.py:677 +#: FlatCAMApp.py:5235 flatcamEditors/FlatCAMGeoEditor.py:1298 +#: flatcamEditors/FlatCAMGrbEditor.py:5272 flatcamTools/ToolTransform.py:677 #, python-format msgid "[ERROR_NOTCL] Due of %s, rotation movement was not executed." msgstr "[ERROR_NOTCL] Из-за %s вращение не было выполнено." -#: FlatCAMApp.py:5144 +#: FlatCAMApp.py:5246 msgid "[WARNING_NOTCL] No object selected to Skew/Shear on X axis." msgstr "[WARNING_NOTCL] Не выбран ни один объект для наклона/сдвига по оси X." -#: FlatCAMApp.py:5165 +#: FlatCAMApp.py:5267 msgid "[success] Skew on X axis done." msgstr "[success] Наклон по оси X выполнен." -#: FlatCAMApp.py:5175 +#: FlatCAMApp.py:5277 msgid "[WARNING_NOTCL] No object selected to Skew/Shear on Y axis." msgstr "[WARNING_NOTCL] Нет объекта, выбранного для наклона/сдвига по оси Y." -#: FlatCAMApp.py:5196 +#: FlatCAMApp.py:5298 msgid "[success] Skew on Y axis done." msgstr "[success] Наклон по оси Y выполнен." -#: FlatCAMApp.py:5265 +#: FlatCAMApp.py:5368 msgid "Grid On/Off" msgstr "Сетка вкл/откл" -#: FlatCAMApp.py:5278 flatcamEditors/FlatCAMGeoEditor.py:937 +#: FlatCAMApp.py:5381 flatcamEditors/FlatCAMGeoEditor.py:937 #: flatcamEditors/FlatCAMGrbEditor.py:2381 -#: flatcamEditors/FlatCAMGrbEditor.py:4853 flatcamGUI/ObjectUI.py:991 +#: flatcamEditors/FlatCAMGrbEditor.py:4861 flatcamGUI/ObjectUI.py:991 #: flatcamTools/ToolDblSided.py:160 flatcamTools/ToolDblSided.py:208 #: flatcamTools/ToolNonCopperClear.py:134 flatcamTools/ToolPaint.py:131 #: flatcamTools/ToolSolderPaste.py:115 flatcamTools/ToolSolderPaste.py:479 @@ -466,7 +466,7 @@ msgstr "Сетка вкл/откл" msgid "Add" msgstr "Добавить" -#: FlatCAMApp.py:5279 FlatCAMObj.py:3270 +#: FlatCAMApp.py:5382 FlatCAMObj.py:3295 #: flatcamEditors/FlatCAMGrbEditor.py:2386 flatcamGUI/FlatCAMGUI.py:527 #: flatcamGUI/FlatCAMGUI.py:724 flatcamGUI/FlatCAMGUI.py:1616 #: flatcamGUI/FlatCAMGUI.py:1953 flatcamGUI/ObjectUI.py:1007 @@ -475,15 +475,15 @@ msgstr "Добавить" msgid "Delete" msgstr "Удалить" -#: FlatCAMApp.py:5292 +#: FlatCAMApp.py:5395 msgid "New Grid ..." msgstr "Новая сетка ..." -#: FlatCAMApp.py:5293 +#: FlatCAMApp.py:5396 msgid "Enter a Grid Value:" msgstr "Введите размер сетки:" -#: FlatCAMApp.py:5301 FlatCAMApp.py:5328 +#: FlatCAMApp.py:5404 FlatCAMApp.py:5431 msgid "" "[WARNING_NOTCL] Please enter a grid value with non-zero value, in Float " "format." @@ -491,48 +491,52 @@ msgstr "" "[WARNING_NOTCL] Пожалуйста, введите значение сетки с ненулевым значением в " "float формате." -#: FlatCAMApp.py:5307 +#: FlatCAMApp.py:5410 msgid "[success] New Grid added ..." msgstr "[success] Новая сетка добавлена ..." -#: FlatCAMApp.py:5310 +#: FlatCAMApp.py:5413 msgid "[WARNING_NOTCL] Grid already exists ..." msgstr "[WARNING_NOTCL] Сетка уже существует ..." -#: FlatCAMApp.py:5313 +#: FlatCAMApp.py:5416 msgid "[WARNING_NOTCL] Adding New Grid cancelled ..." msgstr "[WARNING_NOTCL] Добавление новой сетки отменено ..." -#: FlatCAMApp.py:5335 +#: FlatCAMApp.py:5438 msgid "[ERROR_NOTCL] Grid Value does not exist ..." msgstr "[ERROR_NOTCL] Значение сетки не существует ..." -#: FlatCAMApp.py:5338 +#: FlatCAMApp.py:5441 msgid "[success] Grid Value deleted ..." msgstr "[success] Значение сетки удалено ..." -#: FlatCAMApp.py:5341 +#: FlatCAMApp.py:5444 msgid "[WARNING_NOTCL] Delete Grid value cancelled ..." msgstr "[WARNING_NOTCL] Удаление значения сетки отменено ..." -#: FlatCAMApp.py:5380 +#: FlatCAMApp.py:5483 msgid "[WARNING_NOTCL] No object selected to copy it's name" msgstr "[WARNING_NOTCL] Нет объекта, выбранного для копирования его имени" -#: FlatCAMApp.py:5384 +#: FlatCAMApp.py:5487 msgid "Name copied on clipboard ..." msgstr "Имя скопировано в буфер обмена ..." -#: FlatCAMApp.py:5677 FlatCAMApp.py:5680 FlatCAMApp.py:5683 FlatCAMApp.py:5686 -#: FlatCAMApp.py:5701 FlatCAMApp.py:5704 FlatCAMApp.py:5707 FlatCAMApp.py:5710 -#: FlatCAMApp.py:5750 FlatCAMApp.py:5753 FlatCAMApp.py:5756 FlatCAMApp.py:5759 +#: FlatCAMApp.py:5529 flatcamEditors/FlatCAMGrbEditor.py:3901 +msgid "[success] Coordinates copied to clipboard." +msgstr "[success] Координаты скопированы в буфер обмена." + +#: FlatCAMApp.py:5785 FlatCAMApp.py:5788 FlatCAMApp.py:5791 FlatCAMApp.py:5794 +#: FlatCAMApp.py:5809 FlatCAMApp.py:5812 FlatCAMApp.py:5815 FlatCAMApp.py:5818 +#: FlatCAMApp.py:5858 FlatCAMApp.py:5861 FlatCAMApp.py:5864 FlatCAMApp.py:5867 #: ObjectCollection.py:719 ObjectCollection.py:722 ObjectCollection.py:725 #: ObjectCollection.py:728 #, python-brace-format msgid "[selected]{name} selected" msgstr "[selected]{name} выбран" -#: FlatCAMApp.py:5876 +#: FlatCAMApp.py:5984 msgid "" "There are files/objects opened in FlatCAM.\n" "Creating a New project will delete them.\n" @@ -542,110 +546,110 @@ msgstr "" "Создание нового проекта удалит их.\n" "Вы хотите сохранить проект?" -#: FlatCAMApp.py:5897 +#: FlatCAMApp.py:6005 msgid "[success] New Project created..." msgstr "[success] Новый проект создан ..." -#: FlatCAMApp.py:6013 FlatCAMApp.py:6016 flatcamGUI/FlatCAMGUI.py:608 +#: FlatCAMApp.py:6121 FlatCAMApp.py:6124 flatcamGUI/FlatCAMGUI.py:608 #: flatcamGUI/FlatCAMGUI.py:1832 msgid "Open Gerber" msgstr "Открыть Gerber" -#: FlatCAMApp.py:6021 +#: FlatCAMApp.py:6129 msgid "[WARNING_NOTCL] Open Gerber cancelled." msgstr "[WARNING_NOTCL] Открытие Gerber отменено." -#: FlatCAMApp.py:6042 FlatCAMApp.py:6045 flatcamGUI/FlatCAMGUI.py:609 +#: FlatCAMApp.py:6150 FlatCAMApp.py:6153 flatcamGUI/FlatCAMGUI.py:609 #: flatcamGUI/FlatCAMGUI.py:1833 msgid "Open Excellon" msgstr "Открыть Excellon" -#: FlatCAMApp.py:6050 +#: FlatCAMApp.py:6158 msgid "[WARNING_NOTCL] Open Excellon cancelled." msgstr "[WARNING_NOTCL] Открытие Excellon отменено." -#: FlatCAMApp.py:6072 FlatCAMApp.py:6075 +#: FlatCAMApp.py:6180 FlatCAMApp.py:6183 msgid "Open G-Code" msgstr "Открыть G-Code" -#: FlatCAMApp.py:6080 +#: FlatCAMApp.py:6188 msgid "[WARNING_NOTCL] Open G-Code cancelled." msgstr "[WARNING_NOTCL] Открытие G-Code отменено." -#: FlatCAMApp.py:6098 FlatCAMApp.py:6101 +#: FlatCAMApp.py:6206 FlatCAMApp.py:6209 msgid "Open Project" msgstr "Открыть проект" -#: FlatCAMApp.py:6109 +#: FlatCAMApp.py:6217 msgid "[WARNING_NOTCL] Open Project cancelled." msgstr "[WARNING_NOTCL] Открытие проекта отменено." -#: FlatCAMApp.py:6128 FlatCAMApp.py:6131 +#: FlatCAMApp.py:6236 FlatCAMApp.py:6239 msgid "Open Configuration File" msgstr "Открыть файл конфигурации" -#: FlatCAMApp.py:6135 +#: FlatCAMApp.py:6243 msgid "[WARNING_NOTCL] Open Config cancelled." msgstr "[WARNING_NOTCL] Открытие конфигурации отменено." -#: FlatCAMApp.py:6150 FlatCAMApp.py:6401 FlatCAMApp.py:8551 FlatCAMApp.py:8571 -#: FlatCAMApp.py:8592 FlatCAMApp.py:8614 +#: FlatCAMApp.py:6258 FlatCAMApp.py:6509 FlatCAMApp.py:8662 FlatCAMApp.py:8682 +#: FlatCAMApp.py:8703 FlatCAMApp.py:8725 msgid "[WARNING_NOTCL] No object selected." msgstr "[WARNING_NOTCL] Нет выбранных объектов." -#: FlatCAMApp.py:6151 FlatCAMApp.py:6402 +#: FlatCAMApp.py:6259 FlatCAMApp.py:6510 msgid "Please Select a Geometry object to export" msgstr "Выберите объект Geometry для экспорта" -#: FlatCAMApp.py:6162 +#: FlatCAMApp.py:6270 msgid "[ERROR_NOTCL] Only Geometry, Gerber and CNCJob objects can be used." msgstr "" "[ERROR_NOTCL] Можно использовать только объекты Geometry, Gerber и CNCJob." -#: FlatCAMApp.py:6175 FlatCAMApp.py:6179 +#: FlatCAMApp.py:6283 FlatCAMApp.py:6287 msgid "Export SVG" msgstr "Экспорт SVG" -#: FlatCAMApp.py:6184 +#: FlatCAMApp.py:6292 msgid "[WARNING_NOTCL] Export SVG cancelled." msgstr "[WARNING_NOTCL] Экспорт SVG отменён." -#: FlatCAMApp.py:6203 +#: FlatCAMApp.py:6311 msgid "[[WARNING_NOTCL]] Data must be a 3D array with last dimension 3 or 4" msgstr "" "[WARNING_NOTCL] Данные должны быть 3D массивом с последним размером 3 или 4" -#: FlatCAMApp.py:6209 FlatCAMApp.py:6213 +#: FlatCAMApp.py:6317 FlatCAMApp.py:6321 msgid "Export PNG Image" msgstr "Экспорт PNG изображения" -#: FlatCAMApp.py:6218 +#: FlatCAMApp.py:6326 msgid "Export PNG cancelled." msgstr "Экспорт PNG отменён." -#: FlatCAMApp.py:6237 +#: FlatCAMApp.py:6345 msgid "" "[WARNING_NOTCL] No object selected. Please select an Gerber object to export." msgstr "" "[WARNING_NOTCL] Нет выбранных объектов. Пожалуйста, выберите Gerber объект " "для экспорта." -#: FlatCAMApp.py:6242 FlatCAMApp.py:6365 +#: FlatCAMApp.py:6350 FlatCAMApp.py:6473 msgid "" "[ERROR_NOTCL] Failed. Only Gerber objects can be saved as Gerber files..." msgstr "" "[ERROR_NOTCL] Ошибка. Только объекты Gerber могут быть сохранены как файлы " "Gerber..." -#: FlatCAMApp.py:6254 +#: FlatCAMApp.py:6362 msgid "Save Gerber source file" msgstr "Сохранить исходный файл Gerber" -#: FlatCAMApp.py:6259 +#: FlatCAMApp.py:6367 msgid "[WARNING_NOTCL] Save Gerber source file cancelled." msgstr "[WARNING_NOTCL] Сохранение исходного кода файла Gerber отменено." -#: FlatCAMApp.py:6278 +#: FlatCAMApp.py:6386 msgid "" "[WARNING_NOTCL] No object selected. Please select an Excellon object to " "export." @@ -653,22 +657,22 @@ msgstr "" "[WARNING_NOTCL] Объект не выбран. Пожалуйста, выберите Excellon объект для " "экспорта." -#: FlatCAMApp.py:6283 FlatCAMApp.py:6324 +#: FlatCAMApp.py:6391 FlatCAMApp.py:6432 msgid "" "[ERROR_NOTCL] Failed. Only Excellon objects can be saved as Excellon files..." msgstr "" "[ERROR_NOTCL] Ошибка. Только объекты Excellon могут быть сохранены как файлы " "Excellon..." -#: FlatCAMApp.py:6291 FlatCAMApp.py:6295 +#: FlatCAMApp.py:6399 FlatCAMApp.py:6403 msgid "Save Excellon source file" msgstr "Сохранить исходный файл Excellon" -#: FlatCAMApp.py:6300 +#: FlatCAMApp.py:6408 msgid "[WARNING_NOTCL] Saving Excellon source file cancelled." msgstr "[WARNING_NOTCL] Сохранение исходного кода файла Excellon отменено." -#: FlatCAMApp.py:6319 +#: FlatCAMApp.py:6427 msgid "" "[WARNING_NOTCL] No object selected. Please Select an Excellon object to " "export." @@ -676,95 +680,95 @@ msgstr "" "[WARNING_NOTCL] Объект не выбран. Пожалуйста, выберите Excellon объект для " "экспорта." -#: FlatCAMApp.py:6332 FlatCAMApp.py:6336 +#: FlatCAMApp.py:6440 FlatCAMApp.py:6444 msgid "Export Excellon" msgstr "Экспорт Excellon" -#: FlatCAMApp.py:6341 +#: FlatCAMApp.py:6449 msgid "[WARNING_NOTCL] Export Excellon cancelled." msgstr "[WARNING_NOTCL] Экспорт Excellon отменен." -#: FlatCAMApp.py:6360 +#: FlatCAMApp.py:6468 msgid "" "[WARNING_NOTCL] No object selected. Please Select an Gerber object to export." msgstr "" "[WARNING_NOTCL] Нет выбранных объектов. Пожалуйста, выберите Gerber объект " "для экспорта." -#: FlatCAMApp.py:6373 FlatCAMApp.py:6377 +#: FlatCAMApp.py:6481 FlatCAMApp.py:6485 msgid "Export Gerber" msgstr "Экспорт Gerber" -#: FlatCAMApp.py:6382 +#: FlatCAMApp.py:6490 msgid "[WARNING_NOTCL] Export Gerber cancelled." msgstr "[WARNING_NOTCL] Экспорт Gerber отменен." -#: FlatCAMApp.py:6412 +#: FlatCAMApp.py:6520 msgid "[ERROR_NOTCL] Only Geometry objects can be used." msgstr "[ERROR_NOTCL] Можно использовать только объекты Geometry." -#: FlatCAMApp.py:6426 FlatCAMApp.py:6430 +#: FlatCAMApp.py:6534 FlatCAMApp.py:6538 msgid "Export DXF" msgstr "Экспорт DXF" -#: FlatCAMApp.py:6436 +#: FlatCAMApp.py:6544 msgid "[WARNING_NOTCL] Export DXF cancelled." msgstr "[WARNING_NOTCL] Экспорт DXF отменен." -#: FlatCAMApp.py:6456 FlatCAMApp.py:6459 +#: FlatCAMApp.py:6564 FlatCAMApp.py:6567 msgid "Import SVG" msgstr "Импорт SVG" -#: FlatCAMApp.py:6468 +#: FlatCAMApp.py:6576 msgid "[WARNING_NOTCL] Open SVG cancelled." msgstr "[WARNING_NOTCL] Открытие SVG отменено." -#: FlatCAMApp.py:6487 FlatCAMApp.py:6491 +#: FlatCAMApp.py:6595 FlatCAMApp.py:6599 msgid "Import DXF" msgstr "Импорт DXF" -#: FlatCAMApp.py:6500 +#: FlatCAMApp.py:6608 msgid "[WARNING_NOTCL] Open DXF cancelled." msgstr "[WARNING_NOTCL] Открытие DXF отменено." -#: FlatCAMApp.py:6518 +#: FlatCAMApp.py:6626 #, python-format msgid "%s" msgstr "%s" -#: FlatCAMApp.py:6538 +#: FlatCAMApp.py:6646 msgid "" "[WARNING_NOTCL] Select an Gerber or Excellon file to view it's source file." msgstr "" "[WARNING_NOTCL] Выберите файл Gerber или Excellon для просмотра исходного " "кода файла." -#: FlatCAMApp.py:6545 +#: FlatCAMApp.py:6653 msgid "" "[WARNING_NOTCL] There is no selected object for which to see it's source " "file code." msgstr "" "[WARNING_NOTCL] Нет выбранного объекта, для просмотра исходного кода файла." -#: FlatCAMApp.py:6553 +#: FlatCAMApp.py:6661 msgid "Source Editor" msgstr "Редактор исходного кода" -#: FlatCAMApp.py:6563 +#: FlatCAMApp.py:6671 #, python-format msgid "[ERROR]App.on_view_source() -->%s" msgstr "[ERROR]App.on_view_source() -->%s" -#: FlatCAMApp.py:6575 FlatCAMApp.py:7717 FlatCAMObj.py:5551 +#: FlatCAMApp.py:6683 FlatCAMApp.py:7825 FlatCAMObj.py:5588 #: flatcamTools/ToolSolderPaste.py:1278 msgid "Code Editor" msgstr "Редактор кода" -#: FlatCAMApp.py:6587 +#: FlatCAMApp.py:6695 msgid "Script Editor" msgstr "Редактор сценариев" -#: FlatCAMApp.py:6590 +#: FlatCAMApp.py:6698 msgid "" "#\n" "# CREATE A NEW FLATCAM TCL SCRIPT\n" @@ -808,98 +812,98 @@ msgstr "" "#\n" "\n" -#: FlatCAMApp.py:6613 FlatCAMApp.py:6616 +#: FlatCAMApp.py:6721 FlatCAMApp.py:6724 msgid "Open TCL script" msgstr "Открыть сценарий TCL" -#: FlatCAMApp.py:6624 +#: FlatCAMApp.py:6732 msgid "[WARNING_NOTCL] Open TCL script cancelled." msgstr "[WARNING_NOTCL] Открытие сценария отменено." -#: FlatCAMApp.py:6636 +#: FlatCAMApp.py:6744 #, python-format msgid "[ERROR]App.on_fileopenscript() -->%s" msgstr "[ERROR]App.on_fileopenscript() -->%s" -#: FlatCAMApp.py:6662 FlatCAMApp.py:6665 +#: FlatCAMApp.py:6770 FlatCAMApp.py:6773 msgid "Run TCL script" msgstr "Запустить сценарий TCL" -#: FlatCAMApp.py:6673 +#: FlatCAMApp.py:6781 msgid "[WARNING_NOTCL] Run TCL script cancelled." msgstr "[WARNING_NOTCL] Запуск сценария отменен." -#: FlatCAMApp.py:6723 FlatCAMApp.py:6727 +#: FlatCAMApp.py:6831 FlatCAMApp.py:6835 msgid "Save Project As ..." msgstr "Сохранить проект как..." -#: FlatCAMApp.py:6724 +#: FlatCAMApp.py:6832 #, python-brace-format msgid "{l_save}/Project_{date}" msgstr "{l_save}/Project_{date}" -#: FlatCAMApp.py:6732 +#: FlatCAMApp.py:6840 msgid "[WARNING_NOTCL] Save Project cancelled." msgstr "[WARNING_NOTCL] Сохранение проекта отменено." -#: FlatCAMApp.py:6776 +#: FlatCAMApp.py:6884 msgid "Exporting SVG" msgstr "Экспортирование SVG" -#: FlatCAMApp.py:6810 FlatCAMApp.py:6916 FlatCAMApp.py:7031 +#: FlatCAMApp.py:6918 FlatCAMApp.py:7024 FlatCAMApp.py:7139 #, python-format msgid "[success] SVG file exported to %s" msgstr "[success] Файл SVG экспортируется в %s" -#: FlatCAMApp.py:6841 FlatCAMApp.py:6962 +#: FlatCAMApp.py:6949 FlatCAMApp.py:7070 #, python-format msgid "[WARNING_NOTCL] No object Box. Using instead %s" msgstr "[WARNING_NOTCL] Нет объекта Box. Используйте взамен %s" -#: FlatCAMApp.py:6919 FlatCAMApp.py:7034 +#: FlatCAMApp.py:7027 FlatCAMApp.py:7142 msgid "Generating Film ... Please wait." msgstr "Создание фильма ... Пожалуйста, подождите." -#: FlatCAMApp.py:7182 +#: FlatCAMApp.py:7290 #, python-format msgid "[success] Excellon file exported to %s" msgstr "[success] Файл Excellon экспортируется в %s" -#: FlatCAMApp.py:7189 +#: FlatCAMApp.py:7297 msgid "Exporting Excellon" msgstr "Экспорт Excellon" -#: FlatCAMApp.py:7194 FlatCAMApp.py:7201 +#: FlatCAMApp.py:7302 FlatCAMApp.py:7309 msgid "[ERROR_NOTCL] Could not export Excellon file." msgstr "[ERROR_NOTCL] Не удалось экспортировать файл Excellon." -#: FlatCAMApp.py:7299 +#: FlatCAMApp.py:7407 #, python-format msgid "[success] Gerber file exported to %s" msgstr "[success] Файл Gerber экспортируется в %s" -#: FlatCAMApp.py:7306 +#: FlatCAMApp.py:7414 msgid "Exporting Gerber" msgstr "Экспортирование Gerber" -#: FlatCAMApp.py:7311 FlatCAMApp.py:7318 +#: FlatCAMApp.py:7419 FlatCAMApp.py:7426 msgid "[ERROR_NOTCL] Could not export Gerber file." msgstr "[ERROR_NOTCL] Не удалось экспортировать файл Gerber." -#: FlatCAMApp.py:7358 +#: FlatCAMApp.py:7466 #, python-format msgid "[success] DXF file exported to %s" msgstr "[success] Файл DXF экспортируется в %s" -#: FlatCAMApp.py:7364 +#: FlatCAMApp.py:7472 msgid "Exporting DXF" msgstr "Экспорт DXF" -#: FlatCAMApp.py:7369 FlatCAMApp.py:7376 +#: FlatCAMApp.py:7477 FlatCAMApp.py:7484 msgid "[[WARNING_NOTCL]] Could not export DXF file." msgstr "[WARNING_NOTCL] Не удалось экспортировать файл DXF." -#: FlatCAMApp.py:7396 FlatCAMApp.py:7438 FlatCAMApp.py:7482 +#: FlatCAMApp.py:7504 FlatCAMApp.py:7546 FlatCAMApp.py:7590 msgid "" "[ERROR_NOTCL] Not supported type is picked as parameter. Only Geometry and " "Gerber are supported" @@ -907,98 +911,98 @@ msgstr "" "[ERROR_NOTCL] В качестве параметра выбран не поддерживаемый тип. " "Поддерживаются только Geometry и Gerber" -#: FlatCAMApp.py:7406 +#: FlatCAMApp.py:7514 msgid "Importing SVG" msgstr "Импортирование SVG" -#: FlatCAMApp.py:7417 FlatCAMApp.py:7459 FlatCAMApp.py:7502 FlatCAMApp.py:7579 -#: FlatCAMApp.py:7640 FlatCAMApp.py:7703 flatcamTools/ToolPDF.py:212 +#: FlatCAMApp.py:7525 FlatCAMApp.py:7567 FlatCAMApp.py:7610 FlatCAMApp.py:7687 +#: FlatCAMApp.py:7748 FlatCAMApp.py:7811 flatcamTools/ToolPDF.py:212 #, python-format msgid "[success] Opened: %s" msgstr "[success] Открыт: %s" -#: FlatCAMApp.py:7448 +#: FlatCAMApp.py:7556 msgid "Importing DXF" msgstr "Импорт DXF" -#: FlatCAMApp.py:7490 +#: FlatCAMApp.py:7598 msgid "Importing Image" msgstr "Импорт изображения" -#: FlatCAMApp.py:7531 FlatCAMApp.py:7533 +#: FlatCAMApp.py:7639 FlatCAMApp.py:7641 #, python-format msgid "[ERROR_NOTCL] Failed to open file: %s" msgstr "[ERROR_NOTCL] Не удалось открыть файл: %s" -#: FlatCAMApp.py:7536 +#: FlatCAMApp.py:7644 #, python-brace-format msgid "[ERROR_NOTCL] Failed to parse file: {name}. {error}" msgstr "[ERROR_NOTCL] Не удалось проанализировать файл: {name}. {error}" -#: FlatCAMApp.py:7543 FlatCAMObj.py:4230 +#: FlatCAMApp.py:7651 FlatCAMObj.py:4266 #: flatcamEditors/FlatCAMExcEditor.py:2077 msgid "[ERROR] An internal error has ocurred. See shell.\n" msgstr "[ERROR] Произошла внутренняя ошибка. Посмотрите в командную строку.\n" -#: FlatCAMApp.py:7552 +#: FlatCAMApp.py:7660 msgid "" "[ERROR_NOTCL] Object is not Gerber file or empty. Aborting object creation." msgstr "" "[ERROR_NOTCL] Объект не является файлом Gerber или пустым. Прерывание " "создания объекта." -#: FlatCAMApp.py:7560 +#: FlatCAMApp.py:7668 msgid "Opening Gerber" msgstr "Открытие Gerber" -#: FlatCAMApp.py:7570 +#: FlatCAMApp.py:7678 msgid "[ERROR_NOTCL] Open Gerber failed. Probable not a Gerber file." msgstr "[ERROR_NOTCL] Открыть Gerber не удалось. Вероятно это не Gerber файл." -#: FlatCAMApp.py:7603 flatcamTools/ToolPcbWizard.py:421 +#: FlatCAMApp.py:7711 flatcamTools/ToolPcbWizard.py:421 msgid "[ERROR_NOTCL] This is not Excellon file." msgstr "[ERROR_NOTCL] Это не Excellon файл." -#: FlatCAMApp.py:7606 +#: FlatCAMApp.py:7714 #, python-format msgid "[ERROR_NOTCL] Cannot open file: %s" msgstr "[ERROR_NOTCL] Не удается открыть файл: %s" -#: FlatCAMApp.py:7611 flatcamTools/ToolPcbWizard.py:429 +#: FlatCAMApp.py:7719 flatcamTools/ToolPcbWizard.py:429 msgid "[ERROR_NOTCL] An internal error has occurred. See shell.\n" msgstr "" "[ERROR_NOTCL] Произошла внутренняя ошибка. Смотрите коммандную строку.\n" -#: FlatCAMApp.py:7624 flatcamTools/ToolPDF.py:262 +#: FlatCAMApp.py:7732 flatcamTools/ToolPDF.py:262 #: flatcamTools/ToolPcbWizard.py:442 #, python-format msgid "[ERROR_NOTCL] No geometry found in file: %s" msgstr "[ERROR_NOTCL] Геометрия не найдена в файле: %s" -#: FlatCAMApp.py:7627 +#: FlatCAMApp.py:7735 msgid "Opening Excellon." msgstr "Открытие Excellon." -#: FlatCAMApp.py:7633 +#: FlatCAMApp.py:7741 msgid "[ERROR_NOTCL] Open Excellon file failed. Probable not an Excellon file." msgstr "" "[ERROR_NOTCL] Не удалось открыть файл Excellon. Вероятно это не файл " "Excellon." -#: FlatCAMApp.py:7670 +#: FlatCAMApp.py:7778 #, python-format msgid "[ERROR_NOTCL] Failed to open %s" msgstr "[ERROR_NOTCL] Не удалось открыть %s" -#: FlatCAMApp.py:7680 +#: FlatCAMApp.py:7788 msgid "[ERROR_NOTCL] This is not GCODE" msgstr "[ERROR_NOTCL] Это не GCODE" -#: FlatCAMApp.py:7686 +#: FlatCAMApp.py:7794 msgid "Opening G-Code." msgstr "Открытие G-Code." -#: FlatCAMApp.py:7694 +#: FlatCAMApp.py:7802 msgid "" "[ERROR_NOTCL] Failed to create CNCJob Object. Probable not a GCode file.\n" " Attempting to create a FlatCAM CNCJob Object from G-Code file failed during " @@ -1008,26 +1012,26 @@ msgstr "" " Попытка создать объект Flatcam CNCJob из файла G-кода не удалась во время " "обработки" -#: FlatCAMApp.py:7734 +#: FlatCAMApp.py:7842 #, python-format msgid "[ERROR_NOTCL] Failed to open config file: %s" msgstr "[ERROR_NOTCL] Не удалось открыть файл конфигурации: %s" -#: FlatCAMApp.py:7760 FlatCAMApp.py:7777 +#: FlatCAMApp.py:7868 FlatCAMApp.py:7885 #, python-format msgid "[ERROR_NOTCL] Failed to open project file: %s" msgstr "[ERROR_NOTCL] Не удалось открыть файл проекта: %s" -#: FlatCAMApp.py:7800 +#: FlatCAMApp.py:7908 #, python-format msgid "[success] Project loaded from: %s" msgstr "[success] Проект загружен из: %s" -#: FlatCAMApp.py:7905 +#: FlatCAMApp.py:8013 msgid "Available commands:\n" msgstr "Доступные команды:\n" -#: FlatCAMApp.py:7907 +#: FlatCAMApp.py:8015 msgid "" "\n" "\n" @@ -1039,27 +1043,27 @@ msgstr "" "Для дополнительной информации ведите help <имя_команды> .\n" "Пример: help open_gerber" -#: FlatCAMApp.py:8057 +#: FlatCAMApp.py:8165 msgid "Shows list of commands." msgstr "Показывает список команд." -#: FlatCAMApp.py:8114 +#: FlatCAMApp.py:8222 msgid "[ERROR_NOTCL] Failed to load recent item list." msgstr "[ERROR_NOTCL] Не удалось загрузить список недавних файлов." -#: FlatCAMApp.py:8121 +#: FlatCAMApp.py:8229 msgid "[ERROR_NOTCL] Failed to parse recent item list." msgstr "[ERROR_NOTCL] Не удалось прочитать список недавних файлов." -#: FlatCAMApp.py:8165 +#: FlatCAMApp.py:8273 msgid "Clear Recent files" msgstr "Очистить список" -#: FlatCAMApp.py:8182 flatcamGUI/FlatCAMGUI.py:968 +#: FlatCAMApp.py:8290 flatcamGUI/FlatCAMGUI.py:968 msgid "Shortcut Key List" msgstr "Список сочетаний клавиш" -#: FlatCAMApp.py:8189 +#: FlatCAMApp.py:8297 msgid "" "\n" "

Selected Tab - Choose an Item from " @@ -1154,25 +1158,25 @@ msgstr "" "\n" " " -#: FlatCAMApp.py:8293 +#: FlatCAMApp.py:8404 msgid "[WARNING_NOTCL] Failed checking for latest version. Could not connect." msgstr "" "[WARNING_NOTCL] Не удалось проверить обновление программы. Отсутствует " "интернет подключение ." -#: FlatCAMApp.py:8300 +#: FlatCAMApp.py:8411 msgid "[ERROR_NOTCL] Could not parse information about latest version." msgstr "[ERROR_NOTCL] Не удается обработать информацию о последней версии." -#: FlatCAMApp.py:8310 +#: FlatCAMApp.py:8421 msgid "[success] FlatCAM is up to date!" msgstr "[success] FlatCAM в актуальном состоянии!" -#: FlatCAMApp.py:8315 +#: FlatCAMApp.py:8426 msgid "Newer Version Available" msgstr "Доступна новая версия" -#: FlatCAMApp.py:8316 +#: FlatCAMApp.py:8427 msgid "" "There is a newer version of FlatCAM available for download:\n" "\n" @@ -1180,97 +1184,97 @@ msgstr "" "Новая версия FlatCAM доступна для загрузки:\n" "\n" -#: FlatCAMApp.py:8318 +#: FlatCAMApp.py:8429 msgid "info" msgstr "инфо" -#: FlatCAMApp.py:8337 +#: FlatCAMApp.py:8448 msgid "[success] All plots disabled." msgstr "[success] Все участки отключены." -#: FlatCAMApp.py:8343 +#: FlatCAMApp.py:8454 msgid "[success] All non selected plots disabled." msgstr "[success] Все невыбранные участки отключены.." -#: FlatCAMApp.py:8349 +#: FlatCAMApp.py:8460 msgid "[success] All plots enabled." msgstr "[success] Все участки включены." -#: FlatCAMApp.py:8355 +#: FlatCAMApp.py:8466 msgid "[success] Selected plots enabled..." msgstr "[success] Выбранные участки включены..." -#: FlatCAMApp.py:8363 +#: FlatCAMApp.py:8474 msgid "[success] Selected plots disabled..." msgstr "[success] Выбранные участки отключены..." -#: FlatCAMApp.py:8373 FlatCAMApp.py:8386 +#: FlatCAMApp.py:8484 FlatCAMApp.py:8497 msgid "Working ..." msgstr "Обработка…" -#: FlatCAMApp.py:8420 +#: FlatCAMApp.py:8531 msgid "Saving FlatCAM Project" msgstr "Сохранение проекта FlatCAM" -#: FlatCAMApp.py:8441 FlatCAMApp.py:8472 +#: FlatCAMApp.py:8552 FlatCAMApp.py:8583 #, python-format msgid "[success] Project saved to: %s" msgstr "[success] Проект сохранён в: %s" -#: FlatCAMApp.py:8459 +#: FlatCAMApp.py:8570 #, python-format msgid "[ERROR_NOTCL] Failed to verify project file: %s. Retry to save it." msgstr "" "[ERROR_NOTCL] Не удалось проверить файл проекта: %s. Повторите попытку " "сохранения." -#: FlatCAMApp.py:8466 +#: FlatCAMApp.py:8577 #, python-format msgid "[ERROR_NOTCL] Failed to parse saved project file: %s. Retry to save it." msgstr "" "[ERROR_NOTCL] Не удалось проанализировать сохраняемый файл проекта: %s. " "Повторите попытку сохранения." -#: FlatCAMApp.py:8474 +#: FlatCAMApp.py:8585 #, python-format msgid "[ERROR_NOTCL] Failed to save project file: %s. Retry to save it." msgstr "" "[ERROR_NOTCL] Не удалось сохранить файл проекта: %s. Повторите попытку " "сохранения." -#: FlatCAMObj.py:202 +#: FlatCAMObj.py:207 #, python-brace-format msgid "[success] Name changed from {old} to {new}" msgstr "[success] Имя изменено с {old} на {new}" -#: FlatCAMObj.py:545 FlatCAMObj.py:2031 FlatCAMObj.py:3275 FlatCAMObj.py:5448 +#: FlatCAMObj.py:553 FlatCAMObj.py:2034 FlatCAMObj.py:3300 FlatCAMObj.py:5485 msgid "Basic" msgstr "Базовый" -#: FlatCAMObj.py:557 FlatCAMObj.py:2047 FlatCAMObj.py:3297 FlatCAMObj.py:5454 +#: FlatCAMObj.py:565 FlatCAMObj.py:2050 FlatCAMObj.py:3322 FlatCAMObj.py:5491 msgid "Advanced" msgstr "Расширенный" -#: FlatCAMObj.py:920 FlatCAMObj.py:975 +#: FlatCAMObj.py:927 FlatCAMObj.py:982 #, python-format msgid "[success] Isolation geometry created: %s" msgstr "[success] Создана геометрия изоляции: %s" -#: FlatCAMObj.py:1154 +#: FlatCAMObj.py:1161 msgid "Plotting Apertures" msgstr "Создание отверстия" -#: FlatCAMObj.py:1870 flatcamEditors/FlatCAMExcEditor.py:1368 +#: FlatCAMObj.py:1877 flatcamEditors/FlatCAMExcEditor.py:1368 msgid "Total Drills" msgstr "Всего отверстий" -#: FlatCAMObj.py:1896 flatcamEditors/FlatCAMExcEditor.py:1400 +#: FlatCAMObj.py:1903 flatcamEditors/FlatCAMExcEditor.py:1400 msgid "Total Slots" msgstr "Всего пазов" -#: FlatCAMObj.py:2103 FlatCAMObj.py:3348 FlatCAMObj.py:3646 FlatCAMObj.py:3833 -#: FlatCAMObj.py:3846 FlatCAMObj.py:3963 FlatCAMObj.py:4380 FlatCAMObj.py:4618 -#: FlatCAMObj.py:5031 flatcamEditors/FlatCAMExcEditor.py:1474 +#: FlatCAMObj.py:2106 FlatCAMObj.py:3374 FlatCAMObj.py:3674 FlatCAMObj.py:3869 +#: FlatCAMObj.py:3882 FlatCAMObj.py:3999 FlatCAMObj.py:4416 FlatCAMObj.py:4654 +#: FlatCAMObj.py:5067 flatcamEditors/FlatCAMExcEditor.py:1474 #: flatcamTools/ToolCalculators.py:307 flatcamTools/ToolCalculators.py:318 #: flatcamTools/ToolCalculators.py:330 flatcamTools/ToolCalculators.py:345 #: flatcamTools/ToolCalculators.py:358 flatcamTools/ToolCalculators.py:372 @@ -1289,23 +1293,23 @@ msgstr "Всего пазов" msgid "[ERROR_NOTCL] Wrong value format entered, use a number." msgstr "[ERROR_NOTCL] Неправильно введен формат значения, используйте числа." -#: FlatCAMObj.py:2327 FlatCAMObj.py:2418 FlatCAMObj.py:2540 +#: FlatCAMObj.py:2330 FlatCAMObj.py:2422 FlatCAMObj.py:2545 msgid "" "[ERROR_NOTCL] Please select one or more tools from the list and try again." msgstr "" "[ERROR_NOTCL] Пожалуйста, выберите один или несколько инструментов из списка " "и попробуйте еще раз." -#: FlatCAMObj.py:2334 +#: FlatCAMObj.py:2337 msgid "" "[ERROR_NOTCL] Milling tool for DRILLS is larger than hole size. Cancelled." msgstr "[ERROR_NOTCL] Сверло больше, чем размер отверстия. Отмена." -#: FlatCAMObj.py:2348 FlatCAMObj.py:2442 FlatCAMObj.py:2560 +#: FlatCAMObj.py:2351 FlatCAMObj.py:2446 FlatCAMObj.py:2565 msgid "Tool_nr" msgstr "№ инструмента" -#: FlatCAMObj.py:2348 FlatCAMObj.py:2442 FlatCAMObj.py:2560 +#: FlatCAMObj.py:2351 FlatCAMObj.py:2446 FlatCAMObj.py:2565 #: flatcamEditors/FlatCAMExcEditor.py:819 #: flatcamEditors/FlatCAMExcEditor.py:2020 flatcamGUI/ObjectUI.py:556 #: flatcamTools/ToolNonCopperClear.py:83 flatcamTools/ToolPaint.py:80 @@ -1313,22 +1317,22 @@ msgstr "№ инструмента" msgid "Diameter" msgstr "Диаметр" -#: FlatCAMObj.py:2348 FlatCAMObj.py:2442 FlatCAMObj.py:2560 +#: FlatCAMObj.py:2351 FlatCAMObj.py:2446 FlatCAMObj.py:2565 msgid "Drills_Nr" msgstr "№ отверстия" -#: FlatCAMObj.py:2348 FlatCAMObj.py:2442 FlatCAMObj.py:2560 +#: FlatCAMObj.py:2351 FlatCAMObj.py:2446 FlatCAMObj.py:2565 msgid "Slots_Nr" msgstr "№ паза" -#: FlatCAMObj.py:2428 +#: FlatCAMObj.py:2432 msgid "" "[ERROR_NOTCL] Milling tool for SLOTS is larger than hole size. Cancelled." msgstr "" "[ERROR_NOTCL] Инструмент для прорезания пазов больше, чем размер отверстия. " "Отмена." -#: FlatCAMObj.py:2602 FlatCAMObj.py:4268 FlatCAMObj.py:4484 FlatCAMObj.py:4801 +#: FlatCAMObj.py:2607 FlatCAMObj.py:4304 FlatCAMObj.py:4520 FlatCAMObj.py:4837 msgid "" "[ERROR_NOTCL] Wrong value format for self.defaults[\"z_pdepth\"] or self." "options[\"z_pdepth\"]" @@ -1336,7 +1340,7 @@ msgstr "" "[ERROR_NOTCL] Неправильный формат значения для self.defaults[\"z_pdepth\"] " "или self.options[\"z_pdepth\"]" -#: FlatCAMObj.py:2614 FlatCAMObj.py:4280 FlatCAMObj.py:4496 FlatCAMObj.py:4813 +#: FlatCAMObj.py:2619 FlatCAMObj.py:4316 FlatCAMObj.py:4532 FlatCAMObj.py:4849 msgid "" "[ERROR_NOTCL] Wrong value format for self.defaults[\"feedrate_probe\"] or " "self.options[\"feedrate_probe\"]" @@ -1344,12 +1348,12 @@ msgstr "" "[ERROR_NOTCL] Неправильный формат значения для self.defaults[\"feedrate_probe" "\"] или self.options[\"feedrate_probe\"]" -#: FlatCAMObj.py:2646 FlatCAMObj.py:4689 FlatCAMObj.py:4694 FlatCAMObj.py:4844 +#: FlatCAMObj.py:2651 FlatCAMObj.py:4725 FlatCAMObj.py:4730 FlatCAMObj.py:4880 msgid "Generating CNC Code" msgstr "Генерация кода ЧПУ" -#: FlatCAMObj.py:2672 FlatCAMObj.py:4990 camlib.py:5164 camlib.py:5623 -#: camlib.py:5886 +#: FlatCAMObj.py:2677 FlatCAMObj.py:5026 camlib.py:5167 camlib.py:5626 +#: camlib.py:5889 msgid "" "[ERROR]The Toolchange X,Y field in Edit -> Preferences has to be in the " "format (x, y) \n" @@ -1359,61 +1363,61 @@ msgstr "" "формате (x, y)\n" "но теперь есть только одно значение, а не два. " -#: FlatCAMObj.py:2984 FlatCAMObj.py:3889 FlatCAMObj.py:3890 FlatCAMObj.py:3899 +#: FlatCAMObj.py:2997 FlatCAMObj.py:3925 FlatCAMObj.py:3926 FlatCAMObj.py:3935 msgid "Iso" msgstr "Iso" -#: FlatCAMObj.py:2984 FlatCAMObj.py:3233 FlatCAMObj.py:3513 +#: FlatCAMObj.py:2997 FlatCAMObj.py:3257 FlatCAMObj.py:3539 msgid "Rough" msgstr "Грубый" -#: FlatCAMObj.py:2984 +#: FlatCAMObj.py:2997 msgid "Finish" msgstr "Конец" -#: FlatCAMObj.py:3268 flatcamGUI/FlatCAMGUI.py:526 flatcamGUI/FlatCAMGUI.py:722 +#: FlatCAMObj.py:3293 flatcamGUI/FlatCAMGUI.py:526 flatcamGUI/FlatCAMGUI.py:722 #: flatcamGUI/FlatCAMGUI.py:1615 flatcamGUI/FlatCAMGUI.py:1951 #: flatcamGUI/ObjectUI.py:999 msgid "Copy" msgstr "Копировать" -#: FlatCAMObj.py:3483 +#: FlatCAMObj.py:3509 msgid "[ERROR_NOTCL] Please enter the desired tool diameter in Float format." msgstr "" "[ERROR_NOTCL] Пожалуйста, введите нужный диаметр инструмента в формате числа " "с плавающей точкой." -#: FlatCAMObj.py:3556 +#: FlatCAMObj.py:3584 msgid "[success] Tool added in Tool Table." msgstr "[success] Инструмент добавлен в таблицу инструментов." -#: FlatCAMObj.py:3561 +#: FlatCAMObj.py:3589 msgid "[ERROR_NOTCL] Default Tool added. Wrong value format entered." msgstr "" "[ERROR_NOTCL] Добавлен инструмент по умолчанию. Введен неправильный формат " "значения." -#: FlatCAMObj.py:3591 FlatCAMObj.py:3601 +#: FlatCAMObj.py:3619 FlatCAMObj.py:3629 msgid "[WARNING_NOTCL] Failed. Select a tool to copy." msgstr "[WARNING_NOTCL] Ошибка. Выберите инструмент для копирования." -#: FlatCAMObj.py:3630 +#: FlatCAMObj.py:3658 msgid "[success] Tool was copied in Tool Table." msgstr "[success] Инструмент скопирован в таблицу инструментов." -#: FlatCAMObj.py:3663 +#: FlatCAMObj.py:3691 msgid "[success] Tool was edited in Tool Table." msgstr "[success] Инструмент был изменён в таблице инструментов." -#: FlatCAMObj.py:3694 FlatCAMObj.py:3704 +#: FlatCAMObj.py:3722 FlatCAMObj.py:3732 msgid "[WARNING_NOTCL] Failed. Select a tool to delete." msgstr "[WARNING_NOTCL] Ошибка. Выберите инструмент для удаления." -#: FlatCAMObj.py:3728 +#: FlatCAMObj.py:3756 msgid "[success] Tool was deleted in Tool Table." msgstr "[success] Инструмент был удален из таблицы инструментов." -#: FlatCAMObj.py:4149 +#: FlatCAMObj.py:4185 #, python-format msgid "" "[WARNING_NOTCL] This Geometry can't be processed because it is %s geometry." @@ -1421,21 +1425,21 @@ msgstr "" "[WARNING_NOTCL] Эта Geometry не может быть обработана, так как это %s " "геометрия." -#: FlatCAMObj.py:4166 +#: FlatCAMObj.py:4202 msgid "[ERROR_NOTCL] Wrong Tool Dia value format entered, use a number." msgstr "" "[ERROR_NOTCL] Неверный формат ввода диаметра инструмента, используйте цифры." -#: FlatCAMObj.py:4193 +#: FlatCAMObj.py:4229 msgid "[ERROR_NOTCL] Failed. No tool selected in the tool table ..." msgstr "[ERROR_NOTCL] Ошибка. Инструмент не выбран в таблице инструментов ..." -#: FlatCAMObj.py:4231 +#: FlatCAMObj.py:4267 #, python-format msgid "FlatCAMObj.FlatCAMGeometry.mtool_gen_cncjob() --> %s" msgstr "FlatCAMObj.FlatCAMGeometry.mtool_gen_cncjob() --> %s" -#: FlatCAMObj.py:4389 FlatCAMObj.py:4627 +#: FlatCAMObj.py:4425 FlatCAMObj.py:4663 msgid "" "[WARNING] Tool Offset is selected in Tool Table but no value is provided.\n" "Add a Tool Offset or change the Offset Type." @@ -1444,22 +1448,22 @@ msgstr "" "указано.\n" "Добавьте смещение инструмента или измените тип смещения." -#: FlatCAMObj.py:4508 flatcamTools/ToolSolderPaste.py:1107 +#: FlatCAMObj.py:4544 flatcamTools/ToolSolderPaste.py:1107 #: flatcamTools/ToolSolderPaste.py:1162 msgid "[ERROR_NOTCL] Cancelled. Empty file, it has no geometry..." msgstr "[ERROR_NOTCL] Отмена. Пустой файл, он не имеет геометрии..." -#: FlatCAMObj.py:4877 FlatCAMObj.py:4887 camlib.py:3347 camlib.py:3356 +#: FlatCAMObj.py:4913 FlatCAMObj.py:4923 camlib.py:3348 camlib.py:3357 msgid "[ERROR_NOTCL] Scale factor has to be a number: integer or float." msgstr "" "[ERROR_NOTCL] Коэффициент масштабирования должен быть числом: целочисленным " "или с плавающей запятой." -#: FlatCAMObj.py:4925 +#: FlatCAMObj.py:4961 msgid "[success] Geometry Scale done." msgstr "[success] Масштабирование Geometry выполнено." -#: FlatCAMObj.py:4942 camlib.py:3425 +#: FlatCAMObj.py:4978 camlib.py:3426 msgid "" "[ERROR_NOTCL] An (x,y) pair of values are needed. Probable you entered only " "one value in the Offset field." @@ -1467,29 +1471,29 @@ msgstr "" "[ERROR_NOTCL] Необходима пара значений (x,y). Возможно, вы ввели только одно " "значение в поле \"Смещение\"." -#: FlatCAMObj.py:4962 +#: FlatCAMObj.py:4998 msgid "[success] Geometry Offset done." msgstr "[success] Смещение Geometry выполнено." -#: FlatCAMObj.py:5516 FlatCAMObj.py:5521 flatcamTools/ToolSolderPaste.py:1361 +#: FlatCAMObj.py:5553 FlatCAMObj.py:5558 flatcamTools/ToolSolderPaste.py:1361 msgid "Export Machine Code ..." msgstr "Экспорт GCode ..." -#: FlatCAMObj.py:5527 flatcamTools/ToolSolderPaste.py:1364 +#: FlatCAMObj.py:5564 flatcamTools/ToolSolderPaste.py:1364 msgid "[WARNING_NOTCL] Export Machine Code cancelled ..." msgstr "[WARNING_NOTCL] Экспорт GCode отменен ..." -#: FlatCAMObj.py:5540 +#: FlatCAMObj.py:5577 #, python-format msgid "[success] Machine Code file saved to: %s" msgstr "[success] Файл GCode сохранён в: %s" -#: FlatCAMObj.py:5562 +#: FlatCAMObj.py:5599 #, python-format msgid "[ERROR]FlatCAMCNNJob.on_edit_code_click() -->%s" msgstr "[ERROR]FlatCAMCNNJob.on_edit_code_click() -->%s" -#: FlatCAMObj.py:5679 +#: FlatCAMObj.py:5716 #, python-format msgid "" "[WARNING_NOTCL] This CNCJob object can't be processed because it is a %s " @@ -1498,11 +1502,11 @@ msgstr "" "[WARNING_NOTCL] CNCJob объект %s не может быть обработан, так как он " "является объектом CNCJob." -#: FlatCAMObj.py:5732 +#: FlatCAMObj.py:5769 msgid "[ERROR_NOTCL] G-code does not have a units code: either G20 or G21" msgstr "[ERROR_NOTCL] G-code не имеет кода единиц измерения: G20 или G21" -#: FlatCAMObj.py:5745 +#: FlatCAMObj.py:5782 msgid "" "[ERROR_NOTCL] Cancelled. The Toolchange Custom code is enabled but it's " "empty." @@ -1510,16 +1514,16 @@ msgstr "" "[ERROR_NOTCL] Отмена. Пользовательский код смены инструмента включен, но он " "пуст." -#: FlatCAMObj.py:5752 +#: FlatCAMObj.py:5789 msgid "[success] Toolchange G-code was replaced by a custom code." msgstr "" "[success] G-code смены инструмента был заменен на пользовательский код." -#: FlatCAMObj.py:5767 flatcamTools/ToolSolderPaste.py:1390 +#: FlatCAMObj.py:5804 flatcamTools/ToolSolderPaste.py:1390 msgid "[WARNING_NOTCL] No such file or directory" msgstr "[WARNING_NOTCL] Нет такого файла или каталога" -#: FlatCAMObj.py:5787 FlatCAMObj.py:5799 +#: FlatCAMObj.py:5824 FlatCAMObj.py:5836 msgid "" "[WARNING_NOTCL] The used postprocessor file has to have in it's name: " "'toolchange_custom'" @@ -1527,7 +1531,7 @@ msgstr "" "[WARNING_NOTCL] Используемый файл постпроцессора должен иметь имя: " "'toolchange_custom'" -#: FlatCAMObj.py:5805 +#: FlatCAMObj.py:5842 msgid "[ERROR] There is no postprocessor file." msgstr "[ERROR] Это не файл постпроцессора." @@ -1570,16 +1574,16 @@ msgstr "[success] Объект был наклонён ..." msgid "[ERROR_NOTCL] Failed to skew. No object selected" msgstr "[ERROR_NOTCL] Не удалось наклонить. Объект не выбран" -#: camlib.py:2727 camlib.py:2812 +#: camlib.py:2728 camlib.py:2813 #, python-format msgid "[WARNING] Coordinates missing, line ignored: %s" msgstr "[WARNING] Координаты отсутствуют, строка игнорируется: %s" -#: camlib.py:2728 camlib.py:2813 +#: camlib.py:2729 camlib.py:2814 msgid "[WARNING_NOTCL] GERBER file might be CORRUPT. Check the file !!!" msgstr "[WARNING_NOTCL] Файл GERBER может быть поврежден. Проверьте файл !!!" -#: camlib.py:2777 +#: camlib.py:2778 #, python-format msgid "" "[ERROR] Region does not have enough points. File will be processed but there " @@ -1588,7 +1592,7 @@ msgstr "" "[ERROR] Региону не хватает точек. Файл будет обработан, но есть ошибки " "разбора. Номер строки: %s" -#: camlib.py:3169 +#: camlib.py:3170 #, python-format msgid "" "[ERROR]Gerber Parser ERROR.\n" @@ -1597,32 +1601,32 @@ msgstr "" "[ERROR]Ошибка разбора Gerber.\n" "%s:" -#: camlib.py:3393 +#: camlib.py:3394 msgid "[success] Gerber Scale done." msgstr "[success] Масштабирование Gerber выполнено." -#: camlib.py:3458 +#: camlib.py:3459 msgid "[success] Gerber Offset done." msgstr "[success] Смещение Gerber выполнено." -#: camlib.py:3512 +#: camlib.py:3513 msgid "[success] Gerber Mirror done." msgstr "[success] Зеркалирование Gerber выполнено." -#: camlib.py:3558 +#: camlib.py:3559 msgid "[success] Gerber Skew done." msgstr "[success] Наклон Gerber выполнен." -#: camlib.py:3596 +#: camlib.py:3597 msgid "[success] Gerber Rotate done." msgstr "[success] Вращение Gerber выполнено." -#: camlib.py:3875 +#: camlib.py:3878 #, python-format msgid "[ERROR_NOTCL] This is GCODE mark: %s" msgstr "[ERROR_NOTCL] Это метка GCODE: %s" -#: camlib.py:3990 +#: camlib.py:3993 #, python-format msgid "" "[WARNING] No tool diameter info's. See shell.\n" @@ -1639,7 +1643,7 @@ msgstr "" "Пользователю необходимо отредактировать полученный объект Excellon и " "изменить диаметры, чтобы отразить реальные диаметры." -#: camlib.py:4455 +#: camlib.py:4458 #, python-brace-format msgid "" "[ERROR] Excellon Parser error.\n" @@ -1648,7 +1652,7 @@ msgstr "" "[ERROR] Ошибка разбора Excellon.\n" "Ошибка разбора. Строка {l_nr}: {line}\n" -#: camlib.py:4534 +#: camlib.py:4537 msgid "" "[WARNING] Excellon.create_geometry() -> a drill location was skipped due of " "not having a tool associated.\n" @@ -1658,12 +1662,12 @@ msgstr "" "из-за отсутствия связанного инструмента.\n" "Проверьте полученный GCode." -#: camlib.py:5073 +#: camlib.py:5076 #, python-format msgid "[ERROR] There is no such parameter: %s" msgstr "[ERROR] Такого параметра нет: %s" -#: camlib.py:5143 +#: camlib.py:5146 msgid "" "[WARNING] The Cut Z parameter has positive value. It is the depth value to " "drill into material.\n" @@ -1677,23 +1681,23 @@ msgstr "" "предполагая, что это опечатка, приложение преобразует значение в " "отрицательное. Проверьте полученный CNC code (Gcode и т. д.)." -#: camlib.py:5150 camlib.py:5646 camlib.py:5909 -#, python-format +#: camlib.py:5153 camlib.py:5649 camlib.py:5912 +#, fuzzy, python-format msgid "" "[WARNING] The Cut Z parameter is zero. There will be no cut, skipping %s file" msgstr "" "[WARNING] Параметр \"Глубина резания\" равен нулю. Обрезки не будет , " -"пропускается файл %s " +"пропускается файл %s" -#: camlib.py:5379 camlib.py:5476 camlib.py:5534 +#: camlib.py:5382 camlib.py:5479 camlib.py:5537 msgid "[ERROR_NOTCL] The loaded Excellon file has no drills ..." msgstr "[ERROR_NOTCL] загруженный файл Excellon не имеет отверстий ..." -#: camlib.py:5481 +#: camlib.py:5484 msgid "[ERROR_NOTCL] Wrong optimization type selected." msgstr "[ERROR_NOTCL] Выбран неправильный тип оптимизации." -#: camlib.py:5634 camlib.py:5897 +#: camlib.py:5637 camlib.py:5900 msgid "" "[ERROR_NOTCL] Cut_Z parameter is None or zero. Most likely a bad " "combinations of other parameters." @@ -1701,7 +1705,7 @@ msgstr "" "[ERROR_NOTCL] Параметр \"Глубина резания\" равен None или пуст. Скорее всего " "неудачное сочетание других параметров." -#: camlib.py:5639 camlib.py:5902 +#: camlib.py:5642 camlib.py:5905 msgid "" "[WARNING] The Cut Z parameter has positive value. It is the depth value to " "cut into material.\n" @@ -1715,11 +1719,11 @@ msgstr "" "предполагая, что это опечатка, приложение преобразует значение в " "отрицательное. Проверьте полученный CNC code (Gcode и т. д.)." -#: camlib.py:5651 camlib.py:5914 +#: camlib.py:5654 camlib.py:5917 msgid "[ERROR_NOTCL] Travel Z parameter is None or zero." msgstr "[ERROR_NOTCL] Параметр \"Отвод по Z\" равен None или пуст." -#: camlib.py:5655 camlib.py:5918 +#: camlib.py:5658 camlib.py:5921 msgid "" "[WARNING] The Travel Z parameter has negative value. It is the height value " "to travel between cuts.\n" @@ -1733,7 +1737,7 @@ msgstr "" "что это опечатка, приложение преобразует значение в положительное. Проверьте " "полученный CNC code (Gcode и т. д.)." -#: camlib.py:5662 camlib.py:5925 +#: camlib.py:5665 camlib.py:5928 #, python-format msgid "" "[WARNING] The Z Travel parameter is zero. This is dangerous, skipping %s file" @@ -1741,19 +1745,19 @@ msgstr "" "[WARNING] Параметр \"Отвод по Z\" равен нулю. Это опасно, пропускается файл " "%s" -#: camlib.py:5792 +#: camlib.py:5795 #, python-format msgid "[ERROR]Expected a Geometry, got %s" msgstr "[ERROR]Ожидалась Geometry, получили %s" -#: camlib.py:5798 +#: camlib.py:5801 msgid "" "[ERROR_NOTCL] Trying to generate a CNC Job from a Geometry object without " "solid_geometry." msgstr "" "[ERROR_NOTCL] Попытка создать CNC Job из объекта Geometry без solid_geometry." -#: camlib.py:5837 +#: camlib.py:5840 msgid "" "[ERROR_NOTCL] The Tool Offset value is too negative to use for the " "current_geometry.\n" @@ -1763,7 +1767,7 @@ msgstr "" "current_geometry.\n" "Увеличте значение (в модуле) и повторите попытку." -#: camlib.py:6049 +#: camlib.py:6052 msgid "[ERROR_NOTCL] There is no tool data in the SolderPaste geometry." msgstr "[ERROR_NOTCL] В геометрии SolderPaste нет данных инструмента." @@ -1855,7 +1859,7 @@ msgstr "[success] Готово. Перемещение отверстий зав msgid "[success] Done. Drill(s) copied." msgstr "[success] Готово. Отверстия скопированы." -#: flatcamEditors/FlatCAMExcEditor.py:792 flatcamGUI/FlatCAMGUI.py:5026 +#: flatcamEditors/FlatCAMExcEditor.py:792 flatcamGUI/FlatCAMGUI.py:5008 msgid "Excellon Editor" msgstr "Редактор Excellon" @@ -1893,7 +1897,7 @@ msgstr "" msgid "Tool Dia:" msgstr "Диаметр инструмента:" -#: flatcamEditors/FlatCAMExcEditor.py:839 flatcamGUI/FlatCAMGUI.py:5055 +#: flatcamEditors/FlatCAMExcEditor.py:839 flatcamGUI/FlatCAMGUI.py:5037 #: flatcamGUI/ObjectUI.py:978 msgid "Diameter for the new tool" msgstr "Диаметр нового инструмента" @@ -1972,11 +1976,11 @@ msgstr "Линейный" msgid "Circular" msgstr "Круговой" -#: flatcamEditors/FlatCAMExcEditor.py:944 flatcamGUI/FlatCAMGUI.py:5065 +#: flatcamEditors/FlatCAMExcEditor.py:944 flatcamGUI/FlatCAMGUI.py:5047 msgid "Nr of drills:" msgstr "Кол-во отверстий:" -#: flatcamEditors/FlatCAMExcEditor.py:946 flatcamGUI/FlatCAMGUI.py:5067 +#: flatcamEditors/FlatCAMExcEditor.py:946 flatcamGUI/FlatCAMGUI.py:5049 msgid "Specify how many drills to be in the array." msgstr "Укажите, сколько свёрел должно быть в массиве." @@ -1988,7 +1992,7 @@ msgid "Direction:" msgstr "Направление:" #: flatcamEditors/FlatCAMExcEditor.py:966 -#: flatcamEditors/FlatCAMGrbEditor.py:2528 flatcamGUI/FlatCAMGUI.py:5082 +#: flatcamEditors/FlatCAMGrbEditor.py:2528 flatcamGUI/FlatCAMGUI.py:5064 msgid "" "Direction on which the linear array is oriented:\n" "- 'X' - horizontal axis \n" @@ -2001,12 +2005,12 @@ msgstr "" "- 'Угол' - произвольный угол наклона массива" #: flatcamEditors/FlatCAMExcEditor.py:979 -#: flatcamEditors/FlatCAMGrbEditor.py:2541 flatcamGUI/FlatCAMGUI.py:5096 +#: flatcamEditors/FlatCAMGrbEditor.py:2541 flatcamGUI/FlatCAMGUI.py:5078 msgid "Pitch:" msgstr "Шаг:" #: flatcamEditors/FlatCAMExcEditor.py:981 -#: flatcamEditors/FlatCAMGrbEditor.py:2543 flatcamGUI/FlatCAMGUI.py:5098 +#: flatcamEditors/FlatCAMGrbEditor.py:2543 flatcamGUI/FlatCAMGUI.py:5080 msgid "Pitch = Distance between elements of the array." msgstr "Подача = Расстояние между элементами массива." @@ -2015,7 +2019,7 @@ msgstr "Подача = Расстояние между элементами ма #: flatcamEditors/FlatCAMGeoEditor.py:665 #: flatcamEditors/FlatCAMGrbEditor.py:2550 #: flatcamEditors/FlatCAMGrbEditor.py:2586 -#: flatcamEditors/FlatCAMGrbEditor.py:4580 flatcamGUI/FlatCAMGUI.py:5107 +#: flatcamEditors/FlatCAMGrbEditor.py:4588 flatcamGUI/FlatCAMGUI.py:5089 #: flatcamTools/ToolTransform.py:68 msgid "Angle:" msgstr "Угол:" @@ -2043,8 +2047,8 @@ msgstr "" "CCW = против часовой стрелки." #: flatcamEditors/FlatCAMExcEditor.py:1026 -#: flatcamEditors/FlatCAMGrbEditor.py:2588 flatcamGUI/FlatCAMGUI.py:5109 -#: flatcamGUI/FlatCAMGUI.py:5135 +#: flatcamEditors/FlatCAMGrbEditor.py:2588 flatcamGUI/FlatCAMGUI.py:5091 +#: flatcamGUI/FlatCAMGUI.py:5117 msgid "Angle at which each element in circular array is placed." msgstr "Угол, под которым расположен каждый элемент в круговом массиве." @@ -2056,7 +2060,7 @@ msgstr "" "[WARNING_NOTCL] Инструмент уже есть в исходном или фактическом списке " "инструментов.\n" "Сохраните и повторно отредактируйте Excellon, если вам нужно добавить этот " -"инструмент." +"инструмент. " #: flatcamEditors/FlatCAMExcEditor.py:1496 flatcamGUI/FlatCAMGUI.py:2997 #, python-brace-format @@ -2095,7 +2099,7 @@ msgid "[success] Done. Drill(s) deleted." msgstr "[success] Готово. Отверстия удалены." #: flatcamEditors/FlatCAMExcEditor.py:2705 -#: flatcamEditors/FlatCAMGrbEditor.py:4340 +#: flatcamEditors/FlatCAMGrbEditor.py:4350 msgid "Click on the circular array Center position" msgstr "Нажмите на центральную позицию кругового массива" @@ -2160,7 +2164,7 @@ msgstr "Буфер" #: flatcamEditors/FlatCAMGeoEditor.py:2700 #: flatcamEditors/FlatCAMGeoEditor.py:2726 #: flatcamEditors/FlatCAMGeoEditor.py:2752 -#: flatcamEditors/FlatCAMGrbEditor.py:4392 +#: flatcamEditors/FlatCAMGrbEditor.py:4402 msgid "" "[WARNING_NOTCL] Buffer distance value is missing or wrong format. Add it and " "retry." @@ -2177,12 +2181,13 @@ msgid "Tool" msgstr "Инструменты" #: flatcamEditors/FlatCAMGeoEditor.py:432 flatcamGUI/FlatCAMGUI.py:4054 -#: flatcamGUI/FlatCAMGUI.py:5618 flatcamGUI/FlatCAMGUI.py:5895 -#: flatcamGUI/FlatCAMGUI.py:6035 flatcamGUI/ObjectUI.py:260 +#: flatcamGUI/FlatCAMGUI.py:5163 flatcamGUI/FlatCAMGUI.py:5597 +#: flatcamGUI/FlatCAMGUI.py:5874 flatcamGUI/FlatCAMGUI.py:6014 +#: flatcamGUI/ObjectUI.py:260 msgid "Tool dia:" msgstr "Диам. инструм.:" -#: flatcamEditors/FlatCAMGeoEditor.py:434 flatcamGUI/FlatCAMGUI.py:6037 +#: flatcamEditors/FlatCAMGeoEditor.py:434 flatcamGUI/FlatCAMGUI.py:6016 msgid "" "Diameter of the tool to\n" "be used in the operation." @@ -2190,14 +2195,14 @@ msgstr "" "Диаметр инструмента\n" "используемого в этой операции." -#: flatcamEditors/FlatCAMGeoEditor.py:443 flatcamGUI/FlatCAMGUI.py:5801 -#: flatcamGUI/FlatCAMGUI.py:6046 flatcamTools/ToolNonCopperClear.py:165 +#: flatcamEditors/FlatCAMGeoEditor.py:443 flatcamGUI/FlatCAMGUI.py:5780 +#: flatcamGUI/FlatCAMGUI.py:6025 flatcamTools/ToolNonCopperClear.py:165 #: flatcamTools/ToolPaint.py:160 msgid "Overlap Rate:" msgstr "Частота перекрытия:" #: flatcamEditors/FlatCAMGeoEditor.py:445 flatcamTools/ToolPaint.py:162 -#, python-format +#, fuzzy, python-format msgid "" "How much (fraction) of the tool width to overlap each tool pass.\n" "Example:\n" @@ -2223,14 +2228,14 @@ msgstr "" "Более высокие значения = медленная обработка и медленное выполнение на ЧПУ\n" "из-за большого количества путей." -#: flatcamEditors/FlatCAMGeoEditor.py:461 flatcamGUI/FlatCAMGUI.py:5817 -#: flatcamGUI/FlatCAMGUI.py:5903 flatcamGUI/FlatCAMGUI.py:6056 +#: flatcamEditors/FlatCAMGeoEditor.py:461 flatcamGUI/FlatCAMGUI.py:5796 +#: flatcamGUI/FlatCAMGUI.py:5882 flatcamGUI/FlatCAMGUI.py:6035 #: flatcamTools/ToolCutOut.py:86 flatcamTools/ToolNonCopperClear.py:181 #: flatcamTools/ToolPaint.py:177 msgid "Margin:" msgstr "Отступ:" -#: flatcamEditors/FlatCAMGeoEditor.py:463 flatcamGUI/FlatCAMGUI.py:6058 +#: flatcamEditors/FlatCAMGeoEditor.py:463 flatcamGUI/FlatCAMGUI.py:6037 #: flatcamTools/ToolPaint.py:179 msgid "" "Distance by which to avoid\n" @@ -2238,13 +2243,13 @@ msgid "" "be painted." msgstr "Расстояние, которое не закрашивать до края полигона." -#: flatcamEditors/FlatCAMGeoEditor.py:472 flatcamGUI/FlatCAMGUI.py:5826 -#: flatcamGUI/FlatCAMGUI.py:6067 flatcamTools/ToolNonCopperClear.py:190 +#: flatcamEditors/FlatCAMGeoEditor.py:472 flatcamGUI/FlatCAMGUI.py:5805 +#: flatcamGUI/FlatCAMGUI.py:6046 flatcamTools/ToolNonCopperClear.py:190 #: flatcamTools/ToolPaint.py:188 msgid "Method:" msgstr "Метод:" -#: flatcamEditors/FlatCAMGeoEditor.py:474 flatcamGUI/FlatCAMGUI.py:6069 +#: flatcamEditors/FlatCAMGeoEditor.py:474 flatcamGUI/FlatCAMGUI.py:6048 msgid "" "Algorithm to paint the polygon:
Standard: Fixed step inwards." "
Seed-based: Outwards from seed." @@ -2252,14 +2257,14 @@ msgstr "" "Алгоритм отрисовки полигона:
Стандартный: Фиксированный шаг внутрь." "
По кругу: От центра наружу." -#: flatcamEditors/FlatCAMGeoEditor.py:487 flatcamGUI/FlatCAMGUI.py:5842 -#: flatcamGUI/FlatCAMGUI.py:6082 flatcamTools/ToolNonCopperClear.py:206 +#: flatcamEditors/FlatCAMGeoEditor.py:487 flatcamGUI/FlatCAMGUI.py:5821 +#: flatcamGUI/FlatCAMGUI.py:6061 flatcamTools/ToolNonCopperClear.py:206 #: flatcamTools/ToolPaint.py:204 msgid "Connect:" msgstr "Подключение:" -#: flatcamEditors/FlatCAMGeoEditor.py:489 flatcamGUI/FlatCAMGUI.py:5844 -#: flatcamGUI/FlatCAMGUI.py:6084 flatcamTools/ToolNonCopperClear.py:208 +#: flatcamEditors/FlatCAMGeoEditor.py:489 flatcamGUI/FlatCAMGUI.py:5823 +#: flatcamGUI/FlatCAMGUI.py:6063 flatcamTools/ToolNonCopperClear.py:208 #: flatcamTools/ToolPaint.py:206 msgid "" "Draw lines between resulting\n" @@ -2268,14 +2273,14 @@ msgstr "" "Рисовать линии между результирующей сегментами\n" " для минимизации подъёма инструмента." -#: flatcamEditors/FlatCAMGeoEditor.py:496 flatcamGUI/FlatCAMGUI.py:5851 -#: flatcamGUI/FlatCAMGUI.py:6092 flatcamTools/ToolNonCopperClear.py:215 +#: flatcamEditors/FlatCAMGeoEditor.py:496 flatcamGUI/FlatCAMGUI.py:5830 +#: flatcamGUI/FlatCAMGUI.py:6071 flatcamTools/ToolNonCopperClear.py:215 #: flatcamTools/ToolPaint.py:213 msgid "Contour:" msgstr "Контур:" -#: flatcamEditors/FlatCAMGeoEditor.py:498 flatcamGUI/FlatCAMGUI.py:5853 -#: flatcamGUI/FlatCAMGUI.py:6094 flatcamTools/ToolNonCopperClear.py:217 +#: flatcamEditors/FlatCAMGeoEditor.py:498 flatcamGUI/FlatCAMGUI.py:5832 +#: flatcamGUI/FlatCAMGUI.py:6073 flatcamTools/ToolNonCopperClear.py:217 #: flatcamTools/ToolPaint.py:215 msgid "" "Cut around the perimeter of the polygon\n" @@ -2333,53 +2338,53 @@ msgstr "Инструменты" #: flatcamEditors/FlatCAMGeoEditor.py:617 #: flatcamEditors/FlatCAMGeoEditor.py:990 -#: flatcamEditors/FlatCAMGrbEditor.py:4531 -#: flatcamEditors/FlatCAMGrbEditor.py:4916 flatcamGUI/FlatCAMGUI.py:654 +#: flatcamEditors/FlatCAMGrbEditor.py:4539 +#: flatcamEditors/FlatCAMGrbEditor.py:4924 flatcamGUI/FlatCAMGUI.py:654 #: flatcamGUI/FlatCAMGUI.py:1879 flatcamTools/ToolTransform.py:398 msgid "Transform Tool" msgstr "Трансформация" #: flatcamEditors/FlatCAMGeoEditor.py:618 #: flatcamEditors/FlatCAMGeoEditor.py:679 -#: flatcamEditors/FlatCAMGrbEditor.py:4532 -#: flatcamEditors/FlatCAMGrbEditor.py:4594 flatcamTools/ToolTransform.py:24 +#: flatcamEditors/FlatCAMGrbEditor.py:4540 +#: flatcamEditors/FlatCAMGrbEditor.py:4602 flatcamTools/ToolTransform.py:24 #: flatcamTools/ToolTransform.py:82 msgid "Rotate" msgstr "Вращение" #: flatcamEditors/FlatCAMGeoEditor.py:619 -#: flatcamEditors/FlatCAMGrbEditor.py:4533 flatcamTools/ToolTransform.py:25 +#: flatcamEditors/FlatCAMGrbEditor.py:4541 flatcamTools/ToolTransform.py:25 msgid "Skew/Shear" msgstr "Наклон/Сдвиг" #: flatcamEditors/FlatCAMGeoEditor.py:620 #: flatcamEditors/FlatCAMGrbEditor.py:2471 -#: flatcamEditors/FlatCAMGrbEditor.py:4534 flatcamGUI/FlatCAMGUI.py:718 +#: flatcamEditors/FlatCAMGrbEditor.py:4542 flatcamGUI/FlatCAMGUI.py:718 #: flatcamGUI/FlatCAMGUI.py:1947 flatcamGUI/ObjectUI.py:100 #: flatcamTools/ToolTransform.py:26 msgid "Scale" msgstr "Масштаб" #: flatcamEditors/FlatCAMGeoEditor.py:621 -#: flatcamEditors/FlatCAMGrbEditor.py:4535 flatcamTools/ToolTransform.py:27 +#: flatcamEditors/FlatCAMGrbEditor.py:4543 flatcamTools/ToolTransform.py:27 msgid "Mirror (Flip)" msgstr "Зеркалирование (отражение)" #: flatcamEditors/FlatCAMGeoEditor.py:622 -#: flatcamEditors/FlatCAMGrbEditor.py:4536 flatcamGUI/ObjectUI.py:127 +#: flatcamEditors/FlatCAMGrbEditor.py:4544 flatcamGUI/ObjectUI.py:127 #: flatcamGUI/ObjectUI.py:891 flatcamGUI/ObjectUI.py:1465 #: flatcamTools/ToolTransform.py:28 msgid "Offset" msgstr "Смещение" #: flatcamEditors/FlatCAMGeoEditor.py:633 -#: flatcamEditors/FlatCAMGrbEditor.py:4548 +#: flatcamEditors/FlatCAMGrbEditor.py:4556 #, python-format msgid "Editor %s" msgstr "Редактор %s" #: flatcamEditors/FlatCAMGeoEditor.py:667 -#: flatcamEditors/FlatCAMGrbEditor.py:4582 flatcamTools/ToolTransform.py:70 +#: flatcamEditors/FlatCAMGrbEditor.py:4590 flatcamTools/ToolTransform.py:70 msgid "" "Angle for Rotation action, in degrees.\n" "Float number between -360 and 359.\n" @@ -2392,7 +2397,7 @@ msgstr "" "Отрицательные числа для движения против часовой стрелки." #: flatcamEditors/FlatCAMGeoEditor.py:681 -#: flatcamEditors/FlatCAMGrbEditor.py:4596 +#: flatcamEditors/FlatCAMGrbEditor.py:4604 msgid "" "Rotate the selected shape(s).\n" "The point of reference is the middle of\n" @@ -2403,14 +2408,14 @@ msgstr "" "ограничительной рамки для всех выбранных фигур." #: flatcamEditors/FlatCAMGeoEditor.py:704 -#: flatcamEditors/FlatCAMGrbEditor.py:4619 flatcamTools/ToolTransform.py:107 +#: flatcamEditors/FlatCAMGrbEditor.py:4627 flatcamTools/ToolTransform.py:107 msgid "Angle X:" msgstr "Угол X:" #: flatcamEditors/FlatCAMGeoEditor.py:706 #: flatcamEditors/FlatCAMGeoEditor.py:724 -#: flatcamEditors/FlatCAMGrbEditor.py:4621 -#: flatcamEditors/FlatCAMGrbEditor.py:4639 flatcamTools/ToolTransform.py:109 +#: flatcamEditors/FlatCAMGrbEditor.py:4629 +#: flatcamEditors/FlatCAMGrbEditor.py:4647 flatcamTools/ToolTransform.py:109 #: flatcamTools/ToolTransform.py:127 msgid "" "Angle for Skew action, in degrees.\n" @@ -2420,14 +2425,14 @@ msgstr "" "Число с плавающей запятой между -360 и 359." #: flatcamEditors/FlatCAMGeoEditor.py:715 -#: flatcamEditors/FlatCAMGrbEditor.py:4630 flatcamTools/ToolTransform.py:118 +#: flatcamEditors/FlatCAMGrbEditor.py:4638 flatcamTools/ToolTransform.py:118 msgid "Skew X" msgstr "Наклон X" #: flatcamEditors/FlatCAMGeoEditor.py:717 #: flatcamEditors/FlatCAMGeoEditor.py:735 -#: flatcamEditors/FlatCAMGrbEditor.py:4632 -#: flatcamEditors/FlatCAMGrbEditor.py:4650 +#: flatcamEditors/FlatCAMGrbEditor.py:4640 +#: flatcamEditors/FlatCAMGrbEditor.py:4658 msgid "" "Skew/shear the selected shape(s).\n" "The point of reference is the middle of\n" @@ -2438,34 +2443,34 @@ msgstr "" "ограничительной рамки для всех выбранных фигур." #: flatcamEditors/FlatCAMGeoEditor.py:722 -#: flatcamEditors/FlatCAMGrbEditor.py:4637 flatcamTools/ToolTransform.py:125 +#: flatcamEditors/FlatCAMGrbEditor.py:4645 flatcamTools/ToolTransform.py:125 msgid "Angle Y:" msgstr "Угол Y:" #: flatcamEditors/FlatCAMGeoEditor.py:733 -#: flatcamEditors/FlatCAMGrbEditor.py:4648 flatcamTools/ToolTransform.py:136 +#: flatcamEditors/FlatCAMGrbEditor.py:4656 flatcamTools/ToolTransform.py:136 msgid "Skew Y" msgstr "Наклон Y" #: flatcamEditors/FlatCAMGeoEditor.py:761 -#: flatcamEditors/FlatCAMGrbEditor.py:4676 flatcamTools/ToolTransform.py:164 +#: flatcamEditors/FlatCAMGrbEditor.py:4684 flatcamTools/ToolTransform.py:164 msgid "Factor X:" msgstr "Коэф. X:" #: flatcamEditors/FlatCAMGeoEditor.py:763 -#: flatcamEditors/FlatCAMGrbEditor.py:4678 flatcamTools/ToolTransform.py:166 +#: flatcamEditors/FlatCAMGrbEditor.py:4686 flatcamTools/ToolTransform.py:166 msgid "Factor for Scale action over X axis." msgstr "Коэффициент масштабирования по оси X." #: flatcamEditors/FlatCAMGeoEditor.py:771 -#: flatcamEditors/FlatCAMGrbEditor.py:4686 flatcamTools/ToolTransform.py:174 +#: flatcamEditors/FlatCAMGrbEditor.py:4694 flatcamTools/ToolTransform.py:174 msgid "Scale X" msgstr "Масштаб Х" #: flatcamEditors/FlatCAMGeoEditor.py:773 #: flatcamEditors/FlatCAMGeoEditor.py:790 -#: flatcamEditors/FlatCAMGrbEditor.py:4688 -#: flatcamEditors/FlatCAMGrbEditor.py:4705 +#: flatcamEditors/FlatCAMGrbEditor.py:4696 +#: flatcamEditors/FlatCAMGrbEditor.py:4713 msgid "" "Scale the selected shape(s).\n" "The point of reference depends on \n" @@ -2476,28 +2481,28 @@ msgstr "" "состояние флажка Scale Reference." #: flatcamEditors/FlatCAMGeoEditor.py:778 -#: flatcamEditors/FlatCAMGrbEditor.py:4693 flatcamTools/ToolTransform.py:181 +#: flatcamEditors/FlatCAMGrbEditor.py:4701 flatcamTools/ToolTransform.py:181 msgid "Factor Y:" msgstr "Коэф Y:" #: flatcamEditors/FlatCAMGeoEditor.py:780 -#: flatcamEditors/FlatCAMGrbEditor.py:4695 flatcamTools/ToolTransform.py:183 +#: flatcamEditors/FlatCAMGrbEditor.py:4703 flatcamTools/ToolTransform.py:183 msgid "Factor for Scale action over Y axis." msgstr "Коэффициент масштабирования по оси Y." #: flatcamEditors/FlatCAMGeoEditor.py:788 -#: flatcamEditors/FlatCAMGrbEditor.py:4703 flatcamTools/ToolTransform.py:191 +#: flatcamEditors/FlatCAMGrbEditor.py:4711 flatcamTools/ToolTransform.py:191 msgid "Scale Y" msgstr "Масштаб Y" #: flatcamEditors/FlatCAMGeoEditor.py:797 -#: flatcamEditors/FlatCAMGrbEditor.py:4712 flatcamGUI/FlatCAMGUI.py:6441 +#: flatcamEditors/FlatCAMGrbEditor.py:4720 flatcamGUI/FlatCAMGUI.py:6420 #: flatcamTools/ToolTransform.py:200 msgid "Link" msgstr "Ссылка" #: flatcamEditors/FlatCAMGeoEditor.py:799 -#: flatcamEditors/FlatCAMGrbEditor.py:4714 +#: flatcamEditors/FlatCAMGrbEditor.py:4722 msgid "" "Scale the selected shape(s)\n" "using the Scale Factor X for both axis." @@ -2506,13 +2511,13 @@ msgstr "" "используя коэффициент X для обеих осей." #: flatcamEditors/FlatCAMGeoEditor.py:805 -#: flatcamEditors/FlatCAMGrbEditor.py:4720 flatcamGUI/FlatCAMGUI.py:6449 +#: flatcamEditors/FlatCAMGrbEditor.py:4728 flatcamGUI/FlatCAMGUI.py:6428 #: flatcamTools/ToolTransform.py:208 msgid "Scale Reference" msgstr "Scale Reference" #: flatcamEditors/FlatCAMGeoEditor.py:807 -#: flatcamEditors/FlatCAMGrbEditor.py:4722 +#: flatcamEditors/FlatCAMGrbEditor.py:4730 msgid "" "Scale the selected shape(s)\n" "using the origin reference when checked,\n" @@ -2525,24 +2530,24 @@ msgstr "" "выбранных фигур, если флажок снят." #: flatcamEditors/FlatCAMGeoEditor.py:835 -#: flatcamEditors/FlatCAMGrbEditor.py:4751 flatcamTools/ToolTransform.py:238 +#: flatcamEditors/FlatCAMGrbEditor.py:4759 flatcamTools/ToolTransform.py:238 msgid "Value X:" msgstr "Значение X:" #: flatcamEditors/FlatCAMGeoEditor.py:837 -#: flatcamEditors/FlatCAMGrbEditor.py:4753 flatcamTools/ToolTransform.py:240 +#: flatcamEditors/FlatCAMGrbEditor.py:4761 flatcamTools/ToolTransform.py:240 msgid "Value for Offset action on X axis." msgstr "Значение для смещения по оси X." #: flatcamEditors/FlatCAMGeoEditor.py:845 -#: flatcamEditors/FlatCAMGrbEditor.py:4761 flatcamTools/ToolTransform.py:248 +#: flatcamEditors/FlatCAMGrbEditor.py:4769 flatcamTools/ToolTransform.py:248 msgid "Offset X" msgstr "Смещение Х" #: flatcamEditors/FlatCAMGeoEditor.py:847 #: flatcamEditors/FlatCAMGeoEditor.py:865 -#: flatcamEditors/FlatCAMGrbEditor.py:4763 -#: flatcamEditors/FlatCAMGrbEditor.py:4781 +#: flatcamEditors/FlatCAMGrbEditor.py:4771 +#: flatcamEditors/FlatCAMGrbEditor.py:4789 msgid "" "Offset the selected shape(s).\n" "The point of reference is the middle of\n" @@ -2553,29 +2558,29 @@ msgstr "" "ограничительной рамки для всех выбранных фигур.\n" #: flatcamEditors/FlatCAMGeoEditor.py:853 -#: flatcamEditors/FlatCAMGrbEditor.py:4769 flatcamTools/ToolTransform.py:255 +#: flatcamEditors/FlatCAMGrbEditor.py:4777 flatcamTools/ToolTransform.py:255 msgid "Value Y:" msgstr "Значение Y:" #: flatcamEditors/FlatCAMGeoEditor.py:855 -#: flatcamEditors/FlatCAMGrbEditor.py:4771 flatcamTools/ToolTransform.py:257 +#: flatcamEditors/FlatCAMGrbEditor.py:4779 flatcamTools/ToolTransform.py:257 msgid "Value for Offset action on Y axis." msgstr "Значение для смещения по оси Y." #: flatcamEditors/FlatCAMGeoEditor.py:863 -#: flatcamEditors/FlatCAMGrbEditor.py:4779 flatcamTools/ToolTransform.py:265 +#: flatcamEditors/FlatCAMGrbEditor.py:4787 flatcamTools/ToolTransform.py:265 msgid "Offset Y" msgstr "Смещение Y" #: flatcamEditors/FlatCAMGeoEditor.py:894 -#: flatcamEditors/FlatCAMGrbEditor.py:4810 flatcamTools/ToolTransform.py:295 +#: flatcamEditors/FlatCAMGrbEditor.py:4818 flatcamTools/ToolTransform.py:295 msgid "Flip on X" msgstr "Отразить по X" #: flatcamEditors/FlatCAMGeoEditor.py:896 #: flatcamEditors/FlatCAMGeoEditor.py:904 -#: flatcamEditors/FlatCAMGrbEditor.py:4812 #: flatcamEditors/FlatCAMGrbEditor.py:4820 +#: flatcamEditors/FlatCAMGrbEditor.py:4828 msgid "" "Flip the selected shape(s) over the X axis.\n" "Does not create a new shape." @@ -2584,17 +2589,17 @@ msgstr "" "Не создает новую фугуру." #: flatcamEditors/FlatCAMGeoEditor.py:902 -#: flatcamEditors/FlatCAMGrbEditor.py:4818 flatcamTools/ToolTransform.py:303 +#: flatcamEditors/FlatCAMGrbEditor.py:4826 flatcamTools/ToolTransform.py:303 msgid "Flip on Y" msgstr "Отразить по Y" #: flatcamEditors/FlatCAMGeoEditor.py:911 -#: flatcamEditors/FlatCAMGrbEditor.py:4827 flatcamTools/ToolTransform.py:312 +#: flatcamEditors/FlatCAMGrbEditor.py:4835 flatcamTools/ToolTransform.py:312 msgid "Ref Pt" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:913 -#: flatcamEditors/FlatCAMGrbEditor.py:4829 +#: flatcamEditors/FlatCAMGrbEditor.py:4837 msgid "" "Flip the selected shape(s)\n" "around the point in Point Entry Field.\n" @@ -2617,12 +2622,12 @@ msgstr "" "поле ввода и нажмите «Отразить по X (Y)»" #: flatcamEditors/FlatCAMGeoEditor.py:925 -#: flatcamEditors/FlatCAMGrbEditor.py:4841 flatcamTools/ToolTransform.py:325 +#: flatcamEditors/FlatCAMGrbEditor.py:4849 flatcamTools/ToolTransform.py:325 msgid "Point:" msgstr "Точка:" #: flatcamEditors/FlatCAMGeoEditor.py:927 -#: flatcamEditors/FlatCAMGrbEditor.py:4843 +#: flatcamEditors/FlatCAMGrbEditor.py:4851 msgid "" "Coordinates in format (x, y) used as reference for mirroring.\n" "The 'x' in (x, y) will be used when using Flip on X and\n" @@ -2634,7 +2639,7 @@ msgstr "" "'y' в (x, y) будет использоваться при отражении по Y." #: flatcamEditors/FlatCAMGeoEditor.py:939 -#: flatcamEditors/FlatCAMGrbEditor.py:4855 flatcamTools/ToolTransform.py:339 +#: flatcamEditors/FlatCAMGrbEditor.py:4863 flatcamTools/ToolTransform.py:339 msgid "" "The point coordinates can be captured by\n" "left click on canvas together with pressing\n" @@ -2645,257 +2650,257 @@ msgstr "" "клавиши SHIFT. Затем нажмите кнопку 'Добавить', чтобы вставить координаты." #: flatcamEditors/FlatCAMGeoEditor.py:1054 -#: flatcamEditors/FlatCAMGrbEditor.py:4980 +#: flatcamEditors/FlatCAMGrbEditor.py:4988 msgid "[WARNING_NOTCL] Transformation cancelled. No shape selected." msgstr "[WARNING_NOTCL] Трансформация отменена. Фигура не выбрана." #: flatcamEditors/FlatCAMGeoEditor.py:1075 -#: flatcamEditors/FlatCAMGrbEditor.py:5000 flatcamTools/ToolTransform.py:468 +#: flatcamEditors/FlatCAMGrbEditor.py:5008 flatcamTools/ToolTransform.py:468 msgid "[ERROR_NOTCL] Wrong value format entered for Rotate, use a number." msgstr "" "[ERROR_NOTCL] Неверный формат значения, введенный для поворота, используйте " "числа." #: flatcamEditors/FlatCAMGeoEditor.py:1112 -#: flatcamEditors/FlatCAMGrbEditor.py:5043 flatcamTools/ToolTransform.py:502 +#: flatcamEditors/FlatCAMGrbEditor.py:5051 flatcamTools/ToolTransform.py:502 msgid "[ERROR_NOTCL] Wrong value format entered for Skew X, use a number." msgstr "" "[ERROR_NOTCL] Неверный формат значения, введенный для наклона по X, " "используйте числа." #: flatcamEditors/FlatCAMGeoEditor.py:1133 -#: flatcamEditors/FlatCAMGrbEditor.py:5070 flatcamTools/ToolTransform.py:520 +#: flatcamEditors/FlatCAMGrbEditor.py:5078 flatcamTools/ToolTransform.py:520 msgid "[ERROR_NOTCL] Wrong value format entered for Skew Y, use a number." msgstr "" "[ERROR_NOTCL] Неверный формат значения, введенный для наклона поY, " "используйте числа." #: flatcamEditors/FlatCAMGeoEditor.py:1154 -#: flatcamEditors/FlatCAMGrbEditor.py:5097 flatcamTools/ToolTransform.py:538 +#: flatcamEditors/FlatCAMGrbEditor.py:5105 flatcamTools/ToolTransform.py:538 msgid "[ERROR_NOTCL] Wrong value format entered for Scale X, use a number." msgstr "" "[ERROR_NOTCL] Неверный формат значения, введенный для масштабирования по X, " "используйте числа." #: flatcamEditors/FlatCAMGeoEditor.py:1191 -#: flatcamEditors/FlatCAMGrbEditor.py:5138 flatcamTools/ToolTransform.py:572 +#: flatcamEditors/FlatCAMGrbEditor.py:5146 flatcamTools/ToolTransform.py:572 msgid "[ERROR_NOTCL] Wrong value format entered for Scale Y, use a number." msgstr "" "[ERROR_NOTCL] Неверный формат значения, введенный для масштабирования по Y, " "используйте числа." #: flatcamEditors/FlatCAMGeoEditor.py:1223 -#: flatcamEditors/FlatCAMGrbEditor.py:5176 flatcamTools/ToolTransform.py:601 +#: flatcamEditors/FlatCAMGrbEditor.py:5184 flatcamTools/ToolTransform.py:601 msgid "[ERROR_NOTCL] Wrong value format entered for Offset X, use a number." msgstr "" "[ERROR_NOTCL] Неверный формат значения, введенный для смещения по X, " "используйте числа." #: flatcamEditors/FlatCAMGeoEditor.py:1244 -#: flatcamEditors/FlatCAMGrbEditor.py:5202 flatcamTools/ToolTransform.py:619 +#: flatcamEditors/FlatCAMGrbEditor.py:5210 flatcamTools/ToolTransform.py:619 msgid "[ERROR_NOTCL] Wrong value format entered for Offset Y, use a number." msgstr "" "[ERROR_NOTCL] Неверный формат значения, введенный для смещения по Y, " "используйте числа." #: flatcamEditors/FlatCAMGeoEditor.py:1262 -#: flatcamEditors/FlatCAMGrbEditor.py:5225 +#: flatcamEditors/FlatCAMGrbEditor.py:5233 msgid "[WARNING_NOTCL] No shape selected. Please Select a shape to rotate!" msgstr "" "[WARNING_NOTCL] Фигура не выбрана. Пожалуйста, выберите фигуру для поворота!" #: flatcamEditors/FlatCAMGeoEditor.py:1265 -#: flatcamEditors/FlatCAMGrbEditor.py:5228 flatcamTools/ToolTransform.py:640 +#: flatcamEditors/FlatCAMGrbEditor.py:5236 flatcamTools/ToolTransform.py:640 msgid "Appying Rotate" msgstr "Применение поворота" #: flatcamEditors/FlatCAMGeoEditor.py:1293 -#: flatcamEditors/FlatCAMGrbEditor.py:5259 +#: flatcamEditors/FlatCAMGrbEditor.py:5269 msgid "[success] Done. Rotate completed." msgstr "[success] Готово. Поворот выполнен." #: flatcamEditors/FlatCAMGeoEditor.py:1309 -#: flatcamEditors/FlatCAMGrbEditor.py:5278 +#: flatcamEditors/FlatCAMGrbEditor.py:5288 msgid "[WARNING_NOTCL] No shape selected. Please Select a shape to flip!" msgstr "" "[WARNING_NOTCL] Фигура не выбрана. Пожалуйста, выберите фигуру для " "переворота!" #: flatcamEditors/FlatCAMGeoEditor.py:1312 -#: flatcamEditors/FlatCAMGrbEditor.py:5281 flatcamTools/ToolTransform.py:691 +#: flatcamEditors/FlatCAMGrbEditor.py:5291 flatcamTools/ToolTransform.py:691 msgid "Applying Flip" msgstr "Применение отражения" #: flatcamEditors/FlatCAMGeoEditor.py:1342 -#: flatcamEditors/FlatCAMGrbEditor.py:5318 flatcamTools/ToolTransform.py:733 +#: flatcamEditors/FlatCAMGrbEditor.py:5330 flatcamTools/ToolTransform.py:733 msgid "[success] Flip on the Y axis done ..." msgstr "[success] Отражение по оси Y завершено ..." #: flatcamEditors/FlatCAMGeoEditor.py:1345 -#: flatcamEditors/FlatCAMGrbEditor.py:5326 flatcamTools/ToolTransform.py:742 +#: flatcamEditors/FlatCAMGrbEditor.py:5338 flatcamTools/ToolTransform.py:742 msgid "[success] Flip on the X axis done ..." msgstr "[success] Отражение по оси Х завершёно ..." #: flatcamEditors/FlatCAMGeoEditor.py:1364 -#: flatcamEditors/FlatCAMGrbEditor.py:5346 +#: flatcamEditors/FlatCAMGrbEditor.py:5358 msgid "[WARNING_NOTCL] No shape selected. Please Select a shape to shear/skew!" msgstr "" "[WARNING_NOTCL] Фигура не выбрана. Пожалуйста, выберите фигуру для сдвига/" "наклона!" #: flatcamEditors/FlatCAMGeoEditor.py:1367 -#: flatcamEditors/FlatCAMGrbEditor.py:5349 flatcamTools/ToolTransform.py:760 +#: flatcamEditors/FlatCAMGrbEditor.py:5361 flatcamTools/ToolTransform.py:760 msgid "Applying Skew" msgstr "Применение наклона" #: flatcamEditors/FlatCAMGeoEditor.py:1392 -#: flatcamEditors/FlatCAMGrbEditor.py:5382 flatcamTools/ToolTransform.py:791 +#: flatcamEditors/FlatCAMGrbEditor.py:5396 flatcamTools/ToolTransform.py:791 #, python-format msgid "[success] Skew on the %s axis done ..." msgstr "[success] Наклон по оси %s выполнен ..." #: flatcamEditors/FlatCAMGeoEditor.py:1396 -#: flatcamEditors/FlatCAMGrbEditor.py:5386 flatcamTools/ToolTransform.py:795 +#: flatcamEditors/FlatCAMGrbEditor.py:5400 flatcamTools/ToolTransform.py:795 #, python-format msgid "[ERROR_NOTCL] Due of %s, Skew action was not executed." msgstr "[ERROR_NOTCL] Из-за %s наклон не был выполнен." #: flatcamEditors/FlatCAMGeoEditor.py:1407 -#: flatcamEditors/FlatCAMGrbEditor.py:5405 +#: flatcamEditors/FlatCAMGrbEditor.py:5419 msgid "[WARNING_NOTCL] No shape selected. Please Select a shape to scale!" msgstr "" "[WARNING_NOTCL] Фигура не выбрана. Пожалуйста, выберите фигуру для " "масштабирования!" #: flatcamEditors/FlatCAMGeoEditor.py:1410 -#: flatcamEditors/FlatCAMGrbEditor.py:5408 flatcamTools/ToolTransform.py:809 +#: flatcamEditors/FlatCAMGrbEditor.py:5422 flatcamTools/ToolTransform.py:809 msgid "Applying Scale" msgstr "Применение масштабирования" #: flatcamEditors/FlatCAMGeoEditor.py:1443 -#: flatcamEditors/FlatCAMGrbEditor.py:5444 flatcamTools/ToolTransform.py:848 +#: flatcamEditors/FlatCAMGrbEditor.py:5460 flatcamTools/ToolTransform.py:848 #, python-format msgid "[success] Scale on the %s axis done ..." msgstr "[success] Масштабирование по оси %s выполнено ..." #: flatcamEditors/FlatCAMGeoEditor.py:1446 -#: flatcamEditors/FlatCAMGrbEditor.py:5447 flatcamTools/ToolTransform.py:851 +#: flatcamEditors/FlatCAMGrbEditor.py:5463 flatcamTools/ToolTransform.py:851 #, python-format msgid "[ERROR_NOTCL] Due of %s, Scale action was not executed." msgstr "[ERROR_NOTCL] Из-за %s, операция масштабирования не была выполнена." #: flatcamEditors/FlatCAMGeoEditor.py:1455 -#: flatcamEditors/FlatCAMGrbEditor.py:5460 +#: flatcamEditors/FlatCAMGrbEditor.py:5476 msgid "[WARNING_NOTCL] No shape selected. Please Select a shape to offset!" msgstr "" "[WARNING_NOTCL] Фигура не выбрана. Пожалуйста, выберите фигуру для смещения!" #: flatcamEditors/FlatCAMGeoEditor.py:1458 -#: flatcamEditors/FlatCAMGrbEditor.py:5463 flatcamTools/ToolTransform.py:861 +#: flatcamEditors/FlatCAMGrbEditor.py:5479 flatcamTools/ToolTransform.py:861 msgid "Applying Offset" msgstr "Применение смещения" #: flatcamEditors/FlatCAMGeoEditor.py:1469 -#: flatcamEditors/FlatCAMGrbEditor.py:5484 flatcamTools/ToolTransform.py:880 +#: flatcamEditors/FlatCAMGrbEditor.py:5501 flatcamTools/ToolTransform.py:880 #, python-format msgid "[success] Offset on the %s axis done ..." msgstr "[success] Смещение по оси %s выполнено ..." #: flatcamEditors/FlatCAMGeoEditor.py:1473 -#: flatcamEditors/FlatCAMGrbEditor.py:5488 flatcamTools/ToolTransform.py:884 +#: flatcamEditors/FlatCAMGrbEditor.py:5505 flatcamTools/ToolTransform.py:884 #, python-format msgid "[ERROR_NOTCL] Due of %s, Offset action was not executed." msgstr "[ERROR_NOTCL] Из-за %s операция смещения не была выполнена." #: flatcamEditors/FlatCAMGeoEditor.py:1477 -#: flatcamEditors/FlatCAMGrbEditor.py:5492 +#: flatcamEditors/FlatCAMGrbEditor.py:5509 msgid "Rotate ..." msgstr "Поворот ..." #: flatcamEditors/FlatCAMGeoEditor.py:1478 #: flatcamEditors/FlatCAMGeoEditor.py:1535 #: flatcamEditors/FlatCAMGeoEditor.py:1552 -#: flatcamEditors/FlatCAMGrbEditor.py:5493 -#: flatcamEditors/FlatCAMGrbEditor.py:5550 +#: flatcamEditors/FlatCAMGrbEditor.py:5510 #: flatcamEditors/FlatCAMGrbEditor.py:5567 +#: flatcamEditors/FlatCAMGrbEditor.py:5584 msgid "Enter an Angle Value (degrees):" msgstr "Введите значение угла (градусы):" #: flatcamEditors/FlatCAMGeoEditor.py:1487 -#: flatcamEditors/FlatCAMGrbEditor.py:5502 +#: flatcamEditors/FlatCAMGrbEditor.py:5519 msgid "[success] Geometry shape rotate done..." msgstr "[success] Вращение фигуры выполнено..." #: flatcamEditors/FlatCAMGeoEditor.py:1492 -#: flatcamEditors/FlatCAMGrbEditor.py:5507 +#: flatcamEditors/FlatCAMGrbEditor.py:5524 msgid "[WARNING_NOTCL] Geometry shape rotate cancelled..." msgstr "[WARNING_NOTCL] Вращение фигуры отменено..." #: flatcamEditors/FlatCAMGeoEditor.py:1498 -#: flatcamEditors/FlatCAMGrbEditor.py:5513 +#: flatcamEditors/FlatCAMGrbEditor.py:5530 msgid "Offset on X axis ..." msgstr "Смещение по оси X ..." #: flatcamEditors/FlatCAMGeoEditor.py:1499 #: flatcamEditors/FlatCAMGeoEditor.py:1518 -#: flatcamEditors/FlatCAMGrbEditor.py:5514 -#: flatcamEditors/FlatCAMGrbEditor.py:5533 +#: flatcamEditors/FlatCAMGrbEditor.py:5531 +#: flatcamEditors/FlatCAMGrbEditor.py:5550 #, python-format msgid "Enter a distance Value (%s):" msgstr "Введите значение расстояния (%s):" #: flatcamEditors/FlatCAMGeoEditor.py:1508 -#: flatcamEditors/FlatCAMGrbEditor.py:5523 +#: flatcamEditors/FlatCAMGrbEditor.py:5540 msgid "[success] Geometry shape offset on X axis done..." msgstr "[success] Смещение формы по оси X выполнено..." #: flatcamEditors/FlatCAMGeoEditor.py:1512 -#: flatcamEditors/FlatCAMGrbEditor.py:5527 +#: flatcamEditors/FlatCAMGrbEditor.py:5544 msgid "[WARNING_NOTCL] Geometry shape offset X cancelled..." msgstr "[WARNING_NOTCL] Смещение формы по оси X отменено..." #: flatcamEditors/FlatCAMGeoEditor.py:1517 -#: flatcamEditors/FlatCAMGrbEditor.py:5532 +#: flatcamEditors/FlatCAMGrbEditor.py:5549 msgid "Offset on Y axis ..." msgstr "Смещение по оси Y ..." #: flatcamEditors/FlatCAMGeoEditor.py:1527 -#: flatcamEditors/FlatCAMGrbEditor.py:5542 +#: flatcamEditors/FlatCAMGrbEditor.py:5559 msgid "[success] Geometry shape offset on Y axis done..." msgstr "[success] Смещение формы по оси Y выполнено..." #: flatcamEditors/FlatCAMGeoEditor.py:1531 -#: flatcamEditors/FlatCAMGrbEditor.py:5546 +#: flatcamEditors/FlatCAMGrbEditor.py:5563 msgid "[WARNING_NOTCL] Geometry shape offset Y cancelled..." msgstr "[WARNING_NOTCL] Смещение формы по оси Y отменено..." #: flatcamEditors/FlatCAMGeoEditor.py:1534 -#: flatcamEditors/FlatCAMGrbEditor.py:5549 +#: flatcamEditors/FlatCAMGrbEditor.py:5566 msgid "Skew on X axis ..." msgstr "Наклон по оси X ..." #: flatcamEditors/FlatCAMGeoEditor.py:1544 -#: flatcamEditors/FlatCAMGrbEditor.py:5559 +#: flatcamEditors/FlatCAMGrbEditor.py:5576 msgid "[success] Geometry shape skew on X axis done..." msgstr "[success] Наклон формы по оси X выполнен..." #: flatcamEditors/FlatCAMGeoEditor.py:1548 -#: flatcamEditors/FlatCAMGrbEditor.py:5563 +#: flatcamEditors/FlatCAMGrbEditor.py:5580 msgid "[WARNING_NOTCL] Geometry shape skew X cancelled..." msgstr "[WARNING_NOTCL] Наклон формы по оси X отменён..." #: flatcamEditors/FlatCAMGeoEditor.py:1551 -#: flatcamEditors/FlatCAMGrbEditor.py:5566 +#: flatcamEditors/FlatCAMGrbEditor.py:5583 msgid "Skew on Y axis ..." msgstr "Наклон по оси Y ..." #: flatcamEditors/FlatCAMGeoEditor.py:1561 -#: flatcamEditors/FlatCAMGrbEditor.py:5576 +#: flatcamEditors/FlatCAMGrbEditor.py:5593 msgid "[success] Geometry shape skew on Y axis done..." msgstr "[success] Наклон формы по оси Y выполнен..." #: flatcamEditors/FlatCAMGeoEditor.py:1565 -#: flatcamEditors/FlatCAMGrbEditor.py:5580 +#: flatcamEditors/FlatCAMGrbEditor.py:5597 msgid "[WARNING_NOTCL] Geometry shape skew Y cancelled..." msgstr "[WARNING_NOTCL] Наклон формы по оси Y отменён..." @@ -3052,7 +3057,7 @@ msgid "[WARNING_NOTCL] Buffer cancelled. No shape selected." msgstr "[WARNING_NOTCL] Создание буфера отменено. Фигура не выбрана." #: flatcamEditors/FlatCAMGeoEditor.py:2711 -#: flatcamEditors/FlatCAMGrbEditor.py:4442 +#: flatcamEditors/FlatCAMGrbEditor.py:4447 msgid "[success] Done. Buffer Tool completed." msgstr "[success] Готово. Создание буфера завершено." @@ -3095,7 +3100,7 @@ msgstr "Создать геометрию окрашивания ..." msgid "Shape transformations ..." msgstr "Преобразования фигуры ..." -#: flatcamEditors/FlatCAMGeoEditor.py:3416 +#: flatcamEditors/FlatCAMGeoEditor.py:3419 #, python-brace-format msgid "" "[WARNING_NOTCL] Editing MultiGeo Geometry, tool: {tool} with diameter: {dia}" @@ -3103,19 +3108,19 @@ msgstr "" "[WARNING_NOTCL] Редактирование MultiGeo Geometry, инструментом: {tool} с " "диаметром: {dia}" -#: flatcamEditors/FlatCAMGeoEditor.py:3793 +#: flatcamEditors/FlatCAMGeoEditor.py:3796 msgid "[WARNING_NOTCL] Copy cancelled. No shape selected." msgstr "[WARNING_NOTCL] Копирование отменено. Форма не выбрана." -#: flatcamEditors/FlatCAMGeoEditor.py:3800 flatcamGUI/FlatCAMGUI.py:2727 +#: flatcamEditors/FlatCAMGeoEditor.py:3803 flatcamGUI/FlatCAMGUI.py:2727 #: flatcamGUI/FlatCAMGUI.py:2773 flatcamGUI/FlatCAMGUI.py:2791 #: flatcamGUI/FlatCAMGUI.py:2922 flatcamGUI/FlatCAMGUI.py:2934 #: flatcamGUI/FlatCAMGUI.py:2968 msgid "Click on target point." msgstr "Нажмите на целевой точке." -#: flatcamEditors/FlatCAMGeoEditor.py:4044 -#: flatcamEditors/FlatCAMGeoEditor.py:4079 +#: flatcamEditors/FlatCAMGeoEditor.py:4047 +#: flatcamEditors/FlatCAMGeoEditor.py:4082 msgid "" "[WARNING_NOTCL] A selection of at least 2 geo items is required to do " "Intersection." @@ -3123,9 +3128,9 @@ msgstr "" "[WARNING_NOTCL] Выберите по крайней мере 2 geo элемента, что-бы сделать " "пересечение." -#: flatcamEditors/FlatCAMGeoEditor.py:4163 -#: flatcamEditors/FlatCAMGeoEditor.py:4201 -#: flatcamEditors/FlatCAMGeoEditor.py:4277 +#: flatcamEditors/FlatCAMGeoEditor.py:4166 +#: flatcamEditors/FlatCAMGeoEditor.py:4204 +#: flatcamEditors/FlatCAMGeoEditor.py:4280 msgid "" "[ERROR_NOTCL] Negative buffer value is not accepted. Use Buffer interior to " "generate an 'inside' shape" @@ -3133,52 +3138,52 @@ msgstr "" "[ERROR_NOTCL] Отрицательное значение буфера не принимается. Используйте " "внутренний буфер для создания \"внутри\" формы" -#: flatcamEditors/FlatCAMGeoEditor.py:4172 -#: flatcamEditors/FlatCAMGeoEditor.py:4210 -#: flatcamEditors/FlatCAMGeoEditor.py:4285 +#: flatcamEditors/FlatCAMGeoEditor.py:4175 +#: flatcamEditors/FlatCAMGeoEditor.py:4213 +#: flatcamEditors/FlatCAMGeoEditor.py:4288 msgid "[WARNING_NOTCL] Nothing selected for buffering." msgstr "[WARNING_NOTCL] Ничего не выбрано для создания буфера." -#: flatcamEditors/FlatCAMGeoEditor.py:4176 -#: flatcamEditors/FlatCAMGeoEditor.py:4214 -#: flatcamEditors/FlatCAMGeoEditor.py:4289 +#: flatcamEditors/FlatCAMGeoEditor.py:4179 +#: flatcamEditors/FlatCAMGeoEditor.py:4217 +#: flatcamEditors/FlatCAMGeoEditor.py:4292 msgid "[WARNING_NOTCL] Invalid distance for buffering." msgstr "[WARNING_NOTCL] Недопустимое расстояние для создания буфера." -#: flatcamEditors/FlatCAMGeoEditor.py:4186 -#: flatcamEditors/FlatCAMGeoEditor.py:4298 +#: flatcamEditors/FlatCAMGeoEditor.py:4189 +#: flatcamEditors/FlatCAMGeoEditor.py:4301 msgid "" "[ERROR_NOTCL] Failed, the result is empty. Choose a different buffer value." msgstr "" "[ERROR_NOTCL] Ошибка, результат нулевой. Выберите другое значение буфера." -#: flatcamEditors/FlatCAMGeoEditor.py:4194 +#: flatcamEditors/FlatCAMGeoEditor.py:4197 msgid "[success] Full buffer geometry created." -msgstr "[success] Создана геометрия полного буфера" +msgstr "[success] Создана геометрия полного буфера." -#: flatcamEditors/FlatCAMGeoEditor.py:4224 +#: flatcamEditors/FlatCAMGeoEditor.py:4227 msgid "" "[ERROR_NOTCL] Failed, the result is empty. Choose a smaller buffer value." msgstr "" "[ERROR_NOTCL] Ошибка, результат нулевой. Выберите меньшее значение буфера." -#: flatcamEditors/FlatCAMGeoEditor.py:4239 +#: flatcamEditors/FlatCAMGeoEditor.py:4242 msgid "[success] Interior buffer geometry created." msgstr "[success] Создана геометрия внутреннего буфера." -#: flatcamEditors/FlatCAMGeoEditor.py:4310 +#: flatcamEditors/FlatCAMGeoEditor.py:4313 msgid "[success] Exterior buffer geometry created." msgstr "[success] Создана геометрия внешнего буфера." -#: flatcamEditors/FlatCAMGeoEditor.py:4374 +#: flatcamEditors/FlatCAMGeoEditor.py:4377 msgid "[WARNING_NOTCL] Nothing selected for painting." msgstr "[WARNING_NOTCL] Ничего не выбрано для рисования." -#: flatcamEditors/FlatCAMGeoEditor.py:4380 +#: flatcamEditors/FlatCAMGeoEditor.py:4383 msgid "[WARNING] Invalid value for {}" msgstr "[WARNING] Неверное значение для {}" -#: flatcamEditors/FlatCAMGeoEditor.py:4386 +#: flatcamEditors/FlatCAMGeoEditor.py:4389 msgid "" "[ERROR_NOTCL] Could not do Paint. Overlap value has to be less than 1.00 " "(100%)." @@ -3186,7 +3191,7 @@ msgstr "" "[ERROR_NOTCL] Окраска не выполнена. Значение перекрытия должно быть меньше " "1,00 (100%)." -#: flatcamEditors/FlatCAMGeoEditor.py:4445 +#: flatcamEditors/FlatCAMGeoEditor.py:4448 #, python-format msgid "" "[ERROR] Could not do Paint. Try a different combination of parameters. Or a " @@ -3197,7 +3202,7 @@ msgstr "" "другой способ рисования\n" "%s" -#: flatcamEditors/FlatCAMGeoEditor.py:4456 +#: flatcamEditors/FlatCAMGeoEditor.py:4459 msgid "[success] Paint done." msgstr "[success] Окраска выполнена." @@ -3365,23 +3370,23 @@ msgid "Apertures Table for the Gerber Object." msgstr "Таблица отверстий для объекта Gerber." #: flatcamEditors/FlatCAMGrbEditor.py:2291 -#: flatcamEditors/FlatCAMGrbEditor.py:3602 flatcamGUI/ObjectUI.py:228 +#: flatcamEditors/FlatCAMGrbEditor.py:3601 flatcamGUI/ObjectUI.py:228 msgid "Code" msgstr "Код" #: flatcamEditors/FlatCAMGrbEditor.py:2291 -#: flatcamEditors/FlatCAMGrbEditor.py:3602 flatcamGUI/ObjectUI.py:228 +#: flatcamEditors/FlatCAMGrbEditor.py:3601 flatcamGUI/ObjectUI.py:228 #: flatcamGUI/ObjectUI.py:891 flatcamGUI/ObjectUI.py:1465 msgid "Type" msgstr "Тип" #: flatcamEditors/FlatCAMGrbEditor.py:2291 -#: flatcamEditors/FlatCAMGrbEditor.py:3602 flatcamGUI/ObjectUI.py:228 +#: flatcamEditors/FlatCAMGrbEditor.py:3601 flatcamGUI/ObjectUI.py:228 msgid "Size" msgstr "Размер" #: flatcamEditors/FlatCAMGrbEditor.py:2291 -#: flatcamEditors/FlatCAMGrbEditor.py:3602 flatcamGUI/ObjectUI.py:228 +#: flatcamEditors/FlatCAMGrbEditor.py:3601 flatcamGUI/ObjectUI.py:228 msgid "Dim" msgstr "Размер" @@ -3395,7 +3400,7 @@ msgstr "Код отверстия" #: flatcamEditors/FlatCAMGrbEditor.py:2299 flatcamGUI/ObjectUI.py:236 msgid "Type of aperture: circular, rectangle, macros etc" -msgstr "Тип отверстия: круг, прямоугольник, макросы и т.д." +msgstr "Тип отверстия: круг, прямоугольник, макросы и так далее" #: flatcamEditors/FlatCAMGrbEditor.py:2301 #: flatcamEditors/FlatCAMGrbEditor.py:2334 flatcamGUI/ObjectUI.py:238 @@ -3628,15 +3633,15 @@ msgstr "[success] Редактирование Gerber завершено." msgid "[WARNING_NOTCL] Cancelled. No aperture is selected" msgstr "[WARNING_NOTCL] Отмена. Нет выбранных отверстий" -#: flatcamEditors/FlatCAMGrbEditor.py:4270 +#: flatcamEditors/FlatCAMGrbEditor.py:4280 msgid "[ERROR_NOTCL] Failed. No aperture geometry is selected." msgstr "[ERROR_NOTCL] Ошибка. Не выбрана геометрия отверстий." -#: flatcamEditors/FlatCAMGrbEditor.py:4278 +#: flatcamEditors/FlatCAMGrbEditor.py:4288 msgid "[success] Done. Apertures geometry deleted." msgstr "[success] Готово. Геометрия отверстий удалена." -#: flatcamEditors/FlatCAMGrbEditor.py:4427 +#: flatcamEditors/FlatCAMGrbEditor.py:4431 msgid "" "[WARNING_NOTCL] No aperture to buffer. Select at least one aperture and try " "again." @@ -3644,7 +3649,15 @@ msgstr "" "[WARNING_NOTCL] Нет отверстий для создания буфера. Выберите хотя бы одно " "отверстие и повторите попытку." -#: flatcamEditors/FlatCAMGrbEditor.py:4456 +#: flatcamEditors/FlatCAMGrbEditor.py:4444 +#, fuzzy, python-format +#| msgid "[ERROR_NOTCL] Failed to open %s" +msgid "" +"[ERROR_NOTCL] Failed.\n" +"%s" +msgstr "[ERROR_NOTCL] Не удалось открыть %s" + +#: flatcamEditors/FlatCAMGrbEditor.py:4461 msgid "" "[WARNING_NOTCL] Scale factor value is missing or wrong format. Add it and " "retry." @@ -3652,7 +3665,7 @@ msgstr "" "[WARNING_NOTCL] Отсутствует значение коэффициента масштабирования или оно " "имеет неправильный формат. Добавьте его и повторите попытку." -#: flatcamEditors/FlatCAMGrbEditor.py:4486 +#: flatcamEditors/FlatCAMGrbEditor.py:4494 msgid "" "[WARNING_NOTCL] No aperture to scale. Select at least one aperture and try " "again." @@ -3660,7 +3673,7 @@ msgstr "" "[WARNING_NOTCL] Нет отверстий для масштабирования. Выберите хотя бы одно " "отверстие и повторите попытку." -#: flatcamEditors/FlatCAMGrbEditor.py:4502 +#: flatcamEditors/FlatCAMGrbEditor.py:4510 msgid "[success] Done. Scale Tool completed." msgstr "[success] Готово. Масштабирование выполнено." @@ -5856,7 +5869,7 @@ msgid "Gerber General" msgstr "Gerber основные" #: flatcamGUI/FlatCAMGUI.py:3995 flatcamGUI/FlatCAMGUI.py:4361 -#: flatcamGUI/FlatCAMGUI.py:5153 flatcamGUI/FlatCAMGUI.py:5525 +#: flatcamGUI/FlatCAMGUI.py:5135 flatcamGUI/FlatCAMGUI.py:5504 #: flatcamGUI/ObjectUI.py:150 flatcamGUI/ObjectUI.py:505 #: flatcamGUI/ObjectUI.py:833 flatcamGUI/ObjectUI.py:1350 msgid "Plot Options:" @@ -5880,18 +5893,18 @@ msgid "Draw polygons in different colors." msgstr "Окрашивать полигоны разными цветами." #: flatcamGUI/FlatCAMGUI.py:4016 flatcamGUI/FlatCAMGUI.py:4367 -#: flatcamGUI/FlatCAMGUI.py:5157 flatcamGUI/ObjectUI.py:172 +#: flatcamGUI/FlatCAMGUI.py:5139 flatcamGUI/ObjectUI.py:172 msgid "Plot" msgstr "Участок" -#: flatcamGUI/FlatCAMGUI.py:4018 flatcamGUI/FlatCAMGUI.py:5159 +#: flatcamGUI/FlatCAMGUI.py:4018 flatcamGUI/FlatCAMGUI.py:5141 #: flatcamGUI/ObjectUI.py:174 flatcamGUI/ObjectUI.py:546 #: flatcamGUI/ObjectUI.py:879 flatcamGUI/ObjectUI.py:1450 msgid "Plot (show) this object." msgstr "Начертить (отобразить) этот объект." -#: flatcamGUI/FlatCAMGUI.py:4023 flatcamGUI/FlatCAMGUI.py:5166 -#: flatcamGUI/FlatCAMGUI.py:5608 +#: flatcamGUI/FlatCAMGUI.py:4023 flatcamGUI/FlatCAMGUI.py:5149 +#: flatcamGUI/FlatCAMGUI.py:5587 msgid "Circle Steps:" msgstr "Круговые шаги:" @@ -5918,8 +5931,8 @@ msgstr "" "с траекториям обрезки за\n" "пределами полигонов." -#: flatcamGUI/FlatCAMGUI.py:4056 flatcamGUI/FlatCAMGUI.py:4753 -#: flatcamGUI/FlatCAMGUI.py:5897 flatcamGUI/ObjectUI.py:788 +#: flatcamGUI/FlatCAMGUI.py:4056 flatcamGUI/FlatCAMGUI.py:4735 +#: flatcamGUI/FlatCAMGUI.py:5876 flatcamGUI/ObjectUI.py:788 #: flatcamGUI/ObjectUI.py:804 msgid "Diameter of the cutting tool." msgstr "Диаметр режущего инструмента." @@ -5976,7 +5989,7 @@ msgstr "Объединить все проходы в один объект" msgid "Clear non-copper:" msgstr "Очистка меди:" -#: flatcamGUI/FlatCAMGUI.py:4104 flatcamGUI/FlatCAMGUI.py:5785 +#: flatcamGUI/FlatCAMGUI.py:4104 flatcamGUI/FlatCAMGUI.py:5764 #: flatcamGUI/ObjectUI.py:386 msgid "" "Create a Geometry object with\n" @@ -6083,7 +6096,7 @@ msgstr "" msgid "Gerber Export" msgstr "Экспорт Gerber" -#: flatcamGUI/FlatCAMGUI.py:4232 flatcamGUI/FlatCAMGUI.py:4902 +#: flatcamGUI/FlatCAMGUI.py:4232 flatcamGUI/FlatCAMGUI.py:4884 msgid "Export Options:" msgstr "Параметры экспорта:" @@ -6093,7 +6106,7 @@ msgid "" "when using the File -> Export -> Export Gerber menu entry." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4243 flatcamGUI/FlatCAMGUI.py:4913 +#: flatcamGUI/FlatCAMGUI.py:4243 flatcamGUI/FlatCAMGUI.py:4895 msgid "Units:" msgstr "Единицы:" @@ -6101,7 +6114,7 @@ msgstr "Единицы:" msgid "The units used in the Gerber file." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4257 flatcamGUI/FlatCAMGUI.py:4927 +#: flatcamGUI/FlatCAMGUI.py:4257 flatcamGUI/FlatCAMGUI.py:4909 msgid "Int/Decimals:" msgstr "Int/Decimals:" @@ -6123,7 +6136,7 @@ msgid "" "the decimal part of Gerber coordinates." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4293 flatcamGUI/FlatCAMGUI.py:4988 +#: flatcamGUI/FlatCAMGUI.py:4293 flatcamGUI/FlatCAMGUI.py:4970 msgid "Zeros:" msgstr "Нули:" @@ -6136,12 +6149,12 @@ msgid "" "and Leading Zeros are kept." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4326 flatcamGUI/FlatCAMGUI.py:5029 -#: flatcamGUI/FlatCAMGUI.py:5491 flatcamGUI/FlatCAMGUI.py:5783 -#: flatcamGUI/FlatCAMGUI.py:5884 flatcamGUI/FlatCAMGUI.py:5963 -#: flatcamGUI/FlatCAMGUI.py:6022 flatcamGUI/FlatCAMGUI.py:6125 -#: flatcamGUI/FlatCAMGUI.py:6186 flatcamGUI/FlatCAMGUI.py:6385 -#: flatcamGUI/FlatCAMGUI.py:6512 +#: flatcamGUI/FlatCAMGUI.py:4326 flatcamGUI/FlatCAMGUI.py:5011 +#: flatcamGUI/FlatCAMGUI.py:5470 flatcamGUI/FlatCAMGUI.py:5762 +#: flatcamGUI/FlatCAMGUI.py:5863 flatcamGUI/FlatCAMGUI.py:5942 +#: flatcamGUI/FlatCAMGUI.py:6001 flatcamGUI/FlatCAMGUI.py:6104 +#: flatcamGUI/FlatCAMGUI.py:6165 flatcamGUI/FlatCAMGUI.py:6364 +#: flatcamGUI/FlatCAMGUI.py:6491 msgid "Parameters:" msgstr "Параметры:" @@ -6149,8 +6162,8 @@ msgstr "Параметры:" msgid "A list of Gerber Editor parameters." msgstr "Список параметров редактора Gerber." -#: flatcamGUI/FlatCAMGUI.py:4336 flatcamGUI/FlatCAMGUI.py:5039 -#: flatcamGUI/FlatCAMGUI.py:5501 +#: flatcamGUI/FlatCAMGUI.py:4336 flatcamGUI/FlatCAMGUI.py:5021 +#: flatcamGUI/FlatCAMGUI.py:5480 msgid "Selection limit:" msgstr "" @@ -6203,14 +6216,14 @@ msgid "Default values for INCH are 2:4" msgstr "Значения по умолчанию для ДЮЙМОВОЙ 2:4" #: flatcamGUI/FlatCAMGUI.py:4418 flatcamGUI/FlatCAMGUI.py:4451 -#: flatcamGUI/FlatCAMGUI.py:4942 +#: flatcamGUI/FlatCAMGUI.py:4924 msgid "" "This numbers signify the number of digits in\n" "the whole part of Excellon coordinates." msgstr "" #: flatcamGUI/FlatCAMGUI.py:4432 flatcamGUI/FlatCAMGUI.py:4465 -#: flatcamGUI/FlatCAMGUI.py:4956 +#: flatcamGUI/FlatCAMGUI.py:4938 msgid "" "This numbers signify the number of digits in\n" "the decimal part of Excellon coordinates." @@ -6228,7 +6241,7 @@ msgstr "Значения по умолчанию для МЕТРИЧЕСКОЙ 3 msgid "Default Zeros:" msgstr "Умолчания Нули:" -#: flatcamGUI/FlatCAMGUI.py:4477 flatcamGUI/FlatCAMGUI.py:4991 +#: flatcamGUI/FlatCAMGUI.py:4477 flatcamGUI/FlatCAMGUI.py:4973 msgid "" "This sets the type of Excellon zeros.\n" "If LZ then Leading Zeros are kept and\n" @@ -6247,11 +6260,11 @@ msgid "" "and Leading Zeros are removed." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4502 +#: flatcamGUI/FlatCAMGUI.py:4498 msgid "Default Units:" msgstr "Умолчания Единицы:" -#: flatcamGUI/FlatCAMGUI.py:4505 +#: flatcamGUI/FlatCAMGUI.py:4501 msgid "" "This sets the default units of Excellon files.\n" "If it is not detected in the parsed file the value here\n" @@ -6259,22 +6272,22 @@ msgid "" "therefore this parameter will be used." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4516 +#: flatcamGUI/FlatCAMGUI.py:4512 msgid "" "This sets the units of Excellon files.\n" "Some Excellon files don't have an header\n" "therefore this parameter will be used." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4532 +#: flatcamGUI/FlatCAMGUI.py:4520 msgid "Excellon Optimization:" msgstr "Оптимизация Excellon:" -#: flatcamGUI/FlatCAMGUI.py:4539 +#: flatcamGUI/FlatCAMGUI.py:4523 msgid "Algorithm: " msgstr "Алгоритм: " -#: flatcamGUI/FlatCAMGUI.py:4542 flatcamGUI/FlatCAMGUI.py:4555 +#: flatcamGUI/FlatCAMGUI.py:4525 flatcamGUI/FlatCAMGUI.py:4539 msgid "" "This sets the optimization type for the Excellon drill path.\n" "If MH is checked then Google OR-Tools algorithm with MetaHeuristic\n" @@ -6286,11 +6299,11 @@ msgid "" "Travelling Salesman algorithm for path optimization." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4567 +#: flatcamGUI/FlatCAMGUI.py:4550 msgid "Optimization Time: " msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4570 +#: flatcamGUI/FlatCAMGUI.py:4553 msgid "" "When OR-Tools Metaheuristic (MH) is enabled there is a\n" "maximum threshold for how much time is spent doing the\n" @@ -6298,27 +6311,27 @@ msgid "" "In seconds." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4612 +#: flatcamGUI/FlatCAMGUI.py:4596 msgid "Excellon Options" msgstr "Параметры Excellon" -#: flatcamGUI/FlatCAMGUI.py:4615 flatcamGUI/ObjectUI.py:584 +#: flatcamGUI/FlatCAMGUI.py:4599 flatcamGUI/ObjectUI.py:584 msgid "Create CNC Job" msgstr "Создание программы для ЧПУ" -#: flatcamGUI/FlatCAMGUI.py:4617 +#: flatcamGUI/FlatCAMGUI.py:4601 msgid "" "Parameters used to create a CNC Job object\n" "for this drill object." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4625 flatcamGUI/FlatCAMGUI.py:5217 -#: flatcamGUI/FlatCAMGUI.py:6321 flatcamGUI/ObjectUI.py:595 +#: flatcamGUI/FlatCAMGUI.py:4609 flatcamGUI/FlatCAMGUI.py:5196 +#: flatcamGUI/FlatCAMGUI.py:6300 flatcamGUI/ObjectUI.py:595 #: flatcamGUI/ObjectUI.py:1062 flatcamTools/ToolCalculators.py:108 msgid "Cut Z:" msgstr "Глубина резания:" -#: flatcamGUI/FlatCAMGUI.py:4627 flatcamGUI/ObjectUI.py:597 +#: flatcamGUI/FlatCAMGUI.py:4611 flatcamGUI/ObjectUI.py:597 msgid "" "Drill depth (negative)\n" "below the copper surface." @@ -6326,12 +6339,12 @@ msgstr "" "Глубина сверления (отрицательная) \n" "ниже слоя меди." -#: flatcamGUI/FlatCAMGUI.py:4634 flatcamGUI/FlatCAMGUI.py:5250 +#: flatcamGUI/FlatCAMGUI.py:4618 flatcamGUI/FlatCAMGUI.py:5229 #: flatcamGUI/ObjectUI.py:605 flatcamGUI/ObjectUI.py:1098 msgid "Travel Z:" msgstr "Отвод по Z:" -#: flatcamGUI/FlatCAMGUI.py:4636 flatcamGUI/ObjectUI.py:607 +#: flatcamGUI/FlatCAMGUI.py:4620 flatcamGUI/ObjectUI.py:607 msgid "" "Tool height when travelling\n" "across the XY plane." @@ -6339,11 +6352,11 @@ msgstr "" "Отвод инструмента при холостом ходе\n" "по плоскости XY." -#: flatcamGUI/FlatCAMGUI.py:4644 flatcamGUI/FlatCAMGUI.py:5260 +#: flatcamGUI/FlatCAMGUI.py:4628 flatcamGUI/FlatCAMGUI.py:5239 msgid "Tool change:" msgstr "Смена инструмента:" -#: flatcamGUI/FlatCAMGUI.py:4646 flatcamGUI/FlatCAMGUI.py:5262 +#: flatcamGUI/FlatCAMGUI.py:4630 flatcamGUI/FlatCAMGUI.py:5241 #: flatcamGUI/ObjectUI.py:617 msgid "" "Include tool-change sequence\n" @@ -6352,19 +6365,19 @@ msgstr "" "Включает последовательность смены инструмента\n" "в G-Code (Пауза для смены инструмента)." -#: flatcamGUI/FlatCAMGUI.py:4653 flatcamGUI/FlatCAMGUI.py:5270 +#: flatcamGUI/FlatCAMGUI.py:4637 flatcamGUI/FlatCAMGUI.py:5249 msgid "Toolchange Z:" msgstr "Смена инструмента Z :" -#: flatcamGUI/FlatCAMGUI.py:4655 flatcamGUI/FlatCAMGUI.py:5272 +#: flatcamGUI/FlatCAMGUI.py:4639 flatcamGUI/FlatCAMGUI.py:5251 msgid "Toolchange Z position." msgstr "Позиция Z смены инструмента." -#: flatcamGUI/FlatCAMGUI.py:4661 +#: flatcamGUI/FlatCAMGUI.py:4645 msgid "Feedrate:" msgstr "Скорость подачи:" -#: flatcamGUI/FlatCAMGUI.py:4663 +#: flatcamGUI/FlatCAMGUI.py:4647 msgid "" "Tool speed while drilling\n" "(in units per minute)." @@ -6372,11 +6385,11 @@ msgstr "" "Настройка скорости подачи при сверлении \n" "(в единицах в минуту)." -#: flatcamGUI/FlatCAMGUI.py:4671 +#: flatcamGUI/FlatCAMGUI.py:4655 msgid "Spindle Speed:" msgstr "Скорость вр. шпинделя:" -#: flatcamGUI/FlatCAMGUI.py:4673 flatcamGUI/FlatCAMGUI.py:5302 +#: flatcamGUI/FlatCAMGUI.py:4657 flatcamGUI/FlatCAMGUI.py:5281 #: flatcamGUI/ObjectUI.py:684 msgid "" "Speed of the spindle\n" @@ -6385,11 +6398,11 @@ msgstr "" "Скорость шпинделя\n" "в оборотах в минуту(опционально) ." -#: flatcamGUI/FlatCAMGUI.py:4681 flatcamGUI/FlatCAMGUI.py:5310 +#: flatcamGUI/FlatCAMGUI.py:4665 flatcamGUI/FlatCAMGUI.py:5289 msgid "Spindle dir.:" msgstr "Напр. вращения:" -#: flatcamGUI/FlatCAMGUI.py:4683 flatcamGUI/FlatCAMGUI.py:5312 +#: flatcamGUI/FlatCAMGUI.py:4667 flatcamGUI/FlatCAMGUI.py:5291 msgid "" "This sets the direction that the spindle is rotating.\n" "It can be either:\n" @@ -6401,12 +6414,12 @@ msgstr "" "- CW = по часовой стрелке или\n" "- CCW = против часовой стрелки" -#: flatcamGUI/FlatCAMGUI.py:4695 flatcamGUI/FlatCAMGUI.py:5324 +#: flatcamGUI/FlatCAMGUI.py:4679 flatcamGUI/FlatCAMGUI.py:5303 #: flatcamGUI/ObjectUI.py:692 flatcamGUI/ObjectUI.py:1224 msgid "Dwell:" msgstr "Задержка:" -#: flatcamGUI/FlatCAMGUI.py:4697 flatcamGUI/FlatCAMGUI.py:5326 +#: flatcamGUI/FlatCAMGUI.py:4681 flatcamGUI/FlatCAMGUI.py:5305 #: flatcamGUI/ObjectUI.py:694 flatcamGUI/ObjectUI.py:1227 msgid "" "Pause to allow the spindle to reach its\n" @@ -6415,31 +6428,31 @@ msgstr "" "Задержка для набора оборотов шпинделя\n" "перед началом обработки." -#: flatcamGUI/FlatCAMGUI.py:4700 flatcamGUI/FlatCAMGUI.py:5329 +#: flatcamGUI/FlatCAMGUI.py:4684 flatcamGUI/FlatCAMGUI.py:5308 msgid "Duration:" msgstr "Продолжительность:" -#: flatcamGUI/FlatCAMGUI.py:4702 flatcamGUI/FlatCAMGUI.py:5331 +#: flatcamGUI/FlatCAMGUI.py:4686 flatcamGUI/FlatCAMGUI.py:5310 #: flatcamGUI/ObjectUI.py:699 flatcamGUI/ObjectUI.py:1234 msgid "Number of milliseconds for spindle to dwell." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4714 flatcamGUI/FlatCAMGUI.py:5341 +#: flatcamGUI/FlatCAMGUI.py:4698 flatcamGUI/FlatCAMGUI.py:5320 #: flatcamGUI/ObjectUI.py:707 msgid "Postprocessor:" msgstr "Постпроцессор:" -#: flatcamGUI/FlatCAMGUI.py:4716 +#: flatcamGUI/FlatCAMGUI.py:4700 msgid "" "The postprocessor file that dictates\n" "gcode output." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4725 +#: flatcamGUI/FlatCAMGUI.py:4709 msgid "Gcode: " msgstr "Gcode: " -#: flatcamGUI/FlatCAMGUI.py:4727 +#: flatcamGUI/FlatCAMGUI.py:4711 msgid "" "Choose what to use for GCode generation:\n" "'Drills', 'Slots' or 'Both'.\n" @@ -6447,82 +6460,82 @@ msgid "" "converted to drills." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4743 flatcamGUI/ObjectUI.py:772 +#: flatcamGUI/FlatCAMGUI.py:4727 flatcamGUI/ObjectUI.py:772 msgid "Mill Holes" msgstr "Фрезеровка отверстий" -#: flatcamGUI/FlatCAMGUI.py:4745 flatcamGUI/ObjectUI.py:774 +#: flatcamGUI/FlatCAMGUI.py:4729 flatcamGUI/ObjectUI.py:774 msgid "Create Geometry for milling holes." msgstr "Создание объекта геометрии для фрезерования отверстий." -#: flatcamGUI/FlatCAMGUI.py:4751 +#: flatcamGUI/FlatCAMGUI.py:4733 msgid "Drill Tool dia:" msgstr "Диам. сверла:" -#: flatcamGUI/FlatCAMGUI.py:4758 +#: flatcamGUI/FlatCAMGUI.py:4740 msgid "Slot Tool dia:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4760 +#: flatcamGUI/FlatCAMGUI.py:4742 msgid "" "Diameter of the cutting tool\n" "when milling slots." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4772 +#: flatcamGUI/FlatCAMGUI.py:4754 msgid "Defaults" msgstr "Значения по умолчанию" -#: flatcamGUI/FlatCAMGUI.py:4785 +#: flatcamGUI/FlatCAMGUI.py:4767 msgid "Excellon Adv. Options" msgstr "Excellon дополн." -#: flatcamGUI/FlatCAMGUI.py:4791 flatcamGUI/FlatCAMGUI.py:5364 +#: flatcamGUI/FlatCAMGUI.py:4773 flatcamGUI/FlatCAMGUI.py:5343 msgid "Advanced Options:" msgstr "Дополнительные настройки:" -#: flatcamGUI/FlatCAMGUI.py:4793 +#: flatcamGUI/FlatCAMGUI.py:4775 msgid "" "Parameters used to create a CNC Job object\n" "for this drill object that are shown when App Level is Advanced." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4801 +#: flatcamGUI/FlatCAMGUI.py:4783 msgid "Offset Z:" msgstr "Смещение Z:" -#: flatcamGUI/FlatCAMGUI.py:4803 flatcamGUI/ObjectUI.py:574 +#: flatcamGUI/FlatCAMGUI.py:4785 flatcamGUI/ObjectUI.py:574 msgid "" "Some drill bits (the larger ones) need to drill deeper\n" "to create the desired exit hole diameter due of the tip shape.\n" "The value here can compensate the Cut Z parameter." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4810 flatcamGUI/FlatCAMGUI.py:5375 +#: flatcamGUI/FlatCAMGUI.py:4792 flatcamGUI/FlatCAMGUI.py:5354 msgid "Toolchange X,Y:" msgstr "Смена инструмента X,Y:" -#: flatcamGUI/FlatCAMGUI.py:4812 flatcamGUI/FlatCAMGUI.py:5377 +#: flatcamGUI/FlatCAMGUI.py:4794 flatcamGUI/FlatCAMGUI.py:5356 msgid "Toolchange X,Y position." msgstr "Позиция X,Y смены инструмента." -#: flatcamGUI/FlatCAMGUI.py:4818 flatcamGUI/FlatCAMGUI.py:5384 +#: flatcamGUI/FlatCAMGUI.py:4800 flatcamGUI/FlatCAMGUI.py:5363 #: flatcamGUI/ObjectUI.py:634 msgid "Start move Z:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4820 +#: flatcamGUI/FlatCAMGUI.py:4802 msgid "" "Height of the tool just after start.\n" "Delete the value if you don't need this feature." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4827 flatcamGUI/FlatCAMGUI.py:5394 +#: flatcamGUI/FlatCAMGUI.py:4809 flatcamGUI/FlatCAMGUI.py:5373 #: flatcamGUI/ObjectUI.py:644 flatcamGUI/ObjectUI.py:1144 msgid "End move Z:" msgstr "Высота отвода Z:" -#: flatcamGUI/FlatCAMGUI.py:4829 flatcamGUI/FlatCAMGUI.py:5396 +#: flatcamGUI/FlatCAMGUI.py:4811 flatcamGUI/FlatCAMGUI.py:5375 msgid "" "Height of the tool after\n" "the last move at the end of the job." @@ -6530,12 +6543,12 @@ msgstr "" "Высота инструмента после\n" "последнего прохода в конце задания." -#: flatcamGUI/FlatCAMGUI.py:4836 flatcamGUI/FlatCAMGUI.py:5404 +#: flatcamGUI/FlatCAMGUI.py:4818 flatcamGUI/FlatCAMGUI.py:5383 #: flatcamGUI/ObjectUI.py:665 msgid "Feedrate Rapids:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4838 flatcamGUI/ObjectUI.py:667 +#: flatcamGUI/FlatCAMGUI.py:4820 flatcamGUI/ObjectUI.py:667 msgid "" "Tool speed while drilling\n" "(in units per minute).\n" @@ -6544,33 +6557,33 @@ msgid "" "ignore for any other cases." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4849 flatcamGUI/FlatCAMGUI.py:5428 +#: flatcamGUI/FlatCAMGUI.py:4831 flatcamGUI/FlatCAMGUI.py:5407 #: flatcamGUI/ObjectUI.py:718 flatcamGUI/ObjectUI.py:1256 msgid "Probe Z depth:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4851 flatcamGUI/FlatCAMGUI.py:5430 +#: flatcamGUI/FlatCAMGUI.py:4833 flatcamGUI/FlatCAMGUI.py:5409 #: flatcamGUI/ObjectUI.py:720 flatcamGUI/ObjectUI.py:1259 msgid "" "The maximum depth that the probe is allowed\n" "to probe. Negative value, in current units." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4859 flatcamGUI/FlatCAMGUI.py:5438 +#: flatcamGUI/FlatCAMGUI.py:4841 flatcamGUI/FlatCAMGUI.py:5417 #: flatcamGUI/ObjectUI.py:730 flatcamGUI/ObjectUI.py:1270 msgid "Feedrate Probe:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4861 flatcamGUI/FlatCAMGUI.py:5440 +#: flatcamGUI/FlatCAMGUI.py:4843 flatcamGUI/FlatCAMGUI.py:5419 #: flatcamGUI/ObjectUI.py:732 flatcamGUI/ObjectUI.py:1273 msgid "The feedrate used while the probe is probing." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4867 flatcamGUI/FlatCAMGUI.py:5447 +#: flatcamGUI/FlatCAMGUI.py:4849 flatcamGUI/FlatCAMGUI.py:5426 msgid "Fast Plunge:" msgstr "Быстрый подвод:" -#: flatcamGUI/FlatCAMGUI.py:4869 flatcamGUI/FlatCAMGUI.py:5449 +#: flatcamGUI/FlatCAMGUI.py:4851 flatcamGUI/FlatCAMGUI.py:5428 msgid "" "By checking this, the vertical move from\n" "Z_Toolchange to Z_move is done with G0,\n" @@ -6578,11 +6591,11 @@ msgid "" "WARNING: the move is done at Toolchange X,Y coords." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4878 +#: flatcamGUI/FlatCAMGUI.py:4860 msgid "Fast Retract:" msgstr "Быстрый отвод:" -#: flatcamGUI/FlatCAMGUI.py:4880 +#: flatcamGUI/FlatCAMGUI.py:4862 msgid "" "Exit hole strategy.\n" " - When uncheked, while exiting the drilled hole the drill bit\n" @@ -6592,21 +6605,21 @@ msgid "" "(travel height) is done as fast as possible (G0) in one move." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4899 +#: flatcamGUI/FlatCAMGUI.py:4881 msgid "Excellon Export" msgstr "Экспорт Excellon" -#: flatcamGUI/FlatCAMGUI.py:4904 +#: flatcamGUI/FlatCAMGUI.py:4886 msgid "" "The parameters set here are used in the file exported\n" "when using the File -> Export -> Export Excellon menu entry." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4915 flatcamGUI/FlatCAMGUI.py:4921 +#: flatcamGUI/FlatCAMGUI.py:4897 flatcamGUI/FlatCAMGUI.py:4903 msgid "The units used in the Excellon file." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4929 +#: flatcamGUI/FlatCAMGUI.py:4911 msgid "" "The NC drill files, usually named Excellon files\n" "are files that can be found in different formats.\n" @@ -6614,11 +6627,11 @@ msgid "" "coordinates are not using period." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4965 +#: flatcamGUI/FlatCAMGUI.py:4947 msgid "Format:" msgstr "Формат:" -#: flatcamGUI/FlatCAMGUI.py:4967 flatcamGUI/FlatCAMGUI.py:4977 +#: flatcamGUI/FlatCAMGUI.py:4949 flatcamGUI/FlatCAMGUI.py:4959 msgid "" "Select the kind of coordinates format used.\n" "Coordinates can be saved with decimal point or without.\n" @@ -6628,7 +6641,7 @@ msgid "" "or TZ = trailing zeros are kept." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5001 +#: flatcamGUI/FlatCAMGUI.py:4983 msgid "" "This sets the default type of Excellon zeros.\n" "If LZ then Leading Zeros are kept and\n" @@ -6637,11 +6650,11 @@ msgid "" "and Leading Zeros are removed." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5031 +#: flatcamGUI/FlatCAMGUI.py:5013 msgid "A list of Excellon Editor parameters." msgstr "Список параметров редактора Excellon." -#: flatcamGUI/FlatCAMGUI.py:5041 +#: flatcamGUI/FlatCAMGUI.py:5023 msgid "" "Set the number of selected Excellon geometry\n" "items above which the utility geometry\n" @@ -6650,27 +6663,27 @@ msgid "" "large number of geometric elements." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5053 +#: flatcamGUI/FlatCAMGUI.py:5035 msgid "New Tool Dia:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5076 +#: flatcamGUI/FlatCAMGUI.py:5058 msgid "Linear Drill Array:" msgstr "Линейный массив:" -#: flatcamGUI/FlatCAMGUI.py:5080 +#: flatcamGUI/FlatCAMGUI.py:5062 msgid "Linear Dir.:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5116 +#: flatcamGUI/FlatCAMGUI.py:5098 msgid "Circular Drill Array:" msgstr "Круговой массив:" -#: flatcamGUI/FlatCAMGUI.py:5120 +#: flatcamGUI/FlatCAMGUI.py:5102 msgid "Circular Dir.:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5122 +#: flatcamGUI/FlatCAMGUI.py:5104 msgid "" "Direction for circular array.\n" "Can be CW = clockwise or CCW = counter clockwise." @@ -6678,45 +6691,39 @@ msgstr "" "Направление для кругового массива.\n" "Может быть CW = по часовой стрелке или CCW = против часовой стрелки." -#: flatcamGUI/FlatCAMGUI.py:5133 +#: flatcamGUI/FlatCAMGUI.py:5115 msgid "Circ. Angle:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5150 +#: flatcamGUI/FlatCAMGUI.py:5132 msgid "Geometry General" msgstr "Geometry основные" -#: flatcamGUI/FlatCAMGUI.py:5168 +#: flatcamGUI/FlatCAMGUI.py:5151 msgid "" "The number of circle steps for Geometry \n" "circle and arc shapes linear approximation." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5176 -msgid "Tools" +#: flatcamGUI/FlatCAMGUI.py:5159 +#, fuzzy +#| msgid "Tools" +msgid "Tools:" msgstr "Инструменты" -#: flatcamGUI/FlatCAMGUI.py:5183 -msgid "Tool dia: " -msgstr "Диам. инстр.: " - -#: flatcamGUI/FlatCAMGUI.py:5185 -msgid "" -"The diameter of the cutting\n" -"tool.." +#: flatcamGUI/FlatCAMGUI.py:5165 flatcamGUI/FlatCAMGUI.py:5774 +msgid "Diameters of the cutting tools, separated by ','" msgstr "" -"Диаметр режущего\n" -"инструмента.." -#: flatcamGUI/FlatCAMGUI.py:5200 +#: flatcamGUI/FlatCAMGUI.py:5179 msgid "Geometry Options" msgstr "Параметры Geometry" -#: flatcamGUI/FlatCAMGUI.py:5205 +#: flatcamGUI/FlatCAMGUI.py:5184 msgid "Create CNC Job:" msgstr "Создание программы для ЧПУ:" -#: flatcamGUI/FlatCAMGUI.py:5207 +#: flatcamGUI/FlatCAMGUI.py:5186 msgid "" "Create a CNC Job object\n" "tracing the contours of this\n" @@ -6726,7 +6733,7 @@ msgstr "" "контуров данного объекта геометрии\n" "для программы ЧПУ." -#: flatcamGUI/FlatCAMGUI.py:5219 flatcamGUI/ObjectUI.py:1065 +#: flatcamGUI/FlatCAMGUI.py:5198 flatcamGUI/ObjectUI.py:1065 msgid "" "Cutting depth (negative)\n" "below the copper surface." @@ -6734,19 +6741,19 @@ msgstr "" "Глубина резания (отрицательная)\n" "ниже слоя меди." -#: flatcamGUI/FlatCAMGUI.py:5227 +#: flatcamGUI/FlatCAMGUI.py:5206 msgid "Multidepth" msgstr "Мультипроход" -#: flatcamGUI/FlatCAMGUI.py:5229 +#: flatcamGUI/FlatCAMGUI.py:5208 msgid "Multidepth usage: True or False." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5234 +#: flatcamGUI/FlatCAMGUI.py:5213 msgid "Depth/Pass:" msgstr "Шаг за проход:" -#: flatcamGUI/FlatCAMGUI.py:5236 +#: flatcamGUI/FlatCAMGUI.py:5215 msgid "" "The depth to cut on each pass,\n" "when multidepth is enabled.\n" @@ -6755,17 +6762,17 @@ msgid "" "which has negative value." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5252 flatcamGUI/ObjectUI.py:1101 +#: flatcamGUI/FlatCAMGUI.py:5231 flatcamGUI/ObjectUI.py:1101 msgid "" "Height of the tool when\n" "moving without cutting." msgstr "Высота отвода инструмента при холостом ходе." -#: flatcamGUI/FlatCAMGUI.py:5279 flatcamGUI/ObjectUI.py:1156 +#: flatcamGUI/FlatCAMGUI.py:5258 flatcamGUI/ObjectUI.py:1156 msgid "Feed Rate X-Y:" msgstr "Скорость подачи X-Y:" -#: flatcamGUI/FlatCAMGUI.py:5281 flatcamGUI/ObjectUI.py:1159 +#: flatcamGUI/FlatCAMGUI.py:5260 flatcamGUI/ObjectUI.py:1159 msgid "" "Cutting speed in the XY\n" "plane in units per minute" @@ -6773,45 +6780,45 @@ msgstr "" "Скорость резания в плоскости XY\n" "в единицах в минуту" -#: flatcamGUI/FlatCAMGUI.py:5289 +#: flatcamGUI/FlatCAMGUI.py:5268 msgid "Feed Rate Z:" msgstr "Скорость подачи Z:" -#: flatcamGUI/FlatCAMGUI.py:5291 +#: flatcamGUI/FlatCAMGUI.py:5270 msgid "" "Cutting speed in the XY\n" "plane in units per minute.\n" "It is called also Plunge." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5300 flatcamGUI/ObjectUI.py:682 +#: flatcamGUI/FlatCAMGUI.py:5279 flatcamGUI/ObjectUI.py:682 #: flatcamGUI/ObjectUI.py:1211 msgid "Spindle speed:" msgstr "Скорость вр. шпинделя:" -#: flatcamGUI/FlatCAMGUI.py:5343 +#: flatcamGUI/FlatCAMGUI.py:5322 msgid "" "The postprocessor file that dictates\n" "Machine Code output." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5359 +#: flatcamGUI/FlatCAMGUI.py:5338 msgid "Geometry Adv. Options" msgstr "Geometry дополн." -#: flatcamGUI/FlatCAMGUI.py:5366 +#: flatcamGUI/FlatCAMGUI.py:5345 msgid "" "Parameters to create a CNC Job object\n" "tracing the contours of a Geometry object." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5386 +#: flatcamGUI/FlatCAMGUI.py:5365 msgid "" "Height of the tool just after starting the work.\n" "Delete the value if you don't need this feature." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5406 +#: flatcamGUI/FlatCAMGUI.py:5385 msgid "" "Cutting speed in the XY plane\n" "(in units per minute).\n" @@ -6820,11 +6827,11 @@ msgid "" "ignore for any other cases." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5418 +#: flatcamGUI/FlatCAMGUI.py:5397 msgid "Re-cut 1st pt." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5420 flatcamGUI/ObjectUI.py:1202 +#: flatcamGUI/FlatCAMGUI.py:5399 flatcamGUI/ObjectUI.py:1202 msgid "" "In order to remove possible\n" "copper leftovers where first cut\n" @@ -6832,37 +6839,37 @@ msgid "" "extended cut over the first cut section." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5459 +#: flatcamGUI/FlatCAMGUI.py:5438 msgid "Seg. X size:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5461 +#: flatcamGUI/FlatCAMGUI.py:5440 msgid "" "The size of the trace segment on the X axis.\n" "Useful for auto-leveling.\n" "A value of 0 means no segmentation on the X axis." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5470 +#: flatcamGUI/FlatCAMGUI.py:5449 msgid "Seg. Y size:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5472 +#: flatcamGUI/FlatCAMGUI.py:5451 msgid "" "The size of the trace segment on the Y axis.\n" "Useful for auto-leveling.\n" "A value of 0 means no segmentation on the Y axis." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5488 +#: flatcamGUI/FlatCAMGUI.py:5467 msgid "Geometry Editor" msgstr "Редактор Geometry" -#: flatcamGUI/FlatCAMGUI.py:5493 +#: flatcamGUI/FlatCAMGUI.py:5472 msgid "A list of Geometry Editor parameters." msgstr "Список параметров редактора Geometry." -#: flatcamGUI/FlatCAMGUI.py:5503 +#: flatcamGUI/FlatCAMGUI.py:5482 msgid "" "Set the number of selected geometry\n" "items above which the utility geometry\n" @@ -6871,20 +6878,20 @@ msgid "" "large number of geometric elements." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5522 +#: flatcamGUI/FlatCAMGUI.py:5501 msgid "CNC Job General" msgstr "CNC Job основные" -#: flatcamGUI/FlatCAMGUI.py:5535 flatcamGUI/ObjectUI.py:544 +#: flatcamGUI/FlatCAMGUI.py:5514 flatcamGUI/ObjectUI.py:544 #: flatcamGUI/ObjectUI.py:877 flatcamGUI/ObjectUI.py:1447 msgid "Plot Object" msgstr "Рисовать объекты" -#: flatcamGUI/FlatCAMGUI.py:5542 +#: flatcamGUI/FlatCAMGUI.py:5521 msgid "Plot kind:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5544 flatcamGUI/ObjectUI.py:1356 +#: flatcamGUI/FlatCAMGUI.py:5523 flatcamGUI/ObjectUI.py:1356 msgid "" "This selects the kind of geometries on the canvas to plot.\n" "Those can be either of type 'Travel' which means the moves\n" @@ -6892,40 +6899,40 @@ msgid "" "which means the moves that cut into the material." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5561 +#: flatcamGUI/FlatCAMGUI.py:5540 msgid "Display Annotation:" msgstr "Показывать подписи:" -#: flatcamGUI/FlatCAMGUI.py:5563 flatcamGUI/ObjectUI.py:1372 +#: flatcamGUI/FlatCAMGUI.py:5542 flatcamGUI/ObjectUI.py:1372 msgid "" "This selects if to display text annotation on the plot.\n" "When checked it will display numbers in order for each end\n" "of a travel line." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5575 +#: flatcamGUI/FlatCAMGUI.py:5554 msgid "Annotation Size:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5577 +#: flatcamGUI/FlatCAMGUI.py:5556 msgid "The font size of the annotation text. In pixels." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5585 +#: flatcamGUI/FlatCAMGUI.py:5564 msgid "Annotation Color:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5587 +#: flatcamGUI/FlatCAMGUI.py:5566 msgid "Set the font color for the annotation texts." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5610 +#: flatcamGUI/FlatCAMGUI.py:5589 msgid "" "The number of circle steps for GCode \n" "circle and arc shapes linear approximation." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5620 +#: flatcamGUI/FlatCAMGUI.py:5599 msgid "" "Diameter of the tool to be\n" "rendered in the plot." @@ -6933,35 +6940,35 @@ msgstr "" "Диаметр инструмента\n" " для черчения контуров." -#: flatcamGUI/FlatCAMGUI.py:5628 +#: flatcamGUI/FlatCAMGUI.py:5607 msgid "Coords dec.:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5630 +#: flatcamGUI/FlatCAMGUI.py:5609 msgid "" "The number of decimals to be used for \n" "the X, Y, Z coordinates in CNC code (GCODE, etc.)" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5638 +#: flatcamGUI/FlatCAMGUI.py:5617 msgid "Feedrate dec.:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5640 +#: flatcamGUI/FlatCAMGUI.py:5619 msgid "" "The number of decimals to be used for \n" "the Feedrate parameter in CNC code (GCODE, etc.)" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5655 +#: flatcamGUI/FlatCAMGUI.py:5634 msgid "CNC Job Options" msgstr "Параметры CNC Job" -#: flatcamGUI/FlatCAMGUI.py:5658 flatcamGUI/FlatCAMGUI.py:5699 +#: flatcamGUI/FlatCAMGUI.py:5637 flatcamGUI/FlatCAMGUI.py:5678 msgid "Export G-Code:" msgstr "Экспорт G-Code:" -#: flatcamGUI/FlatCAMGUI.py:5660 flatcamGUI/FlatCAMGUI.py:5701 +#: flatcamGUI/FlatCAMGUI.py:5639 flatcamGUI/FlatCAMGUI.py:5680 #: flatcamGUI/ObjectUI.py:1483 msgid "" "Export and save G-Code to\n" @@ -6971,11 +6978,11 @@ msgstr "" "для сохранения\n" "этого объекта в файл." -#: flatcamGUI/FlatCAMGUI.py:5666 +#: flatcamGUI/FlatCAMGUI.py:5645 msgid "Prepend to G-Code:" msgstr "Коды предобработки для G-Code:" -#: flatcamGUI/FlatCAMGUI.py:5668 +#: flatcamGUI/FlatCAMGUI.py:5647 msgid "" "Type here any G-Code commands you would\n" "like to add at the beginning of the G-Code file." @@ -6983,11 +6990,11 @@ msgstr "" "Введите здесь любые команды G-Code, которые вам\n" "хотелось бы добавить в начале файла G-Code." -#: flatcamGUI/FlatCAMGUI.py:5677 +#: flatcamGUI/FlatCAMGUI.py:5656 msgid "Append to G-Code:" msgstr "Коды постобработки для G-Code:" -#: flatcamGUI/FlatCAMGUI.py:5679 flatcamGUI/ObjectUI.py:1505 +#: flatcamGUI/FlatCAMGUI.py:5658 flatcamGUI/ObjectUI.py:1505 msgid "" "Type here any G-Code commands you would\n" "like to append to the generated file.\n" @@ -6997,15 +7004,15 @@ msgstr "" "хотелось бы добавить к созданному файлу.\n" "например: M2 (конец программы)" -#: flatcamGUI/FlatCAMGUI.py:5696 +#: flatcamGUI/FlatCAMGUI.py:5675 msgid "CNC Job Adv. Options" msgstr "CNC Job дополн." -#: flatcamGUI/FlatCAMGUI.py:5707 flatcamGUI/ObjectUI.py:1523 +#: flatcamGUI/FlatCAMGUI.py:5686 flatcamGUI/ObjectUI.py:1523 msgid "Toolchange G-Code:" msgstr "G-Code смены инструмента:" -#: flatcamGUI/FlatCAMGUI.py:5709 +#: flatcamGUI/FlatCAMGUI.py:5688 msgid "" "Type here any G-Code commands you would\n" "like to be executed when Toolchange event is encountered.\n" @@ -7013,17 +7020,17 @@ msgid "" "or a Toolchange Macro." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5723 flatcamGUI/ObjectUI.py:1545 +#: flatcamGUI/FlatCAMGUI.py:5702 flatcamGUI/ObjectUI.py:1545 msgid "Use Toolchange Macro" msgstr "Использовать макросы смены инструмента" -#: flatcamGUI/FlatCAMGUI.py:5725 flatcamGUI/ObjectUI.py:1548 +#: flatcamGUI/FlatCAMGUI.py:5704 flatcamGUI/ObjectUI.py:1548 msgid "" "Check this box if you want to use\n" "a Custom Toolchange GCode (macro)." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5737 flatcamGUI/ObjectUI.py:1557 +#: flatcamGUI/FlatCAMGUI.py:5716 flatcamGUI/ObjectUI.py:1557 msgid "" "A list of the FlatCAM variables that can be used\n" "in the Toolchange event.\n" @@ -7033,71 +7040,67 @@ msgstr "" "при смене инструмента.\n" "Они должны быть окружены '%' символом" -#: flatcamGUI/FlatCAMGUI.py:5744 flatcamGUI/ObjectUI.py:1564 +#: flatcamGUI/FlatCAMGUI.py:5723 flatcamGUI/ObjectUI.py:1564 msgid "Parameters" msgstr "Параметры" -#: flatcamGUI/FlatCAMGUI.py:5747 flatcamGUI/ObjectUI.py:1567 +#: flatcamGUI/FlatCAMGUI.py:5726 flatcamGUI/ObjectUI.py:1567 msgid "FlatCAM CNC parameters" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5748 flatcamGUI/ObjectUI.py:1568 +#: flatcamGUI/FlatCAMGUI.py:5727 flatcamGUI/ObjectUI.py:1568 msgid "tool = tool number" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5749 flatcamGUI/ObjectUI.py:1569 +#: flatcamGUI/FlatCAMGUI.py:5728 flatcamGUI/ObjectUI.py:1569 msgid "tooldia = tool diameter" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5750 flatcamGUI/ObjectUI.py:1570 +#: flatcamGUI/FlatCAMGUI.py:5729 flatcamGUI/ObjectUI.py:1570 msgid "t_drills = for Excellon, total number of drills" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5751 flatcamGUI/ObjectUI.py:1571 +#: flatcamGUI/FlatCAMGUI.py:5730 flatcamGUI/ObjectUI.py:1571 msgid "x_toolchange = X coord for Toolchange" msgstr "x_toolchange = координата X для смены инструмента" -#: flatcamGUI/FlatCAMGUI.py:5752 flatcamGUI/ObjectUI.py:1572 +#: flatcamGUI/FlatCAMGUI.py:5731 flatcamGUI/ObjectUI.py:1572 msgid "y_toolchange = Y coord for Toolchange" msgstr "y_toolchange = координата Y для смены инструмента" -#: flatcamGUI/FlatCAMGUI.py:5753 flatcamGUI/ObjectUI.py:1573 +#: flatcamGUI/FlatCAMGUI.py:5732 flatcamGUI/ObjectUI.py:1573 msgid "z_toolchange = Z coord for Toolchange" msgstr "z_toolchange = координата Z для смены инструмента" -#: flatcamGUI/FlatCAMGUI.py:5754 +#: flatcamGUI/FlatCAMGUI.py:5733 msgid "z_cut = Z depth for the cut" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5755 +#: flatcamGUI/FlatCAMGUI.py:5734 msgid "z_move = Z height for travel" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5756 flatcamGUI/ObjectUI.py:1576 +#: flatcamGUI/FlatCAMGUI.py:5735 flatcamGUI/ObjectUI.py:1576 msgid "z_depthpercut = the step value for multidepth cut" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5757 flatcamGUI/ObjectUI.py:1577 +#: flatcamGUI/FlatCAMGUI.py:5736 flatcamGUI/ObjectUI.py:1577 msgid "spindlesspeed = the value for the spindle speed" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5759 flatcamGUI/ObjectUI.py:1578 +#: flatcamGUI/FlatCAMGUI.py:5738 flatcamGUI/ObjectUI.py:1578 msgid "dwelltime = time to dwell to allow the spindle to reach it's set RPM" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5780 +#: flatcamGUI/FlatCAMGUI.py:5759 msgid "NCC Tool Options" msgstr "Очистка меди" -#: flatcamGUI/FlatCAMGUI.py:5793 flatcamGUI/FlatCAMGUI.py:6523 +#: flatcamGUI/FlatCAMGUI.py:5772 flatcamGUI/FlatCAMGUI.py:6502 msgid "Tools dia:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5795 -msgid "Diameters of the cutting tools, separated by ','" -msgstr "" - -#: flatcamGUI/FlatCAMGUI.py:5803 flatcamTools/ToolNonCopperClear.py:167 +#: flatcamGUI/FlatCAMGUI.py:5782 flatcamTools/ToolNonCopperClear.py:167 #, python-format msgid "" "How much (fraction) of the tool width to overlap each tool pass.\n" @@ -7112,11 +7115,11 @@ msgid "" "due of too many paths." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5819 flatcamTools/ToolNonCopperClear.py:183 +#: flatcamGUI/FlatCAMGUI.py:5798 flatcamTools/ToolNonCopperClear.py:183 msgid "Bounding box margin." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5828 flatcamTools/ToolNonCopperClear.py:192 +#: flatcamGUI/FlatCAMGUI.py:5807 flatcamTools/ToolNonCopperClear.py:192 #: flatcamTools/ToolPaint.py:190 msgid "" "Algorithm for non-copper clearing:
Standard: Fixed step inwards." @@ -7127,12 +7130,12 @@ msgstr "" "контурами, повторяющими контур полигона.
По кругу: Обработка " "правильными окружностями.
Линейный: Паралельными линиями." -#: flatcamGUI/FlatCAMGUI.py:5860 flatcamTools/ToolNonCopperClear.py:224 +#: flatcamGUI/FlatCAMGUI.py:5839 flatcamTools/ToolNonCopperClear.py:224 #: flatcamTools/ToolPaint.py:222 msgid "Rest M.:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5862 +#: flatcamGUI/FlatCAMGUI.py:5841 msgid "" "If checked, use 'rest machining'.\n" "Basically it will clear copper outside PCB features,\n" @@ -7142,11 +7145,11 @@ msgid "" "If not checked, use the standard algorithm." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5881 +#: flatcamGUI/FlatCAMGUI.py:5860 msgid "Cutout Tool Options" msgstr "Обрезка платы" -#: flatcamGUI/FlatCAMGUI.py:5886 flatcamGUI/ObjectUI.py:402 +#: flatcamGUI/FlatCAMGUI.py:5865 flatcamGUI/ObjectUI.py:402 msgid "" "Create toolpaths to cut around\n" "the PCB and separate it from\n" @@ -7155,7 +7158,7 @@ msgstr "" "Создание траектории обрезки печатной платы и отделения её от\n" "заготовки." -#: flatcamGUI/FlatCAMGUI.py:5905 +#: flatcamGUI/FlatCAMGUI.py:5884 msgid "" "Distance from objects at which\n" "to draw the cutout." @@ -7163,11 +7166,11 @@ msgstr "" "Расстояние от объектов вокруг которых\n" "будет нарисовано очертание." -#: flatcamGUI/FlatCAMGUI.py:5912 flatcamTools/ToolCutOut.py:96 +#: flatcamGUI/FlatCAMGUI.py:5891 flatcamTools/ToolCutOut.py:96 msgid "Gap size:" msgstr "Размер перемычки:" -#: flatcamGUI/FlatCAMGUI.py:5914 +#: flatcamGUI/FlatCAMGUI.py:5893 msgid "" "Size of the gaps in the toolpath\n" "that will remain to hold the\n" @@ -7176,11 +7179,11 @@ msgstr "" "Размер перемычек для удержания\n" "печатной платы в заготовке." -#: flatcamGUI/FlatCAMGUI.py:5922 flatcamTools/ToolCutOut.py:134 +#: flatcamGUI/FlatCAMGUI.py:5901 flatcamTools/ToolCutOut.py:134 msgid "Gaps:" msgstr "Вариант:" -#: flatcamGUI/FlatCAMGUI.py:5924 +#: flatcamGUI/FlatCAMGUI.py:5903 msgid "" "Number of bridge gaps used for the cutout.\n" "There can be maximum 8 bridges/gaps.\n" @@ -7202,19 +7205,19 @@ msgstr "" "- 2tb - 2*сверху + 2*снизу \n" "- 8 - 2*слева + 2*справа + 2*сверху + 2*снизу" -#: flatcamGUI/FlatCAMGUI.py:5945 flatcamTools/ToolCutOut.py:115 +#: flatcamGUI/FlatCAMGUI.py:5924 flatcamTools/ToolCutOut.py:115 msgid "Convex Sh.:" msgstr "Закруглять углы:" -#: flatcamGUI/FlatCAMGUI.py:5947 +#: flatcamGUI/FlatCAMGUI.py:5926 msgid "Create a convex shape surrounding the entire PCB." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5960 +#: flatcamGUI/FlatCAMGUI.py:5939 msgid "2Sided Tool Options" -msgstr " 2-х сторонняя плата" +msgstr "2-х сторонняя плата" -#: flatcamGUI/FlatCAMGUI.py:5965 +#: flatcamGUI/FlatCAMGUI.py:5944 msgid "" "A tool to help in creating a double sided\n" "PCB using alignment holes." @@ -7222,28 +7225,28 @@ msgstr "" "Инструмент, помогающий создать двухстороннюю\n" "печатную плату с использованием центрирующих отверстий." -#: flatcamGUI/FlatCAMGUI.py:5975 flatcamTools/ToolDblSided.py:235 +#: flatcamGUI/FlatCAMGUI.py:5954 flatcamTools/ToolDblSided.py:235 msgid "Drill diam.:" msgstr "Диам. сверла.:" -#: flatcamGUI/FlatCAMGUI.py:5977 flatcamTools/ToolDblSided.py:226 +#: flatcamGUI/FlatCAMGUI.py:5956 flatcamTools/ToolDblSided.py:226 #: flatcamTools/ToolDblSided.py:237 msgid "Diameter of the drill for the alignment holes." msgstr "Диаметр сверла для контрольных отверстий." -#: flatcamGUI/FlatCAMGUI.py:5986 flatcamTools/ToolDblSided.py:120 +#: flatcamGUI/FlatCAMGUI.py:5965 flatcamTools/ToolDblSided.py:120 msgid "Mirror Axis:" msgstr "Зеркальное отражение:" -#: flatcamGUI/FlatCAMGUI.py:5988 flatcamTools/ToolDblSided.py:122 +#: flatcamGUI/FlatCAMGUI.py:5967 flatcamTools/ToolDblSided.py:122 msgid "Mirror vertically (X) or horizontally (Y)." msgstr "Отразить по вертикали (X) или горизонтали (Y)." -#: flatcamGUI/FlatCAMGUI.py:5999 flatcamTools/ToolDblSided.py:133 +#: flatcamGUI/FlatCAMGUI.py:5978 flatcamTools/ToolDblSided.py:133 msgid "Axis Ref:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6001 +#: flatcamGUI/FlatCAMGUI.py:5980 msgid "" "The axis should pass through a point or cut\n" " a specified box (in a Geometry object) in \n" @@ -7253,11 +7256,11 @@ msgstr "" " указанное поле (в Geometry объект) в\n" "середине." -#: flatcamGUI/FlatCAMGUI.py:6017 +#: flatcamGUI/FlatCAMGUI.py:5996 msgid "Paint Tool Options" msgstr "Рисование" -#: flatcamGUI/FlatCAMGUI.py:6024 flatcamGUI/ObjectUI.py:1305 +#: flatcamGUI/FlatCAMGUI.py:6003 flatcamGUI/ObjectUI.py:1305 msgid "" "Creates tool paths to cover the\n" "whole area of a polygon (remove\n" @@ -7268,7 +7271,7 @@ msgstr "" "всей площади полигона(удаляется вся медь).\n" "Будет предложено нажать на нужный полигон." -#: flatcamGUI/FlatCAMGUI.py:6048 +#: flatcamGUI/FlatCAMGUI.py:6027 msgid "" "How much (fraction) of the tool\n" "width to overlap each tool pass." @@ -7276,30 +7279,30 @@ msgstr "" "Размер части ширины инструмента \n" "который будет перекрываться за каждый проход." -#: flatcamGUI/FlatCAMGUI.py:6102 flatcamTools/ToolPaint.py:237 +#: flatcamGUI/FlatCAMGUI.py:6081 flatcamTools/ToolPaint.py:237 msgid "Selection:" msgstr "Выбор:" -#: flatcamGUI/FlatCAMGUI.py:6104 +#: flatcamGUI/FlatCAMGUI.py:6083 msgid "How to select the polygons to paint." msgstr "Как выбирать полигоны для рисования." -#: flatcamGUI/FlatCAMGUI.py:6122 +#: flatcamGUI/FlatCAMGUI.py:6101 msgid "Film Tool Options" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6127 +#: flatcamGUI/FlatCAMGUI.py:6106 msgid "" "Create a PCB film from a Gerber or Geometry\n" "FlatCAM object.\n" "The file is saved in SVG format." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6138 flatcamTools/ToolFilm.py:116 +#: flatcamGUI/FlatCAMGUI.py:6117 flatcamTools/ToolFilm.py:116 msgid "Film Type:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6140 flatcamTools/ToolFilm.py:118 +#: flatcamGUI/FlatCAMGUI.py:6119 flatcamTools/ToolFilm.py:118 msgid "" "Generate a Positive black film or a Negative film.\n" "Positive means that it will print the features\n" @@ -7309,11 +7312,11 @@ msgid "" "The Film format is SVG." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6151 flatcamTools/ToolFilm.py:130 +#: flatcamGUI/FlatCAMGUI.py:6130 flatcamTools/ToolFilm.py:130 msgid "Border:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6153 flatcamTools/ToolFilm.py:132 +#: flatcamGUI/FlatCAMGUI.py:6132 flatcamTools/ToolFilm.py:132 msgid "" "Specify a border around the object.\n" "Only for negative film.\n" @@ -7325,11 +7328,11 @@ msgid "" "surroundings if not for this border." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6166 flatcamTools/ToolFilm.py:144 +#: flatcamGUI/FlatCAMGUI.py:6145 flatcamTools/ToolFilm.py:144 msgid "Scale Stroke:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6168 flatcamTools/ToolFilm.py:146 +#: flatcamGUI/FlatCAMGUI.py:6147 flatcamTools/ToolFilm.py:146 msgid "" "Scale the line stroke thickness of each feature in the SVG file.\n" "It means that the line that envelope each SVG feature will be thicker or " @@ -7337,69 +7340,69 @@ msgid "" "therefore the fine features may be more affected by this parameter." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6183 +#: flatcamGUI/FlatCAMGUI.py:6162 msgid "Panelize Tool Options" msgstr "Панелизация" -#: flatcamGUI/FlatCAMGUI.py:6188 +#: flatcamGUI/FlatCAMGUI.py:6167 msgid "" "Create an object that contains an array of (x, y) elements,\n" "each element is a copy of the source object spaced\n" "at a X distance, Y distance of each other." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6199 flatcamTools/ToolPanelize.py:147 +#: flatcamGUI/FlatCAMGUI.py:6178 flatcamTools/ToolPanelize.py:147 msgid "Spacing cols:" msgstr "Интервал столбцов:" -#: flatcamGUI/FlatCAMGUI.py:6201 flatcamTools/ToolPanelize.py:149 +#: flatcamGUI/FlatCAMGUI.py:6180 flatcamTools/ToolPanelize.py:149 msgid "" "Spacing between columns of the desired panel.\n" "In current units." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6209 flatcamTools/ToolPanelize.py:156 +#: flatcamGUI/FlatCAMGUI.py:6188 flatcamTools/ToolPanelize.py:156 msgid "Spacing rows:" msgstr "Интервал строк:" -#: flatcamGUI/FlatCAMGUI.py:6211 flatcamTools/ToolPanelize.py:158 +#: flatcamGUI/FlatCAMGUI.py:6190 flatcamTools/ToolPanelize.py:158 msgid "" "Spacing between rows of the desired panel.\n" "In current units." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6219 flatcamTools/ToolPanelize.py:165 +#: flatcamGUI/FlatCAMGUI.py:6198 flatcamTools/ToolPanelize.py:165 msgid "Columns:" msgstr "Столбцы:" -#: flatcamGUI/FlatCAMGUI.py:6221 flatcamTools/ToolPanelize.py:167 +#: flatcamGUI/FlatCAMGUI.py:6200 flatcamTools/ToolPanelize.py:167 msgid "Number of columns of the desired panel" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6228 flatcamTools/ToolPanelize.py:173 +#: flatcamGUI/FlatCAMGUI.py:6207 flatcamTools/ToolPanelize.py:173 msgid "Rows:" msgstr "Строки:" -#: flatcamGUI/FlatCAMGUI.py:6230 flatcamTools/ToolPanelize.py:175 +#: flatcamGUI/FlatCAMGUI.py:6209 flatcamTools/ToolPanelize.py:175 msgid "Number of rows of the desired panel" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6238 +#: flatcamGUI/FlatCAMGUI.py:6217 msgid "Panel Type:" msgstr "Тип панели:" -#: flatcamGUI/FlatCAMGUI.py:6240 +#: flatcamGUI/FlatCAMGUI.py:6219 msgid "" "Choose the type of object for the panel object:\n" "- Gerber\n" "- Geometry" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6249 +#: flatcamGUI/FlatCAMGUI.py:6228 msgid "Constrain within:" msgstr "Ограничить в пределах:" -#: flatcamGUI/FlatCAMGUI.py:6251 flatcamTools/ToolPanelize.py:195 +#: flatcamGUI/FlatCAMGUI.py:6230 flatcamTools/ToolPanelize.py:195 msgid "" "Area define by DX and DY within to constrain the panel.\n" "DX and DY values are in current units.\n" @@ -7408,171 +7411,171 @@ msgid "" "they fit completely within selected area." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6260 flatcamTools/ToolPanelize.py:204 +#: flatcamGUI/FlatCAMGUI.py:6239 flatcamTools/ToolPanelize.py:204 msgid "Width (DX):" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6262 flatcamTools/ToolPanelize.py:206 +#: flatcamGUI/FlatCAMGUI.py:6241 flatcamTools/ToolPanelize.py:206 msgid "" "The width (DX) within which the panel must fit.\n" "In current units." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6269 flatcamTools/ToolPanelize.py:212 +#: flatcamGUI/FlatCAMGUI.py:6248 flatcamTools/ToolPanelize.py:212 msgid "Height (DY):" msgstr "Высота (DY):" -#: flatcamGUI/FlatCAMGUI.py:6271 flatcamTools/ToolPanelize.py:214 +#: flatcamGUI/FlatCAMGUI.py:6250 flatcamTools/ToolPanelize.py:214 msgid "" "The height (DY)within which the panel must fit.\n" "In current units." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6285 +#: flatcamGUI/FlatCAMGUI.py:6264 msgid "Calculators Tool Options" msgstr "Калькулятор" -#: flatcamGUI/FlatCAMGUI.py:6288 +#: flatcamGUI/FlatCAMGUI.py:6267 msgid "V-Shape Tool Calculator:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6290 +#: flatcamGUI/FlatCAMGUI.py:6269 msgid "" "Calculate the tool diameter for a given V-shape tool,\n" "having the tip diameter, tip angle and\n" "depth-of-cut as parameters." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6301 flatcamTools/ToolCalculators.py:94 +#: flatcamGUI/FlatCAMGUI.py:6280 flatcamTools/ToolCalculators.py:94 msgid "Tip Diameter:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6303 +#: flatcamGUI/FlatCAMGUI.py:6282 msgid "" "This is the tool tip diameter.\n" "It is specified by manufacturer." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6311 +#: flatcamGUI/FlatCAMGUI.py:6290 msgid "Tip angle:" msgstr "Угол наклона:" -#: flatcamGUI/FlatCAMGUI.py:6313 +#: flatcamGUI/FlatCAMGUI.py:6292 msgid "" "This is the angle on the tip of the tool.\n" "It is specified by manufacturer." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6323 +#: flatcamGUI/FlatCAMGUI.py:6302 msgid "" "This is depth to cut into material.\n" "In the CNCJob object it is the CutZ parameter." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6330 +#: flatcamGUI/FlatCAMGUI.py:6309 msgid "ElectroPlating Calculator:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6332 flatcamTools/ToolCalculators.py:152 +#: flatcamGUI/FlatCAMGUI.py:6311 flatcamTools/ToolCalculators.py:152 msgid "" "This calculator is useful for those who plate the via/pad/drill holes,\n" "using a method like grahite ink or calcium hypophosphite ink or palladium " "chloride." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6342 flatcamTools/ToolCalculators.py:161 +#: flatcamGUI/FlatCAMGUI.py:6321 flatcamTools/ToolCalculators.py:161 msgid "Board Length:" msgstr "Длина платы:" -#: flatcamGUI/FlatCAMGUI.py:6344 flatcamTools/ToolCalculators.py:165 +#: flatcamGUI/FlatCAMGUI.py:6323 flatcamTools/ToolCalculators.py:165 msgid "This is the board length. In centimeters." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6350 flatcamTools/ToolCalculators.py:167 +#: flatcamGUI/FlatCAMGUI.py:6329 flatcamTools/ToolCalculators.py:167 msgid "Board Width:" msgstr "Ширина платы:" -#: flatcamGUI/FlatCAMGUI.py:6352 flatcamTools/ToolCalculators.py:171 +#: flatcamGUI/FlatCAMGUI.py:6331 flatcamTools/ToolCalculators.py:171 msgid "This is the board width.In centimeters." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6357 flatcamTools/ToolCalculators.py:173 +#: flatcamGUI/FlatCAMGUI.py:6336 flatcamTools/ToolCalculators.py:173 msgid "Current Density:" msgstr "Текущая плотность:" -#: flatcamGUI/FlatCAMGUI.py:6360 flatcamTools/ToolCalculators.py:177 +#: flatcamGUI/FlatCAMGUI.py:6339 flatcamTools/ToolCalculators.py:177 msgid "" "Current density to pass through the board. \n" "In Amps per Square Feet ASF." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6366 flatcamTools/ToolCalculators.py:181 +#: flatcamGUI/FlatCAMGUI.py:6345 flatcamTools/ToolCalculators.py:181 msgid "Copper Growth:" msgstr "Медный слой:" -#: flatcamGUI/FlatCAMGUI.py:6369 flatcamTools/ToolCalculators.py:185 +#: flatcamGUI/FlatCAMGUI.py:6348 flatcamTools/ToolCalculators.py:185 msgid "" "How thick the copper growth is intended to be.\n" "In microns." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6382 +#: flatcamGUI/FlatCAMGUI.py:6361 msgid "Transform Tool Options" msgstr "Трансформация" -#: flatcamGUI/FlatCAMGUI.py:6387 +#: flatcamGUI/FlatCAMGUI.py:6366 msgid "" "Various transformations that can be applied\n" "on a FlatCAM object." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6397 +#: flatcamGUI/FlatCAMGUI.py:6376 msgid "Rotate Angle:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6399 +#: flatcamGUI/FlatCAMGUI.py:6378 msgid "Angle for rotation. In degrees." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6406 +#: flatcamGUI/FlatCAMGUI.py:6385 msgid "Skew_X angle:" msgstr "Угол наклона_X:" -#: flatcamGUI/FlatCAMGUI.py:6408 +#: flatcamGUI/FlatCAMGUI.py:6387 msgid "Angle for Skew/Shear on X axis. In degrees." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6415 +#: flatcamGUI/FlatCAMGUI.py:6394 msgid "Skew_Y angle:" msgstr "Угол наклона_Y:" -#: flatcamGUI/FlatCAMGUI.py:6417 +#: flatcamGUI/FlatCAMGUI.py:6396 msgid "Angle for Skew/Shear on Y axis. In degrees." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6424 +#: flatcamGUI/FlatCAMGUI.py:6403 msgid "Scale_X factor:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6426 +#: flatcamGUI/FlatCAMGUI.py:6405 msgid "Factor for scaling on X axis." msgstr "Коэффициент масштабирования по оси X." -#: flatcamGUI/FlatCAMGUI.py:6433 +#: flatcamGUI/FlatCAMGUI.py:6412 msgid "Scale_Y factor:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6435 +#: flatcamGUI/FlatCAMGUI.py:6414 msgid "Factor for scaling on Y axis." msgstr "Коэффициент масштабирования по оси Y." -#: flatcamGUI/FlatCAMGUI.py:6443 +#: flatcamGUI/FlatCAMGUI.py:6422 msgid "" "Scale the selected object(s)\n" "using the Scale_X factor for both axis." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6451 flatcamTools/ToolTransform.py:210 +#: flatcamGUI/FlatCAMGUI.py:6430 flatcamTools/ToolTransform.py:210 msgid "" "Scale the selected object(s)\n" "using the origin reference when checked,\n" @@ -7580,27 +7583,27 @@ msgid "" "of the selected objects when unchecked." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6460 +#: flatcamGUI/FlatCAMGUI.py:6439 msgid "Offset_X val:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6462 +#: flatcamGUI/FlatCAMGUI.py:6441 msgid "Distance to offset on X axis. In current units." msgstr "Расстояние смещения по оси X. В текущих единицах." -#: flatcamGUI/FlatCAMGUI.py:6469 +#: flatcamGUI/FlatCAMGUI.py:6448 msgid "Offset_Y val:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6471 +#: flatcamGUI/FlatCAMGUI.py:6450 msgid "Distance to offset on Y axis. In current units." msgstr "Расстояние смещения по оси Y. В текущих единицах." -#: flatcamGUI/FlatCAMGUI.py:6477 +#: flatcamGUI/FlatCAMGUI.py:6456 msgid "Mirror Reference" msgstr "Точка зеркалтрования" -#: flatcamGUI/FlatCAMGUI.py:6479 flatcamTools/ToolTransform.py:314 +#: flatcamGUI/FlatCAMGUI.py:6458 flatcamTools/ToolTransform.py:314 msgid "" "Flip the selected object(s)\n" "around the point in Point Entry Field.\n" @@ -7613,11 +7616,11 @@ msgid "" "Point Entry field and click Flip on X(Y)" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6490 +#: flatcamGUI/FlatCAMGUI.py:6469 msgid " Mirror Ref. Point:" msgstr " Точка зеркалирования:" -#: flatcamGUI/FlatCAMGUI.py:6492 flatcamTools/ToolTransform.py:327 +#: flatcamGUI/FlatCAMGUI.py:6471 flatcamTools/ToolTransform.py:327 msgid "" "Coordinates in format (x, y) used as reference for mirroring.\n" "The 'x' in (x, y) will be used when using Flip on X and\n" @@ -7628,11 +7631,11 @@ msgstr "" "'x' в (x, y) будет использоваться при отражении по X и\n" "'y' в (x, y) будет использоваться при отражении по Y" -#: flatcamGUI/FlatCAMGUI.py:6509 +#: flatcamGUI/FlatCAMGUI.py:6488 msgid "SolderPaste Tool Options" msgstr "Паяльная паста" -#: flatcamGUI/FlatCAMGUI.py:6514 +#: flatcamGUI/FlatCAMGUI.py:6493 msgid "" "A tool to create GCode for dispensing\n" "solder paste onto a PCB." @@ -7640,153 +7643,153 @@ msgstr "" "Инструмент для создания GCode для дозирования\n" "нанесения паяльной пасты на печатную плату." -#: flatcamGUI/FlatCAMGUI.py:6525 +#: flatcamGUI/FlatCAMGUI.py:6504 msgid "Diameters of nozzle tools, separated by ','" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6532 +#: flatcamGUI/FlatCAMGUI.py:6511 msgid "New Nozzle Dia:" msgstr "Новый диам. насадки:" -#: flatcamGUI/FlatCAMGUI.py:6534 flatcamTools/ToolSolderPaste.py:103 +#: flatcamGUI/FlatCAMGUI.py:6513 flatcamTools/ToolSolderPaste.py:103 msgid "Diameter for the new Nozzle tool to add in the Tool Table" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6542 flatcamTools/ToolSolderPaste.py:166 +#: flatcamGUI/FlatCAMGUI.py:6521 flatcamTools/ToolSolderPaste.py:166 msgid "Z Dispense Start:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6544 flatcamTools/ToolSolderPaste.py:168 +#: flatcamGUI/FlatCAMGUI.py:6523 flatcamTools/ToolSolderPaste.py:168 msgid "The height (Z) when solder paste dispensing starts." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6551 flatcamTools/ToolSolderPaste.py:174 +#: flatcamGUI/FlatCAMGUI.py:6530 flatcamTools/ToolSolderPaste.py:174 msgid "Z Dispense:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6553 flatcamTools/ToolSolderPaste.py:176 +#: flatcamGUI/FlatCAMGUI.py:6532 flatcamTools/ToolSolderPaste.py:176 msgid "The height (Z) when doing solder paste dispensing." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6560 flatcamTools/ToolSolderPaste.py:183 +#: flatcamGUI/FlatCAMGUI.py:6539 flatcamTools/ToolSolderPaste.py:183 msgid "Z Dispense Stop:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6562 flatcamTools/ToolSolderPaste.py:185 +#: flatcamGUI/FlatCAMGUI.py:6541 flatcamTools/ToolSolderPaste.py:185 msgid "The height (Z) when solder paste dispensing stops." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6569 flatcamTools/ToolSolderPaste.py:191 +#: flatcamGUI/FlatCAMGUI.py:6548 flatcamTools/ToolSolderPaste.py:191 msgid "Z Travel:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6571 flatcamTools/ToolSolderPaste.py:193 +#: flatcamGUI/FlatCAMGUI.py:6550 flatcamTools/ToolSolderPaste.py:193 msgid "" "The height (Z) for travel between pads\n" "(without dispensing solder paste)." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6579 flatcamTools/ToolSolderPaste.py:200 +#: flatcamGUI/FlatCAMGUI.py:6558 flatcamTools/ToolSolderPaste.py:200 msgid "Z Toolchange:" msgstr "Z смены инструмента:" -#: flatcamGUI/FlatCAMGUI.py:6581 flatcamTools/ToolSolderPaste.py:202 +#: flatcamGUI/FlatCAMGUI.py:6560 flatcamTools/ToolSolderPaste.py:202 msgid "The height (Z) for tool (nozzle) change." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6588 flatcamTools/ToolSolderPaste.py:208 +#: flatcamGUI/FlatCAMGUI.py:6567 flatcamTools/ToolSolderPaste.py:208 msgid "XY Toolchange:" msgstr "XY смены инструмента:" -#: flatcamGUI/FlatCAMGUI.py:6590 flatcamTools/ToolSolderPaste.py:210 +#: flatcamGUI/FlatCAMGUI.py:6569 flatcamTools/ToolSolderPaste.py:210 msgid "" "The X,Y location for tool (nozzle) change.\n" "The format is (x, y) where x and y are real numbers." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6598 flatcamTools/ToolSolderPaste.py:217 +#: flatcamGUI/FlatCAMGUI.py:6577 flatcamTools/ToolSolderPaste.py:217 msgid "Feedrate X-Y:" msgstr "Скорость подачи X-Y:" -#: flatcamGUI/FlatCAMGUI.py:6600 flatcamTools/ToolSolderPaste.py:219 +#: flatcamGUI/FlatCAMGUI.py:6579 flatcamTools/ToolSolderPaste.py:219 msgid "Feedrate (speed) while moving on the X-Y plane." msgstr "Скорость подачи при движении по плоскости X-Y." -#: flatcamGUI/FlatCAMGUI.py:6607 flatcamTools/ToolSolderPaste.py:225 +#: flatcamGUI/FlatCAMGUI.py:6586 flatcamTools/ToolSolderPaste.py:225 msgid "Feedrate Z:" msgstr "Скорость подачи Z:" -#: flatcamGUI/FlatCAMGUI.py:6609 flatcamTools/ToolSolderPaste.py:227 +#: flatcamGUI/FlatCAMGUI.py:6588 flatcamTools/ToolSolderPaste.py:227 msgid "" "Feedrate (speed) while moving vertically\n" "(on Z plane)." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6617 flatcamTools/ToolSolderPaste.py:234 +#: flatcamGUI/FlatCAMGUI.py:6596 flatcamTools/ToolSolderPaste.py:234 msgid "Feedrate Z Dispense:" msgstr "Скорость подачи Z Диспенсер:" -#: flatcamGUI/FlatCAMGUI.py:6619 +#: flatcamGUI/FlatCAMGUI.py:6598 msgid "" "Feedrate (speed) while moving up vertically\n" "to Dispense position (on Z plane)." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6627 flatcamTools/ToolSolderPaste.py:243 +#: flatcamGUI/FlatCAMGUI.py:6606 flatcamTools/ToolSolderPaste.py:243 msgid "Spindle Speed FWD:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6629 flatcamTools/ToolSolderPaste.py:245 +#: flatcamGUI/FlatCAMGUI.py:6608 flatcamTools/ToolSolderPaste.py:245 msgid "" "The dispenser speed while pushing solder paste\n" "through the dispenser nozzle." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6637 flatcamTools/ToolSolderPaste.py:252 +#: flatcamGUI/FlatCAMGUI.py:6616 flatcamTools/ToolSolderPaste.py:252 msgid "Dwell FWD:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6639 flatcamTools/ToolSolderPaste.py:254 +#: flatcamGUI/FlatCAMGUI.py:6618 flatcamTools/ToolSolderPaste.py:254 msgid "Pause after solder dispensing." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6646 flatcamTools/ToolSolderPaste.py:260 +#: flatcamGUI/FlatCAMGUI.py:6625 flatcamTools/ToolSolderPaste.py:260 msgid "Spindle Speed REV:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6648 flatcamTools/ToolSolderPaste.py:262 +#: flatcamGUI/FlatCAMGUI.py:6627 flatcamTools/ToolSolderPaste.py:262 msgid "" "The dispenser speed while retracting solder paste\n" "through the dispenser nozzle." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6656 flatcamTools/ToolSolderPaste.py:269 +#: flatcamGUI/FlatCAMGUI.py:6635 flatcamTools/ToolSolderPaste.py:269 msgid "Dwell REV:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6658 flatcamTools/ToolSolderPaste.py:271 +#: flatcamGUI/FlatCAMGUI.py:6637 flatcamTools/ToolSolderPaste.py:271 msgid "" "Pause after solder paste dispenser retracted,\n" "to allow pressure equilibrium." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6665 flatcamTools/ToolSolderPaste.py:277 +#: flatcamGUI/FlatCAMGUI.py:6644 flatcamTools/ToolSolderPaste.py:277 msgid "PostProcessors:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6667 flatcamTools/ToolSolderPaste.py:279 +#: flatcamGUI/FlatCAMGUI.py:6646 flatcamTools/ToolSolderPaste.py:279 msgid "Files that control the GCode generation." msgstr "Файлы контролирующие генерацию GCode." -#: flatcamGUI/FlatCAMGUI.py:6697 flatcamGUI/FlatCAMGUI.py:6703 +#: flatcamGUI/FlatCAMGUI.py:6676 flatcamGUI/FlatCAMGUI.py:6682 msgid "Idle." msgstr "Нет заданий." -#: flatcamGUI/FlatCAMGUI.py:6727 +#: flatcamGUI/FlatCAMGUI.py:6706 msgid "Application started ..." msgstr "Приложение запущено ..." -#: flatcamGUI/FlatCAMGUI.py:6728 +#: flatcamGUI/FlatCAMGUI.py:6707 msgid "Hello!" msgstr "Привет!" @@ -8435,8 +8438,9 @@ msgid "CNC Job Object" msgstr "Объект программы для ЧПУ" #: flatcamGUI/ObjectUI.py:1353 +#, fuzzy msgid "Plot kind:" -msgstr "" +msgstr "Plot kind:" #: flatcamGUI/ObjectUI.py:1369 msgid "Display Annotation:" @@ -8823,9 +8827,12 @@ msgstr "" #: flatcamTools/ToolCutOut.py:370 flatcamTools/ToolCutOut.py:533 #: flatcamTools/ToolCutOut.py:777 +#, fuzzy msgid "" "[WARNING_NOTCL] Margin value is missing or wrong format. Add it and retry." msgstr "" +"[WARNING_NOTCL] Значение отступа отсутствует или оно имеет неправильный " +"формат. Добавьте его и повторите попытку." #: flatcamTools/ToolCutOut.py:381 flatcamTools/ToolCutOut.py:544 #: flatcamTools/ToolCutOut.py:672 @@ -8982,6 +8989,7 @@ msgid "Alignment Drill Coordinates:" msgstr "Координаты выравнивающего отверстия:" #: flatcamTools/ToolDblSided.py:195 +#, fuzzy msgid "" "Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For " "each set of (x, y) coordinates\n" @@ -8991,6 +8999,13 @@ msgid "" "- one drill in mirror position over the axis selected above in the 'Mirror " "Axis'." msgstr "" +"Выравнивающие отверстия (x1, y1), (x2, y2), ... на одной стороне оси " +"зеркала. Для каждого набора (x, y) координат \n" +"здесь, пара упражнений будет создана:\n" +"\\ п\n" +"- одно упражнение по координатам с поля \\ n\n" +"- одно сверление в положении зеркала над осью, выбранной выше в «Оси " +"зеркала»." #: flatcamTools/ToolDblSided.py:210 msgid "" @@ -9314,7 +9329,7 @@ msgstr "Начальн." #: flatcamTools/ToolMeasurement.py:49 flatcamTools/ToolMeasurement.py:52 msgid "Coords" -msgstr "координаты" +msgstr "Координаты" #: flatcamTools/ToolMeasurement.py:50 flatcamTools/ToolMeasurement.py:66 msgid "This is measuring Start point coordinates." @@ -9663,7 +9678,7 @@ msgstr "" #: flatcamTools/ToolPaint.py:254 msgid "Create Paint Geometry" -msgstr "" +msgstr "Создать Paint Geometry" #: flatcamTools/ToolPaint.py:256 msgid "" @@ -9714,11 +9729,11 @@ msgstr "" msgid "[ERROR_NOTCL] PaintTool.paint_poly() --> %s" msgstr "" -#: flatcamTools/ToolPaint.py:970 flatcamTools/ToolPaint.py:1263 +#: flatcamTools/ToolPaint.py:970 flatcamTools/ToolPaint.py:1267 msgid "Polygon Paint started ..." msgstr "Запущена отрисовка полигона ..." -#: flatcamTools/ToolPaint.py:1119 flatcamTools/ToolPaint.py:1208 +#: flatcamTools/ToolPaint.py:1123 flatcamTools/ToolPaint.py:1212 #, python-format msgid "" "[ERROR] Could not do Paint All. Try a different combination of parameters. " @@ -9726,7 +9741,7 @@ msgid "" "%s" msgstr "" -#: flatcamTools/ToolPaint.py:1143 +#: flatcamTools/ToolPaint.py:1147 msgid "" "[ERROR] There is no Painting Geometry in the file.\n" "Usually it means that the tool diameter is too big for the painted " @@ -9734,11 +9749,11 @@ msgid "" "Change the painting parameters and try again." msgstr "" -#: flatcamTools/ToolPaint.py:1152 +#: flatcamTools/ToolPaint.py:1156 msgid "[success] Paint All Done." msgstr "" -#: flatcamTools/ToolPaint.py:1238 +#: flatcamTools/ToolPaint.py:1242 msgid "" "[ERROR_NOTCL] There is no Painting Geometry in the file.\n" "Usually it means that the tool diameter is too big for the painted " @@ -9746,7 +9761,7 @@ msgid "" "Change the painting parameters and try again." msgstr "" -#: flatcamTools/ToolPaint.py:1247 +#: flatcamTools/ToolPaint.py:1251 msgid "[success] Paint All with Rest-Machining done." msgstr "" @@ -10556,5 +10571,15 @@ msgstr "Объекты CNCJob не могут быть смещены." #~ msgid "tool_tab" #~ msgstr "tool_tab" +#~ msgid "Tool dia: " +#~ msgstr "Диам. инстр.: " + +#~ msgid "" +#~ "The diameter of the cutting\n" +#~ "tool.." +#~ msgstr "" +#~ "Диаметр режущего\n" +#~ "инструмента.." + #~ msgid "Disable" #~ msgstr "Отключить" diff --git a/locale_template/strings.pot b/locale_template/strings.pot index a0af088c..c053e7b8 100644 --- a/locale_template/strings.pot +++ b/locale_template/strings.pot @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"POT-Creation-Date: 2019-06-11 23:00+0300\n" +"POT-Creation-Date: 2019-06-22 23:56+0300\n" "PO-Revision-Date: 2019-03-25 15:08+0200\n" "Last-Translator: \n" "Language-Team: \n" @@ -44,124 +44,124 @@ msgstr "" msgid "Open Script file failed." msgstr "" -#: FlatCAMApp.py:2235 +#: FlatCAMApp.py:2244 msgid "[WARNING_NOTCL] Select a Geometry, Gerber or Excellon Object to edit." msgstr "" -#: FlatCAMApp.py:2245 +#: FlatCAMApp.py:2254 msgid "" "[WARNING_NOTCL] Simultanoeus editing of tools geometry in a MultiGeo " "Geometry is not possible.\n" "Edit only one geometry at a time." msgstr "" -#: FlatCAMApp.py:2289 +#: FlatCAMApp.py:2309 msgid "[WARNING_NOTCL] Editor is activated ..." msgstr "" -#: FlatCAMApp.py:2307 +#: FlatCAMApp.py:2327 msgid "Do you want to save the edited object?" msgstr "" -#: FlatCAMApp.py:2308 flatcamGUI/FlatCAMGUI.py:1618 +#: FlatCAMApp.py:2328 flatcamGUI/FlatCAMGUI.py:1618 msgid "Close Editor" msgstr "" -#: FlatCAMApp.py:2311 FlatCAMApp.py:3403 FlatCAMApp.py:5881 +#: FlatCAMApp.py:2331 FlatCAMApp.py:3423 FlatCAMApp.py:5989 #: FlatCAMTranslation.py:89 flatcamGUI/FlatCAMGUI.py:3730 msgid "Yes" msgstr "" -#: FlatCAMApp.py:2312 FlatCAMApp.py:3404 FlatCAMApp.py:5882 +#: FlatCAMApp.py:2332 FlatCAMApp.py:3424 FlatCAMApp.py:5990 #: FlatCAMTranslation.py:90 flatcamGUI/FlatCAMGUI.py:3731 msgid "No" msgstr "" -#: FlatCAMApp.py:2313 FlatCAMApp.py:3405 FlatCAMApp.py:3737 FlatCAMApp.py:5883 +#: FlatCAMApp.py:2333 FlatCAMApp.py:3425 FlatCAMApp.py:3836 FlatCAMApp.py:5991 msgid "Cancel" msgstr "" -#: FlatCAMApp.py:2340 +#: FlatCAMApp.py:2360 msgid "[WARNING] Object empty after edit." msgstr "" -#: FlatCAMApp.py:2362 FlatCAMApp.py:2381 FlatCAMApp.py:2393 +#: FlatCAMApp.py:2382 FlatCAMApp.py:2401 FlatCAMApp.py:2413 msgid "[WARNING_NOTCL] Select a Gerber, Geometry or Excellon Object to update." msgstr "" -#: FlatCAMApp.py:2365 +#: FlatCAMApp.py:2385 #, python-format msgid "[selected] %s is updated, returning to App..." msgstr "" -#: FlatCAMApp.py:2730 +#: FlatCAMApp.py:2750 msgid "[ERROR] Could not load defaults file." msgstr "" -#: FlatCAMApp.py:2742 +#: FlatCAMApp.py:2762 msgid "[ERROR] Failed to parse defaults file." msgstr "" -#: FlatCAMApp.py:2763 FlatCAMApp.py:2767 +#: FlatCAMApp.py:2783 FlatCAMApp.py:2787 msgid "Import FlatCAM Preferences" msgstr "" -#: FlatCAMApp.py:2773 +#: FlatCAMApp.py:2793 msgid "[WARNING_NOTCL] FlatCAM preferences import cancelled." msgstr "" -#: FlatCAMApp.py:2781 FlatCAMApp.py:2835 FlatCAMApp.py:3282 +#: FlatCAMApp.py:2801 FlatCAMApp.py:2855 FlatCAMApp.py:3302 msgid "[ERROR_NOTCL] Could not load defaults file." msgstr "" -#: FlatCAMApp.py:2789 FlatCAMApp.py:3291 +#: FlatCAMApp.py:2809 FlatCAMApp.py:3311 msgid "[ERROR_NOTCL] Failed to parse defaults file." msgstr "" -#: FlatCAMApp.py:2792 +#: FlatCAMApp.py:2812 #, python-format msgid "[success] Imported Defaults from %s" msgstr "" -#: FlatCAMApp.py:2807 FlatCAMApp.py:2812 +#: FlatCAMApp.py:2827 FlatCAMApp.py:2832 msgid "Export FlatCAM Preferences" msgstr "" -#: FlatCAMApp.py:2819 +#: FlatCAMApp.py:2839 msgid "[WARNING_NOTCL] FlatCAM preferences export cancelled." msgstr "" -#: FlatCAMApp.py:2854 FlatCAMApp.py:3336 +#: FlatCAMApp.py:2874 FlatCAMApp.py:3356 msgid "[ERROR_NOTCL] Failed to write defaults to file." msgstr "" -#: FlatCAMApp.py:2907 +#: FlatCAMApp.py:2927 msgid "[ERROR_NOTCL] Failed to open recent files file for writing." msgstr "" -#: FlatCAMApp.py:2984 camlib.py:4454 +#: FlatCAMApp.py:3004 camlib.py:4457 msgid "[ERROR_NOTCL] An internal error has ocurred. See shell.\n" msgstr "" -#: FlatCAMApp.py:2985 +#: FlatCAMApp.py:3005 #, python-brace-format msgid "" "Object ({kind}) failed because: {error} \n" "\n" msgstr "" -#: FlatCAMApp.py:3005 +#: FlatCAMApp.py:3025 msgid "Converting units to " msgstr "" -#: FlatCAMApp.py:3084 FlatCAMApp.py:3087 FlatCAMApp.py:3090 FlatCAMApp.py:3093 +#: FlatCAMApp.py:3104 FlatCAMApp.py:3107 FlatCAMApp.py:3110 FlatCAMApp.py:3113 #, python-brace-format msgid "" "[selected] {kind} created/selected: {name}" msgstr "" -#: FlatCAMApp.py:3187 +#: FlatCAMApp.py:3207 #, python-brace-format msgid "" "FlatCAM
Version {version} {beta} ({date}) - " @@ -175,41 +175,41 @@ msgid "" "downloads/\">here.
" msgstr "" -#: FlatCAMApp.py:3340 +#: FlatCAMApp.py:3360 msgid "[success] Defaults saved." msgstr "" -#: FlatCAMApp.py:3361 +#: FlatCAMApp.py:3381 msgid "[ERROR_NOTCL] Could not load factory defaults file." msgstr "" -#: FlatCAMApp.py:3370 +#: FlatCAMApp.py:3390 msgid "[ERROR_NOTCL] Failed to parse factory defaults file." msgstr "" -#: FlatCAMApp.py:3384 +#: FlatCAMApp.py:3404 msgid "[ERROR_NOTCL] Failed to write factory defaults to file." msgstr "" -#: FlatCAMApp.py:3388 +#: FlatCAMApp.py:3408 msgid "Factory defaults saved." msgstr "" -#: FlatCAMApp.py:3393 flatcamGUI/FlatCAMGUI.py:3106 +#: FlatCAMApp.py:3413 flatcamGUI/FlatCAMGUI.py:3106 msgid "[WARNING_NOTCL] Application is saving the project. Please wait ..." msgstr "" -#: FlatCAMApp.py:3398 +#: FlatCAMApp.py:3418 msgid "" "There are files/objects modified in FlatCAM. \n" "Do you want to Save the project?" msgstr "" -#: FlatCAMApp.py:3401 FlatCAMApp.py:5879 +#: FlatCAMApp.py:3421 FlatCAMApp.py:5987 msgid "Save changes" msgstr "" -#: FlatCAMApp.py:3468 +#: FlatCAMApp.py:3488 msgid "" "[ERROR] Failed join. The Geometry objects are of different types.\n" "At least one is MultiGeo type and the other is SingleGeo type. A possibility " @@ -219,206 +219,206 @@ msgid "" "Check the generated GCODE." msgstr "" -#: FlatCAMApp.py:3509 +#: FlatCAMApp.py:3529 msgid "[ERROR_NOTCL] Failed. Excellon joining works only on Excellon objects." msgstr "" -#: FlatCAMApp.py:3531 +#: FlatCAMApp.py:3551 msgid "[ERROR_NOTCL] Failed. Gerber joining works only on Gerber objects." msgstr "" -#: FlatCAMApp.py:3546 FlatCAMApp.py:3571 +#: FlatCAMApp.py:3566 FlatCAMApp.py:3591 msgid "[ERROR_NOTCL] Failed. Select a Geometry Object and try again." msgstr "" -#: FlatCAMApp.py:3550 FlatCAMApp.py:3575 +#: FlatCAMApp.py:3570 FlatCAMApp.py:3595 #, python-format msgid "[ERROR_NOTCL] Expected a FlatCAMGeometry, got %s" msgstr "" -#: FlatCAMApp.py:3563 +#: FlatCAMApp.py:3583 msgid "[success] A Geometry object was converted to MultiGeo type." msgstr "" -#: FlatCAMApp.py:3589 +#: FlatCAMApp.py:3609 msgid "[success] A Geometry object was converted to SingleGeo type." msgstr "" -#: FlatCAMApp.py:3736 FlatCAMApp.py:4572 FlatCAMApp.py:6154 FlatCAMApp.py:6165 -#: FlatCAMApp.py:6405 FlatCAMApp.py:6415 +#: FlatCAMApp.py:3835 FlatCAMApp.py:4674 FlatCAMApp.py:6262 FlatCAMApp.py:6273 +#: FlatCAMApp.py:6513 FlatCAMApp.py:6523 msgid "Ok" msgstr "" -#: FlatCAMApp.py:3778 +#: FlatCAMApp.py:3880 #, python-format msgid "[success] Converted units to %s" msgstr "" -#: FlatCAMApp.py:3789 +#: FlatCAMApp.py:3891 msgid "[WARNING_NOTCL] Units conversion cancelled." msgstr "" -#: FlatCAMApp.py:4441 +#: FlatCAMApp.py:4543 msgid "Open file" msgstr "" -#: FlatCAMApp.py:4472 FlatCAMApp.py:4477 +#: FlatCAMApp.py:4574 FlatCAMApp.py:4579 msgid "Export G-Code ..." msgstr "" -#: FlatCAMApp.py:4480 +#: FlatCAMApp.py:4582 msgid "[WARNING_NOTCL] Export Code cancelled." msgstr "" -#: FlatCAMApp.py:4490 +#: FlatCAMApp.py:4592 msgid "[WARNING] No such file or directory" msgstr "" -#: FlatCAMApp.py:4497 +#: FlatCAMApp.py:4599 #, python-format msgid "Saved to: %s" msgstr "" -#: FlatCAMApp.py:4560 FlatCAMApp.py:4593 FlatCAMApp.py:4604 FlatCAMApp.py:4615 +#: FlatCAMApp.py:4662 FlatCAMApp.py:4695 FlatCAMApp.py:4706 FlatCAMApp.py:4717 #: flatcamTools/ToolNonCopperClear.py:489 flatcamTools/ToolSolderPaste.py:765 msgid "" "[WARNING_NOTCL] Please enter a tool diameter with non-zero value, in Float " "format." msgstr "" -#: FlatCAMApp.py:4565 FlatCAMApp.py:4598 FlatCAMApp.py:4609 FlatCAMApp.py:4620 +#: FlatCAMApp.py:4667 FlatCAMApp.py:4700 FlatCAMApp.py:4711 FlatCAMApp.py:4722 #: flatcamGUI/FlatCAMGUI.py:3001 msgid "[WARNING_NOTCL] Adding Tool cancelled ..." msgstr "" -#: FlatCAMApp.py:4568 +#: FlatCAMApp.py:4670 msgid "" "Adding Tool works only when Advanced is checked.\n" "Go to Preferences -> General - Show Advanced Options." msgstr "" -#: FlatCAMApp.py:4681 +#: FlatCAMApp.py:4783 msgid "Object(s) deleted ..." msgstr "" -#: FlatCAMApp.py:4685 +#: FlatCAMApp.py:4787 msgid "Failed. No object(s) selected..." msgstr "" -#: FlatCAMApp.py:4687 +#: FlatCAMApp.py:4789 msgid "Save the work in Editor and try again ..." msgstr "" -#: FlatCAMApp.py:4700 +#: FlatCAMApp.py:4802 msgid "Click to set the origin ..." msgstr "" -#: FlatCAMApp.py:4712 +#: FlatCAMApp.py:4814 msgid "Jump to ..." msgstr "" -#: FlatCAMApp.py:4713 +#: FlatCAMApp.py:4815 msgid "Enter the coordinates in format X,Y:" msgstr "" -#: FlatCAMApp.py:4720 +#: FlatCAMApp.py:4822 msgid "Wrong coordinates. Enter coordinates in format: X,Y" msgstr "" -#: FlatCAMApp.py:4738 flatcamEditors/FlatCAMExcEditor.py:2320 +#: FlatCAMApp.py:4840 flatcamEditors/FlatCAMExcEditor.py:2320 #: flatcamEditors/FlatCAMExcEditor.py:2327 -#: flatcamEditors/FlatCAMGeoEditor.py:3645 -#: flatcamEditors/FlatCAMGeoEditor.py:3659 +#: flatcamEditors/FlatCAMGeoEditor.py:3648 +#: flatcamEditors/FlatCAMGeoEditor.py:3662 #: flatcamEditors/FlatCAMGrbEditor.py:1040 #: flatcamEditors/FlatCAMGrbEditor.py:1141 #: flatcamEditors/FlatCAMGrbEditor.py:1409 #: flatcamEditors/FlatCAMGrbEditor.py:1666 -#: flatcamEditors/FlatCAMGrbEditor.py:3950 -#: flatcamEditors/FlatCAMGrbEditor.py:3964 flatcamGUI/FlatCAMGUI.py:2414 +#: flatcamEditors/FlatCAMGrbEditor.py:3960 +#: flatcamEditors/FlatCAMGrbEditor.py:3974 flatcamGUI/FlatCAMGUI.py:2414 #: flatcamGUI/FlatCAMGUI.py:2426 msgid "[success] Done." msgstr "" -#: FlatCAMApp.py:4870 FlatCAMApp.py:4937 +#: FlatCAMApp.py:4972 FlatCAMApp.py:5039 msgid "[WARNING_NOTCL] No object is selected. Select an object and try again." msgstr "" -#: FlatCAMApp.py:4978 +#: FlatCAMApp.py:5080 msgid "[success] Origin set ..." msgstr "" -#: FlatCAMApp.py:4998 +#: FlatCAMApp.py:5100 msgid "Preferences" msgstr "" -#: FlatCAMApp.py:5018 +#: FlatCAMApp.py:5120 msgid "[WARNING_NOTCL] No object selected to Flip on Y axis." msgstr "" -#: FlatCAMApp.py:5043 +#: FlatCAMApp.py:5145 msgid "[success] Flip on Y axis done." msgstr "" -#: FlatCAMApp.py:5045 FlatCAMApp.py:5085 +#: FlatCAMApp.py:5147 FlatCAMApp.py:5187 #: flatcamEditors/FlatCAMGeoEditor.py:1355 -#: flatcamEditors/FlatCAMGrbEditor.py:5331 flatcamTools/ToolTransform.py:748 +#: flatcamEditors/FlatCAMGrbEditor.py:5343 flatcamTools/ToolTransform.py:748 #, python-format msgid "[ERROR_NOTCL] Due of %s, Flip action was not executed." msgstr "" -#: FlatCAMApp.py:5058 +#: FlatCAMApp.py:5160 msgid "[WARNING_NOTCL] No object selected to Flip on X axis." msgstr "" -#: FlatCAMApp.py:5083 +#: FlatCAMApp.py:5185 msgid "[success] Flip on X axis done." msgstr "" -#: FlatCAMApp.py:5098 +#: FlatCAMApp.py:5200 msgid "[WARNING_NOTCL] No object selected to Rotate." msgstr "" -#: FlatCAMApp.py:5101 FlatCAMApp.py:5146 FlatCAMApp.py:5177 +#: FlatCAMApp.py:5203 FlatCAMApp.py:5248 FlatCAMApp.py:5279 msgid "Transform" msgstr "" -#: FlatCAMApp.py:5101 FlatCAMApp.py:5146 FlatCAMApp.py:5177 +#: FlatCAMApp.py:5203 FlatCAMApp.py:5248 FlatCAMApp.py:5279 msgid "Enter the Angle value:" msgstr "" -#: FlatCAMApp.py:5131 +#: FlatCAMApp.py:5233 msgid "[success] Rotation done." msgstr "" -#: FlatCAMApp.py:5133 flatcamEditors/FlatCAMGeoEditor.py:1298 -#: flatcamEditors/FlatCAMGrbEditor.py:5262 flatcamTools/ToolTransform.py:677 +#: FlatCAMApp.py:5235 flatcamEditors/FlatCAMGeoEditor.py:1298 +#: flatcamEditors/FlatCAMGrbEditor.py:5272 flatcamTools/ToolTransform.py:677 #, python-format msgid "[ERROR_NOTCL] Due of %s, rotation movement was not executed." msgstr "" -#: FlatCAMApp.py:5144 +#: FlatCAMApp.py:5246 msgid "[WARNING_NOTCL] No object selected to Skew/Shear on X axis." msgstr "" -#: FlatCAMApp.py:5165 +#: FlatCAMApp.py:5267 msgid "[success] Skew on X axis done." msgstr "" -#: FlatCAMApp.py:5175 +#: FlatCAMApp.py:5277 msgid "[WARNING_NOTCL] No object selected to Skew/Shear on Y axis." msgstr "" -#: FlatCAMApp.py:5196 +#: FlatCAMApp.py:5298 msgid "[success] Skew on Y axis done." msgstr "" -#: FlatCAMApp.py:5265 +#: FlatCAMApp.py:5368 msgid "Grid On/Off" msgstr "" -#: FlatCAMApp.py:5278 flatcamEditors/FlatCAMGeoEditor.py:937 +#: FlatCAMApp.py:5381 flatcamEditors/FlatCAMGeoEditor.py:937 #: flatcamEditors/FlatCAMGrbEditor.py:2381 -#: flatcamEditors/FlatCAMGrbEditor.py:4853 flatcamGUI/ObjectUI.py:991 +#: flatcamEditors/FlatCAMGrbEditor.py:4861 flatcamGUI/ObjectUI.py:991 #: flatcamTools/ToolDblSided.py:160 flatcamTools/ToolDblSided.py:208 #: flatcamTools/ToolNonCopperClear.py:134 flatcamTools/ToolPaint.py:131 #: flatcamTools/ToolSolderPaste.py:115 flatcamTools/ToolSolderPaste.py:479 @@ -426,7 +426,7 @@ msgstr "" msgid "Add" msgstr "" -#: FlatCAMApp.py:5279 FlatCAMObj.py:3270 +#: FlatCAMApp.py:5382 FlatCAMObj.py:3295 #: flatcamEditors/FlatCAMGrbEditor.py:2386 flatcamGUI/FlatCAMGUI.py:527 #: flatcamGUI/FlatCAMGUI.py:724 flatcamGUI/FlatCAMGUI.py:1616 #: flatcamGUI/FlatCAMGUI.py:1953 flatcamGUI/ObjectUI.py:1007 @@ -435,274 +435,278 @@ msgstr "" msgid "Delete" msgstr "" -#: FlatCAMApp.py:5292 +#: FlatCAMApp.py:5395 msgid "New Grid ..." msgstr "" -#: FlatCAMApp.py:5293 +#: FlatCAMApp.py:5396 msgid "Enter a Grid Value:" msgstr "" -#: FlatCAMApp.py:5301 FlatCAMApp.py:5328 +#: FlatCAMApp.py:5404 FlatCAMApp.py:5431 msgid "" "[WARNING_NOTCL] Please enter a grid value with non-zero value, in Float " "format." msgstr "" -#: FlatCAMApp.py:5307 +#: FlatCAMApp.py:5410 msgid "[success] New Grid added ..." msgstr "" -#: FlatCAMApp.py:5310 +#: FlatCAMApp.py:5413 msgid "[WARNING_NOTCL] Grid already exists ..." msgstr "" -#: FlatCAMApp.py:5313 +#: FlatCAMApp.py:5416 msgid "[WARNING_NOTCL] Adding New Grid cancelled ..." msgstr "" -#: FlatCAMApp.py:5335 +#: FlatCAMApp.py:5438 msgid "[ERROR_NOTCL] Grid Value does not exist ..." msgstr "" -#: FlatCAMApp.py:5338 +#: FlatCAMApp.py:5441 msgid "[success] Grid Value deleted ..." msgstr "" -#: FlatCAMApp.py:5341 +#: FlatCAMApp.py:5444 msgid "[WARNING_NOTCL] Delete Grid value cancelled ..." msgstr "" -#: FlatCAMApp.py:5380 +#: FlatCAMApp.py:5483 msgid "[WARNING_NOTCL] No object selected to copy it's name" msgstr "" -#: FlatCAMApp.py:5384 +#: FlatCAMApp.py:5487 msgid "Name copied on clipboard ..." msgstr "" -#: FlatCAMApp.py:5677 FlatCAMApp.py:5680 FlatCAMApp.py:5683 FlatCAMApp.py:5686 -#: FlatCAMApp.py:5701 FlatCAMApp.py:5704 FlatCAMApp.py:5707 FlatCAMApp.py:5710 -#: FlatCAMApp.py:5750 FlatCAMApp.py:5753 FlatCAMApp.py:5756 FlatCAMApp.py:5759 +#: FlatCAMApp.py:5529 flatcamEditors/FlatCAMGrbEditor.py:3901 +msgid "[success] Coordinates copied to clipboard." +msgstr "" + +#: FlatCAMApp.py:5785 FlatCAMApp.py:5788 FlatCAMApp.py:5791 FlatCAMApp.py:5794 +#: FlatCAMApp.py:5809 FlatCAMApp.py:5812 FlatCAMApp.py:5815 FlatCAMApp.py:5818 +#: FlatCAMApp.py:5858 FlatCAMApp.py:5861 FlatCAMApp.py:5864 FlatCAMApp.py:5867 #: ObjectCollection.py:719 ObjectCollection.py:722 ObjectCollection.py:725 #: ObjectCollection.py:728 #, python-brace-format msgid "[selected]{name} selected" msgstr "" -#: FlatCAMApp.py:5876 +#: FlatCAMApp.py:5984 msgid "" "There are files/objects opened in FlatCAM.\n" "Creating a New project will delete them.\n" "Do you want to Save the project?" msgstr "" -#: FlatCAMApp.py:5897 +#: FlatCAMApp.py:6005 msgid "[success] New Project created..." msgstr "" -#: FlatCAMApp.py:6013 FlatCAMApp.py:6016 flatcamGUI/FlatCAMGUI.py:608 +#: FlatCAMApp.py:6121 FlatCAMApp.py:6124 flatcamGUI/FlatCAMGUI.py:608 #: flatcamGUI/FlatCAMGUI.py:1832 msgid "Open Gerber" msgstr "" -#: FlatCAMApp.py:6021 +#: FlatCAMApp.py:6129 msgid "[WARNING_NOTCL] Open Gerber cancelled." msgstr "" -#: FlatCAMApp.py:6042 FlatCAMApp.py:6045 flatcamGUI/FlatCAMGUI.py:609 +#: FlatCAMApp.py:6150 FlatCAMApp.py:6153 flatcamGUI/FlatCAMGUI.py:609 #: flatcamGUI/FlatCAMGUI.py:1833 msgid "Open Excellon" msgstr "" -#: FlatCAMApp.py:6050 +#: FlatCAMApp.py:6158 msgid "[WARNING_NOTCL] Open Excellon cancelled." msgstr "" -#: FlatCAMApp.py:6072 FlatCAMApp.py:6075 +#: FlatCAMApp.py:6180 FlatCAMApp.py:6183 msgid "Open G-Code" msgstr "" -#: FlatCAMApp.py:6080 +#: FlatCAMApp.py:6188 msgid "[WARNING_NOTCL] Open G-Code cancelled." msgstr "" -#: FlatCAMApp.py:6098 FlatCAMApp.py:6101 +#: FlatCAMApp.py:6206 FlatCAMApp.py:6209 msgid "Open Project" msgstr "" -#: FlatCAMApp.py:6109 +#: FlatCAMApp.py:6217 msgid "[WARNING_NOTCL] Open Project cancelled." msgstr "" -#: FlatCAMApp.py:6128 FlatCAMApp.py:6131 +#: FlatCAMApp.py:6236 FlatCAMApp.py:6239 msgid "Open Configuration File" msgstr "" -#: FlatCAMApp.py:6135 +#: FlatCAMApp.py:6243 msgid "[WARNING_NOTCL] Open Config cancelled." msgstr "" -#: FlatCAMApp.py:6150 FlatCAMApp.py:6401 FlatCAMApp.py:8551 FlatCAMApp.py:8571 -#: FlatCAMApp.py:8592 FlatCAMApp.py:8614 +#: FlatCAMApp.py:6258 FlatCAMApp.py:6509 FlatCAMApp.py:8662 FlatCAMApp.py:8682 +#: FlatCAMApp.py:8703 FlatCAMApp.py:8725 msgid "[WARNING_NOTCL] No object selected." msgstr "" -#: FlatCAMApp.py:6151 FlatCAMApp.py:6402 +#: FlatCAMApp.py:6259 FlatCAMApp.py:6510 msgid "Please Select a Geometry object to export" msgstr "" -#: FlatCAMApp.py:6162 +#: FlatCAMApp.py:6270 msgid "[ERROR_NOTCL] Only Geometry, Gerber and CNCJob objects can be used." msgstr "" -#: FlatCAMApp.py:6175 FlatCAMApp.py:6179 +#: FlatCAMApp.py:6283 FlatCAMApp.py:6287 msgid "Export SVG" msgstr "" -#: FlatCAMApp.py:6184 +#: FlatCAMApp.py:6292 msgid "[WARNING_NOTCL] Export SVG cancelled." msgstr "" -#: FlatCAMApp.py:6203 +#: FlatCAMApp.py:6311 msgid "[[WARNING_NOTCL]] Data must be a 3D array with last dimension 3 or 4" msgstr "" -#: FlatCAMApp.py:6209 FlatCAMApp.py:6213 +#: FlatCAMApp.py:6317 FlatCAMApp.py:6321 msgid "Export PNG Image" msgstr "" -#: FlatCAMApp.py:6218 +#: FlatCAMApp.py:6326 msgid "Export PNG cancelled." msgstr "" -#: FlatCAMApp.py:6237 +#: FlatCAMApp.py:6345 msgid "" "[WARNING_NOTCL] No object selected. Please select an Gerber object to export." msgstr "" -#: FlatCAMApp.py:6242 FlatCAMApp.py:6365 +#: FlatCAMApp.py:6350 FlatCAMApp.py:6473 msgid "" "[ERROR_NOTCL] Failed. Only Gerber objects can be saved as Gerber files..." msgstr "" -#: FlatCAMApp.py:6254 +#: FlatCAMApp.py:6362 msgid "Save Gerber source file" msgstr "" -#: FlatCAMApp.py:6259 +#: FlatCAMApp.py:6367 msgid "[WARNING_NOTCL] Save Gerber source file cancelled." msgstr "" -#: FlatCAMApp.py:6278 +#: FlatCAMApp.py:6386 msgid "" "[WARNING_NOTCL] No object selected. Please select an Excellon object to " "export." msgstr "" -#: FlatCAMApp.py:6283 FlatCAMApp.py:6324 +#: FlatCAMApp.py:6391 FlatCAMApp.py:6432 msgid "" "[ERROR_NOTCL] Failed. Only Excellon objects can be saved as Excellon files..." msgstr "" -#: FlatCAMApp.py:6291 FlatCAMApp.py:6295 +#: FlatCAMApp.py:6399 FlatCAMApp.py:6403 msgid "Save Excellon source file" msgstr "" -#: FlatCAMApp.py:6300 +#: FlatCAMApp.py:6408 msgid "[WARNING_NOTCL] Saving Excellon source file cancelled." msgstr "" -#: FlatCAMApp.py:6319 +#: FlatCAMApp.py:6427 msgid "" "[WARNING_NOTCL] No object selected. Please Select an Excellon object to " "export." msgstr "" -#: FlatCAMApp.py:6332 FlatCAMApp.py:6336 +#: FlatCAMApp.py:6440 FlatCAMApp.py:6444 msgid "Export Excellon" msgstr "" -#: FlatCAMApp.py:6341 +#: FlatCAMApp.py:6449 msgid "[WARNING_NOTCL] Export Excellon cancelled." msgstr "" -#: FlatCAMApp.py:6360 +#: FlatCAMApp.py:6468 msgid "" "[WARNING_NOTCL] No object selected. Please Select an Gerber object to export." msgstr "" -#: FlatCAMApp.py:6373 FlatCAMApp.py:6377 +#: FlatCAMApp.py:6481 FlatCAMApp.py:6485 msgid "Export Gerber" msgstr "" -#: FlatCAMApp.py:6382 +#: FlatCAMApp.py:6490 msgid "[WARNING_NOTCL] Export Gerber cancelled." msgstr "" -#: FlatCAMApp.py:6412 +#: FlatCAMApp.py:6520 msgid "[ERROR_NOTCL] Only Geometry objects can be used." msgstr "" -#: FlatCAMApp.py:6426 FlatCAMApp.py:6430 +#: FlatCAMApp.py:6534 FlatCAMApp.py:6538 msgid "Export DXF" msgstr "" -#: FlatCAMApp.py:6436 +#: FlatCAMApp.py:6544 msgid "[WARNING_NOTCL] Export DXF cancelled." msgstr "" -#: FlatCAMApp.py:6456 FlatCAMApp.py:6459 +#: FlatCAMApp.py:6564 FlatCAMApp.py:6567 msgid "Import SVG" msgstr "" -#: FlatCAMApp.py:6468 +#: FlatCAMApp.py:6576 msgid "[WARNING_NOTCL] Open SVG cancelled." msgstr "" -#: FlatCAMApp.py:6487 FlatCAMApp.py:6491 +#: FlatCAMApp.py:6595 FlatCAMApp.py:6599 msgid "Import DXF" msgstr "" -#: FlatCAMApp.py:6500 +#: FlatCAMApp.py:6608 msgid "[WARNING_NOTCL] Open DXF cancelled." msgstr "" -#: FlatCAMApp.py:6518 +#: FlatCAMApp.py:6626 #, python-format msgid "%s" msgstr "" -#: FlatCAMApp.py:6538 +#: FlatCAMApp.py:6646 msgid "" "[WARNING_NOTCL] Select an Gerber or Excellon file to view it's source file." msgstr "" -#: FlatCAMApp.py:6545 +#: FlatCAMApp.py:6653 msgid "" "[WARNING_NOTCL] There is no selected object for which to see it's source " "file code." msgstr "" -#: FlatCAMApp.py:6553 +#: FlatCAMApp.py:6661 msgid "Source Editor" msgstr "" -#: FlatCAMApp.py:6563 +#: FlatCAMApp.py:6671 #, python-format msgid "[ERROR]App.on_view_source() -->%s" msgstr "" -#: FlatCAMApp.py:6575 FlatCAMApp.py:7717 FlatCAMObj.py:5551 +#: FlatCAMApp.py:6683 FlatCAMApp.py:7825 FlatCAMObj.py:5588 #: flatcamTools/ToolSolderPaste.py:1278 msgid "Code Editor" msgstr "" -#: FlatCAMApp.py:6587 +#: FlatCAMApp.py:6695 msgid "Script Editor" msgstr "" -#: FlatCAMApp.py:6590 +#: FlatCAMApp.py:6698 msgid "" "#\n" "# CREATE A NEW FLATCAM TCL SCRIPT\n" @@ -726,216 +730,216 @@ msgid "" "\n" msgstr "" -#: FlatCAMApp.py:6613 FlatCAMApp.py:6616 +#: FlatCAMApp.py:6721 FlatCAMApp.py:6724 msgid "Open TCL script" msgstr "" -#: FlatCAMApp.py:6624 +#: FlatCAMApp.py:6732 msgid "[WARNING_NOTCL] Open TCL script cancelled." msgstr "" -#: FlatCAMApp.py:6636 +#: FlatCAMApp.py:6744 #, python-format msgid "[ERROR]App.on_fileopenscript() -->%s" msgstr "" -#: FlatCAMApp.py:6662 FlatCAMApp.py:6665 +#: FlatCAMApp.py:6770 FlatCAMApp.py:6773 msgid "Run TCL script" msgstr "" -#: FlatCAMApp.py:6673 +#: FlatCAMApp.py:6781 msgid "[WARNING_NOTCL] Run TCL script cancelled." msgstr "" -#: FlatCAMApp.py:6723 FlatCAMApp.py:6727 +#: FlatCAMApp.py:6831 FlatCAMApp.py:6835 msgid "Save Project As ..." msgstr "" -#: FlatCAMApp.py:6724 +#: FlatCAMApp.py:6832 #, python-brace-format msgid "{l_save}/Project_{date}" msgstr "" -#: FlatCAMApp.py:6732 +#: FlatCAMApp.py:6840 msgid "[WARNING_NOTCL] Save Project cancelled." msgstr "" -#: FlatCAMApp.py:6776 +#: FlatCAMApp.py:6884 msgid "Exporting SVG" msgstr "" -#: FlatCAMApp.py:6810 FlatCAMApp.py:6916 FlatCAMApp.py:7031 +#: FlatCAMApp.py:6918 FlatCAMApp.py:7024 FlatCAMApp.py:7139 #, python-format msgid "[success] SVG file exported to %s" msgstr "" -#: FlatCAMApp.py:6841 FlatCAMApp.py:6962 +#: FlatCAMApp.py:6949 FlatCAMApp.py:7070 #, python-format msgid "[WARNING_NOTCL] No object Box. Using instead %s" msgstr "" -#: FlatCAMApp.py:6919 FlatCAMApp.py:7034 +#: FlatCAMApp.py:7027 FlatCAMApp.py:7142 msgid "Generating Film ... Please wait." msgstr "" -#: FlatCAMApp.py:7182 +#: FlatCAMApp.py:7290 #, python-format msgid "[success] Excellon file exported to %s" msgstr "" -#: FlatCAMApp.py:7189 +#: FlatCAMApp.py:7297 msgid "Exporting Excellon" msgstr "" -#: FlatCAMApp.py:7194 FlatCAMApp.py:7201 +#: FlatCAMApp.py:7302 FlatCAMApp.py:7309 msgid "[ERROR_NOTCL] Could not export Excellon file." msgstr "" -#: FlatCAMApp.py:7299 +#: FlatCAMApp.py:7407 #, python-format msgid "[success] Gerber file exported to %s" msgstr "" -#: FlatCAMApp.py:7306 +#: FlatCAMApp.py:7414 msgid "Exporting Gerber" msgstr "" -#: FlatCAMApp.py:7311 FlatCAMApp.py:7318 +#: FlatCAMApp.py:7419 FlatCAMApp.py:7426 msgid "[ERROR_NOTCL] Could not export Gerber file." msgstr "" -#: FlatCAMApp.py:7358 +#: FlatCAMApp.py:7466 #, python-format msgid "[success] DXF file exported to %s" msgstr "" -#: FlatCAMApp.py:7364 +#: FlatCAMApp.py:7472 msgid "Exporting DXF" msgstr "" -#: FlatCAMApp.py:7369 FlatCAMApp.py:7376 +#: FlatCAMApp.py:7477 FlatCAMApp.py:7484 msgid "[[WARNING_NOTCL]] Could not export DXF file." msgstr "" -#: FlatCAMApp.py:7396 FlatCAMApp.py:7438 FlatCAMApp.py:7482 +#: FlatCAMApp.py:7504 FlatCAMApp.py:7546 FlatCAMApp.py:7590 msgid "" "[ERROR_NOTCL] Not supported type is picked as parameter. Only Geometry and " "Gerber are supported" msgstr "" -#: FlatCAMApp.py:7406 +#: FlatCAMApp.py:7514 msgid "Importing SVG" msgstr "" -#: FlatCAMApp.py:7417 FlatCAMApp.py:7459 FlatCAMApp.py:7502 FlatCAMApp.py:7579 -#: FlatCAMApp.py:7640 FlatCAMApp.py:7703 flatcamTools/ToolPDF.py:212 +#: FlatCAMApp.py:7525 FlatCAMApp.py:7567 FlatCAMApp.py:7610 FlatCAMApp.py:7687 +#: FlatCAMApp.py:7748 FlatCAMApp.py:7811 flatcamTools/ToolPDF.py:212 #, python-format msgid "[success] Opened: %s" msgstr "" -#: FlatCAMApp.py:7448 +#: FlatCAMApp.py:7556 msgid "Importing DXF" msgstr "" -#: FlatCAMApp.py:7490 +#: FlatCAMApp.py:7598 msgid "Importing Image" msgstr "" -#: FlatCAMApp.py:7531 FlatCAMApp.py:7533 +#: FlatCAMApp.py:7639 FlatCAMApp.py:7641 #, python-format msgid "[ERROR_NOTCL] Failed to open file: %s" msgstr "" -#: FlatCAMApp.py:7536 +#: FlatCAMApp.py:7644 #, python-brace-format msgid "[ERROR_NOTCL] Failed to parse file: {name}. {error}" msgstr "" -#: FlatCAMApp.py:7543 FlatCAMObj.py:4230 +#: FlatCAMApp.py:7651 FlatCAMObj.py:4266 #: flatcamEditors/FlatCAMExcEditor.py:2077 msgid "[ERROR] An internal error has ocurred. See shell.\n" msgstr "" -#: FlatCAMApp.py:7552 +#: FlatCAMApp.py:7660 msgid "" "[ERROR_NOTCL] Object is not Gerber file or empty. Aborting object creation." msgstr "" -#: FlatCAMApp.py:7560 +#: FlatCAMApp.py:7668 msgid "Opening Gerber" msgstr "" -#: FlatCAMApp.py:7570 +#: FlatCAMApp.py:7678 msgid "[ERROR_NOTCL] Open Gerber failed. Probable not a Gerber file." msgstr "" -#: FlatCAMApp.py:7603 flatcamTools/ToolPcbWizard.py:421 +#: FlatCAMApp.py:7711 flatcamTools/ToolPcbWizard.py:421 msgid "[ERROR_NOTCL] This is not Excellon file." msgstr "" -#: FlatCAMApp.py:7606 +#: FlatCAMApp.py:7714 #, python-format msgid "[ERROR_NOTCL] Cannot open file: %s" msgstr "" -#: FlatCAMApp.py:7611 flatcamTools/ToolPcbWizard.py:429 +#: FlatCAMApp.py:7719 flatcamTools/ToolPcbWizard.py:429 msgid "[ERROR_NOTCL] An internal error has occurred. See shell.\n" msgstr "" -#: FlatCAMApp.py:7624 flatcamTools/ToolPDF.py:262 +#: FlatCAMApp.py:7732 flatcamTools/ToolPDF.py:262 #: flatcamTools/ToolPcbWizard.py:442 #, python-format msgid "[ERROR_NOTCL] No geometry found in file: %s" msgstr "" -#: FlatCAMApp.py:7627 +#: FlatCAMApp.py:7735 msgid "Opening Excellon." msgstr "" -#: FlatCAMApp.py:7633 +#: FlatCAMApp.py:7741 msgid "[ERROR_NOTCL] Open Excellon file failed. Probable not an Excellon file." msgstr "" -#: FlatCAMApp.py:7670 +#: FlatCAMApp.py:7778 #, python-format msgid "[ERROR_NOTCL] Failed to open %s" msgstr "" -#: FlatCAMApp.py:7680 +#: FlatCAMApp.py:7788 msgid "[ERROR_NOTCL] This is not GCODE" msgstr "" -#: FlatCAMApp.py:7686 +#: FlatCAMApp.py:7794 msgid "Opening G-Code." msgstr "" -#: FlatCAMApp.py:7694 +#: FlatCAMApp.py:7802 msgid "" "[ERROR_NOTCL] Failed to create CNCJob Object. Probable not a GCode file.\n" " Attempting to create a FlatCAM CNCJob Object from G-Code file failed during " "processing" msgstr "" -#: FlatCAMApp.py:7734 +#: FlatCAMApp.py:7842 #, python-format msgid "[ERROR_NOTCL] Failed to open config file: %s" msgstr "" -#: FlatCAMApp.py:7760 FlatCAMApp.py:7777 +#: FlatCAMApp.py:7868 FlatCAMApp.py:7885 #, python-format msgid "[ERROR_NOTCL] Failed to open project file: %s" msgstr "" -#: FlatCAMApp.py:7800 +#: FlatCAMApp.py:7908 #, python-format msgid "[success] Project loaded from: %s" msgstr "" -#: FlatCAMApp.py:7905 +#: FlatCAMApp.py:8013 msgid "Available commands:\n" msgstr "" -#: FlatCAMApp.py:7907 +#: FlatCAMApp.py:8015 msgid "" "\n" "\n" @@ -943,27 +947,27 @@ msgid "" " Example: help open_gerber" msgstr "" -#: FlatCAMApp.py:8057 +#: FlatCAMApp.py:8165 msgid "Shows list of commands." msgstr "" -#: FlatCAMApp.py:8114 +#: FlatCAMApp.py:8222 msgid "[ERROR_NOTCL] Failed to load recent item list." msgstr "" -#: FlatCAMApp.py:8121 +#: FlatCAMApp.py:8229 msgid "[ERROR_NOTCL] Failed to parse recent item list." msgstr "" -#: FlatCAMApp.py:8165 +#: FlatCAMApp.py:8273 msgid "Clear Recent files" msgstr "" -#: FlatCAMApp.py:8182 flatcamGUI/FlatCAMGUI.py:968 +#: FlatCAMApp.py:8290 flatcamGUI/FlatCAMGUI.py:968 msgid "Shortcut Key List" msgstr "" -#: FlatCAMApp.py:8189 +#: FlatCAMApp.py:8297 msgid "" "\n" "

Selected Tab - Choose an Item from " @@ -1013,113 +1017,113 @@ msgid "" " " msgstr "" -#: FlatCAMApp.py:8293 +#: FlatCAMApp.py:8404 msgid "[WARNING_NOTCL] Failed checking for latest version. Could not connect." msgstr "" -#: FlatCAMApp.py:8300 +#: FlatCAMApp.py:8411 msgid "[ERROR_NOTCL] Could not parse information about latest version." msgstr "" -#: FlatCAMApp.py:8310 +#: FlatCAMApp.py:8421 msgid "[success] FlatCAM is up to date!" msgstr "" -#: FlatCAMApp.py:8315 +#: FlatCAMApp.py:8426 msgid "Newer Version Available" msgstr "" -#: FlatCAMApp.py:8316 +#: FlatCAMApp.py:8427 msgid "" "There is a newer version of FlatCAM available for download:\n" "\n" msgstr "" -#: FlatCAMApp.py:8318 +#: FlatCAMApp.py:8429 msgid "info" msgstr "" -#: FlatCAMApp.py:8337 +#: FlatCAMApp.py:8448 msgid "[success] All plots disabled." msgstr "" -#: FlatCAMApp.py:8343 +#: FlatCAMApp.py:8454 msgid "[success] All non selected plots disabled." msgstr "" -#: FlatCAMApp.py:8349 +#: FlatCAMApp.py:8460 msgid "[success] All plots enabled." msgstr "" -#: FlatCAMApp.py:8355 +#: FlatCAMApp.py:8466 msgid "[success] Selected plots enabled..." msgstr "" -#: FlatCAMApp.py:8363 +#: FlatCAMApp.py:8474 msgid "[success] Selected plots disabled..." msgstr "" -#: FlatCAMApp.py:8373 FlatCAMApp.py:8386 +#: FlatCAMApp.py:8484 FlatCAMApp.py:8497 msgid "Working ..." msgstr "" -#: FlatCAMApp.py:8420 +#: FlatCAMApp.py:8531 msgid "Saving FlatCAM Project" msgstr "" -#: FlatCAMApp.py:8441 FlatCAMApp.py:8472 +#: FlatCAMApp.py:8552 FlatCAMApp.py:8583 #, python-format msgid "[success] Project saved to: %s" msgstr "" -#: FlatCAMApp.py:8459 +#: FlatCAMApp.py:8570 #, python-format msgid "[ERROR_NOTCL] Failed to verify project file: %s. Retry to save it." msgstr "" -#: FlatCAMApp.py:8466 +#: FlatCAMApp.py:8577 #, python-format msgid "[ERROR_NOTCL] Failed to parse saved project file: %s. Retry to save it." msgstr "" -#: FlatCAMApp.py:8474 +#: FlatCAMApp.py:8585 #, python-format msgid "[ERROR_NOTCL] Failed to save project file: %s. Retry to save it." msgstr "" -#: FlatCAMObj.py:202 +#: FlatCAMObj.py:207 #, python-brace-format msgid "[success] Name changed from {old} to {new}" msgstr "" -#: FlatCAMObj.py:545 FlatCAMObj.py:2031 FlatCAMObj.py:3275 FlatCAMObj.py:5448 +#: FlatCAMObj.py:553 FlatCAMObj.py:2034 FlatCAMObj.py:3300 FlatCAMObj.py:5485 msgid "Basic" msgstr "" -#: FlatCAMObj.py:557 FlatCAMObj.py:2047 FlatCAMObj.py:3297 FlatCAMObj.py:5454 +#: FlatCAMObj.py:565 FlatCAMObj.py:2050 FlatCAMObj.py:3322 FlatCAMObj.py:5491 msgid "Advanced" msgstr "" -#: FlatCAMObj.py:920 FlatCAMObj.py:975 +#: FlatCAMObj.py:927 FlatCAMObj.py:982 #, python-format msgid "[success] Isolation geometry created: %s" msgstr "" -#: FlatCAMObj.py:1154 +#: FlatCAMObj.py:1161 msgid "Plotting Apertures" msgstr "" -#: FlatCAMObj.py:1870 flatcamEditors/FlatCAMExcEditor.py:1368 +#: FlatCAMObj.py:1877 flatcamEditors/FlatCAMExcEditor.py:1368 msgid "Total Drills" msgstr "" -#: FlatCAMObj.py:1896 flatcamEditors/FlatCAMExcEditor.py:1400 +#: FlatCAMObj.py:1903 flatcamEditors/FlatCAMExcEditor.py:1400 msgid "Total Slots" msgstr "" -#: FlatCAMObj.py:2103 FlatCAMObj.py:3348 FlatCAMObj.py:3646 FlatCAMObj.py:3833 -#: FlatCAMObj.py:3846 FlatCAMObj.py:3963 FlatCAMObj.py:4380 FlatCAMObj.py:4618 -#: FlatCAMObj.py:5031 flatcamEditors/FlatCAMExcEditor.py:1474 +#: FlatCAMObj.py:2106 FlatCAMObj.py:3374 FlatCAMObj.py:3674 FlatCAMObj.py:3869 +#: FlatCAMObj.py:3882 FlatCAMObj.py:3999 FlatCAMObj.py:4416 FlatCAMObj.py:4654 +#: FlatCAMObj.py:5067 flatcamEditors/FlatCAMExcEditor.py:1474 #: flatcamTools/ToolCalculators.py:307 flatcamTools/ToolCalculators.py:318 #: flatcamTools/ToolCalculators.py:330 flatcamTools/ToolCalculators.py:345 #: flatcamTools/ToolCalculators.py:358 flatcamTools/ToolCalculators.py:372 @@ -1138,21 +1142,21 @@ msgstr "" msgid "[ERROR_NOTCL] Wrong value format entered, use a number." msgstr "" -#: FlatCAMObj.py:2327 FlatCAMObj.py:2418 FlatCAMObj.py:2540 +#: FlatCAMObj.py:2330 FlatCAMObj.py:2422 FlatCAMObj.py:2545 msgid "" "[ERROR_NOTCL] Please select one or more tools from the list and try again." msgstr "" -#: FlatCAMObj.py:2334 +#: FlatCAMObj.py:2337 msgid "" "[ERROR_NOTCL] Milling tool for DRILLS is larger than hole size. Cancelled." msgstr "" -#: FlatCAMObj.py:2348 FlatCAMObj.py:2442 FlatCAMObj.py:2560 +#: FlatCAMObj.py:2351 FlatCAMObj.py:2446 FlatCAMObj.py:2565 msgid "Tool_nr" msgstr "" -#: FlatCAMObj.py:2348 FlatCAMObj.py:2442 FlatCAMObj.py:2560 +#: FlatCAMObj.py:2351 FlatCAMObj.py:2446 FlatCAMObj.py:2565 #: flatcamEditors/FlatCAMExcEditor.py:819 #: flatcamEditors/FlatCAMExcEditor.py:2020 flatcamGUI/ObjectUI.py:556 #: flatcamTools/ToolNonCopperClear.py:83 flatcamTools/ToolPaint.py:80 @@ -1160,191 +1164,191 @@ msgstr "" msgid "Diameter" msgstr "" -#: FlatCAMObj.py:2348 FlatCAMObj.py:2442 FlatCAMObj.py:2560 +#: FlatCAMObj.py:2351 FlatCAMObj.py:2446 FlatCAMObj.py:2565 msgid "Drills_Nr" msgstr "" -#: FlatCAMObj.py:2348 FlatCAMObj.py:2442 FlatCAMObj.py:2560 +#: FlatCAMObj.py:2351 FlatCAMObj.py:2446 FlatCAMObj.py:2565 msgid "Slots_Nr" msgstr "" -#: FlatCAMObj.py:2428 +#: FlatCAMObj.py:2432 msgid "" "[ERROR_NOTCL] Milling tool for SLOTS is larger than hole size. Cancelled." msgstr "" -#: FlatCAMObj.py:2602 FlatCAMObj.py:4268 FlatCAMObj.py:4484 FlatCAMObj.py:4801 +#: FlatCAMObj.py:2607 FlatCAMObj.py:4304 FlatCAMObj.py:4520 FlatCAMObj.py:4837 msgid "" "[ERROR_NOTCL] Wrong value format for self.defaults[\"z_pdepth\"] or self." "options[\"z_pdepth\"]" msgstr "" -#: FlatCAMObj.py:2614 FlatCAMObj.py:4280 FlatCAMObj.py:4496 FlatCAMObj.py:4813 +#: FlatCAMObj.py:2619 FlatCAMObj.py:4316 FlatCAMObj.py:4532 FlatCAMObj.py:4849 msgid "" "[ERROR_NOTCL] Wrong value format for self.defaults[\"feedrate_probe\"] or " "self.options[\"feedrate_probe\"]" msgstr "" -#: FlatCAMObj.py:2646 FlatCAMObj.py:4689 FlatCAMObj.py:4694 FlatCAMObj.py:4844 +#: FlatCAMObj.py:2651 FlatCAMObj.py:4725 FlatCAMObj.py:4730 FlatCAMObj.py:4880 msgid "Generating CNC Code" msgstr "" -#: FlatCAMObj.py:2672 FlatCAMObj.py:4990 camlib.py:5164 camlib.py:5623 -#: camlib.py:5886 +#: FlatCAMObj.py:2677 FlatCAMObj.py:5026 camlib.py:5167 camlib.py:5626 +#: camlib.py:5889 msgid "" "[ERROR]The Toolchange X,Y field in Edit -> Preferences has to be in the " "format (x, y) \n" "but now there is only one value, not two. " msgstr "" -#: FlatCAMObj.py:2984 FlatCAMObj.py:3889 FlatCAMObj.py:3890 FlatCAMObj.py:3899 +#: FlatCAMObj.py:2997 FlatCAMObj.py:3925 FlatCAMObj.py:3926 FlatCAMObj.py:3935 msgid "Iso" msgstr "" -#: FlatCAMObj.py:2984 FlatCAMObj.py:3233 FlatCAMObj.py:3513 +#: FlatCAMObj.py:2997 FlatCAMObj.py:3257 FlatCAMObj.py:3539 msgid "Rough" msgstr "" -#: FlatCAMObj.py:2984 +#: FlatCAMObj.py:2997 msgid "Finish" msgstr "" -#: FlatCAMObj.py:3268 flatcamGUI/FlatCAMGUI.py:526 flatcamGUI/FlatCAMGUI.py:722 +#: FlatCAMObj.py:3293 flatcamGUI/FlatCAMGUI.py:526 flatcamGUI/FlatCAMGUI.py:722 #: flatcamGUI/FlatCAMGUI.py:1615 flatcamGUI/FlatCAMGUI.py:1951 #: flatcamGUI/ObjectUI.py:999 msgid "Copy" msgstr "" -#: FlatCAMObj.py:3483 +#: FlatCAMObj.py:3509 msgid "[ERROR_NOTCL] Please enter the desired tool diameter in Float format." msgstr "" -#: FlatCAMObj.py:3556 +#: FlatCAMObj.py:3584 msgid "[success] Tool added in Tool Table." msgstr "" -#: FlatCAMObj.py:3561 +#: FlatCAMObj.py:3589 msgid "[ERROR_NOTCL] Default Tool added. Wrong value format entered." msgstr "" -#: FlatCAMObj.py:3591 FlatCAMObj.py:3601 +#: FlatCAMObj.py:3619 FlatCAMObj.py:3629 msgid "[WARNING_NOTCL] Failed. Select a tool to copy." msgstr "" -#: FlatCAMObj.py:3630 +#: FlatCAMObj.py:3658 msgid "[success] Tool was copied in Tool Table." msgstr "" -#: FlatCAMObj.py:3663 +#: FlatCAMObj.py:3691 msgid "[success] Tool was edited in Tool Table." msgstr "" -#: FlatCAMObj.py:3694 FlatCAMObj.py:3704 +#: FlatCAMObj.py:3722 FlatCAMObj.py:3732 msgid "[WARNING_NOTCL] Failed. Select a tool to delete." msgstr "" -#: FlatCAMObj.py:3728 +#: FlatCAMObj.py:3756 msgid "[success] Tool was deleted in Tool Table." msgstr "" -#: FlatCAMObj.py:4149 +#: FlatCAMObj.py:4185 #, python-format msgid "" "[WARNING_NOTCL] This Geometry can't be processed because it is %s geometry." msgstr "" -#: FlatCAMObj.py:4166 +#: FlatCAMObj.py:4202 msgid "[ERROR_NOTCL] Wrong Tool Dia value format entered, use a number." msgstr "" -#: FlatCAMObj.py:4193 +#: FlatCAMObj.py:4229 msgid "[ERROR_NOTCL] Failed. No tool selected in the tool table ..." msgstr "" -#: FlatCAMObj.py:4231 +#: FlatCAMObj.py:4267 #, python-format msgid "FlatCAMObj.FlatCAMGeometry.mtool_gen_cncjob() --> %s" msgstr "" -#: FlatCAMObj.py:4389 FlatCAMObj.py:4627 +#: FlatCAMObj.py:4425 FlatCAMObj.py:4663 msgid "" "[WARNING] Tool Offset is selected in Tool Table but no value is provided.\n" "Add a Tool Offset or change the Offset Type." msgstr "" -#: FlatCAMObj.py:4508 flatcamTools/ToolSolderPaste.py:1107 +#: FlatCAMObj.py:4544 flatcamTools/ToolSolderPaste.py:1107 #: flatcamTools/ToolSolderPaste.py:1162 msgid "[ERROR_NOTCL] Cancelled. Empty file, it has no geometry..." msgstr "" -#: FlatCAMObj.py:4877 FlatCAMObj.py:4887 camlib.py:3347 camlib.py:3356 +#: FlatCAMObj.py:4913 FlatCAMObj.py:4923 camlib.py:3348 camlib.py:3357 msgid "[ERROR_NOTCL] Scale factor has to be a number: integer or float." msgstr "" -#: FlatCAMObj.py:4925 +#: FlatCAMObj.py:4961 msgid "[success] Geometry Scale done." msgstr "" -#: FlatCAMObj.py:4942 camlib.py:3425 +#: FlatCAMObj.py:4978 camlib.py:3426 msgid "" "[ERROR_NOTCL] An (x,y) pair of values are needed. Probable you entered only " "one value in the Offset field." msgstr "" -#: FlatCAMObj.py:4962 +#: FlatCAMObj.py:4998 msgid "[success] Geometry Offset done." msgstr "" -#: FlatCAMObj.py:5516 FlatCAMObj.py:5521 flatcamTools/ToolSolderPaste.py:1361 +#: FlatCAMObj.py:5553 FlatCAMObj.py:5558 flatcamTools/ToolSolderPaste.py:1361 msgid "Export Machine Code ..." msgstr "" -#: FlatCAMObj.py:5527 flatcamTools/ToolSolderPaste.py:1364 +#: FlatCAMObj.py:5564 flatcamTools/ToolSolderPaste.py:1364 msgid "[WARNING_NOTCL] Export Machine Code cancelled ..." msgstr "" -#: FlatCAMObj.py:5540 +#: FlatCAMObj.py:5577 #, python-format msgid "[success] Machine Code file saved to: %s" msgstr "" -#: FlatCAMObj.py:5562 +#: FlatCAMObj.py:5599 #, python-format msgid "[ERROR]FlatCAMCNNJob.on_edit_code_click() -->%s" msgstr "" -#: FlatCAMObj.py:5679 +#: FlatCAMObj.py:5716 #, python-format msgid "" "[WARNING_NOTCL] This CNCJob object can't be processed because it is a %s " "CNCJob object." msgstr "" -#: FlatCAMObj.py:5732 +#: FlatCAMObj.py:5769 msgid "[ERROR_NOTCL] G-code does not have a units code: either G20 or G21" msgstr "" -#: FlatCAMObj.py:5745 +#: FlatCAMObj.py:5782 msgid "" "[ERROR_NOTCL] Cancelled. The Toolchange Custom code is enabled but it's " "empty." msgstr "" -#: FlatCAMObj.py:5752 +#: FlatCAMObj.py:5789 msgid "[success] Toolchange G-code was replaced by a custom code." msgstr "" -#: FlatCAMObj.py:5767 flatcamTools/ToolSolderPaste.py:1390 +#: FlatCAMObj.py:5804 flatcamTools/ToolSolderPaste.py:1390 msgid "[WARNING_NOTCL] No such file or directory" msgstr "" -#: FlatCAMObj.py:5787 FlatCAMObj.py:5799 +#: FlatCAMObj.py:5824 FlatCAMObj.py:5836 msgid "" "[WARNING_NOTCL] The used postprocessor file has to have in it's name: " "'toolchange_custom'" msgstr "" -#: FlatCAMObj.py:5805 +#: FlatCAMObj.py:5842 msgid "[ERROR] There is no postprocessor file." msgstr "" @@ -1386,55 +1390,55 @@ msgstr "" msgid "[ERROR_NOTCL] Failed to skew. No object selected" msgstr "" -#: camlib.py:2727 camlib.py:2812 +#: camlib.py:2728 camlib.py:2813 #, python-format msgid "[WARNING] Coordinates missing, line ignored: %s" msgstr "" -#: camlib.py:2728 camlib.py:2813 +#: camlib.py:2729 camlib.py:2814 msgid "[WARNING_NOTCL] GERBER file might be CORRUPT. Check the file !!!" msgstr "" -#: camlib.py:2777 +#: camlib.py:2778 #, python-format msgid "" "[ERROR] Region does not have enough points. File will be processed but there " "are parser errors. Line number: %s" msgstr "" -#: camlib.py:3169 +#: camlib.py:3170 #, python-format msgid "" "[ERROR]Gerber Parser ERROR.\n" "%s:" msgstr "" -#: camlib.py:3393 +#: camlib.py:3394 msgid "[success] Gerber Scale done." msgstr "" -#: camlib.py:3458 +#: camlib.py:3459 msgid "[success] Gerber Offset done." msgstr "" -#: camlib.py:3512 +#: camlib.py:3513 msgid "[success] Gerber Mirror done." msgstr "" -#: camlib.py:3558 +#: camlib.py:3559 msgid "[success] Gerber Skew done." msgstr "" -#: camlib.py:3596 +#: camlib.py:3597 msgid "[success] Gerber Rotate done." msgstr "" -#: camlib.py:3875 +#: camlib.py:3878 #, python-format msgid "[ERROR_NOTCL] This is GCODE mark: %s" msgstr "" -#: camlib.py:3990 +#: camlib.py:3993 #, python-format msgid "" "[WARNING] No tool diameter info's. See shell.\n" @@ -1445,26 +1449,26 @@ msgid "" "diameters to reflect the real diameters." msgstr "" -#: camlib.py:4455 +#: camlib.py:4458 #, python-brace-format msgid "" "[ERROR] Excellon Parser error.\n" "Parsing Failed. Line {l_nr}: {line}\n" msgstr "" -#: camlib.py:4534 +#: camlib.py:4537 msgid "" "[WARNING] Excellon.create_geometry() -> a drill location was skipped due of " "not having a tool associated.\n" "Check the resulting GCode." msgstr "" -#: camlib.py:5073 +#: camlib.py:5076 #, python-format msgid "[ERROR] There is no such parameter: %s" msgstr "" -#: camlib.py:5143 +#: camlib.py:5146 msgid "" "[WARNING] The Cut Z parameter has positive value. It is the depth value to " "drill into material.\n" @@ -1473,27 +1477,27 @@ msgid "" "CNC code (Gcode etc)." msgstr "" -#: camlib.py:5150 camlib.py:5646 camlib.py:5909 +#: camlib.py:5153 camlib.py:5649 camlib.py:5912 #, python-format msgid "" "[WARNING] The Cut Z parameter is zero. There will be no cut, skipping %s file" msgstr "" -#: camlib.py:5379 camlib.py:5476 camlib.py:5534 +#: camlib.py:5382 camlib.py:5479 camlib.py:5537 msgid "[ERROR_NOTCL] The loaded Excellon file has no drills ..." msgstr "" -#: camlib.py:5481 +#: camlib.py:5484 msgid "[ERROR_NOTCL] Wrong optimization type selected." msgstr "" -#: camlib.py:5634 camlib.py:5897 +#: camlib.py:5637 camlib.py:5900 msgid "" "[ERROR_NOTCL] Cut_Z parameter is None or zero. Most likely a bad " "combinations of other parameters." msgstr "" -#: camlib.py:5639 camlib.py:5902 +#: camlib.py:5642 camlib.py:5905 msgid "" "[WARNING] The Cut Z parameter has positive value. It is the depth value to " "cut into material.\n" @@ -1502,11 +1506,11 @@ msgid "" "code (Gcode etc)." msgstr "" -#: camlib.py:5651 camlib.py:5914 +#: camlib.py:5654 camlib.py:5917 msgid "[ERROR_NOTCL] Travel Z parameter is None or zero." msgstr "" -#: camlib.py:5655 camlib.py:5918 +#: camlib.py:5658 camlib.py:5921 msgid "" "[WARNING] The Travel Z parameter has negative value. It is the height value " "to travel between cuts.\n" @@ -1515,31 +1519,31 @@ msgid "" "code (Gcode etc)." msgstr "" -#: camlib.py:5662 camlib.py:5925 +#: camlib.py:5665 camlib.py:5928 #, python-format msgid "" "[WARNING] The Z Travel parameter is zero. This is dangerous, skipping %s file" msgstr "" -#: camlib.py:5792 +#: camlib.py:5795 #, python-format msgid "[ERROR]Expected a Geometry, got %s" msgstr "" -#: camlib.py:5798 +#: camlib.py:5801 msgid "" "[ERROR_NOTCL] Trying to generate a CNC Job from a Geometry object without " "solid_geometry." msgstr "" -#: camlib.py:5837 +#: camlib.py:5840 msgid "" "[ERROR_NOTCL] The Tool Offset value is too negative to use for the " "current_geometry.\n" "Raise the value (in module) and try again." msgstr "" -#: camlib.py:6049 +#: camlib.py:6052 msgid "[ERROR_NOTCL] There is no tool data in the SolderPaste geometry." msgstr "" @@ -1624,7 +1628,7 @@ msgstr "" msgid "[success] Done. Drill(s) copied." msgstr "" -#: flatcamEditors/FlatCAMExcEditor.py:792 flatcamGUI/FlatCAMGUI.py:5026 +#: flatcamEditors/FlatCAMExcEditor.py:792 flatcamGUI/FlatCAMGUI.py:5008 msgid "Excellon Editor" msgstr "" @@ -1658,7 +1662,7 @@ msgstr "" msgid "Tool Dia:" msgstr "" -#: flatcamEditors/FlatCAMExcEditor.py:839 flatcamGUI/FlatCAMGUI.py:5055 +#: flatcamEditors/FlatCAMExcEditor.py:839 flatcamGUI/FlatCAMGUI.py:5037 #: flatcamGUI/ObjectUI.py:978 msgid "Diameter for the new tool" msgstr "" @@ -1731,11 +1735,11 @@ msgstr "" msgid "Circular" msgstr "" -#: flatcamEditors/FlatCAMExcEditor.py:944 flatcamGUI/FlatCAMGUI.py:5065 +#: flatcamEditors/FlatCAMExcEditor.py:944 flatcamGUI/FlatCAMGUI.py:5047 msgid "Nr of drills:" msgstr "" -#: flatcamEditors/FlatCAMExcEditor.py:946 flatcamGUI/FlatCAMGUI.py:5067 +#: flatcamEditors/FlatCAMExcEditor.py:946 flatcamGUI/FlatCAMGUI.py:5049 msgid "Specify how many drills to be in the array." msgstr "" @@ -1747,7 +1751,7 @@ msgid "Direction:" msgstr "" #: flatcamEditors/FlatCAMExcEditor.py:966 -#: flatcamEditors/FlatCAMGrbEditor.py:2528 flatcamGUI/FlatCAMGUI.py:5082 +#: flatcamEditors/FlatCAMGrbEditor.py:2528 flatcamGUI/FlatCAMGUI.py:5064 msgid "" "Direction on which the linear array is oriented:\n" "- 'X' - horizontal axis \n" @@ -1756,12 +1760,12 @@ msgid "" msgstr "" #: flatcamEditors/FlatCAMExcEditor.py:979 -#: flatcamEditors/FlatCAMGrbEditor.py:2541 flatcamGUI/FlatCAMGUI.py:5096 +#: flatcamEditors/FlatCAMGrbEditor.py:2541 flatcamGUI/FlatCAMGUI.py:5078 msgid "Pitch:" msgstr "" #: flatcamEditors/FlatCAMExcEditor.py:981 -#: flatcamEditors/FlatCAMGrbEditor.py:2543 flatcamGUI/FlatCAMGUI.py:5098 +#: flatcamEditors/FlatCAMGrbEditor.py:2543 flatcamGUI/FlatCAMGUI.py:5080 msgid "Pitch = Distance between elements of the array." msgstr "" @@ -1770,7 +1774,7 @@ msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:665 #: flatcamEditors/FlatCAMGrbEditor.py:2550 #: flatcamEditors/FlatCAMGrbEditor.py:2586 -#: flatcamEditors/FlatCAMGrbEditor.py:4580 flatcamGUI/FlatCAMGUI.py:5107 +#: flatcamEditors/FlatCAMGrbEditor.py:4588 flatcamGUI/FlatCAMGUI.py:5089 #: flatcamTools/ToolTransform.py:68 msgid "Angle:" msgstr "" @@ -1792,8 +1796,8 @@ msgid "" msgstr "" #: flatcamEditors/FlatCAMExcEditor.py:1026 -#: flatcamEditors/FlatCAMGrbEditor.py:2588 flatcamGUI/FlatCAMGUI.py:5109 -#: flatcamGUI/FlatCAMGUI.py:5135 +#: flatcamEditors/FlatCAMGrbEditor.py:2588 flatcamGUI/FlatCAMGUI.py:5091 +#: flatcamGUI/FlatCAMGUI.py:5117 msgid "Angle at which each element in circular array is placed." msgstr "" @@ -1840,7 +1844,7 @@ msgid "[success] Done. Drill(s) deleted." msgstr "" #: flatcamEditors/FlatCAMExcEditor.py:2705 -#: flatcamEditors/FlatCAMGrbEditor.py:4340 +#: flatcamEditors/FlatCAMGrbEditor.py:4350 msgid "Click on the circular array Center position" msgstr "" @@ -1901,7 +1905,7 @@ msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:2700 #: flatcamEditors/FlatCAMGeoEditor.py:2726 #: flatcamEditors/FlatCAMGeoEditor.py:2752 -#: flatcamEditors/FlatCAMGrbEditor.py:4392 +#: flatcamEditors/FlatCAMGrbEditor.py:4402 msgid "" "[WARNING_NOTCL] Buffer distance value is missing or wrong format. Add it and " "retry." @@ -1916,19 +1920,20 @@ msgid "Tool" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:432 flatcamGUI/FlatCAMGUI.py:4054 -#: flatcamGUI/FlatCAMGUI.py:5618 flatcamGUI/FlatCAMGUI.py:5895 -#: flatcamGUI/FlatCAMGUI.py:6035 flatcamGUI/ObjectUI.py:260 +#: flatcamGUI/FlatCAMGUI.py:5163 flatcamGUI/FlatCAMGUI.py:5597 +#: flatcamGUI/FlatCAMGUI.py:5874 flatcamGUI/FlatCAMGUI.py:6014 +#: flatcamGUI/ObjectUI.py:260 msgid "Tool dia:" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:434 flatcamGUI/FlatCAMGUI.py:6037 +#: flatcamEditors/FlatCAMGeoEditor.py:434 flatcamGUI/FlatCAMGUI.py:6016 msgid "" "Diameter of the tool to\n" "be used in the operation." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:443 flatcamGUI/FlatCAMGUI.py:5801 -#: flatcamGUI/FlatCAMGUI.py:6046 flatcamTools/ToolNonCopperClear.py:165 +#: flatcamEditors/FlatCAMGeoEditor.py:443 flatcamGUI/FlatCAMGUI.py:5780 +#: flatcamGUI/FlatCAMGUI.py:6025 flatcamTools/ToolNonCopperClear.py:165 #: flatcamTools/ToolPaint.py:160 msgid "Overlap Rate:" msgstr "" @@ -1948,14 +1953,14 @@ msgid "" "due of too many paths." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:461 flatcamGUI/FlatCAMGUI.py:5817 -#: flatcamGUI/FlatCAMGUI.py:5903 flatcamGUI/FlatCAMGUI.py:6056 +#: flatcamEditors/FlatCAMGeoEditor.py:461 flatcamGUI/FlatCAMGUI.py:5796 +#: flatcamGUI/FlatCAMGUI.py:5882 flatcamGUI/FlatCAMGUI.py:6035 #: flatcamTools/ToolCutOut.py:86 flatcamTools/ToolNonCopperClear.py:181 #: flatcamTools/ToolPaint.py:177 msgid "Margin:" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:463 flatcamGUI/FlatCAMGUI.py:6058 +#: flatcamEditors/FlatCAMGeoEditor.py:463 flatcamGUI/FlatCAMGUI.py:6037 #: flatcamTools/ToolPaint.py:179 msgid "" "Distance by which to avoid\n" @@ -1963,40 +1968,40 @@ msgid "" "be painted." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:472 flatcamGUI/FlatCAMGUI.py:5826 -#: flatcamGUI/FlatCAMGUI.py:6067 flatcamTools/ToolNonCopperClear.py:190 +#: flatcamEditors/FlatCAMGeoEditor.py:472 flatcamGUI/FlatCAMGUI.py:5805 +#: flatcamGUI/FlatCAMGUI.py:6046 flatcamTools/ToolNonCopperClear.py:190 #: flatcamTools/ToolPaint.py:188 msgid "Method:" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:474 flatcamGUI/FlatCAMGUI.py:6069 +#: flatcamEditors/FlatCAMGeoEditor.py:474 flatcamGUI/FlatCAMGUI.py:6048 msgid "" "Algorithm to paint the polygon:
Standard: Fixed step inwards." "
Seed-based: Outwards from seed." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:487 flatcamGUI/FlatCAMGUI.py:5842 -#: flatcamGUI/FlatCAMGUI.py:6082 flatcamTools/ToolNonCopperClear.py:206 +#: flatcamEditors/FlatCAMGeoEditor.py:487 flatcamGUI/FlatCAMGUI.py:5821 +#: flatcamGUI/FlatCAMGUI.py:6061 flatcamTools/ToolNonCopperClear.py:206 #: flatcamTools/ToolPaint.py:204 msgid "Connect:" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:489 flatcamGUI/FlatCAMGUI.py:5844 -#: flatcamGUI/FlatCAMGUI.py:6084 flatcamTools/ToolNonCopperClear.py:208 +#: flatcamEditors/FlatCAMGeoEditor.py:489 flatcamGUI/FlatCAMGUI.py:5823 +#: flatcamGUI/FlatCAMGUI.py:6063 flatcamTools/ToolNonCopperClear.py:208 #: flatcamTools/ToolPaint.py:206 msgid "" "Draw lines between resulting\n" "segments to minimize tool lifts." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:496 flatcamGUI/FlatCAMGUI.py:5851 -#: flatcamGUI/FlatCAMGUI.py:6092 flatcamTools/ToolNonCopperClear.py:215 +#: flatcamEditors/FlatCAMGeoEditor.py:496 flatcamGUI/FlatCAMGUI.py:5830 +#: flatcamGUI/FlatCAMGUI.py:6071 flatcamTools/ToolNonCopperClear.py:215 #: flatcamTools/ToolPaint.py:213 msgid "Contour:" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:498 flatcamGUI/FlatCAMGUI.py:5853 -#: flatcamGUI/FlatCAMGUI.py:6094 flatcamTools/ToolNonCopperClear.py:217 +#: flatcamEditors/FlatCAMGeoEditor.py:498 flatcamGUI/FlatCAMGUI.py:5832 +#: flatcamGUI/FlatCAMGUI.py:6073 flatcamTools/ToolNonCopperClear.py:217 #: flatcamTools/ToolPaint.py:215 msgid "" "Cut around the perimeter of the polygon\n" @@ -2046,53 +2051,53 @@ msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:617 #: flatcamEditors/FlatCAMGeoEditor.py:990 -#: flatcamEditors/FlatCAMGrbEditor.py:4531 -#: flatcamEditors/FlatCAMGrbEditor.py:4916 flatcamGUI/FlatCAMGUI.py:654 +#: flatcamEditors/FlatCAMGrbEditor.py:4539 +#: flatcamEditors/FlatCAMGrbEditor.py:4924 flatcamGUI/FlatCAMGUI.py:654 #: flatcamGUI/FlatCAMGUI.py:1879 flatcamTools/ToolTransform.py:398 msgid "Transform Tool" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:618 #: flatcamEditors/FlatCAMGeoEditor.py:679 -#: flatcamEditors/FlatCAMGrbEditor.py:4532 -#: flatcamEditors/FlatCAMGrbEditor.py:4594 flatcamTools/ToolTransform.py:24 +#: flatcamEditors/FlatCAMGrbEditor.py:4540 +#: flatcamEditors/FlatCAMGrbEditor.py:4602 flatcamTools/ToolTransform.py:24 #: flatcamTools/ToolTransform.py:82 msgid "Rotate" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:619 -#: flatcamEditors/FlatCAMGrbEditor.py:4533 flatcamTools/ToolTransform.py:25 +#: flatcamEditors/FlatCAMGrbEditor.py:4541 flatcamTools/ToolTransform.py:25 msgid "Skew/Shear" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:620 #: flatcamEditors/FlatCAMGrbEditor.py:2471 -#: flatcamEditors/FlatCAMGrbEditor.py:4534 flatcamGUI/FlatCAMGUI.py:718 +#: flatcamEditors/FlatCAMGrbEditor.py:4542 flatcamGUI/FlatCAMGUI.py:718 #: flatcamGUI/FlatCAMGUI.py:1947 flatcamGUI/ObjectUI.py:100 #: flatcamTools/ToolTransform.py:26 msgid "Scale" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:621 -#: flatcamEditors/FlatCAMGrbEditor.py:4535 flatcamTools/ToolTransform.py:27 +#: flatcamEditors/FlatCAMGrbEditor.py:4543 flatcamTools/ToolTransform.py:27 msgid "Mirror (Flip)" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:622 -#: flatcamEditors/FlatCAMGrbEditor.py:4536 flatcamGUI/ObjectUI.py:127 +#: flatcamEditors/FlatCAMGrbEditor.py:4544 flatcamGUI/ObjectUI.py:127 #: flatcamGUI/ObjectUI.py:891 flatcamGUI/ObjectUI.py:1465 #: flatcamTools/ToolTransform.py:28 msgid "Offset" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:633 -#: flatcamEditors/FlatCAMGrbEditor.py:4548 +#: flatcamEditors/FlatCAMGrbEditor.py:4556 #, python-format msgid "Editor %s" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:667 -#: flatcamEditors/FlatCAMGrbEditor.py:4582 flatcamTools/ToolTransform.py:70 +#: flatcamEditors/FlatCAMGrbEditor.py:4590 flatcamTools/ToolTransform.py:70 msgid "" "Angle for Rotation action, in degrees.\n" "Float number between -360 and 359.\n" @@ -2101,7 +2106,7 @@ msgid "" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:681 -#: flatcamEditors/FlatCAMGrbEditor.py:4596 +#: flatcamEditors/FlatCAMGrbEditor.py:4604 msgid "" "Rotate the selected shape(s).\n" "The point of reference is the middle of\n" @@ -2109,14 +2114,14 @@ msgid "" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:704 -#: flatcamEditors/FlatCAMGrbEditor.py:4619 flatcamTools/ToolTransform.py:107 +#: flatcamEditors/FlatCAMGrbEditor.py:4627 flatcamTools/ToolTransform.py:107 msgid "Angle X:" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:706 #: flatcamEditors/FlatCAMGeoEditor.py:724 -#: flatcamEditors/FlatCAMGrbEditor.py:4621 -#: flatcamEditors/FlatCAMGrbEditor.py:4639 flatcamTools/ToolTransform.py:109 +#: flatcamEditors/FlatCAMGrbEditor.py:4629 +#: flatcamEditors/FlatCAMGrbEditor.py:4647 flatcamTools/ToolTransform.py:109 #: flatcamTools/ToolTransform.py:127 msgid "" "Angle for Skew action, in degrees.\n" @@ -2124,14 +2129,14 @@ msgid "" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:715 -#: flatcamEditors/FlatCAMGrbEditor.py:4630 flatcamTools/ToolTransform.py:118 +#: flatcamEditors/FlatCAMGrbEditor.py:4638 flatcamTools/ToolTransform.py:118 msgid "Skew X" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:717 #: flatcamEditors/FlatCAMGeoEditor.py:735 -#: flatcamEditors/FlatCAMGrbEditor.py:4632 -#: flatcamEditors/FlatCAMGrbEditor.py:4650 +#: flatcamEditors/FlatCAMGrbEditor.py:4640 +#: flatcamEditors/FlatCAMGrbEditor.py:4658 msgid "" "Skew/shear the selected shape(s).\n" "The point of reference is the middle of\n" @@ -2139,34 +2144,34 @@ msgid "" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:722 -#: flatcamEditors/FlatCAMGrbEditor.py:4637 flatcamTools/ToolTransform.py:125 +#: flatcamEditors/FlatCAMGrbEditor.py:4645 flatcamTools/ToolTransform.py:125 msgid "Angle Y:" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:733 -#: flatcamEditors/FlatCAMGrbEditor.py:4648 flatcamTools/ToolTransform.py:136 +#: flatcamEditors/FlatCAMGrbEditor.py:4656 flatcamTools/ToolTransform.py:136 msgid "Skew Y" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:761 -#: flatcamEditors/FlatCAMGrbEditor.py:4676 flatcamTools/ToolTransform.py:164 +#: flatcamEditors/FlatCAMGrbEditor.py:4684 flatcamTools/ToolTransform.py:164 msgid "Factor X:" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:763 -#: flatcamEditors/FlatCAMGrbEditor.py:4678 flatcamTools/ToolTransform.py:166 +#: flatcamEditors/FlatCAMGrbEditor.py:4686 flatcamTools/ToolTransform.py:166 msgid "Factor for Scale action over X axis." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:771 -#: flatcamEditors/FlatCAMGrbEditor.py:4686 flatcamTools/ToolTransform.py:174 +#: flatcamEditors/FlatCAMGrbEditor.py:4694 flatcamTools/ToolTransform.py:174 msgid "Scale X" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:773 #: flatcamEditors/FlatCAMGeoEditor.py:790 -#: flatcamEditors/FlatCAMGrbEditor.py:4688 -#: flatcamEditors/FlatCAMGrbEditor.py:4705 +#: flatcamEditors/FlatCAMGrbEditor.py:4696 +#: flatcamEditors/FlatCAMGrbEditor.py:4713 msgid "" "Scale the selected shape(s).\n" "The point of reference depends on \n" @@ -2174,41 +2179,41 @@ msgid "" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:778 -#: flatcamEditors/FlatCAMGrbEditor.py:4693 flatcamTools/ToolTransform.py:181 +#: flatcamEditors/FlatCAMGrbEditor.py:4701 flatcamTools/ToolTransform.py:181 msgid "Factor Y:" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:780 -#: flatcamEditors/FlatCAMGrbEditor.py:4695 flatcamTools/ToolTransform.py:183 +#: flatcamEditors/FlatCAMGrbEditor.py:4703 flatcamTools/ToolTransform.py:183 msgid "Factor for Scale action over Y axis." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:788 -#: flatcamEditors/FlatCAMGrbEditor.py:4703 flatcamTools/ToolTransform.py:191 +#: flatcamEditors/FlatCAMGrbEditor.py:4711 flatcamTools/ToolTransform.py:191 msgid "Scale Y" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:797 -#: flatcamEditors/FlatCAMGrbEditor.py:4712 flatcamGUI/FlatCAMGUI.py:6441 +#: flatcamEditors/FlatCAMGrbEditor.py:4720 flatcamGUI/FlatCAMGUI.py:6420 #: flatcamTools/ToolTransform.py:200 msgid "Link" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:799 -#: flatcamEditors/FlatCAMGrbEditor.py:4714 +#: flatcamEditors/FlatCAMGrbEditor.py:4722 msgid "" "Scale the selected shape(s)\n" "using the Scale Factor X for both axis." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:805 -#: flatcamEditors/FlatCAMGrbEditor.py:4720 flatcamGUI/FlatCAMGUI.py:6449 +#: flatcamEditors/FlatCAMGrbEditor.py:4728 flatcamGUI/FlatCAMGUI.py:6428 #: flatcamTools/ToolTransform.py:208 msgid "Scale Reference" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:807 -#: flatcamEditors/FlatCAMGrbEditor.py:4722 +#: flatcamEditors/FlatCAMGrbEditor.py:4730 msgid "" "Scale the selected shape(s)\n" "using the origin reference when checked,\n" @@ -2217,24 +2222,24 @@ msgid "" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:835 -#: flatcamEditors/FlatCAMGrbEditor.py:4751 flatcamTools/ToolTransform.py:238 +#: flatcamEditors/FlatCAMGrbEditor.py:4759 flatcamTools/ToolTransform.py:238 msgid "Value X:" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:837 -#: flatcamEditors/FlatCAMGrbEditor.py:4753 flatcamTools/ToolTransform.py:240 +#: flatcamEditors/FlatCAMGrbEditor.py:4761 flatcamTools/ToolTransform.py:240 msgid "Value for Offset action on X axis." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:845 -#: flatcamEditors/FlatCAMGrbEditor.py:4761 flatcamTools/ToolTransform.py:248 +#: flatcamEditors/FlatCAMGrbEditor.py:4769 flatcamTools/ToolTransform.py:248 msgid "Offset X" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:847 #: flatcamEditors/FlatCAMGeoEditor.py:865 -#: flatcamEditors/FlatCAMGrbEditor.py:4763 -#: flatcamEditors/FlatCAMGrbEditor.py:4781 +#: flatcamEditors/FlatCAMGrbEditor.py:4771 +#: flatcamEditors/FlatCAMGrbEditor.py:4789 msgid "" "Offset the selected shape(s).\n" "The point of reference is the middle of\n" @@ -2242,46 +2247,46 @@ msgid "" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:853 -#: flatcamEditors/FlatCAMGrbEditor.py:4769 flatcamTools/ToolTransform.py:255 +#: flatcamEditors/FlatCAMGrbEditor.py:4777 flatcamTools/ToolTransform.py:255 msgid "Value Y:" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:855 -#: flatcamEditors/FlatCAMGrbEditor.py:4771 flatcamTools/ToolTransform.py:257 +#: flatcamEditors/FlatCAMGrbEditor.py:4779 flatcamTools/ToolTransform.py:257 msgid "Value for Offset action on Y axis." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:863 -#: flatcamEditors/FlatCAMGrbEditor.py:4779 flatcamTools/ToolTransform.py:265 +#: flatcamEditors/FlatCAMGrbEditor.py:4787 flatcamTools/ToolTransform.py:265 msgid "Offset Y" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:894 -#: flatcamEditors/FlatCAMGrbEditor.py:4810 flatcamTools/ToolTransform.py:295 +#: flatcamEditors/FlatCAMGrbEditor.py:4818 flatcamTools/ToolTransform.py:295 msgid "Flip on X" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:896 #: flatcamEditors/FlatCAMGeoEditor.py:904 -#: flatcamEditors/FlatCAMGrbEditor.py:4812 #: flatcamEditors/FlatCAMGrbEditor.py:4820 +#: flatcamEditors/FlatCAMGrbEditor.py:4828 msgid "" "Flip the selected shape(s) over the X axis.\n" "Does not create a new shape." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:902 -#: flatcamEditors/FlatCAMGrbEditor.py:4818 flatcamTools/ToolTransform.py:303 +#: flatcamEditors/FlatCAMGrbEditor.py:4826 flatcamTools/ToolTransform.py:303 msgid "Flip on Y" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:911 -#: flatcamEditors/FlatCAMGrbEditor.py:4827 flatcamTools/ToolTransform.py:312 +#: flatcamEditors/FlatCAMGrbEditor.py:4835 flatcamTools/ToolTransform.py:312 msgid "Ref Pt" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:913 -#: flatcamEditors/FlatCAMGrbEditor.py:4829 +#: flatcamEditors/FlatCAMGrbEditor.py:4837 msgid "" "Flip the selected shape(s)\n" "around the point in Point Entry Field.\n" @@ -2295,12 +2300,12 @@ msgid "" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:925 -#: flatcamEditors/FlatCAMGrbEditor.py:4841 flatcamTools/ToolTransform.py:325 +#: flatcamEditors/FlatCAMGrbEditor.py:4849 flatcamTools/ToolTransform.py:325 msgid "Point:" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:927 -#: flatcamEditors/FlatCAMGrbEditor.py:4843 +#: flatcamEditors/FlatCAMGrbEditor.py:4851 msgid "" "Coordinates in format (x, y) used as reference for mirroring.\n" "The 'x' in (x, y) will be used when using Flip on X and\n" @@ -2308,7 +2313,7 @@ msgid "" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:939 -#: flatcamEditors/FlatCAMGrbEditor.py:4855 flatcamTools/ToolTransform.py:339 +#: flatcamEditors/FlatCAMGrbEditor.py:4863 flatcamTools/ToolTransform.py:339 msgid "" "The point coordinates can be captured by\n" "left click on canvas together with pressing\n" @@ -2316,235 +2321,235 @@ msgid "" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1054 -#: flatcamEditors/FlatCAMGrbEditor.py:4980 +#: flatcamEditors/FlatCAMGrbEditor.py:4988 msgid "[WARNING_NOTCL] Transformation cancelled. No shape selected." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1075 -#: flatcamEditors/FlatCAMGrbEditor.py:5000 flatcamTools/ToolTransform.py:468 +#: flatcamEditors/FlatCAMGrbEditor.py:5008 flatcamTools/ToolTransform.py:468 msgid "[ERROR_NOTCL] Wrong value format entered for Rotate, use a number." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1112 -#: flatcamEditors/FlatCAMGrbEditor.py:5043 flatcamTools/ToolTransform.py:502 +#: flatcamEditors/FlatCAMGrbEditor.py:5051 flatcamTools/ToolTransform.py:502 msgid "[ERROR_NOTCL] Wrong value format entered for Skew X, use a number." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1133 -#: flatcamEditors/FlatCAMGrbEditor.py:5070 flatcamTools/ToolTransform.py:520 +#: flatcamEditors/FlatCAMGrbEditor.py:5078 flatcamTools/ToolTransform.py:520 msgid "[ERROR_NOTCL] Wrong value format entered for Skew Y, use a number." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1154 -#: flatcamEditors/FlatCAMGrbEditor.py:5097 flatcamTools/ToolTransform.py:538 +#: flatcamEditors/FlatCAMGrbEditor.py:5105 flatcamTools/ToolTransform.py:538 msgid "[ERROR_NOTCL] Wrong value format entered for Scale X, use a number." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1191 -#: flatcamEditors/FlatCAMGrbEditor.py:5138 flatcamTools/ToolTransform.py:572 +#: flatcamEditors/FlatCAMGrbEditor.py:5146 flatcamTools/ToolTransform.py:572 msgid "[ERROR_NOTCL] Wrong value format entered for Scale Y, use a number." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1223 -#: flatcamEditors/FlatCAMGrbEditor.py:5176 flatcamTools/ToolTransform.py:601 +#: flatcamEditors/FlatCAMGrbEditor.py:5184 flatcamTools/ToolTransform.py:601 msgid "[ERROR_NOTCL] Wrong value format entered for Offset X, use a number." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1244 -#: flatcamEditors/FlatCAMGrbEditor.py:5202 flatcamTools/ToolTransform.py:619 +#: flatcamEditors/FlatCAMGrbEditor.py:5210 flatcamTools/ToolTransform.py:619 msgid "[ERROR_NOTCL] Wrong value format entered for Offset Y, use a number." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1262 -#: flatcamEditors/FlatCAMGrbEditor.py:5225 +#: flatcamEditors/FlatCAMGrbEditor.py:5233 msgid "[WARNING_NOTCL] No shape selected. Please Select a shape to rotate!" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1265 -#: flatcamEditors/FlatCAMGrbEditor.py:5228 flatcamTools/ToolTransform.py:640 +#: flatcamEditors/FlatCAMGrbEditor.py:5236 flatcamTools/ToolTransform.py:640 msgid "Appying Rotate" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1293 -#: flatcamEditors/FlatCAMGrbEditor.py:5259 +#: flatcamEditors/FlatCAMGrbEditor.py:5269 msgid "[success] Done. Rotate completed." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1309 -#: flatcamEditors/FlatCAMGrbEditor.py:5278 +#: flatcamEditors/FlatCAMGrbEditor.py:5288 msgid "[WARNING_NOTCL] No shape selected. Please Select a shape to flip!" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1312 -#: flatcamEditors/FlatCAMGrbEditor.py:5281 flatcamTools/ToolTransform.py:691 +#: flatcamEditors/FlatCAMGrbEditor.py:5291 flatcamTools/ToolTransform.py:691 msgid "Applying Flip" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1342 -#: flatcamEditors/FlatCAMGrbEditor.py:5318 flatcamTools/ToolTransform.py:733 +#: flatcamEditors/FlatCAMGrbEditor.py:5330 flatcamTools/ToolTransform.py:733 msgid "[success] Flip on the Y axis done ..." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1345 -#: flatcamEditors/FlatCAMGrbEditor.py:5326 flatcamTools/ToolTransform.py:742 +#: flatcamEditors/FlatCAMGrbEditor.py:5338 flatcamTools/ToolTransform.py:742 msgid "[success] Flip on the X axis done ..." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1364 -#: flatcamEditors/FlatCAMGrbEditor.py:5346 +#: flatcamEditors/FlatCAMGrbEditor.py:5358 msgid "[WARNING_NOTCL] No shape selected. Please Select a shape to shear/skew!" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1367 -#: flatcamEditors/FlatCAMGrbEditor.py:5349 flatcamTools/ToolTransform.py:760 +#: flatcamEditors/FlatCAMGrbEditor.py:5361 flatcamTools/ToolTransform.py:760 msgid "Applying Skew" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1392 -#: flatcamEditors/FlatCAMGrbEditor.py:5382 flatcamTools/ToolTransform.py:791 +#: flatcamEditors/FlatCAMGrbEditor.py:5396 flatcamTools/ToolTransform.py:791 #, python-format msgid "[success] Skew on the %s axis done ..." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1396 -#: flatcamEditors/FlatCAMGrbEditor.py:5386 flatcamTools/ToolTransform.py:795 +#: flatcamEditors/FlatCAMGrbEditor.py:5400 flatcamTools/ToolTransform.py:795 #, python-format msgid "[ERROR_NOTCL] Due of %s, Skew action was not executed." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1407 -#: flatcamEditors/FlatCAMGrbEditor.py:5405 +#: flatcamEditors/FlatCAMGrbEditor.py:5419 msgid "[WARNING_NOTCL] No shape selected. Please Select a shape to scale!" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1410 -#: flatcamEditors/FlatCAMGrbEditor.py:5408 flatcamTools/ToolTransform.py:809 +#: flatcamEditors/FlatCAMGrbEditor.py:5422 flatcamTools/ToolTransform.py:809 msgid "Applying Scale" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1443 -#: flatcamEditors/FlatCAMGrbEditor.py:5444 flatcamTools/ToolTransform.py:848 +#: flatcamEditors/FlatCAMGrbEditor.py:5460 flatcamTools/ToolTransform.py:848 #, python-format msgid "[success] Scale on the %s axis done ..." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1446 -#: flatcamEditors/FlatCAMGrbEditor.py:5447 flatcamTools/ToolTransform.py:851 +#: flatcamEditors/FlatCAMGrbEditor.py:5463 flatcamTools/ToolTransform.py:851 #, python-format msgid "[ERROR_NOTCL] Due of %s, Scale action was not executed." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1455 -#: flatcamEditors/FlatCAMGrbEditor.py:5460 +#: flatcamEditors/FlatCAMGrbEditor.py:5476 msgid "[WARNING_NOTCL] No shape selected. Please Select a shape to offset!" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1458 -#: flatcamEditors/FlatCAMGrbEditor.py:5463 flatcamTools/ToolTransform.py:861 +#: flatcamEditors/FlatCAMGrbEditor.py:5479 flatcamTools/ToolTransform.py:861 msgid "Applying Offset" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1469 -#: flatcamEditors/FlatCAMGrbEditor.py:5484 flatcamTools/ToolTransform.py:880 +#: flatcamEditors/FlatCAMGrbEditor.py:5501 flatcamTools/ToolTransform.py:880 #, python-format msgid "[success] Offset on the %s axis done ..." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1473 -#: flatcamEditors/FlatCAMGrbEditor.py:5488 flatcamTools/ToolTransform.py:884 +#: flatcamEditors/FlatCAMGrbEditor.py:5505 flatcamTools/ToolTransform.py:884 #, python-format msgid "[ERROR_NOTCL] Due of %s, Offset action was not executed." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1477 -#: flatcamEditors/FlatCAMGrbEditor.py:5492 +#: flatcamEditors/FlatCAMGrbEditor.py:5509 msgid "Rotate ..." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1478 #: flatcamEditors/FlatCAMGeoEditor.py:1535 #: flatcamEditors/FlatCAMGeoEditor.py:1552 -#: flatcamEditors/FlatCAMGrbEditor.py:5493 -#: flatcamEditors/FlatCAMGrbEditor.py:5550 +#: flatcamEditors/FlatCAMGrbEditor.py:5510 #: flatcamEditors/FlatCAMGrbEditor.py:5567 +#: flatcamEditors/FlatCAMGrbEditor.py:5584 msgid "Enter an Angle Value (degrees):" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1487 -#: flatcamEditors/FlatCAMGrbEditor.py:5502 +#: flatcamEditors/FlatCAMGrbEditor.py:5519 msgid "[success] Geometry shape rotate done..." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1492 -#: flatcamEditors/FlatCAMGrbEditor.py:5507 +#: flatcamEditors/FlatCAMGrbEditor.py:5524 msgid "[WARNING_NOTCL] Geometry shape rotate cancelled..." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1498 -#: flatcamEditors/FlatCAMGrbEditor.py:5513 +#: flatcamEditors/FlatCAMGrbEditor.py:5530 msgid "Offset on X axis ..." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1499 #: flatcamEditors/FlatCAMGeoEditor.py:1518 -#: flatcamEditors/FlatCAMGrbEditor.py:5514 -#: flatcamEditors/FlatCAMGrbEditor.py:5533 +#: flatcamEditors/FlatCAMGrbEditor.py:5531 +#: flatcamEditors/FlatCAMGrbEditor.py:5550 #, python-format msgid "Enter a distance Value (%s):" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1508 -#: flatcamEditors/FlatCAMGrbEditor.py:5523 +#: flatcamEditors/FlatCAMGrbEditor.py:5540 msgid "[success] Geometry shape offset on X axis done..." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1512 -#: flatcamEditors/FlatCAMGrbEditor.py:5527 +#: flatcamEditors/FlatCAMGrbEditor.py:5544 msgid "[WARNING_NOTCL] Geometry shape offset X cancelled..." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1517 -#: flatcamEditors/FlatCAMGrbEditor.py:5532 +#: flatcamEditors/FlatCAMGrbEditor.py:5549 msgid "Offset on Y axis ..." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1527 -#: flatcamEditors/FlatCAMGrbEditor.py:5542 +#: flatcamEditors/FlatCAMGrbEditor.py:5559 msgid "[success] Geometry shape offset on Y axis done..." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1531 -#: flatcamEditors/FlatCAMGrbEditor.py:5546 +#: flatcamEditors/FlatCAMGrbEditor.py:5563 msgid "[WARNING_NOTCL] Geometry shape offset Y cancelled..." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1534 -#: flatcamEditors/FlatCAMGrbEditor.py:5549 +#: flatcamEditors/FlatCAMGrbEditor.py:5566 msgid "Skew on X axis ..." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1544 -#: flatcamEditors/FlatCAMGrbEditor.py:5559 +#: flatcamEditors/FlatCAMGrbEditor.py:5576 msgid "[success] Geometry shape skew on X axis done..." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1548 -#: flatcamEditors/FlatCAMGrbEditor.py:5563 +#: flatcamEditors/FlatCAMGrbEditor.py:5580 msgid "[WARNING_NOTCL] Geometry shape skew X cancelled..." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1551 -#: flatcamEditors/FlatCAMGrbEditor.py:5566 +#: flatcamEditors/FlatCAMGrbEditor.py:5583 msgid "Skew on Y axis ..." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1561 -#: flatcamEditors/FlatCAMGrbEditor.py:5576 +#: flatcamEditors/FlatCAMGrbEditor.py:5593 msgid "[success] Geometry shape skew on Y axis done..." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1565 -#: flatcamEditors/FlatCAMGrbEditor.py:5580 +#: flatcamEditors/FlatCAMGrbEditor.py:5597 msgid "[WARNING_NOTCL] Geometry shape skew Y cancelled..." msgstr "" @@ -2695,7 +2700,7 @@ msgid "[WARNING_NOTCL] Buffer cancelled. No shape selected." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:2711 -#: flatcamEditors/FlatCAMGrbEditor.py:4442 +#: flatcamEditors/FlatCAMGrbEditor.py:4447 msgid "[success] Done. Buffer Tool completed." msgstr "" @@ -2738,88 +2743,88 @@ msgstr "" msgid "Shape transformations ..." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:3416 +#: flatcamEditors/FlatCAMGeoEditor.py:3419 #, python-brace-format msgid "" "[WARNING_NOTCL] Editing MultiGeo Geometry, tool: {tool} with diameter: {dia}" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:3793 +#: flatcamEditors/FlatCAMGeoEditor.py:3796 msgid "[WARNING_NOTCL] Copy cancelled. No shape selected." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:3800 flatcamGUI/FlatCAMGUI.py:2727 +#: flatcamEditors/FlatCAMGeoEditor.py:3803 flatcamGUI/FlatCAMGUI.py:2727 #: flatcamGUI/FlatCAMGUI.py:2773 flatcamGUI/FlatCAMGUI.py:2791 #: flatcamGUI/FlatCAMGUI.py:2922 flatcamGUI/FlatCAMGUI.py:2934 #: flatcamGUI/FlatCAMGUI.py:2968 msgid "Click on target point." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:4044 -#: flatcamEditors/FlatCAMGeoEditor.py:4079 +#: flatcamEditors/FlatCAMGeoEditor.py:4047 +#: flatcamEditors/FlatCAMGeoEditor.py:4082 msgid "" "[WARNING_NOTCL] A selection of at least 2 geo items is required to do " "Intersection." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:4163 -#: flatcamEditors/FlatCAMGeoEditor.py:4201 -#: flatcamEditors/FlatCAMGeoEditor.py:4277 +#: flatcamEditors/FlatCAMGeoEditor.py:4166 +#: flatcamEditors/FlatCAMGeoEditor.py:4204 +#: flatcamEditors/FlatCAMGeoEditor.py:4280 msgid "" "[ERROR_NOTCL] Negative buffer value is not accepted. Use Buffer interior to " "generate an 'inside' shape" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:4172 -#: flatcamEditors/FlatCAMGeoEditor.py:4210 -#: flatcamEditors/FlatCAMGeoEditor.py:4285 +#: flatcamEditors/FlatCAMGeoEditor.py:4175 +#: flatcamEditors/FlatCAMGeoEditor.py:4213 +#: flatcamEditors/FlatCAMGeoEditor.py:4288 msgid "[WARNING_NOTCL] Nothing selected for buffering." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:4176 -#: flatcamEditors/FlatCAMGeoEditor.py:4214 -#: flatcamEditors/FlatCAMGeoEditor.py:4289 +#: flatcamEditors/FlatCAMGeoEditor.py:4179 +#: flatcamEditors/FlatCAMGeoEditor.py:4217 +#: flatcamEditors/FlatCAMGeoEditor.py:4292 msgid "[WARNING_NOTCL] Invalid distance for buffering." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:4186 -#: flatcamEditors/FlatCAMGeoEditor.py:4298 +#: flatcamEditors/FlatCAMGeoEditor.py:4189 +#: flatcamEditors/FlatCAMGeoEditor.py:4301 msgid "" "[ERROR_NOTCL] Failed, the result is empty. Choose a different buffer value." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:4194 +#: flatcamEditors/FlatCAMGeoEditor.py:4197 msgid "[success] Full buffer geometry created." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:4224 +#: flatcamEditors/FlatCAMGeoEditor.py:4227 msgid "" "[ERROR_NOTCL] Failed, the result is empty. Choose a smaller buffer value." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:4239 +#: flatcamEditors/FlatCAMGeoEditor.py:4242 msgid "[success] Interior buffer geometry created." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:4310 +#: flatcamEditors/FlatCAMGeoEditor.py:4313 msgid "[success] Exterior buffer geometry created." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:4374 +#: flatcamEditors/FlatCAMGeoEditor.py:4377 msgid "[WARNING_NOTCL] Nothing selected for painting." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:4380 +#: flatcamEditors/FlatCAMGeoEditor.py:4383 msgid "[WARNING] Invalid value for {}" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:4386 +#: flatcamEditors/FlatCAMGeoEditor.py:4389 msgid "" "[ERROR_NOTCL] Could not do Paint. Overlap value has to be less than 1.00 " "(100%)." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:4445 +#: flatcamEditors/FlatCAMGeoEditor.py:4448 #, python-format msgid "" "[ERROR] Could not do Paint. Try a different combination of parameters. Or a " @@ -2827,7 +2832,7 @@ msgid "" "%s" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:4456 +#: flatcamEditors/FlatCAMGeoEditor.py:4459 msgid "[success] Paint done." msgstr "" @@ -2985,23 +2990,23 @@ msgid "Apertures Table for the Gerber Object." msgstr "" #: flatcamEditors/FlatCAMGrbEditor.py:2291 -#: flatcamEditors/FlatCAMGrbEditor.py:3602 flatcamGUI/ObjectUI.py:228 +#: flatcamEditors/FlatCAMGrbEditor.py:3601 flatcamGUI/ObjectUI.py:228 msgid "Code" msgstr "" #: flatcamEditors/FlatCAMGrbEditor.py:2291 -#: flatcamEditors/FlatCAMGrbEditor.py:3602 flatcamGUI/ObjectUI.py:228 +#: flatcamEditors/FlatCAMGrbEditor.py:3601 flatcamGUI/ObjectUI.py:228 #: flatcamGUI/ObjectUI.py:891 flatcamGUI/ObjectUI.py:1465 msgid "Type" msgstr "" #: flatcamEditors/FlatCAMGrbEditor.py:2291 -#: flatcamEditors/FlatCAMGrbEditor.py:3602 flatcamGUI/ObjectUI.py:228 +#: flatcamEditors/FlatCAMGrbEditor.py:3601 flatcamGUI/ObjectUI.py:228 msgid "Size" msgstr "" #: flatcamEditors/FlatCAMGrbEditor.py:2291 -#: flatcamEditors/FlatCAMGrbEditor.py:3602 flatcamGUI/ObjectUI.py:228 +#: flatcamEditors/FlatCAMGrbEditor.py:3601 flatcamGUI/ObjectUI.py:228 msgid "Dim" msgstr "" @@ -3217,33 +3222,40 @@ msgstr "" msgid "[WARNING_NOTCL] Cancelled. No aperture is selected" msgstr "" -#: flatcamEditors/FlatCAMGrbEditor.py:4270 +#: flatcamEditors/FlatCAMGrbEditor.py:4280 msgid "[ERROR_NOTCL] Failed. No aperture geometry is selected." msgstr "" -#: flatcamEditors/FlatCAMGrbEditor.py:4278 +#: flatcamEditors/FlatCAMGrbEditor.py:4288 msgid "[success] Done. Apertures geometry deleted." msgstr "" -#: flatcamEditors/FlatCAMGrbEditor.py:4427 +#: flatcamEditors/FlatCAMGrbEditor.py:4431 msgid "" "[WARNING_NOTCL] No aperture to buffer. Select at least one aperture and try " "again." msgstr "" -#: flatcamEditors/FlatCAMGrbEditor.py:4456 +#: flatcamEditors/FlatCAMGrbEditor.py:4444 +#, python-format +msgid "" +"[ERROR_NOTCL] Failed.\n" +"%s" +msgstr "" + +#: flatcamEditors/FlatCAMGrbEditor.py:4461 msgid "" "[WARNING_NOTCL] Scale factor value is missing or wrong format. Add it and " "retry." msgstr "" -#: flatcamEditors/FlatCAMGrbEditor.py:4486 +#: flatcamEditors/FlatCAMGrbEditor.py:4494 msgid "" "[WARNING_NOTCL] No aperture to scale. Select at least one aperture and try " "again." msgstr "" -#: flatcamEditors/FlatCAMGrbEditor.py:4502 +#: flatcamEditors/FlatCAMGrbEditor.py:4510 msgid "[success] Done. Scale Tool completed." msgstr "" @@ -5411,7 +5423,7 @@ msgid "Gerber General" msgstr "" #: flatcamGUI/FlatCAMGUI.py:3995 flatcamGUI/FlatCAMGUI.py:4361 -#: flatcamGUI/FlatCAMGUI.py:5153 flatcamGUI/FlatCAMGUI.py:5525 +#: flatcamGUI/FlatCAMGUI.py:5135 flatcamGUI/FlatCAMGUI.py:5504 #: flatcamGUI/ObjectUI.py:150 flatcamGUI/ObjectUI.py:505 #: flatcamGUI/ObjectUI.py:833 flatcamGUI/ObjectUI.py:1350 msgid "Plot Options:" @@ -5435,18 +5447,18 @@ msgid "Draw polygons in different colors." msgstr "" #: flatcamGUI/FlatCAMGUI.py:4016 flatcamGUI/FlatCAMGUI.py:4367 -#: flatcamGUI/FlatCAMGUI.py:5157 flatcamGUI/ObjectUI.py:172 +#: flatcamGUI/FlatCAMGUI.py:5139 flatcamGUI/ObjectUI.py:172 msgid "Plot" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4018 flatcamGUI/FlatCAMGUI.py:5159 +#: flatcamGUI/FlatCAMGUI.py:4018 flatcamGUI/FlatCAMGUI.py:5141 #: flatcamGUI/ObjectUI.py:174 flatcamGUI/ObjectUI.py:546 #: flatcamGUI/ObjectUI.py:879 flatcamGUI/ObjectUI.py:1450 msgid "Plot (show) this object." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4023 flatcamGUI/FlatCAMGUI.py:5166 -#: flatcamGUI/FlatCAMGUI.py:5608 +#: flatcamGUI/FlatCAMGUI.py:4023 flatcamGUI/FlatCAMGUI.py:5149 +#: flatcamGUI/FlatCAMGUI.py:5587 msgid "Circle Steps:" msgstr "" @@ -5470,8 +5482,8 @@ msgid "" "toolpaths to cut outside polygons." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4056 flatcamGUI/FlatCAMGUI.py:4753 -#: flatcamGUI/FlatCAMGUI.py:5897 flatcamGUI/ObjectUI.py:788 +#: flatcamGUI/FlatCAMGUI.py:4056 flatcamGUI/FlatCAMGUI.py:4735 +#: flatcamGUI/FlatCAMGUI.py:5876 flatcamGUI/ObjectUI.py:788 #: flatcamGUI/ObjectUI.py:804 msgid "Diameter of the cutting tool." msgstr "" @@ -5522,7 +5534,7 @@ msgstr "" msgid "Clear non-copper:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4104 flatcamGUI/FlatCAMGUI.py:5785 +#: flatcamGUI/FlatCAMGUI.py:4104 flatcamGUI/FlatCAMGUI.py:5764 #: flatcamGUI/ObjectUI.py:386 msgid "" "Create a Geometry object with\n" @@ -5611,7 +5623,7 @@ msgstr "" msgid "Gerber Export" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4232 flatcamGUI/FlatCAMGUI.py:4902 +#: flatcamGUI/FlatCAMGUI.py:4232 flatcamGUI/FlatCAMGUI.py:4884 msgid "Export Options:" msgstr "" @@ -5621,7 +5633,7 @@ msgid "" "when using the File -> Export -> Export Gerber menu entry." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4243 flatcamGUI/FlatCAMGUI.py:4913 +#: flatcamGUI/FlatCAMGUI.py:4243 flatcamGUI/FlatCAMGUI.py:4895 msgid "Units:" msgstr "" @@ -5629,7 +5641,7 @@ msgstr "" msgid "The units used in the Gerber file." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4257 flatcamGUI/FlatCAMGUI.py:4927 +#: flatcamGUI/FlatCAMGUI.py:4257 flatcamGUI/FlatCAMGUI.py:4909 msgid "Int/Decimals:" msgstr "" @@ -5651,7 +5663,7 @@ msgid "" "the decimal part of Gerber coordinates." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4293 flatcamGUI/FlatCAMGUI.py:4988 +#: flatcamGUI/FlatCAMGUI.py:4293 flatcamGUI/FlatCAMGUI.py:4970 msgid "Zeros:" msgstr "" @@ -5664,12 +5676,12 @@ msgid "" "and Leading Zeros are kept." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4326 flatcamGUI/FlatCAMGUI.py:5029 -#: flatcamGUI/FlatCAMGUI.py:5491 flatcamGUI/FlatCAMGUI.py:5783 -#: flatcamGUI/FlatCAMGUI.py:5884 flatcamGUI/FlatCAMGUI.py:5963 -#: flatcamGUI/FlatCAMGUI.py:6022 flatcamGUI/FlatCAMGUI.py:6125 -#: flatcamGUI/FlatCAMGUI.py:6186 flatcamGUI/FlatCAMGUI.py:6385 -#: flatcamGUI/FlatCAMGUI.py:6512 +#: flatcamGUI/FlatCAMGUI.py:4326 flatcamGUI/FlatCAMGUI.py:5011 +#: flatcamGUI/FlatCAMGUI.py:5470 flatcamGUI/FlatCAMGUI.py:5762 +#: flatcamGUI/FlatCAMGUI.py:5863 flatcamGUI/FlatCAMGUI.py:5942 +#: flatcamGUI/FlatCAMGUI.py:6001 flatcamGUI/FlatCAMGUI.py:6104 +#: flatcamGUI/FlatCAMGUI.py:6165 flatcamGUI/FlatCAMGUI.py:6364 +#: flatcamGUI/FlatCAMGUI.py:6491 msgid "Parameters:" msgstr "" @@ -5677,8 +5689,8 @@ msgstr "" msgid "A list of Gerber Editor parameters." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4336 flatcamGUI/FlatCAMGUI.py:5039 -#: flatcamGUI/FlatCAMGUI.py:5501 +#: flatcamGUI/FlatCAMGUI.py:4336 flatcamGUI/FlatCAMGUI.py:5021 +#: flatcamGUI/FlatCAMGUI.py:5480 msgid "Selection limit:" msgstr "" @@ -5731,14 +5743,14 @@ msgid "Default values for INCH are 2:4" msgstr "" #: flatcamGUI/FlatCAMGUI.py:4418 flatcamGUI/FlatCAMGUI.py:4451 -#: flatcamGUI/FlatCAMGUI.py:4942 +#: flatcamGUI/FlatCAMGUI.py:4924 msgid "" "This numbers signify the number of digits in\n" "the whole part of Excellon coordinates." msgstr "" #: flatcamGUI/FlatCAMGUI.py:4432 flatcamGUI/FlatCAMGUI.py:4465 -#: flatcamGUI/FlatCAMGUI.py:4956 +#: flatcamGUI/FlatCAMGUI.py:4938 msgid "" "This numbers signify the number of digits in\n" "the decimal part of Excellon coordinates." @@ -5756,7 +5768,7 @@ msgstr "" msgid "Default Zeros:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4477 flatcamGUI/FlatCAMGUI.py:4991 +#: flatcamGUI/FlatCAMGUI.py:4477 flatcamGUI/FlatCAMGUI.py:4973 msgid "" "This sets the type of Excellon zeros.\n" "If LZ then Leading Zeros are kept and\n" @@ -5775,11 +5787,11 @@ msgid "" "and Leading Zeros are removed." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4502 +#: flatcamGUI/FlatCAMGUI.py:4498 msgid "Default Units:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4505 +#: flatcamGUI/FlatCAMGUI.py:4501 msgid "" "This sets the default units of Excellon files.\n" "If it is not detected in the parsed file the value here\n" @@ -5787,22 +5799,22 @@ msgid "" "therefore this parameter will be used." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4516 +#: flatcamGUI/FlatCAMGUI.py:4512 msgid "" "This sets the units of Excellon files.\n" "Some Excellon files don't have an header\n" "therefore this parameter will be used." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4532 +#: flatcamGUI/FlatCAMGUI.py:4520 msgid "Excellon Optimization:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4539 +#: flatcamGUI/FlatCAMGUI.py:4523 msgid "Algorithm: " msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4542 flatcamGUI/FlatCAMGUI.py:4555 +#: flatcamGUI/FlatCAMGUI.py:4525 flatcamGUI/FlatCAMGUI.py:4539 msgid "" "This sets the optimization type for the Excellon drill path.\n" "If MH is checked then Google OR-Tools algorithm with MetaHeuristic\n" @@ -5814,11 +5826,11 @@ msgid "" "Travelling Salesman algorithm for path optimization." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4567 +#: flatcamGUI/FlatCAMGUI.py:4550 msgid "Optimization Time: " msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4570 +#: flatcamGUI/FlatCAMGUI.py:4553 msgid "" "When OR-Tools Metaheuristic (MH) is enabled there is a\n" "maximum threshold for how much time is spent doing the\n" @@ -5826,88 +5838,88 @@ msgid "" "In seconds." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4612 +#: flatcamGUI/FlatCAMGUI.py:4596 msgid "Excellon Options" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4615 flatcamGUI/ObjectUI.py:584 +#: flatcamGUI/FlatCAMGUI.py:4599 flatcamGUI/ObjectUI.py:584 msgid "Create CNC Job" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4617 +#: flatcamGUI/FlatCAMGUI.py:4601 msgid "" "Parameters used to create a CNC Job object\n" "for this drill object." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4625 flatcamGUI/FlatCAMGUI.py:5217 -#: flatcamGUI/FlatCAMGUI.py:6321 flatcamGUI/ObjectUI.py:595 +#: flatcamGUI/FlatCAMGUI.py:4609 flatcamGUI/FlatCAMGUI.py:5196 +#: flatcamGUI/FlatCAMGUI.py:6300 flatcamGUI/ObjectUI.py:595 #: flatcamGUI/ObjectUI.py:1062 flatcamTools/ToolCalculators.py:108 msgid "Cut Z:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4627 flatcamGUI/ObjectUI.py:597 +#: flatcamGUI/FlatCAMGUI.py:4611 flatcamGUI/ObjectUI.py:597 msgid "" "Drill depth (negative)\n" "below the copper surface." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4634 flatcamGUI/FlatCAMGUI.py:5250 +#: flatcamGUI/FlatCAMGUI.py:4618 flatcamGUI/FlatCAMGUI.py:5229 #: flatcamGUI/ObjectUI.py:605 flatcamGUI/ObjectUI.py:1098 msgid "Travel Z:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4636 flatcamGUI/ObjectUI.py:607 +#: flatcamGUI/FlatCAMGUI.py:4620 flatcamGUI/ObjectUI.py:607 msgid "" "Tool height when travelling\n" "across the XY plane." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4644 flatcamGUI/FlatCAMGUI.py:5260 +#: flatcamGUI/FlatCAMGUI.py:4628 flatcamGUI/FlatCAMGUI.py:5239 msgid "Tool change:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4646 flatcamGUI/FlatCAMGUI.py:5262 +#: flatcamGUI/FlatCAMGUI.py:4630 flatcamGUI/FlatCAMGUI.py:5241 #: flatcamGUI/ObjectUI.py:617 msgid "" "Include tool-change sequence\n" "in G-Code (Pause for tool change)." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4653 flatcamGUI/FlatCAMGUI.py:5270 +#: flatcamGUI/FlatCAMGUI.py:4637 flatcamGUI/FlatCAMGUI.py:5249 msgid "Toolchange Z:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4655 flatcamGUI/FlatCAMGUI.py:5272 +#: flatcamGUI/FlatCAMGUI.py:4639 flatcamGUI/FlatCAMGUI.py:5251 msgid "Toolchange Z position." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4661 +#: flatcamGUI/FlatCAMGUI.py:4645 msgid "Feedrate:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4663 +#: flatcamGUI/FlatCAMGUI.py:4647 msgid "" "Tool speed while drilling\n" "(in units per minute)." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4671 +#: flatcamGUI/FlatCAMGUI.py:4655 msgid "Spindle Speed:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4673 flatcamGUI/FlatCAMGUI.py:5302 +#: flatcamGUI/FlatCAMGUI.py:4657 flatcamGUI/FlatCAMGUI.py:5281 #: flatcamGUI/ObjectUI.py:684 msgid "" "Speed of the spindle\n" "in RPM (optional)" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4681 flatcamGUI/FlatCAMGUI.py:5310 +#: flatcamGUI/FlatCAMGUI.py:4665 flatcamGUI/FlatCAMGUI.py:5289 msgid "Spindle dir.:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4683 flatcamGUI/FlatCAMGUI.py:5312 +#: flatcamGUI/FlatCAMGUI.py:4667 flatcamGUI/FlatCAMGUI.py:5291 msgid "" "This sets the direction that the spindle is rotating.\n" "It can be either:\n" @@ -5915,43 +5927,43 @@ msgid "" "- CCW = counter clockwise" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4695 flatcamGUI/FlatCAMGUI.py:5324 +#: flatcamGUI/FlatCAMGUI.py:4679 flatcamGUI/FlatCAMGUI.py:5303 #: flatcamGUI/ObjectUI.py:692 flatcamGUI/ObjectUI.py:1224 msgid "Dwell:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4697 flatcamGUI/FlatCAMGUI.py:5326 +#: flatcamGUI/FlatCAMGUI.py:4681 flatcamGUI/FlatCAMGUI.py:5305 #: flatcamGUI/ObjectUI.py:694 flatcamGUI/ObjectUI.py:1227 msgid "" "Pause to allow the spindle to reach its\n" "speed before cutting." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4700 flatcamGUI/FlatCAMGUI.py:5329 +#: flatcamGUI/FlatCAMGUI.py:4684 flatcamGUI/FlatCAMGUI.py:5308 msgid "Duration:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4702 flatcamGUI/FlatCAMGUI.py:5331 +#: flatcamGUI/FlatCAMGUI.py:4686 flatcamGUI/FlatCAMGUI.py:5310 #: flatcamGUI/ObjectUI.py:699 flatcamGUI/ObjectUI.py:1234 msgid "Number of milliseconds for spindle to dwell." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4714 flatcamGUI/FlatCAMGUI.py:5341 +#: flatcamGUI/FlatCAMGUI.py:4698 flatcamGUI/FlatCAMGUI.py:5320 #: flatcamGUI/ObjectUI.py:707 msgid "Postprocessor:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4716 +#: flatcamGUI/FlatCAMGUI.py:4700 msgid "" "The postprocessor file that dictates\n" "gcode output." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4725 +#: flatcamGUI/FlatCAMGUI.py:4709 msgid "Gcode: " msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4727 +#: flatcamGUI/FlatCAMGUI.py:4711 msgid "" "Choose what to use for GCode generation:\n" "'Drills', 'Slots' or 'Both'.\n" @@ -5959,93 +5971,93 @@ msgid "" "converted to drills." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4743 flatcamGUI/ObjectUI.py:772 +#: flatcamGUI/FlatCAMGUI.py:4727 flatcamGUI/ObjectUI.py:772 msgid "Mill Holes" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4745 flatcamGUI/ObjectUI.py:774 +#: flatcamGUI/FlatCAMGUI.py:4729 flatcamGUI/ObjectUI.py:774 msgid "Create Geometry for milling holes." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4751 +#: flatcamGUI/FlatCAMGUI.py:4733 msgid "Drill Tool dia:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4758 +#: flatcamGUI/FlatCAMGUI.py:4740 msgid "Slot Tool dia:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4760 +#: flatcamGUI/FlatCAMGUI.py:4742 msgid "" "Diameter of the cutting tool\n" "when milling slots." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4772 +#: flatcamGUI/FlatCAMGUI.py:4754 msgid "Defaults" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4785 +#: flatcamGUI/FlatCAMGUI.py:4767 msgid "Excellon Adv. Options" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4791 flatcamGUI/FlatCAMGUI.py:5364 +#: flatcamGUI/FlatCAMGUI.py:4773 flatcamGUI/FlatCAMGUI.py:5343 msgid "Advanced Options:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4793 +#: flatcamGUI/FlatCAMGUI.py:4775 msgid "" "Parameters used to create a CNC Job object\n" "for this drill object that are shown when App Level is Advanced." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4801 +#: flatcamGUI/FlatCAMGUI.py:4783 msgid "Offset Z:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4803 flatcamGUI/ObjectUI.py:574 +#: flatcamGUI/FlatCAMGUI.py:4785 flatcamGUI/ObjectUI.py:574 msgid "" "Some drill bits (the larger ones) need to drill deeper\n" "to create the desired exit hole diameter due of the tip shape.\n" "The value here can compensate the Cut Z parameter." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4810 flatcamGUI/FlatCAMGUI.py:5375 +#: flatcamGUI/FlatCAMGUI.py:4792 flatcamGUI/FlatCAMGUI.py:5354 msgid "Toolchange X,Y:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4812 flatcamGUI/FlatCAMGUI.py:5377 +#: flatcamGUI/FlatCAMGUI.py:4794 flatcamGUI/FlatCAMGUI.py:5356 msgid "Toolchange X,Y position." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4818 flatcamGUI/FlatCAMGUI.py:5384 +#: flatcamGUI/FlatCAMGUI.py:4800 flatcamGUI/FlatCAMGUI.py:5363 #: flatcamGUI/ObjectUI.py:634 msgid "Start move Z:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4820 +#: flatcamGUI/FlatCAMGUI.py:4802 msgid "" "Height of the tool just after start.\n" "Delete the value if you don't need this feature." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4827 flatcamGUI/FlatCAMGUI.py:5394 +#: flatcamGUI/FlatCAMGUI.py:4809 flatcamGUI/FlatCAMGUI.py:5373 #: flatcamGUI/ObjectUI.py:644 flatcamGUI/ObjectUI.py:1144 msgid "End move Z:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4829 flatcamGUI/FlatCAMGUI.py:5396 +#: flatcamGUI/FlatCAMGUI.py:4811 flatcamGUI/FlatCAMGUI.py:5375 msgid "" "Height of the tool after\n" "the last move at the end of the job." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4836 flatcamGUI/FlatCAMGUI.py:5404 +#: flatcamGUI/FlatCAMGUI.py:4818 flatcamGUI/FlatCAMGUI.py:5383 #: flatcamGUI/ObjectUI.py:665 msgid "Feedrate Rapids:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4838 flatcamGUI/ObjectUI.py:667 +#: flatcamGUI/FlatCAMGUI.py:4820 flatcamGUI/ObjectUI.py:667 msgid "" "Tool speed while drilling\n" "(in units per minute).\n" @@ -6054,33 +6066,33 @@ msgid "" "ignore for any other cases." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4849 flatcamGUI/FlatCAMGUI.py:5428 +#: flatcamGUI/FlatCAMGUI.py:4831 flatcamGUI/FlatCAMGUI.py:5407 #: flatcamGUI/ObjectUI.py:718 flatcamGUI/ObjectUI.py:1256 msgid "Probe Z depth:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4851 flatcamGUI/FlatCAMGUI.py:5430 +#: flatcamGUI/FlatCAMGUI.py:4833 flatcamGUI/FlatCAMGUI.py:5409 #: flatcamGUI/ObjectUI.py:720 flatcamGUI/ObjectUI.py:1259 msgid "" "The maximum depth that the probe is allowed\n" "to probe. Negative value, in current units." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4859 flatcamGUI/FlatCAMGUI.py:5438 +#: flatcamGUI/FlatCAMGUI.py:4841 flatcamGUI/FlatCAMGUI.py:5417 #: flatcamGUI/ObjectUI.py:730 flatcamGUI/ObjectUI.py:1270 msgid "Feedrate Probe:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4861 flatcamGUI/FlatCAMGUI.py:5440 +#: flatcamGUI/FlatCAMGUI.py:4843 flatcamGUI/FlatCAMGUI.py:5419 #: flatcamGUI/ObjectUI.py:732 flatcamGUI/ObjectUI.py:1273 msgid "The feedrate used while the probe is probing." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4867 flatcamGUI/FlatCAMGUI.py:5447 +#: flatcamGUI/FlatCAMGUI.py:4849 flatcamGUI/FlatCAMGUI.py:5426 msgid "Fast Plunge:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4869 flatcamGUI/FlatCAMGUI.py:5449 +#: flatcamGUI/FlatCAMGUI.py:4851 flatcamGUI/FlatCAMGUI.py:5428 msgid "" "By checking this, the vertical move from\n" "Z_Toolchange to Z_move is done with G0,\n" @@ -6088,11 +6100,11 @@ msgid "" "WARNING: the move is done at Toolchange X,Y coords." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4878 +#: flatcamGUI/FlatCAMGUI.py:4860 msgid "Fast Retract:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4880 +#: flatcamGUI/FlatCAMGUI.py:4862 msgid "" "Exit hole strategy.\n" " - When uncheked, while exiting the drilled hole the drill bit\n" @@ -6102,21 +6114,21 @@ msgid "" "(travel height) is done as fast as possible (G0) in one move." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4899 +#: flatcamGUI/FlatCAMGUI.py:4881 msgid "Excellon Export" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4904 +#: flatcamGUI/FlatCAMGUI.py:4886 msgid "" "The parameters set here are used in the file exported\n" "when using the File -> Export -> Export Excellon menu entry." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4915 flatcamGUI/FlatCAMGUI.py:4921 +#: flatcamGUI/FlatCAMGUI.py:4897 flatcamGUI/FlatCAMGUI.py:4903 msgid "The units used in the Excellon file." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4929 +#: flatcamGUI/FlatCAMGUI.py:4911 msgid "" "The NC drill files, usually named Excellon files\n" "are files that can be found in different formats.\n" @@ -6124,11 +6136,11 @@ msgid "" "coordinates are not using period." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4965 +#: flatcamGUI/FlatCAMGUI.py:4947 msgid "Format:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4967 flatcamGUI/FlatCAMGUI.py:4977 +#: flatcamGUI/FlatCAMGUI.py:4949 flatcamGUI/FlatCAMGUI.py:4959 msgid "" "Select the kind of coordinates format used.\n" "Coordinates can be saved with decimal point or without.\n" @@ -6138,7 +6150,7 @@ msgid "" "or TZ = trailing zeros are kept." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5001 +#: flatcamGUI/FlatCAMGUI.py:4983 msgid "" "This sets the default type of Excellon zeros.\n" "If LZ then Leading Zeros are kept and\n" @@ -6147,11 +6159,11 @@ msgid "" "and Leading Zeros are removed." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5031 +#: flatcamGUI/FlatCAMGUI.py:5013 msgid "A list of Excellon Editor parameters." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5041 +#: flatcamGUI/FlatCAMGUI.py:5023 msgid "" "Set the number of selected Excellon geometry\n" "items above which the utility geometry\n" @@ -6160,94 +6172,88 @@ msgid "" "large number of geometric elements." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5053 +#: flatcamGUI/FlatCAMGUI.py:5035 msgid "New Tool Dia:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5076 +#: flatcamGUI/FlatCAMGUI.py:5058 msgid "Linear Drill Array:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5080 +#: flatcamGUI/FlatCAMGUI.py:5062 msgid "Linear Dir.:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5116 +#: flatcamGUI/FlatCAMGUI.py:5098 msgid "Circular Drill Array:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5120 +#: flatcamGUI/FlatCAMGUI.py:5102 msgid "Circular Dir.:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5122 +#: flatcamGUI/FlatCAMGUI.py:5104 msgid "" "Direction for circular array.\n" "Can be CW = clockwise or CCW = counter clockwise." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5133 +#: flatcamGUI/FlatCAMGUI.py:5115 msgid "Circ. Angle:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5150 +#: flatcamGUI/FlatCAMGUI.py:5132 msgid "Geometry General" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5168 +#: flatcamGUI/FlatCAMGUI.py:5151 msgid "" "The number of circle steps for Geometry \n" "circle and arc shapes linear approximation." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5176 -msgid "Tools" +#: flatcamGUI/FlatCAMGUI.py:5159 +msgid "Tools:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5183 -msgid "Tool dia: " +#: flatcamGUI/FlatCAMGUI.py:5165 flatcamGUI/FlatCAMGUI.py:5774 +msgid "Diameters of the cutting tools, separated by ','" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5185 -msgid "" -"The diameter of the cutting\n" -"tool.." -msgstr "" - -#: flatcamGUI/FlatCAMGUI.py:5200 +#: flatcamGUI/FlatCAMGUI.py:5179 msgid "Geometry Options" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5205 +#: flatcamGUI/FlatCAMGUI.py:5184 msgid "Create CNC Job:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5207 +#: flatcamGUI/FlatCAMGUI.py:5186 msgid "" "Create a CNC Job object\n" "tracing the contours of this\n" "Geometry object." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5219 flatcamGUI/ObjectUI.py:1065 +#: flatcamGUI/FlatCAMGUI.py:5198 flatcamGUI/ObjectUI.py:1065 msgid "" "Cutting depth (negative)\n" "below the copper surface." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5227 +#: flatcamGUI/FlatCAMGUI.py:5206 msgid "Multidepth" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5229 +#: flatcamGUI/FlatCAMGUI.py:5208 msgid "Multidepth usage: True or False." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5234 +#: flatcamGUI/FlatCAMGUI.py:5213 msgid "Depth/Pass:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5236 +#: flatcamGUI/FlatCAMGUI.py:5215 msgid "" "The depth to cut on each pass,\n" "when multidepth is enabled.\n" @@ -6256,61 +6262,61 @@ msgid "" "which has negative value." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5252 flatcamGUI/ObjectUI.py:1101 +#: flatcamGUI/FlatCAMGUI.py:5231 flatcamGUI/ObjectUI.py:1101 msgid "" "Height of the tool when\n" "moving without cutting." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5279 flatcamGUI/ObjectUI.py:1156 +#: flatcamGUI/FlatCAMGUI.py:5258 flatcamGUI/ObjectUI.py:1156 msgid "Feed Rate X-Y:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5281 flatcamGUI/ObjectUI.py:1159 +#: flatcamGUI/FlatCAMGUI.py:5260 flatcamGUI/ObjectUI.py:1159 msgid "" "Cutting speed in the XY\n" "plane in units per minute" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5289 +#: flatcamGUI/FlatCAMGUI.py:5268 msgid "Feed Rate Z:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5291 +#: flatcamGUI/FlatCAMGUI.py:5270 msgid "" "Cutting speed in the XY\n" "plane in units per minute.\n" "It is called also Plunge." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5300 flatcamGUI/ObjectUI.py:682 +#: flatcamGUI/FlatCAMGUI.py:5279 flatcamGUI/ObjectUI.py:682 #: flatcamGUI/ObjectUI.py:1211 msgid "Spindle speed:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5343 +#: flatcamGUI/FlatCAMGUI.py:5322 msgid "" "The postprocessor file that dictates\n" "Machine Code output." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5359 +#: flatcamGUI/FlatCAMGUI.py:5338 msgid "Geometry Adv. Options" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5366 +#: flatcamGUI/FlatCAMGUI.py:5345 msgid "" "Parameters to create a CNC Job object\n" "tracing the contours of a Geometry object." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5386 +#: flatcamGUI/FlatCAMGUI.py:5365 msgid "" "Height of the tool just after starting the work.\n" "Delete the value if you don't need this feature." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5406 +#: flatcamGUI/FlatCAMGUI.py:5385 msgid "" "Cutting speed in the XY plane\n" "(in units per minute).\n" @@ -6319,11 +6325,11 @@ msgid "" "ignore for any other cases." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5418 +#: flatcamGUI/FlatCAMGUI.py:5397 msgid "Re-cut 1st pt." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5420 flatcamGUI/ObjectUI.py:1202 +#: flatcamGUI/FlatCAMGUI.py:5399 flatcamGUI/ObjectUI.py:1202 msgid "" "In order to remove possible\n" "copper leftovers where first cut\n" @@ -6331,37 +6337,37 @@ msgid "" "extended cut over the first cut section." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5459 +#: flatcamGUI/FlatCAMGUI.py:5438 msgid "Seg. X size:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5461 +#: flatcamGUI/FlatCAMGUI.py:5440 msgid "" "The size of the trace segment on the X axis.\n" "Useful for auto-leveling.\n" "A value of 0 means no segmentation on the X axis." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5470 +#: flatcamGUI/FlatCAMGUI.py:5449 msgid "Seg. Y size:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5472 +#: flatcamGUI/FlatCAMGUI.py:5451 msgid "" "The size of the trace segment on the Y axis.\n" "Useful for auto-leveling.\n" "A value of 0 means no segmentation on the Y axis." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5488 +#: flatcamGUI/FlatCAMGUI.py:5467 msgid "Geometry Editor" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5493 +#: flatcamGUI/FlatCAMGUI.py:5472 msgid "A list of Geometry Editor parameters." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5503 +#: flatcamGUI/FlatCAMGUI.py:5482 msgid "" "Set the number of selected geometry\n" "items above which the utility geometry\n" @@ -6370,20 +6376,20 @@ msgid "" "large number of geometric elements." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5522 +#: flatcamGUI/FlatCAMGUI.py:5501 msgid "CNC Job General" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5535 flatcamGUI/ObjectUI.py:544 +#: flatcamGUI/FlatCAMGUI.py:5514 flatcamGUI/ObjectUI.py:544 #: flatcamGUI/ObjectUI.py:877 flatcamGUI/ObjectUI.py:1447 msgid "Plot Object" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5542 +#: flatcamGUI/FlatCAMGUI.py:5521 msgid "Plot kind:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5544 flatcamGUI/ObjectUI.py:1356 +#: flatcamGUI/FlatCAMGUI.py:5523 flatcamGUI/ObjectUI.py:1356 msgid "" "This selects the kind of geometries on the canvas to plot.\n" "Those can be either of type 'Travel' which means the moves\n" @@ -6391,110 +6397,110 @@ msgid "" "which means the moves that cut into the material." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5561 +#: flatcamGUI/FlatCAMGUI.py:5540 msgid "Display Annotation:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5563 flatcamGUI/ObjectUI.py:1372 +#: flatcamGUI/FlatCAMGUI.py:5542 flatcamGUI/ObjectUI.py:1372 msgid "" "This selects if to display text annotation on the plot.\n" "When checked it will display numbers in order for each end\n" "of a travel line." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5575 +#: flatcamGUI/FlatCAMGUI.py:5554 msgid "Annotation Size:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5577 +#: flatcamGUI/FlatCAMGUI.py:5556 msgid "The font size of the annotation text. In pixels." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5585 +#: flatcamGUI/FlatCAMGUI.py:5564 msgid "Annotation Color:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5587 +#: flatcamGUI/FlatCAMGUI.py:5566 msgid "Set the font color for the annotation texts." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5610 +#: flatcamGUI/FlatCAMGUI.py:5589 msgid "" "The number of circle steps for GCode \n" "circle and arc shapes linear approximation." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5620 +#: flatcamGUI/FlatCAMGUI.py:5599 msgid "" "Diameter of the tool to be\n" "rendered in the plot." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5628 +#: flatcamGUI/FlatCAMGUI.py:5607 msgid "Coords dec.:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5630 +#: flatcamGUI/FlatCAMGUI.py:5609 msgid "" "The number of decimals to be used for \n" "the X, Y, Z coordinates in CNC code (GCODE, etc.)" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5638 +#: flatcamGUI/FlatCAMGUI.py:5617 msgid "Feedrate dec.:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5640 +#: flatcamGUI/FlatCAMGUI.py:5619 msgid "" "The number of decimals to be used for \n" "the Feedrate parameter in CNC code (GCODE, etc.)" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5655 +#: flatcamGUI/FlatCAMGUI.py:5634 msgid "CNC Job Options" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5658 flatcamGUI/FlatCAMGUI.py:5699 +#: flatcamGUI/FlatCAMGUI.py:5637 flatcamGUI/FlatCAMGUI.py:5678 msgid "Export G-Code:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5660 flatcamGUI/FlatCAMGUI.py:5701 +#: flatcamGUI/FlatCAMGUI.py:5639 flatcamGUI/FlatCAMGUI.py:5680 #: flatcamGUI/ObjectUI.py:1483 msgid "" "Export and save G-Code to\n" "make this object to a file." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5666 +#: flatcamGUI/FlatCAMGUI.py:5645 msgid "Prepend to G-Code:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5668 +#: flatcamGUI/FlatCAMGUI.py:5647 msgid "" "Type here any G-Code commands you would\n" "like to add at the beginning of the G-Code file." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5677 +#: flatcamGUI/FlatCAMGUI.py:5656 msgid "Append to G-Code:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5679 flatcamGUI/ObjectUI.py:1505 +#: flatcamGUI/FlatCAMGUI.py:5658 flatcamGUI/ObjectUI.py:1505 msgid "" "Type here any G-Code commands you would\n" "like to append to the generated file.\n" "I.e.: M2 (End of program)" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5696 +#: flatcamGUI/FlatCAMGUI.py:5675 msgid "CNC Job Adv. Options" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5707 flatcamGUI/ObjectUI.py:1523 +#: flatcamGUI/FlatCAMGUI.py:5686 flatcamGUI/ObjectUI.py:1523 msgid "Toolchange G-Code:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5709 +#: flatcamGUI/FlatCAMGUI.py:5688 msgid "" "Type here any G-Code commands you would\n" "like to be executed when Toolchange event is encountered.\n" @@ -6502,88 +6508,84 @@ msgid "" "or a Toolchange Macro." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5723 flatcamGUI/ObjectUI.py:1545 +#: flatcamGUI/FlatCAMGUI.py:5702 flatcamGUI/ObjectUI.py:1545 msgid "Use Toolchange Macro" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5725 flatcamGUI/ObjectUI.py:1548 +#: flatcamGUI/FlatCAMGUI.py:5704 flatcamGUI/ObjectUI.py:1548 msgid "" "Check this box if you want to use\n" "a Custom Toolchange GCode (macro)." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5737 flatcamGUI/ObjectUI.py:1557 +#: flatcamGUI/FlatCAMGUI.py:5716 flatcamGUI/ObjectUI.py:1557 msgid "" "A list of the FlatCAM variables that can be used\n" "in the Toolchange event.\n" "They have to be surrounded by the '%' symbol" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5744 flatcamGUI/ObjectUI.py:1564 +#: flatcamGUI/FlatCAMGUI.py:5723 flatcamGUI/ObjectUI.py:1564 msgid "Parameters" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5747 flatcamGUI/ObjectUI.py:1567 +#: flatcamGUI/FlatCAMGUI.py:5726 flatcamGUI/ObjectUI.py:1567 msgid "FlatCAM CNC parameters" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5748 flatcamGUI/ObjectUI.py:1568 +#: flatcamGUI/FlatCAMGUI.py:5727 flatcamGUI/ObjectUI.py:1568 msgid "tool = tool number" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5749 flatcamGUI/ObjectUI.py:1569 +#: flatcamGUI/FlatCAMGUI.py:5728 flatcamGUI/ObjectUI.py:1569 msgid "tooldia = tool diameter" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5750 flatcamGUI/ObjectUI.py:1570 +#: flatcamGUI/FlatCAMGUI.py:5729 flatcamGUI/ObjectUI.py:1570 msgid "t_drills = for Excellon, total number of drills" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5751 flatcamGUI/ObjectUI.py:1571 +#: flatcamGUI/FlatCAMGUI.py:5730 flatcamGUI/ObjectUI.py:1571 msgid "x_toolchange = X coord for Toolchange" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5752 flatcamGUI/ObjectUI.py:1572 +#: flatcamGUI/FlatCAMGUI.py:5731 flatcamGUI/ObjectUI.py:1572 msgid "y_toolchange = Y coord for Toolchange" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5753 flatcamGUI/ObjectUI.py:1573 +#: flatcamGUI/FlatCAMGUI.py:5732 flatcamGUI/ObjectUI.py:1573 msgid "z_toolchange = Z coord for Toolchange" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5754 +#: flatcamGUI/FlatCAMGUI.py:5733 msgid "z_cut = Z depth for the cut" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5755 +#: flatcamGUI/FlatCAMGUI.py:5734 msgid "z_move = Z height for travel" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5756 flatcamGUI/ObjectUI.py:1576 +#: flatcamGUI/FlatCAMGUI.py:5735 flatcamGUI/ObjectUI.py:1576 msgid "z_depthpercut = the step value for multidepth cut" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5757 flatcamGUI/ObjectUI.py:1577 +#: flatcamGUI/FlatCAMGUI.py:5736 flatcamGUI/ObjectUI.py:1577 msgid "spindlesspeed = the value for the spindle speed" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5759 flatcamGUI/ObjectUI.py:1578 +#: flatcamGUI/FlatCAMGUI.py:5738 flatcamGUI/ObjectUI.py:1578 msgid "dwelltime = time to dwell to allow the spindle to reach it's set RPM" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5780 +#: flatcamGUI/FlatCAMGUI.py:5759 msgid "NCC Tool Options" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5793 flatcamGUI/FlatCAMGUI.py:6523 +#: flatcamGUI/FlatCAMGUI.py:5772 flatcamGUI/FlatCAMGUI.py:6502 msgid "Tools dia:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5795 -msgid "Diameters of the cutting tools, separated by ','" -msgstr "" - -#: flatcamGUI/FlatCAMGUI.py:5803 flatcamTools/ToolNonCopperClear.py:167 +#: flatcamGUI/FlatCAMGUI.py:5782 flatcamTools/ToolNonCopperClear.py:167 #, python-format msgid "" "How much (fraction) of the tool width to overlap each tool pass.\n" @@ -6598,11 +6600,11 @@ msgid "" "due of too many paths." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5819 flatcamTools/ToolNonCopperClear.py:183 +#: flatcamGUI/FlatCAMGUI.py:5798 flatcamTools/ToolNonCopperClear.py:183 msgid "Bounding box margin." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5828 flatcamTools/ToolNonCopperClear.py:192 +#: flatcamGUI/FlatCAMGUI.py:5807 flatcamTools/ToolNonCopperClear.py:192 #: flatcamTools/ToolPaint.py:190 msgid "" "Algorithm for non-copper clearing:
Standard: Fixed step inwards." @@ -6610,12 +6612,12 @@ msgid "" "lines." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5860 flatcamTools/ToolNonCopperClear.py:224 +#: flatcamGUI/FlatCAMGUI.py:5839 flatcamTools/ToolNonCopperClear.py:224 #: flatcamTools/ToolPaint.py:222 msgid "Rest M.:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5862 +#: flatcamGUI/FlatCAMGUI.py:5841 msgid "" "If checked, use 'rest machining'.\n" "Basically it will clear copper outside PCB features,\n" @@ -6625,39 +6627,39 @@ msgid "" "If not checked, use the standard algorithm." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5881 +#: flatcamGUI/FlatCAMGUI.py:5860 msgid "Cutout Tool Options" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5886 flatcamGUI/ObjectUI.py:402 +#: flatcamGUI/FlatCAMGUI.py:5865 flatcamGUI/ObjectUI.py:402 msgid "" "Create toolpaths to cut around\n" "the PCB and separate it from\n" "the original board." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5905 +#: flatcamGUI/FlatCAMGUI.py:5884 msgid "" "Distance from objects at which\n" "to draw the cutout." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5912 flatcamTools/ToolCutOut.py:96 +#: flatcamGUI/FlatCAMGUI.py:5891 flatcamTools/ToolCutOut.py:96 msgid "Gap size:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5914 +#: flatcamGUI/FlatCAMGUI.py:5893 msgid "" "Size of the gaps in the toolpath\n" "that will remain to hold the\n" "board in place." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5922 flatcamTools/ToolCutOut.py:134 +#: flatcamGUI/FlatCAMGUI.py:5901 flatcamTools/ToolCutOut.py:134 msgid "Gaps:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5924 +#: flatcamGUI/FlatCAMGUI.py:5903 msgid "" "Number of bridge gaps used for the cutout.\n" "There can be maximum 8 bridges/gaps.\n" @@ -6670,57 +6672,57 @@ msgid "" "- 8 - 2*left + 2*right +2*top + 2*bottom" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5945 flatcamTools/ToolCutOut.py:115 +#: flatcamGUI/FlatCAMGUI.py:5924 flatcamTools/ToolCutOut.py:115 msgid "Convex Sh.:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5947 +#: flatcamGUI/FlatCAMGUI.py:5926 msgid "Create a convex shape surrounding the entire PCB." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5960 +#: flatcamGUI/FlatCAMGUI.py:5939 msgid "2Sided Tool Options" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5965 +#: flatcamGUI/FlatCAMGUI.py:5944 msgid "" "A tool to help in creating a double sided\n" "PCB using alignment holes." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5975 flatcamTools/ToolDblSided.py:235 +#: flatcamGUI/FlatCAMGUI.py:5954 flatcamTools/ToolDblSided.py:235 msgid "Drill diam.:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5977 flatcamTools/ToolDblSided.py:226 +#: flatcamGUI/FlatCAMGUI.py:5956 flatcamTools/ToolDblSided.py:226 #: flatcamTools/ToolDblSided.py:237 msgid "Diameter of the drill for the alignment holes." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5986 flatcamTools/ToolDblSided.py:120 +#: flatcamGUI/FlatCAMGUI.py:5965 flatcamTools/ToolDblSided.py:120 msgid "Mirror Axis:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5988 flatcamTools/ToolDblSided.py:122 +#: flatcamGUI/FlatCAMGUI.py:5967 flatcamTools/ToolDblSided.py:122 msgid "Mirror vertically (X) or horizontally (Y)." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5999 flatcamTools/ToolDblSided.py:133 +#: flatcamGUI/FlatCAMGUI.py:5978 flatcamTools/ToolDblSided.py:133 msgid "Axis Ref:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6001 +#: flatcamGUI/FlatCAMGUI.py:5980 msgid "" "The axis should pass through a point or cut\n" " a specified box (in a Geometry object) in \n" "the middle." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6017 +#: flatcamGUI/FlatCAMGUI.py:5996 msgid "Paint Tool Options" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6024 flatcamGUI/ObjectUI.py:1305 +#: flatcamGUI/FlatCAMGUI.py:6003 flatcamGUI/ObjectUI.py:1305 msgid "" "Creates tool paths to cover the\n" "whole area of a polygon (remove\n" @@ -6728,36 +6730,36 @@ msgid "" "to click on the desired polygon." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6048 +#: flatcamGUI/FlatCAMGUI.py:6027 msgid "" "How much (fraction) of the tool\n" "width to overlap each tool pass." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6102 flatcamTools/ToolPaint.py:237 +#: flatcamGUI/FlatCAMGUI.py:6081 flatcamTools/ToolPaint.py:237 msgid "Selection:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6104 +#: flatcamGUI/FlatCAMGUI.py:6083 msgid "How to select the polygons to paint." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6122 +#: flatcamGUI/FlatCAMGUI.py:6101 msgid "Film Tool Options" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6127 +#: flatcamGUI/FlatCAMGUI.py:6106 msgid "" "Create a PCB film from a Gerber or Geometry\n" "FlatCAM object.\n" "The file is saved in SVG format." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6138 flatcamTools/ToolFilm.py:116 +#: flatcamGUI/FlatCAMGUI.py:6117 flatcamTools/ToolFilm.py:116 msgid "Film Type:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6140 flatcamTools/ToolFilm.py:118 +#: flatcamGUI/FlatCAMGUI.py:6119 flatcamTools/ToolFilm.py:118 msgid "" "Generate a Positive black film or a Negative film.\n" "Positive means that it will print the features\n" @@ -6767,11 +6769,11 @@ msgid "" "The Film format is SVG." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6151 flatcamTools/ToolFilm.py:130 +#: flatcamGUI/FlatCAMGUI.py:6130 flatcamTools/ToolFilm.py:130 msgid "Border:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6153 flatcamTools/ToolFilm.py:132 +#: flatcamGUI/FlatCAMGUI.py:6132 flatcamTools/ToolFilm.py:132 msgid "" "Specify a border around the object.\n" "Only for negative film.\n" @@ -6783,11 +6785,11 @@ msgid "" "surroundings if not for this border." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6166 flatcamTools/ToolFilm.py:144 +#: flatcamGUI/FlatCAMGUI.py:6145 flatcamTools/ToolFilm.py:144 msgid "Scale Stroke:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6168 flatcamTools/ToolFilm.py:146 +#: flatcamGUI/FlatCAMGUI.py:6147 flatcamTools/ToolFilm.py:146 msgid "" "Scale the line stroke thickness of each feature in the SVG file.\n" "It means that the line that envelope each SVG feature will be thicker or " @@ -6795,69 +6797,69 @@ msgid "" "therefore the fine features may be more affected by this parameter." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6183 +#: flatcamGUI/FlatCAMGUI.py:6162 msgid "Panelize Tool Options" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6188 +#: flatcamGUI/FlatCAMGUI.py:6167 msgid "" "Create an object that contains an array of (x, y) elements,\n" "each element is a copy of the source object spaced\n" "at a X distance, Y distance of each other." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6199 flatcamTools/ToolPanelize.py:147 +#: flatcamGUI/FlatCAMGUI.py:6178 flatcamTools/ToolPanelize.py:147 msgid "Spacing cols:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6201 flatcamTools/ToolPanelize.py:149 +#: flatcamGUI/FlatCAMGUI.py:6180 flatcamTools/ToolPanelize.py:149 msgid "" "Spacing between columns of the desired panel.\n" "In current units." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6209 flatcamTools/ToolPanelize.py:156 +#: flatcamGUI/FlatCAMGUI.py:6188 flatcamTools/ToolPanelize.py:156 msgid "Spacing rows:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6211 flatcamTools/ToolPanelize.py:158 +#: flatcamGUI/FlatCAMGUI.py:6190 flatcamTools/ToolPanelize.py:158 msgid "" "Spacing between rows of the desired panel.\n" "In current units." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6219 flatcamTools/ToolPanelize.py:165 +#: flatcamGUI/FlatCAMGUI.py:6198 flatcamTools/ToolPanelize.py:165 msgid "Columns:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6221 flatcamTools/ToolPanelize.py:167 +#: flatcamGUI/FlatCAMGUI.py:6200 flatcamTools/ToolPanelize.py:167 msgid "Number of columns of the desired panel" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6228 flatcamTools/ToolPanelize.py:173 +#: flatcamGUI/FlatCAMGUI.py:6207 flatcamTools/ToolPanelize.py:173 msgid "Rows:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6230 flatcamTools/ToolPanelize.py:175 +#: flatcamGUI/FlatCAMGUI.py:6209 flatcamTools/ToolPanelize.py:175 msgid "Number of rows of the desired panel" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6238 +#: flatcamGUI/FlatCAMGUI.py:6217 msgid "Panel Type:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6240 +#: flatcamGUI/FlatCAMGUI.py:6219 msgid "" "Choose the type of object for the panel object:\n" "- Gerber\n" "- Geometry" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6249 +#: flatcamGUI/FlatCAMGUI.py:6228 msgid "Constrain within:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6251 flatcamTools/ToolPanelize.py:195 +#: flatcamGUI/FlatCAMGUI.py:6230 flatcamTools/ToolPanelize.py:195 msgid "" "Area define by DX and DY within to constrain the panel.\n" "DX and DY values are in current units.\n" @@ -6866,171 +6868,171 @@ msgid "" "they fit completely within selected area." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6260 flatcamTools/ToolPanelize.py:204 +#: flatcamGUI/FlatCAMGUI.py:6239 flatcamTools/ToolPanelize.py:204 msgid "Width (DX):" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6262 flatcamTools/ToolPanelize.py:206 +#: flatcamGUI/FlatCAMGUI.py:6241 flatcamTools/ToolPanelize.py:206 msgid "" "The width (DX) within which the panel must fit.\n" "In current units." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6269 flatcamTools/ToolPanelize.py:212 +#: flatcamGUI/FlatCAMGUI.py:6248 flatcamTools/ToolPanelize.py:212 msgid "Height (DY):" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6271 flatcamTools/ToolPanelize.py:214 +#: flatcamGUI/FlatCAMGUI.py:6250 flatcamTools/ToolPanelize.py:214 msgid "" "The height (DY)within which the panel must fit.\n" "In current units." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6285 +#: flatcamGUI/FlatCAMGUI.py:6264 msgid "Calculators Tool Options" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6288 +#: flatcamGUI/FlatCAMGUI.py:6267 msgid "V-Shape Tool Calculator:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6290 +#: flatcamGUI/FlatCAMGUI.py:6269 msgid "" "Calculate the tool diameter for a given V-shape tool,\n" "having the tip diameter, tip angle and\n" "depth-of-cut as parameters." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6301 flatcamTools/ToolCalculators.py:94 +#: flatcamGUI/FlatCAMGUI.py:6280 flatcamTools/ToolCalculators.py:94 msgid "Tip Diameter:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6303 +#: flatcamGUI/FlatCAMGUI.py:6282 msgid "" "This is the tool tip diameter.\n" "It is specified by manufacturer." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6311 +#: flatcamGUI/FlatCAMGUI.py:6290 msgid "Tip angle:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6313 +#: flatcamGUI/FlatCAMGUI.py:6292 msgid "" "This is the angle on the tip of the tool.\n" "It is specified by manufacturer." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6323 +#: flatcamGUI/FlatCAMGUI.py:6302 msgid "" "This is depth to cut into material.\n" "In the CNCJob object it is the CutZ parameter." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6330 +#: flatcamGUI/FlatCAMGUI.py:6309 msgid "ElectroPlating Calculator:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6332 flatcamTools/ToolCalculators.py:152 +#: flatcamGUI/FlatCAMGUI.py:6311 flatcamTools/ToolCalculators.py:152 msgid "" "This calculator is useful for those who plate the via/pad/drill holes,\n" "using a method like grahite ink or calcium hypophosphite ink or palladium " "chloride." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6342 flatcamTools/ToolCalculators.py:161 +#: flatcamGUI/FlatCAMGUI.py:6321 flatcamTools/ToolCalculators.py:161 msgid "Board Length:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6344 flatcamTools/ToolCalculators.py:165 +#: flatcamGUI/FlatCAMGUI.py:6323 flatcamTools/ToolCalculators.py:165 msgid "This is the board length. In centimeters." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6350 flatcamTools/ToolCalculators.py:167 +#: flatcamGUI/FlatCAMGUI.py:6329 flatcamTools/ToolCalculators.py:167 msgid "Board Width:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6352 flatcamTools/ToolCalculators.py:171 +#: flatcamGUI/FlatCAMGUI.py:6331 flatcamTools/ToolCalculators.py:171 msgid "This is the board width.In centimeters." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6357 flatcamTools/ToolCalculators.py:173 +#: flatcamGUI/FlatCAMGUI.py:6336 flatcamTools/ToolCalculators.py:173 msgid "Current Density:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6360 flatcamTools/ToolCalculators.py:177 +#: flatcamGUI/FlatCAMGUI.py:6339 flatcamTools/ToolCalculators.py:177 msgid "" "Current density to pass through the board. \n" "In Amps per Square Feet ASF." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6366 flatcamTools/ToolCalculators.py:181 +#: flatcamGUI/FlatCAMGUI.py:6345 flatcamTools/ToolCalculators.py:181 msgid "Copper Growth:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6369 flatcamTools/ToolCalculators.py:185 +#: flatcamGUI/FlatCAMGUI.py:6348 flatcamTools/ToolCalculators.py:185 msgid "" "How thick the copper growth is intended to be.\n" "In microns." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6382 +#: flatcamGUI/FlatCAMGUI.py:6361 msgid "Transform Tool Options" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6387 +#: flatcamGUI/FlatCAMGUI.py:6366 msgid "" "Various transformations that can be applied\n" "on a FlatCAM object." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6397 +#: flatcamGUI/FlatCAMGUI.py:6376 msgid "Rotate Angle:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6399 +#: flatcamGUI/FlatCAMGUI.py:6378 msgid "Angle for rotation. In degrees." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6406 +#: flatcamGUI/FlatCAMGUI.py:6385 msgid "Skew_X angle:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6408 +#: flatcamGUI/FlatCAMGUI.py:6387 msgid "Angle for Skew/Shear on X axis. In degrees." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6415 +#: flatcamGUI/FlatCAMGUI.py:6394 msgid "Skew_Y angle:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6417 +#: flatcamGUI/FlatCAMGUI.py:6396 msgid "Angle for Skew/Shear on Y axis. In degrees." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6424 +#: flatcamGUI/FlatCAMGUI.py:6403 msgid "Scale_X factor:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6426 +#: flatcamGUI/FlatCAMGUI.py:6405 msgid "Factor for scaling on X axis." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6433 +#: flatcamGUI/FlatCAMGUI.py:6412 msgid "Scale_Y factor:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6435 +#: flatcamGUI/FlatCAMGUI.py:6414 msgid "Factor for scaling on Y axis." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6443 +#: flatcamGUI/FlatCAMGUI.py:6422 msgid "" "Scale the selected object(s)\n" "using the Scale_X factor for both axis." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6451 flatcamTools/ToolTransform.py:210 +#: flatcamGUI/FlatCAMGUI.py:6430 flatcamTools/ToolTransform.py:210 msgid "" "Scale the selected object(s)\n" "using the origin reference when checked,\n" @@ -7038,27 +7040,27 @@ msgid "" "of the selected objects when unchecked." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6460 +#: flatcamGUI/FlatCAMGUI.py:6439 msgid "Offset_X val:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6462 +#: flatcamGUI/FlatCAMGUI.py:6441 msgid "Distance to offset on X axis. In current units." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6469 +#: flatcamGUI/FlatCAMGUI.py:6448 msgid "Offset_Y val:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6471 +#: flatcamGUI/FlatCAMGUI.py:6450 msgid "Distance to offset on Y axis. In current units." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6477 +#: flatcamGUI/FlatCAMGUI.py:6456 msgid "Mirror Reference" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6479 flatcamTools/ToolTransform.py:314 +#: flatcamGUI/FlatCAMGUI.py:6458 flatcamTools/ToolTransform.py:314 msgid "" "Flip the selected object(s)\n" "around the point in Point Entry Field.\n" @@ -7071,174 +7073,174 @@ msgid "" "Point Entry field and click Flip on X(Y)" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6490 +#: flatcamGUI/FlatCAMGUI.py:6469 msgid " Mirror Ref. Point:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6492 flatcamTools/ToolTransform.py:327 +#: flatcamGUI/FlatCAMGUI.py:6471 flatcamTools/ToolTransform.py:327 msgid "" "Coordinates in format (x, y) used as reference for mirroring.\n" "The 'x' in (x, y) will be used when using Flip on X and\n" "the 'y' in (x, y) will be used when using Flip on Y and" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6509 +#: flatcamGUI/FlatCAMGUI.py:6488 msgid "SolderPaste Tool Options" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6514 +#: flatcamGUI/FlatCAMGUI.py:6493 msgid "" "A tool to create GCode for dispensing\n" "solder paste onto a PCB." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6525 +#: flatcamGUI/FlatCAMGUI.py:6504 msgid "Diameters of nozzle tools, separated by ','" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6532 +#: flatcamGUI/FlatCAMGUI.py:6511 msgid "New Nozzle Dia:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6534 flatcamTools/ToolSolderPaste.py:103 +#: flatcamGUI/FlatCAMGUI.py:6513 flatcamTools/ToolSolderPaste.py:103 msgid "Diameter for the new Nozzle tool to add in the Tool Table" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6542 flatcamTools/ToolSolderPaste.py:166 +#: flatcamGUI/FlatCAMGUI.py:6521 flatcamTools/ToolSolderPaste.py:166 msgid "Z Dispense Start:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6544 flatcamTools/ToolSolderPaste.py:168 +#: flatcamGUI/FlatCAMGUI.py:6523 flatcamTools/ToolSolderPaste.py:168 msgid "The height (Z) when solder paste dispensing starts." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6551 flatcamTools/ToolSolderPaste.py:174 +#: flatcamGUI/FlatCAMGUI.py:6530 flatcamTools/ToolSolderPaste.py:174 msgid "Z Dispense:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6553 flatcamTools/ToolSolderPaste.py:176 +#: flatcamGUI/FlatCAMGUI.py:6532 flatcamTools/ToolSolderPaste.py:176 msgid "The height (Z) when doing solder paste dispensing." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6560 flatcamTools/ToolSolderPaste.py:183 +#: flatcamGUI/FlatCAMGUI.py:6539 flatcamTools/ToolSolderPaste.py:183 msgid "Z Dispense Stop:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6562 flatcamTools/ToolSolderPaste.py:185 +#: flatcamGUI/FlatCAMGUI.py:6541 flatcamTools/ToolSolderPaste.py:185 msgid "The height (Z) when solder paste dispensing stops." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6569 flatcamTools/ToolSolderPaste.py:191 +#: flatcamGUI/FlatCAMGUI.py:6548 flatcamTools/ToolSolderPaste.py:191 msgid "Z Travel:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6571 flatcamTools/ToolSolderPaste.py:193 +#: flatcamGUI/FlatCAMGUI.py:6550 flatcamTools/ToolSolderPaste.py:193 msgid "" "The height (Z) for travel between pads\n" "(without dispensing solder paste)." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6579 flatcamTools/ToolSolderPaste.py:200 +#: flatcamGUI/FlatCAMGUI.py:6558 flatcamTools/ToolSolderPaste.py:200 msgid "Z Toolchange:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6581 flatcamTools/ToolSolderPaste.py:202 +#: flatcamGUI/FlatCAMGUI.py:6560 flatcamTools/ToolSolderPaste.py:202 msgid "The height (Z) for tool (nozzle) change." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6588 flatcamTools/ToolSolderPaste.py:208 +#: flatcamGUI/FlatCAMGUI.py:6567 flatcamTools/ToolSolderPaste.py:208 msgid "XY Toolchange:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6590 flatcamTools/ToolSolderPaste.py:210 +#: flatcamGUI/FlatCAMGUI.py:6569 flatcamTools/ToolSolderPaste.py:210 msgid "" "The X,Y location for tool (nozzle) change.\n" "The format is (x, y) where x and y are real numbers." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6598 flatcamTools/ToolSolderPaste.py:217 +#: flatcamGUI/FlatCAMGUI.py:6577 flatcamTools/ToolSolderPaste.py:217 msgid "Feedrate X-Y:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6600 flatcamTools/ToolSolderPaste.py:219 +#: flatcamGUI/FlatCAMGUI.py:6579 flatcamTools/ToolSolderPaste.py:219 msgid "Feedrate (speed) while moving on the X-Y plane." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6607 flatcamTools/ToolSolderPaste.py:225 +#: flatcamGUI/FlatCAMGUI.py:6586 flatcamTools/ToolSolderPaste.py:225 msgid "Feedrate Z:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6609 flatcamTools/ToolSolderPaste.py:227 +#: flatcamGUI/FlatCAMGUI.py:6588 flatcamTools/ToolSolderPaste.py:227 msgid "" "Feedrate (speed) while moving vertically\n" "(on Z plane)." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6617 flatcamTools/ToolSolderPaste.py:234 +#: flatcamGUI/FlatCAMGUI.py:6596 flatcamTools/ToolSolderPaste.py:234 msgid "Feedrate Z Dispense:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6619 +#: flatcamGUI/FlatCAMGUI.py:6598 msgid "" "Feedrate (speed) while moving up vertically\n" "to Dispense position (on Z plane)." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6627 flatcamTools/ToolSolderPaste.py:243 +#: flatcamGUI/FlatCAMGUI.py:6606 flatcamTools/ToolSolderPaste.py:243 msgid "Spindle Speed FWD:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6629 flatcamTools/ToolSolderPaste.py:245 +#: flatcamGUI/FlatCAMGUI.py:6608 flatcamTools/ToolSolderPaste.py:245 msgid "" "The dispenser speed while pushing solder paste\n" "through the dispenser nozzle." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6637 flatcamTools/ToolSolderPaste.py:252 +#: flatcamGUI/FlatCAMGUI.py:6616 flatcamTools/ToolSolderPaste.py:252 msgid "Dwell FWD:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6639 flatcamTools/ToolSolderPaste.py:254 +#: flatcamGUI/FlatCAMGUI.py:6618 flatcamTools/ToolSolderPaste.py:254 msgid "Pause after solder dispensing." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6646 flatcamTools/ToolSolderPaste.py:260 +#: flatcamGUI/FlatCAMGUI.py:6625 flatcamTools/ToolSolderPaste.py:260 msgid "Spindle Speed REV:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6648 flatcamTools/ToolSolderPaste.py:262 +#: flatcamGUI/FlatCAMGUI.py:6627 flatcamTools/ToolSolderPaste.py:262 msgid "" "The dispenser speed while retracting solder paste\n" "through the dispenser nozzle." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6656 flatcamTools/ToolSolderPaste.py:269 +#: flatcamGUI/FlatCAMGUI.py:6635 flatcamTools/ToolSolderPaste.py:269 msgid "Dwell REV:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6658 flatcamTools/ToolSolderPaste.py:271 +#: flatcamGUI/FlatCAMGUI.py:6637 flatcamTools/ToolSolderPaste.py:271 msgid "" "Pause after solder paste dispenser retracted,\n" "to allow pressure equilibrium." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6665 flatcamTools/ToolSolderPaste.py:277 +#: flatcamGUI/FlatCAMGUI.py:6644 flatcamTools/ToolSolderPaste.py:277 msgid "PostProcessors:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6667 flatcamTools/ToolSolderPaste.py:279 +#: flatcamGUI/FlatCAMGUI.py:6646 flatcamTools/ToolSolderPaste.py:279 msgid "Files that control the GCode generation." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6697 flatcamGUI/FlatCAMGUI.py:6703 +#: flatcamGUI/FlatCAMGUI.py:6676 flatcamGUI/FlatCAMGUI.py:6682 msgid "Idle." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6727 +#: flatcamGUI/FlatCAMGUI.py:6706 msgid "Application started ..." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6728 +#: flatcamGUI/FlatCAMGUI.py:6707 msgid "Hello!" msgstr "" @@ -9139,11 +9141,11 @@ msgstr "" msgid "[ERROR_NOTCL] PaintTool.paint_poly() --> %s" msgstr "" -#: flatcamTools/ToolPaint.py:970 flatcamTools/ToolPaint.py:1263 +#: flatcamTools/ToolPaint.py:970 flatcamTools/ToolPaint.py:1267 msgid "Polygon Paint started ..." msgstr "" -#: flatcamTools/ToolPaint.py:1119 flatcamTools/ToolPaint.py:1208 +#: flatcamTools/ToolPaint.py:1123 flatcamTools/ToolPaint.py:1212 #, python-format msgid "" "[ERROR] Could not do Paint All. Try a different combination of parameters. " @@ -9151,7 +9153,7 @@ msgid "" "%s" msgstr "" -#: flatcamTools/ToolPaint.py:1143 +#: flatcamTools/ToolPaint.py:1147 msgid "" "[ERROR] There is no Painting Geometry in the file.\n" "Usually it means that the tool diameter is too big for the painted " @@ -9159,11 +9161,11 @@ msgid "" "Change the painting parameters and try again." msgstr "" -#: flatcamTools/ToolPaint.py:1152 +#: flatcamTools/ToolPaint.py:1156 msgid "[success] Paint All Done." msgstr "" -#: flatcamTools/ToolPaint.py:1238 +#: flatcamTools/ToolPaint.py:1242 msgid "" "[ERROR_NOTCL] There is no Painting Geometry in the file.\n" "Usually it means that the tool diameter is too big for the painted " @@ -9171,7 +9173,7 @@ msgid "" "Change the painting parameters and try again." msgstr "" -#: flatcamTools/ToolPaint.py:1247 +#: flatcamTools/ToolPaint.py:1251 msgid "[success] Paint All with Rest-Machining done." msgstr "" From f866df7964d227b58a781cd5d11981fbbebf1c2f Mon Sep 17 00:00:00 2001 From: camellan Date: Sun, 23 Jun 2019 21:09:50 +0400 Subject: [PATCH 3/5] Update strings.mo --- locale/ru/LC_MESSAGES/strings.mo | Bin 169348 -> 167779 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/locale/ru/LC_MESSAGES/strings.mo b/locale/ru/LC_MESSAGES/strings.mo index 5efa1776e2b5a2ad1e7b08c8f8e83035092ca6fa..098987e7a8443841a307a4078c207cbf9eb233af 100644 GIT binary patch delta 27937 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 delta 29004 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 From 775c4a23f072b4dcbd4a295dd7c022312ce938ee Mon Sep 17 00:00:00 2001 From: camellan Date: Wed, 26 Jun 2019 01:27:43 +0400 Subject: [PATCH 4/5] fix conflict --- locale/ru/LC_MESSAGES/strings.mo | Bin 167779 -> 169814 bytes locale/ru/LC_MESSAGES/strings.po | 79 ++++++++++++++++--------------- 2 files changed, 42 insertions(+), 37 deletions(-) diff --git a/locale/ru/LC_MESSAGES/strings.mo b/locale/ru/LC_MESSAGES/strings.mo index 098987e7a8443841a307a4078c207cbf9eb233af..eb0efe3037da95b4c27fb9c1c2f42fc25fa92c33 100644 GIT binary patch delta 29241 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 diff --git a/locale/ru/LC_MESSAGES/strings.po b/locale/ru/LC_MESSAGES/strings.po index f96bf852..82c5385d 100644 --- a/locale/ru/LC_MESSAGES/strings.po +++ b/locale/ru/LC_MESSAGES/strings.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "POT-Creation-Date: 2019-06-22 23:56+0300\n" -"PO-Revision-Date: 2019-06-23 21:04+0400\n" +"PO-Revision-Date: 2019-06-25 14:08+0400\n" "Last-Translator: Andrey Kultyapov \n" "Language-Team: \n" "Language: ru\n" @@ -1682,7 +1682,7 @@ msgstr "" "отрицательное. Проверьте полученный CNC code (Gcode и т. д.)." #: camlib.py:5153 camlib.py:5649 camlib.py:5912 -#, fuzzy, python-format +#, python-format msgid "" "[WARNING] The Cut Z parameter is zero. There will be no cut, skipping %s file" msgstr "" @@ -2202,7 +2202,7 @@ msgid "Overlap Rate:" msgstr "Частота перекрытия:" #: flatcamEditors/FlatCAMGeoEditor.py:445 flatcamTools/ToolPaint.py:162 -#, fuzzy, python-format +#, python-format msgid "" "How much (fraction) of the tool width to overlap each tool pass.\n" "Example:\n" @@ -3650,12 +3650,13 @@ msgstr "" "отверстие и повторите попытку." #: flatcamEditors/FlatCAMGrbEditor.py:4444 -#, fuzzy, python-format -#| msgid "[ERROR_NOTCL] Failed to open %s" +#, python-format msgid "" "[ERROR_NOTCL] Failed.\n" "%s" -msgstr "[ERROR_NOTCL] Не удалось открыть %s" +msgstr "" +"[ERROR_NOTCL] Ошибка.\n" +"%s" #: flatcamEditors/FlatCAMGrbEditor.py:4461 msgid "" @@ -3828,6 +3829,9 @@ msgid "" "the coordinates format, the file units and zeros\n" "are set in Preferences -> Excellon Export." msgstr "" +"Экспортирует объект Excellon как файл Excellon,\n" +"формат координат, единицы измерения и нули\n" +"устанавливаются в Настройки -> Экспорт Excellon." #: flatcamGUI/FlatCAMGUI.py:186 msgid "Export &Gerber ..." @@ -3839,6 +3843,9 @@ msgid "" "the coordinates format, the file units and zeros\n" "are set in Preferences -> Gerber Export." msgstr "" +"Экспортирует объект Gerber как файл Gerber,\n" +"формат координат, единицы измерения и нули\n" +"устанавливается в Настройки -> Экспорт Gerber." #: flatcamGUI/FlatCAMGUI.py:199 msgid "Save &Defaults" @@ -3918,6 +3925,8 @@ msgid "" "Will convert a Geometry object from single_geometry type\n" "to a multi_geometry type." msgstr "" +"Преобразует объект Geometry из типа single_geometry\n" +"в multi_geometry.." #: flatcamGUI/FlatCAMGUI.py:272 msgid "Convert Multi to SingleGeo" @@ -3928,6 +3937,8 @@ msgid "" "Will convert a Geometry object from multi_geometry type\n" "to a single_geometry type." msgstr "" +"Преобразует объект Geometry из типа multi_geometry\n" +"в single_geometry.." #: flatcamGUI/FlatCAMGUI.py:280 msgid "Convert Any to Geo" @@ -4359,7 +4370,7 @@ msgstr "Панелизация" #: flatcamGUI/FlatCAMGUI.py:647 flatcamGUI/FlatCAMGUI.py:1870 #: flatcamTools/ToolFilm.py:204 msgid "Film Tool" -msgstr "" +msgstr "Плёнка" #: flatcamGUI/FlatCAMGUI.py:648 flatcamGUI/FlatCAMGUI.py:1872 #: flatcamTools/ToolSolderPaste.py:451 @@ -5458,7 +5469,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:3353 msgid "Wk. format:" -msgstr "" +msgstr "Формат обработчика:" #: flatcamGUI/FlatCAMGUI.py:3355 msgid "" @@ -5808,7 +5819,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:3875 msgid "Workers number:" -msgstr "" +msgstr "Обработчики:" #: flatcamGUI/FlatCAMGUI.py:3877 flatcamGUI/FlatCAMGUI.py:3886 msgid "" @@ -6706,10 +6717,8 @@ msgid "" msgstr "" #: flatcamGUI/FlatCAMGUI.py:5159 -#, fuzzy -#| msgid "Tools" msgid "Tools:" -msgstr "Инструменты" +msgstr "Инструменты:" #: flatcamGUI/FlatCAMGUI.py:5165 flatcamGUI/FlatCAMGUI.py:5774 msgid "Diameters of the cutting tools, separated by ','" @@ -7054,7 +7063,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:5728 flatcamGUI/ObjectUI.py:1569 msgid "tooldia = tool diameter" -msgstr "" +msgstr "tooldia = диаметр инструмента" #: flatcamGUI/FlatCAMGUI.py:5729 flatcamGUI/ObjectUI.py:1570 msgid "t_drills = for Excellon, total number of drills" @@ -7074,15 +7083,15 @@ msgstr "z_toolchange = координата Z для смены инструме #: flatcamGUI/FlatCAMGUI.py:5733 msgid "z_cut = Z depth for the cut" -msgstr "" +msgstr "z_cut = Z глубина распила" #: flatcamGUI/FlatCAMGUI.py:5734 msgid "z_move = Z height for travel" -msgstr "" +msgstr "z_move = высота Z для перемещения" #: flatcamGUI/FlatCAMGUI.py:5735 flatcamGUI/ObjectUI.py:1576 msgid "z_depthpercut = the step value for multidepth cut" -msgstr "" +msgstr "z_depthpercut = значение шага для мультипроходного разреза" #: flatcamGUI/FlatCAMGUI.py:5736 flatcamGUI/ObjectUI.py:1577 msgid "spindlesspeed = the value for the spindle speed" @@ -7098,7 +7107,7 @@ msgstr "Очистка меди" #: flatcamGUI/FlatCAMGUI.py:5772 flatcamGUI/FlatCAMGUI.py:6502 msgid "Tools dia:" -msgstr "" +msgstr "Диам. инстр.:" #: flatcamGUI/FlatCAMGUI.py:5782 flatcamTools/ToolNonCopperClear.py:167 #, python-format @@ -7413,7 +7422,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:6239 flatcamTools/ToolPanelize.py:204 msgid "Width (DX):" -msgstr "" +msgstr "Ширина (DX):" #: flatcamGUI/FlatCAMGUI.py:6241 flatcamTools/ToolPanelize.py:206 msgid "" @@ -7657,7 +7666,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:6521 flatcamTools/ToolSolderPaste.py:166 msgid "Z Dispense Start:" -msgstr "" +msgstr "Z начала нанесения:" #: flatcamGUI/FlatCAMGUI.py:6523 flatcamTools/ToolSolderPaste.py:168 msgid "The height (Z) when solder paste dispensing starts." @@ -7665,7 +7674,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:6530 flatcamTools/ToolSolderPaste.py:174 msgid "Z Dispense:" -msgstr "" +msgstr "Z нанесения:" #: flatcamGUI/FlatCAMGUI.py:6532 flatcamTools/ToolSolderPaste.py:176 msgid "The height (Z) when doing solder paste dispensing." @@ -7673,7 +7682,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:6539 flatcamTools/ToolSolderPaste.py:183 msgid "Z Dispense Stop:" -msgstr "" +msgstr "Z конца нанесения:" #: flatcamGUI/FlatCAMGUI.py:6541 flatcamTools/ToolSolderPaste.py:185 msgid "The height (Z) when solder paste dispensing stops." @@ -7681,7 +7690,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:6548 flatcamTools/ToolSolderPaste.py:191 msgid "Z Travel:" -msgstr "" +msgstr "Z перемещения:" #: flatcamGUI/FlatCAMGUI.py:6550 flatcamTools/ToolSolderPaste.py:193 msgid "" @@ -8109,6 +8118,8 @@ msgid "" "Z-axis position (height) for\n" "the last move." msgstr "" +"Положение оси Z (высота) для\n" +"следующего прохода." #: flatcamGUI/ObjectUI.py:654 msgid "Feedrate (Plunge):" @@ -8274,7 +8285,7 @@ msgstr "" #: flatcamGUI/ObjectUI.py:949 msgid "Tool Offset:" -msgstr "" +msgstr "Смещение:" #: flatcamGUI/ObjectUI.py:952 msgid "" @@ -8438,9 +8449,8 @@ msgid "CNC Job Object" msgstr "Объект программы для ЧПУ" #: flatcamGUI/ObjectUI.py:1353 -#, fuzzy msgid "Plot kind:" -msgstr "Plot kind:" +msgstr "" #: flatcamGUI/ObjectUI.py:1369 msgid "Display Annotation:" @@ -8520,11 +8530,11 @@ msgstr "" #: flatcamGUI/ObjectUI.py:1574 msgid "z_cut = depth where to cut" -msgstr "" +msgstr "z_cut = глубина резания" #: flatcamGUI/ObjectUI.py:1575 msgid "z_move = height where to travel" -msgstr "" +msgstr "z_move = высота перемещения" #: flatcamGUI/ObjectUI.py:1593 msgid "View CNC Code" @@ -8827,7 +8837,6 @@ msgstr "" #: flatcamTools/ToolCutOut.py:370 flatcamTools/ToolCutOut.py:533 #: flatcamTools/ToolCutOut.py:777 -#, fuzzy msgid "" "[WARNING_NOTCL] Margin value is missing or wrong format. Add it and retry." msgstr "" @@ -8989,7 +8998,6 @@ msgid "Alignment Drill Coordinates:" msgstr "Координаты выравнивающего отверстия:" #: flatcamTools/ToolDblSided.py:195 -#, fuzzy msgid "" "Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For " "each set of (x, y) coordinates\n" @@ -8999,13 +9007,6 @@ msgid "" "- one drill in mirror position over the axis selected above in the 'Mirror " "Axis'." msgstr "" -"Выравнивающие отверстия (x1, y1), (x2, y2), ... на одной стороне оси " -"зеркала. Для каждого набора (x, y) координат \n" -"здесь, пара упражнений будет создана:\n" -"\\ п\n" -"- одно упражнение по координатам с поля \\ n\n" -"- одно сверление в положении зеркала над осью, выбранной выше в «Оси " -"зеркала»." #: flatcamTools/ToolDblSided.py:210 msgid "" @@ -9949,7 +9950,7 @@ msgstr "" #: flatcamTools/ToolPcbWizard.py:116 msgid "Zeros supp.:" -msgstr "" +msgstr "Подд. нулей:" #: flatcamTools/ToolPcbWizard.py:118 msgid "" @@ -10342,6 +10343,10 @@ msgid "" "Can be used to remove the overlapping silkscreen\n" "over the soldermask." msgstr "" +"Удалит область, занятую вычитателем\n" +"Gerber от целевого Gerber.\n" +"Может использоваться для удаления перекрывающей шелкографии\n" +"над маской припоя." #: flatcamTools/ToolSub.py:101 msgid "Geometry Objects" From fade7a73c1c39939cf92bfbe344db605d4e0f66b Mon Sep 17 00:00:00 2001 From: camellan Date: Wed, 26 Jun 2019 02:10:18 +0400 Subject: [PATCH 5/5] Update Russian translate --- locale/ru/LC_MESSAGES/strings.mo | Bin 169814 -> 206317 bytes locale/ru/LC_MESSAGES/strings.po | 1363 +----------------------------- 2 files changed, 38 insertions(+), 1325 deletions(-) diff --git a/locale/ru/LC_MESSAGES/strings.mo b/locale/ru/LC_MESSAGES/strings.mo index eb0efe3037da95b4c27fb9c1c2f42fc25fa92c33..6f5d2964d92c434c4faeecf57314106af823f4d0 100644 GIT binary patch delta 60523 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 RO}o?Y-yJRUEk3&9zXAHz5`+K% delta 29513 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 diff --git a/locale/ru/LC_MESSAGES/strings.po b/locale/ru/LC_MESSAGES/strings.po index 4fa477c2..2d0a4048 100644 --- a/locale/ru/LC_MESSAGES/strings.po +++ b/locale/ru/LC_MESSAGES/strings.po @@ -5,39 +5,21 @@ msgid "" msgstr "" "Project-Id-Version: \n" -<<<<<<< HEAD -"POT-Creation-Date: 2019-06-22 23:56+0300\n" -"PO-Revision-Date: 2019-06-25 14:08+0400\n" -======= -"POT-Creation-Date: 2019-06-22 23:57+0300\n" -"PO-Revision-Date: 2019-06-23 00:03+0300\n" ->>>>>>> remotes/jpcgt/flatcam/Beta +"POT-Creation-Date: \n" +"PO-Revision-Date: \n" "Last-Translator: Andrey Kultyapov \n" "Language-Team: \n" -"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: pygettext.py 1.5\n" -<<<<<<< HEAD +"Language: ru\n" "X-Generator: Poedit 2.2.3\n" -======= -"X-Generator: Poedit 2.2.1\n" ->>>>>>> remotes/jpcgt/flatcam/Beta -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Poedit-Basepath: ../../..\n" -"X-Poedit-SearchPath-0: .\n" -"X-Poedit-SearchPathExcluded-0: build\n" -"X-Poedit-SearchPathExcluded-1: doc\n" -"X-Poedit-SearchPathExcluded-2: tests\n" #: FlatCAMApp.py:925 msgid "[ERROR] Could not find the Language files. The App strings are missing." msgstr "" "[ERROR] Не удалось найти языковые файлы. Строки приложения отсутствуют." -<<<<<<< HEAD #: FlatCAMApp.py:1836 msgid "" "(Type help to get started)\n" @@ -46,8 +28,6 @@ msgstr "" "(Введите help для начала работы.)\n" "\n" -======= ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMApp.py:2018 ObjectCollection.py:80 flatcamTools/ToolImage.py:213 #: flatcamTools/ToolPcbWizard.py:299 flatcamTools/ToolPcbWizard.py:322 msgid "Open cancelled." @@ -123,7 +103,7 @@ msgstr "[ERROR] Не удаётся загрузить файл настроек #: FlatCAMApp.py:2762 msgid "[ERROR] Failed to parse defaults file." -msgstr "[ERRORr] Не удаётся прочитать файл настроек." +msgstr "[ERROR] Не удаётся прочитать файл настроек." #: FlatCAMApp.py:2783 FlatCAMApp.py:2787 msgid "Import FlatCAM Preferences" @@ -458,20 +438,11 @@ msgstr "[success] Наклон по оси X выполнен." #: FlatCAMApp.py:5277 msgid "[WARNING_NOTCL] No object selected to Skew/Shear on Y axis." -<<<<<<< HEAD msgstr "[WARNING_NOTCL] Нет объекта, выбранного для наклона/сдвига по оси Y." #: FlatCAMApp.py:5298 msgid "[success] Skew on Y axis done." msgstr "[success] Наклон по оси Y выполнен." -======= -msgstr "" -"[WARNING_NOTCL] Нет объекта, выбранного для перекоса / сдвига по оси Y." - -#: FlatCAMApp.py:5298 -msgid "[success] Skew on Y axis done." -msgstr "[success] Наклон по оси Y сделано." ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMApp.py:5368 msgid "Grid On/Off" @@ -534,19 +505,11 @@ msgstr "[success] Значение сетки удалено ..." #: FlatCAMApp.py:5444 msgid "[WARNING_NOTCL] Delete Grid value cancelled ..." -<<<<<<< HEAD msgstr "[WARNING_NOTCL] Удаление значения сетки отменено ..." #: FlatCAMApp.py:5483 msgid "[WARNING_NOTCL] No object selected to copy it's name" msgstr "[WARNING_NOTCL] Нет объекта, выбранного для копирования его имени" -======= -msgstr "[WARNING_NOTCL] Удалить отмененное значение сетки ..." - -#: FlatCAMApp.py:5483 -msgid "[WARNING_NOTCL] No object selected to copy it's name" -msgstr "[WARNING_NOTCL] Нет объекта, выбранного для копирования его имени." ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMApp.py:5487 msgid "Name copied on clipboard ..." @@ -554,11 +517,7 @@ msgstr "Имя скопировано в буфер обмена ..." #: FlatCAMApp.py:5529 flatcamEditors/FlatCAMGrbEditor.py:3901 msgid "[success] Coordinates copied to clipboard." -<<<<<<< HEAD msgstr "[success] Координаты скопированы в буфер обмена." -======= -msgstr "[success] Координаты копируются в буфер обмена." ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMApp.py:5785 FlatCAMApp.py:5788 FlatCAMApp.py:5791 FlatCAMApp.py:5794 #: FlatCAMApp.py:5809 FlatCAMApp.py:5812 FlatCAMApp.py:5815 FlatCAMApp.py:5818 @@ -590,11 +549,7 @@ msgstr "Открыть Gerber" #: FlatCAMApp.py:6129 msgid "[WARNING_NOTCL] Open Gerber cancelled." -<<<<<<< HEAD msgstr "[WARNING_NOTCL] Открытие Gerber отменено." -======= -msgstr "[WARNING_NOTCL] Открытый Gerber отменен." ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMApp.py:6150 FlatCAMApp.py:6153 flatcamGUI/FlatCAMGUI.py:609 #: flatcamGUI/FlatCAMGUI.py:1833 @@ -603,11 +558,7 @@ msgstr "Открыть Excellon" #: FlatCAMApp.py:6158 msgid "[WARNING_NOTCL] Open Excellon cancelled." -<<<<<<< HEAD msgstr "[WARNING_NOTCL] Открытие Excellon отменено." -======= -msgstr "[WARNING_NOTCL] Открытый Excellon отменен." ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMApp.py:6180 FlatCAMApp.py:6183 msgid "Open G-Code" @@ -615,11 +566,7 @@ msgstr "Открыть G-Code" #: FlatCAMApp.py:6188 msgid "[WARNING_NOTCL] Open G-Code cancelled." -<<<<<<< HEAD msgstr "[WARNING_NOTCL] Открытие G-Code отменено." -======= -msgstr "[WARNING_NOTCL] Открытый G-код отменен." ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMApp.py:6206 FlatCAMApp.py:6209 msgid "Open Project" @@ -627,11 +574,7 @@ msgstr "Открыть проект" #: FlatCAMApp.py:6217 msgid "[WARNING_NOTCL] Open Project cancelled." -<<<<<<< HEAD msgstr "[WARNING_NOTCL] Открытие проекта отменено." -======= -msgstr "[WARNING_NOTCL] Открытый проект отменен." ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMApp.py:6236 FlatCAMApp.py:6239 msgid "Open Configuration File" @@ -653,12 +596,7 @@ msgstr "Выберите объект Geometry для экспорта" #: FlatCAMApp.py:6270 msgid "[ERROR_NOTCL] Only Geometry, Gerber and CNCJob objects can be used." msgstr "" -<<<<<<< HEAD "[ERROR_NOTCL] Можно использовать только объекты Geometry, Gerber и CNCJob." -======= -"[ERROR_NOTCL] Можно использовать только объекты Geometry, Gerber и CNC " -"работа." ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMApp.py:6283 FlatCAMApp.py:6287 msgid "Export SVG" @@ -666,20 +604,12 @@ msgstr "Экспорт SVG" #: FlatCAMApp.py:6292 msgid "[WARNING_NOTCL] Export SVG cancelled." -<<<<<<< HEAD msgstr "[WARNING_NOTCL] Экспорт SVG отменён." -======= -msgstr "[WARNING_NOTCL] Экспорт SVG отменен." ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMApp.py:6311 msgid "[[WARNING_NOTCL]] Data must be a 3D array with last dimension 3 or 4" msgstr "" -<<<<<<< HEAD "[WARNING_NOTCL] Данные должны быть 3D массивом с последним размером 3 или 4" -======= -"[[WARNING_NOTCL]] Данные должны быть 3D массивом с последним размером 3 или 4" ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMApp.py:6317 FlatCAMApp.py:6321 msgid "Export PNG Image" @@ -700,13 +630,8 @@ msgstr "" msgid "" "[ERROR_NOTCL] Failed. Only Gerber objects can be saved as Gerber files..." msgstr "" -<<<<<<< HEAD "[ERROR_NOTCL] Ошибка. Только объекты Gerber могут быть сохранены как файлы " "Gerber..." -======= -"[ERROR_NOTCL] Неудачный. Только объекты Gerber могут быть сохранены как " -"файлы Gerber..." ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMApp.py:6362 msgid "Save Gerber source file" @@ -714,35 +639,22 @@ msgstr "Сохранить исходный файл Gerber" #: FlatCAMApp.py:6367 msgid "[WARNING_NOTCL] Save Gerber source file cancelled." -<<<<<<< HEAD msgstr "[WARNING_NOTCL] Сохранение исходного кода файла Gerber отменено." -======= -msgstr "[WARNING_NOTCL] Сохранить исходный файл Gerber отменено." ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMApp.py:6386 msgid "" "[WARNING_NOTCL] No object selected. Please select an Excellon object to " "export." msgstr "" -<<<<<<< HEAD "[WARNING_NOTCL] Объект не выбран. Пожалуйста, выберите Excellon объект для " -======= -"[WARNING_NOTCL] Объект не выбран. Пожалуйста, выберите отличный объект для " ->>>>>>> remotes/jpcgt/flatcam/Beta "экспорта." #: FlatCAMApp.py:6391 FlatCAMApp.py:6432 msgid "" "[ERROR_NOTCL] Failed. Only Excellon objects can be saved as Excellon files..." msgstr "" -<<<<<<< HEAD "[ERROR_NOTCL] Ошибка. Только объекты Excellon могут быть сохранены как файлы " "Excellon..." -======= -"[ERROR_NOTCL] Неудачный. Только объекты Excellon могут быть сохранены как " -"файлы Excellon..." ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMApp.py:6399 FlatCAMApp.py:6403 msgid "Save Excellon source file" @@ -750,23 +662,13 @@ msgstr "Сохранить исходный файл Excellon" #: FlatCAMApp.py:6408 msgid "[WARNING_NOTCL] Saving Excellon source file cancelled." -<<<<<<< HEAD msgstr "[WARNING_NOTCL] Сохранение исходного кода файла Excellon отменено." -======= -msgstr "[WARNING_NOTCL] Сохранение исходного файла Excellon отменено." ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMApp.py:6427 msgid "" "[WARNING_NOTCL] No object selected. Please Select an Excellon object to " "export." msgstr "" -<<<<<<< HEAD -"[WARNING_NOTCL] Объект не выбран. Пожалуйста, выберите Excellon объект для " -======= -"[WARNING_NOTCL] Объект не выбран. Пожалуйста, выберите отличный объект для " ->>>>>>> remotes/jpcgt/flatcam/Beta -"экспорта." #: FlatCAMApp.py:6440 FlatCAMApp.py:6444 msgid "Export Excellon" @@ -789,19 +691,11 @@ msgstr "Экспорт Gerber" #: FlatCAMApp.py:6490 msgid "[WARNING_NOTCL] Export Gerber cancelled." -<<<<<<< HEAD msgstr "[WARNING_NOTCL] Экспорт Gerber отменен." #: FlatCAMApp.py:6520 msgid "[ERROR_NOTCL] Only Geometry objects can be used." msgstr "[ERROR_NOTCL] Можно использовать только объекты Geometry." -======= -msgstr "[WARNING_NOTCL] Экспорт Гербера отменен." - -#: FlatCAMApp.py:6520 -msgid "[ERROR_NOTCL] Only Geometry objects can be used." -msgstr "[ERROR_NOTCL] Можно использовать только геометрические объекты." ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMApp.py:6534 FlatCAMApp.py:6538 msgid "Export DXF" @@ -817,11 +711,7 @@ msgstr "Импорт SVG" #: FlatCAMApp.py:6576 msgid "[WARNING_NOTCL] Open SVG cancelled." -<<<<<<< HEAD msgstr "[WARNING_NOTCL] Открытие SVG отменено." -======= -msgstr "[WARNING_NOTCL] Открытие СВГ отменен." ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMApp.py:6595 FlatCAMApp.py:6599 msgid "Import DXF" @@ -841,23 +731,14 @@ msgid "" "[WARNING_NOTCL] Select an Gerber or Excellon file to view it's source file." msgstr "" "[WARNING_NOTCL] Выберите файл Gerber или Excellon для просмотра исходного " -<<<<<<< HEAD -"кода файла." -======= -"файла." ->>>>>>> remotes/jpcgt/flatcam/Beta +"кода." #: FlatCAMApp.py:6653 msgid "" "[WARNING_NOTCL] There is no selected object for which to see it's source " "file code." msgstr "" -<<<<<<< HEAD "[WARNING_NOTCL] Нет выбранного объекта, для просмотра исходного кода файла." -======= -"[WARNING_NOTCL] Нет выбранного объекта, для которого можно увидеть исходный " -"код файла." ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMApp.py:6661 msgid "Source Editor" @@ -866,11 +747,7 @@ msgstr "Редактор исходного кода" #: FlatCAMApp.py:6671 #, python-format msgid "[ERROR]App.on_view_source() -->%s" -<<<<<<< HEAD msgstr "[ERROR]App.on_view_source() -->%s" -======= -msgstr "[ERROR] Приложение.on_view_source() -->%s" ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMApp.py:6683 FlatCAMApp.py:7825 FlatCAMObj.py:5588 #: flatcamTools/ToolSolderPaste.py:1278 @@ -931,11 +808,7 @@ msgstr "Открыть сценарий TCL" #: FlatCAMApp.py:6732 msgid "[WARNING_NOTCL] Open TCL script cancelled." -<<<<<<< HEAD msgstr "[WARNING_NOTCL] Открытие сценария отменено." -======= -msgstr "[WARNING_NOTCL] Открытый сценарий TCL отменен." ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMApp.py:6744 #, python-format @@ -948,11 +821,7 @@ msgstr "Запустить сценарий TCL" #: FlatCAMApp.py:6781 msgid "[WARNING_NOTCL] Run TCL script cancelled." -<<<<<<< HEAD msgstr "[WARNING_NOTCL] Запуск сценария отменен." -======= -msgstr "[WARNING_NOTCL] Запуск скрипта отменен." ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMApp.py:6831 FlatCAMApp.py:6835 msgid "Save Project As ..." @@ -965,11 +834,7 @@ msgstr "{l_save}/Project_{date}" #: FlatCAMApp.py:6840 msgid "[WARNING_NOTCL] Save Project cancelled." -<<<<<<< HEAD msgstr "[WARNING_NOTCL] Сохранение проекта отменено." -======= -msgstr "[WARNING_NOTCL] Сохранить проект отменен." ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMApp.py:6884 msgid "Exporting SVG" @@ -978,20 +843,12 @@ msgstr "Экспортирование SVG" #: FlatCAMApp.py:6918 FlatCAMApp.py:7024 FlatCAMApp.py:7139 #, python-format msgid "[success] SVG file exported to %s" -<<<<<<< HEAD msgstr "[success] Файл SVG экспортируется в %s" -======= -msgstr "[success] SVG-файл экспортируется в %s" ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMApp.py:6949 FlatCAMApp.py:7070 #, python-format msgid "[WARNING_NOTCL] No object Box. Using instead %s" -<<<<<<< HEAD msgstr "[WARNING_NOTCL] Нет объекта Box. Используйте взамен %s" -======= -msgstr "[WARNING_NOTCL] Нет поле объекта. Использование вместо %s" ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMApp.py:7027 FlatCAMApp.py:7142 msgid "Generating Film ... Please wait." @@ -1013,11 +870,7 @@ msgstr "[ERROR_NOTCL] Не удалось экспортировать файл #: FlatCAMApp.py:7407 #, python-format msgid "[success] Gerber file exported to %s" -<<<<<<< HEAD msgstr "[success] Файл Gerber экспортируется в %s" -======= -msgstr "[success] Gerber файл экспортируется в %s" ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMApp.py:7414 msgid "Exporting Gerber" @@ -1038,11 +891,7 @@ msgstr "Экспорт DXF" #: FlatCAMApp.py:7477 FlatCAMApp.py:7484 msgid "[[WARNING_NOTCL]] Could not export DXF file." -<<<<<<< HEAD msgstr "[WARNING_NOTCL] Не удалось экспортировать файл DXF." -======= -msgstr "[[WARNING_NOTCL]] Не удалось экспортировать файл DXF." ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMApp.py:7504 FlatCAMApp.py:7546 FlatCAMApp.py:7590 msgid "" @@ -1050,11 +899,7 @@ msgid "" "Gerber are supported" msgstr "" "[ERROR_NOTCL] В качестве параметра выбран не поддерживаемый тип. " -<<<<<<< HEAD "Поддерживаются только Geometry и Gerber" -======= -"Поддерживаются только Geometry и Gerber." ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMApp.py:7514 msgid "Importing SVG" @@ -1102,11 +947,7 @@ msgstr "Открытие Gerber" #: FlatCAMApp.py:7678 msgid "[ERROR_NOTCL] Open Gerber failed. Probable not a Gerber file." -<<<<<<< HEAD msgstr "[ERROR_NOTCL] Открыть Gerber не удалось. Вероятно это не Gerber файл." -======= -msgstr "[ERROR_NOTCL] Открыть Gerber не удалось. Вероятно, не файл Gerber." ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMApp.py:7711 flatcamTools/ToolPcbWizard.py:421 msgid "[ERROR_NOTCL] This is not Excellon file." @@ -1119,22 +960,14 @@ msgstr "[ERROR_NOTCL] Не удается открыть файл: %s" #: FlatCAMApp.py:7719 flatcamTools/ToolPcbWizard.py:429 msgid "[ERROR_NOTCL] An internal error has occurred. See shell.\n" -<<<<<<< HEAD msgstr "" "[ERROR_NOTCL] Произошла внутренняя ошибка. Смотрите коммандную строку.\n" -======= -msgstr "[ERROR_NOTCL] Произошла внутренняя ошибка. Вижу оболочки.\n" ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMApp.py:7732 flatcamTools/ToolPDF.py:262 #: flatcamTools/ToolPcbWizard.py:442 #, python-format msgid "[ERROR_NOTCL] No geometry found in file: %s" -<<<<<<< HEAD msgstr "[ERROR_NOTCL] Геометрия не найдена в файле: %s" -======= -msgstr "[ERROR_NOTCL] Geometry не найдена в файле: %s" ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMApp.py:7735 msgid "Opening Excellon." @@ -1143,29 +976,17 @@ msgstr "Открытие Excellon." #: FlatCAMApp.py:7741 msgid "[ERROR_NOTCL] Open Excellon file failed. Probable not an Excellon file." msgstr "" -<<<<<<< HEAD "[ERROR_NOTCL] Не удалось открыть файл Excellon. Вероятно это не файл " "Excellon." -======= -"[ERROR_NOTCL] Не удалось открыть файл Excellon. Вероятно, не файл Excellon." ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMApp.py:7778 #, python-format msgid "[ERROR_NOTCL] Failed to open %s" -<<<<<<< HEAD msgstr "[ERROR_NOTCL] Не удалось открыть %s" #: FlatCAMApp.py:7788 msgid "[ERROR_NOTCL] This is not GCODE" msgstr "[ERROR_NOTCL] Это не GCODE" -======= -msgstr "[ERROR_NOTCL] Не удалось открыть: %s" - -#: FlatCAMApp.py:7788 -msgid "[ERROR_NOTCL] This is not GCODE" -msgstr "[ERROR_NOTCL] Это не G-код" ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMApp.py:7794 msgid "Opening G-Code." @@ -1177,16 +998,9 @@ msgid "" " Attempting to create a FlatCAM CNCJob Object from G-Code file failed during " "processing" msgstr "" -<<<<<<< HEAD "[ERROR_NOTCL] Не удалось создать объект CNCJob. Вероятно это не файл GCode.\n" " Попытка создать объект Flatcam CNCJob из файла G-кода не удалась во время " "обработки" -======= -"[ERROR_NOTCL] Не удалось создать объект задания ЧПУ. Вероятно, не файл G-" -"кода.\n" -"Попытка создать объект задания ЧПУ с плоским кулачком из файла G-кода не " -"удалась во время обработки" ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMApp.py:7842 #, python-format @@ -1196,11 +1010,7 @@ msgstr "[ERROR_NOTCL] Не удалось открыть файл конфигу #: FlatCAMApp.py:7868 FlatCAMApp.py:7885 #, python-format msgid "[ERROR_NOTCL] Failed to open project file: %s" -<<<<<<< HEAD msgstr "[ERROR_NOTCL] Не удалось открыть файл проекта: %s" -======= -msgstr "[ERROR_NOTCL] Не удалось открыть файл проекта : %s" ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMApp.py:7908 #, python-format @@ -1229,19 +1039,11 @@ msgstr "Показывает список команд." #: FlatCAMApp.py:8222 msgid "[ERROR_NOTCL] Failed to load recent item list." -<<<<<<< HEAD msgstr "[ERROR_NOTCL] Не удалось загрузить список недавних файлов." #: FlatCAMApp.py:8229 msgid "[ERROR_NOTCL] Failed to parse recent item list." msgstr "[ERROR_NOTCL] Не удалось прочитать список недавних файлов." -======= -msgstr "[ERROR_NOTCL] Не удалось загрузить список номенклатуры." - -#: FlatCAMApp.py:8229 -msgid "[ERROR_NOTCL] Failed to parse recent item list." -msgstr "[ERROR_NOTCL] Не удалось проанализировать список последних элементов." ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMApp.py:8273 msgid "Clear Recent files" @@ -1349,22 +1151,12 @@ msgstr "" #: FlatCAMApp.py:8404 msgid "[WARNING_NOTCL] Failed checking for latest version. Could not connect." msgstr "" -<<<<<<< HEAD "[WARNING_NOTCL] Не удалось проверить обновление программы. Отсутствует " "интернет подключение ." #: FlatCAMApp.py:8411 msgid "[ERROR_NOTCL] Could not parse information about latest version." msgstr "[ERROR_NOTCL] Не удается обработать информацию о последней версии." -======= -"[WARNING_NOTCL] Не удалось проверить последнюю версию. Не удалось " -"подключиться." - -#: FlatCAMApp.py:8411 -msgid "[ERROR_NOTCL] Could not parse information about latest version." -msgstr "" -"[ERROR_NOTCL] Не удалось проанализировать информацию о последней версии." ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMApp.py:8421 msgid "[success] FlatCAM is up to date!" @@ -1392,11 +1184,7 @@ msgstr "[success] Все участки отключены." #: FlatCAMApp.py:8454 msgid "[success] All non selected plots disabled." -<<<<<<< HEAD msgstr "[success] Все невыбранные участки отключены.." -======= -msgstr "[success] Все невыбранные участки отключены." ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMApp.py:8460 msgid "[success] All plots enabled." @@ -1421,54 +1209,31 @@ msgstr "Сохранение проекта FlatCAM" #: FlatCAMApp.py:8552 FlatCAMApp.py:8583 #, python-format msgid "[success] Project saved to: %s" -<<<<<<< HEAD msgstr "[success] Проект сохранён в: %s" -======= -msgstr "[success] Проект, сохраненный на: %s" ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMApp.py:8570 #, python-format msgid "[ERROR_NOTCL] Failed to verify project file: %s. Retry to save it." msgstr "" -"[ERROR_NOTCL] Не удалось проверить файл проекта: %s. Повторите попытку " -<<<<<<< HEAD -"сохранения." -======= -"сохранить его." ->>>>>>> remotes/jpcgt/flatcam/Beta +"[ERROR_NOTCL] Не удалось проверить файл проекта: %s. Повторите попытку." #: FlatCAMApp.py:8577 #, python-format msgid "[ERROR_NOTCL] Failed to parse saved project file: %s. Retry to save it." msgstr "" -<<<<<<< HEAD "[ERROR_NOTCL] Не удалось проанализировать сохраняемый файл проекта: %s. " "Повторите попытку сохранения." -======= -"[ERROR_NOTCL] Не удалось проанализировать сохраненный файл проекта: %s. " -"Повторите попытку сохранить его." ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMApp.py:8585 #, python-format msgid "[ERROR_NOTCL] Failed to save project file: %s. Retry to save it." msgstr "" -"[ERROR_NOTCL] Не удалось сохранить файл проекта: %s. Повторите попытку " -<<<<<<< HEAD -"сохранения." -======= -"сохранить его." ->>>>>>> remotes/jpcgt/flatcam/Beta +"[ERROR_NOTCL] Не удалось сохранить файл проекта: %s. Повторите попытку." #: FlatCAMObj.py:207 #, python-brace-format msgid "[success] Name changed from {old} to {new}" -<<<<<<< HEAD msgstr "[success] Имя изменено с {old} на {new}" -======= -msgstr "[success] Имя изменено с {old} K {new}" ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMObj.py:553 FlatCAMObj.py:2034 FlatCAMObj.py:3300 FlatCAMObj.py:5485 msgid "Basic" @@ -1481,19 +1246,11 @@ msgstr "Расширенный" #: FlatCAMObj.py:927 FlatCAMObj.py:982 #, python-format msgid "[success] Isolation geometry created: %s" -<<<<<<< HEAD msgstr "[success] Создана геометрия изоляции: %s" #: FlatCAMObj.py:1161 msgid "Plotting Apertures" msgstr "Создание отверстия" -======= -msgstr "[success] Созданная геометрия изоляции: %s" - -#: FlatCAMObj.py:1161 -msgid "Plotting Apertures" -msgstr "Построение Отверстия" ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMObj.py:1877 flatcamEditors/FlatCAMExcEditor.py:1368 msgid "Total Drills" @@ -1522,34 +1279,19 @@ msgstr "Всего пазов" #: flatcamTools/ToolPanelize.py:435 flatcamTools/ToolPanelize.py:446 #: flatcamTools/ToolSolderPaste.py:756 flatcamTools/ToolSolderPaste.py:827 msgid "[ERROR_NOTCL] Wrong value format entered, use a number." -<<<<<<< HEAD msgstr "[ERROR_NOTCL] Неправильно введен формат значения, используйте числа." -======= -msgstr "[ERROR_NOTCL] Неправильно введен формат значения, используйте число." ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMObj.py:2330 FlatCAMObj.py:2422 FlatCAMObj.py:2545 msgid "" "[ERROR_NOTCL] Please select one or more tools from the list and try again." msgstr "" -<<<<<<< HEAD "[ERROR_NOTCL] Пожалуйста, выберите один или несколько инструментов из списка " "и попробуйте еще раз." -======= -"[ERROR_NOTCL] Выберите один или несколько инструментов из списка и повторите " -"попытку." ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMObj.py:2337 msgid "" "[ERROR_NOTCL] Milling tool for DRILLS is larger than hole size. Cancelled." -<<<<<<< HEAD msgstr "[ERROR_NOTCL] Сверло больше, чем размер отверстия. Отмена." -======= -msgstr "" -"[ERROR_NOTCL] Фрезерный инструмент для сверл больше размера отверстия. " -"Отмененный." ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMObj.py:2351 FlatCAMObj.py:2446 FlatCAMObj.py:2565 msgid "Tool_nr" @@ -1575,13 +1317,8 @@ msgstr "№ паза" msgid "" "[ERROR_NOTCL] Milling tool for SLOTS is larger than hole size. Cancelled." msgstr "" -<<<<<<< HEAD "[ERROR_NOTCL] Инструмент для прорезания пазов больше, чем размер отверстия. " "Отмена." -======= -"[ERROR_NOTCL] Фрезерный инструмент для пазов больше размера отверстия. " -"Отмененный." ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMObj.py:2607 FlatCAMObj.py:4304 FlatCAMObj.py:4520 FlatCAMObj.py:4837 msgid "" @@ -1596,13 +1333,8 @@ msgid "" "[ERROR_NOTCL] Wrong value format for self.defaults[\"feedrate_probe\"] or " "self.options[\"feedrate_probe\"]" msgstr "" -<<<<<<< HEAD "[ERROR_NOTCL] Неправильный формат значения для self.defaults[\"feedrate_probe" "\"] или self.options[\"feedrate_probe\"]" -======= -"[ERROR_NOTCL] Неправильный формат значения для self.defaults " -"[\"feedrate_probe\"] или self.options[\"feedrate_probe\"]" ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMObj.py:2651 FlatCAMObj.py:4725 FlatCAMObj.py:4730 FlatCAMObj.py:4880 msgid "Generating CNC Code" @@ -1615,15 +1347,9 @@ msgid "" "format (x, y) \n" "but now there is only one value, not two. " msgstr "" -<<<<<<< HEAD "[ERROR] Поле X, Y смены инструмента в Правка - > Параметры должно быть в " "формате (x, y)\n" "но теперь есть только одно значение, а не два. " -======= -"[ERROR] Поле изменение инструмента X, Y в Edit - > Preferences должно быть в " -"формате (x, y) \n" -"но теперь есть только одна ценность, а не две." ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMObj.py:2997 FlatCAMObj.py:3925 FlatCAMObj.py:3926 FlatCAMObj.py:3935 msgid "Iso" @@ -1646,13 +1372,8 @@ msgstr "Копировать" #: FlatCAMObj.py:3509 msgid "[ERROR_NOTCL] Please enter the desired tool diameter in Float format." msgstr "" -<<<<<<< HEAD "[ERROR_NOTCL] Пожалуйста, введите нужный диаметр инструмента в формате числа " "с плавающей точкой." -======= -"[ERROR_NOTCL] Пожалуйста, введите нужный инструмент диаметр в формате с " -"Float точкой." ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMObj.py:3584 msgid "[success] Tool added in Tool Table." @@ -1666,7 +1387,6 @@ msgstr "" #: FlatCAMObj.py:3619 FlatCAMObj.py:3629 msgid "[WARNING_NOTCL] Failed. Select a tool to copy." -<<<<<<< HEAD msgstr "[WARNING_NOTCL] Ошибка. Выберите инструмент для копирования." #: FlatCAMObj.py:3658 @@ -1684,56 +1404,23 @@ msgstr "[WARNING_NOTCL] Ошибка. Выберите инструмент дл #: FlatCAMObj.py:3756 msgid "[success] Tool was deleted in Tool Table." msgstr "[success] Инструмент был удален из таблицы инструментов." -======= -msgstr "[WARNING_NOTCL] Неудачный. Выберите инструмент для копирования." - -#: FlatCAMObj.py:3658 -msgid "[success] Tool was copied in Tool Table." -msgstr "[success] Инструмент был скопирован в таблицу инструментов." - -#: FlatCAMObj.py:3691 -msgid "[success] Tool was edited in Tool Table." -msgstr "[success] Инструмент был отредактирован в таблице инструментов." - -#: FlatCAMObj.py:3722 FlatCAMObj.py:3732 -msgid "[WARNING_NOTCL] Failed. Select a tool to delete." -msgstr "[WARNING_NOTCL] Неудачный. Выберите инструмент для удаления." - -#: FlatCAMObj.py:3756 -msgid "[success] Tool was deleted in Tool Table." -msgstr "[success] Инструмент был удален в таблице инструментов." ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMObj.py:4185 #, python-format msgid "" "[WARNING_NOTCL] This Geometry can't be processed because it is %s geometry." msgstr "" -<<<<<<< HEAD "[WARNING_NOTCL] Эта Geometry не может быть обработана, так как это %s " -======= -"[WARNING_NOTCL] Эта геометрия не может быть обработана, так как это %s " ->>>>>>> remotes/jpcgt/flatcam/Beta "геометрия." #: FlatCAMObj.py:4202 msgid "[ERROR_NOTCL] Wrong Tool Dia value format entered, use a number." msgstr "" -<<<<<<< HEAD "[ERROR_NOTCL] Неверный формат ввода диаметра инструмента, используйте цифры." #: FlatCAMObj.py:4229 msgid "[ERROR_NOTCL] Failed. No tool selected in the tool table ..." msgstr "[ERROR_NOTCL] Ошибка. Инструмент не выбран в таблице инструментов ..." -======= -"[ERROR_NOTCL] Неправильный инструмент формата ДВД с введенным значением, " -"использовать количество." - -#: FlatCAMObj.py:4229 -msgid "[ERROR_NOTCL] Failed. No tool selected in the tool table ..." -msgstr "" -"[ERROR_NOTCL] Неудачный. Инструмент не выбран в таблице инструментов ..." ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMObj.py:4267 #, python-format @@ -1745,62 +1432,35 @@ msgid "" "[WARNING] Tool Offset is selected in Tool Table but no value is provided.\n" "Add a Tool Offset or change the Offset Type." msgstr "" -<<<<<<< HEAD "[WARNING] Смещение выбранного в таблице инструментов инструмента не " "указано.\n" -======= -"[WARNING] Смещение инструмента выбрано в таблице инструментов, но значение " -"не указано.\n" ->>>>>>> remotes/jpcgt/flatcam/Beta "Добавьте смещение инструмента или измените тип смещения." #: FlatCAMObj.py:4544 flatcamTools/ToolSolderPaste.py:1107 #: flatcamTools/ToolSolderPaste.py:1162 msgid "[ERROR_NOTCL] Cancelled. Empty file, it has no geometry..." -<<<<<<< HEAD msgstr "[ERROR_NOTCL] Отмена. Пустой файл, он не имеет геометрии..." -======= -msgstr "[ERROR_NOTCL] Отмененный. Пустой файл, он не имеет геометрии..." ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMObj.py:4913 FlatCAMObj.py:4923 camlib.py:3348 camlib.py:3357 msgid "[ERROR_NOTCL] Scale factor has to be a number: integer or float." msgstr "" -<<<<<<< HEAD "[ERROR_NOTCL] Коэффициент масштабирования должен быть числом: целочисленным " "или с плавающей запятой." #: FlatCAMObj.py:4961 msgid "[success] Geometry Scale done." msgstr "[success] Масштабирование Geometry выполнено." -======= -"[ERROR_NOTCL] Масштабный коэффициент должен быть числом: целочисленным или " -"плавающим." - -#: FlatCAMObj.py:4961 -msgid "[success] Geometry Scale done." -msgstr "[success] Геометрический масштаб выполнен." ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMObj.py:4978 camlib.py:3426 msgid "" "[ERROR_NOTCL] An (x,y) pair of values are needed. Probable you entered only " "one value in the Offset field." msgstr "" -"[ERROR_NOTCL] Необходима пара значений (x,y). Возможно, вы ввели только одно " -<<<<<<< HEAD -"значение в поле \"Смещение\"." +"[ERROR_NOTCL] Необходима пара значений (x,y). Возможно, вы ввели только одно." #: FlatCAMObj.py:4998 msgid "[success] Geometry Offset done." msgstr "[success] Смещение Geometry выполнено." -======= -"значение в поле смещение." - -#: FlatCAMObj.py:4998 -msgid "[success] Geometry Offset done." -msgstr "[success] Смещение геометрии сделано." ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMObj.py:5553 FlatCAMObj.py:5558 flatcamTools/ToolSolderPaste.py:1361 msgid "Export Machine Code ..." @@ -1808,20 +1468,12 @@ msgstr "Экспорт GCode ..." #: FlatCAMObj.py:5564 flatcamTools/ToolSolderPaste.py:1364 msgid "[WARNING_NOTCL] Export Machine Code cancelled ..." -<<<<<<< HEAD msgstr "[WARNING_NOTCL] Экспорт GCode отменен ..." -======= -msgstr "[WARNING_NOTCL] Экспорт машинного кода отменен ..." ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMObj.py:5577 #, python-format msgid "[success] Machine Code file saved to: %s" -<<<<<<< HEAD msgstr "[success] Файл GCode сохранён в: %s" -======= -msgstr "[success] Файл машинного кода, сохраненный в: %s" ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMObj.py:5599 #, python-format @@ -1834,28 +1486,18 @@ msgid "" "[WARNING_NOTCL] This CNCJob object can't be processed because it is a %s " "CNCJob object." msgstr "" -<<<<<<< HEAD "[WARNING_NOTCL] CNCJob объект %s не может быть обработан, так как он " "является объектом CNCJob." #: FlatCAMObj.py:5769 msgid "[ERROR_NOTCL] G-code does not have a units code: either G20 or G21" msgstr "[ERROR_NOTCL] G-code не имеет кода единиц измерения: G20 или G21" -======= -"[WARNING_NOTCL] Этот объект CNCJob не может быть обработан, так как он " -"является объектом %s CNCJob." - -#: FlatCAMObj.py:5769 -msgid "[ERROR_NOTCL] G-code does not have a units code: either G20 or G21" -msgstr "[ERROR_NOTCL] G-код не имеет кода единиц измерения: G20 или G21" ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMObj.py:5782 msgid "" "[ERROR_NOTCL] Cancelled. The Toolchange Custom code is enabled but it's " "empty." msgstr "" -<<<<<<< HEAD "[ERROR_NOTCL] Отмена. Пользовательский код смены инструмента включен, но он " "пуст." @@ -1863,14 +1505,6 @@ msgstr "" msgid "[success] Toolchange G-code was replaced by a custom code." msgstr "" "[success] G-code смены инструмента был заменен на пользовательский код." -======= -"[ERROR_NOTCL] Отмененный. Пользовательский код изменения инструмента " -"включен, но он пуст." - -#: FlatCAMObj.py:5789 -msgid "[success] Toolchange G-code was replaced by a custom code." -msgstr "[success] Инструмент смены G-кода был заменен на пользовательский код." ->>>>>>> remotes/jpcgt/flatcam/Beta #: FlatCAMObj.py:5804 flatcamTools/ToolSolderPaste.py:1390 msgid "[WARNING_NOTCL] No such file or directory" @@ -1881,20 +1515,12 @@ msgid "" "[WARNING_NOTCL] The used postprocessor file has to have in it's name: " "'toolchange_custom'" msgstr "" -<<<<<<< HEAD "[WARNING_NOTCL] Используемый файл постпроцессора должен иметь имя: " -======= -"[WARNING_NOTCL] Используемый файл постпроцессора должен иметь в своем имени: " ->>>>>>> remotes/jpcgt/flatcam/Beta "'toolchange_custom'" #: FlatCAMObj.py:5842 msgid "[ERROR] There is no postprocessor file." -<<<<<<< HEAD msgstr "[ERROR] Это не файл постпроцессора." -======= -msgstr "[ERROR] Нет файла постпроцессора." ->>>>>>> remotes/jpcgt/flatcam/Beta #: ObjectCollection.py:420 #, python-brace-format @@ -1909,7 +1535,6 @@ msgstr "[ERROR] Причина ошибки: %s" #: camlib.py:197 msgid "[ERROR_NOTCL] self.solid_geometry is neither BaseGeometry or list." msgstr "" -<<<<<<< HEAD "[ERROR_NOTCL] self.solid_geometry не является базовой геометрией или списком." #: camlib.py:1391 @@ -1919,18 +1544,6 @@ msgstr "[success] Объект был отзеркалирован ..." #: camlib.py:1393 msgid "[ERROR_NOTCL] Failed to mirror. No object selected" msgstr "[ERROR_NOTCL] Не удалось зеркалировать. Объект не выбран" -======= -"[ERROR_NOTCL] self.solid_geometry не является ни базовой геометрией, ни " -"списком." - -#: camlib.py:1391 -msgid "[success] Object was mirrored ..." -msgstr "[success] Объект был зеркальным ..." - -#: camlib.py:1393 -msgid "[ERROR_NOTCL] Failed to mirror. No object selected" -msgstr "[ERROR_NOTCL] Не удалось зеркало. Объект не выбран." ->>>>>>> remotes/jpcgt/flatcam/Beta #: camlib.py:1429 msgid "[success] Object was rotated ..." @@ -1938,7 +1551,6 @@ msgstr "[success] Объект был повернут ..." #: camlib.py:1431 msgid "[ERROR_NOTCL] Failed to rotate. No object selected" -<<<<<<< HEAD msgstr "[ERROR_NOTCL] Не удалось повернуть. Объект не выбран" #: camlib.py:1465 @@ -1948,17 +1560,6 @@ msgstr "[success] Объект был наклонён ..." #: camlib.py:1467 msgid "[ERROR_NOTCL] Failed to skew. No object selected" msgstr "[ERROR_NOTCL] Не удалось наклонить. Объект не выбран" -======= -msgstr "[ERROR_NOTCL] Не удалось повернуть. Объект не выбран." - -#: camlib.py:1465 -msgid "[success] Object was skewed ..." -msgstr "[success] Объект был перекошен ..." - -#: camlib.py:1467 -msgid "[ERROR_NOTCL] Failed to skew. No object selected" -msgstr "[ERROR_NOTCL] Не удалось перекос. Объект не выбран." ->>>>>>> remotes/jpcgt/flatcam/Beta #: camlib.py:2728 camlib.py:2813 #, python-format @@ -1967,11 +1568,7 @@ msgstr "[WARNING] Координаты отсутствуют, строка иг #: camlib.py:2729 camlib.py:2814 msgid "[WARNING_NOTCL] GERBER file might be CORRUPT. Check the file !!!" -<<<<<<< HEAD msgstr "[WARNING_NOTCL] Файл GERBER может быть поврежден. Проверьте файл !!!" -======= -msgstr "[WARNING_NOTCL] Файл Gerber может быть поврежден. Проверьте файл !!!" ->>>>>>> remotes/jpcgt/flatcam/Beta #: camlib.py:2778 #, python-format @@ -1979,13 +1576,8 @@ msgid "" "[ERROR] Region does not have enough points. File will be processed but there " "are parser errors. Line number: %s" msgstr "" -<<<<<<< HEAD "[ERROR] Региону не хватает точек. Файл будет обработан, но есть ошибки " "разбора. Номер строки: %s" -======= -"[ERROR] Региону не хватает очков. Файл будет обработан, но есть ошибки " -"парсера. Номер строки: %s" ->>>>>>> remotes/jpcgt/flatcam/Beta #: camlib.py:3170 #, python-format @@ -1993,16 +1585,11 @@ msgid "" "[ERROR]Gerber Parser ERROR.\n" "%s:" msgstr "" -<<<<<<< HEAD "[ERROR]Ошибка разбора Gerber.\n" -======= -"[ERROR] Ошибка парсера Gerber.\n" ->>>>>>> remotes/jpcgt/flatcam/Beta "%s:" #: camlib.py:3394 msgid "[success] Gerber Scale done." -<<<<<<< HEAD msgstr "[success] Масштабирование Gerber выполнено." #: camlib.py:3459 @@ -2020,34 +1607,11 @@ msgstr "[success] Наклон Gerber выполнен." #: camlib.py:3597 msgid "[success] Gerber Rotate done." msgstr "[success] Вращение Gerber выполнено." -======= -msgstr "[success] Масштаб Gerber сделан." - -#: camlib.py:3459 -msgid "[success] Gerber Offset done." -msgstr "[success] Gerber зачет сделал." - -#: camlib.py:3513 -msgid "[success] Gerber Mirror done." -msgstr "[success] Gerber зеркало сделано." - -#: camlib.py:3559 -msgid "[success] Gerber Skew done." -msgstr "[success] Gerber перекос сделал." - -#: camlib.py:3597 -msgid "[success] Gerber Rotate done." -msgstr "[success] Gerber поворот сделано." ->>>>>>> remotes/jpcgt/flatcam/Beta #: camlib.py:3878 #, python-format msgid "[ERROR_NOTCL] This is GCODE mark: %s" -<<<<<<< HEAD msgstr "[ERROR_NOTCL] Это метка GCODE: %s" -======= -msgstr "[ERROR_NOTCL] Это метка G-кода: %s" ->>>>>>> remotes/jpcgt/flatcam/Beta #: camlib.py:3993 #, python-format @@ -2059,11 +1623,7 @@ msgid "" "The user needs to edit the resulting Excellon object and change the " "diameters to reflect the real diameters." msgstr "" -<<<<<<< HEAD "[WARNING] Нет информации о диаметре инструмента. Смотрите коммандную строку\n" -======= -"[WARNING] Нет информации о диаметре инструмента. См. Шелл.\n" ->>>>>>> remotes/jpcgt/flatcam/Beta "Событие изменения инструмента: T%s было найдено, но в файле Excellon нет " "информации о диаметрах инструмента, поэтому приложение попытается загрузить " "его с помощью некоторых \"поддельных\" диаметров.\n" @@ -2076,13 +1636,8 @@ msgid "" "[ERROR] Excellon Parser error.\n" "Parsing Failed. Line {l_nr}: {line}\n" msgstr "" -<<<<<<< HEAD "[ERROR] Ошибка разбора Excellon.\n" "Ошибка разбора. Строка {l_nr}: {line}\n" -======= -"[ERROR] Ошибка парсера Excellon.\n" -"Разбор Не Удался. Линия {l_nr}: {line}\n" ->>>>>>> remotes/jpcgt/flatcam/Beta #: camlib.py:4537 msgid "" @@ -2090,24 +1645,14 @@ msgid "" "not having a tool associated.\n" "Check the resulting GCode." msgstr "" -<<<<<<< HEAD "[WARNING] Excellon.create_geometry() ->расположение отверстия было пропущено " "из-за отсутствия связанного инструмента.\n" "Проверьте полученный GCode." -======= -"[WARNING] Excellon.create_geometry() -> расположение сверла было пропущено " -"из-за отсутствия связанного инструмента.\n" -"Проверьте полученный код." ->>>>>>> remotes/jpcgt/flatcam/Beta #: camlib.py:5076 #, python-format msgid "[ERROR] There is no such parameter: %s" -<<<<<<< HEAD msgstr "[ERROR] Такого параметра нет: %s" -======= -msgstr "[ERROR] Нет такого параметра: %s" ->>>>>>> remotes/jpcgt/flatcam/Beta #: camlib.py:5146 msgid "" @@ -2117,39 +1662,23 @@ msgid "" "therefore the app will convert the value to negative. Check the resulting " "CNC code (Gcode etc)." msgstr "" -<<<<<<< HEAD "[WARNING] Параметр \"Глубина резания\" имеет положительное значение. " "Значение глубины, которую нужно просверлить в материале.\n" "Параметр \"Глубина резания\" должен иметь отрицательное значение, " "предполагая, что это опечатка, приложение преобразует значение в " "отрицательное. Проверьте полученный CNC code (Gcode и т. д.)." -======= -"[WARNING] Параметр Cut Z имеет положительное значение. Значение глубины, " -"котор нужно просверлить в материал.\n" -"Параметр Cut Z должен иметь отрицательное значение, предполагая, что это " -"опечатка, поэтому приложение преобразует значение в отрицательное. Проверьте " -"полученный код ЧПУ (G-код и т. д.)." ->>>>>>> remotes/jpcgt/flatcam/Beta #: camlib.py:5153 camlib.py:5649 camlib.py:5912 #, python-format msgid "" "[WARNING] The Cut Z parameter is zero. There will be no cut, skipping %s file" msgstr "" -<<<<<<< HEAD "[WARNING] Параметр \"Глубина резания\" равен нулю. Обрезки не будет , " "пропускается файл %s" #: camlib.py:5382 camlib.py:5479 camlib.py:5537 msgid "[ERROR_NOTCL] The loaded Excellon file has no drills ..." msgstr "[ERROR_NOTCL] загруженный файл Excellon не имеет отверстий ..." -======= -"[WARNING] Параметр Cut Z равен нулю. Не будет вырезать, пропустив файл %s " - -#: camlib.py:5382 camlib.py:5479 camlib.py:5537 -msgid "[ERROR_NOTCL] The loaded Excellon file has no drills ..." -msgstr "[ERROR_NOTCL] Загруженный файл Excellon не имеет сверл ..." ->>>>>>> remotes/jpcgt/flatcam/Beta #: camlib.py:5484 msgid "[ERROR_NOTCL] Wrong optimization type selected." @@ -2160,13 +1689,8 @@ msgid "" "[ERROR_NOTCL] Cut_Z parameter is None or zero. Most likely a bad " "combinations of other parameters." msgstr "" -<<<<<<< HEAD "[ERROR_NOTCL] Параметр \"Глубина резания\" равен None или пуст. Скорее всего " "неудачное сочетание других параметров." -======= -"[ERROR_NOTCL] Параметр Cut_Z равен None или zero. Скорее всего неудачное " -"сочетание других параметров." ->>>>>>> remotes/jpcgt/flatcam/Beta #: camlib.py:5642 camlib.py:5905 msgid "" @@ -2176,7 +1700,6 @@ msgid "" "therefore the app will convert the value to negative.Check the resulting CNC " "code (Gcode etc)." msgstr "" -<<<<<<< HEAD "[WARNING] Параметр \"Глубина резания\" имеет положительное значение. " "Значение глубины, которую нужно просверлить в материале.\n" "Параметр \"Глубина резания\" должен иметь отрицательное значение, " @@ -2186,17 +1709,6 @@ msgstr "" #: camlib.py:5654 camlib.py:5917 msgid "[ERROR_NOTCL] Travel Z parameter is None or zero." msgstr "[ERROR_NOTCL] Параметр \"Отвод по Z\" равен None или пуст." -======= -"[WARNING] Параметр Cut Z имеет положительное значение. Значение глубины, " -"котор нужно отрезать в материал.\n" -"Параметр Cut Z должен иметь отрицательное значение, предполагая, что это " -"опечатка, поэтому приложение преобразует значение в отрицательное." -"Регистрация результирующего кода с ЧПУ (G-код и т. д.)." - -#: camlib.py:5654 camlib.py:5917 -msgid "[ERROR_NOTCL] Travel Z parameter is None or zero." -msgstr "[ERROR_NOTCL] Параметр Travel Z-это ничего или ноль." ->>>>>>> remotes/jpcgt/flatcam/Beta #: camlib.py:5658 camlib.py:5921 msgid "" @@ -2206,51 +1718,31 @@ msgid "" "therefore the app will convert the value to positive.Check the resulting CNC " "code (Gcode etc)." msgstr "" -<<<<<<< HEAD "[WARNING] Параметр \"Отвод по Z\" имеет отрицательное значение. Это значение " "высоты для перемещения между разрезами.\n" "Параметр \"Отвод по Z\" должен иметь положительное значение. Предполагая, " "что это опечатка, приложение преобразует значение в положительное. Проверьте " "полученный CNC code (Gcode и т. д.)." -======= -"[WARNING] Параметр Travel Z имеет отрицательное значение. Это значение " -"высоты для перемещения между разрезами.\n" -"Параметр Z Travel должен иметь положительное значение, предполагая, что это " -"опечатка, поэтому приложение преобразует значение в положительное." -"Регистрация результирующего кода с ЧПУ (G-код и т. д.)." ->>>>>>> remotes/jpcgt/flatcam/Beta #: camlib.py:5665 camlib.py:5928 #, python-format msgid "" "[WARNING] The Z Travel parameter is zero. This is dangerous, skipping %s file" -<<<<<<< HEAD msgstr "" "[WARNING] Параметр \"Отвод по Z\" равен нулю. Это опасно, пропускается файл " "%s" -======= -msgstr "[WARNING] Параметр Travel Z равен нулю. Это опасно, пропуская %s файл" ->>>>>>> remotes/jpcgt/flatcam/Beta #: camlib.py:5795 #, python-format msgid "[ERROR]Expected a Geometry, got %s" -<<<<<<< HEAD msgstr "[ERROR]Ожидалась Geometry, получили %s" -======= -msgstr "[ERROR] Ожидал Geometry, получил %некоторые" ->>>>>>> remotes/jpcgt/flatcam/Beta #: camlib.py:5801 msgid "" "[ERROR_NOTCL] Trying to generate a CNC Job from a Geometry object without " "solid_geometry." msgstr "" -<<<<<<< HEAD "[ERROR_NOTCL] Попытка создать CNC Job из объекта Geometry без solid_geometry." -======= -"[ERROR_NOTCL] Попытка создать ЧПУJob из объекта геометрии без solid_geometry." ->>>>>>> remotes/jpcgt/flatcam/Beta #: camlib.py:5840 msgid "" @@ -2258,15 +1750,9 @@ msgid "" "current_geometry.\n" "Raise the value (in module) and try again." msgstr "" -<<<<<<< HEAD "[ERROR_NOTCL] Значение смещения инструмента слишком отрицательно для " "current_geometry.\n" "Увеличте значение (в модуле) и повторите попытку." -======= -"[ERROR_NOTCL]Значение смещения инструмента слишком отрицательно для " -"current_geometry.\n" -"Поднимите значение (в модуле) и повторите попытку." ->>>>>>> remotes/jpcgt/flatcam/Beta #: camlib.py:6052 msgid "[ERROR_NOTCL] There is no tool data in the SolderPaste geometry." @@ -2280,11 +1766,7 @@ msgstr "Нажмите для размещения ..." #: flatcamEditors/FlatCAMExcEditor.py:46 msgid "[WARNING_NOTCL] To add a drill first select a tool" -<<<<<<< HEAD msgstr "[WARNING_NOTCL] Чтобы добавить отверстие, сначала выберите инструмент" -======= -msgstr "[WARNING_NOTCL] Чтобы добавить сверло, сначала выберите инструмент" ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMExcEditor.py:62 flatcamEditors/FlatCAMExcEditor.py:165 #: flatcamEditors/FlatCAMExcEditor.py:450 @@ -2302,20 +1784,12 @@ msgstr "[success] Готово. Сверло добавлено." #: flatcamEditors/FlatCAMExcEditor.py:150 msgid "[WARNING_NOTCL] To add an Drill Array first select a tool in Tool Table" msgstr "" -<<<<<<< HEAD "[WARNING_NOTCL] Чтобы добавить массив отверстий, сначала выберите инструмент " -======= -"[WARNING_NOTCL] Чтобы добавить массив сверления, сначала выберите инструмент " ->>>>>>> remotes/jpcgt/flatcam/Beta "в таблице инструментов" #: flatcamEditors/FlatCAMExcEditor.py:182 msgid "Click on the Drill Circular Array Start position" -<<<<<<< HEAD msgstr "Нажмите на начальную позицию кругового массива отверстий" -======= -msgstr "Нажмите на начальную позицию сверлильного кругового массива" ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMExcEditor.py:204 #: flatcamEditors/FlatCAMGrbEditor.py:494 @@ -2323,18 +1797,12 @@ msgid "" "[ERROR_NOTCL] The value is not Float. Check for comma instead of dot " "separator." msgstr "" -<<<<<<< HEAD "[ERROR_NOTCL] Это не значение с плавающей точкой. Проверьте наличие запятой " "в качестве разделителя." -======= -"[ERROR_NOTCL] Значение не Float. Проверьте наличие запятой вместо " -"разделителя точек." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMExcEditor.py:207 #, python-format msgid "[ERROR_NOTCL] The value is mistyped. Check the value. %s" -<<<<<<< HEAD msgstr "[ERROR_NOTCL] Значение введено с ошибкой. Проверьте значение. %s" #: flatcamEditors/FlatCAMExcEditor.py:305 @@ -2345,17 +1813,6 @@ msgstr "" #: flatcamEditors/FlatCAMExcEditor.py:322 msgid "[success] Done. Drill Array added." msgstr "[success] Готово. Массив отверстий добавлен." -======= -msgstr "[ERROR_NOTCL] Значение вводится с ошибкой. Проверьте значение. %s" - -#: flatcamEditors/FlatCAMExcEditor.py:305 -msgid "[WARNING_NOTCL] Too many drills for the selected spacing angle." -msgstr "[WARNING_NOTCL] Слишком много сверл для выбранного угла интервала." - -#: flatcamEditors/FlatCAMExcEditor.py:322 -msgid "[success] Done. Drill Array added." -msgstr "[success] Сделанный. Добавлена дрель массив." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMExcEditor.py:333 msgid "Click on the Drill(s) to resize ..." @@ -2365,7 +1822,6 @@ msgstr "Нажмите на сверло для изменения размер msgid "" "[ERROR_NOTCL] Resize drill(s) failed. Please enter a diameter for resize." msgstr "" -<<<<<<< HEAD "[ERROR_NOTCL] Не удалось изменить размер отверстий. Пожалуйста введите " "диаметр для изменения размера." @@ -2376,19 +1832,6 @@ msgstr "[success] Готово. Изменение размера отверст #: flatcamEditors/FlatCAMExcEditor.py:427 msgid "[WARNING_NOTCL] Cancelled. No drills selected for resize ..." msgstr "[WARNING_NOTCL] Отмена. Не выбраны отверстия для изменения размера..." -======= -"[ERROR_NOTCL] Не удалось изменить размер детализации. Введите диаметр для " -"изменения размера." - -#: flatcamEditors/FlatCAMExcEditor.py:424 -msgid "[success] Done. Drill Resize completed." -msgstr "[success] Сделанный. Сверление размера завершено." - -#: flatcamEditors/FlatCAMExcEditor.py:427 -msgid "[WARNING_NOTCL] Cancelled. No drills selected for resize ..." -msgstr "" -"[WARNING_NOTCL] Отмененный. Для изменения размера сверла не выбраны ..." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMExcEditor.py:452 #: flatcamEditors/FlatCAMGrbEditor.py:1778 @@ -2397,19 +1840,11 @@ msgstr "Кликните на конечную точку ..." #: flatcamEditors/FlatCAMExcEditor.py:507 msgid "[success] Done. Drill(s) Move completed." -<<<<<<< HEAD msgstr "[success] Готово. Перемещение отверстий завершено." #: flatcamEditors/FlatCAMExcEditor.py:592 msgid "[success] Done. Drill(s) copied." msgstr "[success] Готово. Отверстия скопированы." -======= -msgstr "[success] Сделанный. Дрель(ы) перемещение завершено." - -#: flatcamEditors/FlatCAMExcEditor.py:592 -msgid "[success] Done. Drill(s) copied." -msgstr "[success] Сделанный. Дрель(ы) скопирована." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMExcEditor.py:792 flatcamGUI/FlatCAMGUI.py:5008 msgid "Excellon Editor" @@ -2609,26 +2044,15 @@ msgid "" "[WARNING_NOTCL] Tool already in the original or actual tool list.\n" "Save and reedit Excellon if you need to add this tool. " msgstr "" -<<<<<<< HEAD "[WARNING_NOTCL] Инструмент уже есть в исходном или фактическом списке " "инструментов.\n" "Сохраните и повторно отредактируйте Excellon, если вам нужно добавить этот " "инструмент. " -======= -"[WARNING_NOTCL] Инструмент уже в исходном или фактическом списке " -"инструментов.\n" -"Сохранить и повторно редактировать Excellon, если вам нужно добавить этот " -"инструмент." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMExcEditor.py:1496 flatcamGUI/FlatCAMGUI.py:2997 #, python-brace-format msgid "[success] Added new tool with dia: {dia} {units}" -<<<<<<< HEAD msgstr "[success] Добавлен новый инструмент с диаметром: {dia} {units}" -======= -msgstr "[success] Добавлен новый инструмент с алмазом: {dia} {units}" ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMExcEditor.py:1528 msgid "[WARNING_NOTCL] Select a tool in Tool Table" @@ -2637,23 +2061,13 @@ msgstr "[WARNING_NOTCL] Выберите инструмент в таблице #: flatcamEditors/FlatCAMExcEditor.py:1560 #, python-brace-format msgid "[success] Deleted tool with dia: {del_dia} {units}" -<<<<<<< HEAD msgstr "[success] Удален инструмент с диаметром: {del_dia} {units}" -======= -msgstr "[success] Удален инструмент с алмазными: {del_dia} {units}" ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMExcEditor.py:2074 msgid "" "[ERROR_NOTCL] There are no Tools definitions in the file. Aborting Excellon " "creation." -<<<<<<< HEAD msgstr "[ERROR_NOTCL] В файле нет инструментов. Прерывание создания Excellon." -======= -msgstr "" -"[ERROR_NOTCL] В файле нет определений инструментов. Прерывание создания " -"Excellon." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMExcEditor.py:2083 msgid "Creating Excellon." @@ -2661,7 +2075,6 @@ msgstr "Создание Excellon." #: flatcamEditors/FlatCAMExcEditor.py:2092 msgid "[success] Excellon editing finished." -<<<<<<< HEAD msgstr "[success] Редактирование Excellon завершено." #: flatcamEditors/FlatCAMExcEditor.py:2109 @@ -2671,17 +2084,6 @@ msgstr "[WARNING_NOTCL] Отмена. Инструмент/сверло не в #: flatcamEditors/FlatCAMExcEditor.py:2637 msgid "[success] Done. Drill(s) deleted." msgstr "[success] Готово. Отверстия удалены." -======= -msgstr "[success] Excellon редактирование завершено." - -#: flatcamEditors/FlatCAMExcEditor.py:2109 -msgid "[WARNING_NOTCL] Cancelled. There is no Tool/Drill selected" -msgstr "[WARNING_NOTCL] Отмененный. Инструмент / сверло не выбран" - -#: flatcamEditors/FlatCAMExcEditor.py:2637 -msgid "[success] Done. Drill(s) deleted." -msgstr "[success] Сделанный. Дрель(ы) исключена." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMExcEditor.py:2705 #: flatcamEditors/FlatCAMGrbEditor.py:4350 @@ -2696,11 +2098,7 @@ msgstr "Расстояние буфера:" #: flatcamEditors/FlatCAMGeoEditor.py:81 #: flatcamEditors/FlatCAMGrbEditor.py:2417 msgid "Buffer corner:" -<<<<<<< HEAD msgstr "Угол буфера:" -======= -msgstr "Буферный угол:" ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:83 msgid "" @@ -2732,7 +2130,6 @@ msgstr "Скошенный" #: flatcamEditors/FlatCAMGeoEditor.py:98 msgid "Buffer Interior" -<<<<<<< HEAD msgstr "Буфер внутри" #: flatcamEditors/FlatCAMGeoEditor.py:100 @@ -2742,26 +2139,11 @@ msgstr "Буфер снаружи" #: flatcamEditors/FlatCAMGeoEditor.py:106 msgid "Full Buffer" msgstr "Полный буфер" -======= -msgstr "Интерьер Буфера" - -#: flatcamEditors/FlatCAMGeoEditor.py:100 -msgid "Buffer Exterior" -msgstr "Внешний Вид Буфера" - -#: flatcamEditors/FlatCAMGeoEditor.py:106 -msgid "Full Buffer" -msgstr "Полный Буфер" ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:127 #: flatcamEditors/FlatCAMGeoEditor.py:2682 msgid "Buffer Tool" -<<<<<<< HEAD msgstr "Буфер" -======= -msgstr "Буферный Инструмент" ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:138 #: flatcamEditors/FlatCAMGeoEditor.py:155 @@ -2774,13 +2156,8 @@ msgid "" "[WARNING_NOTCL] Buffer distance value is missing or wrong format. Add it and " "retry." msgstr "" -<<<<<<< HEAD "[WARNING_NOTCL] Отсутствует значение расстояния буфера или оно имеет " "неправильный формат. Добавьте его и повторите попытку." -======= -"[WARNING_NOTCL] Отсутствует значение расстояния буфера или неправильный " -"формат. Добавьте его и повторите попытку." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:343 msgid "Text Tool" @@ -2911,11 +2288,7 @@ msgstr "Рисование" #: flatcamEditors/FlatCAMGeoEditor.py:563 msgid "[WARNING_NOTCL] Paint cancelled. No shape selected." -<<<<<<< HEAD msgstr "[WARNING_NOTCL] Рисование отменено. Фугура не выбрана." -======= -msgstr "[WARNING_NOTCL] Краска отменена. Форма Не выбрана." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:574 flatcamTools/ToolCutOut.py:355 #: flatcamTools/ToolCutOut.py:518 flatcamTools/ToolCutOut.py:657 @@ -2924,36 +2297,22 @@ msgid "" "[WARNING_NOTCL] Tool diameter value is missing or wrong format. Add it and " "retry." msgstr "" -<<<<<<< HEAD "[WARNING_NOTCL] Отсутствует значение диаметра инструмента или оно имеет " "неправильный формат. Добавьте его и повторите попытку." -======= -"[WARNING_NOTCL] Отсутствует значение диаметра инструмента или неправильный " -"формат. Добавьте его и повторите попытку." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:585 msgid "" "[WARNING_NOTCL] Overlap value is missing or wrong format. Add it and retry." msgstr "" -<<<<<<< HEAD "[WARNING_NOTCL] Значение перекрытия отсутствует или оно имеет неправильный " "формат. Добавьте его и повторите попытку." -======= -"[WARNING_NOTCL] Значение перекрытия отсутствует или неправильный формат. " -"Добавьте его и повторите попытку." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:597 msgid "" "[WARNING_NOTCL] Margin distance value is missing or wrong format. Add it and " "retry." msgstr "" -<<<<<<< HEAD "[WARNING_NOTCL] Значение отступа отсутствует или оно имеет неправильный " -======= -"[WARNING_NOTCL] Значение расстояния поля отсутствует или имеет неправильный " ->>>>>>> remotes/jpcgt/flatcam/Beta "формат. Добавьте его и повторите попытку." #: flatcamEditors/FlatCAMGeoEditor.py:606 @@ -3152,15 +2511,9 @@ msgid "" "and the center of the biggest bounding box\n" "of the selected shapes when unchecked." msgstr "" -<<<<<<< HEAD "Масштаб выбранной фигуры(фигур)\n" "использует точку начала координат, если флажок включен,\n" "и центр самой большой ограничительной рамки\n" -======= -"Масштабировать выбранную форму(ы)\n" -"через начало координат при проверке,\n" -"а по центру большой прямоугольник \n" ->>>>>>> remotes/jpcgt/flatcam/Beta "выбранных фигур, если флажок снят." #: flatcamEditors/FlatCAMGeoEditor.py:835 @@ -3286,104 +2639,62 @@ msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1054 #: flatcamEditors/FlatCAMGrbEditor.py:4988 msgid "[WARNING_NOTCL] Transformation cancelled. No shape selected." -<<<<<<< HEAD msgstr "[WARNING_NOTCL] Трансформация отменена. Фигура не выбрана." -======= -msgstr "[WARNING_NOTCL] Трансформация отменяется. Форма Не выбрана." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:1075 #: flatcamEditors/FlatCAMGrbEditor.py:5008 flatcamTools/ToolTransform.py:468 msgid "[ERROR_NOTCL] Wrong value format entered for Rotate, use a number." msgstr "" "[ERROR_NOTCL] Неверный формат значения, введенный для поворота, используйте " -<<<<<<< HEAD "числа." -======= -"число." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:1112 #: flatcamEditors/FlatCAMGrbEditor.py:5051 flatcamTools/ToolTransform.py:502 msgid "[ERROR_NOTCL] Wrong value format entered for Skew X, use a number." msgstr "" -<<<<<<< HEAD "[ERROR_NOTCL] Неверный формат значения, введенный для наклона по X, " "используйте числа." -======= -"[ERROR_NOTCL] Неверный формат значения, введенный для косого X, Используйте " -"число." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:1133 #: flatcamEditors/FlatCAMGrbEditor.py:5078 flatcamTools/ToolTransform.py:520 msgid "[ERROR_NOTCL] Wrong value format entered for Skew Y, use a number." msgstr "" -<<<<<<< HEAD "[ERROR_NOTCL] Неверный формат значения, введенный для наклона поY, " "используйте числа." -======= -"[ERROR_NOTCL] Неверный формат значения, введенный для косого Y, используйте " -"число." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:1154 #: flatcamEditors/FlatCAMGrbEditor.py:5105 flatcamTools/ToolTransform.py:538 msgid "[ERROR_NOTCL] Wrong value format entered for Scale X, use a number." msgstr "" -<<<<<<< HEAD "[ERROR_NOTCL] Неверный формат значения, введенный для масштабирования по X, " "используйте числа." -======= -"[ERROR_NOTCL] Неверный формат значения, введенный для шкалы X, Используйте " -"число." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:1191 #: flatcamEditors/FlatCAMGrbEditor.py:5146 flatcamTools/ToolTransform.py:572 msgid "[ERROR_NOTCL] Wrong value format entered for Scale Y, use a number." msgstr "" -<<<<<<< HEAD "[ERROR_NOTCL] Неверный формат значения, введенный для масштабирования по Y, " "используйте числа." -======= -"[ERROR_NOTCL] Неверный формат значения, введенный для шкалы Y, используйте " -"число." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:1223 #: flatcamEditors/FlatCAMGrbEditor.py:5184 flatcamTools/ToolTransform.py:601 msgid "[ERROR_NOTCL] Wrong value format entered for Offset X, use a number." msgstr "" -<<<<<<< HEAD "[ERROR_NOTCL] Неверный формат значения, введенный для смещения по X, " "используйте числа." -======= -"[ERROR_NOTCL] Неверный формат значения, введенный для смещения X, " -"Используйте число." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:1244 #: flatcamEditors/FlatCAMGrbEditor.py:5210 flatcamTools/ToolTransform.py:619 msgid "[ERROR_NOTCL] Wrong value format entered for Offset Y, use a number." msgstr "" -<<<<<<< HEAD "[ERROR_NOTCL] Неверный формат значения, введенный для смещения по Y, " "используйте числа." -======= -"[ERROR_NOTCL] Неверный формат значения, введенный для смещения Y, " -"используйте число." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:1262 #: flatcamEditors/FlatCAMGrbEditor.py:5233 msgid "[WARNING_NOTCL] No shape selected. Please Select a shape to rotate!" msgstr "" -<<<<<<< HEAD "[WARNING_NOTCL] Фигура не выбрана. Пожалуйста, выберите фигуру для поворота!" -======= -"[WARNING_NOTCL] Форма Не выбрана. Пожалуйста, выберите форму для поворота!" ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:1265 #: flatcamEditors/FlatCAMGrbEditor.py:5236 flatcamTools/ToolTransform.py:640 @@ -3399,13 +2710,8 @@ msgstr "[success] Готово. Поворот выполнен." #: flatcamEditors/FlatCAMGrbEditor.py:5288 msgid "[WARNING_NOTCL] No shape selected. Please Select a shape to flip!" msgstr "" -<<<<<<< HEAD "[WARNING_NOTCL] Фигура не выбрана. Пожалуйста, выберите фигуру для " "переворота!" -======= -"[WARNING_NOTCL] Форма Не выбрана. Пожалуйста, выберите форму, чтобы " -"перевернуть!" ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:1312 #: flatcamEditors/FlatCAMGrbEditor.py:5291 flatcamTools/ToolTransform.py:691 @@ -3426,11 +2732,7 @@ msgstr "[success] Отражение по оси Х завершёно ..." #: flatcamEditors/FlatCAMGrbEditor.py:5358 msgid "[WARNING_NOTCL] No shape selected. Please Select a shape to shear/skew!" msgstr "" -<<<<<<< HEAD "[WARNING_NOTCL] Фигура не выбрана. Пожалуйста, выберите фигуру для сдвига/" -======= -"[WARNING_NOTCL] Форма Не выбрана. Пожалуйста, выберите форму для сдвига/" ->>>>>>> remotes/jpcgt/flatcam/Beta "наклона!" #: flatcamEditors/FlatCAMGeoEditor.py:1367 @@ -3442,31 +2744,19 @@ msgstr "Применение наклона" #: flatcamEditors/FlatCAMGrbEditor.py:5396 flatcamTools/ToolTransform.py:791 #, python-format msgid "[success] Skew on the %s axis done ..." -<<<<<<< HEAD msgstr "[success] Наклон по оси %s выполнен ..." -======= -msgstr "[success] Наклон оси %s выполнен ..." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:1396 #: flatcamEditors/FlatCAMGrbEditor.py:5400 flatcamTools/ToolTransform.py:795 #, python-format msgid "[ERROR_NOTCL] Due of %s, Skew action was not executed." -<<<<<<< HEAD msgstr "[ERROR_NOTCL] Из-за %s наклон не был выполнен." -======= -msgstr "[ERROR_NOTCL] Из-за %s не было выполнено действие Skew." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:1407 #: flatcamEditors/FlatCAMGrbEditor.py:5419 msgid "[WARNING_NOTCL] No shape selected. Please Select a shape to scale!" msgstr "" -<<<<<<< HEAD "[WARNING_NOTCL] Фигура не выбрана. Пожалуйста, выберите фигуру для " -======= -"[WARNING_NOTCL] Форма Не выбрана. Пожалуйста, выберите форму для " ->>>>>>> remotes/jpcgt/flatcam/Beta "масштабирования!" #: flatcamEditors/FlatCAMGeoEditor.py:1410 @@ -3484,21 +2774,13 @@ msgstr "[success] Масштабирование по оси %s выполнен #: flatcamEditors/FlatCAMGrbEditor.py:5463 flatcamTools/ToolTransform.py:851 #, python-format msgid "[ERROR_NOTCL] Due of %s, Scale action was not executed." -<<<<<<< HEAD msgstr "[ERROR_NOTCL] Из-за %s, операция масштабирования не была выполнена." -======= -msgstr "[ERROR_NOTCL] Из-за %s действие масштабирования не было выполнено." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:1455 #: flatcamEditors/FlatCAMGrbEditor.py:5476 msgid "[WARNING_NOTCL] No shape selected. Please Select a shape to offset!" msgstr "" -<<<<<<< HEAD "[WARNING_NOTCL] Фигура не выбрана. Пожалуйста, выберите фигуру для смещения!" -======= -"[WARNING_NOTCL] Форма Не выбрана. Пожалуйста, выберите форму для смещения!" ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:1458 #: flatcamEditors/FlatCAMGrbEditor.py:5479 flatcamTools/ToolTransform.py:861 @@ -3515,11 +2797,7 @@ msgstr "[success] Смещение по оси %s выполнено ..." #: flatcamEditors/FlatCAMGrbEditor.py:5505 flatcamTools/ToolTransform.py:884 #, python-format msgid "[ERROR_NOTCL] Due of %s, Offset action was not executed." -<<<<<<< HEAD msgstr "[ERROR_NOTCL] Из-за %s операция смещения не была выполнена." -======= -msgstr "[ERROR_NOTCL] Из-за %s действие смещения не было выполнено." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:1477 #: flatcamEditors/FlatCAMGrbEditor.py:5509 @@ -3538,20 +2816,12 @@ msgstr "Введите значение угла (градусы):" #: flatcamEditors/FlatCAMGeoEditor.py:1487 #: flatcamEditors/FlatCAMGrbEditor.py:5519 msgid "[success] Geometry shape rotate done..." -<<<<<<< HEAD msgstr "[success] Вращение фигуры выполнено..." -======= -msgstr "[success] Геометрия форма поворот сделано..." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:1492 #: flatcamEditors/FlatCAMGrbEditor.py:5524 msgid "[WARNING_NOTCL] Geometry shape rotate cancelled..." -<<<<<<< HEAD msgstr "[WARNING_NOTCL] Вращение фигуры отменено..." -======= -msgstr "[WARNING_NOTCL] Геометрия фигуры поворот отменен..." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:1498 #: flatcamEditors/FlatCAMGrbEditor.py:5530 @@ -3569,20 +2839,12 @@ msgstr "Введите значение расстояния (%s):" #: flatcamEditors/FlatCAMGeoEditor.py:1508 #: flatcamEditors/FlatCAMGrbEditor.py:5540 msgid "[success] Geometry shape offset on X axis done..." -<<<<<<< HEAD msgstr "[success] Смещение формы по оси X выполнено..." -======= -msgstr "[success] Смещение формы геометрии по оси X выполнено..." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:1512 #: flatcamEditors/FlatCAMGrbEditor.py:5544 msgid "[WARNING_NOTCL] Geometry shape offset X cancelled..." -<<<<<<< HEAD msgstr "[WARNING_NOTCL] Смещение формы по оси X отменено..." -======= -msgstr "[WARNING_NOTCL] Смещение формы геометрии X отменено..." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:1517 #: flatcamEditors/FlatCAMGrbEditor.py:5549 @@ -3592,20 +2854,12 @@ msgstr "Смещение по оси Y ..." #: flatcamEditors/FlatCAMGeoEditor.py:1527 #: flatcamEditors/FlatCAMGrbEditor.py:5559 msgid "[success] Geometry shape offset on Y axis done..." -<<<<<<< HEAD msgstr "[success] Смещение формы по оси Y выполнено..." -======= -msgstr "[success] Смещение формы геометрии по оси Y выполнено..." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:1531 #: flatcamEditors/FlatCAMGrbEditor.py:5563 msgid "[WARNING_NOTCL] Geometry shape offset Y cancelled..." -<<<<<<< HEAD msgstr "[WARNING_NOTCL] Смещение формы по оси Y отменено..." -======= -msgstr "[WARNING_NOTCL] Смещение формы геометрии Y отменено..." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:1534 #: flatcamEditors/FlatCAMGrbEditor.py:5566 @@ -3615,20 +2869,12 @@ msgstr "Наклон по оси X ..." #: flatcamEditors/FlatCAMGeoEditor.py:1544 #: flatcamEditors/FlatCAMGrbEditor.py:5576 msgid "[success] Geometry shape skew on X axis done..." -<<<<<<< HEAD msgstr "[success] Наклон формы по оси X выполнен..." -======= -msgstr "[success] Геометрия форма перекос по оси X сделано..." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:1548 #: flatcamEditors/FlatCAMGrbEditor.py:5580 msgid "[WARNING_NOTCL] Geometry shape skew X cancelled..." -<<<<<<< HEAD msgstr "[WARNING_NOTCL] Наклон формы по оси X отменён..." -======= -msgstr "[WARNING_NOTCL] Геометрия форма перекоса X отменена..." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:1551 #: flatcamEditors/FlatCAMGrbEditor.py:5583 @@ -3638,20 +2884,12 @@ msgstr "Наклон по оси Y ..." #: flatcamEditors/FlatCAMGeoEditor.py:1561 #: flatcamEditors/FlatCAMGrbEditor.py:5593 msgid "[success] Geometry shape skew on Y axis done..." -<<<<<<< HEAD msgstr "[success] Наклон формы по оси Y выполнен..." -======= -msgstr "[success] Геометрия форма перекос по оси Y сделано..." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:1565 #: flatcamEditors/FlatCAMGrbEditor.py:5597 msgid "[WARNING_NOTCL] Geometry shape skew Y cancelled..." -<<<<<<< HEAD msgstr "[WARNING_NOTCL] Наклон формы по оси Y отменён..." -======= -msgstr "[WARNING_NOTCL] Геометрия форма перекоса Y отменена..." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:1929 #: flatcamEditors/FlatCAMGeoEditor.py:1980 @@ -3667,11 +2905,7 @@ msgstr "Для завершения щелкните по периметру ... #: flatcamEditors/FlatCAMGeoEditor.py:1965 msgid "[success] Done. Adding Circle completed." -<<<<<<< HEAD msgstr "[success] Готово. Добавление круга завершено." -======= -msgstr "[success] Сделанный. Добавление круга завершено." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:2000 #: flatcamEditors/FlatCAMGrbEditor.py:1462 @@ -3726,11 +2960,7 @@ msgstr "Режим: Центр -> Старт -> Стоп. Нажмите на ц #: flatcamEditors/FlatCAMGeoEditor.py:2179 msgid "[success] Done. Arc completed." -<<<<<<< HEAD msgstr "[success] Готово. Дуга завершена." -======= -msgstr "[success] Сделанный. Дуга завершена." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:2198 #: flatcamEditors/FlatCAMGeoEditor.py:2251 @@ -3744,11 +2974,7 @@ msgstr "Нажмите на противоположном углу для за #: flatcamEditors/FlatCAMGeoEditor.py:2232 msgid "[success] Done. Rectangle completed." -<<<<<<< HEAD msgstr "[success] Готово. Прямоугольник завершен." -======= -msgstr "[success] Сделанный. Прямоугольник завершен." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:2258 msgid "Click on next Point or click right mouse button to complete ..." @@ -3758,39 +2984,23 @@ msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:2286 msgid "[success] Done. Polygon completed." -<<<<<<< HEAD msgstr "[success] Готово. Полигон завершен." -======= -msgstr "[success] Сделанный. Полигон завершен." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:2296 #: flatcamEditors/FlatCAMGeoEditor.py:2342 #: flatcamEditors/FlatCAMGrbEditor.py:1058 #: flatcamEditors/FlatCAMGrbEditor.py:1252 msgid "Backtracked one point ..." -<<<<<<< HEAD msgstr "Отступ на одну точку ..." #: flatcamEditors/FlatCAMGeoEditor.py:2324 msgid "[success] Done. Path completed." msgstr "[success] Готово. Путь завершен." -======= -msgstr "Отступил на одно очко ..." - -#: flatcamEditors/FlatCAMGeoEditor.py:2324 -msgid "[success] Done. Path completed." -msgstr "[success] Сделанный. Путь завершен." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:2447 msgid "[WARNING_NOTCL] MOVE: No shape selected. Select a shape to move ..." msgstr "" -<<<<<<< HEAD "[WARNING_NOTCL] ПЕРЕМЕЩЕНИЕ: Фигура не выбрана. Выберите фигуру для " -======= -"[WARNING_NOTCL] Перемещение: фигура Не выбрана. Выберите фигуру для " ->>>>>>> remotes/jpcgt/flatcam/Beta "перемещения ..." #: flatcamEditors/FlatCAMGeoEditor.py:2449 @@ -3804,19 +3014,11 @@ msgstr " Нажмите на конечную точку ..." #: flatcamEditors/FlatCAMGeoEditor.py:2486 msgid "[success] Done. Geometry(s) Move completed." -<<<<<<< HEAD msgstr "[success] Готово. Перемещение Geometry завершено." #: flatcamEditors/FlatCAMGeoEditor.py:2606 msgid "[success] Done. Geometry(s) Copy completed." msgstr "[success] Готово. Копирование Geometry завершено." -======= -msgstr "[success] Сделанный. Геометрия(ы) перемещать завершенные." - -#: flatcamEditors/FlatCAMGeoEditor.py:2606 -msgid "[success] Done. Geometry(s) Copy completed." -msgstr "[success] Сделанный. Геометрия(ы) копирование завершено." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:2640 #, python-format @@ -3829,34 +3031,21 @@ msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:2650 msgid "[success] Done. Adding Text completed." -<<<<<<< HEAD msgstr "[success] Готово. Добавление текста завершено." #: flatcamEditors/FlatCAMGeoEditor.py:2678 msgid "Create buffer geometry ..." msgstr "Создание геометрии буфера ..." -======= -msgstr "[success] Сделанный. Добавление текста завершено." - -#: flatcamEditors/FlatCAMGeoEditor.py:2678 -msgid "Create buffer geometry ..." -msgstr "Создайте геометрию буфера ..." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:2689 #: flatcamEditors/FlatCAMGeoEditor.py:2715 #: flatcamEditors/FlatCAMGeoEditor.py:2741 msgid "[WARNING_NOTCL] Buffer cancelled. No shape selected." -<<<<<<< HEAD msgstr "[WARNING_NOTCL] Создание буфера отменено. Фигура не выбрана." -======= -msgstr "[WARNING_NOTCL] Буфер отменен. Форма Не выбрана." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:2711 #: flatcamEditors/FlatCAMGrbEditor.py:4447 msgid "[success] Done. Buffer Tool completed." -<<<<<<< HEAD msgstr "[success] Готово. Создание буфера завершено." #: flatcamEditors/FlatCAMGeoEditor.py:2737 @@ -3866,37 +3055,18 @@ msgstr "[success] Готово. Внутренний буфер создан." #: flatcamEditors/FlatCAMGeoEditor.py:2763 msgid "[success] Done. Buffer Ext Tool completed." msgstr "[success] Готово. Внешний буфер создан." -======= -msgstr "[success] Сделанный. Буферный инструмент завершен." - -#: flatcamEditors/FlatCAMGeoEditor.py:2737 -msgid "[success] Done. Buffer Int Tool completed." -msgstr "[success] Сделанный. Инструмент Buffer Int завершен." - -#: flatcamEditors/FlatCAMGeoEditor.py:2763 -msgid "[success] Done. Buffer Ext Tool completed." -msgstr "[success] Сделанный. Инструмент Buffer Ext завершен." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:2798 #: flatcamEditors/FlatCAMGrbEditor.py:1983 msgid "Select a shape to act as deletion area ..." -<<<<<<< HEAD msgstr "Выберите фигуру в качестве области для удаления ..." -======= -msgstr "Выберите фигуру в качестве области удаления ..." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:2800 #: flatcamEditors/FlatCAMGeoEditor.py:2819 #: flatcamEditors/FlatCAMGeoEditor.py:2825 #: flatcamEditors/FlatCAMGrbEditor.py:1985 msgid "Click to pick-up the erase shape..." -<<<<<<< HEAD msgstr "Кликните, что бы выбрать фигуру для стирания ..." -======= -msgstr "Нажмите, чтобы забрать форму стирания..." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:2829 #: flatcamEditors/FlatCAMGrbEditor.py:2042 @@ -3906,48 +3076,28 @@ msgstr "Нажмите для очистки ..." #: flatcamEditors/FlatCAMGeoEditor.py:2858 #: flatcamEditors/FlatCAMGrbEditor.py:2075 msgid "[success] Done. Eraser tool action completed." -<<<<<<< HEAD msgstr "[success] Готово. Действие инструмента стирания завершено.." #: flatcamEditors/FlatCAMGeoEditor.py:2901 msgid "Create Paint geometry ..." msgstr "Создать геометрию окрашивания ..." -======= -msgstr "[success] Сделанный. Ластик действие завершено." - -#: flatcamEditors/FlatCAMGeoEditor.py:2901 -msgid "Create Paint geometry ..." -msgstr "Создайте геометрию краски ..." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:2915 #: flatcamEditors/FlatCAMGrbEditor.py:2217 msgid "Shape transformations ..." -<<<<<<< HEAD msgstr "Преобразования фигуры ..." -======= -msgstr "Преобразования формы ..." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:3419 #, python-brace-format msgid "" "[WARNING_NOTCL] Editing MultiGeo Geometry, tool: {tool} with diameter: {dia}" msgstr "" -<<<<<<< HEAD "[WARNING_NOTCL] Редактирование MultiGeo Geometry, инструментом: {tool} с " -======= -"[WARNING_NOTCL] Редактирование мульти Гео геометрии, инструмент: {tool} с " ->>>>>>> remotes/jpcgt/flatcam/Beta "диаметром: {dia}" #: flatcamEditors/FlatCAMGeoEditor.py:3796 msgid "[WARNING_NOTCL] Copy cancelled. No shape selected." -<<<<<<< HEAD msgstr "[WARNING_NOTCL] Копирование отменено. Форма не выбрана." -======= -msgstr "[WARNING_NOTCL] Копия отменена. Форма Не выбрана." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:3803 flatcamGUI/FlatCAMGUI.py:2727 #: flatcamGUI/FlatCAMGUI.py:2773 flatcamGUI/FlatCAMGUI.py:2791 @@ -3962,11 +3112,7 @@ msgid "" "[WARNING_NOTCL] A selection of at least 2 geo items is required to do " "Intersection." msgstr "" -<<<<<<< HEAD "[WARNING_NOTCL] Выберите по крайней мере 2 geo элемента, что-бы сделать " -======= -"[WARNING_NOTCL] Выбор по крайней мере 2 гео элементов требуется сделать " ->>>>>>> remotes/jpcgt/flatcam/Beta "пересечение." #: flatcamEditors/FlatCAMGeoEditor.py:4166 @@ -3977,60 +3123,36 @@ msgid "" "generate an 'inside' shape" msgstr "" "[ERROR_NOTCL] Отрицательное значение буфера не принимается. Используйте " -<<<<<<< HEAD "внутренний буфер для создания \"внутри\" формы" -======= -"буфер интерьер для создания \"внутри\" формы" ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:4175 #: flatcamEditors/FlatCAMGeoEditor.py:4213 #: flatcamEditors/FlatCAMGeoEditor.py:4288 msgid "[WARNING_NOTCL] Nothing selected for buffering." -<<<<<<< HEAD msgstr "[WARNING_NOTCL] Ничего не выбрано для создания буфера." -======= -msgstr "[WARNING_NOTCL] Ничего не выбрано для буферизации." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:4179 #: flatcamEditors/FlatCAMGeoEditor.py:4217 #: flatcamEditors/FlatCAMGeoEditor.py:4292 msgid "[WARNING_NOTCL] Invalid distance for buffering." -<<<<<<< HEAD msgstr "[WARNING_NOTCL] Недопустимое расстояние для создания буфера." -======= -msgstr "[WARNING_NOTCL] Недопустимое расстояние для буферизации." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:4189 #: flatcamEditors/FlatCAMGeoEditor.py:4301 msgid "" "[ERROR_NOTCL] Failed, the result is empty. Choose a different buffer value." msgstr "" -<<<<<<< HEAD "[ERROR_NOTCL] Ошибка, результат нулевой. Выберите другое значение буфера." #: flatcamEditors/FlatCAMGeoEditor.py:4197 msgid "[success] Full buffer geometry created." msgstr "[success] Создана геометрия полного буфера." -======= -"[ERROR_NOTCL] Не удалось, результат пуст. Выберите другое значение буфера." - -#: flatcamEditors/FlatCAMGeoEditor.py:4197 -msgid "[success] Full buffer geometry created." -msgstr "[success] Создана полная геометрия буфера." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:4227 msgid "" "[ERROR_NOTCL] Failed, the result is empty. Choose a smaller buffer value." msgstr "" -<<<<<<< HEAD "[ERROR_NOTCL] Ошибка, результат нулевой. Выберите меньшее значение буфера." -======= -"[ERROR_NOTCL] Не удалось, результат пуст. Выберите меньшее значение буфера." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGeoEditor.py:4242 msgid "[success] Interior buffer geometry created." @@ -4053,11 +3175,7 @@ msgid "" "[ERROR_NOTCL] Could not do Paint. Overlap value has to be less than 1.00 " "(100%)." msgstr "" -<<<<<<< HEAD "[ERROR_NOTCL] Окраска не выполнена. Значение перекрытия должно быть меньше " -======= -"[ERROR_NOTCL] Не мог сделать краску. Значение перекрытия должно быть меньше " ->>>>>>> remotes/jpcgt/flatcam/Beta "1,00 (100%)." #: flatcamEditors/FlatCAMGeoEditor.py:4448 @@ -4067,44 +3185,26 @@ msgid "" "different method of Paint\n" "%s" msgstr "" -<<<<<<< HEAD "[ERROR] Окраска не выполнена. Попробуйте другую комбинацию параметров. Или " "другой способ рисования\n" -======= -"[ERROR] Не мог сделать краску. Попробуйте другую комбинацию параметров. Или " -"другой метод краски\n" ->>>>>>> remotes/jpcgt/flatcam/Beta "%s" #: flatcamEditors/FlatCAMGeoEditor.py:4459 msgid "[success] Paint done." -<<<<<<< HEAD msgstr "[success] Окраска выполнена." -======= -msgstr "[success] Краска готова." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGrbEditor.py:200 msgid "[WARNING_NOTCL] To add an Pad first select a aperture in Aperture Table" msgstr "" -<<<<<<< HEAD "[WARNING_NOTCL] Чтобы добавить площадку, сначала выберите отверстие в " "таблице отверстий" -======= -"[WARNING_NOTCL] Чтобы добавить Ipad, сначала выберите диафрагму в таблице " -"диафрагмы" ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGrbEditor.py:206 #: flatcamEditors/FlatCAMGrbEditor.py:398 msgid "" "[WARNING_NOTCL] Aperture size is zero. It needs to be greater than zero." msgstr "" -<<<<<<< HEAD "[WARNING_NOTCL] Размер отверстия равен нулю. Он должен быть больше нуля." -======= -"[WARNING_NOTCL] Размер диафрагмы равен нулю. Она должна быть больше нуля." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGrbEditor.py:357 #: flatcamEditors/FlatCAMGrbEditor.py:662 @@ -4115,17 +3215,12 @@ msgstr "" #: flatcamEditors/FlatCAMGrbEditor.py:369 msgid "[success] Done. Adding Pad completed." -<<<<<<< HEAD msgstr "[success] Готово. Добавление площадки завершено." -======= -msgstr "[success] Сделанный. Добавление площадки завершено." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGrbEditor.py:391 msgid "" "[WARNING_NOTCL] To add an Pad Array first select a aperture in Aperture Table" msgstr "" -<<<<<<< HEAD "[WARNING_NOTCL] Чтобы добавить массив площадок, сначала выберите отверстие в " "таблице отверстий" @@ -4144,26 +3239,6 @@ msgstr "[WARNING_NOTCL] Слишком много площадок для выб #: flatcamEditors/FlatCAMGrbEditor.py:709 msgid "[success] Done. Pad Array added." msgstr "[success] Done. Pad Array added." -======= -"[WARNING_NOTCL] Чтобы добавить массив Pad, сначала выберите диафрагму в " -"таблице диафрагм" - -#: flatcamEditors/FlatCAMGrbEditor.py:468 -msgid "Click on the Pad Circular Array Start position" -msgstr "Нажмите на пусковую позицию кругового массива пусковой площадки" - -#: flatcamEditors/FlatCAMGrbEditor.py:497 -msgid "[ERROR_NOTCL] The value is mistyped. Check the value." -msgstr "[ERROR_NOTCL] Значение вводится с ошибкой. Проверьте значение." - -#: flatcamEditors/FlatCAMGrbEditor.py:687 -msgid "[WARNING_NOTCL] Too many Pads for the selected spacing angle." -msgstr "[WARNING_NOTCL] Слишком много прокладок для выбранного угла интервала." - -#: flatcamEditors/FlatCAMGrbEditor.py:709 -msgid "[success] Done. Pad Array added." -msgstr "[success] Сделанный. Такие площадки добавил." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGrbEditor.py:730 msgid "Select shape(s) and then click ..." @@ -4171,32 +3246,19 @@ msgstr "Выберите фигуры, а затем нажмите ..." #: flatcamEditors/FlatCAMGrbEditor.py:741 msgid "[ERROR_NOTCL] Failed. Nothing selected." -<<<<<<< HEAD msgstr "[ERROR_NOTCL] Ошибка. Ничего не выбрано." -======= -msgstr "[ERROR_NOTCL] Неудачный. Ничего не выбрано." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGrbEditor.py:756 msgid "" "[WARNING_NOTCL] Failed. Poligonize works only on geometries belonging to the " "same aperture." msgstr "" -<<<<<<< HEAD "[WARNING_NOTCL] Неудачный. Полигонизация работает только с геометриями, " "принадлежащими к одному отверстию." #: flatcamEditors/FlatCAMGrbEditor.py:809 msgid "[success] Done. Poligonize completed." msgstr "[success] Готово. Полигонизация выполнена." -======= -"[WARNING_NOTCL] Неудачный. Polygonize работает только с геометриями, " -"принадлежащими к одной апертуре." - -#: flatcamEditors/FlatCAMGrbEditor.py:809 -msgid "[success] Done. Poligonize completed." -msgstr "[success] Сделанный. Полигонизация завершена." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGrbEditor.py:860 #: flatcamEditors/FlatCAMGrbEditor.py:1075 @@ -4244,29 +3306,17 @@ msgstr "Режим дорожки 1: 45 градусов ..." #: flatcamEditors/FlatCAMGrbEditor.py:1264 #: flatcamEditors/FlatCAMGrbEditor.py:1318 msgid "Track Mode 2: Reverse 45 degrees ..." -<<<<<<< HEAD msgstr "Режим дорожки 2: реверс 45 градусов ..." -======= -msgstr "Режим дорожки 2: обратный 45 градусов ..." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGrbEditor.py:1269 #: flatcamEditors/FlatCAMGrbEditor.py:1313 msgid "Track Mode 3: 90 degrees ..." -<<<<<<< HEAD msgstr "Режим дорожки 3: 90 градусов ..." -======= -msgstr "Режим трека 3: 90 градусов ..." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGrbEditor.py:1274 #: flatcamEditors/FlatCAMGrbEditor.py:1308 msgid "Track Mode 4: Reverse 90 degrees ..." -<<<<<<< HEAD msgstr "Режим дорожки 4: реверс 90 градусов ..." -======= -msgstr "Режим дорожки 4: обратный 90 градусов ..." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGrbEditor.py:1279 #: flatcamEditors/FlatCAMGrbEditor.py:1303 @@ -4279,11 +3329,7 @@ msgstr "Масштабирование выбранных отверстий Ger #: flatcamEditors/FlatCAMGrbEditor.py:1725 msgid "Buffer the selected apertures ..." -<<<<<<< HEAD msgstr "Создание буфера для выбранных отверстий ..." -======= -msgstr "Буфер некоторые отверстия ..." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGrbEditor.py:1769 msgid "[WARNING_NOTCL] Nothing selected to move ..." @@ -4291,19 +3337,11 @@ msgstr "[WARNING_NOTCL] Ничего не выбрано для перемеще #: flatcamEditors/FlatCAMGrbEditor.py:1892 msgid "[success] Done. Apertures Move completed." -<<<<<<< HEAD msgstr "[success] Готово. Перемещение отверстий завершено." #: flatcamEditors/FlatCAMGrbEditor.py:1968 msgid "[success] Done. Apertures copied." msgstr "[success] Готово. Отверстия скопированы." -======= -msgstr "[success] Сделанный. Отверстия перемещать завершенные." - -#: flatcamEditors/FlatCAMGrbEditor.py:1968 -msgid "[success] Done. Apertures copied." -msgstr "[success] Сделанный. Отверстия скопированы." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGrbEditor.py:2259 flatcamGUI/FlatCAMGUI.py:1604 #: flatcamGUI/FlatCAMGUI.py:4323 @@ -4349,11 +3387,7 @@ msgstr "Код отверстия" #: flatcamEditors/FlatCAMGrbEditor.py:2299 flatcamGUI/ObjectUI.py:236 msgid "Type of aperture: circular, rectangle, macros etc" -<<<<<<< HEAD msgstr "Тип отверстия: круг, прямоугольник, макросы и так далее" -======= -msgstr "Тип апертуры: круговой, прямоугольник, макросы etc" ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGrbEditor.py:2301 #: flatcamEditors/FlatCAMGrbEditor.py:2334 flatcamGUI/ObjectUI.py:238 @@ -4440,19 +3474,11 @@ msgstr "Удаляет отверстие в таблице отверстий" #: flatcamEditors/FlatCAMGrbEditor.py:2404 msgid "Buffer Aperture:" -<<<<<<< HEAD msgstr "Буфер отверстия:" #: flatcamEditors/FlatCAMGrbEditor.py:2406 msgid "Buffer a aperture in the aperture list" msgstr "Создаёт буфер для отверстия в списке отверстий" -======= -msgstr "Буфер, Диафрагму:" - -#: flatcamEditors/FlatCAMGrbEditor.py:2406 -msgid "Buffer a aperture in the aperture list" -msgstr "Буфер диафрагмы в списке диафрагм" ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGrbEditor.py:2419 msgid "" @@ -4462,13 +3488,8 @@ msgid "" " - 'Beveled:' the corner is a line that directly connects the features " "meeting in the corner" msgstr "" -<<<<<<< HEAD "Существует 3 типа углов:\n" " - 'Круг': угол закруглен.\n" -======= -"Существует 3 вида углов:\n" -" - 'Вокруг': угол закруглен.\n" ->>>>>>> remotes/jpcgt/flatcam/Beta " - 'Квадрат': угол встречается под острым углом.\n" " - 'Скошенный:' угол-это линия, которая непосредственно соединяет элементы, " "встречающиеся в углу" @@ -4480,7 +3501,6 @@ msgstr "Буфер" #: flatcamEditors/FlatCAMGrbEditor.py:2448 msgid "Scale Aperture:" -<<<<<<< HEAD msgstr "Масштаб. отверстий:" #: flatcamEditors/FlatCAMGrbEditor.py:2450 @@ -4490,53 +3510,29 @@ msgstr "Масштабирование отверстия в списке отв #: flatcamEditors/FlatCAMGrbEditor.py:2458 msgid "Scale factor:" msgstr "Коэффициент масш.:" -======= -msgstr "Шкала Диафрагмы:" - -#: flatcamEditors/FlatCAMGrbEditor.py:2450 -msgid "Scale a aperture in the aperture list" -msgstr "Масштабирование диафрагмы в списке диафрагм" - -#: flatcamEditors/FlatCAMGrbEditor.py:2458 -msgid "Scale factor:" -msgstr "Масштабный коэффициент:" ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGrbEditor.py:2460 msgid "" "The factor by which to scale the selected aperture.\n" "Values can be between 0.0000 and 999.9999" msgstr "" -<<<<<<< HEAD "Коэффициент масштабирования выбранного отверстия.\n" -======= -"Коэффициент масштабирования выбранной диафрагмы.\n" ->>>>>>> remotes/jpcgt/flatcam/Beta "Значения могут быть между 0.0000 и 999.9999" #: flatcamEditors/FlatCAMGrbEditor.py:2488 flatcamGUI/FlatCAMGUI.py:707 #: flatcamGUI/FlatCAMGUI.py:1936 msgid "Add Pad Array" -<<<<<<< HEAD msgstr "Добавить массив контактных площадок" #: flatcamEditors/FlatCAMGrbEditor.py:2490 msgid "Add an array of pads (linear or circular array)" msgstr "Добавляет массив контактных площадок (линейный или круговой массив)" -======= -msgstr "Добавить Массив Коврик " - -#: flatcamEditors/FlatCAMGrbEditor.py:2490 -msgid "Add an array of pads (linear or circular array)" -msgstr "Добавьте массив пэдов (линейный или круговой массив)" ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGrbEditor.py:2496 msgid "" "Select the type of pads array to create.\n" "It can be Linear X(Y) or Circular" msgstr "" -<<<<<<< HEAD "Выбор типа массива контактных площадок.\n" "Он может быть линейным X (Y) или круговым" @@ -4547,18 +3543,6 @@ msgstr "№ площ.:" #: flatcamEditors/FlatCAMGrbEditor.py:2509 msgid "Specify how many pads to be in the array." msgstr "Укажите, сколько контактных площадок должно быть в массиве." -======= -"Выберите тип массива pads для создания.\n" -"Он может быть Linear X (Y) или круговым" - -#: flatcamEditors/FlatCAMGrbEditor.py:2507 -msgid "Nr of pads:" -msgstr "ВН колодки:" - -#: flatcamEditors/FlatCAMGrbEditor.py:2509 -msgid "Specify how many pads to be in the array." -msgstr "Укажите, сколько пэдов должно быть в массиве." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGrbEditor.py:2986 #: flatcamEditors/FlatCAMGrbEditor.py:2990 @@ -4566,111 +3550,63 @@ msgid "" "[WARNING_NOTCL] Aperture code value is missing or wrong format. Add it and " "retry." msgstr "" -<<<<<<< HEAD "[WARNING_NOTCL] Отсутствует значение кода отверстия или оно имеет " "неправильный формат. Добавьте его и повторите попытку." -======= -"[WARNING_NOTCL] Отсутствует значение кода диафрагмы или неправильный формат. " -"Добавьте его и повторите попытку." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGrbEditor.py:3026 msgid "" "[WARNING_NOTCL] Aperture dimensions value is missing or wrong format. Add it " "in format (width, height) and retry." msgstr "" -<<<<<<< HEAD "[WARNING_NOTCL] Отсутствует значение размера отверстия или оно имеет " "неправильный формат. Добавьте его в формате (ширина, высота) и повторите " "попытку." -======= -"[WARNING_NOTCL] Отсутствует значение размеров диафрагмы или неправильный " -"формат. Добавьте его в формате (ширина, высота) и повторите." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGrbEditor.py:3038 msgid "" "[WARNING_NOTCL] Aperture size value is missing or wrong format. Add it and " "retry." msgstr "" -<<<<<<< HEAD "[WARNING_NOTCL] Отсутствует значение размера отверстия или оно имеет " "неправильный формат. Добавьте его и повторите попытку." #: flatcamEditors/FlatCAMGrbEditor.py:3049 msgid "[WARNING_NOTCL] Aperture already in the aperture table." msgstr "[WARNING_NOTCL] Отверстие уже присутствует в таблице отверстий." -======= -"[WARNING_NOTCL] Отсутствует значение размера диафрагмы или неправильный " -"формат. Добавьте его и повторите попытку." - -#: flatcamEditors/FlatCAMGrbEditor.py:3049 -msgid "[WARNING_NOTCL] Aperture already in the aperture table." -msgstr "[WARNING_NOTCL] Диафрагма уже в таблице диафрагм." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGrbEditor.py:3056 #, python-brace-format msgid "[success] Added new aperture with code: {apid}" -<<<<<<< HEAD msgstr "[success] Добавлено новое отверстие с кодом: {apid}" #: flatcamEditors/FlatCAMGrbEditor.py:3084 msgid "[WARNING_NOTCL] Select an aperture in Aperture Table" msgstr "[WARNING_NOTCL] Выберите отверстие в таблице отверстий" -======= -msgstr "[success] Добавлена новая диафрагма с кодом: {apid}" - -#: flatcamEditors/FlatCAMGrbEditor.py:3084 -msgid "[WARNING_NOTCL] Select an aperture in Aperture Table" -msgstr "[WARNING_NOTCL] Установить значение диафрагмы в таблице диафрагмы " ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGrbEditor.py:3090 #, python-format msgid "[WARNING_NOTCL] Select an aperture in Aperture Table --> %s" -<<<<<<< HEAD msgstr "[WARNING_NOTCL] Выберите отверстие в таблице отверстий --> %s" -======= -msgstr "[WARNING_NOTCL] Выберите диафрагму в таблице диафрагм --> %s" ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGrbEditor.py:3113 #, python-brace-format msgid "[success] Deleted aperture with code: {del_dia}" -<<<<<<< HEAD msgstr "[success] Удалено отверстие с кодом: {del_dia}" -======= -msgstr "[success] Удаленная апертура с кодом: {del_dia}" ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGrbEditor.py:3533 #, python-format msgid "Adding aperture: %s geo ..." -<<<<<<< HEAD msgstr "Добавление отверстия: %s geo ..." -======= -msgstr "Добавление диафрагмы: %s geo ..." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGrbEditor.py:3718 msgid "" "[ERROR_NOTCL] There are no Aperture definitions in the file. Aborting Gerber " "creation." -<<<<<<< HEAD msgstr "[ERROR_NOTCL] В файле нет отверстий. Прерывание создания Gerber." #: flatcamEditors/FlatCAMGrbEditor.py:3721 msgid "[ERROR] An internal error has occurred. See shell.\n" msgstr "[ERROR] Произошла внутренняя ошибка. Смотрите коммандную строку.\n" -======= -msgstr "" -"[ERROR_NOTCL] В файле нет определений диафрагмы. Прерывание творения Gerber." - -#: flatcamEditors/FlatCAMGrbEditor.py:3721 -msgid "[ERROR] An internal error has occurred. See shell.\n" -msgstr "[ERROR] Произошла внутренняя ошибка. Вижу оболочки.\n" ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGrbEditor.py:3726 msgid "Creating Gerber." @@ -4678,7 +3614,6 @@ msgstr "Создание Gerber." #: flatcamEditors/FlatCAMGrbEditor.py:3734 msgid "[success] Gerber editing finished." -<<<<<<< HEAD msgstr "[success] Редактирование Gerber завершено." #: flatcamEditors/FlatCAMGrbEditor.py:3750 @@ -4692,34 +3627,14 @@ msgstr "[ERROR_NOTCL] Ошибка. Не выбрана геометрия от #: flatcamEditors/FlatCAMGrbEditor.py:4288 msgid "[success] Done. Apertures geometry deleted." msgstr "[success] Готово. Геометрия отверстий удалена." -======= -msgstr "[success] Редактирование Gerber закончено." - -#: flatcamEditors/FlatCAMGrbEditor.py:3750 -msgid "[WARNING_NOTCL] Cancelled. No aperture is selected" -msgstr "[WARNING_NOTCL] Отмененный. Диафрагма не выбрана" - -#: flatcamEditors/FlatCAMGrbEditor.py:4280 -msgid "[ERROR_NOTCL] Failed. No aperture geometry is selected." -msgstr "[ERROR_NOTCL] Неудачный. Геометрия апертуры Не выбрана." - -#: flatcamEditors/FlatCAMGrbEditor.py:4288 -msgid "[success] Done. Apertures geometry deleted." -msgstr "[success] Сделанный. Геометрия апертур удалена." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGrbEditor.py:4431 msgid "" "[WARNING_NOTCL] No aperture to buffer. Select at least one aperture and try " "again." msgstr "" -<<<<<<< HEAD "[WARNING_NOTCL] Нет отверстий для создания буфера. Выберите хотя бы одно " "отверстие и повторите попытку." -======= -"[WARNING_NOTCL] Нет диафрагмы для буферизации. Выберите хотя бы одну " -"диафрагму и повторите попытку." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGrbEditor.py:4444 #, python-format @@ -4727,11 +3642,7 @@ msgid "" "[ERROR_NOTCL] Failed.\n" "%s" msgstr "" -<<<<<<< HEAD "[ERROR_NOTCL] Ошибка.\n" -======= -"[ERROR_NOTCL] Неудачный.\n" ->>>>>>> remotes/jpcgt/flatcam/Beta "%s" #: flatcamEditors/FlatCAMGrbEditor.py:4461 @@ -4739,34 +3650,20 @@ msgid "" "[WARNING_NOTCL] Scale factor value is missing or wrong format. Add it and " "retry." msgstr "" -<<<<<<< HEAD "[WARNING_NOTCL] Отсутствует значение коэффициента масштабирования или оно " "имеет неправильный формат. Добавьте его и повторите попытку." -======= -"[WARNING_NOTCL] Отсутствует значение масштабного коэффициента или " -"неправильный формат. Добавьте его и повторите попытку." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamEditors/FlatCAMGrbEditor.py:4494 msgid "" "[WARNING_NOTCL] No aperture to scale. Select at least one aperture and try " "again." msgstr "" -<<<<<<< HEAD "[WARNING_NOTCL] Нет отверстий для масштабирования. Выберите хотя бы одно " "отверстие и повторите попытку." #: flatcamEditors/FlatCAMGrbEditor.py:4510 msgid "[success] Done. Scale Tool completed." msgstr "[success] Готово. Масштабирование выполнено." -======= -"[WARNING_NOTCL] Нет диафрагмы для масштабирования. Выберите хотя бы одну " -"диафрагму и повторите попытку." - -#: flatcamEditors/FlatCAMGrbEditor.py:4510 -msgid "[success] Done. Scale Tool completed." -msgstr "[success] Сделанный. Масштабирование инструмента завершено." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamGUI/FlatCAMGUI.py:50 msgid "&File" @@ -4859,15 +3756,9 @@ msgid "" "enabling the automation of certain\n" "functions of FlatCAM." msgstr "" -<<<<<<< HEAD "Будет запущен открытый сценарий\n" "включающий автоматизацию некоторых\n" "функций FlatCAM." -======= -"Запустим открытый TCL скрипт таким образом\n" -"включение автоматизации некоторых\n" -"функции плоского FlatCAM." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamGUI/FlatCAMGUI.py:138 msgid "Import" @@ -4925,15 +3816,9 @@ msgid "" "the coordinates format, the file units and zeros\n" "are set in Preferences -> Excellon Export." msgstr "" -<<<<<<< HEAD "Экспортирует объект Excellon как файл Excellon,\n" "формат координат, единицы измерения и нули\n" "устанавливаются в Настройки -> Экспорт Excellon." -======= -"Экспортирует Excellon объект в виде файла Excellon,\n" -"формат координат, единицы измерения и нули\n" -"устанавливаются в настройках - > Excellon экспорт." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamGUI/FlatCAMGUI.py:186 msgid "Export &Gerber ..." @@ -4945,15 +3830,9 @@ msgid "" "the coordinates format, the file units and zeros\n" "are set in Preferences -> Gerber Export." msgstr "" -<<<<<<< HEAD "Экспортирует объект Gerber как файл Gerber,\n" "формат координат, единицы измерения и нули\n" "устанавливается в Настройки -> Экспорт Gerber." -======= -"Будем экспортировать объект как Гербер Gerber файл ,\n" -"формат координат, единицы измерения и нули\n" -"устанавливаются в настройках - > Gerber Export." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamGUI/FlatCAMGUI.py:199 msgid "Save &Defaults" @@ -5040,13 +3919,8 @@ msgid "" "Will convert a Geometry object from single_geometry type\n" "to a multi_geometry type." msgstr "" -<<<<<<< HEAD "Преобразует объект Geometry из типа single_geometry\n" "в multi_geometry.." -======= -"Преобразует объект геометрии из типа single_geometry\n" -"тип multi_geometry." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamGUI/FlatCAMGUI.py:272 msgid "Convert Multi to SingleGeo" @@ -5057,13 +3931,8 @@ msgid "" "Will convert a Geometry object from multi_geometry type\n" "to a single_geometry type." msgstr "" -<<<<<<< HEAD "Преобразует объект Geometry из типа multi_geometry\n" "в single_geometry.." -======= -"Преобразует объект геометрии из типа multi_geometry\n" -"тип single_geometry." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamGUI/FlatCAMGUI.py:280 msgid "Convert Any to Geo" @@ -5083,11 +3952,7 @@ msgstr "&Удалить\tDEL" #: flatcamGUI/FlatCAMGUI.py:295 msgid "Se&t Origin\tO" -<<<<<<< HEAD msgstr "Ук&азать начало координат\tO" -======= -msgstr "Начало Координат\tO" ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamGUI/FlatCAMGUI.py:296 msgid "Jump to Location\tJ" @@ -5247,7 +4112,6 @@ msgstr "Добавить текст\tT" #: flatcamGUI/FlatCAMGUI.py:416 msgid "Polygon Union\tU" -<<<<<<< HEAD msgstr "Объединение полигонов\tU" #: flatcamGUI/FlatCAMGUI.py:418 @@ -5257,17 +4121,6 @@ msgstr "Пересечение полигонов\tE" #: flatcamGUI/FlatCAMGUI.py:420 msgid "Polygon Subtraction\tS" msgstr "Вычитание полигонов\tS" -======= -msgstr "Объединение Полигонов\tU" - -#: flatcamGUI/FlatCAMGUI.py:418 -msgid "Polygon Intersection\tE" -msgstr "Многоугольник Пересечения\tE" - -#: flatcamGUI/FlatCAMGUI.py:420 -msgid "Polygon Subtraction\tS" -msgstr "Вычитание Полигонов\tS" ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamGUI/FlatCAMGUI.py:424 msgid "Cut Path\tX" @@ -5287,19 +4140,11 @@ msgstr "Переместить\tM" #: flatcamGUI/FlatCAMGUI.py:433 msgid "Buffer Tool\tB" -<<<<<<< HEAD msgstr "Буфер\tB" #: flatcamGUI/FlatCAMGUI.py:436 msgid "Paint Tool\tI" msgstr "Рисование\tI" -======= -msgstr "Буферный Инструмент\tB" - -#: flatcamGUI/FlatCAMGUI.py:436 -msgid "Paint Tool\tI" -msgstr "инструментов рисования\tI" ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamGUI/FlatCAMGUI.py:439 msgid "Transform Tool\tALT+R" @@ -5307,11 +4152,7 @@ msgstr "Трансформация\tALT+R" #: flatcamGUI/FlatCAMGUI.py:443 msgid "Toggle Corner Snap\tK" -<<<<<<< HEAD msgstr "Привязка к углу\tK" -======= -msgstr "Оснастки Угол Переключения \tK" ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamGUI/FlatCAMGUI.py:446 msgid ">Excellon Editor<" @@ -5327,11 +4168,7 @@ msgstr "Добавить сверло\tD" #: flatcamGUI/FlatCAMGUI.py:456 msgid "Resize Drill(S)\tR" -<<<<<<< HEAD msgstr "Изменить размер отверстия\tR" -======= -msgstr "Размер Сверла\tR" ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamGUI/FlatCAMGUI.py:458 flatcamGUI/FlatCAMGUI.py:496 msgid "Copy\tC" @@ -5351,19 +4188,11 @@ msgstr ">Редактор Gerber<" #: flatcamGUI/FlatCAMGUI.py:472 msgid "Add Pad\tP" -<<<<<<< HEAD msgstr "Добавить площадку\tP" #: flatcamGUI/FlatCAMGUI.py:474 msgid "Add Pad Array\tA" msgstr "Добавить массив площадок\tA" -======= -msgstr "Добавить Площадку\tP" - -#: flatcamGUI/FlatCAMGUI.py:474 -msgid "Add Pad Array\tA" -msgstr "Добавить Массив Коврик \tA" ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamGUI/FlatCAMGUI.py:476 msgid "Add Track\tT" @@ -5375,11 +4204,7 @@ msgstr "Добавить регион\tN" #: flatcamGUI/FlatCAMGUI.py:482 msgid "Poligonize\tALT+N" -<<<<<<< HEAD msgstr "Полигонизация\tALT+N" -======= -msgstr "Полигонизировать\tALT+N" ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamGUI/FlatCAMGUI.py:484 msgid "Add SemiDisc\tE" @@ -5539,11 +4364,7 @@ msgstr "Панелизация" #: flatcamGUI/FlatCAMGUI.py:647 flatcamGUI/FlatCAMGUI.py:1870 #: flatcamTools/ToolFilm.py:204 msgid "Film Tool" -<<<<<<< HEAD msgstr "Плёнка" -======= -msgstr "Пленочный Инструмент" ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamGUI/FlatCAMGUI.py:648 flatcamGUI/FlatCAMGUI.py:1872 #: flatcamTools/ToolSolderPaste.py:451 @@ -5615,19 +4436,11 @@ msgstr "Добавить текст" #: flatcamGUI/FlatCAMGUI.py:682 flatcamGUI/FlatCAMGUI.py:1910 msgid "Add Buffer" -<<<<<<< HEAD msgstr "Добавить буфер" #: flatcamGUI/FlatCAMGUI.py:683 flatcamGUI/FlatCAMGUI.py:1911 msgid "Paint Shape" msgstr "Нарисовать фигуру" -======= -msgstr "Добавить Буфер" - -#: flatcamGUI/FlatCAMGUI.py:683 flatcamGUI/FlatCAMGUI.py:1911 -msgid "Paint Shape" -msgstr "Форма Краски" ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamGUI/FlatCAMGUI.py:684 flatcamGUI/FlatCAMGUI.py:719 #: flatcamGUI/FlatCAMGUI.py:1912 flatcamGUI/FlatCAMGUI.py:1948 @@ -5669,11 +4482,7 @@ msgstr "Переместить объект " #: flatcamGUI/FlatCAMGUI.py:706 flatcamGUI/FlatCAMGUI.py:1935 msgid "Add Pad" -<<<<<<< HEAD msgstr "Добавить площадку" -======= -msgstr "Добавить Площадку" ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamGUI/FlatCAMGUI.py:708 flatcamGUI/FlatCAMGUI.py:1937 msgid "Add Track" @@ -5685,11 +4494,7 @@ msgstr "Добавить регион" #: flatcamGUI/FlatCAMGUI.py:711 flatcamGUI/FlatCAMGUI.py:1940 msgid "Poligonize" -<<<<<<< HEAD msgstr "Полигонизация" -======= -msgstr "Полигонизировать" ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamGUI/FlatCAMGUI.py:713 flatcamGUI/FlatCAMGUI.py:1942 msgid "SemiDisc" @@ -5711,30 +4516,18 @@ msgstr "Привязка к сетке" #: flatcamGUI/FlatCAMGUI.py:737 flatcamGUI/FlatCAMGUI.py:1966 msgid "Grid X snapping distance" -<<<<<<< HEAD msgstr "Размер сетки по X" #: flatcamGUI/FlatCAMGUI.py:742 flatcamGUI/FlatCAMGUI.py:1971 msgid "Grid Y snapping distance" msgstr "Размер сетки по Y" -======= -msgstr "Сетка X расстояние замыкания" - -#: flatcamGUI/FlatCAMGUI.py:742 flatcamGUI/FlatCAMGUI.py:1971 -msgid "Grid Y snapping distance" -msgstr "Сетка Y расстояние замыкания" ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamGUI/FlatCAMGUI.py:748 flatcamGUI/FlatCAMGUI.py:1977 msgid "" "When active, value on Grid_X\n" "is copied to the Grid_Y value." msgstr "" -<<<<<<< HEAD "Если активен, значение на Grid_X\n" -======= -"Когда активен, значение на Grid_X\n" ->>>>>>> remotes/jpcgt/flatcam/Beta "копируется в значение Grid_Y." #: flatcamGUI/FlatCAMGUI.py:754 flatcamGUI/FlatCAMGUI.py:1983 @@ -5784,11 +4577,7 @@ msgstr "GEOMETRY" #: flatcamGUI/FlatCAMGUI.py:896 msgid "CNC-JOB" -<<<<<<< HEAD msgstr "CNC-JOB" -======= -msgstr "CNC-РАБОТА" ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamGUI/FlatCAMGUI.py:905 msgid "TOOLS" @@ -5806,19 +4595,11 @@ msgid "" "FlatCAM automatically save a 'factory_defaults' file\n" "on the first start. Do not delete that file." msgstr "" -<<<<<<< HEAD "Импорт полного набора настроек FlatCAM из файла,\n" "ранее сохранённого на жестком диске.\n" "\n" "FlatCAM автоматически создаёт файл factory_defaults\n" "при первом запуске. Не удаляйте этот файл." -======= -"Импорт полного набора настроек FlatCAM кулачка из файла\n" -"ранее сохранено на жестком диске.\n" -"\n" -"FlatCAM копир автоматически сохранить файл 'factory_defaults' \n" -"на первом старте. Не удаляйте этот файл." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamGUI/FlatCAMGUI.py:932 msgid "Export Preferences" @@ -5829,13 +4610,8 @@ msgid "" "Export a full set of FlatCAM settings in a file\n" "that is saved on HDD." msgstr "" -<<<<<<< HEAD "Экспорт полного набора настроек FlatCAM в файл\n" "который сохраняется на жестком диске." -======= -"Экспорт полного набора настроек FlatCAM кулачка в файл\n" -"это сохраняется на жестком диске." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamGUI/FlatCAMGUI.py:940 msgid "Open Pref Folder" @@ -5843,11 +4619,7 @@ msgstr "Открыть папку настроек" #: flatcamGUI/FlatCAMGUI.py:943 msgid "Open the folder where FlatCAM save the preferences files." -<<<<<<< HEAD msgstr "Открывает папку, в которой FlatCAM сохраняет файлы настроек." -======= -msgstr "Откройте папку, в которой FlatCAM сохраняет файлы настроек." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamGUI/FlatCAMGUI.py:951 msgid "Save Preferences" @@ -6511,19 +5283,11 @@ msgstr "Вырезать" #: flatcamGUI/FlatCAMGUI.py:1605 msgid "Pad" -<<<<<<< HEAD msgstr "Площадка" #: flatcamGUI/FlatCAMGUI.py:1606 msgid "Pad Array" msgstr "Массив площадок" -======= -msgstr "Блокнот" - -#: flatcamGUI/FlatCAMGUI.py:1606 -msgid "Pad Array" -msgstr "Массив Коврик " ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamGUI/FlatCAMGUI.py:1607 msgid "Track" @@ -6535,11 +5299,7 @@ msgstr "Регион" #: flatcamGUI/FlatCAMGUI.py:1610 msgid "Exc Editor" -<<<<<<< HEAD msgstr "Редактор Excellon" -======= -msgstr "Excellon Редактор" ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamGUI/FlatCAMGUI.py:1611 msgid "Add Drill" @@ -6633,11 +5393,7 @@ msgstr "Внимание" #: flatcamGUI/FlatCAMGUI.py:2434 flatcamGUI/FlatCAMGUI.py:2633 #: flatcamGUI/FlatCAMGUI.py:2844 msgid "[WARNING_NOTCL] Cancelled." -<<<<<<< HEAD msgstr "[WARNING_NOTCL] Отмена." -======= -msgstr "[WARNING_NOTCL] Отмененный." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamGUI/FlatCAMGUI.py:2499 msgid "" @@ -6725,11 +5481,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:3353 msgid "Wk. format:" -<<<<<<< HEAD msgstr "Формат обработчика:" -======= -msgstr "УК. формат:" ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamGUI/FlatCAMGUI.py:3355 msgid "" @@ -6741,7 +5493,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:3368 msgid "Plot Fill:" -msgstr "Заливка Участка:" +msgstr "Заливка участка:" #: flatcamGUI/FlatCAMGUI.py:3370 msgid "" @@ -6764,7 +5516,7 @@ msgstr "Установите прозрачность заливки для по #: flatcamGUI/FlatCAMGUI.py:3403 msgid "Plot Line:" -msgstr "сюжетная линия:" +msgstr "Линия участка:" #: flatcamGUI/FlatCAMGUI.py:3405 msgid "Set the line color for plotted objects." @@ -6844,7 +5596,7 @@ msgstr "Установите цвет фигуры при выборе." #: flatcamGUI/FlatCAMGUI.py:3545 msgid "Project Items:" -msgstr "элемент проекта:" +msgstr "Элемент проекта:" #: flatcamGUI/FlatCAMGUI.py:3547 msgid "Set the color of the items in Project Tab Tree." @@ -7134,11 +5886,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:3875 msgid "Workers number:" -<<<<<<< HEAD msgstr "Обработчики:" -======= -msgstr "Количество работников :" ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamGUI/FlatCAMGUI.py:3877 flatcamGUI/FlatCAMGUI.py:3886 msgid "" @@ -7316,10 +6064,10 @@ msgid "" "A value here of 0.25 means an overlap of 25% from the tool diameter found " "above." msgstr "" -"Сколько (доля) ширины инструмента перекрывать каждый проход инструмента.\n" -"Образец:\n" -"Значение 0,25 означает перекрытие на 25% от диаметра инструмента, указанного " -"выше." +"Какая часть ширины инструмента будет перекрываться за каждый проход " +"инструмента.\n" +"Пример:\n" +"Здесь значение 0.25 означает 25% от диаметра инструмента, указанного выше." #: flatcamGUI/FlatCAMGUI.py:4083 flatcamGUI/ObjectUI.py:295 msgid "Milling Type:" @@ -7520,14 +6268,6 @@ msgid "" "If TZ is checked then Trailing Zeros are removed\n" "and Leading Zeros are kept." msgstr "" -<<<<<<< HEAD -======= -"Задает тип нулей Гербера.\n" -"Если LZ, то ведущие нули удаляются и\n" -"Конечные нули сохраняются.\n" -"Если TZ установлен, то конечные нули удаляются\n" -"и ведущие нули сохраняются." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamGUI/FlatCAMGUI.py:4326 flatcamGUI/FlatCAMGUI.py:5011 #: flatcamGUI/FlatCAMGUI.py:5470 flatcamGUI/FlatCAMGUI.py:5762 @@ -7737,7 +6477,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:4550 msgid "Optimization Time: " -msgstr "Время Оптимизации:" +msgstr "Время оптимизации:" #: flatcamGUI/FlatCAMGUI.py:4553 msgid "" @@ -7813,11 +6553,7 @@ msgstr "Смена инструмента Z :" #: flatcamGUI/FlatCAMGUI.py:4639 flatcamGUI/FlatCAMGUI.py:5251 msgid "Toolchange Z position." -<<<<<<< HEAD msgstr "Позиция Z смены инструмента." -======= -msgstr "Изменение положения Z инструмента." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamGUI/FlatCAMGUI.py:4645 msgid "Feedrate:" @@ -7973,19 +6709,11 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:4792 flatcamGUI/FlatCAMGUI.py:5354 msgid "Toolchange X,Y:" -<<<<<<< HEAD msgstr "Смена инструмента X,Y:" #: flatcamGUI/FlatCAMGUI.py:4794 flatcamGUI/FlatCAMGUI.py:5356 msgid "Toolchange X,Y position." msgstr "Позиция X,Y смены инструмента." -======= -msgstr "Смена инструмента X, Y:" - -#: flatcamGUI/FlatCAMGUI.py:4794 flatcamGUI/FlatCAMGUI.py:5356 -msgid "Toolchange X,Y position." -msgstr "Изменение инструмента X, Y положение." ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamGUI/FlatCAMGUI.py:4800 flatcamGUI/FlatCAMGUI.py:5363 #: flatcamGUI/ObjectUI.py:634 @@ -8201,15 +6929,8 @@ msgid "" msgstr "" #: flatcamGUI/FlatCAMGUI.py:5159 -<<<<<<< HEAD msgid "Tools:" msgstr "Инструменты:" -======= -#, fuzzy -#| msgid "Tools" -msgid "Tools:" -msgstr "Инструменты" ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamGUI/FlatCAMGUI.py:5165 flatcamGUI/FlatCAMGUI.py:5774 msgid "Diameters of the cutting tools, separated by ','" @@ -8412,7 +7133,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:5554 msgid "Annotation Size:" -msgstr "" +msgstr "Размер аннотации:" #: flatcamGUI/FlatCAMGUI.py:5556 msgid "The font size of the annotation text. In pixels." @@ -8420,7 +7141,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:5564 msgid "Annotation Color:" -msgstr "" +msgstr "Цвет аннотации:" #: flatcamGUI/FlatCAMGUI.py:5566 msgid "Set the font color for the annotation texts." @@ -8598,11 +7319,7 @@ msgstr "Очистка меди" #: flatcamGUI/FlatCAMGUI.py:5772 flatcamGUI/FlatCAMGUI.py:6502 msgid "Tools dia:" -<<<<<<< HEAD msgstr "Диам. инстр.:" -======= -msgstr "" ->>>>>>> remotes/jpcgt/flatcam/Beta #: flatcamGUI/FlatCAMGUI.py:5782 flatcamTools/ToolNonCopperClear.py:167 #, python-format @@ -8804,7 +7521,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:6117 flatcamTools/ToolFilm.py:116 msgid "Film Type:" -msgstr "" +msgstr "Тип плёнки:" #: flatcamGUI/FlatCAMGUI.py:6119 flatcamTools/ToolFilm.py:118 msgid "" @@ -8815,10 +7532,16 @@ msgid "" "with white on a black canvas.\n" "The Film format is SVG." msgstr "" +"Создаёт позитивную или негативную пленку.\n" +"Позитив означает, что он будет печатать элементы\n" +"чёрным на белом холсте.\n" +"Негатив означает, что он будет печатать элементы\n" +"белым на черном холсте.\n" +"Формат плёнки - SVG." #: flatcamGUI/FlatCAMGUI.py:6130 flatcamTools/ToolFilm.py:130 msgid "Border:" -msgstr "" +msgstr "Отступ:" #: flatcamGUI/FlatCAMGUI.py:6132 flatcamTools/ToolFilm.py:132 msgid "" @@ -8834,7 +7557,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:6145 flatcamTools/ToolFilm.py:144 msgid "Scale Stroke:" -msgstr "" +msgstr "Масштаб обводки:" #: flatcamGUI/FlatCAMGUI.py:6147 flatcamTools/ToolFilm.py:146 msgid "" @@ -9059,7 +7782,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:6403 msgid "Scale_X factor:" -msgstr "" +msgstr "Коэф. X:" #: flatcamGUI/FlatCAMGUI.py:6405 msgid "Factor for scaling on X axis." @@ -9067,7 +7790,7 @@ msgstr "Коэффициент масштабирования по оси X." #: flatcamGUI/FlatCAMGUI.py:6412 msgid "Scale_Y factor:" -msgstr "" +msgstr "Коэф Y:" #: flatcamGUI/FlatCAMGUI.py:6414 msgid "Factor for scaling on Y axis." @@ -9089,7 +7812,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:6439 msgid "Offset_X val:" -msgstr "" +msgstr "Смещение Х:" #: flatcamGUI/FlatCAMGUI.py:6441 msgid "Distance to offset on X axis. In current units." @@ -9097,7 +7820,7 @@ msgstr "Расстояние смещения по оси X. В текущих #: flatcamGUI/FlatCAMGUI.py:6448 msgid "Offset_Y val:" -msgstr "" +msgstr "Смещение Y:" #: flatcamGUI/FlatCAMGUI.py:6450 msgid "Distance to offset on Y axis. In current units." @@ -10626,7 +9349,7 @@ msgstr "" #: flatcamTools/ToolFilm.py:25 msgid "Film PCB" -msgstr "" +msgstr "Плёнка" #: flatcamTools/ToolFilm.py:56 flatcamTools/ToolImage.py:53 #: flatcamTools/ToolPanelize.py:56 @@ -10643,15 +9366,15 @@ msgstr "" #: flatcamTools/ToolFilm.py:71 msgid "Film Object:" -msgstr "" +msgstr "Объект плёнки:" #: flatcamTools/ToolFilm.py:73 msgid "Object for which to create the film." -msgstr "" +msgstr "Объект для создания плёнки." #: flatcamTools/ToolFilm.py:89 flatcamTools/ToolPanelize.py:111 msgid "Box Type:" -msgstr "" +msgstr "Тип рамки:" #: flatcamTools/ToolFilm.py:91 msgid "" @@ -10663,7 +9386,7 @@ msgstr "" #: flatcamTools/ToolFilm.py:104 flatcamTools/ToolPanelize.py:126 msgid "Box Object:" -msgstr "" +msgstr "Объект рамки:" #: flatcamTools/ToolFilm.py:106 msgid "" @@ -10675,7 +9398,7 @@ msgstr "" #: flatcamTools/ToolFilm.py:157 msgid "Save Film" -msgstr "" +msgstr "Сохранить плёнку" #: flatcamTools/ToolFilm.py:159 msgid "" @@ -10697,7 +9420,7 @@ msgstr "" #: flatcamTools/ToolFilm.py:255 msgid "Generating Film ..." -msgstr "" +msgstr "Создание плёнки ..." #: flatcamTools/ToolFilm.py:260 flatcamTools/ToolFilm.py:264 msgid "Export SVG positive" @@ -12081,15 +10804,5 @@ msgstr "Объекты CNCJob не могут быть смещены." #~ msgid "tool_tab" #~ msgstr "tool_tab" -#~ msgid "Tool dia: " -#~ msgstr "Диам. инстр.: " - -#~ msgid "" -#~ "The diameter of the cutting\n" -#~ "tool.." -#~ msgstr "" -#~ "Диаметр режущего\n" -#~ "инструмента.." - #~ msgid "Disable" #~ msgstr "Отключить"