From c8ba7bd150797233102689ae8c5b4e931c7803c2 Mon Sep 17 00:00:00 2001 From: camellan Date: Sun, 9 Jun 2019 02:33:12 +0400 Subject: [PATCH 1/5] Fix Zoom function. Update translate. --- FlatCAMApp.py | 6 +++--- flatcamGUI/FlatCAMGUI.py | 12 ++++++------ locale/ru/LC_MESSAGES/strings.mo | Bin 100642 -> 100680 bytes locale/ru/LC_MESSAGES/strings.po | 10 ++++++---- 4 files changed, 15 insertions(+), 13 deletions(-) diff --git a/FlatCAMApp.py b/FlatCAMApp.py index ef803939..eff1aab7 100644 --- a/FlatCAMApp.py +++ b/FlatCAMApp.py @@ -1417,8 +1417,8 @@ class App(QtCore.QObject): self.ui.menuviewdisableother.triggered.connect(self.disable_other_plots) self.ui.menuviewenable.triggered.connect(self.enable_all_plots) self.ui.menuview_zoom_fit.triggered.connect(self.on_zoom_fit) - self.ui.menuview_zoom_in.triggered.connect(lambda: self.plotcanvas.zoom(1 / 1.5)) - self.ui.menuview_zoom_out.triggered.connect(lambda: self.plotcanvas.zoom(1.5)) + self.ui.menuview_zoom_in.triggered.connect(lambda: self.plotcanvas.zoom(1.5)) + self.ui.menuview_zoom_out.triggered.connect(lambda: self.plotcanvas.zoom(1 / 1.5)) self.ui.menuview_toggle_code_editor.triggered.connect(self.on_toggle_code_editor) self.ui.menuview_toggle_fscreen.triggered.connect(self.on_fullscreen) self.ui.menuview_toggle_parea.triggered.connect(self.on_toggle_plotarea) @@ -8039,7 +8039,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/FlatCAMGUI.py b/flatcamGUI/FlatCAMGUI.py index fd2eef86..b61da7de 100644 --- a/flatcamGUI/FlatCAMGUI.py +++ b/flatcamGUI/FlatCAMGUI.py @@ -1250,7 +1250,7 @@ class FlatCAMGUI(QtWidgets.QMainWindow): - + ''' ) @@ -1265,7 +1265,7 @@ class FlatCAMGUI(QtWidgets.QMainWindow): '''Editor Shortcut list

GEOMETRY EDITOR
- + @@ -2328,13 +2328,13 @@ class FlatCAMGUI(QtWidgets.QMainWindow): self.app.on_flipy() # Zoom In - if key == QtCore.Qt.Key_Equal: - self.app.plotcanvas.zoom(1 / self.app.defaults['zoom_ratio'], self.app.mouse) - - # Zoom Out if key == QtCore.Qt.Key_Minus: self.app.plotcanvas.zoom(self.app.defaults['zoom_ratio'], self.app.mouse) + # Zoom Out + if key == QtCore.Qt.Key_Equal: + self.app.plotcanvas.zoom(1 / self.app.defaults['zoom_ratio'], self.app.mouse) + # toggle display of Notebook area if key == QtCore.Qt.Key_QuoteLeft: self.app.on_toggle_notebook() diff --git a/locale/ru/LC_MESSAGES/strings.mo b/locale/ru/LC_MESSAGES/strings.mo index b5993fe94d88e5f90796153a82b37fe18e8982c1..eec18964ee71cba27a033e0981ab60839d5d50b7 100644 GIT binary patch delta 3303 zcmY+`XKd9~7{~E*pp?oeLu3@i3nB%CODUse7i$?UZIw+KWmF0jDwVRwZ5c8RL%;zd z7L1DkYJiGjQ#VHAy$pFlBmzRL3xWYdK=k|TId4qUe9m+Jy0r@gVr>|y_kXJ-l#6t)F*xtb$t@H#0B^mZo?+{2{y#jKK>c&65qx+td(F*R}5f# z9FFn0G{J^UHidmue2ITy0UqyaO%Aq8v?d=*u_;zzb2Qzoc?4SEqu9^K)37b^T2#Xa zumygF58_4ag7>g52D^u>sZF7vyEU;m5AVm7-ksQp_#M=XKKA~A4-;QUb);brH?r;+ zO*|3RfjrdnA-rIX*@_y-+$3v;;o1-d-FOCd;TjIc=wxeJV-{)&=Ax!}1*(Iau`%xR z9`*Gnu?_Vuhs3cv5n$ed~9XpP_Xy1HCp&b>q2e>5&q8>;?^)$!V zufPt(JFq=#S%I3VUs7B)#|*Tl0dWErV+wZ0BbbGkaS|pzZp{eXiuGyVT%ph(|H68@ zA=R1`9Ds^TP)YPWYFoXA>d3p8jAv21AodB@;qIuBkM$O#M!W?RaUbfvKVV2BxJ*GK zt(oSgE*`Z%lTp_vqn4lq_2ONq7aT*~_c?0He@89RKR#|c$iEK*)F-2IVVrmMAol-o zDh~OI8iU;fol!mRj}`b7s=-D>T-LV2hlo3)c1H$kUynm|XgyXZHO3I1#ryDr_ZRPt zAtBe$T`H6V4Tid&_C)RXG1v)EJ5v({iy3_Q8Rf5 zzsHst*6haLLKG%YSU1cycm;K|{)@`y$1 zxNO(ZF4T-9Kk1&EfZ7eAITUpAZT1)T-~i%7xDT)4PJH1hYhK2V!`+O1j!MRJs5QOp zjUC|z&qW0@x)SA!t^<}6Ret{$L5{5Bp zoI8MGa$GLV@a{&PA7Rvyeg(C3cTve&Z@e2=9M+|MlSn~X+aI+i(@{t1I@E)EP}zGB z>tHz^!p~6qf8GRZ$X{~+OYr7IYZg+!AlI5V@lVXaos+GpdbN-i9>yal2M=MiQXbiB3|P? zfy#lKs9!=gLj|tkPN*JrLyas8bzsa!HMj{k;$c*l_nqxVn29CC#i#@6CMIBqInEpm z5^uzK*8VuoBED4UW-gTZjB9urPUXT1jKYhkslAG+co)^Nl(}yIPx2O_l5I6E*L^q? zmlUy7HTX7QI&rYrU0;m(#D61888W%^t(iu}NzBB~3)~NlrKp}(q8{k9(5?M;oI!jK zr(pgfvKUXIIx=*zJ76kNM|NfFltfmBkA#mNYZYT})%st}!?89HcyU!1 u+oVnVMI8eD0!#C97cCDg3q(r7ha;u@tqgw>*&IF*E)O3$mL0UGbN&NjGTc%C delta 3267 zcmY+`d2o+M9LMopCDI^>y04_7QfDMVT#+CWB8e+RkklE(-MAA!x1cjBjy4n3sr;d> z62`QQyHbi_Bvqx`tIg;q0nznq2IyWj=ssp zm`0tgX^hJ-2@5^%U>)N2UEK3%Y)(83JK!vQ4d2IlxZjIUVJ+fo*bMJtSA2nC*fHFi zc9<4!eI}JcJ{9Nj3g+PUuGVCriLfRc#$h8Y!zOqO+u)zr78^&pxG#nhPegUR9-HDv z*aDAZ7rcpm&_Bv&O-%~%QPu=vGB&{Rp7XFi@mkb}c6uJf*2I@k1NjX#v%qfF_+by! z0Af(>$KoApOb%)yLwZ;<6es#9=*0u52Ny8`f5H$9i*{Qu1hvHJr~%HvAk6oC*Q+nV z*Qr0^c?-`H|ASxPnV!~E$Hl$egnfAwG=t3;jHRfVm7{XvDQd6%ds`EaQ5cTPP|x?F zCQybA@s4LDYJdTKtZ9!eQMr?d>Te46GR9{Lyoxf^-u;UDaP7XXK`5$&Sk&H+Lp{&M zEPMym?g_TS`Y~>$!ciT@p^|h0YDE{I2DTl0(!beD;SDP8p|-%kpKH(>HPR?leLB90 zb1{s)EJCf+*;tp&_pvTdrl|iT zn^6$zc`wu!WT2LGA?gELQRjF!s@-|i7JcW%Pd)7*Ta{Zus9cEj%pAn|A3?=Nui{74 zhiWFc5jVlp#2ru_K1LnW=h#y3CA!nm7Im&8Q3INcn$TwS$5MP1k9wZJ-n(K);w0>bOHeaBfRXq$YUy91mNsOF+nQ0RQ?df}ycD&P*YPU;g}d;a zFUgwm6ebOI9iB!Vx9?HeTqD^Tib}2ls9YF{TB)g+ii>a)p2s~nJjI%oSc&RrVX9k^ zpkc0EchqU{B~Z|k&hQ>A!G6RWu>>#TPMkg5nj)+|!mZeDR5Bhy?deI+ho}iO80og8 zA8PC7;v>w%SvYM}Rlh!S%@xdj)Qtb|te57_c^CYK`UJd$%|^Rq{MpltaUC>Atwhn+^{18Xs2`tC@W8DRGAC(LJ zGn|W17tW`sd*d`}>u#X_oBo2jz$&p8{hQk3T-G*0?MW=^DxHLCxCE8G1sH&ZSc)H@ z&VTZFYsg!(9#`Vk3Dzv8epr?@d+`D$;k>u3`I6@+P+PZR66aspyorJ=!C*XrRrdjQ zA-0pUj1X7L0o^DJO9g3D^-M5=N$E&qo@wAdGQMjCT^JRwzxa$y(!t=`S(%b zM@1nPV-bFW-KJYpfp<}- zu>>`cHcQOSWZZ$hiT(532L_^Mv<&0% zE1Zu3`PQUk9*)85n1-EJSThILpuY1Aw_s;-O`gI+OyR8V(#Y>ocpF!&a=(6`;kU$@ ztKEu3u5nAa3f0kNjKk2i?uW!Q)WviR`(WL5)(pa-*ci8=?umV#53nzB%k`{WKMLb0 z#9%S@$6KflT5fPN%EIo%pJN0*L0ze>3*7Je-l&^%HY(YQQSV4I}``K|@NI zm;8lRGlzeOzU;G+hd(}=lUi#{#fI{O6{{*%mmfRQ%HRH7<9{`+18s2dwv>WaN7i(< H=Q92S^OC{A diff --git a/locale/ru/LC_MESSAGES/strings.po b/locale/ru/LC_MESSAGES/strings.po index 6a2025b7..ecdf1aa8 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-07 23:14+0300\n" -"PO-Revision-Date: 2019-06-09 01:31+0400\n" +"PO-Revision-Date: 2019-06-09 01:51+0400\n" "Last-Translator: Andrey Kultyapov \n" "Language-Team: \n" "Language: ru\n" @@ -3749,11 +3749,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" @@ -9093,7 +9093,9 @@ msgstr "ИЗМЕРИТЕЛЬ: Нажмите на конечную точку .. #: flatcamTools/ToolMeasurement.py:278 #, python-brace-format msgid "MEASURING: Result D(x) = {d_x} | D(y) = {d_y} | Distance = {d_z}" -msgstr "ИЗМЕРИТЕЛЬ: Результат D(x) = {d_x} | D(y) = {d_y} | Расстояние = {d_z}" +msgstr "" +"ИЗМЕРИТЕЛЬ: Результат расстояние(x) = {d_x} | расстояние(y) = {d_y} | " +"Расстояние = {d_z}" #: flatcamTools/ToolMove.py:81 msgid "MOVE: Click on the Start point ..." From f5ca2fc62abe6108683702b8a9890eded5088648 Mon Sep 17 00:00:00 2001 From: camellan Date: Sun, 9 Jun 2019 03:34:09 +0400 Subject: [PATCH 2/5] Update translation --- flatcamGUI/FlatCAMGUI.py | 6 +-- locale/ru/LC_MESSAGES/strings.mo | Bin 100680 -> 101135 bytes locale/ru/LC_MESSAGES/strings.po | 70 +++++++++++++++++++------------ locale_template/strings.pot | 12 ++++++ 4 files changed, 58 insertions(+), 30 deletions(-) diff --git a/flatcamGUI/FlatCAMGUI.py b/flatcamGUI/FlatCAMGUI.py index b61da7de..e3c1a697 100644 --- a/flatcamGUI/FlatCAMGUI.py +++ b/flatcamGUI/FlatCAMGUI.py @@ -3766,8 +3766,8 @@ class GeneralAppPrefGroupUI(OptionsGroupUI): "ADVANCED level -> full functionality.\n\n" "The choice here will influence the parameters in\n" "the Selected Tab for all kinds of FlatCAM objects.")) - self.app_level_radio = RadioSet([{'label': 'Basic', 'value': 'b'}, - {'label': 'Advanced', 'value': 'a'}]) + self.app_level_radio = RadioSet([{'label': _('Basic'), 'value': 'b'}, + {'label': _('Advanced'), 'value': 'a'}]) # Languages for FlatCAM self.languagelabel = QtWidgets.QLabel(_('Languages:')) @@ -3989,7 +3989,7 @@ class GerberGenPrefGroupUI(OptionsGroupUI): # OptionsGroupUI.__init__(self, "Gerber General Preferences", parent=parent) super(GerberGenPrefGroupUI, self).__init__(self) - self.setTitle(str("Gerber General")) + self.setTitle(str(_("Gerber General"))) # ## Plot options self.plot_options_label = QtWidgets.QLabel(_("Plot Options:")) diff --git a/locale/ru/LC_MESSAGES/strings.mo b/locale/ru/LC_MESSAGES/strings.mo index eec18964ee71cba27a033e0981ab60839d5d50b7..ff507925a0e43b109a0b726e7364974cf463b8a7 100644 GIT binary patch delta 20563 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 EKLQx9LjV8( delta 20097 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 S8RA^-iA7B\n" "Language-Team: \n" "Language: ru\n" @@ -2011,7 +2011,7 @@ msgstr "Инструменты" #: flatcamGUI/FlatCAMGUI.py:5618 flatcamGUI/FlatCAMGUI.py:5895 #: flatcamGUI/FlatCAMGUI.py:6035 flatcamGUI/ObjectUI.py:260 msgid "Tool dia:" -msgstr "Диаметр инструмента:" +msgstr "Диам. инструм.:" #: flatcamEditors/FlatCAMGeoEditor.py:434 flatcamGUI/FlatCAMGUI.py:6037 msgid "" @@ -5429,6 +5429,14 @@ msgid "" "the Selected Tab for all kinds of FlatCAM objects." msgstr "" +#: flatcamGUI/FlatCAMGUI.py:3769 +msgid "Basic" +msgstr "Баз." + +#: flatcamGUI/FlatCAMGUI.py:3770 +msgid "Advanced" +msgstr "Расш." + #: flatcamGUI/FlatCAMGUI.py:3773 msgid "Languages:" msgstr "Язык:" @@ -5597,6 +5605,10 @@ msgid "" "but require more RAM usage and more processing time." msgstr "" +#: flatcamGUI/FlatCAMGUI.py:3992 +msgid "Gerber General" +msgstr "Gerber основные" + #: flatcamGUI/FlatCAMGUI.py:3995 flatcamGUI/FlatCAMGUI.py:4361 #: flatcamGUI/FlatCAMGUI.py:5153 flatcamGUI/FlatCAMGUI.py:5525 #: flatcamGUI/ObjectUI.py:150 flatcamGUI/ObjectUI.py:505 @@ -5668,7 +5680,7 @@ msgstr "Диаметр режущего инструмента." #: flatcamGUI/FlatCAMGUI.py:4063 msgid "Width (# passes):" -msgstr "Количество проходов:" +msgstr "Кол-во проходов:" #: flatcamGUI/FlatCAMGUI.py:4065 flatcamGUI/ObjectUI.py:275 msgid "" @@ -5680,7 +5692,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:4073 flatcamGUI/ObjectUI.py:283 msgid "Pass overlap:" -msgstr "Перекрытие за проход:" +msgstr "Перекр. за прох.:" #: flatcamGUI/FlatCAMGUI.py:4075 flatcamGUI/ObjectUI.py:285 #, python-format @@ -5704,7 +5716,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:4095 msgid "Combine Passes" -msgstr "Объединить проходы" +msgstr "Объед. проходы" #: flatcamGUI/FlatCAMGUI.py:4097 flatcamGUI/ObjectUI.py:309 msgid "Combine all passes into one object" @@ -5776,11 +5788,11 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:4164 msgid "Gerber Adv. Options" -msgstr "" +msgstr "Gerber дополн." #: flatcamGUI/FlatCAMGUI.py:4167 msgid "Advanced Param.:" -msgstr "Дополнительные парам.:" +msgstr "Дополнительные настройки:" #: flatcamGUI/FlatCAMGUI.py:4169 msgid "" @@ -5900,7 +5912,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:4358 msgid "Excellon General" -msgstr "Основные парам. Excellon" +msgstr "Excellon основные" #: flatcamGUI/FlatCAMGUI.py:4380 msgid "Excellon Format:" @@ -6035,7 +6047,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:4612 msgid "Excellon Options" -msgstr "Параметры сверловки отверстий" +msgstr "Параметры Excellon" #: flatcamGUI/FlatCAMGUI.py:4615 flatcamGUI/ObjectUI.py:584 msgid "Create CNC Job" @@ -6109,7 +6121,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:4671 msgid "Spindle Speed:" -msgstr "Скорость вращения шпинделя:" +msgstr "Скорость вр. шпинделя:" #: flatcamGUI/FlatCAMGUI.py:4673 flatcamGUI/FlatCAMGUI.py:5302 #: flatcamGUI/ObjectUI.py:684 @@ -6122,7 +6134,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:4681 flatcamGUI/FlatCAMGUI.py:5310 msgid "Spindle dir.:" -msgstr "" +msgstr "Напр. вращения:" #: flatcamGUI/FlatCAMGUI.py:4683 flatcamGUI/FlatCAMGUI.py:5312 msgid "" @@ -6131,6 +6143,10 @@ msgid "" "- CW = clockwise or\n" "- CCW = counter clockwise" msgstr "" +"Устанавка направления вращения шпинделя.\n" +"Варианты:\n" +"- CW = по часовой стрелке или\n" +"- CCW = против часовой стрелки" #: flatcamGUI/FlatCAMGUI.py:4695 flatcamGUI/FlatCAMGUI.py:5324 #: flatcamGUI/ObjectUI.py:692 flatcamGUI/ObjectUI.py:1224 @@ -6206,7 +6222,7 @@ msgstr "Значения по умолчанию" #: flatcamGUI/FlatCAMGUI.py:4785 msgid "Excellon Adv. Options" -msgstr "Доп. параметры Excellon" +msgstr "Excellon дополн." #: flatcamGUI/FlatCAMGUI.py:4791 flatcamGUI/FlatCAMGUI.py:5364 msgid "Advanced Options:" @@ -6415,7 +6431,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:5150 msgid "Geometry General" -msgstr "Основные парам. Geometry" +msgstr "Geometry основные" #: flatcamGUI/FlatCAMGUI.py:5168 msgid "" @@ -6441,7 +6457,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:5200 msgid "Geometry Options" -msgstr "Параметры геометрии" +msgstr "Параметры Geometry" #: flatcamGUI/FlatCAMGUI.py:5205 msgid "Create CNC Job:" @@ -6467,7 +6483,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:5227 msgid "Multidepth" -msgstr "" +msgstr "Мультипроход" #: flatcamGUI/FlatCAMGUI.py:5229 msgid "Multidepth usage: True or False." @@ -6518,7 +6534,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:5300 flatcamGUI/ObjectUI.py:682 #: flatcamGUI/ObjectUI.py:1211 msgid "Spindle speed:" -msgstr "Скорость вращения шпинделя:" +msgstr "Скорость вр. шпинделя:" #: flatcamGUI/FlatCAMGUI.py:5343 msgid "" @@ -6528,7 +6544,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:5359 msgid "Geometry Adv. Options" -msgstr "" +msgstr "Geometry дополн." #: flatcamGUI/FlatCAMGUI.py:5366 msgid "" @@ -6604,7 +6620,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:5522 msgid "CNC Job General" -msgstr "Основные парам. CNC Job" +msgstr "CNC Job основные" #: flatcamGUI/FlatCAMGUI.py:5535 flatcamGUI/ObjectUI.py:544 #: flatcamGUI/ObjectUI.py:877 flatcamGUI/ObjectUI.py:1447 @@ -6686,7 +6702,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:5655 msgid "CNC Job Options" -msgstr "Параметры программы для ЧПУ" +msgstr "Параметры CNC Job" #: flatcamGUI/FlatCAMGUI.py:5658 flatcamGUI/FlatCAMGUI.py:5699 msgid "Export G-Code:" @@ -6730,7 +6746,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:5696 msgid "CNC Job Adv. Options" -msgstr "" +msgstr "CNC Job дополн." #: flatcamGUI/FlatCAMGUI.py:5707 flatcamGUI/ObjectUI.py:1523 msgid "Toolchange G-Code:" @@ -6818,7 +6834,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:5780 msgid "NCC Tool Options" -msgstr "Параметры очистки от меди" +msgstr "Очистка от меди" #: flatcamGUI/FlatCAMGUI.py:5793 flatcamGUI/FlatCAMGUI.py:6523 msgid "Tools dia:" @@ -6875,7 +6891,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:5881 msgid "Cutout Tool Options" -msgstr "Параметры обрезки контура платы" +msgstr "Обрезка контура платы" #: flatcamGUI/FlatCAMGUI.py:5886 flatcamGUI/ObjectUI.py:402 msgid "" @@ -6943,7 +6959,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:5960 msgid "2Sided Tool Options" -msgstr "Параметры 2-х сторонней платы" +msgstr " 2-х сторонняя плата" #: flatcamGUI/FlatCAMGUI.py:5965 msgid "" @@ -7070,7 +7086,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:6183 msgid "Panelize Tool Options" -msgstr "Параметры панелизации" +msgstr "Панелизация" #: flatcamGUI/FlatCAMGUI.py:6188 msgid "" @@ -7161,7 +7177,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:6285 msgid "Calculators Tool Options" -msgstr "Параметры калькулятора" +msgstr "Калькулятор" #: flatcamGUI/FlatCAMGUI.py:6288 msgid "V-Shape Tool Calculator:" @@ -7249,7 +7265,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:6382 msgid "Transform Tool Options" -msgstr "Параметры трансформации" +msgstr "Трансформация" #: flatcamGUI/FlatCAMGUI.py:6387 msgid "" @@ -7361,7 +7377,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:6509 msgid "SolderPaste Tool Options" -msgstr "Параметры нанесения паяльной пасты" +msgstr "Паяльная паста" #: flatcamGUI/FlatCAMGUI.py:6514 msgid "" diff --git a/locale_template/strings.pot b/locale_template/strings.pot index d0223c2e..fff55558 100644 --- a/locale_template/strings.pot +++ b/locale_template/strings.pot @@ -5257,6 +5257,14 @@ msgid "" "the Selected Tab for all kinds of FlatCAM objects." msgstr "" +#: flatcamGUI/FlatCAMGUI.py:3769 +msgid "Basic" +msgstr "" + +#: flatcamGUI/FlatCAMGUI.py:3770 +msgid "Advanced" +msgstr "" + #: flatcamGUI/FlatCAMGUI.py:3773 msgid "Languages:" msgstr "" @@ -5418,6 +5426,10 @@ msgid "" "but require more RAM usage and more processing time." msgstr "" +#: flatcamGUI/FlatCAMGUI.py:3992 +msgid "Gerber General" +msgstr "" + #: flatcamGUI/FlatCAMGUI.py:3995 flatcamGUI/FlatCAMGUI.py:4361 #: flatcamGUI/FlatCAMGUI.py:5153 flatcamGUI/FlatCAMGUI.py:5525 #: flatcamGUI/ObjectUI.py:150 flatcamGUI/ObjectUI.py:505 From 5a87006869e32efd910a74a1d9fe2f030f29676c Mon Sep 17 00:00:00 2001 From: camellan Date: Sun, 9 Jun 2019 19:09:18 +0400 Subject: [PATCH 3/5] Edit translation --- locale/ru/LC_MESSAGES/strings.mo | Bin 101135 -> 101775 bytes locale/ru/LC_MESSAGES/strings.po | 54 +++++++++++++++---------------- 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/locale/ru/LC_MESSAGES/strings.mo b/locale/ru/LC_MESSAGES/strings.mo index ff507925a0e43b109a0b726e7364974cf463b8a7..966fc2be51b24805607c6e9d5a123c1aaff38764 100644 GIT binary patch delta 20578 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 delta 20141 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 B\n" "Language-Team: \n" "Language: ru\n" @@ -1737,7 +1737,7 @@ msgstr "Диаметр нового инструмента" #: flatcamEditors/FlatCAMExcEditor.py:847 msgid "Add Tool" -msgstr "Добавить инструмент" +msgstr "Доб. инструм." #: flatcamEditors/FlatCAMExcEditor.py:849 msgid "" @@ -1785,7 +1785,7 @@ msgstr "Изменить размер сверла" #: flatcamEditors/FlatCAMExcEditor.py:924 flatcamGUI/FlatCAMGUI.py:1612 msgid "Add Drill Array" -msgstr "Добавить массив свёрел" +msgstr "Добавить массив отверстий" #: flatcamEditors/FlatCAMExcEditor.py:926 msgid "Add an array of drills (linear or circular array)" @@ -1811,7 +1811,7 @@ msgstr "Круговой" #: flatcamEditors/FlatCAMExcEditor.py:944 flatcamGUI/FlatCAMGUI.py:5065 msgid "Nr of drills:" -msgstr "№ сверла:" +msgstr "Кол-во отверстий:" #: flatcamEditors/FlatCAMExcEditor.py:946 flatcamGUI/FlatCAMGUI.py:5067 msgid "Specify how many drills to be in the array." @@ -1840,7 +1840,7 @@ msgstr "" #: flatcamEditors/FlatCAMExcEditor.py:979 #: flatcamEditors/FlatCAMGrbEditor.py:2541 flatcamGUI/FlatCAMGUI.py:5096 msgid "Pitch:" -msgstr "Подача:" +msgstr "Шаг:" #: flatcamEditors/FlatCAMExcEditor.py:981 #: flatcamEditors/FlatCAMGrbEditor.py:2543 flatcamGUI/FlatCAMGUI.py:5098 @@ -4042,15 +4042,15 @@ msgstr "Сохранить проект" #: flatcamGUI/FlatCAMGUI.py:615 flatcamGUI/FlatCAMGUI.py:1839 msgid "New Blank Geometry" -msgstr "Новый Geometry" +msgstr "Создать Geometry" #: flatcamGUI/FlatCAMGUI.py:616 msgid "New Blank Gerber" -msgstr "Новый Gerber" +msgstr "Создать Gerber" #: flatcamGUI/FlatCAMGUI.py:617 flatcamGUI/FlatCAMGUI.py:1840 msgid "New Blank Excellon" -msgstr "Новый Excellon" +msgstr "Создать Excellon" #: flatcamGUI/FlatCAMGUI.py:619 flatcamGUI/FlatCAMGUI.py:1842 msgid "Editor" @@ -4058,7 +4058,7 @@ msgstr "Редактор" #: flatcamGUI/FlatCAMGUI.py:621 flatcamGUI/FlatCAMGUI.py:1844 msgid "Save Object and close the Editor" -msgstr "" +msgstr "Сохранить объект и закрыть редактор" #: flatcamGUI/FlatCAMGUI.py:625 flatcamGUI/FlatCAMGUI.py:1848 msgid "&Delete" @@ -4119,7 +4119,7 @@ msgstr "Паяльная паста" #: flatcamGUI/FlatCAMGUI.py:649 flatcamGUI/FlatCAMGUI.py:1873 #: flatcamTools/ToolSub.py:26 msgid "Substract Tool" -msgstr "" +msgstr "Вычитатель" #: flatcamGUI/FlatCAMGUI.py:653 flatcamGUI/FlatCAMGUI.py:1878 msgid "Calculators Tool" @@ -4133,27 +4133,27 @@ msgstr "Выбрать" #: flatcamGUI/FlatCAMGUI.py:658 flatcamGUI/FlatCAMGUI.py:1883 msgid "Add Drill Hole" -msgstr "" +msgstr "Добавить отверстие" #: flatcamGUI/FlatCAMGUI.py:660 flatcamGUI/FlatCAMGUI.py:1885 msgid "Add Drill Hole Array" -msgstr "" +msgstr "Добавить массив отверстий" #: flatcamGUI/FlatCAMGUI.py:661 flatcamGUI/FlatCAMGUI.py:1886 msgid "Resize Drill" -msgstr "Изменить размер сверла" +msgstr "Изменить размер отверстия" #: flatcamGUI/FlatCAMGUI.py:664 flatcamGUI/FlatCAMGUI.py:1889 msgid "Copy Drill" -msgstr "Копировать сверло" +msgstr "Копировать отверстие" #: flatcamGUI/FlatCAMGUI.py:665 flatcamGUI/FlatCAMGUI.py:1891 msgid "Delete Drill" -msgstr "Удалить сверло" +msgstr "Удалить отверстие" #: flatcamGUI/FlatCAMGUI.py:668 flatcamGUI/FlatCAMGUI.py:1894 msgid "Move Drill" -msgstr "Переместить сверло" +msgstr "Переместить отверстие" #: flatcamGUI/FlatCAMGUI.py:672 flatcamGUI/FlatCAMGUI.py:1898 msgid "Add Circle" @@ -5614,7 +5614,7 @@ msgstr "Gerber основные" #: flatcamGUI/ObjectUI.py:150 flatcamGUI/ObjectUI.py:505 #: flatcamGUI/ObjectUI.py:833 flatcamGUI/ObjectUI.py:1350 msgid "Plot Options:" -msgstr "Параметры чертёжа:" +msgstr "Отрисовка:" #: flatcamGUI/FlatCAMGUI.py:4002 flatcamGUI/FlatCAMGUI.py:4373 #: flatcamGUI/ObjectUI.py:156 flatcamGUI/ObjectUI.py:506 @@ -5627,7 +5627,7 @@ msgstr "Сплошной цвет полигонов." #: flatcamGUI/FlatCAMGUI.py:4009 flatcamGUI/ObjectUI.py:164 msgid "M-Color" -msgstr "" +msgstr "Мн.цветн" #: flatcamGUI/FlatCAMGUI.py:4011 flatcamGUI/ObjectUI.py:166 msgid "Draw polygons in different colors." @@ -5692,7 +5692,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:4073 flatcamGUI/ObjectUI.py:283 msgid "Pass overlap:" -msgstr "Перекр. за прох.:" +msgstr "Перекрытие:" #: flatcamGUI/FlatCAMGUI.py:4075 flatcamGUI/ObjectUI.py:285 #, python-format @@ -5736,7 +5736,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:4113 flatcamGUI/FlatCAMGUI.py:4139 #: flatcamGUI/ObjectUI.py:430 flatcamGUI/ObjectUI.py:464 msgid "Boundary Margin:" -msgstr "Отступ от дорожек:" +msgstr "Отст. от дорож.:" #: flatcamGUI/FlatCAMGUI.py:4115 flatcamGUI/ObjectUI.py:432 msgid "" @@ -6403,7 +6403,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:5076 msgid "Linear Drill Array:" -msgstr "" +msgstr "Линейный массив:" #: flatcamGUI/FlatCAMGUI.py:5080 msgid "Linear Dir.:" @@ -6411,7 +6411,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:5116 msgid "Circular Drill Array:" -msgstr "" +msgstr "Круговой массив:" #: flatcamGUI/FlatCAMGUI.py:5120 msgid "Circular Dir.:" @@ -7746,7 +7746,7 @@ msgstr "" #: flatcamGUI/ObjectUI.py:443 flatcamGUI/ObjectUI.py:474 msgid "Rounded Geo" -msgstr "" +msgstr "Закруглять" #: flatcamGUI/ObjectUI.py:445 msgid "Resulting geometry will have rounded corners." @@ -9755,7 +9755,7 @@ msgstr "" #: flatcamTools/ToolProperties.py:111 msgid "Properties Tool" -msgstr "Свойства инструмента" +msgstr "Свойства" #: flatcamTools/ToolShell.py:69 msgid "...proccessing..." @@ -10041,7 +10041,7 @@ msgstr "" #: flatcamTools/ToolSub.py:87 msgid "Substract Gerber" -msgstr "" +msgstr "Вычесть Gerber" #: flatcamTools/ToolSub.py:89 msgid "" @@ -10073,7 +10073,7 @@ msgstr "" #: flatcamTools/ToolSub.py:133 msgid "Substract Geometry" -msgstr "Вычесть геометрию" +msgstr "Вычесть Geometry" #: flatcamTools/ToolSub.py:135 msgid "" @@ -10085,7 +10085,7 @@ msgstr "" #: flatcamTools/ToolSub.py:215 msgid "Sub Tool" -msgstr "Инструмент вычитания" +msgstr "Вычитатель" #: flatcamTools/ToolSub.py:230 flatcamTools/ToolSub.py:421 msgid "[ERROR_NOTCL] No Target object loaded." From bfab836a1bf6bd9af3b2281d396247793ee09f28 Mon Sep 17 00:00:00 2001 From: camellan Date: Sun, 9 Jun 2019 19:24:01 +0400 Subject: [PATCH 4/5] Update zoom in and zoom out function. --- FlatCAMApp.py | 7 +------ flatcamGUI/FlatCAMGUI.py | 11 ++--------- 2 files changed, 3 insertions(+), 15 deletions(-) diff --git a/FlatCAMApp.py b/FlatCAMApp.py index 075e32b9..3d6a2713 100644 --- a/FlatCAMApp.py +++ b/FlatCAMApp.py @@ -1417,10 +1417,6 @@ class App(QtCore.QObject): self.ui.menuviewenable.triggered.connect(self.enable_all_plots) self.ui.menuview_zoom_fit.triggered.connect(self.on_zoom_fit) -<<<<<<< HEAD - self.ui.menuview_zoom_in.triggered.connect(lambda: self.plotcanvas.zoom(1.5)) - self.ui.menuview_zoom_out.triggered.connect(lambda: self.plotcanvas.zoom(1 / 1.5)) -======= self.ui.menuview_zoom_in.triggered.connect( lambda: self.plotcanvas.zoom(1 / float(self.defaults['global_zoom_ratio'])) ) @@ -1428,7 +1424,6 @@ class App(QtCore.QObject): lambda: self.plotcanvas.zoom(float(self.defaults['global_zoom_ratio'])) ) ->>>>>>> remotes/jpcgt/flatcam/Beta self.ui.menuview_toggle_code_editor.triggered.connect(self.on_toggle_code_editor) self.ui.menuview_toggle_fscreen.triggered.connect(self.on_fullscreen) self.ui.menuview_toggle_parea.triggered.connect(self.on_toggle_plotarea) @@ -8049,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/FlatCAMGUI.py b/flatcamGUI/FlatCAMGUI.py index 18559f97..580b2d72 100644 --- a/flatcamGUI/FlatCAMGUI.py +++ b/flatcamGUI/FlatCAMGUI.py @@ -1250,7 +1250,7 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
- + ''' ) @@ -1265,7 +1265,7 @@ class FlatCAMGUI(QtWidgets.QMainWindow): '''Editor Shortcut list

GEOMETRY EDITOR
- + @@ -2328,20 +2328,13 @@ class FlatCAMGUI(QtWidgets.QMainWindow): self.app.on_flipy() # Zoom In -<<<<<<< HEAD -======= if key == QtCore.Qt.Key_Equal: self.app.plotcanvas.zoom(1 / self.app.defaults['global_zoom_ratio'], self.app.mouse) # Zoom Out ->>>>>>> remotes/jpcgt/flatcam/Beta if key == QtCore.Qt.Key_Minus: self.app.plotcanvas.zoom(self.app.defaults['global_zoom_ratio'], self.app.mouse) - # Zoom Out - if key == QtCore.Qt.Key_Equal: - self.app.plotcanvas.zoom(1 / self.app.defaults['zoom_ratio'], self.app.mouse) - # toggle display of Notebook area if key == QtCore.Qt.Key_QuoteLeft: self.app.on_toggle_notebook() From 8e71c93a621595a8b01f499407cd32e58050e53f Mon Sep 17 00:00:00 2001 From: camellan Date: Sun, 9 Jun 2019 22:09:15 +0400 Subject: [PATCH 5/5] Update Russian translate. Add translation strings. Update pot. --- flatcamGUI/ObjectUI.py | 2 +- flatcamTools/ToolCutOut.py | 2 +- flatcamTools/ToolMeasurement.py | 4 +- locale/ru/LC_MESSAGES/strings.mo | Bin 101775 -> 105638 bytes locale/ru/LC_MESSAGES/strings.po | 623 ++++++++++++++++--------------- locale_template/strings.pot | 12 +- 6 files changed, 334 insertions(+), 309 deletions(-) diff --git a/flatcamGUI/ObjectUI.py b/flatcamGUI/ObjectUI.py index bb7307c0..4431b933 100644 --- a/flatcamGUI/ObjectUI.py +++ b/flatcamGUI/ObjectUI.py @@ -1499,7 +1499,7 @@ class CNCObjectUI(ObjectUI): self.custom_box.addWidget(self.prepend_text) # Append text to GCode - appendlabel = QtWidgets.QLabel(_('Append to CNC Code')) + appendlabel = QtWidgets.QLabel(_('Append to CNC Code:')) appendlabel.setToolTip( _( "Type here any G-Code commands you would\n" diff --git a/flatcamTools/ToolCutOut.py b/flatcamTools/ToolCutOut.py index 05c4d6be..305e6f3c 100644 --- a/flatcamTools/ToolCutOut.py +++ b/flatcamTools/ToolCutOut.py @@ -310,7 +310,7 @@ class CutOut(FlatCAMTool): FlatCAMTool.run(self) self.set_tool_ui() - self.app.ui.notebook.setTabText(2, "Cutout Tool") + self.app.ui.notebook.setTabText(2, _("Cutout Tool")) def install(self, icon=None, separator=None, **kwargs): FlatCAMTool.install(self, icon, separator, shortcut='ALT+U', **kwargs) diff --git a/flatcamTools/ToolMeasurement.py b/flatcamTools/ToolMeasurement.py index 7cd0ceb7..39a4723e 100644 --- a/flatcamTools/ToolMeasurement.py +++ b/flatcamTools/ToolMeasurement.py @@ -52,10 +52,10 @@ class Measurement(FlatCAMTool): self.stop_label = QtWidgets.QLabel("%s %s:" % (_('Stop'), _('Coords'))) self.stop_label.setToolTip(_("This is the measuring Stop point coordinates.")) - self.distance_x_label = QtWidgets.QLabel("Dx:") + self.distance_x_label = QtWidgets.QLabel(_("Dx:")) self.distance_x_label.setToolTip(_("This is the distance measured over the X axis.")) - self.distance_y_label = QtWidgets.QLabel("Dy:") + self.distance_y_label = QtWidgets.QLabel(_("Dy:")) self.distance_y_label.setToolTip(_("This is the distance measured over the Y axis.")) self.total_distance_label = QtWidgets.QLabel("%s:" % _('DISTANCE')) diff --git a/locale/ru/LC_MESSAGES/strings.mo b/locale/ru/LC_MESSAGES/strings.mo index 966fc2be51b24805607c6e9d5a123c1aaff38764..496bf459585179c6a6bcb10b352d2952d38645b0 100644 GIT binary patch delta 23754 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 Jo9iwO{C{JBOS}L8 delta 20610 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 olDu@h`#62#`~\n" "Language-Team: \n" "Language: ru\n" @@ -28,26 +28,26 @@ msgid "[ERROR] Could not find the Language files. The App strings are missing." msgstr "" "[ERROR] Не удалось найти языковые файлы. Строки приложения отсутствуют." -#: FlatCAMApp.py:2013 ObjectCollection.py:80 flatcamTools/ToolImage.py:213 +#: FlatCAMApp.py:2019 ObjectCollection.py:80 flatcamTools/ToolImage.py:213 #: flatcamTools/ToolPcbWizard.py:299 flatcamTools/ToolPcbWizard.py:322 msgid "Open cancelled." msgstr "Открытие завершено." -#: FlatCAMApp.py:2027 +#: FlatCAMApp.py:2033 msgid "Open Config file failed." msgstr "Не удалось открыть файл конфигурации." -#: FlatCAMApp.py:2041 +#: FlatCAMApp.py:2047 msgid "Open Script file failed." msgstr "Ошибка открытия файла сценария." -#: FlatCAMApp.py:2230 +#: FlatCAMApp.py:2236 msgid "[WARNING_NOTCL] Select a Geometry, Gerber or Excellon Object to edit." msgstr "" "[WARNING_NOTCL] Выберите объект Geometry, Gerber или Excellon для " "редактирования." -#: FlatCAMApp.py:2240 +#: FlatCAMApp.py:2246 msgid "" "[WARNING_NOTCL] Simultanoeus editing of tools geometry in a MultiGeo " "Geometry is not possible.\n" @@ -57,97 +57,97 @@ msgstr "" "невозможно.\n" "Редактируйте только одну геометрию за раз." -#: FlatCAMApp.py:2284 +#: FlatCAMApp.py:2290 msgid "[WARNING_NOTCL] Editor is activated ..." msgstr "[WARNING_NOTCL] Редактор активирован ..." -#: FlatCAMApp.py:2302 +#: FlatCAMApp.py:2308 msgid "Do you want to save the edited object?" msgstr "Вы хотите сохранить редактируемый объект?" -#: FlatCAMApp.py:2303 flatcamGUI/FlatCAMGUI.py:1618 +#: FlatCAMApp.py:2309 flatcamGUI/FlatCAMGUI.py:1618 msgid "Close Editor" msgstr "Закрыть редактор" -#: FlatCAMApp.py:2306 FlatCAMApp.py:3398 FlatCAMApp.py:5876 +#: FlatCAMApp.py:2312 FlatCAMApp.py:3404 FlatCAMApp.py:5882 #: FlatCAMTranslation.py:89 flatcamGUI/FlatCAMGUI.py:3730 msgid "Yes" msgstr "Да" -#: FlatCAMApp.py:2307 FlatCAMApp.py:3399 FlatCAMApp.py:5877 +#: FlatCAMApp.py:2313 FlatCAMApp.py:3405 FlatCAMApp.py:5883 #: FlatCAMTranslation.py:90 flatcamGUI/FlatCAMGUI.py:3731 msgid "No" msgstr "Нет" -#: FlatCAMApp.py:2308 FlatCAMApp.py:3400 FlatCAMApp.py:3732 FlatCAMApp.py:5878 +#: FlatCAMApp.py:2314 FlatCAMApp.py:3406 FlatCAMApp.py:3738 FlatCAMApp.py:5884 msgid "Cancel" msgstr "Отмена" -#: FlatCAMApp.py:2335 +#: FlatCAMApp.py:2341 msgid "[WARNING] Object empty after edit." msgstr "[WARNING] Объект пуст после редактирования." -#: FlatCAMApp.py:2357 FlatCAMApp.py:2376 FlatCAMApp.py:2388 +#: FlatCAMApp.py:2363 FlatCAMApp.py:2382 FlatCAMApp.py:2394 msgid "[WARNING_NOTCL] Select a Gerber, Geometry or Excellon Object to update." msgstr "" "[WARNING_NOTCL] Выберите объект Gerber, Geometry или Excellon для обновления." -#: FlatCAMApp.py:2360 +#: FlatCAMApp.py:2366 #, python-format msgid "[selected] %s is updated, returning to App..." msgstr "[selected] %s обновлён, возврат в приложение ..." -#: FlatCAMApp.py:2725 +#: FlatCAMApp.py:2731 msgid "[ERROR] Could not load defaults file." msgstr "[ERROR] Не удаётся загрузить файл настроек." -#: FlatCAMApp.py:2737 +#: FlatCAMApp.py:2743 msgid "[ERROR] Failed to parse defaults file." msgstr "[ERRORr] Не удаётся прочитать файл настроек." -#: FlatCAMApp.py:2758 FlatCAMApp.py:2762 +#: FlatCAMApp.py:2764 FlatCAMApp.py:2768 msgid "Import FlatCAM Preferences" msgstr "Импорт настроек FlatCAM" -#: FlatCAMApp.py:2768 +#: FlatCAMApp.py:2774 msgid "[WARNING_NOTCL] FlatCAM preferences import cancelled." msgstr "[WARNING_NOTCL] Импорт настроек FlatCAM отменен." -#: FlatCAMApp.py:2776 FlatCAMApp.py:2830 FlatCAMApp.py:3277 +#: FlatCAMApp.py:2782 FlatCAMApp.py:2836 FlatCAMApp.py:3283 msgid "[ERROR_NOTCL] Could not load defaults file." msgstr "[ERROR_NOTCL] Не удалось загрузить файл значений по умолчанию." -#: FlatCAMApp.py:2784 FlatCAMApp.py:3286 +#: FlatCAMApp.py:2790 FlatCAMApp.py:3292 msgid "[ERROR_NOTCL] Failed to parse defaults file." msgstr "[ERROR_NOTCL] Не удалось прочитать файл значений по умолчанию." -#: FlatCAMApp.py:2787 +#: FlatCAMApp.py:2793 #, python-format msgid "[success] Imported Defaults from %s" msgstr "[success] Значения по умолчанию импортированы из %s" -#: FlatCAMApp.py:2802 FlatCAMApp.py:2807 +#: FlatCAMApp.py:2808 FlatCAMApp.py:2813 msgid "Export FlatCAM Preferences" msgstr "Экспорт настроек FlatCAM" -#: FlatCAMApp.py:2814 +#: FlatCAMApp.py:2820 msgid "[WARNING_NOTCL] FlatCAM preferences export cancelled." msgstr "[WARNING_NOTCL] Экспорт настроек FlatCAM завершён." -#: FlatCAMApp.py:2849 FlatCAMApp.py:3331 +#: FlatCAMApp.py:2855 FlatCAMApp.py:3337 msgid "[ERROR_NOTCL] Failed to write defaults to file." msgstr "[ERROR_NOTCL] Не удалось записать значения по умолчанию в файл." -#: FlatCAMApp.py:2902 +#: FlatCAMApp.py:2908 msgid "[ERROR_NOTCL] Failed to open recent files file for writing." msgstr "[ERROR_NOTCL] Не удалось открыть файл истории файлов для записи." -#: FlatCAMApp.py:2979 camlib.py:4443 +#: FlatCAMApp.py:2985 camlib.py:4443 msgid "[ERROR_NOTCL] An internal error has ocurred. See shell.\n" msgstr "" "[ERROR_NOTCL] Произошла внутренняя ошибка. Посмотрите в командную строку.\n" -#: FlatCAMApp.py:2980 +#: FlatCAMApp.py:2986 #, python-brace-format msgid "" "Object ({kind}) failed because: {error} \n" @@ -156,11 +156,11 @@ msgstr "" "Объект ({kind}) не выполнен, потому что: {error} \n" "\n" -#: FlatCAMApp.py:3000 +#: FlatCAMApp.py:3006 msgid "Converting units to " msgstr "Конвертирование единиц в " -#: FlatCAMApp.py:3079 FlatCAMApp.py:3082 FlatCAMApp.py:3085 FlatCAMApp.py:3088 +#: FlatCAMApp.py:3085 FlatCAMApp.py:3088 FlatCAMApp.py:3091 FlatCAMApp.py:3094 #, python-brace-format msgid "" "[selected] {kind} created/selected: {name}{name}" -#: FlatCAMApp.py:3182 +#: FlatCAMApp.py:3188 #, python-brace-format msgid "" "FlatCAM
Version {version} {beta} ({date}) - " @@ -191,31 +191,31 @@ msgstr "" "a>
ЗАГРУЗИТЬ можно отсюда.
" -#: FlatCAMApp.py:3335 +#: FlatCAMApp.py:3341 msgid "[success] Defaults saved." msgstr "[success] Значения по умолчанию сохранены." -#: FlatCAMApp.py:3356 +#: FlatCAMApp.py:3362 msgid "[ERROR_NOTCL] Could not load factory defaults file." msgstr "[ERROR_NOTCL] Не удалось загрузить файл с исходными значениями." -#: FlatCAMApp.py:3365 +#: FlatCAMApp.py:3371 msgid "[ERROR_NOTCL] Failed to parse factory defaults file." msgstr "[ERROR_NOTCL] Не удалось прочитать файл с исходными значениями." -#: FlatCAMApp.py:3379 +#: FlatCAMApp.py:3385 msgid "[ERROR_NOTCL] Failed to write factory defaults to file." msgstr "[ERROR_NOTCL] Не удалось записать исходные значения в файл." -#: FlatCAMApp.py:3383 +#: FlatCAMApp.py:3389 msgid "Factory defaults saved." msgstr "Исходные значения сохранены." -#: FlatCAMApp.py:3388 flatcamGUI/FlatCAMGUI.py:3106 +#: FlatCAMApp.py:3394 flatcamGUI/FlatCAMGUI.py:3106 msgid "[WARNING_NOTCL] Application is saving the project. Please wait ..." msgstr "[WARNING_NOTCL] Приложение сохраняет проект. Пожалуйста, подождите ..." -#: FlatCAMApp.py:3393 +#: FlatCAMApp.py:3399 msgid "" "There are files/objects modified in FlatCAM. \n" "Do you want to Save the project?" @@ -223,11 +223,11 @@ msgstr "" "Есть файлы/объекты, измененные в FlatCAM.\n" "Вы хотите сохранить проект?" -#: FlatCAMApp.py:3396 FlatCAMApp.py:5874 +#: FlatCAMApp.py:3402 FlatCAMApp.py:5880 msgid "Save changes" msgstr "Сохранить изменения" -#: FlatCAMApp.py:3463 +#: FlatCAMApp.py:3469 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 +243,70 @@ msgstr "" "потеряна, и результат может не соответствовать ожидаемому. \n" "Проверьте сгенерированный GCODE." -#: FlatCAMApp.py:3504 +#: FlatCAMApp.py:3510 msgid "[ERROR_NOTCL] Failed. Excellon joining works only on Excellon objects." msgstr "" "[ERROR_NOTCL] Неудача. Присоединение Excellon работает только на объектах " "Excellon." -#: FlatCAMApp.py:3526 +#: FlatCAMApp.py:3532 msgid "[ERROR_NOTCL] Failed. Gerber joining works only on Gerber objects." msgstr "" "[ERROR_NOTCL] Неудача. Объединение Gerber работает только на объектах Gerber." -#: FlatCAMApp.py:3541 FlatCAMApp.py:3566 +#: FlatCAMApp.py:3547 FlatCAMApp.py:3572 msgid "[ERROR_NOTCL] Failed. Select a Geometry Object and try again." msgstr "[ERROR_NOTCL] Неудалось. Выберите объект Geometry и попробуйте снова." -#: FlatCAMApp.py:3545 FlatCAMApp.py:3570 +#: FlatCAMApp.py:3551 FlatCAMApp.py:3576 #, python-format msgid "[ERROR_NOTCL] Expected a FlatCAMGeometry, got %s" msgstr "[ERROR_NOTCL] Ожидается FlatCAMGeometry, получено %s" -#: FlatCAMApp.py:3558 +#: FlatCAMApp.py:3564 msgid "[success] A Geometry object was converted to MultiGeo type." msgstr "[success] Объект Geometry был преобразован в тип MultiGeo." -#: FlatCAMApp.py:3584 +#: FlatCAMApp.py:3590 msgid "[success] A Geometry object was converted to SingleGeo type." msgstr "[success] Объект Geometry был преобразован в тип SingleGeo." -#: FlatCAMApp.py:3731 FlatCAMApp.py:4567 FlatCAMApp.py:6141 FlatCAMApp.py:6152 -#: FlatCAMApp.py:6392 FlatCAMApp.py:6402 +#: FlatCAMApp.py:3737 FlatCAMApp.py:4573 FlatCAMApp.py:6155 FlatCAMApp.py:6166 +#: FlatCAMApp.py:6406 FlatCAMApp.py:6416 msgid "Ok" msgstr "Да" -#: FlatCAMApp.py:3773 +#: FlatCAMApp.py:3779 #, python-format msgid "[success] Converted units to %s" msgstr "[success] Конвертирование единиц в %s" -#: FlatCAMApp.py:3784 +#: FlatCAMApp.py:3790 msgid "[WARNING_NOTCL] Units conversion cancelled." msgstr "[WARNING_NOTCL] Преобразование единиц завершено." -#: FlatCAMApp.py:4436 +#: FlatCAMApp.py:4442 msgid "Open file" msgstr "Открыть файл" -#: FlatCAMApp.py:4467 FlatCAMApp.py:4472 +#: FlatCAMApp.py:4473 FlatCAMApp.py:4478 msgid "Export G-Code ..." msgstr "Экспорт G-Code …" -#: FlatCAMApp.py:4475 +#: FlatCAMApp.py:4481 msgid "[WARNING_NOTCL] Export Code cancelled." msgstr "[WARNING_NOTCL] Экспорт Code завершён." -#: FlatCAMApp.py:4485 +#: FlatCAMApp.py:4491 msgid "[WARNING] No such file or directory" msgstr "[WARNING] Нет такого файла или каталога" -#: FlatCAMApp.py:4492 +#: FlatCAMApp.py:4498 #, python-format msgid "Saved to: %s" msgstr "Сохранёно в: %s" -#: FlatCAMApp.py:4555 FlatCAMApp.py:4588 FlatCAMApp.py:4599 FlatCAMApp.py:4610 +#: FlatCAMApp.py:4561 FlatCAMApp.py:4594 FlatCAMApp.py:4605 FlatCAMApp.py:4616 #: flatcamTools/ToolNonCopperClear.py:489 flatcamTools/ToolSolderPaste.py:765 msgid "" "[WARNING_NOTCL] Please enter a tool diameter with non-zero value, in Float " @@ -315,12 +315,12 @@ msgstr "" "[WARNING_NOTCL] Пожалуйста, введите диаметр инструмента с ненулевым " "значением в float формате." -#: FlatCAMApp.py:4560 FlatCAMApp.py:4593 FlatCAMApp.py:4604 FlatCAMApp.py:4615 +#: FlatCAMApp.py:4566 FlatCAMApp.py:4599 FlatCAMApp.py:4610 FlatCAMApp.py:4621 #: flatcamGUI/FlatCAMGUI.py:3001 msgid "[WARNING_NOTCL] Adding Tool cancelled ..." msgstr "[WARNING_NOTCL] Добавление инструмента завершено ..." -#: FlatCAMApp.py:4563 +#: FlatCAMApp.py:4569 msgid "" "Adding Tool works only when Advanced is checked.\n" "Go to Preferences -> General - Show Advanced Options." @@ -329,35 +329,35 @@ msgstr "" "«Дополнительно».\n" "Перейдите в Настройки -> Основные парам. - Показать дополнительные параметры." -#: FlatCAMApp.py:4676 +#: FlatCAMApp.py:4682 msgid "Object(s) deleted ..." msgstr "Объект(ы) удален ..." -#: FlatCAMApp.py:4680 +#: FlatCAMApp.py:4686 msgid "Failed. No object(s) selected..." msgstr "Нудача. Объекты не выбраны ..." -#: FlatCAMApp.py:4682 +#: FlatCAMApp.py:4688 msgid "Save the work in Editor and try again ..." msgstr "Сохраните работу в редакторе и попробуйте снова ..." -#: FlatCAMApp.py:4695 +#: FlatCAMApp.py:4701 msgid "Click to set the origin ..." msgstr "Кликните, чтобы указать начало ..." -#: FlatCAMApp.py:4707 +#: FlatCAMApp.py:4713 msgid "Jump to ..." msgstr "Перейти к ..." -#: FlatCAMApp.py:4708 +#: FlatCAMApp.py:4714 msgid "Enter the coordinates in format X,Y:" msgstr "Введите координаты в формате X, Y:" -#: FlatCAMApp.py:4715 +#: FlatCAMApp.py:4721 msgid "Wrong coordinates. Enter coordinates in format: X,Y" msgstr "Неверные координаты. Введите координаты в формате: X, Y" -#: FlatCAMApp.py:4733 flatcamEditors/FlatCAMExcEditor.py:2320 +#: FlatCAMApp.py:4739 flatcamEditors/FlatCAMExcEditor.py:2320 #: flatcamEditors/FlatCAMExcEditor.py:2327 #: flatcamEditors/FlatCAMGeoEditor.py:3645 #: flatcamEditors/FlatCAMGeoEditor.py:3659 @@ -371,84 +371,84 @@ msgstr "Неверные координаты. Введите координат msgid "[success] Done." msgstr "[success] Готово." -#: FlatCAMApp.py:4865 FlatCAMApp.py:4932 +#: FlatCAMApp.py:4871 FlatCAMApp.py:4938 msgid "[WARNING_NOTCL] No object is selected. Select an object and try again." msgstr "[WARNING_NOTCL] Объект не выбран. Выберите объект и попробуйте снова." -#: FlatCAMApp.py:4973 +#: FlatCAMApp.py:4979 msgid "[success] Origin set ..." msgstr "[success] Начало установлено ..." -#: FlatCAMApp.py:4993 +#: FlatCAMApp.py:4999 msgid "Preferences" msgstr "Настройки" -#: FlatCAMApp.py:5013 +#: FlatCAMApp.py:5019 msgid "[WARNING_NOTCL] No object selected to Flip on Y axis." msgstr "[WARNING_NOTCL] Не выбран объект для отражения по оси Y." -#: FlatCAMApp.py:5038 +#: FlatCAMApp.py:5044 msgid "[success] Flip on Y axis done." msgstr "[success] Отражение по оси Y завершено." -#: FlatCAMApp.py:5040 FlatCAMApp.py:5080 +#: FlatCAMApp.py:5046 FlatCAMApp.py:5086 #: 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:5053 +#: FlatCAMApp.py:5059 msgid "[WARNING_NOTCL] No object selected to Flip on X axis." msgstr "[WARNING_NOTCL] Не выбран объект для отражения по оси Х." -#: FlatCAMApp.py:5078 +#: FlatCAMApp.py:5084 msgid "[success] Flip on X axis done." msgstr "[success] Отражение по оси Х завершено." -#: FlatCAMApp.py:5093 +#: FlatCAMApp.py:5099 msgid "[WARNING_NOTCL] No object selected to Rotate." msgstr "[WARNING_NOTCL] Не выбран ни один объект для вращения." -#: FlatCAMApp.py:5096 FlatCAMApp.py:5141 FlatCAMApp.py:5172 +#: FlatCAMApp.py:5102 FlatCAMApp.py:5147 FlatCAMApp.py:5178 msgid "Transform" msgstr "Трансформация" -#: FlatCAMApp.py:5096 FlatCAMApp.py:5141 FlatCAMApp.py:5172 +#: FlatCAMApp.py:5102 FlatCAMApp.py:5147 FlatCAMApp.py:5178 msgid "Enter the Angle value:" msgstr "Введите значение угла:" -#: FlatCAMApp.py:5126 +#: FlatCAMApp.py:5132 msgid "[success] Rotation done." msgstr "[success] Вращение завершено." -#: FlatCAMApp.py:5128 flatcamEditors/FlatCAMGeoEditor.py:1298 +#: FlatCAMApp.py:5134 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:5139 +#: FlatCAMApp.py:5145 msgid "[WARNING_NOTCL] No object selected to Skew/Shear on X axis." msgstr "[WARNING_NOTCL] Не выбран ни один объект для наклона/сдвига по оси X." -#: FlatCAMApp.py:5160 +#: FlatCAMApp.py:5166 msgid "[success] Skew on X axis done." msgstr "[success] Наклон по оси X выполнен." -#: FlatCAMApp.py:5170 +#: FlatCAMApp.py:5176 msgid "[WARNING_NOTCL] No object selected to Skew/Shear on Y axis." msgstr "" -#: FlatCAMApp.py:5191 +#: FlatCAMApp.py:5197 msgid "[success] Skew on Y axis done." msgstr "" -#: FlatCAMApp.py:5260 +#: FlatCAMApp.py:5266 msgid "Grid On/Off" -msgstr "" +msgstr "Сетка вкл/откл" -#: FlatCAMApp.py:5273 flatcamEditors/FlatCAMGeoEditor.py:937 +#: FlatCAMApp.py:5279 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 +458,7 @@ msgstr "" msgid "Add" msgstr "Добавить" -#: FlatCAMApp.py:5274 FlatCAMObj.py:3306 +#: FlatCAMApp.py:5280 FlatCAMObj.py:3306 #: 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 +467,15 @@ msgstr "Добавить" msgid "Delete" msgstr "Удалить" -#: FlatCAMApp.py:5287 +#: FlatCAMApp.py:5293 msgid "New Grid ..." msgstr "Новая сетка ..." -#: FlatCAMApp.py:5288 +#: FlatCAMApp.py:5294 msgid "Enter a Grid Value:" msgstr "Введите размер сетки:" -#: FlatCAMApp.py:5296 FlatCAMApp.py:5323 +#: FlatCAMApp.py:5302 FlatCAMApp.py:5329 msgid "" "[WARNING_NOTCL] Please enter a grid value with non-zero value, in Float " "format." @@ -483,48 +483,48 @@ msgstr "" "[WARNING_NOTCL] Пожалуйста, введите значение сетки с ненулевым значением в " "float формате." -#: FlatCAMApp.py:5302 +#: FlatCAMApp.py:5308 msgid "[success] New Grid added ..." msgstr "[success] Новая сетка добавлена ..." -#: FlatCAMApp.py:5305 +#: FlatCAMApp.py:5311 msgid "[WARNING_NOTCL] Grid already exists ..." msgstr "" -#: FlatCAMApp.py:5308 +#: FlatCAMApp.py:5314 msgid "[WARNING_NOTCL] Adding New Grid cancelled ..." msgstr "" -#: FlatCAMApp.py:5330 +#: FlatCAMApp.py:5336 msgid "[ERROR_NOTCL] Grid Value does not exist ..." msgstr "" -#: FlatCAMApp.py:5333 +#: FlatCAMApp.py:5339 msgid "[success] Grid Value deleted ..." msgstr "" -#: FlatCAMApp.py:5336 +#: FlatCAMApp.py:5342 msgid "[WARNING_NOTCL] Delete Grid value cancelled ..." msgstr "" -#: FlatCAMApp.py:5375 +#: FlatCAMApp.py:5381 msgid "[WARNING_NOTCL] No object selected to copy it's name" msgstr "" -#: FlatCAMApp.py:5379 +#: FlatCAMApp.py:5385 msgid "Name copied on clipboard ..." msgstr "Имя скопировано в буфер обмена ..." -#: FlatCAMApp.py:5672 FlatCAMApp.py:5675 FlatCAMApp.py:5678 FlatCAMApp.py:5681 -#: FlatCAMApp.py:5696 FlatCAMApp.py:5699 FlatCAMApp.py:5702 FlatCAMApp.py:5705 -#: FlatCAMApp.py:5745 FlatCAMApp.py:5748 FlatCAMApp.py:5751 FlatCAMApp.py:5754 -#: ObjectCollection.py:717 ObjectCollection.py:720 ObjectCollection.py:723 -#: ObjectCollection.py:726 +#: 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 +#: ObjectCollection.py:719 ObjectCollection.py:722 ObjectCollection.py:725 +#: ObjectCollection.py:728 #, python-brace-format msgid "[selected]{name} selected" msgstr "[selected]{name} выбран" -#: FlatCAMApp.py:5871 +#: FlatCAMApp.py:5877 msgid "" "There are files/objects opened in FlatCAM.\n" "Creating a New project will delete them.\n" @@ -534,216 +534,216 @@ msgstr "" "Создание нового проекта удалит их.\n" "Вы хотите сохранить проект?" -#: FlatCAMApp.py:5892 +#: FlatCAMApp.py:5898 msgid "[success] New Project created..." msgstr "[success] Новый проект создан ..." -#: FlatCAMApp.py:6000 FlatCAMApp.py:6003 flatcamGUI/FlatCAMGUI.py:608 +#: FlatCAMApp.py:6014 FlatCAMApp.py:6017 flatcamGUI/FlatCAMGUI.py:608 #: flatcamGUI/FlatCAMGUI.py:1832 msgid "Open Gerber" msgstr "Открыть Gerber" -#: FlatCAMApp.py:6008 +#: FlatCAMApp.py:6022 msgid "[WARNING_NOTCL] Open Gerber cancelled." msgstr "" -#: FlatCAMApp.py:6029 FlatCAMApp.py:6032 flatcamGUI/FlatCAMGUI.py:609 +#: FlatCAMApp.py:6043 FlatCAMApp.py:6046 flatcamGUI/FlatCAMGUI.py:609 #: flatcamGUI/FlatCAMGUI.py:1833 msgid "Open Excellon" msgstr "Открыть Excellon" -#: FlatCAMApp.py:6037 +#: FlatCAMApp.py:6051 msgid "[WARNING_NOTCL] Open Excellon cancelled." msgstr "" -#: FlatCAMApp.py:6059 FlatCAMApp.py:6062 +#: FlatCAMApp.py:6073 FlatCAMApp.py:6076 msgid "Open G-Code" msgstr "Открыть G-Code" -#: FlatCAMApp.py:6067 +#: FlatCAMApp.py:6081 msgid "[WARNING_NOTCL] Open G-Code cancelled." msgstr "" -#: FlatCAMApp.py:6085 FlatCAMApp.py:6088 +#: FlatCAMApp.py:6099 FlatCAMApp.py:6102 msgid "Open Project" msgstr "Открыть проект" -#: FlatCAMApp.py:6096 +#: FlatCAMApp.py:6110 msgid "[WARNING_NOTCL] Open Project cancelled." msgstr "" -#: FlatCAMApp.py:6115 FlatCAMApp.py:6118 +#: FlatCAMApp.py:6129 FlatCAMApp.py:6132 msgid "Open Configuration File" msgstr "Открыть файл конфигурации" -#: FlatCAMApp.py:6122 -msgid "[WARNING_NOTCL Open Config cancelled." +#: FlatCAMApp.py:6136 +msgid "[WARNING_NOTCL] Open Config cancelled." msgstr "[WARNING_NOTCL] Открытие конфигурации завершено." -#: FlatCAMApp.py:6137 FlatCAMApp.py:6388 FlatCAMApp.py:8538 FlatCAMApp.py:8558 -#: FlatCAMApp.py:8579 FlatCAMApp.py:8601 +#: FlatCAMApp.py:6151 FlatCAMApp.py:6402 FlatCAMApp.py:8552 FlatCAMApp.py:8572 +#: FlatCAMApp.py:8593 FlatCAMApp.py:8615 msgid "[WARNING_NOTCL] No object selected." msgstr "[WARNING_NOTCL] Нет выбранных объектов." -#: FlatCAMApp.py:6138 FlatCAMApp.py:6389 +#: FlatCAMApp.py:6152 FlatCAMApp.py:6403 msgid "Please Select a Geometry object to export" msgstr "Выберите объект Geometry для экспорта" -#: FlatCAMApp.py:6149 +#: FlatCAMApp.py:6163 msgid "[ERROR_NOTCL] Only Geometry, Gerber and CNCJob objects can be used." msgstr "" -#: FlatCAMApp.py:6162 FlatCAMApp.py:6166 +#: FlatCAMApp.py:6176 FlatCAMApp.py:6180 msgid "Export SVG" msgstr "Экспорт SVG" -#: FlatCAMApp.py:6171 +#: FlatCAMApp.py:6185 msgid "[WARNING_NOTCL] Export SVG cancelled." msgstr "" -#: FlatCAMApp.py:6190 +#: FlatCAMApp.py:6204 msgid "[[WARNING_NOTCL]] Data must be a 3D array with last dimension 3 or 4" msgstr "" -#: FlatCAMApp.py:6196 FlatCAMApp.py:6200 +#: FlatCAMApp.py:6210 FlatCAMApp.py:6214 msgid "Export PNG Image" msgstr "Экспорт PNG изображения" -#: FlatCAMApp.py:6205 +#: FlatCAMApp.py:6219 msgid "Export PNG cancelled." msgstr "Экспорт PNG завершён." -#: FlatCAMApp.py:6224 +#: FlatCAMApp.py:6238 msgid "" "[WARNING_NOTCL] No object selected. Please select an Gerber object to export." msgstr "" "[WARNING_NOTCL] Нет выбранных объектов. Пожалуйста, выберите Gerber объект " "для экспорта." -#: FlatCAMApp.py:6229 FlatCAMApp.py:6352 +#: FlatCAMApp.py:6243 FlatCAMApp.py:6366 msgid "" "[ERROR_NOTCL] Failed. Only Gerber objects can be saved as Gerber files..." msgstr "" -#: FlatCAMApp.py:6241 +#: FlatCAMApp.py:6255 msgid "Save Gerber source file" msgstr "Сохранить исходный файл Gerber" -#: FlatCAMApp.py:6246 +#: FlatCAMApp.py:6260 msgid "[WARNING_NOTCL] Save Gerber source file cancelled." msgstr "" -#: FlatCAMApp.py:6265 +#: FlatCAMApp.py:6279 msgid "" "[WARNING_NOTCL] No object selected. Please select an Excellon object to " "export." msgstr "" -#: FlatCAMApp.py:6270 FlatCAMApp.py:6311 +#: FlatCAMApp.py:6284 FlatCAMApp.py:6325 msgid "" "[ERROR_NOTCL] Failed. Only Excellon objects can be saved as Excellon files..." msgstr "" -#: FlatCAMApp.py:6278 FlatCAMApp.py:6282 +#: FlatCAMApp.py:6292 FlatCAMApp.py:6296 msgid "Save Excellon source file" msgstr "Сохранить исходный файл Excellon" -#: FlatCAMApp.py:6287 +#: FlatCAMApp.py:6301 msgid "[WARNING_NOTCL] Saving Excellon source file cancelled." msgstr "" -#: FlatCAMApp.py:6306 +#: FlatCAMApp.py:6320 msgid "" "[WARNING_NOTCL] No object selected. Please Select an Excellon object to " "export." msgstr "" -#: FlatCAMApp.py:6319 FlatCAMApp.py:6323 +#: FlatCAMApp.py:6333 FlatCAMApp.py:6337 msgid "Export Excellon" msgstr "Экспорт Excellon" -#: FlatCAMApp.py:6328 +#: FlatCAMApp.py:6342 msgid "[WARNING_NOTCL] Export Excellon cancelled." msgstr "" -#: FlatCAMApp.py:6347 +#: FlatCAMApp.py:6361 msgid "" "[WARNING_NOTCL] No object selected. Please Select an Gerber object to export." msgstr "" "[WARNING_NOTCL] Нет выбранных объектов. Пожалуйста, выберите Gerber объект " "для экспорта." -#: FlatCAMApp.py:6360 FlatCAMApp.py:6364 +#: FlatCAMApp.py:6374 FlatCAMApp.py:6378 msgid "Export Gerber" msgstr "Экспорт Gerber" -#: FlatCAMApp.py:6369 +#: FlatCAMApp.py:6383 msgid "[WARNING_NOTCL] Export Gerber cancelled." msgstr "" -#: FlatCAMApp.py:6399 +#: FlatCAMApp.py:6413 msgid "[ERROR_NOTCL] Only Geometry objects can be used." msgstr "" -#: FlatCAMApp.py:6413 FlatCAMApp.py:6417 +#: FlatCAMApp.py:6427 FlatCAMApp.py:6431 msgid "Export DXF" msgstr "Экспорт DXF" -#: FlatCAMApp.py:6423 +#: FlatCAMApp.py:6437 msgid "[WARNING_NOTCL] Export DXF cancelled." msgstr "" -#: FlatCAMApp.py:6443 FlatCAMApp.py:6446 +#: FlatCAMApp.py:6457 FlatCAMApp.py:6460 msgid "Import SVG" msgstr "Импорт SVG" -#: FlatCAMApp.py:6455 +#: FlatCAMApp.py:6469 msgid "[WARNING_NOTCL] Open SVG cancelled." msgstr "" -#: FlatCAMApp.py:6474 FlatCAMApp.py:6478 +#: FlatCAMApp.py:6488 FlatCAMApp.py:6492 msgid "Import DXF" msgstr "Импорт DXF" -#: FlatCAMApp.py:6487 +#: FlatCAMApp.py:6501 msgid "[WARNING_NOTCL] Open DXF cancelled." msgstr "" -#: FlatCAMApp.py:6505 +#: FlatCAMApp.py:6519 #, python-format msgid "%s" msgstr "%s" -#: FlatCAMApp.py:6525 +#: FlatCAMApp.py:6539 msgid "" "[WARNING_NOTCL] Select an Gerber or Excellon file to view it's source file." msgstr "" -#: FlatCAMApp.py:6532 +#: FlatCAMApp.py:6546 msgid "" "[WARNING_NOTCL] There is no selected object for which to see it's source " "file code." msgstr "" -#: FlatCAMApp.py:6540 +#: FlatCAMApp.py:6554 msgid "Source Editor" msgstr "Редактор исходного кода" -#: FlatCAMApp.py:6550 +#: FlatCAMApp.py:6564 #, python-format msgid "[ERROR]App.on_view_source() -->%s" msgstr "" -#: FlatCAMApp.py:6562 FlatCAMApp.py:7704 FlatCAMObj.py:5587 +#: FlatCAMApp.py:6576 FlatCAMApp.py:7718 FlatCAMObj.py:5587 #: flatcamTools/ToolSolderPaste.py:1278 msgid "Code Editor" msgstr "Редактор кода" -#: FlatCAMApp.py:6574 +#: FlatCAMApp.py:6588 msgid "Script Editor" msgstr "Редактор сценариев" -#: FlatCAMApp.py:6577 +#: FlatCAMApp.py:6591 msgid "" "#\n" "# CREATE A NEW FLATCAM TCL SCRIPT\n" @@ -787,216 +787,216 @@ msgstr "" "#\n" "\n" -#: FlatCAMApp.py:6600 FlatCAMApp.py:6603 +#: FlatCAMApp.py:6614 FlatCAMApp.py:6617 msgid "Open TCL script" msgstr "Открыть сценарий TCL" -#: FlatCAMApp.py:6611 +#: FlatCAMApp.py:6625 msgid "[WARNING_NOTCL] Open TCL script cancelled." msgstr "" -#: FlatCAMApp.py:6623 +#: FlatCAMApp.py:6637 #, python-format msgid "[ERROR]App.on_fileopenscript() -->%s" msgstr "" -#: FlatCAMApp.py:6649 FlatCAMApp.py:6652 +#: FlatCAMApp.py:6663 FlatCAMApp.py:6666 msgid "Run TCL script" msgstr "Запустить сценарий TCL" -#: FlatCAMApp.py:6660 +#: FlatCAMApp.py:6674 msgid "[WARNING_NOTCL] Run TCL script cancelled." msgstr "" -#: FlatCAMApp.py:6710 FlatCAMApp.py:6714 +#: FlatCAMApp.py:6724 FlatCAMApp.py:6728 msgid "Save Project As ..." msgstr "Сохранить проект как..." -#: FlatCAMApp.py:6711 +#: FlatCAMApp.py:6725 #, python-brace-format msgid "{l_save}/Project_{date}" msgstr "{l_save}/Project_{date}" -#: FlatCAMApp.py:6719 +#: FlatCAMApp.py:6733 msgid "[WARNING_NOTCL] Save Project cancelled." msgstr "" -#: FlatCAMApp.py:6763 +#: FlatCAMApp.py:6777 msgid "Exporting SVG" msgstr "Экспортирование SVG" -#: FlatCAMApp.py:6797 FlatCAMApp.py:6903 FlatCAMApp.py:7018 +#: FlatCAMApp.py:6811 FlatCAMApp.py:6917 FlatCAMApp.py:7032 #, python-format msgid "[success] SVG file exported to %s" msgstr "" -#: FlatCAMApp.py:6828 FlatCAMApp.py:6949 +#: FlatCAMApp.py:6842 FlatCAMApp.py:6963 #, python-format msgid "[WARNING_NOTCL] No object Box. Using instead %s" msgstr "" -#: FlatCAMApp.py:6906 FlatCAMApp.py:7021 +#: FlatCAMApp.py:6920 FlatCAMApp.py:7035 msgid "Generating Film ... Please wait." msgstr "Создание фильма ... Пожалуйста, подождите." -#: FlatCAMApp.py:7169 +#: FlatCAMApp.py:7183 #, python-format msgid "[success] Excellon file exported to %s" msgstr "" -#: FlatCAMApp.py:7176 +#: FlatCAMApp.py:7190 msgid "Exporting Excellon" msgstr "Экспорт Excellon" -#: FlatCAMApp.py:7181 FlatCAMApp.py:7188 +#: FlatCAMApp.py:7195 FlatCAMApp.py:7202 msgid "[ERROR_NOTCL] Could not export Excellon file." msgstr "" -#: FlatCAMApp.py:7286 +#: FlatCAMApp.py:7300 #, python-format msgid "[success] Gerber file exported to %s" msgstr "" -#: FlatCAMApp.py:7293 +#: FlatCAMApp.py:7307 msgid "Exporting Gerber" msgstr "Экспортирование Gerber" -#: FlatCAMApp.py:7298 FlatCAMApp.py:7305 +#: FlatCAMApp.py:7312 FlatCAMApp.py:7319 msgid "[ERROR_NOTCL] Could not export Gerber file." msgstr "" -#: FlatCAMApp.py:7345 +#: FlatCAMApp.py:7359 #, python-format msgid "[success] DXF file exported to %s" msgstr "" -#: FlatCAMApp.py:7351 +#: FlatCAMApp.py:7365 msgid "Exporting DXF" msgstr "Экспорт DXF" -#: FlatCAMApp.py:7356 FlatCAMApp.py:7363 +#: FlatCAMApp.py:7370 FlatCAMApp.py:7377 msgid "[[WARNING_NOTCL]] Could not export DXF file." msgstr "" -#: FlatCAMApp.py:7383 FlatCAMApp.py:7425 FlatCAMApp.py:7469 +#: FlatCAMApp.py:7397 FlatCAMApp.py:7439 FlatCAMApp.py:7483 msgid "" "[ERROR_NOTCL] Not supported type is picked as parameter. Only Geometry and " "Gerber are supported" msgstr "" -#: FlatCAMApp.py:7393 +#: FlatCAMApp.py:7407 msgid "Importing SVG" msgstr "Импортирование SVG" -#: FlatCAMApp.py:7404 FlatCAMApp.py:7446 FlatCAMApp.py:7489 FlatCAMApp.py:7566 -#: FlatCAMApp.py:7627 FlatCAMApp.py:7690 flatcamTools/ToolPDF.py:212 +#: FlatCAMApp.py:7418 FlatCAMApp.py:7460 FlatCAMApp.py:7503 FlatCAMApp.py:7580 +#: FlatCAMApp.py:7641 FlatCAMApp.py:7704 flatcamTools/ToolPDF.py:212 #, python-format msgid "[success] Opened: %s" msgstr "[success] Открыт: %s" -#: FlatCAMApp.py:7435 +#: FlatCAMApp.py:7449 msgid "Importing DXF" msgstr "Импорт DXF" -#: FlatCAMApp.py:7477 +#: FlatCAMApp.py:7491 msgid "Importing Image" msgstr "Импорт изображения" -#: FlatCAMApp.py:7518 FlatCAMApp.py:7520 +#: FlatCAMApp.py:7532 FlatCAMApp.py:7534 #, python-format msgid "[ERROR_NOTCL] Failed to open file: %s" msgstr "" -#: FlatCAMApp.py:7523 +#: FlatCAMApp.py:7537 #, python-brace-format msgid "[ERROR_NOTCL] Failed to parse file: {name}. {error}" msgstr "" -#: FlatCAMApp.py:7530 FlatCAMObj.py:4266 +#: FlatCAMApp.py:7544 FlatCAMObj.py:4266 #: flatcamEditors/FlatCAMExcEditor.py:2077 msgid "[ERROR] An internal error has ocurred. See shell.\n" msgstr "[ERROR] Произошла внутренняя ошибка. Посмотрите в командную строку.\n" -#: FlatCAMApp.py:7539 +#: FlatCAMApp.py:7553 msgid "" "[ERROR_NOTCL] Object is not Gerber file or empty. Aborting object creation." msgstr "" -#: FlatCAMApp.py:7547 +#: FlatCAMApp.py:7561 msgid "Opening Gerber" msgstr "Открытие Gerber" -#: FlatCAMApp.py:7557 +#: FlatCAMApp.py:7571 msgid "[ERROR_NOTCL] Open Gerber failed. Probable not a Gerber file." msgstr "" -#: FlatCAMApp.py:7590 flatcamTools/ToolPcbWizard.py:421 +#: FlatCAMApp.py:7604 flatcamTools/ToolPcbWizard.py:421 msgid "[ERROR_NOTCL] This is not Excellon file." msgstr "" -#: FlatCAMApp.py:7593 +#: FlatCAMApp.py:7607 #, python-format msgid "[ERROR_NOTCL] Cannot open file: %s" msgstr "" -#: FlatCAMApp.py:7598 flatcamTools/ToolPcbWizard.py:429 +#: FlatCAMApp.py:7612 flatcamTools/ToolPcbWizard.py:429 msgid "[ERROR_NOTCL] An internal error has occurred. See shell.\n" msgstr "" -#: FlatCAMApp.py:7611 flatcamTools/ToolPDF.py:262 +#: FlatCAMApp.py:7625 flatcamTools/ToolPDF.py:262 #: flatcamTools/ToolPcbWizard.py:442 #, python-format msgid "[ERROR_NOTCL] No geometry found in file: %s" msgstr "" -#: FlatCAMApp.py:7614 +#: FlatCAMApp.py:7628 msgid "Opening Excellon." msgstr "Открытие Excellon." -#: FlatCAMApp.py:7620 +#: FlatCAMApp.py:7634 msgid "[ERROR_NOTCL] Open Excellon file failed. Probable not an Excellon file." msgstr "" -#: FlatCAMApp.py:7657 +#: FlatCAMApp.py:7671 #, python-format msgid "[ERROR_NOTCL] Failed to open %s" msgstr "" -#: FlatCAMApp.py:7667 +#: FlatCAMApp.py:7681 msgid "[ERROR_NOTCL] This is not GCODE" msgstr "" -#: FlatCAMApp.py:7673 +#: FlatCAMApp.py:7687 msgid "Opening G-Code." msgstr "Открытие G-Code." -#: FlatCAMApp.py:7681 +#: FlatCAMApp.py:7695 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:7721 +#: FlatCAMApp.py:7735 #, python-format msgid "[ERROR_NOTCL] Failed to open config file: %s" msgstr "" -#: FlatCAMApp.py:7747 FlatCAMApp.py:7764 +#: FlatCAMApp.py:7761 FlatCAMApp.py:7778 #, python-format msgid "[ERROR_NOTCL] Failed to open project file: %s" msgstr "" -#: FlatCAMApp.py:7787 +#: FlatCAMApp.py:7801 #, python-format msgid "[success] Project loaded from: %s" msgstr "" -#: FlatCAMApp.py:7892 +#: FlatCAMApp.py:7906 msgid "Available commands:\n" msgstr "Доступные команды:\n" -#: FlatCAMApp.py:7894 +#: FlatCAMApp.py:7908 msgid "" "\n" "\n" @@ -1008,28 +1008,27 @@ msgstr "" "Для дополнительной информации ведите help <имя_команды> .\n" "Пример: help open_gerber" -#: FlatCAMApp.py:8044 +#: FlatCAMApp.py:8058 msgid "Shows list of commands." msgstr "Показывает список команд." -#: FlatCAMApp.py:8101 +#: FlatCAMApp.py:8115 msgid "[ERROR_NOTCL] Failed to load recent item list." msgstr "" -#: FlatCAMApp.py:8108 +#: FlatCAMApp.py:8122 msgid "[ERROR_NOTCL] Failed to parse recent item list." msgstr "" -#: FlatCAMApp.py:8093 +#: FlatCAMApp.py:8166 msgid "Clear Recent files" msgstr "Очистить список" -#: FlatCAMApp.py:8110 flatcamGUI/FlatCAMGUI.py:973 FlatCAMApp.py:8169 -#: flatcamGUI/FlatCAMGUI.py:968 +#: FlatCAMApp.py:8183 flatcamGUI/FlatCAMGUI.py:968 msgid "Shortcut Key List" msgstr "Список сочетаний клавиш" -#: FlatCAMApp.py:8176 +#: FlatCAMApp.py:8190 msgid "" "\n" "

Selected Tab - Choose an Item from " @@ -1079,23 +1078,23 @@ msgid "" " " msgstr "" -#: FlatCAMApp.py:8280 +#: FlatCAMApp.py:8294 msgid "[WARNING_NOTCL] Failed checking for latest version. Could not connect." msgstr "" -#: FlatCAMApp.py:8287 +#: FlatCAMApp.py:8301 msgid "[ERROR_NOTCL] Could not parse information about latest version." msgstr "" -#: FlatCAMApp.py:8297 +#: FlatCAMApp.py:8311 msgid "[success] FlatCAM is up to date!" msgstr "[success] FlatCAM в актуальном состоянии!" -#: FlatCAMApp.py:8302 +#: FlatCAMApp.py:8316 msgid "Newer Version Available" msgstr "Доступна новая версия" -#: FlatCAMApp.py:8303 +#: FlatCAMApp.py:8317 msgid "" "There is a newer version of FlatCAM available for download:\n" "\n" @@ -1103,54 +1102,54 @@ msgstr "" "Новая версия FlatCAM доступна для загрузки:\n" "\n" -#: FlatCAMApp.py:8305 +#: FlatCAMApp.py:8319 msgid "info" msgstr "инфо" -#: FlatCAMApp.py:8324 +#: FlatCAMApp.py:8338 msgid "[success] All plots disabled." msgstr "" -#: FlatCAMApp.py:8330 +#: FlatCAMApp.py:8344 msgid "[success] All non selected plots disabled." msgstr "" -#: FlatCAMApp.py:8336 +#: FlatCAMApp.py:8350 msgid "[success] All plots enabled." msgstr "" -#: FlatCAMApp.py:8342 +#: FlatCAMApp.py:8356 msgid "[success] Selected plots enabled..." msgstr "" -#: FlatCAMApp.py:8350 +#: FlatCAMApp.py:8364 msgid "[success] Selected plots disabled..." msgstr "" -#: FlatCAMApp.py:8360 FlatCAMApp.py:8373 +#: FlatCAMApp.py:8374 FlatCAMApp.py:8387 msgid "Working ..." msgstr "Обработка…" -#: FlatCAMApp.py:8407 +#: FlatCAMApp.py:8421 msgid "Saving FlatCAM Project" msgstr "Сохранение проекта FlatCAM" -#: FlatCAMApp.py:8428 FlatCAMApp.py:8459 +#: FlatCAMApp.py:8442 FlatCAMApp.py:8473 #, python-format msgid "[success] Project saved to: %s" msgstr "" -#: FlatCAMApp.py:8446 +#: FlatCAMApp.py:8460 #, python-format msgid "[ERROR_NOTCL] Failed to verify project file: %s. Retry to save it." msgstr "" -#: FlatCAMApp.py:8453 +#: FlatCAMApp.py:8467 #, python-format msgid "[ERROR_NOTCL] Failed to parse saved project file: %s. Retry to save it." msgstr "" -#: FlatCAMApp.py:8461 +#: FlatCAMApp.py:8475 #, python-format msgid "[ERROR_NOTCL] Failed to save project file: %s. Retry to save it." msgstr "" @@ -1421,7 +1420,7 @@ msgstr "" msgid "Object renamed from {old} to {new}" msgstr "Объект переименован из {old} в {new}" -#: ObjectCollection.py:757 +#: ObjectCollection.py:759 #, python-format msgid "[ERROR] Cause of error: %s" msgstr "" @@ -1615,7 +1614,7 @@ msgstr "" #: flatcamEditors/FlatCAMGrbEditor.py:229 #: flatcamEditors/FlatCAMGrbEditor.py:234 msgid "Click to place ..." -msgstr "" +msgstr "Нажмите для размещения ..." #: flatcamEditors/FlatCAMExcEditor.py:46 msgid "[WARNING_NOTCL] To add a drill first select a tool" @@ -2075,20 +2074,7 @@ msgstr "Расстояние, которое не закрашивать до к msgid "Method:" msgstr "Метод:" -#: flatcamTools/ToolNonCopperClear.py:199 -msgid "Standard" -msgstr "Стандартный" - -#: flatcamTools/ToolNonCopperClear.py:200 -msgid "Seed-based" -msgstr "От центра по кругу" - -#: flatcamTools/ToolNonCopperClear.py:201 -msgid "Straight lines" -msgstr "Прямая линия" - -#: flatcamEditors/FlatCAMGeoEditor.py:474 flatcamGUI/FlatCAMGUI.py:5905 -#: flatcamGUI/FlatCAMGUI.py:6069 +#: flatcamEditors/FlatCAMGeoEditor.py:474 flatcamGUI/FlatCAMGUI.py:6069 msgid "" "Algorithm to paint the polygon:
Standard: Fixed step inwards." "
Seed-based: Outwards from seed." @@ -2196,7 +2182,7 @@ msgstr "Наклон/Сдвиг" #: flatcamGUI/FlatCAMGUI.py:1947 flatcamGUI/ObjectUI.py:100 #: flatcamTools/ToolTransform.py:26 msgid "Scale" -msgstr "Масштабирование" +msgstr "Масштаб" #: flatcamEditors/FlatCAMGeoEditor.py:621 #: flatcamEditors/FlatCAMGrbEditor.py:4535 flatcamTools/ToolTransform.py:27 @@ -3764,12 +3750,12 @@ msgid "&Zoom Fit\tV" msgstr "&Вернуть масштаб\tV" #: flatcamGUI/FlatCAMGUI.py:358 -msgid "&Zoom In\t-" -msgstr "&Уменьшить\t-" +msgid "&Zoom In\t=" +msgstr "&Увеличить\t=" #: flatcamGUI/FlatCAMGUI.py:359 -msgid "&Zoom Out\t=" -msgstr "&Увеличить\t=" +msgid "&Zoom Out\t-" +msgstr "&Уменьшить\t-" #: flatcamGUI/FlatCAMGUI.py:363 msgid "Toggle Code Editor\tCTRL+E" @@ -3981,7 +3967,7 @@ msgstr "Отключить чертёж" #: flatcamGUI/FlatCAMGUI.py:522 msgid "Generate CNC" -msgstr "" +msgstr "Создать CNC" #: flatcamGUI/FlatCAMGUI.py:523 msgid "View Source" @@ -4010,7 +3996,7 @@ msgstr "Панель просмотра" #: flatcamGUI/FlatCAMGUI.py:572 msgid "Shell Toolbar" -msgstr "" +msgstr "Панель командной строки" #: flatcamGUI/FlatCAMGUI.py:576 msgid "Tools Toolbar" @@ -4022,11 +4008,11 @@ msgstr "Панель редактора Excellon" #: flatcamGUI/FlatCAMGUI.py:584 msgid "Geometry Editor Toolbar" -msgstr "" +msgstr "Панель редактора Geometry" #: flatcamGUI/FlatCAMGUI.py:588 msgid "Gerber Editor Toolbar" -msgstr "" +msgstr "Панель редактора Gerber" #: flatcamGUI/FlatCAMGUI.py:592 msgid "Grid Toolbar" @@ -4095,12 +4081,12 @@ msgstr "2-х стор. плата" #: flatcamGUI/FlatCAMGUI.py:641 flatcamGUI/FlatCAMGUI.py:1864 msgid "&Cutout Tool" -msgstr "&Обрезка контура платы" +msgstr "&Обрезка платы" #: flatcamGUI/FlatCAMGUI.py:642 flatcamGUI/FlatCAMGUI.py:1865 #: flatcamGUI/ObjectUI.py:392 flatcamTools/ToolNonCopperClear.py:285 msgid "NCC Tool" -msgstr "Очистка от меди" +msgstr "Очистка меди" #: flatcamGUI/FlatCAMGUI.py:646 flatcamGUI/FlatCAMGUI.py:1869 msgid "Panel Tool" @@ -4243,7 +4229,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:713 flatcamGUI/FlatCAMGUI.py:1942 msgid "SemiDisc" -msgstr "" +msgstr "Полукруг" #: flatcamGUI/FlatCAMGUI.py:714 flatcamGUI/FlatCAMGUI.py:1943 msgid "Disc" @@ -4467,11 +4453,11 @@ msgid "" "

\n" " \n" " \n" -" \n" +" \n" " \n" " \n" " \n" -" \n" +" \n" " \n" " \n" " \n" @@ -4971,7 +4957,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:1578 msgid "Toggle Panel" -msgstr "" +msgstr "Переключить бок. панель" #: flatcamGUI/FlatCAMGUI.py:1581 msgid "New" @@ -5003,7 +4989,7 @@ msgstr "Перерисовать" #: flatcamGUI/FlatCAMGUI.py:1597 msgid "Geo Editor" -msgstr "" +msgstr "Редактор Geo" #: flatcamGUI/FlatCAMGUI.py:1598 msgid "Line" @@ -5043,11 +5029,11 @@ msgstr "Добавить сверло" #: flatcamGUI/FlatCAMGUI.py:1643 msgid "Print Preview" -msgstr "" +msgstr "Предпр. печати" #: flatcamGUI/FlatCAMGUI.py:1644 msgid "Print Code" -msgstr "" +msgstr "Печать кода" #: flatcamGUI/FlatCAMGUI.py:1645 msgid "Find in Code" @@ -5161,15 +5147,15 @@ msgstr "Введите диаметр инструмента:" #: flatcamGUI/FlatCAMGUI.py:3032 msgid "Measurement Tool exit..." -msgstr "" +msgstr "Измеритель закрыт ..." -#: flatcamGUI/FlatCAMGUI.py:3325 +#: flatcamGUI/FlatCAMGUI.py:3323 msgid "GUI Preferences" msgstr "Параметры интерфейса" -#: flatcamGUI/FlatCAMGUI.py:3331 flatcamGUI/FlatCAMGUI.py:3329 +#: flatcamGUI/FlatCAMGUI.py:3329 msgid "Grid X value:" -msgstr "" +msgstr "Размер сетки Х:" #: flatcamGUI/FlatCAMGUI.py:3331 msgid "This is the Grid snap value on X axis." @@ -5177,7 +5163,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:3336 msgid "Grid Y value:" -msgstr "" +msgstr "Размер сетки Y:" #: flatcamGUI/FlatCAMGUI.py:3338 msgid "This is the Grid snap value on Y axis." @@ -5705,7 +5691,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:4083 flatcamGUI/ObjectUI.py:295 msgid "Milling Type:" -msgstr "" +msgstr "Тип фрезерования:" #: flatcamGUI/FlatCAMGUI.py:4085 flatcamGUI/ObjectUI.py:297 msgid "" @@ -5713,6 +5699,10 @@ msgid "" "- climb / best for precision milling and to reduce tool usage\n" "- conventional / useful when there is no backlash compensation" msgstr "" +"Тип фрезерования:\n" +"- climb / лучше всего подходит для точного фрезерования и уменьшения " +"использования инструмента\n" +"- conventional / полезен, когда нет компенсации люфта" #: flatcamGUI/FlatCAMGUI.py:4095 msgid "Combine Passes" @@ -5724,7 +5714,7 @@ msgstr "Объединить все проходы в один объект" #: flatcamGUI/FlatCAMGUI.py:4102 msgid "Clear non-copper:" -msgstr "Очистка от меди:" +msgstr "Очистка меди:" #: flatcamGUI/FlatCAMGUI.py:4104 flatcamGUI/FlatCAMGUI.py:5785 #: flatcamGUI/ObjectUI.py:386 @@ -5806,7 +5796,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:4179 flatcamGUI/ObjectUI.py:314 msgid "\"Follow\"" -msgstr "\"Следить\"" +msgstr "\"Следовать\"" #: flatcamGUI/FlatCAMGUI.py:4181 flatcamGUI/ObjectUI.py:316 msgid "" @@ -5814,10 +5804,13 @@ msgid "" "This means that it will cut through\n" "the middle of the trace." msgstr "" +"Создаёт геометрию 'Следовать'.\n" +"Это означает, что он будет прорезать\n" +"середину трассы." #: flatcamGUI/FlatCAMGUI.py:4188 msgid "Table Show/Hide" -msgstr "" +msgstr "Таблица вкл/откл" #: flatcamGUI/FlatCAMGUI.py:4190 msgid "" @@ -5828,7 +5821,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:4229 msgid "Gerber Export" -msgstr "" +msgstr "Экспорт Gerber" #: flatcamGUI/FlatCAMGUI.py:4232 flatcamGUI/FlatCAMGUI.py:4902 msgid "Export Options:" @@ -6603,7 +6596,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:5488 msgid "Geometry Editor" -msgstr "" +msgstr "Редактор Geometry" #: flatcamGUI/FlatCAMGUI.py:5493 msgid "A list of Geometry Editor parameters." @@ -6625,7 +6618,7 @@ msgstr "CNC Job основные" #: flatcamGUI/FlatCAMGUI.py:5535 flatcamGUI/ObjectUI.py:544 #: flatcamGUI/ObjectUI.py:877 flatcamGUI/ObjectUI.py:1447 msgid "Plot Object" -msgstr "Объект Plot" +msgstr "Рисовать объекты" #: flatcamGUI/FlatCAMGUI.py:5542 msgid "Plot kind:" @@ -6641,7 +6634,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:5561 msgid "Display Annotation:" -msgstr "" +msgstr "Показывать подписи:" #: flatcamGUI/FlatCAMGUI.py:5563 flatcamGUI/ObjectUI.py:1372 msgid "" @@ -6762,7 +6755,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:5723 flatcamGUI/ObjectUI.py:1545 msgid "Use Toolchange Macro" -msgstr "" +msgstr "Использовать макросы смены инструмента" #: flatcamGUI/FlatCAMGUI.py:5725 flatcamGUI/ObjectUI.py:1548 msgid "" @@ -6782,7 +6775,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:5744 flatcamGUI/ObjectUI.py:1564 msgid "Parameters" -msgstr "" +msgstr "Параметры" #: flatcamGUI/FlatCAMGUI.py:5747 flatcamGUI/ObjectUI.py:1567 msgid "FlatCAM CNC parameters" @@ -6834,7 +6827,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:5780 msgid "NCC Tool Options" -msgstr "Очистка от меди" +msgstr "Очистка меди" #: flatcamGUI/FlatCAMGUI.py:5793 flatcamGUI/FlatCAMGUI.py:6523 msgid "Tools dia:" @@ -6891,7 +6884,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:5881 msgid "Cutout Tool Options" -msgstr "Обрезка контура платы" +msgstr "Обрезка платы" #: flatcamGUI/FlatCAMGUI.py:5886 flatcamGUI/ObjectUI.py:402 msgid "" @@ -7002,7 +6995,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:6017 msgid "Paint Tool Options" -msgstr "" +msgstr "Рисование" #: flatcamGUI/FlatCAMGUI.py:6024 flatcamGUI/ObjectUI.py:1305 msgid "" @@ -7531,7 +7524,7 @@ msgstr "Нет заданий." #: flatcamGUI/FlatCAMGUI.py:6727 msgid "Application started ..." -msgstr "Запуск приложения ..." +msgstr "Приложение запущено ..." #: flatcamGUI/FlatCAMGUI.py:6728 msgid "Hello!" @@ -7650,7 +7643,7 @@ msgstr "Комбинировать" #: flatcamGUI/ObjectUI.py:323 msgid "Generate Isolation Geometry:" -msgstr "" +msgstr "Создание изолирующей Geometry:" #: flatcamGUI/ObjectUI.py:325 msgid "" @@ -7667,7 +7660,7 @@ msgstr "" #: flatcamGUI/ObjectUI.py:344 msgid "FULL Geo" -msgstr "" +msgstr "ВСЕ" #: flatcamGUI/ObjectUI.py:346 msgid "" @@ -7678,7 +7671,7 @@ msgstr "" #: flatcamGUI/ObjectUI.py:355 msgid "Ext Geo" -msgstr "" +msgstr "ВНЕШНЯЯ" #: flatcamGUI/ObjectUI.py:357 msgid "" @@ -7689,7 +7682,7 @@ msgstr "" #: flatcamGUI/ObjectUI.py:364 msgid "Int Geo" -msgstr "" +msgstr "ВНУТРЕННЯЯ" #: flatcamGUI/ObjectUI.py:366 msgid "" @@ -7700,7 +7693,7 @@ msgstr "" #: flatcamGUI/ObjectUI.py:384 msgid "Clear N-copper:" -msgstr "Очистка от меди:" +msgstr "Очистка меди:" #: flatcamGUI/ObjectUI.py:394 flatcamTools/ToolNonCopperClear.py:240 msgid "" @@ -7714,9 +7707,9 @@ msgstr "" msgid "Board cutout:" msgstr "Обрезка контура платы:" -#: flatcamGUI/ObjectUI.py:408 +#: flatcamGUI/ObjectUI.py:408 flatcamTools/ToolCutOut.py:313 msgid "Cutout Tool" -msgstr "Обрезка контура платы" +msgstr "Обрезка платы" #: flatcamGUI/ObjectUI.py:410 msgid "" @@ -7756,7 +7749,7 @@ msgstr "" #: flatcamTools/ToolCutOut.py:168 flatcamTools/ToolCutOut.py:188 #: flatcamTools/ToolCutOut.py:239 flatcamTools/ToolSolderPaste.py:127 msgid "Generate Geo" -msgstr "" +msgstr "Создать" #: flatcamGUI/ObjectUI.py:456 msgid "" @@ -8187,7 +8180,7 @@ msgstr "" #: flatcamGUI/ObjectUI.py:1369 msgid "Display Annotation:" -msgstr "" +msgstr "Показывать подписи:" #: flatcamGUI/ObjectUI.py:1388 msgid "Travelled dist.:" @@ -8234,7 +8227,7 @@ msgstr "Экспорт CNC Code:" #: flatcamGUI/ObjectUI.py:1489 msgid "Prepend to CNC Code:" -msgstr "" +msgstr "Добавить в начало CNC Code:" #: flatcamGUI/ObjectUI.py:1492 msgid "" @@ -8245,8 +8238,8 @@ msgstr "" "хотели бы добавить в начале генерируемого файла." #: flatcamGUI/ObjectUI.py:1502 -msgid "Append to CNC Code" -msgstr "Добавить в CNC Code" +msgid "Append to CNC Code:" +msgstr "Дописать в конец CNC Code:" #: flatcamGUI/ObjectUI.py:1526 msgid "" @@ -8271,7 +8264,7 @@ msgstr "" #: flatcamGUI/ObjectUI.py:1593 msgid "View CNC Code" -msgstr "" +msgstr "Просмотр CNC Code" #: flatcamGUI/ObjectUI.py:1596 msgid "" @@ -8281,7 +8274,7 @@ msgstr "" #: flatcamGUI/ObjectUI.py:1602 msgid "Save CNC Code" -msgstr "Сохранить код ЧПУ" +msgstr "Сохранить CNC Code" #: flatcamGUI/ObjectUI.py:1605 msgid "" @@ -8386,7 +8379,7 @@ msgstr "" #: flatcamTools/ToolCutOut.py:17 msgid "Cutout PCB" -msgstr "Обрезка контура платы" +msgstr "Обрезка платы" #: flatcamTools/ToolCutOut.py:53 msgid "Obj Type:" @@ -8681,7 +8674,7 @@ msgstr "Объект Excellon для отражения." #: flatcamTools/ToolDblSided.py:97 msgid "Geometry Obj to be mirrored." -msgstr "" +msgstr "Объект Geometry для зеркалирования." #: flatcamTools/ToolDblSided.py:135 msgid "" @@ -8777,7 +8770,7 @@ msgstr "Сбросить" #: flatcamTools/ToolDblSided.py:257 msgid "Resets all the fields." -msgstr "" +msgstr "Сбрасывает все поля." #: flatcamTools/ToolDblSided.py:302 msgid "2-Sided Tool" @@ -9028,19 +9021,20 @@ msgstr "" #: flatcamTools/ToolImage.py:139 msgid "Import image" -msgstr "" +msgstr "Импортировать изображение" #: flatcamTools/ToolImage.py:141 msgid "Open a image of raster type and then import it in FlatCAM." msgstr "" +"Откройте изображение растрового типа, а затем импортируйте его в FlatCAM." #: flatcamTools/ToolImage.py:170 msgid "Image Tool" -msgstr "" +msgstr "Изображение" #: flatcamTools/ToolImage.py:200 flatcamTools/ToolImage.py:203 msgid "Import IMAGE" -msgstr "" +msgstr "Импорт изображения" #: flatcamTools/ToolMeasurement.py:26 msgid "Measurement" @@ -9070,6 +9064,14 @@ 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 "" @@ -9162,6 +9164,7 @@ msgstr "Очиста от меди" #: flatcamTools/ToolNonCopperClear.py:64 msgid "Gerber object to be cleared of excess copper. " msgstr "" +"Gerber объект будет очищен от излишнего медного слоя. " #: flatcamTools/ToolNonCopperClear.py:74 msgid "" @@ -9208,6 +9211,18 @@ msgid "" "by first selecting a row(s) in the Tool Table." msgstr "" +#: flatcamTools/ToolNonCopperClear.py:199 +msgid "Standard" +msgstr "Стандартный" + +#: flatcamTools/ToolNonCopperClear.py:200 +msgid "Seed-based" +msgstr "От центра по кругу" + +#: flatcamTools/ToolNonCopperClear.py:201 +msgid "Straight lines" +msgstr "Прямая линия" + #: flatcamTools/ToolNonCopperClear.py:226 msgid "" "If checked, use 'rest machining'.\n" @@ -9810,8 +9825,8 @@ msgid "Generate solder paste dispensing geometry." msgstr "" #: flatcamTools/ToolSolderPaste.py:142 -msgid "STEP 1" -msgstr "ШАГ 1" +msgid "STEP 1:" +msgstr "ШАГ 1:" #: flatcamTools/ToolSolderPaste.py:144 msgid "" @@ -9833,13 +9848,15 @@ msgstr "" #: flatcamTools/ToolSolderPaste.py:290 msgid "Generate GCode" -msgstr "" +msgstr "Создать GCode" #: flatcamTools/ToolSolderPaste.py:292 msgid "" "Generate GCode for Solder Paste dispensing\n" "on PCB pads." msgstr "" +"Создаёт GCode для дозирования паяльной пасты\n" +"на печатной плате." #: flatcamTools/ToolSolderPaste.py:308 msgid "STEP 2:" diff --git a/locale_template/strings.pot b/locale_template/strings.pot index ca9058cd..a069f9f6 100644 --- a/locale_template/strings.pot +++ b/locale_template/strings.pot @@ -7409,7 +7409,7 @@ msgstr "" msgid "Board cutout:" msgstr "" -#: flatcamGUI/ObjectUI.py:408 +#: flatcamGUI/ObjectUI.py:408 flatcamTools/ToolCutOut.py:313 msgid "Cutout Tool" msgstr "" @@ -7931,7 +7931,7 @@ msgid "" msgstr "" #: flatcamGUI/ObjectUI.py:1502 -msgid "Append to CNC Code" +msgid "Append to CNC Code:" msgstr "" #: flatcamGUI/ObjectUI.py:1526 @@ -8748,6 +8748,14 @@ msgstr "" msgid "Stop" msgstr "" +#: flatcamTools/ToolMeasurement.py:55 +msgid "Dx:" +msgstr "" + +#: flatcamTools/ToolMeasurement.py:58 +msgid "Dy:" +msgstr "" + #: flatcamTools/ToolMeasurement.py:53 flatcamTools/ToolMeasurement.py:70 msgid "This is the measuring Stop point coordinates." msgstr ""
 Flip on Y_axis
'=''-' Zoom Out
'-''=' Zoom In