diff --git a/InitGui.py b/InitGui.py index 53f3c68..376fdf8 100644 --- a/InitGui.py +++ b/InitGui.py @@ -32,12 +32,15 @@ import ksu_locator from kicadStepUpCMD import * + ksuWBpath = os.path.dirname(ksu_locator.__file__) #sys.path.append(ksuWB + '/Gui') ksuWB_icons_path = os.path.join( ksuWBpath, 'Resources', 'icons') ksuWB_ui_path = os.path.join( ksuWBpath, 'Resources','ui' ) +ksuWB_trans_path = os.path.join( ksuWBpath, 'translations') -# FreeCADGui.addLanguagePath(ksuWBpath+"/translations") +FreeCADGui.addLanguagePath(ksuWB_trans_path) +FreeCADGui.updateLocale() global main_ksu_Icon main_ksu_Icon = os.path.join( ksuWB_icons_path , 'kicad-StepUp-tools-WB.svg') @@ -150,14 +153,15 @@ def loadSettings(self): print(FreeCAD.getUserAppDataDir()) ## class KiCadStepUpWB ( Workbench ): + from TranslateUtils import translate global main_ksu_Icon, ksu_wb_version, myurlKWB, mycommitsKWB, verKSU global ksuWB_ui_path, kSU_MainPrefPage, ksuWB_icons_path "KiCadStepUp WB object" Icon = main_ksu_Icon #Icon = ":Resources/icons/kicad-StepUp-tools-WB.svg" - MenuText = "KiCadStepUp" - ToolTip = "KiCadStepUp workbench" + MenuText = translate("KiCadStepUpWB", "KiCadStepUp") + ToolTip = translate("KiCadStepUpWB", "KiCadStepUp workbench") def GetClassName(self): return "Gui::PythonWorkbench" @@ -167,6 +171,7 @@ def Initialize(self): global pref_page pref_page = True # False #True # import FreeCADGui + from TranslateUtils import translate submenu = ['demo.kicad_pcb','d-pak.kicad_mod', 'demo-sketch.FCStd', 'demo.step',\ 'footprint-template.FCStd', 'footprint-Edge-template.FCStd', 'footprint-template-roundrect-polylines.FCStd',\ @@ -178,14 +183,14 @@ def Initialize(self): 'ECAD-MCAD-collaboration.pdf'] dirs = self.ListDemos() - #self.appendToolbar("ksu Tools", ["ksuTools"]) - self.appendToolbar("ksu Tools", ["ksuToolsEditPrefs","ksuTools","ksuToolsOpenBoard","ksuToolsImportFootprint",\ + #self.appendToolbar(translate("Toolbar", "ksu Tools"), ["ksuTools"]) + self.appendToolbar(translate("Toolbar", "ksu Tools"), ["ksuToolsEditPrefs","ksuTools","ksuToolsOpenBoard","ksuToolsImportFootprint",\ "ksuToolsExportModel","ksuToolsPushPCB","ksuToolsFootprintGen","Separator","ksuToolsAddTracks","ksuToolsAddSilks","Separator",\ "ksuToolsCollisions","ksuToolsImport3DStep","ksuToolsExport3DStep","ksuToolsMakeUnion",\ "ksuToolsMakeCompound", "ksuToolsUnion", "ksuToolsSimpleCopy", "ksuToolsDeepCopy", "ksuToolsColoredClone",\ "ksuToolsColoredBinder", "ksuToolsReLinkBinder", "ksuToolsCheckSolid"]) #, "ksuToolsPushMoved","ksuToolsSync3DModels"]) - self.appendToolbar("ksu Sketching", ["ksuTools3D2D", "ksuTools2D2Sketch", "ksuTools2DtoFace",\ + self.appendToolbar(translate("Toolbar", "ksu Sketching"), ["ksuTools3D2D", "ksuTools2D2Sketch", "ksuTools2DtoFace",\ "ksuToolsLoopSelection","ksuToolsEdges2Sketch","ksuToolsMoveSketch","ksuToolsOffset2D","ksuToolsExtrude","Create_BoundBox","ksuToolsMergeSketches",\ "ksuToolsSimplifySketck", "ksuToolsBsplineNormalize", "ksuToolsConstrainator", "ksuToolsSkValidate", "ksuToolsDiscretize",\ "ksuToolsContour2Poly", "Arcs2Circles", "approximateCenter"]) @@ -194,29 +199,29 @@ def Initialize(self): "Separator","ksuToolsGeneratePositions","ksuToolsComparePositions",\ "Separator","ksuToolsToggleTreeView","Separator","ksuRemoveTimeStamp","ksuRemoveSuffix","Separator","ksuToolsImportFootprint","ksuToolsFootprintGen"] #ksuTB.extend(["Separator","ksuToolsAligner","ksuToolsMover","ksuToolsCaliper"]) - self.appendToolbar("ksu PushPull", ksuTB) + self.appendToolbar(translate("Toolbar", "ksu PushPull"), ksuTB) combined_path = '\t'.join(sys.path) if 'Manipulator' in combined_path: ksuDTB=["ksuToolsAligner","ksuToolsMover","ksuToolsCaliper", "ksuToolsAlignView","Separator","ksuToolsDefeaturingTools"] - self.appendToolbar("ksu Design Tools", ksuDTB) + self.appendToolbar(translate("Toolbar", "ksu Design Tools"), ksuDTB) else: ksuDTB=["ksuToolsAlignView"] - self.appendToolbar("ksu Design Tools", ksuDTB) + self.appendToolbar(translate("Toolbar", "ksu Design Tools"), ksuDTB) Hlp_TB = ["ksuToolsToggleTreeView", "Restore_Transparency", "ksuToolsTransparencyToggle", "ksuToolsHighlightToggle",\ "ksuToolsVisibilityToggle", "ksuToolsStepImportModeSTD", "ksuToolsStepImportModeComp",\ "ksuToolsCopyPlacement", "ksuToolsResetPlacement", "ksuToolsResetPartPlacement", "ksuToolsAddToTree",\ "ksuToolsRemoveFromTree", "ksuToolsRemoveSubTree", "checkSolidExpSTEP"] #if 'LinkView' in dir(FreeCADGui): # Hlp_TB.remove("ksuToolsHighlightToggle") - self.appendToolbar("ksu Show", ["ksuToolsTurnTable", "ksuToolsExplode"]) - self.appendToolbar("ksu Helpers", Hlp_TB) - #self.appendMenu("ksu Tools", ["ksuTools","ksuToolsEdit"]) - self.appendMenu("ksu Tools", ["ksuTools","ksuToolsEditPrefs","ksuImpDXF","ksuOpDXF","ksuOpEzDXF"]) - self.appendMenu("ksu PushPull", ["ksuToolsOpenBoard","ksuToolsPushPCB","ksuToolsPushMoved","ksuToolsSync3DModels","ksuToolsPullPCB","ksuToolsPullMoved",\ + self.appendToolbar(translate("Toolbar", "ksu Show"), ["ksuToolsTurnTable", "ksuToolsExplode"]) + self.appendToolbar(translate("Toolbar", "ksu Helpers"), Hlp_TB) + #self.appendMenu(translate("Menu", "ksu Tools"), ["ksuTools","ksuToolsEdit"]) + self.appendMenu(translate("Menu", "ksu Tools"), ["ksuTools","ksuToolsEditPrefs","ksuImpDXF","ksuOpDXF","ksuOpEzDXF"]) + self.appendMenu(translate("Menu", "ksu PushPull"), ["ksuToolsOpenBoard","ksuToolsPushPCB","ksuToolsPushMoved","ksuToolsSync3DModels","ksuToolsPullPCB","ksuToolsPullMoved",\ "Separator","ksuToolsGeneratePositions","ksuToolsComparePositions",\ "Separator","ksuRemoveTimeStamp","ksuRemoveSuffix",\ "Separator","ksuToolsImportFootprint","ksuToolsFootprintGen"]) - self.appendMenu(["ksu Tools", "Demo"], submenu) + self.appendMenu([translate("Menu", "ksu Tools"), translate("Menu", "Demo")], submenu) #FreeCADGui.addPreferencePage( a2plib.pathOfModule() + '/GuiA2p/ui/a2p_prefs.ui','A2plus' ) if pref_page: diff --git a/Resources/ui/ksu-docked-v3.2.ui b/Resources/ui/ksu-docked-v3.2.ui index 1d0b804..19d1893 100644 --- a/Resources/ui/ksu-docked-v3.2.ui +++ b/Resources/ui/ksu-docked-v3.2.ui @@ -826,7 +826,7 @@ STEP & scaled VRML 1/2.54 - enalble loading + enable loading virtual & mechanical models diff --git a/Resources/ui/ksu_prefs-v1.ui b/Resources/ui/ksu_prefs-v1.ui index 3af0d30..a188040 100644 --- a/Resources/ui/ksu_prefs-v1.ui +++ b/Resources/ui/ksu_prefs-v1.ui @@ -133,7 +133,7 @@ - sdfsdfsdfds + Temporary directories diff --git a/Resources/ui/ksu_prefs-v2b.ui b/Resources/ui/ksu_prefs-v2b.ui index f11a5c4..92a5735 100644 --- a/Resources/ui/ksu_prefs-v2b.ui +++ b/Resources/ui/ksu_prefs-v2b.ui @@ -927,13 +927,13 @@ Allowing or not Loading Multi Parts objects - Enable Materials for VRML exporting + Enable Materials for VRML exporting - Enable Materials for VRML exporting + Enable Materials for VRML exporting true @@ -1011,10 +1011,10 @@ Allowing or not Loading Multi Parts objects - Enable compressed STEP file ('.stpZ') generation exporting + Enable compressed STEP file ('.stpZ') generation exporting - Enable compressed STEP file ('.stpZ') generation exporting + Enable compressed STEP file ('.stpZ') generation exporting false @@ -1042,10 +1042,10 @@ Allowing or not Loading Multi Parts objects - Enable compressed VRML file ('.wrz') generation exporting + Enable compressed VRML file ('.wrz') generation exporting - Enable compressed VRML file ('.wrz') generation exporting + Enable compressed VRML file ('.wrz') generation exporting false @@ -1073,10 +1073,10 @@ Allowing or not Loading Multi Parts objects - Display STEP import settings warning + Display STEP import settings warning - Display STEP import settings warning + Display STEP import settings warning true @@ -1104,10 +1104,10 @@ Allowing or not Loading Multi Parts objects - <html><head/><body><p>Apply Transparency for 'Glass' Materials:</p><p>Force Transparency to STEP model if 'Glass' is found in '.wrl' model</p></body></html> + <html><head/><body><p>Apply Transparency for 'Glass' Materials:</p><p>Force Transparency to STEP model if 'Glass' is found in '.wrl' model</p></body></html> - Apply Transparency for 'Glass' Materials + Apply Transparency for 'Glass' Materials false @@ -1135,10 +1135,10 @@ Allowing or not Loading Multi Parts objects - <html><head/><body><p>Apply Transparency for 'Led' Materials:</p><p>Force Transparency to STEP model if 'Led' is found in '.wrl' model</p></body></html> + <html><head/><body><p>Apply Transparency for 'Led' Materials:</p><p>Force Transparency to STEP model if 'Led' is found in '.wrl' model</p></body></html> - Apply Transparency for 'Led' Materials + Apply Transparency for 'Led' Materials false diff --git a/Resources/ui/ksu_prefs.ui b/Resources/ui/ksu_prefs.ui index 47cfa77..b6548c5 100644 --- a/Resources/ui/ksu_prefs.ui +++ b/Resources/ui/ksu_prefs.ui @@ -54,7 +54,7 @@ 0 0 - 517 + 522 900 @@ -88,7 +88,7 @@ 10 25 501 - 34 + 39 @@ -129,9 +129,6 @@ or 'KICAD6_3DMODEL_DIR' Mod/kicadStepUpGui - - Gui::FileChooser::Directory - @@ -142,7 +139,7 @@ or 'KICAD6_3DMODEL_DIR' 10 65 501 - 34 + 39 @@ -182,9 +179,6 @@ or 'KICAD6_3DMODEL_DIR' Mod/kicadStepUpGui - - - Gui::FileChooser::Directory @@ -208,14 +202,14 @@ or 'KICAD6_3DMODEL_DIR' 10 20 491 - 26 + 29 - PCB color + PCBs color. PCB color @@ -317,7 +311,7 @@ or 'KICAD6_3DMODEL_DIR' 10 50 491 - 26 + 29 @@ -386,7 +380,7 @@ or 'KICAD6_3DMODEL_DIR' 10 80 491 - 26 + 29 @@ -812,14 +806,14 @@ LED_D5.0mm_IRBlack;USB_Mini-B_Lumberg_2486_01_Horizontal;<br/><span sty 9 80 491 - 26 + 29 - STEP export mode + STEP export mode. STEP export mode @@ -881,14 +875,14 @@ LED_D5.0mm_IRBlack;USB_Mini-B_Lumberg_2486_01_Horizontal;<br/><span sty 8 110 491 - 26 + 29 - 3D Loading mode + 3D Loading mode. 3D Loading mode @@ -960,7 +954,7 @@ Allowing or not Loading Multi Parts objects - Assembly3 Links allowed + Assembly3 Links allowed. Assembly3 Links allowed @@ -985,13 +979,13 @@ Allowing or not Loading Multi Parts objects - Enable Materials for VRML exporting + Enables Materials for VRML exporting. - Enable Materials for VRML exporting + Enable Materials for VRML exporting true @@ -1016,7 +1010,7 @@ Allowing or not Loading Multi Parts objects - Start Turntable after loading + Start Turntable after loading. Start Turntable after loading @@ -1041,7 +1035,7 @@ Allowing or not Loading Multi Parts objects - Assembly3 LinkGroups allowed + Assembly3 LinkGroups allowed. Assembly3 LinkGroups allowed @@ -1069,10 +1063,10 @@ Allowing or not Loading Multi Parts objects - Enable compressed STEP file ('.stpZ') generation exporting + Enables compressed STEP file ('.stpZ') generation exporting. - Enable compressed STEP file ('.stpZ') generation exporting + Enable compressed STEP file ('.stpZ') generation exporting false @@ -1100,10 +1094,10 @@ Allowing or not Loading Multi Parts objects - Enable compressed VRML file ('.wrz') generation exporting + Enables compressed VRML file ('.wrz') generation exporting. - Enable compressed VRML file ('.wrz') generation exporting + Enable compressed VRML file ('.wrz') generation exporting false @@ -1131,10 +1125,10 @@ Allowing or not Loading Multi Parts objects - Display STEP import settings warning + Displays STEP import settings warning. - Display STEP import settings warning + Display STEP import settings warning true @@ -1162,10 +1156,10 @@ Allowing or not Loading Multi Parts objects - <html><head/><body><p>Apply Transparency for 'Glass' Materials:</p><p>Force Transparency to STEP model if 'Glass' is found in '.wrl' model</p></body></html> + <html><head/><body><p>Apply Transparency for 'Glass' Materials:</p><p>Force Transparency to STEP model if 'Glass' is found in '.wrl' model</p></body></html> - Apply Transparency for 'Glass' Materials + Apply Transparency for 'Glass' Materials false @@ -1193,10 +1187,10 @@ Allowing or not Loading Multi Parts objects - <html><head/><body><p>Apply Transparency for 'Led' Materials:</p><p>Force Transparency to STEP model if 'Led' is found in '.wrl' model</p></body></html> + <html><head/><body><p>Apply Transparency for 'Led' Materials:</p><p>Force Transparency to STEP model if 'Led' is found in '.wrl' model</p></body></html> - Apply Transparency for 'Led' Materials + Apply Transparency for 'Led' Materials false @@ -1224,10 +1218,10 @@ Allowing or not Loading Multi Parts objects - <html><head/><body><p>Skip importing pcb zone(s)</p></body></html> + <html><head/><body><p>Skip importing pcb zone(s)</p></body></html> - skpZone + skpZone false @@ -1255,10 +1249,10 @@ Allowing or not Loading Multi Parts objects - <html><head/><body><p>Skip importing pcb tracks and vias</p></body></html> + <html><head/><body><p>Skip importing pcb tracks and vias</p></body></html> - skpTracks + skpTracks false @@ -1286,10 +1280,10 @@ Allowing or not Loading Multi Parts objects - <html><head/><body><p>Skip importing pcb pads</p></body></html> + <html><head/><body><p>Skip importing pcb pads</p></body></html> - skpPads + skpPads false @@ -1311,7 +1305,7 @@ Allowing or not Loading Multi Parts objects 10 105 501 - 34 + 39 @@ -1352,10 +1346,7 @@ Allowing or not Loading Multi Parts objects Mod/kicadStepUpGui - - Gui::FileChooser::Directory - - + @@ -1365,7 +1356,7 @@ Allowing or not Loading Multi Parts objects 10 145 501 - 34 + 39 @@ -1405,9 +1396,6 @@ Allowing or not Loading Multi Parts objects Mod/kicadStepUpGui - - - Gui::FileChooser::Directory @@ -1461,7 +1449,7 @@ Allowing or not Loading Multi Parts objects - Generate Sketches for differences on PCB Edge + Generates Sketches for differences on PCB Edge. Generate Sketches for differences on PCB Edge diff --git a/TranslateUtils.py b/TranslateUtils.py new file mode 100644 index 0000000..cf803c2 --- /dev/null +++ b/TranslateUtils.py @@ -0,0 +1,39 @@ +# -*- coding: utf8 -*- + +# *************************************************************************** +# * * +# * Copyright (c) 2017 Yorik van Havre * +# * * +# * This program is free software; you can redistribute it and/or modify * +# * it under the terms of the GNU Lesser General Public License (LGPL) * +# * as published by the Free Software Foundation; either version 2 of * +# * the License, or (at your option) any later version. * +# * for detail see the LICENCE text file. * +# * * +# * This program is distributed in the hope that it will be useful, * +# * but WITHOUT ANY WARRANTY; without even the implied warranty of * +# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +# * GNU Library General Public License for more details. * +# * * +# * You should have received a copy of the GNU Library General Public * +# * License along with this program; if not, write to the Free Software * +# * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +# * USA * +# * * +# *************************************************************************** + +"""Locate the translation utils""" + +import FreeCAD + + +# dummy function for the QT translator +def QT_TRANSLATE_NOOP(ctx, txt): + return txt + + +# use latest available translate function +if hasattr(FreeCAD, "Qt"): + translate = FreeCAD.Qt.translate +else: + from DraftTools import translate diff --git a/demo/kicad-StepUp-tools.FCMacro b/demo/kicad-StepUp-tools.FCMacro index 2bbfecb..60f9ed8 100644 --- a/demo/kicad-StepUp-tools.FCMacro +++ b/demo/kicad-StepUp-tools.FCMacro @@ -14656,7 +14656,7 @@ class Ui_DockWidget(object): "Board .kicad_pcb") self.ScaleVRML.setToolTip("export to kicad:\n" "STEP & scaled VRML 1/2.54") - self.cb_virtual.setToolTip("enalble loading\n" + self.cb_virtual.setToolTip("enable loading\n" "virtual & mechanical\n" "models") self.cb_materials.setToolTip("use wrl\n" diff --git a/hlp.py b/hlp.py index 2cf6a34..76fc91c 100644 --- a/hlp.py +++ b/hlp.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -#**************************************************************************** +# **************************************************************************** global ksuWBpath @@ -7,60 +7,76 @@ ksuWBpath = os.path.dirname(ksu_locator.__file__) -font_color="""""" +font_color = "" import FreeCAD, FreeCADGui + # paramGet = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/MainWindow") # if 'dark' in paramGet.GetString("StyleSheet").lower(): #we are using a StyleSheet -font_color="""""" +font_color = "" from PySide2 import QtGui -font_color="""""" -#FreeCADGui.getMainWindow().palette().background().color() +from TranslateUtils import translate + +font_color = ( + "" +) +# FreeCADGui.getMainWindow().palette().background().color() -#help_txt="""kicad StepUp version """+verKSU+"""
""" -help_txt="""""" -help_txt+=font_color -help_txt+="""Kicad StepUp is a tool set to easily collaborate between kicad pcb EDA (board and 3D parts) as STEP models and FreeCAD MCAD modeler.
""" -help_txt+="""
""" -help_txt+=font_color -help_txt+="StepUp can also be used to align 3D model to kicad footprint.
" -help_txt+="The artwork can be used for MCAD interchange and collaboration, and for enclosure design.
" -help_txt+="The 3D visualization of components on board assemblies in kicad 3dviewer, will be the same in your mechanical software, " -help_txt+="because of the STEP interchange format.
" -help_txt+="It is also possible to Update a pcb Edge from a FC Sketcher.
" -pdf_name='kicadStepUp-starter-Guide.pdf' -help_txt+="configuration options:
Configuration options are located in the preferences system of FreeCAD, which is located in the Edit menu -> Preferences.
" -help_txt+="starter Guide:
"+pdf_name+"
" -help_txt+="Note: each button has its own Tooltip
" -help_txt+="useful buttons:
Load kicad Board directly -> will load kicad board and parts in FreeCAD coming from kicad '.kicad_pcb' file
" -help_txt+="Load kicad Footprint module -> will load directly kicad footprint in FreeCAD to easily align the 3D model to footprint
" -help_txt+="Export to kicad STEP & scaled VRML -> will convert MCAD model to STEP and VRML to be used by Kicad and kicad StepUp
" -help_txt+=" -> VRML can be multipart;
-> STEP must be single part

('Part Boolean Union' or 'Part Makecompound')
" -help_txt+="assign material to selected colors and your VRML 3D models will have nice shiny effects
" -help_txt+="Push pcb Sketch to kicad_pcb Edge -> will push pcb Sketch to kicad_pcb Edge in your design; it can be done with an empty or with an existing pcb Edge
" -help_txt+="
for a more detailed help have a look at
kicadStepUp-starter-Guide.pdf
" -help_txt+="or just follow the YouTube video tutorials
kicadStepUp basics
" -help_txt+="kicadStepUp STEP alignment to Kicad footprint
" -help_txt+="check always the latest release of kicadStepUp

" -help_txt+="Designing in kicad native 3d-viewer will produce a fully aligned STEP MCAD version " -help_txt+="with the same view of kicad 3d render.
" -help_txt+="Moreover, KiCad StepUp tool set will let you to load the kicad footprint inside FreeCAD and align the 3D part with a visual real time feedback " -help_txt+="of the 3d model and footprint reciprocal position.
" -help_txt+="With this tool is possible to download a part from on-line libraries, align the model to kicad footprint " -help_txt+="and export the model to wrl, for immediate 3d-viewer alignment in pcbnew.
" -help_txt+="Now the two words are connected for a better collaboration; just design in kicad EDA and transfer " -help_txt+="the artwork to MCAD (FreeCAD) smoothly.
" -help_txt+="The workflow is very simple and maintains the usual way to work with kicad:
" -help_txt+="Add models to your library creating 3D models in FreeCAD, or getting models from online libs " -help_txt+="or from the parametric 3D lib expressly done to kicad kicadStepUp 3D STEP models generator
" -help_txt+="Once you have your 3D MCAD model, you need to have a copy of that in STEP and VRML format.
" -help_txt+="(with the latest kicad release you can only have STEP model, VRML is not needed anymore, but it is possible" -help_txt+=" to mix VRML, STEP and IGES format)
" -help_txt+="Just exporting the model with FreeCAD and put your model in the same folder in which " -help_txt+="normally you are used to put vrml models; the script will assembly the MCAD board and models as in 3d-viewer of kicad." -help_txt+="
NB
STEP model has to be fused in single object

(Part Boolean Union of objects)" -help_txt+="
or a Compoud (Part Makecompound of objects)" -help_txt+="
enable 'Report view' Panel to see helping messages" -help_txt+="
" -help_txt+="
" - \ No newline at end of file +# help_txt="""kicad StepUp version """+verKSU+"""
""" +help_txt = "" +help_txt += font_color +help_txt += translate( + "Help", + "Kicad StepUp is a tool set to easily collaborate between kicad pcb EDA (board and 3D parts) as STEP models and FreeCAD MCAD modeler.
\n" + "
", +) +help_txt += font_color +help_txt += translate( + "Help", + "StepUp can also be used to align 3D model to kicad footprint.
\n" + "The artwork can be used for MCAD interchange and collaboration, and for enclosure design.
\n" + "The 3D visualization of components on board assemblies in kicad 3dviewer, will be the same in your mechanical software, \n" + "because of the STEP interchange format.
\n" + "It is also possible to Update a pcb Edge from a FC Sketcher.
\n" + "configuration options:
Configuration options are located in the preferences system of FreeCAD, which is located in the Edit menu -> Preferences.
\n", +) +pdf_name = "kicadStepUp-starter-Guide.pdf" +# help_txt+="starter Guide:
"+pdf_name+"
" +help_txt += translate( + "Help", "starter Guide:
{}
" +).format(ksuWBpath, os.sep, os.sep, pdf_name, pdf_name) +help_txt += translate( + "Help", + "Note: each button has its own Tooltip
\n" + "useful buttons:
Load kicad Board directly -> will load kicad board and parts in FreeCAD coming from kicad '.kicad_pcb' file
\n" + "Load kicad Footprint module -> will load directly kicad footprint in FreeCAD to easily align the 3D model to footprint
\n" + "Export to kicad STEP & scaled VRML -> will convert MCAD model to STEP and VRML to be used by Kicad and kicad StepUp
\n" + " -> VRML can be multipart;
-> STEP must be single part

('Part Boolean Union' or 'Part Makecompound')
\n" + "assign material to selected colors and your VRML 3D models will have nice shiny effects
\n" + "Push pcb Sketch to kicad_pcb Edge -> will push pcb Sketch to kicad_pcb Edge in your design; it can be done with an empty or with an existing pcb Edge
\n" + "
for a more detailed help have a look at
kicadStepUp-starter-Guide.pdf
\n" + "or just follow the YouTube video tutorials
kicadStepUp basics
\n" + "kicadStepUp STEP alignment to Kicad footprint
\n" + "check always the latest release of kicadStepUp

\n" + "Designing in kicad native 3d-viewer will produce a fully aligned STEP MCAD version \n" + "with the same view of kicad 3d render.
\n" + "Moreover, KiCad StepUp tool set will let you to load the kicad footprint inside FreeCAD and align the 3D part with a visual real time feedback \n" + "of the 3d model and footprint reciprocal position.
\n" + "With this tool is possible to download a part from on-line libraries, align the model to kicad footprint \n" + "and export the model to wrl, for immediate 3d-viewer alignment in pcbnew.
\n" + "Now the two words are connected for a better collaboration; just design in kicad EDA and transfer \n" + "the artwork to MCAD (FreeCAD) smoothly.
\n" + "The workflow is very simple and maintains the usual way to work with kicad:
\n" + "Add models to your library creating 3D models in FreeCAD, or getting models from online libs \n" + "or from the parametric 3D lib expressly done to kicad kicadStepUp 3D STEP models generator
\n" + "Once you have your 3D MCAD model, you need to have a copy of that in STEP and VRML format.
\n" + "(with the latest kicad release you can only have STEP model, VRML is not needed anymore, but it is possible\n" + " to mix VRML, STEP and IGES format)
\n" + "Just exporting the model with FreeCAD and put your model in the same folder in which \n" + "normally you are used to put vrml models; the script will assembly the MCAD board and models as in 3d-viewer of kicad.\n" + "
NB
STEP model has to be fused in single object

(Part Boolean Union of objects)\n" + "
or a Compoud (Part Makecompound of objects)\n" + "
enable 'Report view' Panel to see helping messages\n" + "
\n" + "
", +) diff --git a/kicadStepUpCMD.py b/kicadStepUpCMD.py index 711a0e8..9b142f0 100644 --- a/kicadStepUpCMD.py +++ b/kicadStepUpCMD.py @@ -16,6 +16,9 @@ import Draft, DraftGeomUtils #, OpenSCAD2Dgeom import PySide from PySide import QtGui, QtCore +from PySide.QtCore import QT_TRANSLATE_NOOP +from TranslateUtils import translate + QtWidgets = QtGui from pivy import coin @@ -652,7 +655,7 @@ class Ui_Offset_value(object): def setupUi(self, Offset_value): Offset_value.setObjectName("Offset_value") Offset_value.resize(292, 177) - Offset_value.setWindowTitle("Offset value") + Offset_value.setWindowTitle(translate("Ui_Offset_value", "Offset value")) Offset_value.setToolTip("") self.buttonBoxLayer = QtWidgets.QDialogButtonBox(Offset_value) self.buttonBoxLayer.setGeometry(QtCore.QRect(10, 130, 271, 32)) @@ -668,19 +671,19 @@ def setupUi(self, Offset_value): self.offset_label = QtWidgets.QLabel(self.gridLayoutWidget) self.offset_label.setMinimumSize(QtCore.QSize(0, 0)) self.offset_label.setToolTip("") - self.offset_label.setText("Offset [+/- mm]:") + self.offset_label.setText(translate("Ui_Offset_value", "Offset [+/- mm]:")) self.offset_label.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) self.offset_label.setObjectName("offset_label") self.gridLayout.addWidget(self.offset_label, 0, 0, 1, 1) self.lineEdit_offset = QtWidgets.QLineEdit(self.gridLayoutWidget) - self.lineEdit_offset.setToolTip("Offset value [+/- mm]") + self.lineEdit_offset.setToolTip(translate("Ui_Offset_value", "Offset value [+/- mm]")) self.lineEdit_offset.setText("0.16") self.lineEdit_offset.setObjectName("lineEdit_offset") self.gridLayout.addWidget(self.lineEdit_offset, 0, 1, 1, 1) self.checkBox = QtWidgets.QCheckBox(self.gridLayoutWidget) - self.checkBox.setToolTip("Arc or Intersection Offset method") + self.checkBox.setToolTip(translate("Ui_Offset_value", "Arc or Intersection Offset method")) self.checkBox.setLayoutDirection(QtCore.Qt.RightToLeft) - self.checkBox.setText("Arc") + self.checkBox.setText(translate("Ui_Offset_value", "Arc")) self.checkBox.setChecked(True) self.checkBox.setObjectName("checkBox") self.gridLayout.addWidget(self.checkBox, 2, 0, 1, 1) @@ -688,12 +691,12 @@ def setupUi(self, Offset_value): self.offset_label_2 = QtWidgets.QLabel(self.gridLayoutWidget) self.offset_label_2.setMinimumSize(QtCore.QSize(0, 0)) self.offset_label_2.setToolTip("") - self.offset_label_2.setText("Offset Y [mm]:") + self.offset_label_2.setText(translate("Ui_Offset_value", "Offset Y [mm]:")) self.offset_label_2.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) self.offset_label_2.setObjectName("offset_label_2") self.gridLayout.addWidget(self.offset_label_2, 1, 0, 1, 1) self.lineEdit_offset_2 = QtWidgets.QLineEdit(self.gridLayoutWidget) - self.lineEdit_offset_2.setToolTip("Offset Y value [+/- mm]") + self.lineEdit_offset_2.setToolTip(translate("Ui_Offset_value", "Offset Y value [+/- mm]")) self.lineEdit_offset_2.setText("5.0") self.lineEdit_offset_2.setObjectName("lineEdit_offset_2") self.gridLayout.addWidget(self.lineEdit_offset_2, 1, 1, 1, 1) @@ -732,19 +735,19 @@ def setupUi(self, CDialog): self.buttonBox.setObjectName("buttonBox") self.Label_howto = QtGui.QLabel(CDialog) self.Label_howto.setGeometry(QtCore.QRect(20, 5, 265, 61)) - self.Label_howto.setToolTip("Select a Sketch and Parameters\n" + self.Label_howto.setToolTip(translate("Ui_CDialog", "Select a Sketch and Parameters\n" "to constraint the sketch\n" -"NB the Sketch will be modified!") +"NB the Sketch will be modified!")) self.Label_howto.setStatusTip("") self.Label_howto.setWhatsThis("") - self.Label_howto.setText("Select a Sketch and Parameters to
constrain the sketch.
NB the Sketch will be modified!
") + self.Label_howto.setText(translate("Ui_CDialog", "Select a Sketch and Parameters to
constrain the sketch.
NB the Sketch will be modified!
")) self.Label_howto.setObjectName("Label_howto") self.Constraints = QtGui.QGroupBox(CDialog) self.Constraints.setGeometry(QtCore.QRect(10, 70, 145, 166)) self.Constraints.setToolTip("") self.Constraints.setStatusTip("") self.Constraints.setWhatsThis("") - self.Constraints.setTitle("Constraints") + self.Constraints.setTitle(translate("Ui_CDialog", "Constraints")) self.Constraints.setObjectName("Constraints") self.verticalLayoutWidget = QtGui.QWidget(self.Constraints) self.verticalLayoutWidget.setGeometry(QtCore.QRect(12, 20, 125, 137)) @@ -754,8 +757,8 @@ def setupUi(self, CDialog): self.verticalLayout.setObjectName("verticalLayout") self.all_constraints = QtGui.QRadioButton(self.verticalLayoutWidget) self.all_constraints.setMinimumSize(QtCore.QSize(92, 64)) - self.all_constraints.setToolTip("Lock Coincident, Horizontal\n" -"and Vertical") + self.all_constraints.setToolTip(translate("Ui_CDialog", "Lock Coincident, Horizontal\n" +"and Vertical")) self.all_constraints.setText("") self.all_constraints.setIcon(icon) self.all_constraints.setIconSize(QtCore.QSize(48, 48)) @@ -764,7 +767,7 @@ def setupUi(self, CDialog): self.verticalLayout.addWidget(self.all_constraints) self.coincident = QtGui.QRadioButton(self.verticalLayoutWidget) self.coincident.setMinimumSize(QtCore.QSize(92, 64)) - self.coincident.setToolTip("Lock Coincident") + self.coincident.setToolTip(translate("Ui_CDialog", "Lock Coincident")) self.coincident.setText("") icon1 = QtGui.QIcon() icon1.addPixmap(QtGui.QPixmap("Sketcher_LockCoincident.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) @@ -778,7 +781,7 @@ def setupUi(self, CDialog): self.Tolerance.setToolTip("") self.Tolerance.setStatusTip("") self.Tolerance.setWhatsThis("") - self.Tolerance.setTitle("Tolerance") + self.Tolerance.setTitle(translate("Ui_CDialog", "Tolerance")) self.Tolerance.setObjectName("Tolerance") self.verticalLayoutWidget_2 = QtGui.QWidget(self.Tolerance) self.verticalLayoutWidget_2.setGeometry(QtCore.QRect(8, 20, 125, 57)) @@ -790,13 +793,13 @@ def setupUi(self, CDialog): self.label.setToolTip("mm") self.label.setStatusTip("") self.label.setWhatsThis("") - self.label.setText("tolerance in mm") + self.label.setText(translate("Ui_CDialog", "tolerance in mm")) self.label.setObjectName("label") self.verticalLayout_2.addWidget(self.label) self.tolerance = QtGui.QLineEdit(self.verticalLayoutWidget_2) self.tolerance.setMinimumSize(QtCore.QSize(64, 22)) self.tolerance.setMaximumSize(QtCore.QSize(64, 22)) - self.tolerance.setToolTip("Tolerance on Constraints") + self.tolerance.setToolTip(translate("Ui_CDialog", "Tolerance on Constraints")) self.tolerance.setStatusTip("") self.tolerance.setWhatsThis("") self.tolerance.setInputMethodHints(QtCore.Qt.ImhPreferNumbers) @@ -807,7 +810,7 @@ def setupUi(self, CDialog): self.verticalLayout_2.addWidget(self.tolerance) self.rmvXGeo = QtGui.QCheckBox(CDialog) self.rmvXGeo.setGeometry(QtCore.QRect(170, 180, 141, 20)) - self.rmvXGeo.setToolTip("remove duplicated geometries") + self.rmvXGeo.setToolTip(translate("Ui_CDialog", "remove duplicated geometries")) self.rmvXGeo.setStatusTip("") self.rmvXGeo.setText("rmv xtr geo") self.rmvXGeo.setObjectName("rmvXGeo") @@ -861,8 +864,8 @@ class ksuTools: def GetResources(self): return {'Pixmap' : os.path.join( ksuWB_icons_path , 'kicad-StepUp-icon.svg') , # the name of a svg file available in the resources - 'MenuText': "ksu Tools" , - 'ToolTip' : "Activate the main\nkicad StepUp Tools Dialog"} + 'MenuText': QT_TRANSLATE_NOOP("ksuTools","ksu Tools") , + 'ToolTip' : QT_TRANSLATE_NOOP("ksuTools","Activate the main\nKiCad StepUp Tools Dialog")} def IsActive(self): #if FreeCAD.ActiveDocument == None: @@ -890,7 +893,7 @@ class ksuToolsContour2Poly: "ksu tools Shapes Selection to PolyLine Sketch" def GetResources(self): - mybtn_tooltip ="ksu tools \'RF PolyLined Sketch\'\nSelection\'s Shapes to PolyLine Sketch" + mybtn_tooltip = QT_TRANSLATE_NOOP("ksuToolsContour2Poly","ksu tools \'RF PolyLined Sketch\'\nSelection\'s Shapes to PolyLine Sketch") return {'Pixmap' : os.path.join( ksuWB_icons_path , 'Sketcher_CreatePolyline-RF.svg') , # the name of a svg file available in the resources 'MenuText': mybtn_tooltip , 'ToolTip' : mybtn_tooltip} @@ -993,8 +996,10 @@ def __init__(self, xs, ys, xe, ye): doc.commitTransaction() - msg="""PolyLine Contour generated

""" - msg+="For PolyLine Pads, please add \'circles\' inside each closed polyline
" + msg=translate( + "ksu", + "PolyLine Contour generated\n\n" + "For PolyLine Pads, please add \'circles\' inside each closed polyline
") info_msg(msg) #stop #FreeCAD.ActiveDocument.recompute() @@ -1007,8 +1012,8 @@ class ksuToolsMoveSketch: def GetResources(self): return {'Pixmap' : os.path.join( ksuWB_icons_path , 'Sketcher_Move.svg') , # the name of a svg file available in the resources - 'MenuText': "Move Sketch" , - 'ToolTip' : "ksu Move 2D Sketch"} + 'MenuText': QT_TRANSLATE_NOOP("ksuToolsMoveSketch","Move Sketch") , + 'ToolTip' : QT_TRANSLATE_NOOP("ksuToolsMoveSketch","ksu Move 2D Sketch")} def IsActive(self): sel = FreeCADGui.Selection.getSelection() @@ -1027,7 +1032,7 @@ def Activated(self): offsetDlg = QtGui.QDialog() ui = Ui_Offset_value() ui.setupUi(offsetDlg) - ui.offset_label.setText("Select a Sketch and Parameters to
move the sketch.
Offset X:") + ui.offset_label.setText(translate("ksu","Select a Sketch and Parameters to
move the sketch.
Offset X:")) ui.lineEdit_offset.setText("10.0") ui.offset_label_2.setText("Offset Y [mm]:") ui.lineEdit_offset_2.setToolTip("Offset Y value [+/- mm]") @@ -1079,8 +1084,8 @@ class ksuToolsOffset2D: def GetResources(self): return {'Pixmap' : os.path.join( ksuWB_icons_path , 'Offset2D.svg') , # the name of a svg file available in the resources - 'MenuText': "Offset 2D" , - 'ToolTip' : "ksu Offset 2D object"} + 'MenuText': QT_TRANSLATE_NOOP("ksuToolsOffset2D","Offset 2D") , + 'ToolTip' : QT_TRANSLATE_NOOP("ksuToolsOffset2D","ksu Offset 2D object")} def IsActive(self): sel = FreeCADGui.Selection.getSelection() @@ -1128,7 +1133,7 @@ class ksuToolsExtrude: "ksu tools Extrude Selection" def GetResources(self): - mybtn_tooltip ="ksu tools \'Extrude\'\nExtrude selection" + mybtn_tooltip =QT_TRANSLATE_NOOP("ksuToolsExtrude","ksu tools \'Extrude\'\nExtrude selection") return {'Pixmap' : os.path.join( ksuWB_icons_path , 'Part_Extrude.svg') , # the name of a svg file available in the resources 'MenuText': mybtn_tooltip , 'ToolTip' : mybtn_tooltip} @@ -1155,7 +1160,7 @@ class ksuToolsSkValidate: "ksu tools Sketcher Validate Selection" def GetResources(self): - mybtn_tooltip ="ksu tools \'Sketcher Validate\'\nValidate selected Sketch" + mybtn_tooltip =QT_TRANSLATE_NOOP("ksuToolsSkValidate","ksu tools \'Sketcher Validate\'\nValidate selected Sketch") return {'Pixmap' : os.path.join( ksuWB_icons_path , 'Sketcher_Validate.svg') , # the name of a svg file available in the resources 'MenuText': mybtn_tooltip , 'ToolTip' : mybtn_tooltip} @@ -1183,8 +1188,8 @@ class ksuToolsOpenBoard: def GetResources(self): return {'Pixmap' : os.path.join( ksuWB_icons_path , 'importBoard.svg') , # the name of a svg file available in the resources - 'MenuText': "Load Board" , - 'ToolTip' : "ksu Load KiCad PCB Board and Parts"} + 'MenuText': QT_TRANSLATE_NOOP("ksuToolsOpenBoard","Load Board") , + 'ToolTip' : QT_TRANSLATE_NOOP("ksuToolsOpenBoard","ksu Load KiCad PCB Board and Parts")} def IsActive(self): #if FreeCAD.ActiveDocument == None: @@ -1219,8 +1224,8 @@ class ksuToolsLoadFootprint: def GetResources(self): return {'Pixmap' : os.path.join( ksuWB_icons_path , 'importFP.svg') , # the name of a svg file available in the resources - 'MenuText': "Load FootPrint" , - 'ToolTip' : "ksu Load KiCad PCB FootPrint"} + 'MenuText': QT_TRANSLATE_NOOP("ksuToolsLoadFootprint","Load FootPrint") , + 'ToolTip' : QT_TRANSLATE_NOOP("ksuToolsLoadFootprint","ksu Load KiCad PCB FootPrint")} def IsActive(self): #if FreeCAD.ActiveDocument == None: @@ -1251,8 +1256,8 @@ class ksuToolsExportModel: def GetResources(self): return {'Pixmap' : os.path.join( ksuWB_icons_path , 'export3DModel.svg') , # the name of a svg file available in the resources - 'MenuText': "Export 3D Model" , - 'ToolTip' : "ksu Export 3D Model to KiCad"} + 'MenuText': QT_TRANSLATE_NOOP("ksuToolsExportModel","Export 3D Model") , + 'ToolTip' : QT_TRANSLATE_NOOP("ksuToolsExportModel","ksu Export 3D Model to KiCad")} def IsActive(self): #if FreeCAD.ActiveDocument == None: @@ -1275,10 +1280,10 @@ def Activated(self): ##or made something as in load board #ini_content=kicadStepUptools.cfg_read_all() if FreeCAD.ActiveDocument.FileName == "": - msg="""please save your job file before exporting.""" + msg = translate("Save", "Please save your job file before exporting.") QtGui.QApplication.restoreOverrideCursor() - QtGui.QMessageBox.information(None,"Info ...",msg) - FreeCADGui.SendMsgToActiveView("Save") + QtGui.QMessageBox.information(None,translate("Save", "Info ..."),msg) + FreeCADGui.SendMsgToActiveView(translate("Save", "Save")) from kicadStepUptools import routineScaleVRML if reload_Gui: @@ -1300,8 +1305,8 @@ class ksuToolsImport3DStep: def GetResources(self): return {'Pixmap' : os.path.join( ksuWB_icons_path , 'add_block_y.svg') , # the name of a svg file available in the resources - 'MenuText': "Import 3D Step" , - 'ToolTip' : "ksu Import 3D Step Model"} + 'MenuText': QT_TRANSLATE_NOOP("ksuToolsImport3DStep","Import 3D STEP") , + 'ToolTip' : QT_TRANSLATE_NOOP("ksuToolsImport3DStep","ksu Import 3D STEP Model")} def IsActive(self): #if FreeCAD.ActiveDocument == None: @@ -1330,8 +1335,8 @@ class ksuToolsExport3DStep: def GetResources(self): return {'Pixmap' : os.path.join( ksuWB_icons_path , 'export3DStep.svg') , # the name of a svg file available in the resources - 'MenuText': "Export 3D to Step" , - 'ToolTip' : "ksu Export selected objects to Step Model"} + 'MenuText': QT_TRANSLATE_NOOP("ksuToolsExport3DStep","Export 3D to STEP") , + 'ToolTip' : QT_TRANSLATE_NOOP("ksuToolsExport3DStep","ksu Export selected objects to STEP Model")} def IsActive(self): #if FreeCAD.ActiveDocument == None: @@ -1360,8 +1365,8 @@ class ksuToolsMakeUnion: def GetResources(self): return {'Pixmap' : os.path.join( ksuWB_icons_path , 'fusion.svg') , # the name of a svg file available in the resources - 'MenuText': "Make Union" , - 'ToolTip' : "ksu Make a Union of selected objects"} + 'MenuText': QT_TRANSLATE_NOOP("ksuToolsMakeUnion","Make Union") , + 'ToolTip' : QT_TRANSLATE_NOOP("ksuToolsMakeUnion","ksu Make a Union of selected objects")} def IsActive(self): #if FreeCAD.ActiveDocument == None: @@ -1390,8 +1395,8 @@ class ksuToolsMakeCompound: def GetResources(self): return {'Pixmap' : os.path.join( ksuWB_icons_path , 'compound.svg') , # the name of a svg file available in the resources - 'MenuText': "Make Compound" , - 'ToolTip' : "ksu Make a Compound of selected objects"} + 'MenuText': QT_TRANSLATE_NOOP("ksuToolsMakeCompound","Make Compound") , + 'ToolTip' : QT_TRANSLATE_NOOP("ksuToolsMakeCompound","ksu Make a Compound of selected objects")} def IsActive(self): #if FreeCAD.ActiveDocument == None: @@ -1420,8 +1425,8 @@ class ksuToolsPushPCB: def GetResources(self): return {'Pixmap' : os.path.join( ksuWB_icons_path , 'Sketcher_Rectangle.svg') , # the name of a svg file available in the resources - 'MenuText': "Push Sketch to PCB" , - 'ToolTip' : "ksu Push Sketch to PCB Edge"} + 'MenuText': QT_TRANSLATE_NOOP("ksuToolsPushPCB","Push Sketch to PCB") , + 'ToolTip' : QT_TRANSLATE_NOOP("ksuToolsPushPCB","ksu Push Sketch to PCB Edge")} def IsActive(self): #if FreeCAD.ActiveDocument == None: @@ -1512,8 +1517,8 @@ class ksuToolsPullPCB: def GetResources(self): return {'Pixmap' : os.path.join( ksuWB_icons_path , 'Sketcher_Pull.svg') , # the name of a svg file available in the resources - 'MenuText': "Pull Sketch from PCB" , - 'ToolTip' : "ksu Pull Sketch from PCB Edge"} + 'MenuText': QT_TRANSLATE_NOOP("ksuToolsPullPCB","Pull Sketch from PCB") , + 'ToolTip' : QT_TRANSLATE_NOOP("ksuToolsPullPCB","ksu Pull Sketch from PCB Edge")} def IsActive(self): #if FreeCAD.ActiveDocument == None: @@ -1549,8 +1554,8 @@ class ksuToolsPushMoved: def GetResources(self): return {'Pixmap' : os.path.join( ksuWB_icons_path , 'PushMoved.svg') , # the name of a svg file available in the resources - 'MenuText': "Push 3D moved model(s) to PCB" , - 'ToolTip' : "ksu Push 3D moved model(s) to PCB"} + 'MenuText': QT_TRANSLATE_NOOP("ksuToolsPushMoved","Push 3D moved model(s) to PCB") , + 'ToolTip' : QT_TRANSLATE_NOOP("ksuToolsPushMoved","ksu Push 3D moved model(s) to PCB")} def IsActive(self): #if FreeCAD.ActiveDocument == None: @@ -1583,8 +1588,8 @@ class ksuToolsPullMoved: def GetResources(self): return {'Pixmap' : os.path.join( ksuWB_icons_path , 'PullMoved.svg') , # the name of a svg file available in the resources - 'MenuText': "Pull 3D model(s) placement from PCB" , - 'ToolTip' : "ksu Pull 3D model(s) placement from PCB"} + 'MenuText': QT_TRANSLATE_NOOP("ksuToolsPullMoved","Pull 3D model(s) placement from PCB") , + 'ToolTip' : QT_TRANSLATE_NOOP("ksuToolsPullMoved","ksu Pull 3D model(s) placement from PCB")} def IsActive(self): #if FreeCAD.ActiveDocument == None: @@ -1617,8 +1622,8 @@ class ksuAsm2Part: def GetResources(self): return {'Pixmap' : os.path.join( ksuWB_icons_path , 'Assembly_To_Part.svg') , # the name of a svg file available in the resources - 'MenuText': "Convert an Assembly (A3) to Part hierarchy" , - 'ToolTip' : "ksu Convert an Assembly (A3) to Part hierarchy"} + 'MenuText': QT_TRANSLATE_NOOP("ksuAsm2Part","Convert an Assembly (A3) to Part hierarchy") , + 'ToolTip' : QT_TRANSLATE_NOOP("ksuAsm2Part","ksu Convert an Assembly (A3) to Part hierarchy")} def IsActive(self): import FreeCADGui @@ -1753,8 +1758,8 @@ class ksuToolsSync3DModels: def GetResources(self): return {'Pixmap' : os.path.join( ksuWB_icons_path , 'Sync3Dmodels.svg') , # the name of a svg file available in the resources - 'MenuText': "Sync 3D model(s) Ref & TimeStamps with PCB" , - 'ToolTip' : "ksu Sync 3D model(s) Ref & TimeStamps\nof the Selected 3D model with kicad PCB"} + 'MenuText': QT_TRANSLATE_NOOP("ksuToolsSync3DModels","Sync 3D model(s) Ref & TimeStamps with PCB") , + 'ToolTip' : QT_TRANSLATE_NOOP("ksuToolsSync3DModels","ksu Sync 3D model(s) Ref & TimeStamps\nof the Selected 3D model with KiCad PCB")} def IsActive(self): #if FreeCAD.ActiveDocument == None: @@ -1788,8 +1793,8 @@ class ksuToolsGeneratePositions: def GetResources(self): return {'Pixmap' : os.path.join( ksuWB_icons_path , 'File_Positions.svg') , # the name of a svg file available in the resources - 'MenuText': "tools Generate 3D models Positions" , - 'ToolTip' : "ksu Generate 3D models Positions\nData for Active Document\n[MCAD Synchronize]"} + 'MenuText': QT_TRANSLATE_NOOP("ksuToolsGeneratePositions","tools Generate 3D models Positions") , + 'ToolTip' : QT_TRANSLATE_NOOP("ksuToolsGeneratePositions","ksu Generate 3D models Positions\nData for Active Document\n[MCAD Synchronize]")} def IsActive(self): if FreeCAD.ActiveDocument is None: @@ -1815,8 +1820,8 @@ class ksuToolsComparePositions: def GetResources(self): return {'Pixmap' : os.path.join( ksuWB_icons_path , 'Compare_Positions.svg') , # the name of a svg file available in the resources - 'MenuText': "tools Compare 3D models Positions" , - 'ToolTip' : "ksu Compare 3D models Positions\nData with the Active Document\n[MCAD Synchronize]"} + 'MenuText': QT_TRANSLATE_NOOP("ksuToolsComparePositions","tools Compare 3D models Positions") , + 'ToolTip' : QT_TRANSLATE_NOOP("ksuToolsComparePositions","ksu Compare 3D models Positions\nData with the Active Document\n[MCAD Synchronize]")} def IsActive(self): if FreeCAD.ActiveDocument is None: @@ -1863,8 +1868,8 @@ class ksuToolsCollisions: def GetResources(self): return {'Pixmap' : os.path.join( ksuWB_icons_path , 'collisions.svg') , # the name of a svg file available in the resources - 'MenuText': "Check Collisions" , - 'ToolTip' : "ksu Check Collisions and Interferences"} + 'MenuText': QT_TRANSLATE_NOOP("ksuToolsCollisions","Check Collisions") , + 'ToolTip' : QT_TRANSLATE_NOOP("ksuToolsCollisions","ksu Check Collisions and Interferences")} def IsActive(self): return True @@ -1889,8 +1894,8 @@ class ksuTools3D2D: def GetResources(self): return {'Pixmap' : os.path.join( ksuWB_icons_path , '3Dto2D.svg') , # the name of a svg file available in the resources - 'MenuText': "3D to 2D" , - 'ToolTip' : "ksu 3D object to 2D projection"} + 'MenuText': QT_TRANSLATE_NOOP("ksuTools3D2D","3D to 2D") , + 'ToolTip' : QT_TRANSLATE_NOOP("ksuTools3D2D","ksu 3D object to 2D projection")} def IsActive(self): return True @@ -1937,8 +1942,8 @@ class ksuToolsTurnTable: def GetResources(self): return {'Pixmap' : os.path.join( ksuWB_icons_path , 'texture_turntable.svg') , # the name of a svg file available in the resources - 'MenuText': "TurnTable" , - 'ToolTip' : "ksu TurnTable"} + 'MenuText': QT_TRANSLATE_NOOP("ksuToolsTurnTable","TurnTable"), + 'ToolTip' : QT_TRANSLATE_NOOP("ksuToolsTurnTable","ksu TurnTable")} def IsActive(self): if FreeCAD.ActiveDocument is None: @@ -1999,8 +2004,8 @@ class ksuToolsConstrainator: def GetResources(self): return {'Pixmap' : os.path.join( ksuWB_icons_path , 'Sketcher_LockAll.svg') , # the name of a svg file available in the resources - 'MenuText': "Constrain a Sketch" , - 'ToolTip' : "ksu Fix & auto Constrain a Sketch"} + 'MenuText': QT_TRANSLATE_NOOP("ksuToolsConstrainator","Constrain a Sketch") , + 'ToolTip' : QT_TRANSLATE_NOOP("ksuToolsConstrainator","ksu Fix & auto Constrain a Sketch")} def IsActive(self): return True @@ -2068,8 +2073,8 @@ class ksuToolsDiscretize: def GetResources(self): return {'Pixmap' : os.path.join( ksuWB_icons_path , 'Discretize.svg') , # the name of a svg file available in the resources - 'MenuText': "Discretize" , - 'ToolTip' : "ksu Discretize a shape/outline to a Sketch"} + 'MenuText': QT_TRANSLATE_NOOP("ksuToolsDiscretize","Discretize") , + 'ToolTip' : QT_TRANSLATE_NOOP("ksuToolsDiscretize","ksu Discretize a shape/outline to a Sketch")} def IsActive(self): return True @@ -2109,8 +2114,8 @@ class ksuToolsEdges2Sketch: def GetResources(self): return {'Pixmap' : os.path.join( ksuWB_icons_path , 'Edges2Sketch.svg') , # the name of a svg file available in the resources - 'MenuText': "Edges to Sketch" , - 'ToolTip' : "ksu Select coplanar edge(s) or Face(s) or \na single Vertex of a coplanar outline \nto get a corresponding Sketch"} + 'MenuText': QT_TRANSLATE_NOOP("ksuToolsEdges2Sketch","Edges to Sketch") , + 'ToolTip' : QT_TRANSLATE_NOOP("ksuToolsEdges2Sketch","ksu Select coplanar edge(s) or Face(s) or \na single Vertex of a coplanar outline \nto get a corresponding Sketch")} def IsActive(self): sel = FreeCADGui.Selection.getSelection() @@ -2141,8 +2146,8 @@ class ksuToolsResetPartPlacement: ##################################### def GetResources(self): return {'Pixmap' : os.path.join( ksuWB_icons_path , 'resetPartPlacement.svg') , # the name of a svg file available in the resources - 'MenuText': "Reset Part Placement" , - 'ToolTip' : "ksu Reset Placement for all Part containers in selection"} + 'MenuText': QT_TRANSLATE_NOOP("ksuToolsResetPartPlacement","Reset Part Placement") , + 'ToolTip' : QT_TRANSLATE_NOOP("ksuToolsResetPartPlacement","ksu Reset Placement for all Part containers in selection")} def getLinkGlobalPlacement(self,ob): # print(ob.Name,'Link object') # FreeCAD.Console.PrintMessage(ob.Parents) @@ -2275,8 +2280,8 @@ class ksuToolsResetPlacement: def GetResources(self): return {'Pixmap' : os.path.join( ksuWB_icons_path , 'resetPlacement.svg') , # the name of a svg file available in the resources - 'MenuText': "Reset Placement" , - 'ToolTip' : "ksu Reset Placement for a Shape"} + 'MenuText': QT_TRANSLATE_NOOP("ksuToolsResetPlacement","Reset Placement") , + 'ToolTip' : QT_TRANSLATE_NOOP("ksuToolsResetPlacement","ksu Reset Placement for a Shape")} def IsActive(self): doc = FreeCAD.activeDocument() @@ -2312,8 +2317,8 @@ class ksuTools2D2Sketch: def GetResources(self): return {'Pixmap' : os.path.join( ksuWB_icons_path , '2DtoSketch.svg') , # the name of a svg file available in the resources - 'MenuText': "2D to Sketch" , - 'ToolTip' : "ksu 2D object (or DXF) to Sketch"} + 'MenuText': QT_TRANSLATE_NOOP("ksuTools2D2Sketch","2D to Sketch") , + 'ToolTip' : QT_TRANSLATE_NOOP("ksuTools2D2Sketch","ksu 2D object (or DXF) to Sketch")} def IsActive(self): return True @@ -2503,8 +2508,8 @@ class ksuTools2DtoFace: def GetResources(self): return {'Pixmap' : os.path.join( ksuWB_icons_path , '2DtoFace.svg') , # the name of a svg file available in the resources - 'MenuText': "2D to Face" , - 'ToolTip' : "ksu 2D object (or DXF) to Surface for extruding"} + 'MenuText': QT_TRANSLATE_NOOP("ksuTools2DtoFace","2D to Face") , + 'ToolTip' : QT_TRANSLATE_NOOP("ksuTools2DtoFace","ksu 2D object (or DXF) to Surface for extruding")} def IsActive(self): return True @@ -2548,8 +2553,8 @@ class ksuToolsSimplifySketck: def GetResources(self): return {'Pixmap' : os.path.join( ksuWB_icons_path , 'SimplifySketch.svg') , # the name of a svg file available in the resources - 'MenuText': "Simplify Sketch" , - 'ToolTip' : "ksu Simplifying Sketch to Arcs and Lines"} + 'MenuText': QT_TRANSLATE_NOOP("ksuToolsSimplifySketck","Simplify Sketch") , + 'ToolTip' : QT_TRANSLATE_NOOP("ksuToolsSimplifySketck","ksu Simplifying Sketch to Arcs and Lines")} def IsActive(self): return True @@ -2575,8 +2580,8 @@ class ksuToolsBsplineNormalize: def GetResources(self): return {'Pixmap' : os.path.join( ksuWB_icons_path , 'Sketcher_BSplineNormalize.svg') , # the name of a svg file available in the resources - 'MenuText': "Geo to Bspline" , - 'ToolTip' : "ksu Convert Geometry to Bspline for KiCAD format"} + 'MenuText': QT_TRANSLATE_NOOP("ksuToolsBsplineNormalize","Geo to Bspline") , + 'ToolTip' : QT_TRANSLATE_NOOP("ksuToolsBsplineNormalize","ksu Convert Geometry to Bspline for KiCAD format")} def IsActive(self): return True @@ -2602,8 +2607,8 @@ class ksuToolsFootprintGen: def GetResources(self): return {'Pixmap' : os.path.join( ksuWB_icons_path , 'exportFootprint.svg') , # the name of a svg file available in the resources - 'MenuText': "Footprint generator" , - 'ToolTip' : "ksu Footprint editor and exporter"} + 'MenuText': QT_TRANSLATE_NOOP("ksuToolsFootprintGen","Footprint generator") , + 'ToolTip' : QT_TRANSLATE_NOOP("ksuToolsFootprintGen","ksu Footprint editor and exporter")} def IsActive(self): return True @@ -2632,8 +2637,8 @@ class ksuToolsStepImportModeSTD: def GetResources(self): return {'Pixmap' : os.path.join( ksuWB_icons_path , 'ImportModeSTD.svg') , # the name of a svg file available in the resources - 'MenuText': "disable Full STEP Import Mode" , - 'ToolTip' : "ksu tools disable Full STEP Import Mode"} + 'MenuText': QT_TRANSLATE_NOOP("ksuToolsStepImportModeSTD","disable Full STEP Import Mode") , + 'ToolTip' : QT_TRANSLATE_NOOP("ksuToolsStepImportModeSTD","ksu tools disable Full STEP Import Mode")} def IsActive(self): paramGetVS = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Import/hSTEP") @@ -2667,8 +2672,8 @@ class ksuToolsStepImportModeComp: def GetResources(self): return {'Pixmap' : os.path.join( ksuWB_icons_path , 'ImportModeSimplified.svg') , # the name of a svg file available in the resources - 'MenuText': "disable Simplified STEP Import Mode" , - 'ToolTip' : "ksu tools disable Simplified STEP Import Mode"} + 'MenuText': QT_TRANSLATE_NOOP("ksuToolsStepImportModeComp","disable Simplified STEP Import Mode") , + 'ToolTip' : QT_TRANSLATE_NOOP("ksuToolsStepImportModeComp","ksu tools disable Simplified STEP Import Mode")} def IsActive(self): paramGetVS = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Import/hSTEP") @@ -2702,8 +2707,8 @@ class ksuToolsCopyPlacement: def GetResources(self): return {'Pixmap' : os.path.join( ksuWB_icons_path , 'Placement_Copy.svg') , # the name of a svg file available in the resources - 'MenuText': "Copy Placement 1st to 2nd" , - 'ToolTip' : "ksu tools Copy Placement 1st to 2nd"} + 'MenuText': QT_TRANSLATE_NOOP("ksuToolsCopyPlacement","Copy Placement 1st to 2nd") , + 'ToolTip' : QT_TRANSLATE_NOOP("ksuToolsCopyPlacement","ksu tools Copy Placement 1st to 2nd")} def IsActive(self): return True @@ -2743,8 +2748,8 @@ class ksuToolsColoredClone: def GetResources(self): return {'Pixmap' : os.path.join( ksuWB_icons_path , 'CloneYlw.svg') , # the name of a svg file available in the resources - 'MenuText': "Colored Clone" , - 'ToolTip' : "Colored Clone object"} + 'MenuText': QT_TRANSLATE_NOOP("ksuToolsColoredClone","Colored Clone") , + 'ToolTip' : QT_TRANSLATE_NOOP("ksuToolsColoredClone","Colored Clone object")} def IsActive(self): return True @@ -2812,8 +2817,8 @@ class ksuToolsColoredBinder: def GetResources(self): return {'Pixmap' : os.path.join( ksuWB_icons_path , 'SubShapeBinderYlw.svg') , # the name of a svg file available in the resources - 'MenuText': "Colored Binder" , - 'ToolTip' : "Colored Binder object"} + 'MenuText': QT_TRANSLATE_NOOP("ksuToolsColoredBinder","Colored Binder") , + 'ToolTip' : QT_TRANSLATE_NOOP("ksuToolsColoredBinder","Colored Binder object")} def IsActive(self): return True @@ -2891,8 +2896,8 @@ class ksuToolsReLinkBinder: def GetResources(self): return {'Pixmap' : os.path.join( ksuWB_icons_path , 'SubShapeBinderRelink.svg') , # the name of a svg file available in the resources - 'MenuText': "Relink Binder" , - 'ToolTip' : "Relink Binder object Select Binder and an Object to be linked"} + 'MenuText': QT_TRANSLATE_NOOP("ksuToolsReLinkBinder","Relink Binder") , + 'ToolTip' : QT_TRANSLATE_NOOP("ksuToolsReLinkBinder","Relink Binder object Select Binder and an Object to be linked")} def IsActive(self): return True @@ -2946,8 +2951,8 @@ class ksuToolsUnion: def GetResources(self): return {'Pixmap' : os.path.join( ksuWB_icons_path , 'Part-Fuse.svg') , # the name of a svg file available in the resources - 'MenuText': "Fuse objects" , - 'ToolTip' : "Make Union (Fuse) objects"} + 'MenuText': QT_TRANSLATE_NOOP("ksuToolsUnion","Fuse objects") , + 'ToolTip' : QT_TRANSLATE_NOOP("ksuToolsUnion","Make Union (Fuse) objects")} def IsActive(self): return True @@ -2992,8 +2997,8 @@ class ksuToolsSimpleCopy: def GetResources(self): return {'Pixmap' : os.path.join( ksuWB_icons_path , 'simple_copy.svg') , # the name of a svg file available in the resources - 'MenuText': "Simple Copy" , - 'ToolTip' : "ksu Simple Copy object"} + 'MenuText': QT_TRANSLATE_NOOP("ksuToolsSimpleCopy","Simple Copy") , + 'ToolTip' : QT_TRANSLATE_NOOP("ksuToolsSimpleCopy","ksu Simple Copy object")} def IsActive(self): return True @@ -3090,8 +3095,8 @@ class ksuToolsDeepCopy: def GetResources(self): return {'Pixmap' : os.path.join( ksuWB_icons_path , 'deep_copy.svg') , # the name of a svg file available in the resources - 'MenuText': "PartDN Copy" , - 'ToolTip' : "ksu PartDN Copy object\nwith relative placement\n[flattened model]"} + 'MenuText': QT_TRANSLATE_NOOP("ksuToolsDeepCopy","PartDN Copy") , + 'ToolTip' : QT_TRANSLATE_NOOP("ksuToolsDeepCopy","ksu PartDN Copy object\nwith relative placement\n[flattened model]")} def IsActive(self): if int(float(FreeCAD.Version()[0]))==0 and int(float(FreeCAD.Version()[1]))<=16: #active only for FC>0.16 @@ -3350,8 +3355,8 @@ class ksuToolsRemoveFromTree: def GetResources(self): return {'Pixmap' : os.path.join( ksuWB_icons_path , 'TreeItemOutMinus.svg') , # the name of a svg file available in the resources - 'MenuText': "Remove from Tree" , - 'ToolTip' : "ksu Remove Object(s) from Container Tree\nkeeping Placement\nFirst Selection is the Container"} + 'MenuText': QT_TRANSLATE_NOOP("ksuToolsRemoveFromTree","Remove from Tree") , + 'ToolTip' : QT_TRANSLATE_NOOP("ksuToolsRemoveFromTree","ksu Remove Object(s) from Container Tree\nkeeping Placement\nFirst Selection is the Container")} def IsActive(self): return True @@ -3412,8 +3417,8 @@ class ksuToolsAddToTree: def GetResources(self): return {'Pixmap' : os.path.join( ksuWB_icons_path , 'TreeItemInPlus.svg') , # the name of a svg file available in the resources - 'MenuText': "Add to Tree" , - 'ToolTip' : "ksu Add Object(s) to Container Tree\nkeeping Placement\nFirst Selection is the Container"} + 'MenuText': QT_TRANSLATE_NOOP("ksuToolsAddToTree","Add to Tree") , + 'ToolTip' : QT_TRANSLATE_NOOP("ksuToolsAddToTree","ksu Add Object(s) to Container Tree\nkeeping Placement\nFirst Selection is the Container")} def IsActive(self): return True @@ -3494,8 +3499,8 @@ class ksuToolsTransparencyToggle: def GetResources(self): return {'Pixmap' : os.path.join( ksuWB_icons_path , 'transparency_toggle.svg') , # the name of a svg file available in the resources - 'MenuText': "Transparency Toggle" , - 'ToolTip' : "ksu Selection Transparency Toggle"} + 'MenuText': QT_TRANSLATE_NOOP("ksuToolsTransparencyToggle","Transparency Toggle") , + 'ToolTip' : QT_TRANSLATE_NOOP("ksuToolsTransparencyToggle","ksu Selection Transparency Toggle")} def IsActive(self): return True @@ -3529,8 +3534,8 @@ class ksuToolsHighlightToggle: def GetResources(self): return {'Pixmap' : os.path.join( ksuWB_icons_path , 'select_toggle.svg') , # the name of a svg file available in the resources - 'MenuText': "Highlight Toggle" , - 'ToolTip' : "ksu Selection Highlight Toggle"} + 'MenuText': QT_TRANSLATE_NOOP("ksuToolsHighlightToggle","Highlight Toggle") , + 'ToolTip' : QT_TRANSLATE_NOOP("ksuToolsHighlightToggle","ksu Selection Highlight Toggle")} def IsActive(self): return True @@ -3557,8 +3562,8 @@ class ksuToolsVisibilityToggle: def GetResources(self): return {'Pixmap' : os.path.join( ksuWB_icons_path , 'visibility_toggle.svg') , # the name of a svg file available in the resources - 'MenuText': "Visibility Toggle" , - 'ToolTip' : "ksu Selection Visibility Toggle"} + 'MenuText': QT_TRANSLATE_NOOP("ksuToolsVisibilityToggle","Visibility Toggle") , + 'ToolTip' : QT_TRANSLATE_NOOP("ksuToolsVisibilityToggle","ksu Selection Visibility Toggle")} def IsActive(self): return True @@ -3581,8 +3586,8 @@ class ksuToolsCheckSolid: def GetResources(self): return {'Pixmap' : os.path.join( ksuWB_icons_path , 'ShapeInfo_check.svg') , # the name of a svg file available in the resources - 'MenuText': "Check Solid property" , - 'ToolTip' : "ksu Check Solid property\nToggle suffix"} + 'MenuText': QT_TRANSLATE_NOOP("ksuToolsCheckSolid","Check Solid property") , + 'ToolTip' : QT_TRANSLATE_NOOP("ksuToolsCheckSolid","ksu Check Solid property\nToggle suffix")} def IsActive(self): return True @@ -3686,8 +3691,8 @@ class ksuToolsToggleTreeView: def GetResources(self): return {'Pixmap' : os.path.join( ksuWB_icons_path , 'expand_all.svg') , # the name of a svg file available in the resources - 'MenuText': "Expand/Collapse Tree View" , - 'ToolTip' : "ksu tools Expand/Collapse Tree View"} + 'MenuText': QT_TRANSLATE_NOOP("ksuToolsToggleTreeView","Expand/Collapse Tree View") , + 'ToolTip' : QT_TRANSLATE_NOOP("ksuToolsToggleTreeView","ksu tools Expand/Collapse Tree View")} def IsActive(self): return True @@ -3717,7 +3722,7 @@ class ksuToolsAligner: "ksu tools Aligner" def GetResources(self): - mybtn_tooltip ="Manipulator tools \'Aligner\'" + mybtn_tooltip =QT_TRANSLATE_NOOP("ksuToolsAligner","Manipulator tools \'Aligner\'") return {'Pixmap' : os.path.join( ksuWB_icons_path , 'Align.svg') , # the name of a svg file available in the resources 'MenuText': mybtn_tooltip , 'ToolTip' : mybtn_tooltip} @@ -3745,7 +3750,7 @@ class ksuToolsMover: "ksu tools Mover" def GetResources(self): - mybtn_tooltip ="Manipulator tools \'Mover\'" + mybtn_tooltip =QT_TRANSLATE_NOOP("ksuToolsMover","Manipulator tools \'Mover\'") return {'Pixmap' : os.path.join( ksuWB_icons_path , 'Mover.svg') , # the name of a svg file available in the resources 'MenuText': mybtn_tooltip , 'ToolTip' : mybtn_tooltip} @@ -3772,7 +3777,7 @@ class ksuToolsCaliper: "ksu tools Caliper" def GetResources(self): - mybtn_tooltip ="Manipulator tools \'Caliper\'" + mybtn_tooltip =QT_TRANSLATE_NOOP("ksuToolsCaliper","Manipulator tools \'Caliper\'") return {'Pixmap' : os.path.join( ksuWB_icons_path , 'Caliper.svg') , # the name of a svg file available in the resources 'MenuText': mybtn_tooltip , 'ToolTip' : mybtn_tooltip} @@ -3799,7 +3804,7 @@ class ksuToolsLoopSelection: "ksu tools Loop Selection" def GetResources(self): - mybtn_tooltip ="ksu tools \'LoopSelection\'\nLoop selection on a xy outline" + mybtn_tooltip =QT_TRANSLATE_NOOP("ksuToolsLoopSelection","ksu tools \'LoopSelection\'\nLoop selection on a xy outline") return {'Pixmap' : os.path.join( ksuWB_icons_path , 'Path-SelectLoop.svg') , # the name of a svg file available in the resources 'MenuText': mybtn_tooltip , 'ToolTip' : mybtn_tooltip} @@ -3831,7 +3836,7 @@ class ksuToolsMergeSketches: "ksu tools Merge Sketches" def GetResources(self): - mybtn_tooltip ="Merge Sketches" + mybtn_tooltip =QT_TRANSLATE_NOOP("ksuToolsMergeSketches","Merge Sketches") return {'Pixmap' : os.path.join( ksuWB_icons_path , 'Sketcher_MergeSketch.svg') , # the name of a svg file available in the resources 'MenuText': mybtn_tooltip , 'ToolTip' : mybtn_tooltip} @@ -3858,7 +3863,7 @@ class ksuToolsEditPrefs: "ksu tools Edit Preferences" def GetResources(self): - mybtn_tooltip ="Edit Preferences" + mybtn_tooltip =QT_TRANSLATE_NOOP("ksuToolsEditPrefs","Edit Preferences") return {'Pixmap' : os.path.join( ksuWB_icons_path , 'Preferences-Edit.svg') , # the name of a svg file available in the resources 'MenuText': mybtn_tooltip , 'ToolTip' : mybtn_tooltip} @@ -3886,7 +3891,7 @@ class ksuOpDXF: "ksu tools open Legacy DXF" def GetResources(self): - mybtn_tooltip ="open Legacy DXF" + mybtn_tooltip = QT_TRANSLATE_NOOP("ksuOpDXF", "open Legacy DXF") return {'Pixmap' : os.path.join( ksuWB_icons_path , 'openDXF.svg') , # the name of a svg file available in the resources 'MenuText': mybtn_tooltip , 'ToolTip' : mybtn_tooltip+' v1.4.0'} @@ -3932,7 +3937,7 @@ class ksuOpEzDXF: "ksu tools open ezDXF" def GetResources(self): - mybtn_tooltip ="open ezDXF" + mybtn_tooltip = QT_TRANSLATE_NOOP("ksuOpEzDXF", "open ezDXF") return {'Pixmap' : os.path.join( ksuWB_icons_path , 'openEzDXF.svg') , # the name of a svg file available in the resources 'MenuText': mybtn_tooltip , 'ToolTip' : mybtn_tooltip } @@ -3980,7 +3985,7 @@ class ksuImpDXF: "ksu tools import Legacy DXF" def GetResources(self): - mybtn_tooltip ="import Legacy DXF" + mybtn_tooltip = QT_TRANSLATE_NOOP("ksuImpDXF", "Import Legacy DXF") return {'Pixmap' : os.path.join( ksuWB_icons_path , 'importDXF.svg') , # the name of a svg file available in the resources 'MenuText': mybtn_tooltip , 'ToolTip' : mybtn_tooltip+' v1.4.0'} @@ -4055,7 +4060,7 @@ class ksuRemoveTimeStamp: "ksu Remove TimeStamp" def GetResources(self): - mybtn_tooltip ="Remove TimeStamp from Labels" + mybtn_tooltip =QT_TRANSLATE_NOOP("ksuRemoveTimeStamp","Remove TimeStamp from Labels") return {'Pixmap' : os.path.join( ksuWB_icons_path , 'remove_TimeStamp.svg') , # the name of a svg file available in the resources 'MenuText': mybtn_tooltip , 'ToolTip' : mybtn_tooltip} @@ -4132,7 +4137,7 @@ class ksuRemoveSuffix: "ksu Remove Suffix" def GetResources(self): - mybtn_tooltip ="Remove \'custom\' Suffix from Labels" + mybtn_tooltip =QT_TRANSLATE_NOOP("ksuRemoveSuffix","Remove \'custom\' Suffix from Labels") return {'Pixmap' : os.path.join( ksuWB_icons_path , 'RemoveSuffix.svg') , # the name of a svg file available in the resources 'MenuText': mybtn_tooltip , 'ToolTip' : mybtn_tooltip} @@ -4246,7 +4251,7 @@ class ksuToolsExplode: "ksu tools Explode" def GetResources(self): - mybtn_tooltip ="ksu Tools PCB Explode\nSelect the top container of a kicad PCB to exlode it" + mybtn_tooltip =QT_TRANSLATE_NOOP("ksuToolsExplode","ksu Tools PCB Explode\nSelect the top container of a KiCad PCB to exlode it") return {'Pixmap' : os.path.join( ksuWB_icons_path , 'Explode_Pcb.svg') , # the name of a svg file available in the resources 'MenuText': mybtn_tooltip , 'ToolTip' : mybtn_tooltip} @@ -4269,7 +4274,7 @@ class ksuToolsDefeaturingTools: "ksu tools DefeaturingTools" def GetResources(self): - mybtn_tooltip ="Defeaturing Tools from Defeaturing WorkBench" + mybtn_tooltip =QT_TRANSLATE_NOOP("ksuToolsDefeaturingTools","Defeaturing Tools from Defeaturing WorkBench") return {'Pixmap' : os.path.join( ksuWB_icons_path , 'DefeaturingTools.svg') , # the name of a svg file available in the resources 'MenuText': mybtn_tooltip , 'ToolTip' : mybtn_tooltip} @@ -4296,7 +4301,7 @@ class ksuToolsRemoveSubTree: "ksu tools Remove Sub Tree" def GetResources(self): - mybtn_tooltip ="Remove Sub Tree" + mybtn_tooltip =QT_TRANSLATE_NOOP("ksuToolsRemoveSubTree","Remove Sub Tree") return {'Pixmap' : os.path.join( ksuWB_icons_path , 'RemoveSubtree.svg') , # the name of a svg file available in the resources 'MenuText': mybtn_tooltip , 'ToolTip' : mybtn_tooltip} @@ -4323,7 +4328,7 @@ class ksuToolsAddTracks: "ksu tools Add Tracks" def GetResources(self): - mybtn_tooltip ="ksu tools Add Tracks\nNB: it could be a very intensive loading!" + mybtn_tooltip =QT_TRANSLATE_NOOP("ksuToolsAddTracks","ksu tools Add Tracks\nNB: it could be a very intensive loading!") return {'Pixmap' : os.path.join( ksuWB_icons_path , 'tracks.svg') , # the name of a svg file available in the resources 'MenuText': mybtn_tooltip , 'ToolTip' : mybtn_tooltip} @@ -4380,7 +4385,7 @@ class ksuToolsAddSilks: "ksu tools Add Silks" def GetResources(self): - mybtn_tooltip ="ksu tools Add Silks from kicad exported DXF\nNB: it could be a very intensive loading!" + mybtn_tooltip =QT_TRANSLATE_NOOP("ksuToolsAddSilks","ksu tools Add Silks from KiCad exported DXF\nNB: it could be a very intensive loading!") return {'Pixmap' : os.path.join( ksuWB_icons_path , 'Silks.svg') , # the name of a svg file available in the resources 'MenuText': mybtn_tooltip , 'ToolTip' : mybtn_tooltip} @@ -4556,7 +4561,7 @@ class checkSolidExpSTEP(): "ksu tools check Export Step" def GetResources(self): - mybtn_tooltip ="Check if the selected part would be\nexported to STEP as a single solid" + mybtn_tooltip =QT_TRANSLATE_NOOP("checkSolidExpSTEP","Check if the selected part would be\nexported to STEP as a single solid") return {'Pixmap' : os.path.join( ksuWB_icons_path , 'Import-Export-STEP.svg') , # the name of a svg file available in the resources 'MenuText': mybtn_tooltip , 'ToolTip' : mybtn_tooltip} @@ -4632,7 +4637,7 @@ class Restore_Transparency(): "ksu tools Restore Transparency to Active Document Objects" def GetResources(self): - mybtn_tooltip ="Restore Transparency to Active Document Objects" + mybtn_tooltip =QT_TRANSLATE_NOOP("Restore_Transparency","Restore Transparency to Active Document Objects") return {'Pixmap' : os.path.join( ksuWB_icons_path , 'Restore_Transparency.svg') , # the name of a svg file available in the resources 'MenuText': mybtn_tooltip , 'ToolTip' : mybtn_tooltip} @@ -4663,7 +4668,7 @@ class Arcs2Circles(): "ksu tools Convert Arcs to Circles in Sketch" def GetResources(self): - mybtn_tooltip ="Convert Arcs to Circles in Sketch" + mybtn_tooltip =QT_TRANSLATE_NOOP("Arcs2Circles","Convert Arcs to Circles in Sketch") return {'Pixmap' : os.path.join( ksuWB_icons_path , 'arc2circle.svg') , # the name of a svg file available in the resources 'MenuText': mybtn_tooltip , 'ToolTip' : mybtn_tooltip} @@ -4712,9 +4717,9 @@ class approximateCenter(): "ksu tools Create Center of Circle through 3 Vertices" def GetResources(self): - mybtn_tooltip ="Create Center of Circle through 3 Vertices or Select two vertices to create a mid point or Select a Shape to create a center point" + mybtn_tooltip =QT_TRANSLATE_NOOP("approximateCenter","Create Center of Circle through 3 Vertices or Select two vertices to create a mid point or Select a Shape to create a center point") return {'Pixmap' : os.path.join( ksuWB_icons_path , 'Three-Points-Center.svg') , # the name of a svg file available in the resources - 'MenuText': "Create Center of Circle through 3 Vertices" , + 'MenuText': QT_TRANSLATE_NOOP("approximateCenter","Create Center of Circle through 3 Vertices") , 'ToolTip' : mybtn_tooltip} def Activated(self): @@ -4821,7 +4826,7 @@ class Create_BoundBox(): "Create BoundBox of the Selected Object" def GetResources(self): - mybtn_tooltip ="Create BoundBox of the Selected Object" + mybtn_tooltip = QT_TRANSLATE_NOOP("Create_BoundBox", "Create BoundBox of the Selected Object") return {'Pixmap' : os.path.join( ksuWB_icons_path , 'BoundBox.svg') , # the name of a svg file available in the resources 'MenuText': mybtn_tooltip , 'ToolTip' : mybtn_tooltip} @@ -4976,8 +4981,8 @@ class ksuToolsImportFootprint: def GetResources(self): return {'Pixmap' : os.path.join( ksuWB_icons_path , 'importFPs.svg') , # the name of a svg file available in the resources - 'MenuText': "Load FootPrint" , - 'ToolTip' : "ksu Load KiCad PCB FootPrint"} + 'MenuText': QT_TRANSLATE_NOOP("ksuToolsImportFootprint", "Load FootPrint"), + 'ToolTip' : QT_TRANSLATE_NOOP("ksuToolsImportFootprint", "ksu Load KiCad PCB FootPrint")} def IsActive(self): #if FreeCAD.ActiveDocument == None: @@ -5012,8 +5017,8 @@ class ksuToolsAlignView: def GetResources(self): return {'Pixmap' : os.path.join( ksuWB_icons_path , 'AlignView2Face.svg') , # the name of a svg file available in the resources - 'MenuText': "AlignView to Face" , - 'ToolTip' : "ksu AlignView to Face"} + 'MenuText': QT_TRANSLATE_NOOP("ksuToolsAlignView", "AlignView to Face") , + 'ToolTip' : QT_TRANSLATE_NOOP("ksuToolsAlignView", "ksu AlignView to Face")} def IsActive(self): doc = FreeCAD.ActiveDocument @@ -5089,4 +5094,4 @@ def pointAt(normal, up): ## -##### \ No newline at end of file +##### diff --git a/kicadStepUptools.py b/kicadStepUptools.py index 6fd1552..3ab4ed1 100644 --- a/kicadStepUptools.py +++ b/kicadStepUptools.py @@ -429,6 +429,7 @@ import PySide from PySide import QtGui, QtCore +from TranslateUtils import translate QtWidgets = QtGui from time import sleep @@ -1328,9 +1329,10 @@ def clear_console(): def close_ksu(): #def closeEvent(self, e): spc="""****************************************************************************
""" - msg="""Do you want to quit? - Have you saved your STEP artwork?
- """ + msg=translate("Close", + "Do you want to quit? " + "Have you saved your STEP artwork?
" + ) #confirm on exit QtGui.QApplication.restoreOverrideCursor() #self.setGeometry(25, 250, 500, 500) @@ -1338,7 +1340,9 @@ def close_ksu(): res='' if test_flag_exit==False: QtGui.QApplication.restoreOverrideCursor() - res = QtGui.QMessageBox.question(None,"Close",msg,QtGui.QMessageBox.Yes|QtGui.QMessageBox.No) + res = QtGui.QMessageBox.question( + None,translate("Close", "Close"),msg,QtGui.QMessageBox.Yes|QtGui.QMessageBox.No + ) if res is not QtGui.QMessageBox.No: #e.ignore() # KSUWidget.close() @@ -1966,13 +1970,13 @@ def SIGNAL_comboBox_Changed(self,text): comboBox_Changed(text) def retranslateUi(self, Dialog): - Dialog.setWindowTitle("Material Properties") - self.label.setText("Materials") - self.label_2.setText("Original") - self.plainTextEdit.setToolTip("Shape Color") - self.plainTextEdit_2.setToolTip("Diffuse Color") - self.label_3.setText("New") - self.label_4.setText("NB: set Material will unmatch colors between wrl and STEP") + Dialog.setWindowTitle(translate("Ui_Dialog", "Material Properties")) + self.label.setText(translate("Ui_Dialog", "Materials")) + self.label_2.setText(translate("Ui_Dialog", "Original")) + self.plainTextEdit.setToolTip(translate("Ui_Dialog", "Shape Color")) + self.plainTextEdit_2.setToolTip(translate("Ui_Dialog", "Diffuse Color")) + self.label_3.setText(translate("Ui_Dialog", "New")) + self.label_4.setText(translate("Ui_Dialog", "NB: set Material will unmatch colors between wrl and STEP")) ### def isWritable(path): try: @@ -7331,7 +7335,7 @@ def routineR_XYZ(axe,alpha): doc.commitTransaction() #say("end of rotineZ!") else: - say("Select ONE single part object !") + say(translate("Say", "Select ONE single part object !")) say_single_obj() #QtGui.QMessageBox.information(None,"Info ...","Select ONE single part object !\r\n"+"\r\n") ### end RotateXYZ @@ -7379,7 +7383,7 @@ def routineT_XYZ(axe,v): doc.commitTransaction() #say("end of rotineT!") else: - say("Select ONE single part object !") + say(translate("Say", "Select ONE single part object !")) say_single_obj() #QtGui.QMessageBox.information(None,"Info ...","Select ONE single part object !\r\n"+"\r\n") ### end TranslateXYZ @@ -7456,7 +7460,7 @@ def routineResetPlacement(keepWB=None): #FreeCAD.activeDocument().recompute() #say("end of rotineRP!") else: - say("Select ONE single part object !") + say(translate("Say", "Select ONE single part object !")) say_single_obj() #QtGui.QMessageBox.information(None,"Info ...","Select ONE single part object !\r\n"+"\r\n") del objs @@ -7465,11 +7469,11 @@ def routineResetPlacement(keepWB=None): def routineScaleVRML(): global exportV, exportS, applymaterials if FreeCAD.ActiveDocument.FileName == "": - msg="""please save your job file before exporting.""" + msg = translate("Save", "please save your job file before exporting.") QtGui.QApplication.restoreOverrideCursor() - QtGui.QMessageBox.information(None,"Info ...",msg) - FreeCADGui.SendMsgToActiveView("Save") - say('routine Scale to VRML 1/2.54') + QtGui.QMessageBox.information(None,translate("Save", "Info ..."),msg) + FreeCADGui.SendMsgToActiveView(translate("Save", "Save")) + say(translate("Say", 'routine Scale to VRML 1/2.54')) cfg_read_all() doc = FreeCAD.ActiveDocument doc.openTransaction('exportModel') @@ -7541,7 +7545,7 @@ def routineScaleVRML(): say('done') FreeCAD.ActiveDocument.commitTransaction() else: - say("Select ONE single part object !") + say(translate("Say", "Select ONE single part object !")) say_single_obj() #QtGui.QMessageBox.information(None,"Info ...","Select ONE single part object !\r\n"+"\r\n") return 0 @@ -7610,7 +7614,7 @@ def routineScaleVRML_1(): QtGui.QMessageBox.information(None,"Info ...",msg) self.setWindowState(QtCore.Qt.WindowActive) else: - say("Select ONE single part object !") + say(translate("Say", "Select ONE single part object !")) say_single_obj() #QtGui.QMessageBox.information(None,"Info ...","Select ONE single part object !\r\n"+"\r\n") return 0 @@ -7702,7 +7706,7 @@ def routineP_XYZ(axe): #FreeCADGui.SendMsgToActiveView("ViewFit") ##FreeCADGui.activeDocument().activeView().viewTop() doc = FreeCAD.ActiveDocument - say("Put on Axe XYZ !") + say(translate("Say", "Put on Axe XYZ !")) selEx = FreeCADGui.Selection.getSelectionEx() objs = [selobj.Object for selobj in selEx] if len(objs) == 1: @@ -7755,18 +7759,22 @@ def routineP_XYZ(axe): routineResetPlacement() doc.commitTransaction() else: - say("Select ONE single part object !") + say(translate("Say", "Select ONE single part object !")) say_single_obj() #QtGui.QMessageBox.information(None,"Info ...","Select ONE single part object !\r\n") ### end routineP_XYZ def say_single_obj(): QtGui.QApplication.restoreOverrideCursor() - msg="""Select ONE single part object !
- suggestion for multi-part:
  Part Boolean Union (recommended)
or
  Part Make compound (alternative choice)
""" + msg = translate("Say", "Select ONE single part object !
\n" + "suggestion for multi-part:
\n" + "  Part Boolean Union (recommended)
\n" + "or
\n" + "  Part Make compound (alternative choice)" + ) spc="""*******************************************************************************
""" - msg1="Error in selection" + msg1=translate("Say", "Error in selection") QtGui.QApplication.restoreOverrideCursor() #RotateXYZGuiClass().setGeometry(25, 250, 500, 500) diag = QtGui.QMessageBox(QtGui.QMessageBox.Icon.Critical, @@ -7777,10 +7785,14 @@ def say_single_obj(): def say_select_obj(): QtGui.QApplication.restoreOverrideCursor() - msg="""Select a Compound or
a Part Design group
or more than one Part object !
""" + msg = translate("Say", + "Select a Compound or
\n" + "a Part Design group
\n" + "or more than one Part object !
" + ) spc="""*******************************************************************************
""" - msg1="Error in selection" + msg1=translate("Say", "Error in selection") QtGui.QApplication.restoreOverrideCursor() #RotateXYZGuiClass().setGeometry(25, 250, 500, 500) diag = QtGui.QMessageBox(QtGui.QMessageBox.Icon.Critical, @@ -7794,7 +7806,7 @@ def say_warning(msg): # msg="""Select a Compound or
a Part Design group
or more than one Part object !
""" spc="""*******************************************************************************
""" - msg1="Warning ..." + msg1 = translate("Say", "Warning ...") QtGui.QApplication.restoreOverrideCursor() #RotateXYZGuiClass().setGeometry(25, 250, 500, 500) diag = QtGui.QMessageBox(QtGui.QMessageBox.Icon.Warning, @@ -7808,7 +7820,7 @@ def say_error(msg): # msg="""Select a Compound or
a Part Design group
or more than one Part object !
""" spc="""*******************************************************************************
""" - msg1="ERROR! ..." + msg1 = translate("Say", "ERROR! ...") QtGui.QApplication.restoreOverrideCursor() #RotateXYZGuiClass().setGeometry(25, 250, 500, 500) diag = QtGui.QMessageBox(QtGui.QMessageBox.Icon.Critical, @@ -7822,7 +7834,7 @@ def say_info(msg): # msg="""Select a Compound or
a Part Design group
or more than one Part object !
""" spc="""*******************************************************************************
""" - msg1="Info ..." + msg1 = translate("Say","Info ...") QtGui.QApplication.restoreOverrideCursor() #RotateXYZGuiClass().setGeometry(25, 250, 500, 500) diag = QtGui.QMessageBox(QtGui.QMessageBox.Icon.Information, @@ -7878,7 +7890,7 @@ def get_position(): pass else: if exportS: - say("Select ONE single part object !") + say(translate("Say", "Select ONE single part object !")) ##QtGui.QMessageBox.information(None,"Info ...","Select ONE single part object !\r\n"+"\r\n") #QtGui.QApplication.restoreOverrideCursor() #msg="""Select ONE single part object !
@@ -7944,7 +7956,7 @@ def routineM_XYZ(axe,v): doc.commitTransaction() #say("end of rotineM!") else: - say("Select an object !") + say(translate("Say", "Select an object !")) #QtGui.QMessageBox.information(None,"Info ...","Select ONE single part object !\r\n"+"\r\n") ### end Move to Point XYZ @@ -14435,7 +14447,7 @@ def setupUi(self, DockWidget): local_link=""+ini_file_full_path_bold+"" #self.config_ini_Lbl.setText(local_link) self.config_ini_Lbl.setText('') - self.config_ini_Lbl.setToolTip("ksu config ini file\nlocation") + self.config_ini_Lbl.setToolTip(translate("Ui_DockWidget", "ksu config ini file\nlocation")) self.textInputRX.setAlignment(QtCore.Qt.AlignRight) self.textInputRY.setAlignment(QtCore.Qt.AlignRight) self.textInputRZ.setAlignment(QtCore.Qt.AlignRight) @@ -14488,62 +14500,62 @@ def setupUi(self, DockWidget): ## retraslateUi Qt5 compatibility ############################################################################################################# def retranslateUi(self, DockWidget): #DockWidget.setWindowTitle(QtGui.QApplication.translate("DockWidget", "kicad StepUp tools", None, QtGui.QApplication.UnicodeUTF8)) - DockWidget.setWindowTitle("kicad StepUp tools") - self.dock_left.setToolTip("dock left") - self.dock_float.setToolTip("un-dock (floating)") - self.dock_minimize.setToolTip("minimize") - self.dock_right.setToolTip("dock right") - self.close.setToolTip("close") - self.textInputX.setToolTip("translate (+/- mm)") + DockWidget.setWindowTitle(translate("Ui_DockWidget", "KiCad StepUp tools")) + self.dock_left.setToolTip(translate("Ui_DockWidget", "dock left")) + self.dock_float.setToolTip(translate("Ui_DockWidget", "un-dock (floating)")) + self.dock_minimize.setToolTip(translate("Ui_DockWidget", "minimize")) + self.dock_right.setToolTip(translate("Ui_DockWidget", "dock right")) + self.close.setToolTip(translate("Ui_DockWidget", "close")) + self.textInputX.setToolTip(translate("Ui_DockWidget", "translate (+/- mm)")) self.textInputX.setText("0.10") - self.textInputZ.setToolTip("translate (+/- mm)") + self.textInputZ.setToolTip(translate("Ui_DockWidget", "translate (+/- mm)")) self.textInputZ.setText("0.10") - self.textInputY.setToolTip("translate (+/- mm)") + self.textInputY.setToolTip(translate("Ui_DockWidget", "translate (+/- mm)")) self.textInputY.setText("0.10") - self.TranslateX.setToolTip("translate X (+/- mm)") - self.TranslateY.setToolTip("translate Y (+/- mm)") - self.TranslateZ.setToolTip("translate Z (+/- mm)") - self.PutOnX.setToolTip("put on X") - self.PutOnY.setToolTip("put on Y") - self.PutOnZ.setToolTip("put on Z") - self.textInputRX.setToolTip("rotation angle (+/- deg)") + self.TranslateX.setToolTip(translate("Ui_DockWidget", "translate X (+/- mm)")) + self.TranslateY.setToolTip(translate("Ui_DockWidget", "translate Y (+/- mm)")) + self.TranslateZ.setToolTip(translate("Ui_DockWidget", "translate Z (+/- mm)")) + self.PutOnX.setToolTip(translate("Ui_DockWidget", "put on X")) + self.PutOnY.setToolTip(translate("Ui_DockWidget", "put on Y")) + self.PutOnZ.setToolTip(translate("Ui_DockWidget", "put on Z")) + self.textInputRX.setToolTip(translate("Ui_DockWidget", "rotation angle (+/- deg)")) self.textInputRX.setText("90") - self.textInputRY.setToolTip("rotation angle (+/- deg)") + self.textInputRY.setToolTip(translate("Ui_DockWidget", "rotation angle (+/- deg)")) self.textInputRY.setText("90") - self.textInputRZ.setToolTip("rotation angle (+/- deg)") + self.textInputRZ.setToolTip(translate("Ui_DockWidget", "rotation angle (+/- deg)")) self.textInputRZ.setText("90") - self.RotateX.setToolTip("rotate X (+/- deg)") - self.RotateY.setToolTip("rotate Y (+/- deg)") - self.RotateZ.setToolTip("rotate Z (+/- deg)") - self.CenterX.setToolTip("center X") - self.CenterY.setToolTip("center Y") - self.CenterZ.setToolTip("center Z") - self.makeCompound.setToolTip("make Compound of Parts") - self.LoadBoard.setToolTip("Load kicad\n" -"Board .kicad_pcb") - self.ScaleVRML.setToolTip("export to kicad:\n" -"STEP & scaled VRML 1/2.54") - self.cb_virtual.setToolTip("enalble loading\n" + self.RotateX.setToolTip(translate("Ui_DockWidget", "rotate X (+/- deg)")) + self.RotateY.setToolTip(translate("Ui_DockWidget", "rotate Y (+/- deg)")) + self.RotateZ.setToolTip(translate("Ui_DockWidget", "rotate Z (+/- deg)")) + self.CenterX.setToolTip(translate("Ui_DockWidget", "center X")) + self.CenterY.setToolTip(translate("Ui_DockWidget", "center Y")) + self.CenterZ.setToolTip(translate("Ui_DockWidget", "center Z")) + self.makeCompound.setToolTip(translate("Ui_DockWidget", "make Compound of Parts")) + self.LoadBoard.setToolTip(translate("Ui_DockWidget", "Load KiCad\n" +"Board .kicad_pcb")) + self.ScaleVRML.setToolTip(translate("Ui_DockWidget", "export to KiCad:\n" +"STEP & scaled VRML 1/2.54")) + self.cb_virtual.setToolTip(translate("Ui_DockWidget", "enable loading\n" "virtual & mechanical\n" -"models") - self.cb_materials.setToolTip("use wrl\n" -"material") - self.LoadFootprint.setToolTip("load kicad footprint\n" -"\'kicad_mod\'") - self.cb_expStep.setToolTip("export STEP Board\n" -"and Parts after loading") - self.makeUnion.setToolTip("make Union of Parts") - self.import3D.setToolTip("import STEP\n" -"3D model") - self.checkCollisions.setToolTip("check Collisions\n" -"tolerance 1e-06") - self.export3DStep.setToolTip("export selected objects to STEP") - self.CreateAxis.setToolTip("create reference Axis") - self.HelpPB.setToolTip("Help & starting Guide") - self.ConfigPB.setToolTip("view Config File content") - self.pushPCB.setToolTip("push PCB Edge to KiCad\n" -"from Sketcher to pcbnew") - #self.config_ini_Lbl.setText("TextLabel") +"models")) + self.cb_materials.setToolTip(translate("Ui_DockWidget", "use wrl\n" +"material")) + self.LoadFootprint.setToolTip(translate("Ui_DockWidget", "load KiCad footprint\n" +"\'kicad_mod\'")) + self.cb_expStep.setToolTip(translate("Ui_DockWidget", "export STEP Board\n" +"and Parts after loading")) + self.makeUnion.setToolTip(translate("Ui_DockWidget", "make Union of Parts")) + self.import3D.setToolTip(translate("Ui_DockWidget", "import STEP\n" +"3D model")) + self.checkCollisions.setToolTip(translate("Ui_DockWidget", "check Collisions\n" +"tolerance 1e-06")) + self.export3DStep.setToolTip(translate("Ui_DockWidget", "export selected objects to STEP")) + self.CreateAxis.setToolTip(translate("Ui_DockWidget", "create reference Axis")) + self.HelpPB.setToolTip(translate("Ui_DockWidget", "Help & starting Guide")) + self.ConfigPB.setToolTip(translate("Ui_DockWidget", "view Config File content")) + self.pushPCB.setToolTip(translate("Ui_DockWidget", "push PCB Edge to KiCad\n" +"from Sketcher to pcbnew")) + #self.config_ini_Lbl.setText("TextLabel")) #self.config_ini_Lbl.setText("TextLabel") @@ -14694,7 +14706,7 @@ def changePixmap_stop_disabled(self): pm.loadFromData(base64.b64decode(stop_b64)) self.collisionLbl.setPixmap(pm) self.collisionLbl.setEnabled(False) - self.collisionLbl.setToolTip('collisions result status') + self.collisionLbl.setToolTip(translate("Ui_DockWidget", 'collisions result status')) #self.setPixmap(pm) #self.pixmap = QtGui.QPixmap(pm) #self.repaint() # repaint() will trigger the paintEvent(self, event), this way the new pixmap will be drawn on the label @@ -14710,7 +14722,7 @@ def changePixmap_ok(self): self.checkCollisions.setIcon(pm) #self.checkCollisions.setEnabled(True) QtCore.QTimer.singleShot(timer_Collisions, self.changePixmap_button_base) - self.checkCollisions.setToolTip('NO collisions found') + self.checkCollisions.setToolTip(translate("Ui_DockWidget", 'NO collisions found')) #self.setPixmap(pm) ##self.pixmap = QtGui.QPixmap(pm) #self.repaint() # repaint() will trigger the paintEvent(self, event), this way the new pixmap will be drawn on the label @@ -14725,7 +14737,7 @@ def changePixmap_button_base(self): self.checkCollisions.setIcon(pm) #self.checkCollisions.setEnabled(True) #QtCore.QTimer.singleShot(timer_Collisions, self.changePixmap_stop_disabled) - self.checkCollisions.setToolTip('check Collisions\ntolerance 1e-06') + self.checkCollisions.setToolTip(translate("Ui_DockWidget", 'check Collisions\ntolerance 1e-06')) #self.setPixmap(pm) ##self.pixmap = QtGui.QPixmap(pm) #self.repaint() # repaint() will trigger the paintEvent(self, event), this way the new pixmap will be drawn on the label @@ -14737,7 +14749,7 @@ def changePixmap_collisions(self): self.checkCollisions.setIconSize(QtCore.QSize(btn_md_sizeX,btn_md_sizeY)) self.checkCollisions.setIcon(pm) QtCore.QTimer.singleShot(timer_Collisions, self.changePixmap_button_base) - self.checkCollisions.setToolTip('collisions FOUND!') + self.checkCollisions.setToolTip(translate("Ui_DockWidget", 'collisions FOUND!')) #self.setPixmap(pm) #self.pixmap = QtGui.QPixmap(pm) #self.repaint() # repaint() will trigger the paintEvent(self, event), this way the new pixmap will be drawn on the label @@ -14749,7 +14761,7 @@ def changePixmap_stop(self): self.collisionLbl.setPixmap(pm) self.collisionLbl.setEnabled(True) QtCore.QTimer.singleShot(timer_Collisions, self.changePixmap_stop_disabled) - self.collisionLbl.setToolTip('collisions FOUND!') + self.collisionLbl.setToolTip(translate("Ui_DockWidget", 'collisions FOUND!')) #self.setPixmap(pm) #self.pixmap = QtGui.QPixmap(pm) #self.repaint() # repaint() will trigger the paintEvent(self, event), this way the new pixmap will be drawn on the label @@ -14855,7 +14867,7 @@ def onCfg(self): #KSUWidget.setGeometry(xp, yp, sizeXMax, sizeY) textEdit_dim = textEdit_dim_base self.textEdit.setGeometry(textEdit_dim[0],textEdit_dim[1],textEdit_dim[2],textEdit_dim[3]) - self.textEdit.setToolTip("ksu config ini file\ncontent") + self.textEdit.setToolTip(translate("Ui_DockWidget", "ksu config ini file\ncontent")) centerOnScreen (KSUWidget) #say("your home path is "+ expanduser("~")) sayw("kicad StepUp version "+str(___ver___)) @@ -15006,7 +15018,7 @@ def onHelp(self): #KSUWidget.setGeometry(xp, yp, sizeXMax, sizeY) textEdit_dim = textEdit_dim_base self.textEdit.setGeometry(textEdit_dim[0],textEdit_dim[1],textEdit_dim[2],textEdit_dim[3]) - self.textEdit.setToolTip("Help Start Guide") + self.textEdit.setToolTip(translate("Ui_DockWidget", "Help Start Guide")) centerOnScreen (KSUWidget) #ini_content=read_ini_file() font_color="""""" @@ -15440,19 +15452,19 @@ def setupUi(self, LayerSelection): self.comboBoxLayerSel.setObjectName("comboBoxLayerSel") self.verticalLayout.addWidget(self.comboBoxLayerSel) self.radioBtn_newdoc = QtWidgets.QRadioButton(self.verticalLayoutWidget) - self.radioBtn_newdoc.setToolTip("open in new FreeCAD document") - self.radioBtn_newdoc.setText("open in new document") + self.radioBtn_newdoc.setToolTip(translate("Ui_LayerSelection", "open in new FreeCAD document")) + self.radioBtn_newdoc.setText(translate("Ui_LayerSelection", "open in new document")) self.radioBtn_newdoc.setChecked(True) self.radioBtn_newdoc.setObjectName("radioBtn_newdoc") self.verticalLayout.addWidget(self.radioBtn_newdoc) self.radioBtn_replace_pcb = QtWidgets.QRadioButton(self.verticalLayoutWidget) - self.radioBtn_replace_pcb.setToolTip("

replace PCB in current document

N.B. Sketch constrains will be deleted!

") - self.radioBtn_replace_pcb.setText("replace PCB and Sketch in current document") + self.radioBtn_replace_pcb.setToolTip(translate("Ui_LayerSelection", "

replace PCB in current document

N.B. Sketch constrains will be deleted!

")) + self.radioBtn_replace_pcb.setText(translate("Ui_LayerSelection", "replace PCB and Sketch in current document")) self.radioBtn_replace_pcb.setObjectName("radioBtn_replace_pcb") self.verticalLayout.addWidget(self.radioBtn_replace_pcb) self.radioBtn_keep_sketch = QtWidgets.QRadioButton(self.verticalLayoutWidget) - self.radioBtn_keep_sketch.setToolTip("

keep Sketch in current document

N.B. this option will keep Sketch & constrains but replace the PCB

This could lead to a unsynced Sketch feature

") - self.radioBtn_keep_sketch.setText("replace PCB and keep Sketch in curr. doc") + self.radioBtn_keep_sketch.setToolTip(translate("Ui_LayerSelection", "

keep Sketch in current document

N.B. this option will keep Sketch & constrains but replace the PCB

This could lead to a unsynced Sketch feature

")) + self.radioBtn_keep_sketch.setText(translate("Ui_LayerSelection", "replace PCB and keep Sketch in curr. doc")) self.radioBtn_keep_sketch.setObjectName("radioBtn_keep_sketch") self.verticalLayout.addWidget(self.radioBtn_keep_sketch) @@ -15517,12 +15529,12 @@ def setupUi(self, LayerSelectionOut): self.width_label = QtWidgets.QLabel(self.verticalLayoutWidget_2) self.width_label.setMinimumSize(QtCore.QSize(150, 0)) self.width_label.setToolTip("") - self.width_label.setText("Line Width:") + self.width_label.setText(translate("Ui_LayerSelectionOut", "Line Width:")) self.width_label.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) self.width_label.setObjectName("width_label") self.horizontalLayout.addWidget(self.width_label) self.lineEdit_width = QtWidgets.QLineEdit(self.verticalLayoutWidget_2) - self.lineEdit_width.setToolTip("Line width for drawings") + self.lineEdit_width.setToolTip(translate("Ui_LayerSelectionOut", "Line width for drawings")) self.lineEdit_width.setText("0.16") self.lineEdit_width.setObjectName("lineEdit_width") self.horizontalLayout.addWidget(self.lineEdit_width) @@ -15555,9 +15567,9 @@ def PushPCB(): global last_3d_path, start_time, load_sketch, last_pcb_path, edge_width #say("export3DSTEP") if load_sketch==False: - msg="""Edge editing NOT supported on FC0.15!
please upgrade your FC release""" + msg = translate("PushPCB", "Edge editing NOT supported on FC0.15!
please upgrade your FC release") say_warning(msg) - msg="Edge editing NOT supported on FC0.15!" + msg = translate("PushPCB", "Edge editing NOT supported on FC0.15!") sayerr(msg) #if 0: #if FreeCAD.ActiveDocument is None: @@ -15575,7 +15587,7 @@ def PushPCB(): if 0: from pivy import coin from math import degrees - print('getting camera view') + print(translate("PushPCB", "getting camera view")) pcam = FreeCADGui.ActiveDocument.ActiveView.getCamera() sketch = sel[0] rot = sketch.getGlobalPlacement().Rotation @@ -15583,10 +15595,10 @@ def PushPCB(): cam = FreeCADGui.ActiveDocument.ActiveView.getCameraNode() if rot.Angle < 0.001: rot.Angle = 0 - print ('forcing rotAngle to 0') + print (translate("PushPCB", "forcing rotAngle to 0")) cam.orientation.setValue(coin.SbVec3f(rot.Axis.x, rot.Axis.y, rot.Axis.z), rot.Angle) #-pi) FreeCADGui.ActiveDocument.ActiveView.fitAll() - print('evaluate to recompute') + print(translate("PushPCB", "evaluate to recompute")) FreeCAD.ActiveDocument.recompute() #sel[0].ViewObject.Visibility = False #print(sel[0].Label) @@ -15639,7 +15651,7 @@ def PushPCB(): else: if not (name.endswith("kicad_pcb")): name = name + ".kicad_pcb" - msg="Saving to an empty KiCad pcb file"+'\n'+name + msg = translate("PushPCB", "Saving to an empty KiCad pcb file")+'\n'+name sayw(msg) last_pcb_path=os.path.dirname(name) pg = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/kicadStepUp") @@ -15655,19 +15667,19 @@ def PushPCB(): # msg="Save to an EXISTING KiCad pcb file to update your Edge!" # sayerr(msg) else: #cancel - print('Cancel') + print(translate("PushPCB", "Cancel")) pass if 0: - print('restoring cam view') + print(translate("PushPCB", "Restoring cam view")) FreeCADGui.ActiveDocument.ActiveView.setCamera(pcam) # sel[0].ViewObject.Visibility = True else: - msg="""select one Sketch to be pushed to kicad board!""" + msg = translate("PushPCB", "Select one Sketch to be pushed to kicad board!") sayerr(msg) say_warning(msg) else: - msg="""select one Sketch to be pushed to kicad board!""" + msg = translate("PushPCB", "Select one Sketch to be pushed to kicad board!") sayerr(msg) say_warning(msg) ## diff --git a/translations/ksu.ts b/translations/ksu.ts new file mode 100644 index 0000000..07cf2a4 --- /dev/null +++ b/translations/ksu.ts @@ -0,0 +1,2271 @@ + + + + + CDialog + + + Dialog + + + + + explode_dwg + + + Explode 3D PCB + kicad StepUp 3D tools + + + + + 1.0 + + + + + kSUGui::DlgSettingskStepUp + + + + + General + + + + + + 3D Prefix working folder + + + + + + <html><head/><body><p>your <span style=" font-weight:600;">KISYS3DMOD</span> path</p><p>or 3D model <span style=" font-weight:600;">main prefix path</span></p></body></html> + + + + + + main 3D folder location 'KISYS3DMOD' +or 'KICAD6_3DMODEL_DIR' + + + + + + <html><head/><body><p>main 3D folder location</p><p><span style=" font-weight:600;">'KISYS3DMOD'</span></p></body></html> + + + + + + + + + + <html><head/><body><p>your <span style=" font-weight:600;">ALIAS</span> 3D</p><p>model prefix path</p></body></html> + + + + + + secondary 3D folder loc +'ALT2 3DMOD' + + + + + + + + + + <html><head/><body><p>secondary 3D folder location</p><p><span style=" font-weight:600;">'ALT3DMOD'</span></p></body></html> + + + + + + PCB settings + + + + + PCBs color. + + + + + + + + + PCB color + + + + + LightGreen + + + + + + Green + + + + + + Blue + + + + + + Red + + + + + + Purple + + + + + + DarkGreen + + + + + + DarkBlue + + + + + + LightBlue + + + + + + Yellow + + + + + + Black + + + + + + White + + + + + + + + PCB Reference Placement in mechanical environment + + + + + + PCB Placement + + + + + + Grid Origin + + + + + + Aux Origin + + + + + + Pcb Center (approx) + + + + + + + + Constraints to be added to PCB Sketch + + + + + + PCB Sketch mode (constraints) + + + + + + Coincident + + + + + + V&H, Coincident + + + + + + Full + + + + + + None + + + + + + Enable/Disable Virtual 3D +(mechanical) models + + + + + + Virtual 3D Models loading + + + + + + + + minimum Drill size applied to PCB +'0.0' -> all drills are loaded +'-1' -> all drills and vias are loaded + + + + + + minimum Drill size applied to PCB + + + + + + 0.0 + + + + + + <html><head/><body><p><span style=" font-weight:600;">Bounding Box LIST:</span><br/>configure which 3D models will be converted to Bounding Box<br/><span style=" font-weight:600;">Examples:</span><br/><span style=" font-weight:600;">ALL</span><span style=" font-style:italic;">-&gt; all models will be converted to bounding boxes</span><br/><span style=" font-weight:600;">LIST</span> DSUB-15-HD_FH, DSUB-9_FH <span style=" font-style:italic;">-&gt; these two models will NOT be converted to BBox</span><br/><span style=" font-style:italic;">(list of 3D model's names separated by a semicolon)</span></p></body></html> + + + + + + Bounding Boxes + + + + + + <html><head/><body><p><span style=" font-weight:600;">Black List:</span><br/>put here your model names that you don't want to load (e.g. smallest ones)<br/>separated by a semicolon.<br/>DNP or DNF attribute.<br/>volume and height are also configurable.<br/>(volume=1 means all models with a volume &lt; 1mm3 will not be included)<br/>(height=1 means all models with a height &lt; 1mm will not be included)<br/><br/><span style=" font-weight:600;">Examples:</span><br/>DNP;R_0402_1005Metric;C_0402_1005Metric;<br/>height=1.0<br/>volume=1.0<br/><span style=" font-weight:600;">An empty list means all the models will be parsed.</span></p></body></html> + + + + + + Black List + + + + + + + + minimum Edge Tolerance applied to PCB +default '0.01mm' + + + + + + minimum edge tolerance + + + + + + 0.01 + + + + + + <html><head/><body><p><span style=" font-weight:600;">White List:</span><br/>put here your model names that you must load (e.g. smallest ones)<br/>separated by a semicolon.<br/><br/><span style=" font-weight:600;">Examples:</span><br/> +LED_D5.0mm_IRBlack;USB_Mini-B_Lumberg_2486_01_Horizontal;<br/><span style=" font-weight:600;">An empty list means all the models will behave as usual.</span></p></body></html> + + + + + White List + + + + + + Import/Export settings + + + + + + <html><head/><body><p>Enable/Disable <span style=" font-weight:600;">fusion (union)</span> of all 3D models.</p><p>Be careful ... fusion can be heavy or generate FC crash with a lot of objects.</p><p>Please consider to use bbox or blacklist small objects</p></body></html> + + + + + + Make a Union of 3D models + + + + + + <html><head/><body><p>Directly <span style=" font-weight:600;">Export STEP</span> after Loading</p></body></html> + + + + + + Directly Export STEP after Loading + + + + + STEP export mode. + + + + + + + + + STEP export mode + + + + + + + + Hierarchy + + + + + + Flat + + + + + + One Container + + + + + 3D Loading mode. + + + + + + + 3D Loading mode + + + + + + 3D_loading_mode +Allowing or not Loading Multi Parts objects + + + + + + Simplified + + + + + + NotMultiParts + + + + + + Standard + + + + + Assembly3 Links allowed. + + + + + + + Assembly3 Links allowed + + + + + Enables Materials for VRML exporting. + + + + + + + Enable Materials for VRML exporting + + + + + Start Turntable after loading. + + + + + + + Start Turntable after loading + + + + + Assembly3 LinkGroups allowed. + + + + + + + Assembly3 LinkGroups allowed + + + + + Enables compressed STEP file ('.stpZ') generation exporting. + + + + + + + Enable compressed STEP file ('.stpZ') generation exporting + + + + + Enables compressed VRML file ('.wrz') generation exporting. + + + + + + + Enable compressed VRML file ('.wrz') generation exporting + + + + + Displays STEP import settings warning. + + + + + + + Display STEP import settings warning + + + + + + <html><head/><body><p>Apply Transparency for 'Glass' Materials:</p><p>Force Transparency to STEP model if 'Glass' is found in '.wrl' model</p></body></html> + + + + + + Apply Transparency for 'Glass' Materials + + + + + + <html><head/><body><p>Apply Transparency for 'Led' Materials:</p><p>Force Transparency to STEP model if 'Led' is found in '.wrl' model</p></body></html> + + + + + + Apply Transparency for 'Led' Materials + + + + + <html><head/><body><p>Skip importing pcb zone(s)</p></body></html> + + + + + skpZone + + + + + <html><head/><body><p>Skip importing pcb tracks and vias</p></body></html> + + + + + skpTracks + + + + + <html><head/><body><p>Skip importing pcb pads</p></body></html> + + + + + skpPads + + + + + + third 3D folder loc +'ALT3 3DMOD' + + + + + + fourth 3D folder loc +'ALT4 3DMOD' + + + + + <html><head/><body><p>Select to NOT use the native dialog box in Open/Save files<br/>(suggested for Snap or FlatPack)</p></body></html> + + + + + don't use native dialog in Open/Save files (for Snap or FlatPack) + + + + + + Mechanical Check + + + + + Generates Sketches for differences on PCB Edge. + + + + + + + Generate Sketches for differences on PCB Edge + + + + + Working directory ccx tools + + + + + + Use custom directory + + + + + Working directory general FEM solver frame work + + + + + Temporary directories + + + + + Let FreeCAD manage (create, delete) the working directories for all solver. Use temporary directories. + + + + + Beside .fcstd file + + + + + Create a directory in the same folder in which the fcstd file of the document is located. Use Subfolder for each solver (e.g. for a file ./mydoc.fcstd and a solver with the label Elmer002 use ./mydoc/Elmer002). + + + + + Use directory set below. Create own subdirectory for every solver. Name directory after the solver label prefixed with the document name. + + + + + Path: + + + + + Mesh + + + + + Create mesh groups for analysis reference shapes + + + + + + choice#1 + + + + + choice#2 + + + + + choice#3 + + + + + Results + + + + + Keep results on calculation re-run + + + + + Restore result dialog settings + + + + + Hide constraints when open result dialog + + + + + + <html><head/><body><p><span style=" font-weight:600;">Bounding Box LIST:</span></p><p>configure which 3D models will be converted to Bounding Box</p><p><span style=" font-weight:600;">Examples:</span></p><p><span style=" font-weight:600;">ALL</span><span style=" font-style:italic;">-&gt; all models will be converted to bounding boxes</span></p><p><span style=" font-weight:600;">LIST</span> DSUB-15-HD_FH, DSUB-9_FH <span style=" font-style:italic;">-&gt; these two models will NOT be converted to BBox</span></p><p><span style=" font-style:italic;">(list of 3D model's names separated by a semicolon)</span></p></body></html> + + + + + + <html><head/><body><p><span style=" font-weight:600;">Black List:</span></p><p>put here your model names that you don't want to load (e.g. smallest ones)</p><p>separated by a semicolon.</p><p>volume and height are also configurable.</p><p>(volume=1 means all models with a volume &lt; 1mm3 will not be included)</p><p>(height=1 means all models with a height &lt; 1mm will not be included)</p><p><br/><span style=" font-weight:600;">Examples:</span></p><p>r_0603;r_0402;c_0402;c_0603</p><p>height=1.0</p><p>volume=1.0</p><p><span style=" font-weight:600;">An empty list means all the models will be parsed.</span></p></body></html> + + + + + Arcs2Circles + + + Convert Arcs to Circles in Sketch + + + + + Close + + + <b>Do you want to quit?</b> <i>Have you saved your STEP artwork?</i><br> + + + + + Close + + + + + Create_BoundBox + + + Create BoundBox of the Selected Object + + + + + Help + + + <b>Kicad StepUp</b> is a tool set to easily <b>collaborate between kicad pcb EDA</b> (board and 3D parts) as STEP models <b>and FreeCAD MCAD</b> modeler.<br> +</font> + + + + + <b>StepUp</b> can also be used <b>to align 3D model to kicad footprint</b>.<br> +The artwork can be used for MCAD interchange and collaboration, and for enclosure design.<br> +The 3D visualization of components on board assemblies in kicad 3dviewer, will be the same in your mechanical software, +because of the STEP interchange format.<br> +It is also possible to <b>Update a pcb Edge from a FC Sketcher.</b><br> +<b>configuration options:</b><br>Configuration options are located in the preferences system of FreeCAD, which is located in the Edit menu -&gt; Preferences.<br> + + + + + + starter Guide:<br><a href='{}{}demo{}{}' target='_blank'>{}</a><br> + + + + + <b>Note:</b> each button has its own <b>Tooltip</b><br> +useful buttons:<br><b>Load kicad Board directly</b> -> will load kicad board and parts in FreeCAD coming from kicad '.kicad_pcb' file<br> +<b>Load kicad Footprint module</b> -> will load directly kicad footprint in FreeCAD to easily align the 3D model to footprint<br> +<b>Export to kicad STEP & scaled VRML</b> -> will convert MCAD model to STEP and VRML to be used by Kicad and kicad StepUp<br> +<b> -> VRML can be multipart;<br> -> STEP must be single part</b><br>(<i>'Part Boolean Union'</i> or <i>'Part Makecompound'</i>)<br> +<i>assign material to selected colors and your VRML 3D models will have nice shiny effects</i><br> +<b>Push pcb Sketch to kicad_pcb Edge</b> -> will push pcb Sketch to kicad_pcb Edge in your design; it can be done with an empty or with an existing pcb Edge<br> +<br>for a more detailed help have a look at <br><b>kicadStepUp-starter-Guide.pdf</b><br> +or just follow the <b>YouTube video tutorials</b> <br><a href='https://youtu.be/h6wMU3lE_sA' target='_blank'>kicadStepUp basics</a><br> +<a href='https://youtu.be/O6vr8QFnYGw' target='_blank'>kicadStepUp STEP alignment to Kicad footprint</a><br> +<a href='https://github.com/easyw/kicadStepUpMod' target='_blank'>check always the latest release of kicadStepUp</a><br><br> +Designing in kicad native 3d-viewer will produce a fully aligned STEP MCAD version +with the same view of kicad 3d render.<br> +Moreover, KiCad StepUp tool set <b>will let you to load the kicad footprint inside FreeCAD and align the 3D part with a visual real time feedback +of the 3d model and footprint reciprocal position.</b><br> +With this tool is possible to download a part from on-line libraries, align the model to kicad footprint +and export the model to wrl, for immediate 3d-viewer alignment in pcbnew.<br> +Now the two words are connected for a better collaboration; just <b>design in kicad EDA</b> and transfer +the artwork to <b>MCAD (FreeCAD)</b> smoothly.<br> +<b>The workflow is very simple</b> and maintains the usual way to work with kicad:<br> +Add models to your library creating 3D models in FreeCAD, or getting models from online libs +or from the parametric 3D lib expressly done to kicad <a href='https://github.com/easyw/kicad-3d-models-in-freecad' target='_blank'>kicadStepUp 3D STEP models generator</a><br> +Once you have your 3D MCAD model, <b>you need to have a copy of that in STEP and VRML format.</b> <br> +(with the latest kicad release you can only have STEP model, VRML is not needed anymore, but <b>it is possible + to mix VRML, STEP and IGES format</b>)<br> +Just exporting the model with FreeCAD and put your model in the same folder in which +normally you are used to put vrml models; the script will assembly the MCAD board and models as in 3d-viewer of kicad. +<br><b>NB<br>STEP model has to be fused in single object</b><br>(Part Boolean Union of objects) +<br><b>or a Compoud</b> (Part Makecompound of objects)</b> +<hr><b>enable 'Report view' Panel to see helping messages</b> +</font> +<br> + + + + + KiCadStepUpWB + + + KiCadStepUp + + + + + KiCadStepUp workbench + + + + + Menu + + + ksu PushPull + + + + + + ksu Tools + + + + + Demo + + + + + PushPCB + + + <b>Edge editing NOT supported on FC0.15!</b><br>please upgrade your FC release + + + + + Edge editing NOT supported on FC0.15! + + + + + getting camera view + + + + + forcing rotAngle to 0 + + + + + evaluate to recompute + + + + + Saving to an empty KiCad pcb file + + + + + Cancel + + + + + Restoring cam view + + + + + + Select one Sketch to be pushed to kicad board! + + + + + Restore_Transparency + + + Restore Transparency to Active Document Objects + + + + + Save + + + please <b>save</b> your job file before exporting. + + + + + Please <b>save</b> your job file before exporting. + + + + + + Info ... + + + + + + Save + + + + + Say + + + routine Scale to VRML 1/2.54 + + + + + Put on Axe XYZ ! + + + + + Select <b>ONE single part</b> object !<br> +suggestion for multi-part:<br> +&nbsp;&nbsp;<b>Part Boolean Union (recommended)</b><br> +or<br> +&nbsp;&nbsp;<i>Part Make compound (alternative choice)</i> + + + + + Select <b>a Compound</b> or <br> +<b>a Part Design group</b><br> +or <b>more than one Part</b> object !<br> + + + + + + Error in selection + + + + + Warning ... + + + + + ERROR! ... + + + + + Info ... + + + + + + + + + + + Select ONE single part object ! + + + + + Select an object ! + + + + + Toolbar + + + ksu Tools + + + + + ksu Sketching + + + + + ksu PushPull + + + + + + ksu Design Tools + + + + + ksu Show + + + + + ksu Helpers + + + + + Ui_CDialog + + + Select a Sketch and Parameters +to constraint the sketch +NB the Sketch will be modified! + + + + + <b>Select a Sketch and Parameters to<br>constrain the sketch.<br>NB the Sketch will be modified!</b> + + + + + Constraints + + + + + Lock Coincident, Horizontal +and Vertical + + + + + Lock Coincident + + + + + Tolerance + + + + + tolerance in mm + + + + + Tolerance on Constraints + + + + + remove duplicated geometries + + + + + Ui_Dialog + + + Material Properties + + + + + Materials + + + + + Original + + + + + Shape Color + + + + + Diffuse Color + + + + + New + + + + + NB: set Material will unmatch colors between wrl and STEP + + + + + Ui_DockWidget + + + ksu config ini file +location + + + + + KiCad StepUp tools + + + + + dock left + + + + + un-dock (floating) + + + + + minimize + + + + + dock right + + + + + close + + + + + + + translate (+/- mm) + + + + + translate X (+/- mm) + + + + + translate Y (+/- mm) + + + + + translate Z (+/- mm) + + + + + put on X + + + + + put on Y + + + + + put on Z + + + + + + + rotation angle (+/- deg) + + + + + rotate X (+/- deg) + + + + + rotate Y (+/- deg) + + + + + rotate Z (+/- deg) + + + + + center X + + + + + center Y + + + + + center Z + + + + + make Compound of Parts + + + + + Load KiCad +Board .kicad_pcb + + + + + export to KiCad: +STEP & scaled VRML 1/2.54 + + + + + enable loading +virtual & mechanical +models + + + + + use wrl +material + + + + + load KiCad footprint +'kicad_mod' + + + + + export STEP Board +and Parts after loading + + + + + make Union of Parts + + + + + import STEP +3D model + + + + + export selected objects to STEP + + + + + create reference Axis + + + + + Help & starting Guide + + + + + view Config File content + + + + + push PCB Edge to KiCad +from Sketcher to pcbnew + + + + + collisions result status + + + + + NO collisions found + + + + + + check Collisions +tolerance 1e-06 + + + + + + collisions FOUND! + + + + + ksu config ini file +content + + + + + Help Start Guide + + + + + Ui_LayerSelection + + + open in new FreeCAD document + + + + + open in new document + + + + + <html><head/><body><p>replace PCB in current document</p><p><span style=" font-weight:600; color:#aa0000;">N.B.</span> Sketch constrains will be deleted!</p></body></html> + + + + + replace PCB and Sketch in current document + + + + + <html><head/><body><p>keep Sketch in current document</p><p><span style=" font-weight:600; color:#aa0000;">N.B.</span> this option will keep Sketch &amp; constrains but replace the PCB</p><p>This could lead to a unsynced Sketch feature</p></body></html> + + + + + replace PCB and keep Sketch in curr. doc + + + + + Ui_LayerSelectionOut + + + Line Width: + + + + + Line width for drawings + + + + + Ui_Offset_value + + + Offset value + + + + + Offset [+/- mm]: + + + + + Offset value [+/- mm] + + + + + Arc or Intersection Offset method + + + + + Arc + + + + + Offset Y [mm]: + + + + + Offset Y value [+/- mm] + + + + + approximateCenter + + + Create Center of Circle through 3 Vertices or Select two vertices to create a mid point or Select a Shape to create a center point + + + + + Create Center of Circle through 3 Vertices + + + + + checkSolidExpSTEP + + + Check if the selected part would be +exported to STEP as a single solid + + + + + ksu + + + PolyLine Contour generated + +<b>For PolyLine Pads, please add 'circles' inside each closed polyline</b><br> + + + + + Select a Sketch and Parameters to<br>move the sketch.<br>Offset X: + + + + + ksuAsm2Part + + + Convert an Assembly (A3) to Part hierarchy + + + + + ksu Convert an Assembly (A3) to Part hierarchy + + + + + ksuImpDXF + + + Import Legacy DXF + + + + + ksuOpDXF + + + open Legacy DXF + + + + + ksuOpEzDXF + + + open ezDXF + + + + + ksuRemoveSuffix + + + Remove 'custom' Suffix from Labels + + + + + ksuRemoveTimeStamp + + + Remove TimeStamp from Labels + + + + + ksuTools + + + ksu Tools + + + + + Activate the main +KiCad StepUp Tools Dialog + + + + + ksuTools2D2Sketch + + + 2D to Sketch + + + + + ksu 2D object (or DXF) to Sketch + + + + + ksuTools2DtoFace + + + 2D to Face + + + + + ksu 2D object (or DXF) to Surface for extruding + + + + + ksuTools3D2D + + + 3D to 2D + + + + + ksu 3D object to 2D projection + + + + + ksuToolsAddSilks + + + ksu tools Add Silks from KiCad exported DXF +NB: it could be a very intensive loading! + + + + + ksuToolsAddToTree + + + Add to Tree + + + + + ksu Add Object(s) to Container Tree +keeping Placement +First Selection is the Container + + + + + ksuToolsAddTracks + + + ksu tools Add Tracks +NB: it could be a very intensive loading! + + + + + ksuToolsAlignView + + + AlignView to Face + + + + + ksu AlignView to Face + + + + + ksuToolsAligner + + + Manipulator tools 'Aligner' + + + + + ksuToolsBsplineNormalize + + + Geo to Bspline + + + + + ksu Convert Geometry to Bspline for KiCAD format + + + + + ksuToolsCaliper + + + Manipulator tools 'Caliper' + + + + + ksuToolsCheckSolid + + + Check Solid property + + + + + ksu Check Solid property +Toggle suffix + + + + + ksuToolsCollisions + + + Check Collisions + + + + + ksu Check Collisions and Interferences + + + + + ksuToolsColoredBinder + + + Colored Binder + + + + + Colored Binder object + + + + + ksuToolsColoredClone + + + Colored Clone + + + + + Colored Clone object + + + + + ksuToolsComparePositions + + + tools Compare 3D models Positions + + + + + ksu Compare 3D models Positions +Data with the Active Document +[MCAD Synchronize] + + + + + ksuToolsConstrainator + + + Constrain a Sketch + + + + + ksu Fix & auto Constrain a Sketch + + + + + ksuToolsContour2Poly + + + ksu tools 'RF PolyLined Sketch' +Selection's Shapes to PolyLine Sketch + + + + + ksuToolsCopyPlacement + + + Copy Placement 1st to 2nd + + + + + ksu tools Copy Placement 1st to 2nd + + + + + ksuToolsDeepCopy + + + PartDN Copy + + + + + ksu PartDN Copy object +with relative placement +[flattened model] + + + + + ksuToolsDefeaturingTools + + + Defeaturing Tools from Defeaturing WorkBench + + + + + ksuToolsDiscretize + + + Discretize + + + + + ksu Discretize a shape/outline to a Sketch + + + + + ksuToolsEdges2Sketch + + + Edges to Sketch + + + + + ksu Select coplanar edge(s) or Face(s) or +a single Vertex of a coplanar outline +to get a corresponding Sketch + + + + + ksuToolsEditPrefs + + + Edit Preferences + + + + + ksuToolsExplode + + + ksu Tools PCB Explode +Select the top container of a KiCad PCB to exlode it + + + + + ksuToolsExport3DStep + + + Export 3D to STEP + + + + + ksu Export selected objects to STEP Model + + + + + ksuToolsExportModel + + + Export 3D Model + + + + + ksu Export 3D Model to KiCad + + + + + ksuToolsExtrude + + + ksu tools 'Extrude' +Extrude selection + + + + + ksuToolsFootprintGen + + + Footprint generator + + + + + ksu Footprint editor and exporter + + + + + ksuToolsGeneratePositions + + + tools Generate 3D models Positions + + + + + ksu Generate 3D models Positions +Data for Active Document +[MCAD Synchronize] + + + + + ksuToolsHighlightToggle + + + Highlight Toggle + + + + + ksu Selection Highlight Toggle + + + + + ksuToolsImport3DStep + + + Import 3D STEP + + + + + ksu Import 3D STEP Model + + + + + ksuToolsImportFootprint + + + Load FootPrint + + + + + ksu Load KiCad PCB FootPrint + + + + + ksuToolsLoadFootprint + + + Load FootPrint + + + + + ksu Load KiCad PCB FootPrint + + + + + ksuToolsLoopSelection + + + ksu tools 'LoopSelection' +Loop selection on a xy outline + + + + + ksuToolsMakeCompound + + + Make Compound + + + + + ksu Make a Compound of selected objects + + + + + ksuToolsMakeUnion + + + Make Union + + + + + ksu Make a Union of selected objects + + + + + ksuToolsMergeSketches + + + Merge Sketches + + + + + ksuToolsMoveSketch + + + Move Sketch + + + + + ksu Move 2D Sketch + + + + + ksuToolsMover + + + Manipulator tools 'Mover' + + + + + ksuToolsOffset2D + + + Offset 2D + + + + + ksu Offset 2D object + + + + + ksuToolsOpenBoard + + + Load Board + + + + + ksu Load KiCad PCB Board and Parts + + + + + ksuToolsPullMoved + + + Pull 3D model(s) placement from PCB + + + + + ksu Pull 3D model(s) placement from PCB + + + + + ksuToolsPullPCB + + + Pull Sketch from PCB + + + + + ksu Pull Sketch from PCB Edge + + + + + ksuToolsPushMoved + + + Push 3D moved model(s) to PCB + + + + + ksu Push 3D moved model(s) to PCB + + + + + ksuToolsPushPCB + + + Push Sketch to PCB + + + + + ksu Push Sketch to PCB Edge + + + + + ksuToolsReLinkBinder + + + Relink Binder + + + + + Relink Binder object Select Binder and an Object to be linked + + + + + ksuToolsRemoveFromTree + + + Remove from Tree + + + + + ksu Remove Object(s) from Container Tree +keeping Placement +First Selection is the Container + + + + + ksuToolsRemoveSubTree + + + Remove Sub Tree + + + + + ksuToolsResetPartPlacement + + + Reset Part Placement + + + + + ksu Reset Placement for all Part containers in selection + + + + + ksuToolsResetPlacement + + + Reset Placement + + + + + ksu Reset Placement for a Shape + + + + + ksuToolsSimpleCopy + + + Simple Copy + + + + + ksu Simple Copy object + + + + + ksuToolsSimplifySketck + + + Simplify Sketch + + + + + ksu Simplifying Sketch to Arcs and Lines + + + + + ksuToolsSkValidate + + + ksu tools 'Sketcher Validate' +Validate selected Sketch + + + + + ksuToolsStepImportModeComp + + + disable Simplified STEP Import Mode + + + + + ksu tools disable Simplified STEP Import Mode + + + + + ksuToolsStepImportModeSTD + + + disable Full STEP Import Mode + + + + + ksu tools disable Full STEP Import Mode + + + + + ksuToolsSync3DModels + + + Sync 3D model(s) Ref & TimeStamps with PCB + + + + + ksu Sync 3D model(s) Ref & TimeStamps +of the Selected 3D model with KiCad PCB + + + + + ksuToolsToggleTreeView + + + Expand/Collapse Tree View + + + + + ksu tools Expand/Collapse Tree View + + + + + ksuToolsTransparencyToggle + + + Transparency Toggle + + + + + ksu Selection Transparency Toggle + + + + + ksuToolsTurnTable + + + TurnTable + + + + + ksu TurnTable + + + + + ksuToolsUnion + + + Fuse objects + + + + + Make Union (Fuse) objects + + + + + ksuToolsVisibilityToggle + + + Visibility Toggle + + + + + ksu Selection Visibility Toggle + + + + diff --git a/translations/ksu_es-ES.qm b/translations/ksu_es-ES.qm new file mode 100644 index 0000000..730e47d Binary files /dev/null and b/translations/ksu_es-ES.qm differ diff --git a/translations/ksu_es-ES.ts b/translations/ksu_es-ES.ts new file mode 100644 index 0000000..b7a135f --- /dev/null +++ b/translations/ksu_es-ES.ts @@ -0,0 +1,2287 @@ + + + + + CDialog + + + Dialog + Diálogo + + + + explode_dwg + + + Explode 3D PCB + kicad StepUp 3D tools + Explosionar PCB 3D + + + + 1.0 + 1.0 + + + + kSUGui::DlgSettingskStepUp + + + + + General + General + + + + + 3D Prefix working folder + Carpeta de trabajo de prefijo 3D + + + + + <html><head/><body><p>your <span style=" font-weight:600;">KISYS3DMOD</span> path</p><p>or 3D model <span style=" font-weight:600;">main prefix path</span></p></body></html> + <html><head/><body><p>tu <span style=" font-weight:600;">ruta</span> KISYS3DMOD</p><p>o prefijo de ruta principal <span style=" font-weight:600;">de modelos 3D</span></p></body></html> + + + + + main 3D folder location 'KISYS3DMOD' +or 'KICAD6_3DMODEL_DIR' + ubicación de la carpeta principal 3D 'KISYS3DMOD' + o 'KICAD6_3DMODEL_DIR' + + + + + <html><head/><body><p>main 3D folder location</p><p><span style=" font-weight:600;">'KISYS3DMOD'</span></p></body></html> + <html><head/><body><p>ubicación de la carpeta principal 3D</p><p><span style=" font-weight:600;">'KISYS3DMOD'</span></p></body></html> + + + + + + + + + <html><head/><body><p>your <span style=" font-weight:600;">ALIAS</span> 3D</p><p>model prefix path</p></body></html> + <html><head/><body><p>tu <span style=" font-weight:600;">ALIAS</span> 3D</p><p>ruta del prefijo del modelo</p></body></html> + + + + + secondary 3D folder loc +'ALT2 3DMOD' + carpeta secundaria 3D loc + 'ALT2 3DMOD' + + + + + + + + + <html><head/><body><p>secondary 3D folder location</p><p><span style=" font-weight:600;">'ALT3DMOD'</span></p></body></html> + <html><head/><body><p>ubicación de carpeta 3D secundaria</p><p><span style=" font-weight:600;">'ALT3DMOD'</span></p></body></html> + + + + + PCB settings + Ajustes de PCB + + + + PCBs color. + Color de PCB + + + + + + + + + PCB color + Color de PCB + + + + LightGreen + Verde claro + + + + + Green + Verde + + + + + Blue + Azul + + + + + Red + Rojo + + + + + Purple + Púrpura + + + + + DarkGreen + Verde oscuro + + + + + DarkBlue + Azul oscuro + + + + + LightBlue + Azul claro + + + + + Yellow + Amarillo + + + + + Black + Negro + + + + + White + Blanco + + + + + + + PCB Reference Placement in mechanical environment + Colocación de referencia de PCB en entorno mecánico + + + + + PCB Placement + Colocación de PCB + + + + + Grid Origin + Origen de cuadrícula + + + + + Aux Origin + Origen auxiliar + + + + + Pcb Center (approx) + Centro de PCB (aproximado) + + + + + + + Constraints to be added to PCB Sketch + Restricciones que se agregarán al croquis de PCB + + + + + PCB Sketch mode (constraints) + Modo de croquis de PCB (restricciones) + + + + + Coincident + Coincidente + + + + + V&H, Coincident + V y H, coincidente + + + + + Full + Completo + + + + + None + Ninguno + + + + + Enable/Disable Virtual 3D +(mechanical) models + Habilitar/deshabilitar modelos +(mecánicos) 3D virtuales + + + + + Virtual 3D Models loading + Cargando modelos virtuales 3D + + + + + + + minimum Drill size applied to PCB +'0.0' -> all drills are loaded +'-1' -> all drills and vias are loaded + Tamaño mínimo de perforación aplicado a PCB +'0.0' -> todos los taladros son cargados +'-1' -> todos los taladros y vías son cargados + + + + + minimum Drill size applied to PCB + Tamaño mínimo de perforación aplicado a PCB + + + + + 0.0 + 0.0 + + + + + <html><head/><body><p><span style=" font-weight:600;">Bounding Box LIST:</span><br/>configure which 3D models will be converted to Bounding Box<br/><span style=" font-weight:600;">Examples:</span><br/><span style=" font-weight:600;">ALL</span><span style=" font-style:italic;">-&gt; all models will be converted to bounding boxes</span><br/><span style=" font-weight:600;">LIST</span> DSUB-15-HD_FH, DSUB-9_FH <span style=" font-style:italic;">-&gt; these two models will NOT be converted to BBox</span><br/><span style=" font-style:italic;">(list of 3D model's names separated by a semicolon)</span></p></body></html> + <html><head/><body><p><span style=" font-weight:600;">Lista de caja delimitadora:</span><br/>configurar qué modelos 3D se convertirán en caja delimitadora<br/><span style=" font-weight:600;">Ejemplos:</span><br/><span style=" font-weight:600;">TODO</span><span style=" font-style:italic;">-&gt; todos los modelos se convertirán en cajas delimitadoras</span><br/><span style=" font-weight:600;">LISTA</span> DSUB-15-HD_FH, DSUB-9_FH <span style=" font-style:italic;">-&gt; estos dos modelos NO se convertirán a caja delimitadora</span><br/><span style=" font-style:italic;">(lista de nombres de modelos 3D separados por punto y coma)</span></p></body></html> + + + + + Bounding Boxes + Cajas delimitadoras + + + + + <html><head/><body><p><span style=" font-weight:600;">Black List:</span><br/>put here your model names that you don't want to load (e.g. smallest ones)<br/>separated by a semicolon.<br/>DNP or DNF attribute.<br/>volume and height are also configurable.<br/>(volume=1 means all models with a volume &lt; 1mm3 will not be included)<br/>(height=1 means all models with a height &lt; 1mm will not be included)<br/><br/><span style=" font-weight:600;">Examples:</span><br/>DNP;R_0402_1005Metric;C_0402_1005Metric;<br/>height=1.0<br/>volume=1.0<br/><span style=" font-weight:600;">An empty list means all the models will be parsed.</span></p></body></html> + <html><head/><body><p><span style=" font-weight:600;">Black List:</span><br/>put here your model names that you don't want to load (e.g. smallest ones)<br/>separated by a semicolon.<br/>DNP or DNF attribute.<br/>volume and height are also configurable.<br/>(volume=1 means all models with a volume &lt; 1mm3 will not be included)<br/>(height=1 means all models with a height &lt; 1mm will not be included)<br/><br/><span style=" font-weight:600;">Examples:</span><br/>DNP;R_0402_1005Metric;C_0402_1005Metric;<br/>height=1.0<br/>volume=1.0<br/><span style=" font-weight:600;">Una lista vacia significa que todos los modelos seran analizados.</span></p></body></html> + + + + + Black List + Lista negra + + + + + + + minimum Edge Tolerance applied to PCB +default '0.01mm' + Tolerancia de borde mínima aplicada a PCB + predeterminado '0.01 mm' + + + + + minimum edge tolerance + Tolerancia de borde mínima + + + + + 0.01 + 0.01 + + + + + <html><head/><body><p><span style=" font-weight:600;">White List:</span><br/>put here your model names that you must load (e.g. smallest ones)<br/>separated by a semicolon.<br/><br/><span style=" font-weight:600;">Examples:</span><br/> +LED_D5.0mm_IRBlack;USB_Mini-B_Lumberg_2486_01_Horizontal;<br/><span style=" font-weight:600;">An empty list means all the models will behave as usual.</span></p></body></html> + <html><head/><body><p><span style=" font-weight:600;">Lista blanca:</span><br/>Coloca aqui los nombre de tus modelos que debes cargar (e.j. los mas pequeños)<br/>separados por un punto y coma.<br/><br/><span style=" font-weight:600;">Examples:</span><br/> +LED_D5.0mm_IRBlack;USB_Mini-B_Lumberg_2486_01_Horizontal;<br/><span style=" font-weight:600;">Una lista vacia significa que todos los modelos se comportaran de forma usual.</span></p></body></html> + + + + White List + Lista blanca + + + + + Import/Export settings + Ajustes para importar/exportar + + + + + <html><head/><body><p>Enable/Disable <span style=" font-weight:600;">fusion (union)</span> of all 3D models.</p><p>Be careful ... fusion can be heavy or generate FC crash with a lot of objects.</p><p>Please consider to use bbox or blacklist small objects</p></body></html> + <html><head/><body><p>Habilitar/Deshabilitar <span style=" font-weight:600;">fusion (union)</span> de todos los modelos 3D.</p><p>Tener cuidado ... la fusion puede ser pesada o generar colapso de FreCAD con muchos objetos.</p><p>Por favor considere el uso de bbox o lista negra para objetos pequeños </p></body></html> + + + + + Make a Union of 3D models + Crear una unión de modelos 3D + + + + + <html><head/><body><p>Directly <span style=" font-weight:600;">Export STEP</span> after Loading</p></body></html> + <html><head/><body><p>Directly <span style=" font-weight:600;">Exportar a STEP</span> despues de cargar</p></body></html> + + + + + Directly Export STEP after Loading + Exportar STEP directamente después de cargar + + + + STEP export mode. + Modo de exportación STEP. + + + + + + + + + STEP export mode + Modo de exportación STEP + + + + + + + Hierarchy + Jerarquía + + + + + Flat + Plano + + + + + One Container + Un contenedor + + + + 3D Loading mode. + Modo de carga 3D. + + + + + + + 3D Loading mode + Modo de carga 3D + + + + + 3D_loading_mode +Allowing or not Loading Multi Parts objects + Modo de carga 3D +Permitir o no cargar objetos Multi Partes + + + + + Simplified + Simplificado + + + + + NotMultiParts + No Multi Partes + + + + + Standard + Estándar + + + + Assembly3 Links allowed. + Enlaces de Assembly3 permitidos. + + + + + + + Assembly3 Links allowed + Enlaces de Assembly3 permitidos + + + + Enables Materials for VRML exporting. + Habilita la exportación de materiales para VRML. + + + + + + + Enable Materials for VRML exporting + Habilita la exportación de materiales para VRML + + + + Start Turntable after loading. + Iniciar Turntable después de cargar. + + + + + + + Start Turntable after loading + Iniciar Turntable después de cargar + + + + Assembly3 LinkGroups allowed. + Enlaces de grupo de Assembly3 permitidos. + + + + + + + Assembly3 LinkGroups allowed + Enlaces de grupo de Assembly3 permitidos + + + + Enables compressed STEP file ('.stpZ') generation exporting. + Habilita la exportación de generación de archivos STEP comprimidos ('.stpZ'). + + + + + + Enable compressed STEP file ('.stpZ') generation exporting + Habilita la exportación de generación de archivos STEP comprimidos ('.stpZ') + + + + Enables compressed VRML file ('.wrz') generation exporting. + Habilita la exportación de generación de archivos VRML comprimidos ('.wrz'). + + + + + + Enable compressed VRML file ('.wrz') generation exporting + Habilita la exportación de generación de archivos VRML comprimidos ('.wrz') + + + + Displays STEP import settings warning. + Muestra la advertencia de configuración de importación STEP. + + + + + + + Display STEP import settings warning + Muestra la advertencia de configuración de importación STEP + + + + + <html><head/><body><p>Apply Transparency for 'Glass' Materials:</p><p>Force Transparency to STEP model if 'Glass' is found in '.wrl' model</p></body></html> + <html><head/><body><p>Aplicar transparencia para Materiales de 'Cristal:'</p><p>Forza transparencia a modelo STEP si 'Cristal' es encontrado en el modelo'.wrl'</p></body></html> + + + + + Apply Transparency for 'Glass' Materials + Aplicar transparencia para materiales 'de cristal' + + + + + <html><head/><body><p>Apply Transparency for 'Led' Materials:</p><p>Force Transparency to STEP model if 'Led' is found in '.wrl' model</p></body></html> + <html><head/><body><p>Aplicar transparencia para Materiales de 'LED:'</p><p>Forza transparencia a modelo STEP si 'LED' es encontrado en el modelo'.wrl'</p></body></html> + + + + + Apply Transparency for 'Led' Materials + Aplicar transparencia para materiales 'LED' + + + + <html><head/><body><p>Skip importing pcb zone(s)</p></body></html> + <html><head/><body><p>Omitir importar zona(s) de PCB</p></body></html> + + + + skpZone + Saltar zona + + + + <html><head/><body><p>Skip importing pcb tracks and vias</p></body></html> + <html><head/><body><p>Saltar la importación de pistas y vías de PCB</p></body></html> + + + + skpTracks + Saltar pistas + + + + <html><head/><body><p>Skip importing pcb pads</p></body></html> + <html><head/><body><p>Saltar la importación de pads de PCB</p></body></html> + + + + skpPads + Saltar pads + + + + + third 3D folder loc +'ALT3 3DMOD' + ubicación de tercera carpeta de 3D'ALT3 3DMOD' + + + + + fourth 3D folder loc +'ALT4 3DMOD' + ubicación de cuarta carpeta de 3D'ALT4 3DMOD' + + + + <html><head/><body><p>Select to NOT use the native dialog box in Open/Save files<br/>(suggested for Snap or FlatPack)</p></body></html> + <html><head/><body><p>Seleccionar para NO utilizar la caja de dialogo en Abrir/Guardar archivos<br/>(Sugerido para Snap o FlatPack)</p></body></html> + + + + don't use native dialog in Open/Save files (for Snap or FlatPack) + No usar el diálogo nativo en Abrir/Guardar archivos (para Snap o FlatPack) + + + + + Mechanical Check + Comprobación mecánica + + + + Generates Sketches for differences on PCB Edge. + Genera croquis para diferencias en el borde de la PCB. + + + + + + + Generate Sketches for differences on PCB Edge + Generar croquis para diferencias en el borde de la PCB. + + + + Working directory ccx tools + Directorio de trabajo herramientas ccx + + + + + Use custom directory + Usar directorio personalizado + + + + Working directory general FEM solver frame work + Directorio de trabajo general para el framework del solucionador FEM + + + + Temporary directories + Directorios temporales + + + + Let FreeCAD manage (create, delete) the working directories for all solver. Use temporary directories. + Permitir que FreeCAD administre (crear, eliminar) el directorio funcionando para todos los solucionadores. Usar directorios temporales. + + + + Beside .fcstd file + Junto al archivo .FCStd + + + + Create a directory in the same folder in which the fcstd file of the document is located. Use Subfolder for each solver (e.g. for a file ./mydoc.fcstd and a solver with the label Elmer002 use ./mydoc/Elmer002). + Crear un directorio en la misma carpeta en la que se encuentra el archivo FCStd del documento. Utilice la subcarpeta para cada solucionador (por ejemplo, para un archivo ./mydoc.FCStd y un solucionador con la etiqueta Elmer002 use ./mydoc/Elmer002). + + + + Use directory set below. Create own subdirectory for every solver. Name directory after the solver label prefixed with the document name. + Utilice el directorio establecido a continuación. Cree su propio subdirectorio para cada solver. Directorio de nombres después de la etiqueta del solucionador con el nombre del documento. + + + + Path: + Ruta: + + + + Mesh + Malla + + + + Create mesh groups for analysis reference shapes + Crea un grupo de mallas para formas de analisis de referencia + + + + + choice#1 + opción #1 + + + + choice#2 + opción #2 + + + + choice#3 + opción #3 + + + + Results + Resultados + + + + Keep results on calculation re-run + Mantener resultados al re-ejecutar el cálculo + + + + Restore result dialog settings + Restaurar la configuración del diálogo de resultados + + + + Hide constraints when open result dialog + Ocultar restricciones al abrir el diálogo de resultados + + + + + <html><head/><body><p><span style=" font-weight:600;">Bounding Box LIST:</span></p><p>configure which 3D models will be converted to Bounding Box</p><p><span style=" font-weight:600;">Examples:</span></p><p><span style=" font-weight:600;">ALL</span><span style=" font-style:italic;">-&gt; all models will be converted to bounding boxes</span></p><p><span style=" font-weight:600;">LIST</span> DSUB-15-HD_FH, DSUB-9_FH <span style=" font-style:italic;">-&gt; these two models will NOT be converted to BBox</span></p><p><span style=" font-style:italic;">(list of 3D model's names separated by a semicolon)</span></p></body></html> + <html><head/><body><p><span style=" font-weight:600;">Lista de cajas delimitadoras:</span></p><p>configure which 3D models will be converted to Bounding Box</p><p><span style=" font-weight:600;">Examples:</span></p><p><span style=" font-weight:600;">ALL</span><span style=" font-style:italic;">-&gt; Todos los modelos seran convertidos a cajas delimitadoras</span></p><p><span style=" font-weight:600;">LIST</span> DSUB-15-HD_FH, DSUB-9_FH <span style=" font-style:italic;">-&gt; estos dos modelos no seran convertidos a BBox</span></p><p><span style=" font-style:italic;">(lista de modelo's 3D nombres separatos por un punto y coma)</span></p></body></html> + + + + + <html><head/><body><p><span style=" font-weight:600;">Black List:</span></p><p>put here your model names that you don't want to load (e.g. smallest ones)</p><p>separated by a semicolon.</p><p>volume and height are also configurable.</p><p>(volume=1 means all models with a volume &lt; 1mm3 will not be included)</p><p>(height=1 means all models with a height &lt; 1mm will not be included)</p><p><br/><span style=" font-weight:600;">Examples:</span></p><p>r_0603;r_0402;c_0402;c_0603</p><p>height=1.0</p><p>volume=1.0</p><p><span style=" font-weight:600;">An empty list means all the models will be parsed.</span></p></body></html> + <html><head/><body><p><span style=" font-weight:600;">Lista negra:</span></p><p>coloca aqui los nombres de los modelos que no quieres cargar(e.j. los mas pequeños)</p><p>separados por punto y coma.</p><p>volumen y altura son tambien configurables.</p><p>(volume=1 significa que todos los modelos con un volumen &lt; 1mm3 no seran incluidos)</p><p>(height=1 means all models with a height &lt; 1mm will not be included)</p><p><br/><span style=" font-weight:600;">Examples:</span></p><p>r_0603;r_0402;c_0402;c_0603</p><p>height=1.0</p><p>volume=1.0</p><p><span style=" font-weight:600;">una lista vacia significa que todos los modelos seran analizados.</span></p></body></html> + + + + Arcs2Circles + + + Convert Arcs to Circles in Sketch + Convertir arcos a círculos en croquis + + + + Close + + + <b>Do you want to quit?</b> <i>Have you saved your STEP artwork?</i><br> + + + + + Close + + + + + Create_BoundBox + + + Create BoundBox of the Selected Object + Crea una caja delimitadora del objeto seleccionado + + + + Help + + + <b>Kicad StepUp</b> is a tool set to easily <b>collaborate between kicad pcb EDA</b> (board and 3D parts) as STEP models <b>and FreeCAD MCAD</b> modeler.<br> +</font> + <b>Kicad StepUp</b> es un conjunto herramientas que de forma sencilla <b>colabora entre kicad pcb EDA</b> (tarjetas y piezas 3D) como modelo STEP <b>y FreeCAD MCAD</b> modelador.<br> +</font> + + + + The artwork can be used for MCAD interchange and collaboration, and for enclosure design.<br> + La obra de arte puede ser utilizada para intercambio y colaboración en MCAD y para diseño de recintos + + + + The 3D visualization of components on board assemblies in kicad 3dviewer, will be the same in your mechanical software, because of the STEP interchange format.<br>It is also possible to <b>Update a pcb Edge from a FC Sketcher.</b><br> + La visualización 3D de los componentes en el ensamblaje de la placa en KiCad 3DViewer, será la misma en su software mecánico, debido al formato de intercambio STEP. <br>También es posible <b>actualizar un borde de PCB desde un croquis de Sketcher FC. </b><br> + + + + <b>StepUp</b> can also be used <b>to align 3D model to kicad footprint</b>.<br> +The artwork can be used for MCAD interchange and collaboration, and for enclosure design.<br> +The 3D visualization of components on board assemblies in kicad 3dviewer, will be the same in your mechanical software, +because of the STEP interchange format.<br> +It is also possible to <b>Update a pcb Edge from a FC Sketcher.</b><br> +<b>configuration options:</b><br>Configuration options are located in the preferences system of FreeCAD, which is located in the Edit menu -&gt; Preferences.<br> + + + + + + starter Guide:<br><a href='{}{}demo{}{}{}{}' target='_blank'>{}</a><br> + Guía de inicio:<br><a href='{}{}demo{}{}{}{}' target='_blank'>{}</a><br> + + + + starter Guide:<br><a href='{}{}demo{}{}' target='_blank'>{}</a><br> + Guía de inicio:<br><a href='{}{}demo{}{}' target='_blank'>{}</a><br> + + + + KiCadStepUpWB + + + KiCadStepUp + KiCadStepUp + + + + KiCadStepUp workbench + Entorno de trabajo KiCadStepUp + + + + Menu + + + ksu PushPull + KSU PushPull + + + + + ksu Tools + KSU Herramientas + + + + Demo + Demostración + + + + PushPCB + + + <b>Edge editing NOT supported on FC0.15!</b><br>please upgrade your FC release + + + + + Edge editing NOT supported on FC0.15! + + + + + getting camera view + + + + + forcing rotAngle to 0 + + + + + evaluate to recompute + + + + + Saving to an empty KiCad pcb file + + + + + Cancel + + + + + Restoring cam view + + + + + + Select one Sketch to be pushed to kicad board! + + + + + Restore_Transparency + + + Restore Transparency to Active Document Objects + Restaurar transparencia de objetos del documento activo + + + + Save + + + please <b>save</b> your job file before exporting. + + + + + Please <b>save</b> your job file before exporting. + + + + + + Info ... + + + + + + Save + + + + + Say + + + routine Scale to VRML 1/2.54 + + + + + Put on Axe XYZ ! + + + + + Select <b>ONE single part</b> object !<br> +suggestion for multi-part:<br> +&nbsp;&nbsp;<b>Part Boolean Union (recommended)</b><br> +or<br> +&nbsp;&nbsp;<i>Part Make compound (alternative choice)</i> + + + + + Select <b>a Compound</b> or <br> +<b>a Part Design group</b><br> +or <b>more than one Part</b> object !<br> + Selecciona <b>un compuesto</b> o <br> +<b>un grupo de Part Design</b><br> +o <b>mas de un objeto pieza!</b><br> + + + + + Error in selection + Error en selección + + + + Warning ... + Advertencia ... + + + + ERROR! ... + ERROR! ... + + + + Info ... + Informacion ... + + + + + + + + + + Select ONE single part object ! + Selecciona UN objecto simple pieza ! + + + + Select an object ! + Selecciona un objecto ! + + + + Toolbar + + + ksu Tools + Herramientas ksu + + + + ksu Sketching + + + + ksu PushPull + ksu EnviarCargar + + + + + ksu Design Tools + KSU Herramientas de diseño + + + + ksu Show + KSU Mostrar + + + + ksu Helpers + KSU Ayudantes + + + + Ui_CDialog + + + Select a Sketch and Parameters +to constraint the sketch +NB the Sketch will be modified! + Seleccione un croquis y parámetros +para restringir el croquis +Nota: ¡el croquis será modificado! + + + + <b>Select a Sketch and Parameters to<br>constrain the sketch.<br>NB the Sketch will be modified!</b> + <b>Seleccione un croquis y parámetros para restringir el croquis.<br>Nota: ¡el croquis será modificado! </b> + + + + Constraints + Restricciones + + + + Lock Coincident, Horizontal +and Vertical + Bloquear coincidencia, horizontal +y vertical + + + + Lock Coincident + Bloquear coincidencia + + + + Tolerance + Tolerancia + + + + tolerance in mm + tolerancia en mm + + + + Tolerance on Constraints + Tolerancia en restricciones + + + + remove duplicated geometries + eliminar geometrías duplicadas + + + + Ui_Dialog + + + Material Properties + Propiedades de material + + + + Materials + Materiales + + + + Original + Original + + + + Shape Color + Color de forma + + + + Diffuse Color + Color difuso + + + + New + Nuevo + + + + NB: set Material will unmatch colors between wrl and STEP + Nota: el material establecido no coincidirá con los colores entre wrl y STEP + + + + Ui_DockWidget + + + ksu config ini file +location + ksu ubicación de archivo de configuración INI + + + + KiCad StepUp tools + Herramientas de KiCad StepUp + + + + dock left + Incrustar en la izquierda + + + + un-dock (floating) + Desincrustar (flotante) + + + + minimize + Minimizar + + + + dock right + Incrustar en la derecha + + + + close + Cerrar + + + + + + translate (+/- mm) + Trasladar (+/- mm) + + + + translate X (+/- mm) + Trasladar X (+/- mm) + + + + translate Y (+/- mm) + Trasladar Y (+/- mm) + + + + translate Z (+/- mm) + Trasladar Z (+/- mm) + + + + put on X + Poner en X + + + + put on Y + Poner en Y + + + + put on Z + Poner en Z + + + + + + rotation angle (+/- deg) + Ángulo de rotación (+/- °) + + + + rotate X (+/- deg) + Rotar X (+/- °) + + + + rotate Y (+/- deg) + Rotar Y (+/- °) + + + + rotate Z (+/- deg) + Rotar Z (+/- °) + + + + center X + Centrar X + + + + center Y + Centrar Y + + + + center Z + Centrar Z + + + + make Compound of Parts + Crear compuesto de partes + + + + Load KiCad +Board .kicad_pcb + Cargar placa de +KiCad .kicad_pcb + + + + export to KiCad: +STEP & scaled VRML 1/2.54 + Exportar a KiCad: +STEP y VRML escalado 1/2.54 + + + + enable loading +virtual & mechanical +models + Habilitar carga +virtual y modelos +mecánicos + + + + use wrl +material + Utilizar +material wrl + + + + load KiCad footprint +'kicad_mod' + Cargar huella de KiCad +'kicad_mod' + + + + export STEP Board +and Parts after loading + Exportar placa STEP +y partes despúes de la carga + + + + make Union of Parts + Hacer unión de partes + + + + import STEP +3D model + Importar STEP +modelo 3D + + + + export selected objects to STEP + Exportar objetos seleccionados a STEP + + + + create reference Axis + Crear eje de referencia + + + + Help & starting Guide + Ayuda y guía de comienzo + + + + view Config File content + Ver contenido de archivo de configuración + + + + push PCB Edge to KiCad +from Sketcher to pcbnew + Envia arista de PCB a KiCad +from Sketcher to pcbnew + + + + collisions result status + estado del resultado de colisiones + + + + NO collisions found + NO se encontraron colisiones + + + + + check Collisions +tolerance 1e-06 + Comprobar colisiones +tolerancia 1e-06 + + + + + collisions FOUND! + ¡colisiones ENCONTRADAS! + + + + ksu config ini file +content + KSU contenido de archivo +de configuración ini + + + + + Help Start Guide + Guía de inicio de ayuda + + + + Ui_LayerSelection + + + open in new FreeCAD document + Abrir en un nuevo documento de FreeCAD + + + + open in new document + Abrir en nuevo documento + + + + <html><head/><body><p>replace PCB in current document</p><p><span style=" font-weight:600; color:#aa0000;">N.B.</span> Sketch constrains will be deleted!</p></body></html> + <html><head/><body><p>reemplazar PCB en el documento actual</p><p><span style=" font-weight:600; color:#aa0000;">Nota:</span> ¡Se eliminarán las restricciones del croquis!</p></body></html> + + + + replace PCB and Sketch in current document + Remplaza PCB y Croquis en el documento actual + + + + <html><head/><body><p>keep Sketch in current document</p><p><span style=" font-weight:600; color:#aa0000;">N.B.</span> this option will keep Sketch &amp; constrains but replace the PCB</p><p>This could lead to a unsynced Sketch feature</p></body></html> + <html><head/><body><p>Mantiene croquis en el documento actual</p><p><span style=" font-weight:600; color:#aa0000;">N.B.</span> Esta opcion mantendra las restricciones del croquis & pero remplazara la PCB</p><p>Esto podria conducir a caracteristicas del croquis desincronizadas</p></body></html> + + + + replace PCB and keep Sketch in curr. doc + Remplaza PCB y mantiene croquis en documento actual + + + + Ui_LayerSelectionOut + + + Line Width: + Grosor de línea: + + + + Line width for drawings + Ancho de línea para dibujos + + + + Ui_Offset_value + + + Offset value + Valor de desplazamiento + + + + Offset [+/- mm]: + Desplazamiento [+/- mm]: + + + + Offset value [+/- mm] + Valor de desplazamiento [+/- mm] + + + + Arc or Intersection Offset method + Metodo de arco o interseccion + + + + Arc + Arco + + + + Offset Y [mm]: + Desplazamiento Y [mm]: + + + + Offset Y value [+/- mm] + Valor de desplazamiento Y [+/- mm] + + + + approximateCenter + + + Create Center of Circle through 3 Vertices or Select two vertices to create a mid point or Select a Shape to create a center point + Crear centro de círculo a través de 3 vértices o seleccionar 2 vértices para crear un punto medio o seleccionar una forma para crear un punto central + + + + Create Center of Circle through 3 Vertices + Crea un centro de circulo a travez de 3 vertices + + + + checkSolidExpSTEP + + + Check if the selected part would be +exported to STEP as a single solid + Comprobar si la parte seleccionada será +exportada a STEP como un único sólido + + + + ksu + + + PolyLine Contour generated<b>For PolyLine Pads, please add 'circles' inside each closed polyline</b><br> + Contorno de polilinea generada<b>For PolyLine Pads, please add 'circles' inside each closed polyline</b><br> + + + + Select a Sketch and Parameters to<br>move the sketch.<br>Offset X: + Seleccionar un croquis y parámetros para <br>mover el croquis.<br>Desplazamiento X: + + + + ksuAsm2Part + + + Convert an Assembly (A3) to Part hierarchy + Convertir un ensamblaje (de A3) a jerarquía de parte + + + + ksu Convert an Assembly (A3) to Part hierarchy + KSU Convertir un ensamblaje (de A3) a jerarquía de parte + + + + ksuImpDXF + + + Import Legacy DXF + Importar DXF heredado + + + + ksuOpDXF + + + open Legacy DXF + Abrir DXF heredado + + + + ksuOpEzDXF + + + open ezDXF + Abrir ezDXF + + + + ksuRemoveSuffix + + + Remove 'custom' Suffix from Labels + Elimina sufijo 'custom' de las etiquetas + + + + ksuRemoveTimeStamp + + + Remove TimeStamp from Labels + Elimina marcas de tiempo de las etiquetas + + + + ksuTools + + + ksu Tools + KSU Herramientas + + + + Activate the main +KiCad StepUp Tools Dialog + Activar el diálogo de herramientas +principal de KiCad StepUp + + + + ksuTools2D2Sketch + + + 2D to Sketch + 2D a croquis + + + + ksu 2D object (or DXF) to Sketch + KSU Objeto 2D (o DXF) a croquis + + + + ksuTools2DtoFace + + + 2D to Face + 2D a cara + + + + ksu 2D object (or DXF) to Surface for extruding + KSU Objeto 2D (o DXF) a superficie para extruir + + + + ksuTools3D2D + + + 3D to 2D + 3D a 2D + + + + ksu 3D object to 2D projection + ksu Objecto 3D a proyeccion 2D + + + + ksuToolsAddSilks + + + ksu tools Add Silks from KiCad exported DXF +NB: it could be a very intensive loading! + Herramientas KSU Agregar serigrafías DXF exportadas desde KiCad +Nota: ¡podría ser una carga muy intensiva! + + + + ksuToolsAddToTree + + + Add to Tree + Agregar a árbol + + + + ksu Add Object(s) to Container Tree +keeping Placement +First Selection is the Container + ksu Agrega objecto(s) a un contenedor de arbol +manteniendo ubicación +Primera seleccion es el contenedor + + + + ksuToolsAddTracks + + + ksu tools Add Tracks +NB: it could be a very intensive loading! + Herramientas KSU Agregar pistas +Nota: ¡podría ser una carga muy intensiva! + + + + ksuToolsAlignView + + + AlignView to Face + Alinea vista a la cara + + + + ksu AlignView to Face + ksu Alinea vista a la cara + + + + ksuToolsAligner + + + Manipulator tools 'Aligner' + Herramientas de manipulador 'Alineador' + + + + ksuToolsBsplineNormalize + + + Geo to Bspline + Geometría a B-spline + + + + ksu Convert Geometry to Bspline for KiCAD format + KSU Convertir geometría a B-spline para formato KiCad + + + + ksuToolsCaliper + + + Manipulator tools 'Caliper' + Herramientas manipuladoras 'Vernier' + + + + ksuToolsCheckSolid + + + Check Solid property + Verificar propiedad sólida + + + + ksu Check Solid property +Toggle suffix + KSU Comprobar propiedad sólida +Alternar sufijo + + + + ksuToolsCollisions + + + Check Collisions + Comprobar colisiones + + + + ksu Check Collisions and Interferences + KSU Comprobar colisiones e interferencias + + + + ksuToolsColoredBinder + + + Colored Binder + Conector coloreado + + + + Colored Binder object + Objeto conector coloreado + + + + ksuToolsColoredClone + + + Colored Clone + Clon coloreado + + + + Colored Clone object + Clon conector coloreado + + + + ksuToolsComparePositions + + + tools Compare 3D models Positions + herramientas Compara posiciones de modelos 3D + + + + ksu Compare 3D models Positions Data with the Active Document [MCAD Synchronize] + ksu Compara datos de posiciones de modelos 3D con el documento activo [MCAD sincronizado] + + + + ksuToolsConstrainator + + + Constrain a Sketch + Restringir + + + + ksu Fix & auto Constrain a Sketch + ksu repara & auto restriciones de un croquis + + + + ksuToolsContour2Poly + + + ksu tools 'RF PolyLined Sketch' +Selection's Shapes to PolyLine Sketch + ksu herramientas 'Croquis con polilinea RF' +Selecciona'es formas a croquis polilinea + + + + ksuToolsCopyPlacement + + + Copy Placement 1st to 2nd + Copia primera ubicacion a segunda + + + + ksu tools Copy Placement 1st to 2nd + herramientas ksu copia primera ubicación a la segunda + + + + ksuToolsDeepCopy + + + PartDN Copy + Copia PartDN + + + + ksu PartDN Copy object with relative placement [flattened model] + ksu copia objecto PartDN con ubicacion relativa [flattened model] + + + + ksuToolsDefeaturingTools + + + Defeaturing Tools from Defeaturing WorkBench + Herramientas de decaraterizado desde el entorno de trabajo Defeaturing + + + + ksuToolsDiscretize + + + Discretize + Discretizar + + + + ksu Discretize a shape/outline to a Sketch + KSU Discretizar una forma/contorno a un croquis + + + + ksuToolsEdges2Sketch + + + Edges to Sketch + Bordes a croquis + + + + ksu Select coplanar edge(s) or Face(s) or a single Vertex of a coplanar outline to get a corresponding Sketch + ksu Selecciona arista(s) coplanar o cara(s) o un simple vertize de una linea exterior coplanar para obtener una croquis correspondiente + + + + ksuToolsEditPrefs + + + Edit Preferences + Editar preferencias + + + + ksuToolsExplode + + + ksu Tools PCB Explode Select the top container of a KiCad PCB to explode it + Herramientas ksu Explosionar PCB Explode Selecciona el contenedor superior de una PCB de KiCad para explosionar + + + + ksuToolsExport3DStep + + + Export 3D to STEP + Exportar 3D a STEP + + + + ksu Export selected objects to STEP Model + KSU Exportar objetos seleccionados a modelo STEP + + + + ksuToolsExportModel + + + Export 3D Model + Exportar modelo 3D + + + + ksu Export 3D Model to KiCad + KSU Exportar modelo 3D a KiCad + + + + ksuToolsExtrude + + + ksu tools 'Extrude' +Extrude selection + Herramientas KSU 'Extruir' +Extruir la selección + + + + ksuToolsFootprintGen + + + Footprint generator + Generador de huellas + + + + ksu Footprint editor and exporter + ksu Editor de huellas y exportador + + + + ksuToolsGeneratePositions + + + tools Generate 3D models Positions + herramientas Generar posiciones de modelos 3D + + + + ksu Generate 3D models Positions Data for Active Document [MCAD Synchronize] + ksu Generar posiciones de modelos 3D para un documento activo [MCAD Synchronize] + + + + ksuToolsHighlightToggle + + + Highlight Toggle + Alternar resaltado + + + + ksu Selection Highlight Toggle + KSU Alternar resaltado de selección + + + + ksuToolsImport3DStep + + + Import 3D STEP + Importar STEP 3D + + + + ksu Import 3D STEP Model + KSU Importar modelo 3D STEP + + + + ksuToolsImportFootprint + + + Load FootPrint + Cargar huella + + + + ksu Load KiCad PCB FootPrint + KSU Cargar huella de PCB de KiCad + + + + ksuToolsLoadFootprint + + + Load FootPrint + Cargar huella + + + + ksu Load KiCad PCB FootPrint + KSU Cargar huella de PCB de KiCad + + + + ksuToolsLoopSelection + + + ksu tools 'LoopSelection'Loop selection on a xy outline + Herramientas ksu'Seleccionar bucle'seleccionar bucle sobre una linea exterior en XY + + + + ksuToolsMakeCompound + + + Make Compound + Crear compuesto + + + + ksu Make a Compound of selected objects + ksu Crear un compuesto de los objetos seleccionados + + + + ksuToolsMakeUnion + + + Make Union + Crear unión + + + + ksu Make a Union of selected objects + KSU Crear una unión de objetos seleccionados. + + + + ksuToolsMergeSketches + + + Merge Sketches + Combinar croquis + + + + ksuToolsMoveSketch + + + Move Sketch + Mover croquis + + + + ksu Move 2D Sketch + KSU Mover croquis 2D + + + + ksuToolsMover + + + Manipulator tools 'Mover' + Herramientas manipuladoras 'Movedor' + +the mover moves things + + + + ksuToolsOffset2D + + + Offset 2D + Desplazamiento 2D + + + + ksu Offset 2D object + ksu Desfasar objetos 2D + + + + ksuToolsOpenBoard + + + Load Board + Cargar placa + + + + ksu Load KiCad PCB Board and Parts + KSU Cargar placa PCB y partes de KiCad + + + + ksuToolsPullMoved + + + Pull 3D model(s) placement from PCB + Cargar ubicacion de modelo(s) 3D desde la PCB + + + + ksu Pull 3D model(s) placement from PCB + ksu Cargar ubicacion de modelo(s) 3D desde la PCB + + + + ksuToolsPullPCB + + + Pull Sketch from PCB + Cargar croquis desde PCB + + + + ksu Pull Sketch from PCB Edge + ksu Cargar croquis desde borde de PCB + + + + ksuToolsPushMoved + + + Push 3D moved model(s) to PCB + Enviar modelos 3D desplazados a la PCB + + + + ksu Push 3D moved model(s) to PCB + KSU Enviar los modelos movidos en 3D a la PCB + + + + ksuToolsPushPCB + + + Push Sketch to PCB + Enviar croquis a PCB + + + + ksu Push Sketch to PCB Edge + KSU Enviar croquis a borde de PCB + + + + ksuToolsReLinkBinder + + + Relink Binder + Revincular vínculo + + + + Relink Binder object Select Binder and an Object to be linked + Revincular el objeto vínculo Seleccione vínculo y un objeto a vincular + + + + ksuToolsRemoveFromTree + + + Remove from Tree + Eliminar del árbol + + + + ksu Remove Object(s) from Container Tree +keeping Placement +First Selection is the Container + KSU Eliminar objeto(s) del árbol contenedor +manteniendo la colocación +La primera selección es el contenedor + + + + ksuToolsRemoveSubTree + + + Remove Sub Tree + Eliminar sub árbol + + + + ksuToolsResetPartPlacement + + + Reset Part Placement + Restablecer ubicación de parte + + + + ksu Reset Placement for all Part containers in selection + KSU Restablecer ubicación para todos los contenedores de piezas en la selección + + + + ksuToolsResetPlacement + + + Reset Placement + Restablecer ubicación + + + + ksu Reset Placement for a Shape + KSU Restablecer ubicación para una forma + + + + ksuToolsSimpleCopy + + + Simple Copy + Copia simple + + + + ksu Simple Copy object + KSU Objeto de copia simple + + + + ksuToolsSimplifySketck + + + Simplify Sketch + Simplificar croquis + + + + ksu Simplifying Sketch to Arcs and Lines + KSU Simplificar croquis a arcos y líneas + + + + ksuToolsSkValidate + + + ksu tools 'Sketcher Validate' +Validate selected Sketch + Herramientas KSU 'Validación de Sketcher' +Validar croquis seleccionado + + + + ksuToolsStepImportModeComp + + + disable Simplified STEP Import Mode + Deshabilitar el modo de importación STEP simplificado + + + + ksu tools disable Simplified STEP Import Mode + Herramientas KSU Deshabilitar el modo de importación STEP simplificado + + + + ksuToolsStepImportModeSTD + + + disable Full STEP Import Mode + Deshabilitar el modo de importación STEP completo + + + + ksu tools disable Full STEP Import Mode + Herramientas KSU Deshabilitar el modo de importación STEP completo + + + + ksuToolsSync3DModels + + + Sync 3D model(s) Ref & TimeStamps with PCB + Sincronizar modelos 3D Ref y TimeStamps con PCB + + + + ksu Sync 3D model(s) Ref & TimeStamps +of the Selected 3D model with KiCad PCB + KSU Sincronizar referencias y marcas de tiempo del +modelo(s) 3D seleccionado con KiCad PCB + + + + ksuToolsToggleTreeView + + + Expand/Collapse Tree View + Expandir/Colapsar vista de árbol + + + + ksu tools Expand/Collapse Tree View + Herramientas KSU Expandir/Colapsar vista de árbol + + + + ksuToolsTransparencyToggle + + + Transparency Toggle + Alternar transparencia + + + + ksu Selection Transparency Toggle + KSU Alternar transparencia de selección + + + + ksuToolsTurnTable + + + TurnTable + Mesa giratoria + + + + ksu TurnTable + KSU Mesa giratoria + + + + ksuToolsUnion + + + Fuse objects + Fusionar objetos + + + + Make Union (Fuse) objects + Hacer unión (fusionar) objetos + + + + ksuToolsVisibilityToggle + + + Visibility Toggle + Alternar visibilidad + + + + ksu Selection Visibility Toggle + KSU Alternar visibilidad de selección + + + diff --git a/translations/ksu_pl.qm b/translations/ksu_pl.qm new file mode 100644 index 0000000..b1072a5 Binary files /dev/null and b/translations/ksu_pl.qm differ diff --git a/translations/ksu_pl.ts b/translations/ksu_pl.ts new file mode 100644 index 0000000..16edad6 --- /dev/null +++ b/translations/ksu_pl.ts @@ -0,0 +1,2335 @@ + + + + + CDialog + + + Dialog + Okno dialogowe + + + + explode_dwg + + + Explode 3D PCB + kicad StepUp 3D tools + Rozłóż trójwymiarową płytę PCB. + + + + 1.0 + 1,0 + + + + kSUGui::DlgSettingskStepUp + + + + + General + Ogólne + + + + + 3D Prefix working folder + Prefiks katalogu roboczego z obiektami 3D + + + + + <html><head/><body><p>your <span style=" font-weight:600;">KISYS3DMOD</span> path</p><p>or 3D model <span style=" font-weight:600;">main prefix path</span></p></body></html> + <html><head/><body><p>Twoja <span style=" font-weight:600;">ścieżka KISYS3DMOD</span></p><p>lub modelu 3D <span style=" font-weight:600;">główny prefiks ścieżki</span></p></body></html> + + + + + main 3D folder location 'KISYS3DMOD' +or 'KICAD6_3DMODEL_DIR' + lokalizacja głównego folderu obiektów 3D +"KISYS3DMOD" lub "KICAD6_3DMODEL_DIR" + + + + + <html><head/><body><p>main 3D folder location</p><p><span style=" font-weight:600;">'KISYS3DMOD'</span></p></body></html> + <html><head/><body><p>Lokalizacja głównego folderu obiektów 3D</p><p><span style=" font-weight:600;">"KISYS3DMOD"</span></p></body></html> + + + + + + + + + <html><head/><body><p>your <span style=" font-weight:600;">ALIAS</span> 3D</p><p>model prefix path</p></body></html> + <html><head/><body><p>Twój <span style=" font-weight:600;">ALIAS</span>modelu 3D</p><p>prefiks scieżki</p></body></html> + + + + + secondary 3D folder loc +'ALT2 3DMOD' + lokalizacja dodatkowego folderu +obiektów 3D "ALT2 3DMOD" + + + + + + + + + <html><head/><body><p>secondary 3D folder location</p><p><span style=" font-weight:600;">'ALT3DMOD'</span></p></body></html> + <html><head/><body><p>lokalizacja dodatkowego folderu obiektów 3D</p><p><span style=" font-weight:600;">"ALT3DMOD"</span></p></body></html> + + + + + PCB settings + Ustawienia PCB + + + + PCBs color. + Kolor wybrany dla Twojej płytki. + + + + + + + + + PCB color + Kolor PCB + + + + LightGreen + Jasny zielony + + + + + Green + Zielony + + + + + Blue + Niebieski + + + + + Red + Czerwony + + + + + Purple + Fioletowy + + + + + DarkGreen + Ciemny zielony + + + + + DarkBlue + Ciemny niebieski + + + + + LightBlue + Jasny niebieski + + + + + Yellow + Żółty + + + + + Black + Czarny + + + + + White + Biały + + + + + + + PCB Reference Placement in mechanical environment + Odniesienie umiejscowienia PCB +w środowisku mechanicznym + + + + + PCB Placement + Umiejscowienie PCB + + + + + Grid Origin + Punkt początkowy siatki + + + + + Aux Origin + Pomocniczy punkt początkowy + + + + + Pcb Center (approx) + Środek PCB (w przybliżeniu) + + + + + + + Constraints to be added to PCB Sketch + Wiązania do dodania do szkicu PCB + + + + + PCB Sketch mode (constraints) + Tryb szkicu PCB (wiązania) + + + + + Coincident + Zbieżność + + + + + V&H, Coincident + V&H, Zbieżność + + + + + Full + Wszystkie + + + + + None + Brak + + + + + Enable/Disable Virtual 3D +(mechanical) models + Włączanie / wyłączanie wirtualnych modeli 3D +(mechanicznych) + + + + + Virtual 3D Models loading + Ładowanie wirtualnych modeli 3D + + + + + + + minimum Drill size applied to PCB +'0.0' -> all drills are loaded +'-1' -> all drills and vias are loaded + Minimalna średnica wiertła zastosowana do PCB +"0.0" -> ładowane są wszystkie wiercenia +"-1" -> ładowane są wszystkie wiercenia i przelotki + + + + + minimum Drill size applied to PCB + Minimalna średnica wiertła do zastosowania + + + + + 0.0 + 0,0 + + + + + <html><head/><body><p><span style=" font-weight:600;">Bounding Box LIST:</span><br/>configure which 3D models will be converted to Bounding Box<br/><span style=" font-weight:600;">Examples:</span><br/><span style=" font-weight:600;">ALL</span><span style=" font-style:italic;">-&gt; all models will be converted to bounding boxes</span><br/><span style=" font-weight:600;">LIST</span> DSUB-15-HD_FH, DSUB-9_FH <span style=" font-style:italic;">-&gt; these two models will NOT be converted to BBox</span><br/><span style=" font-style:italic;">(list of 3D model's names separated by a semicolon)</span></p></body></html> + <html><head/><body><p><span style=" font-weight:600;">LISTA ramek otaczających:</span><br/>skonfiguruj, które modele 3D zostaną przekonwertowane na ramki otaczające<br/><span style=" font-weight:600;">Przykład:</span><br/><span style=" font-weight:600;">ALL</span><span style=" font-style:italic;">-&gt; wszystkie modele zostaną przekonwertowane na ramki ograniczające</span><br/><span style=" font-weight:600;">LIST</span> DSUB-15-HD_FH, DSUB-9_FH <span style=" font-style:italic;">-&gt; Te dwa modele NIE zostaną przekonwertowane na ramki obwiedni</span><br/><span style=" font-style:italic;">(lista nazw modeli 3D oddzielonych średnikiem)</span></p></body></html> + + + + + Bounding Boxes + Ramki otaczające + + + + + <html><head/><body><p><span style=" font-weight:600;">Black List:</span><br/>put here your model names that you don't want to load (e.g. smallest ones)<br/>separated by a semicolon.<br/>DNP or DNF attribute.<br/>volume and height are also configurable.<br/>(volume=1 means all models with a volume &lt; 1mm3 will not be included)<br/>(height=1 means all models with a height &lt; 1mm will not be included)<br/><br/><span style=" font-weight:600;">Examples:</span><br/>DNP;R_0402_1005Metric;C_0402_1005Metric;<br/>height=1.0<br/>volume=1.0<br/><span style=" font-weight:600;">An empty list means all the models will be parsed.</span></p></body></html> + <html><head/><body><p><span style=" font-weight:600;">Czarna lista:</span><br/>umieść tutaj nazwy modeli, których nie chcesz ładować (np. najmniejszych).<br/>oddiel je średnikiem.<br/>atrybut DNP lub DNF.<br/>objętość i wysokość są również konfigurowalne.<br/>(volume=1 oznacza że wszystkie modele z objętością &lt; 1mm3 nie zostaną wuwzględnione)<br/>(height=1 oznacza, że wszystkie modele o wysokości &lt; 1mm nie zostaną uwzględnione).<br/><br/><span style=" font-weight:600;">Przykłady:</span><br/>DNP;R_0402_1005Metric;C_0402_1005Metric;<br/>height=1.0<br/>volume=1.0<br/><span style=" font-weight:600;">Pusta lista oznacza, że wszystkie modele zostaną przetworzone.</span></p></body></html> + + + + + Black List + "Czarna" lista + + + + + + + minimum Edge Tolerance applied to PCB +default '0.01mm' + Minimalna tolerancja krawędzi zastosowana do PCB +wartość domyślna: 0.01mm + + + + + minimum edge tolerance + Minimalna tolerancja krawędzi + + + + + 0.01 + 0,01 + + + + + <html><head/><body><p><span style=" font-weight:600;">White List:</span><br/>put here your model names that you must load (e.g. smallest ones)<br/>separated by a semicolon.<br/><br/><span style=" font-weight:600;">Examples:</span><br/> +LED_D5.0mm_IRBlack;USB_Mini-B_Lumberg_2486_01_Horizontal;<br/><span style=" font-weight:600;">An empty list means all the models will behave as usual.</span></p></body></html> + <html><head/><body><p><span style=" font-weight:600;">Biała lista:</span><br/>Umieść tutaj nazwy modeli, które musisz załadować (np. najmniejsze).<br/>oddiel je średnikiem..<br/><br/><span style=" font-weight:600;">Przykłady:</span><br/> +LED_D5.0mm_IRBlack;USB_Mini-B_Lumberg_2486_01_Horizontal;<br/><span style=" font-weight:600;">Pusta lista oznacza, że wszystkie modele będą zachowywać się jak zwykle.</span></p></body></html> + + + + White List + "Biała" lista + + + + + Import/Export settings + Konfiguracja importu / eksportu + + + + + <html><head/><body><p>Enable/Disable <span style=" font-weight:600;">fusion (union)</span> of all 3D models.</p><p>Be careful ... fusion can be heavy or generate FC crash with a lot of objects.</p><p>Please consider to use bbox or blacklist small objects</p></body></html> + <html><head/><body><p>Włacz / Wyłącz <span style=" font-weight:600;">połączenie (scalenie)</span> wszystkich modeli 3D.</p><p>Bądź ostrożny ... operacja scalenia może być trudna lub wygenerować kolizję FC z wieloma obiektami.</p><p>Rozważ użycie ramki otaczającej lub czarnej listy małych obiektów</p></body></html> + + + + + Make a Union of 3D models + Twórz scalenie modeli 3D + + + + + <html><head/><body><p>Directly <span style=" font-weight:600;">Export STEP</span> after Loading</p></body></html> + <html><head/><body><p>Bezpośredni <span style=" font-weight:600;">Eksport STEP</span> po załadowaniu</p></body></html> + + + + + Directly Export STEP after Loading + Eksport STEP bezpośrednio po załadowaniu projektu + + + + STEP export mode. + Tryb eksportu do formatu STEP. + + + + + + + + + STEP export mode + Tryb eksportu STEP + + + + + + + Hierarchy + Hierarchia + + + + + Flat + Płaskie + + + + + One Container + Jeden kontener + + + + 3D Loading mode. + Tryb ładowania obiektów 3D. + + + + + + + 3D Loading mode + Tryb ładowania obiektów 3D + + + + + 3D_loading_mode +Allowing or not Loading Multi Parts objects + 3D_loading_mode +Zezwolenie lub nie na ładowanie obiektów wieloczęściowych. + + + + + Simplified + Uproszczony + + + + + NotMultiParts + Bez wieloczęściowych + + + + + Standard + Standardowy + + + + Assembly3 Links allowed. + Powiązania ze środowiskiem pracy Złożenie 3 będą dozwolone. + + + + + + + Assembly3 Links allowed + Zezwól na łącza ze środowiska Złożenie 3 + + + + Enables Materials for VRML exporting. + Umożliwia eksportowanie materiałów VRML. + + + + + + + Enable Materials for VRML exporting + Eksport materiałów VRML + + + + Start Turntable after loading. + Po załadowaniu uruchomiona będzie obsługa manipulatora TurnTable. + + + + + + + Start Turntable after loading + Uruchom obsługę Turntable po załadowaniu + + + + Assembly3 LinkGroups allowed. + Grupy powiązań ze środowiskiem pracy Złożenie 3 będą dozwolone. + + + + + + + Assembly3 LinkGroups allowed + Zezwól na grupy łączy ze środowiska Złożenie 3 + + + + Enables compressed STEP file ('.stpZ') generation exporting. + Włącza możliwość eksportu do skompresowanego pliku STEP (.stpZ). + + + + + + Enable compressed STEP file ('.stpZ') generation exporting + Włącz eksport do skompresowanego pliku STEP (.stpZ). + + + + Enables compressed VRML file ('.wrz') generation exporting. + Włącza możliwość eksportu do skompresowanego pliku VRML (.wrz). + + + + + + Enable compressed VRML file ('.wrz') generation exporting + Włącz eksport do skompresowanego pliku VRML (.wrz). + + + + Displays STEP import settings warning. + Wyświetlane będą ostrzeżenia o ustawieniach importu STEP + + + + + + + Display STEP import settings warning + Pokaż ostrzeżenia o ustawieniach importu STEP + + + + + <html><head/><body><p>Apply Transparency for 'Glass' Materials:</p><p>Force Transparency to STEP model if 'Glass' is found in '.wrl' model</p></body></html> + <html><head/><body><p>Zastosuje przezroczystość dla materiałów typu "szkło":</p><p>Spowoduje wymuszenie przezroczystości na obiekcie modelu STEP, jeśli materiał "szkło" znajduje się w modelu ".wrl".</p></body></html> + + + + + Apply Transparency for 'Glass' Materials + Zastosuj przezroczystość dla "szkła" + + + + + <html><head/><body><p>Apply Transparency for 'Led' Materials:</p><p>Force Transparency to STEP model if 'Led' is found in '.wrl' model</p></body></html> + <html><head/><body><p>Zastosuje przezroczystość dla materiałów typu "LED":</p><p>Spowoduje wymuszenie przezroczystości na obiekcie modelu STEP, jeśli "LED" znajduje się w modelu ".wrl".</p></body></html> + + + + + Apply Transparency for 'Led' Materials + Zastosuj przezroczystość dla "LED" + + + + <html><head/><body><p>Skip importing pcb zone(s)</p></body></html> + <html><head/><body><p>Wyłącza import stref z płytek drukowanych.</p></body></html> + + + + skpZone + Strefa + + + + <html><head/><body><p>Skip importing pcb tracks and vias</p></body></html> + <html><head/><body><p>Wyłącza import ścieżek i przelotek z płytek drukowanych.</p></body></html> + + + + skpTracks + Ścieżka + + + + + <html><head/><body><p>Skip importing pcb pads</p></body></html> + <html><head/><body><p>Wyłącza import pół lutowniczych z płytek drukowanych.</p></body></html> + + + + skpPads + "Pady" + + + + + third 3D folder loc +'ALT3 3DMOD' + trzecia lokalizacja folderu +obiektów 3D "ALT3 3DMOD" + + + + + fourth 3D folder loc +'ALT4 3DMOD' + czwarta lokalizacja folderu +obiektów 3D "ALT4 3DMOD" + + + + <html><head/><body><p>Select to NOT use the native dialog box in Open/Save files<br/>(suggested for Snap or FlatPack)</p></body></html> + <html><head/><body><p>Wybierz, aby NIE używać systemowego okna dialogowego podczas otwierania / zapisywania plików<br/>(zalecane dla dystrybucji Snap lub FlatPack)</p></body></html> + + + + don't use native dialog in Open/Save files (for Snap or FlatPack) + Nie używaj natywnego okna otwierania / zapisywania plików (dla Snap lub FlatPack) + + + + + Mechanical Check + Kontrola mechaniczna + + + + Generates Sketches for differences on PCB Edge. + Zostaną wygenerowane szkice dla różnic na krawędzi PCB. + + + + + + + Generate Sketches for differences on PCB Edge + Generuj szkice dla różnic na krawędziach PCB + + + + Working directory ccx tools + Katalog roboczy narzędzi ccx + + + + + Use custom directory + Użyj katalogu użytkownika + + + + Working directory general FEM solver frame work + Katalog roboczy solwera MES + + + + Temporary directories + Katalogi tymczasowe + + + + Let FreeCAD manage (create, delete) the working directories for all solver. Use temporary directories. + Pozwól aby FreeCAD zarządzał (tworzył, usuwał) +katalogami roboczymi dla wszystkich solverów. +Użyj katalogów tymczasowych. + + + + Beside .fcstd file + Oprócz pliku .fcstd + + + + Create a directory in the same folder in which the fcstd file of the document is located. Use Subfolder for each solver (e.g. for a file ./mydoc.fcstd and a solver with the label Elmer002 use ./mydoc/Elmer002). + Utwórz katalog w tym samym katalogu, w którym znajduje się plik fcstd dokumentu. +Użyj katalogu podrzędnego dla każdego solvera +(np. dla pliku ./mydoc.fcstd i solvera z etykietą Elmer002 użyj ./mydoc/Elmer002). + + + + Use directory set below. Create own subdirectory for every solver. Name directory after the solver label prefixed with the document name. + Użyj poniższego ustawienia katalogu. Utwórz własny katalog podrzędny dla każdego solvera. +Nazwij katalog na podstawie etykiety solvera poprzedzonej nazwą dokumentu. + + + + Path: + Ścieżka: + + + + Mesh + Siatka + + + + Create mesh groups for analysis reference shapes + Utwórz grupy siatek dla kształtów referencyjnych analizy + + + + + choice#1 + Wybór#1 + + + + choice#2 + Wybór#2 + + + + choice#3 + Wybór#3 + + + + Results + Wyniki + + + + Keep results on calculation re-run + Zachowaj wyniki przy ponownym uruchomieniu obliczeń + + + + Restore result dialog settings + Przywróć ustawienia okna dialogowego wyników + + + + Hide constraints when open result dialog + Ukryj wiązania po otwarciu okna dialogowego wyników + + + + + <html><head/><body><p><span style=" font-weight:600;">Bounding Box LIST:</span></p><p>configure which 3D models will be converted to Bounding Box</p><p><span style=" font-weight:600;">Examples:</span></p><p><span style=" font-weight:600;">ALL</span><span style=" font-style:italic;">-&gt; all models will be converted to bounding boxes</span></p><p><span style=" font-weight:600;">LIST</span> DSUB-15-HD_FH, DSUB-9_FH <span style=" font-style:italic;">-&gt; these two models will NOT be converted to BBox</span></p><p><span style=" font-style:italic;">(list of 3D model's names separated by a semicolon)</span></p></body></html> + <html><head/><body><p><span style=" font-weight:600;">LISTA ramek otaczających:</span></p><p>skonfiguruj, które modele 3D zostaną przekonwertowane na ramki otaczające</p><p><span style=" font-weight:600;">Przykłady:</span></p><p><span style=" font-weight:600;">ALL</span><span style=" font-style:italic;">-&gt; wszystkie modele zostaną przekonwertowane na ramki ograniczające</span></p><p><span style=" font-weight:600;">LIST</span> DSUB-15-HD_FH, DSUB-9_FH <span style=" font-style:italic;">-&gt; ee dwa modele NIE zostaną przekonwertowane na ramki ograniczające</span></p><p><span style=" font-style:italic;">(lista nazw modeli 3D oddzielonych średnikiem)</span></p></body></html> + + + + + <html><head/><body><p><span style=" font-weight:600;">Black List:</span></p><p>put here your model names that you don't want to load (e.g. smallest ones)</p><p>separated by a semicolon.</p><p>volume and height are also configurable.</p><p>(volume=1 means all models with a volume &lt; 1mm3 will not be included)</p><p>(height=1 means all models with a height &lt; 1mm will not be included)</p><p><br/><span style=" font-weight:600;">Examples:</span></p><p>r_0603;r_0402;c_0402;c_0603</p><p>height=1.0</p><p>volume=1.0</p><p><span style=" font-weight:600;">An empty list means all the models will be parsed.</span></p></body></html> + <html><head/><body><p><span style=" font-weight:600;">Czarna lista:</span></p><p>umieść tutaj nazwy modeli, których nie chcesz ładować (np. najmniejszych).</p><p>oddiel je średnikiem</p><p>Objętość i wysokość są również konfigurowalne.</p><p>(volume=1 oznacza, że wszystkie modele o objętości &lt; 1mm3 nie zostaną uwzględnione)</p><p>(height=1 oznacza, że wszystkie modele o wysokości <&lt; 1 mm nie zostaną uwzględnione)</p><p><br/><span style=" font-weight:600;">Przykłady:</span></p><p>r_0603;r_0402;c_0402;c_0603</p><p>height=1.0</p><p>volume=1.0</p><p><span style=" font-weight:600;">Pusta lista oznacza, że wszystkie modele zostaną przeanalizowane.</span></p></body></html> + + + + Arcs2Circles + + + Convert Arcs to Circles in Sketch + Konwertuj łuki na okręgi w Szkicowniku + + + + Close + + + <b>Do you want to quit?</b> <i>Have you saved your STEP artwork?</i><br> + + + + + Close + + + + + Create_BoundBox + + + Create BoundBox of the Selected Object + Utwórz ramkę otaczającą wybranego obiektu + + + + Help + + + <b>Kicad StepUp</b> is a tool set to easily <b>collaborate between kicad pcb EDA</b> (board and 3D parts) as STEP models <b>and FreeCAD MCAD</b> modeler.<br> +</font> + + + + + <b>StepUp</b> can also be used <b>to align 3D model to kicad footprint</b>.<br> +The artwork can be used for MCAD interchange and collaboration, and for enclosure design.<br> +The 3D visualization of components on board assemblies in kicad 3dviewer, will be the same in your mechanical software, +because of the STEP interchange format.<br> +It is also possible to <b>Update a pcb Edge from a FC Sketcher.</b><br> +<b>configuration options:</b><br>Configuration options are located in the preferences system of FreeCAD, which is located in the Edit menu -&gt; Preferences.<br> + + + + + + starter Guide:<br><a href='{}{}demo{}{}' target='_blank'>{}</a><br> + + + + + <b>Note:</b> each button has its own <b>Tooltip</b><br> +useful buttons:<br><b>Load kicad Board directly</b> -> will load kicad board and parts in FreeCAD coming from kicad '.kicad_pcb' file<br> +<b>Load kicad Footprint module</b> -> will load directly kicad footprint in FreeCAD to easily align the 3D model to footprint<br> +<b>Export to kicad STEP & scaled VRML</b> -> will convert MCAD model to STEP and VRML to be used by Kicad and kicad StepUp<br> +<b> -> VRML can be multipart;<br> -> STEP must be single part</b><br>(<i>'Part Boolean Union'</i> or <i>'Part Makecompound'</i>)<br> +<i>assign material to selected colors and your VRML 3D models will have nice shiny effects</i><br> +<b>Push pcb Sketch to kicad_pcb Edge</b> -> will push pcb Sketch to kicad_pcb Edge in your design; it can be done with an empty or with an existing pcb Edge<br> +<br>for a more detailed help have a look at <br><b>kicadStepUp-starter-Guide.pdf</b><br> +or just follow the <b>YouTube video tutorials</b> <br><a href='https://youtu.be/h6wMU3lE_sA' target='_blank'>kicadStepUp basics</a><br> +<a href='https://youtu.be/O6vr8QFnYGw' target='_blank'>kicadStepUp STEP alignment to Kicad footprint</a><br> +<a href='https://github.com/easyw/kicadStepUpMod' target='_blank'>check always the latest release of kicadStepUp</a><br><br> +Designing in kicad native 3d-viewer will produce a fully aligned STEP MCAD version +with the same view of kicad 3d render.<br> +Moreover, KiCad StepUp tool set <b>will let you to load the kicad footprint inside FreeCAD and align the 3D part with a visual real time feedback +of the 3d model and footprint reciprocal position.</b><br> +With this tool is possible to download a part from on-line libraries, align the model to kicad footprint +and export the model to wrl, for immediate 3d-viewer alignment in pcbnew.<br> +Now the two words are connected for a better collaboration; just <b>design in kicad EDA</b> and transfer +the artwork to <b>MCAD (FreeCAD)</b> smoothly.<br> +<b>The workflow is very simple</b> and maintains the usual way to work with kicad:<br> +Add models to your library creating 3D models in FreeCAD, or getting models from online libs +or from the parametric 3D lib expressly done to kicad <a href='https://github.com/easyw/kicad-3d-models-in-freecad' target='_blank'>kicadStepUp 3D STEP models generator</a><br> +Once you have your 3D MCAD model, <b>you need to have a copy of that in STEP and VRML format.</b> <br> +(with the latest kicad release you can only have STEP model, VRML is not needed anymore, but <b>it is possible + to mix VRML, STEP and IGES format</b>)<br> +Just exporting the model with FreeCAD and put your model in the same folder in which +normally you are used to put vrml models; the script will assembly the MCAD board and models as in 3d-viewer of kicad. +<br><b>NB<br>STEP model has to be fused in single object</b><br>(Part Boolean Union of objects) +<br><b>or a Compoud</b> (Part Makecompound of objects)</b> +<hr><b>enable 'Report view' Panel to see helping messages</b> +</font> +<br> + + + + + KiCadStepUpWB + + + KiCadStepUp + KiCad krok w górę + + + + KiCadStepUp workbench + Środowisko pracy wspierające możliwości KiCad + + + + Menu + + + ksu PushPull + KSU - wyciągnij + + + + + ksu Tools + KSU - narzędzia + + + + Demo + Prezentacja + + + + PushPCB + + + <b>Edge editing NOT supported on FC0.15!</b><br>please upgrade your FC release + + + + + Edge editing NOT supported on FC0.15! + + + + + getting camera view + + + + + forcing rotAngle to 0 + + + + + evaluate to recompute + + + + + Saving to an empty KiCad pcb file + + + + + Cancel + + + + + Restoring cam view + + + + + + Select one Sketch to be pushed to kicad board! + + + + + Restore_Transparency + + + Restore Transparency to Active Document Objects + Przywróć przezroczystość aktywnym obiektom dokumentu + + + + Save + + + please <b>save</b> your job file before exporting. + + + + + Please <b>save</b> your job file before exporting. + + + + + + Info ... + + + + + + Save + + + + + Say + + + routine Scale to VRML 1/2.54 + + + + + Put on Axe XYZ ! + + + + + Select <b>ONE single part</b> object !<br> +suggestion for multi-part:<br> +&nbsp;&nbsp;<b>Part Boolean Union (recommended)</b><br> +or<br> +&nbsp;&nbsp;<i>Part Make compound (alternative choice)</i> + + + + + Select <b>a Compound</b> or <br> +<b>a Part Design group</b><br> +or <b>more than one Part</b> object !<br> + + + + + + Error in selection + + + + + Warning ... + + + + + ERROR! ... + + + + + Info ... + + + + + + + + + + + Select ONE single part object ! + + + + + Select an object ! + + + + + Toolbar + + + ksu Tools + KSU - Narzędzia + + + + ksu Sketching + KSU - Szkicowanie + + + + ksu PushPull + KSU - Wyciągnij + + + + + ksu Design Tools + KSU - Narzędzia projektowe + + + + ksu Show + KSU - Pokaz + + + + ksu Helpers + KSU - Pomocnik + + + + Ui_CDialog + + + Select a Sketch and Parameters +to constraint the sketch +NB the Sketch will be modified! + Wybierz szkic i parametry +aby związać szkic +Uwaga: szkic zostanie zmodyfikowany! + + + + <b>Select a Sketch and Parameters to<br>constrain the sketch.<br>NB the Sketch will be modified!</b> + <b>Wybierz szkic i parametry aby<br>nałożyć wiązania na szkic.<br> Uwaga: Szkic zostanie zmodyfikowany!</b> + + + + Constraints + Wiązania + + + + Lock Coincident, Horizontal +and Vertical + Zablokuj zbieżność, +poziome i pionowe + + + + Lock Coincident + Zablokuj zbieżność + + + + Tolerance + Tolerancja + + + + tolerance in mm + Tolerancja w mm + + + + Tolerance on Constraints + Tolerancja dla wiązań + + + + remove duplicated geometries + Usuń powielone geometrie + + + + Ui_Dialog + + + Material Properties + Właściwości materiału + + + + Materials + Materiały + + + + Original + Oryginalne + + + + Shape Color + Kolor kształtu + + + + Diffuse Color + Kolor rozproszenia + + + + New + Nowy + + + + NB: set Material will unmatch colors between wrl and STEP + Uwaga: ustawiony materiał spowoduje niedopasowanie kolorów między wrl i STEP. + + + + Ui_DockWidget + + + ksu config ini file +location + KSU lokalizacja pliku konfiguracyjnego ini + + + + KiCad StepUp tools + Narzędzia KiCad krok w górę + + + + dock left + Dokuj po lewej + + + + un-dock (floating) + Oddokowane + + + + minimize + Minimalizuj + + + + dock right + Dokuj po prawej + + + + close + Zamknij + + + + + + translate (+/- mm) + Przesunięcie (+/- mm) + + + + translate X (+/- mm) + Przesunięcie X (+/- mm) + + + + translate Y (+/- mm) + Przesunięcie Y (+/- mm) + + + + translate Z (+/- mm) + Przesunięcie Z (+/- mm) + + + + put on X + postaw na X + + + + put on Y + postaw na Y + + + + put on Z + postaw na Z + + + + + + rotation angle (+/- deg) + Kąt obrotu (+/- °) + + + + rotate X (+/- deg) + Obrót X (+/-°) + + + + rotate Y (+/- deg) + Obrót Y (+/-°) + + + + rotate Z (+/- deg) + Obrót Z (+/-°) + + + + center X + Środek X + + + + center Y + Środek Y + + + + center Z + Środek Z + + + + make Compound of Parts + Tworzenie zespołu części + + + + Load KiCad +Board .kicad_pcb + Załaduj płytkę +KiCad .kicad_pcb + + + + export to KiCad: +STEP & scaled VRML 1/2.54 + Eksport do KiCad: +STEP & skalowany VRML 1/2.54 + + + + enable loading +virtual & mechanical +models + Włącz wczytywanie modeli +wirtualnych i mechanicznych + + + + use wrl +material + użyj materiału +wrl + + + + load KiCad footprint +'kicad_mod' + Wczytaj odcisk +z KiCad "kicad_mod" + + + + export STEP Board +and Parts after loading + Eksportuj płytkę i części +do formatu STEP, po załadowaniu + + + + make Union of Parts + Złącz części + + + + import STEP +3D model + Import obiektu STEP +modelu 3D + + + + export selected objects to STEP + eksport wybranych obiektów do pliku STEP + + + + create reference Axis + Utwórz oś odniesienia + + + + Help & starting Guide + Pomoc i przewodnik uruchomienia + + + + view Config File content + Wyświetl zawartość pliku konfiguracyjnego + + + + push PCB Edge to KiCad +from Sketcher to pcbnew + Zastosuj PCB Edge do KiCad +ze Szkicownika do pcbnew + + + + collisions result status + Stan wyników kolizji + + + + NO collisions found + Kolizji nie stwierdzono + + + + + check Collisions +tolerance 1e-06 + Sprawdź kolizje +tolerancja 1e-06 + + + + + collisions FOUND! + Występują kolizje! + + + + ksu config ini file +content + KSU zawartość pliku konfiguracyjnego ini + + + + Help Start Guide + Pomoc — przewodnik startowy + + + + Ui_LayerSelection + + + open in new FreeCAD document + Otwórz nowy dokument FreeCAD + + + + open in new document + Otwórz nowy dokument + + + + <html><head/><body><p>replace PCB in current document</p><p><span style=" font-weight:600; color:#aa0000;">N.B.</span> Sketch constrains will be deleted!</p></body></html> + <html><head/><body><p>Zastąp PCB w bieżącym dokumencie</p><p><span style=" font-weight:600; color:#aa0000;">Uwaga</span> Wiązania szkicu zostaną usunięte!</p></body></html> + + + + replace PCB and Sketch in current document + Zastąp PCB i Szkic w bieżącym dokumencie + + + + <html><head/><body><p>keep Sketch in current document</p><p><span style=" font-weight:600; color:#aa0000;">N.B.</span> this option will keep Sketch &amp; constrains but replace the PCB</p><p>This could lead to a unsynced Sketch feature</p></body></html> + <html><head/><body><p>Zachowaj szkic w bieżącym dokumencie</p><p><span style=" font-weight:600; color:#aa0000;">Uwaga</span> ta opcja zachowa Szkic oraz wiązania, zastępując płytkę drukowaną.</p><p>Może to prowadzić do niezsynchronizowanej funkcji Szkicu.</p></body></html> + + + + replace PCB and keep Sketch in curr. doc + Zamień płytkę drukowaną i zachowaj szkic w aktualnym dokumencie + + + + Ui_LayerSelectionOut + + + Line Width: + Szerokość linii: + + + + Line width for drawings + Szerokość linii na rysunkach + + + + Ui_Offset_value + + + Offset value + Wartość odsunięcia + + + + Offset [+/- mm]: + Odsunięcie [+/- mm]: + + + + Offset value [+/- mm] + Wartość odsunięcia [+/- mm] + + + + Arc or Intersection Offset method + Metoda odsunięcia łuku lub przecięcia + + + + Arc + Łuk + + + + Offset Y [mm]: + Odsunięcie Y [mm]: + + + + Offset Y value [+/- mm] + Wartość odsunięcia Y [+/- mm] + + + + approximateCenter + + + Create Center of Circle through 3 Vertices or Select two vertices to create a mid point or Select a Shape to create a center point + Stwórz środek okręgu przez 3 wierzchołki lub +wybierz dwa wierzchołki, aby utworzyć punkt środkowy, +albo wybierz kształt, aby utworzyć punkt środkowy. + + + + Create Center of Circle through 3 Vertices + Utwórz środek okręgu przez 3 wierzchołki + + + + checkSolidExpSTEP + + + Check if the selected part would be +exported to STEP as a single solid + Sprawdź, czy wybrana część zostanie wyeksportowana do STEP +jako pojedynczy obiekt bryłowy. + + + + ksu + + + PolyLine Contour generated + +<b>For PolyLine Pads, please add 'circles' inside each closed polyline</b><br> + Wygenerowany kontur PolyLine + +<b>W przypadku "padów" PolyLine należy dodać "okręgi" wewnątrz każdej zamkniętej poliginii.</b><br> + + + + Select a Sketch and Parameters to<br>move the sketch.<br>Offset X: + Wybierz Szkic i Parametry, aby +przenieść szkic. +<br>Odsunięcie X: + + + + ksuAsm2Part + + + Convert an Assembly (A3) to Part hierarchy + Konwertuj złożenie (A3) na strukturę części + + + + ksu Convert an Assembly (A3) to Part hierarchy + KSU skonwertuje złożenie (środowiska A3) na strukturę części. + + + + ksuImpDXF + + + Import Legacy DXF + Import starszym importerem DXF + + + + ksuOpDXF + + + open Legacy DXF + Otwórz starszy importer DXF + + + + ksuOpEzDXF + + + open ezDXF + Otwórz ezDXF + + + + ksuRemoveSuffix + + + Remove 'custom' Suffix from Labels + Usuń przyrostek "niestandardowy" z etykiet. + + + + ksuRemoveTimeStamp + + + Remove TimeStamp from Labels + Usuń znacznik czasu z etykiet. + + + + ksuTools + + + ksu Tools + Narzędzia KSU + + + + Activate the main +KiCad StepUp Tools Dialog + Aktywuje główne okno dialogowe +KiCad krok w górę — Narzędzia + + + + ksuTools2D2Sketch + + + 2D to Sketch + 2D na Szkic + + + + ksu 2D object (or DXF) to Sketch + KSU przekonwertuje obiekt 2D (lub DXF) na Szkic + + + + ksuTools2DtoFace + + + 2D to Face + 2D na Powierzchnię + + + + ksu 2D object (or DXF) to Surface for extruding + KSU przekonwertuje obiekt 2D (lub DXF) do powierzchni na potrzeby wyciągnięcia + + + + ksuTools3D2D + + + 3D to 2D + 3D na 2D + + + + ksu 3D object to 2D projection + KSU wykona rzut 2D obiektu przestrzennego + + + + ksuToolsAddSilks + + + ksu tools Add Silks from KiCad exported DXF +NB: it could be a very intensive loading! + Narzędzia KSU: Dodaj maskę lutów z eksportowanego DXF z KiCad. +Uwaga: może to być bardzo intensywne obciążenie! + + + + ksuToolsAddToTree + + + Add to Tree + Dodaj do Widoku drzewa + + + + ksu Add Object(s) to Container Tree +keeping Placement +First Selection is the Container + KSU Dodaj obiekt(y) do drzewa kontenerów +utrzymując położenie. +Najpierw zaznacz kontener. + + + + ksuToolsAddTracks + + + ksu tools Add Tracks +NB: it could be a very intensive loading! + Narzędzia KSU: Dodaj ścieżki +Uwaga: może to być bardzo intensywne obciążenie! + + + + ksuToolsAlignView + + + AlignView to Face + Wyrównaj widok do ściany + + + + ksu AlignView to Face + KSU wyrówna widok do ściany + + + + ksuToolsAligner + + + Manipulator tools 'Aligner' + Narzędzia manipulacji: "Wyrównywacz" + + + + ksuToolsBsplineNormalize + + + Geo to Bspline + Geometria na krzywą złożoną + + + + ksu Convert Geometry to Bspline for KiCAD format + KSU konwersja geometrii na krzywą złożoną w formacie KiCad. + + + + ksuToolsCaliper + + + Manipulator tools 'Caliper' + Narzędzia manipulacji: "Suwmiarka" + + + + ksuToolsCheckSolid + + + Check Solid property + Sprawdź właściwości bryły + + + + ksu Check Solid property +Toggle suffix + KSU sprawdzi właściwości bryły. +Przełącz przyrostek. + + + + ksuToolsCollisions + + + Check Collisions + Kontrola kolizji + + + + ksu Check Collisions and Interferences + KSU sprawdzi występowanie kolizji i przeszkód + + + + ksuToolsColoredBinder + + + Colored Binder + Kolorowy łącznik + + + + Colored Binder object + Utworzy obiekt kolorowego łacznika + + + + ksuToolsColoredClone + + + Colored Clone + Kolorowy klon + + + + Colored Clone object + Utworzy obiekt kolorowego klona + + + + ksuToolsComparePositions + + + tools Compare 3D models Positions + Narzędzia Porównanie pozycji modeli 3D + + + + ksu Compare 3D models Positions +Data with the Active Document +[MCAD Synchronize] + KSU porówna dane pozycji modeli 3D +z aktywnym dokumentem +[MCAD Synchronize]. + + + + ksuToolsConstrainator + + + Constrain a Sketch + Wiązania szkicu + + + + ksu Fix & auto Constrain a Sketch + KSU Popraw i automatycznie nałóż wiązania na szkic + + + + ksuToolsContour2Poly + + + ksu tools 'RF PolyLined Sketch' +Selection's Shapes to PolyLine Sketch + KSU Narzędzia: "RF PolyLined Sketch" +Wybrane kształty do szkicu jako polilinie. + + + + ksuToolsCopyPlacement + + + Copy Placement 1st to 2nd + Kopiuje umiejscowienie pierwszego obiektu do drugiego + + + + ksu tools Copy Placement 1st to 2nd + KSU Narzędzia: Skopiuj położenie pierwszego do drugiego + + + + ksuToolsDeepCopy + + + PartDN Copy + Kopiuj DN części + + + + ksu PartDN Copy object +with relative placement +[flattened model] + KSU DN części: Skopiuje obiekt +wraz z względnym położeniem +[spłaszczony model] + + + + ksuToolsDefeaturingTools + + + Defeaturing Tools from Defeaturing WorkBench + Narzędzia wygładzania z środowiska pracy Defeaturing + + + + ksuToolsDiscretize + + + Discretize + Oddziel + + + + ksu Discretize a shape/outline to a Sketch + KSU oddzieli kształt / kontur do Szkicu + + + + ksuToolsEdges2Sketch + + + Edges to Sketch + Krawędzie do Szkicu + + + + ksu Select coplanar edge(s) or Face(s) or +a single Vertex of a coplanar outline +to get a corresponding Sketch + KSU wybierz współpłaszczyznowe krawędzie lub ściany +albo pojedynczy wierzchołek współpłaszczyznowego konturu, +aby uzyskać odpowiadający Szkic. + + + + ksuToolsEditPrefs + + + Edit Preferences + Edycja ustawień + + + + ksuToolsExplode + + + ksu Tools PCB Explode +Select the top container of a KiCad PCB to exlode it + KSU Narzędzia: Rozbij PCB +Wybierz główny kontener płytki PCB z programu KiCad, aby ją rozbić. + + + + ksuToolsExport3DStep + + + Export 3D to STEP + Eksportuj obiekt 3D do formatu STEP + + + + ksu Export selected objects to STEP Model + KSU wyeksportuje wybrane obiekty do modelu Step + + + + ksuToolsExportModel + + + Export 3D Model + Eksport modelu 3D + + + + ksu Export 3D Model to KiCad + KSU wyeksportuje model 3D do KiCad + + + + ksuToolsExtrude + + + ksu tools 'Extrude' +Extrude selection + KSU Narzędzia: "Wyciągnij" wybrany + + + + ksuToolsFootprintGen + + + Footprint generator + Generator odcisków + + + + ksu Footprint editor and exporter + KSU Edycja i kesport odcisków + + + + ksuToolsGeneratePositions + + + tools Generate 3D models Positions + Narzędzia Generator pozycji modeli 3D + + + + ksu Generate 3D models Positions +Data for Active Document +[MCAD Synchronize] + KSU wygeneruje pozycje modeli 3D +Dane dla aktywnego dokumentu +[Synchronizacja MCAD] + + + + ksuToolsHighlightToggle + + + Highlight Toggle + Przełącz podświetlenie + + + + ksu Selection Highlight Toggle + KSU przełączy podświetlenie wyboru + + + + ksuToolsImport3DStep + + + Import 3D STEP + Import 3D STEP + + + + ksu Import 3D STEP Model + KSU zaimportuje model 3D z pliku STEP + + + + ksuToolsImportFootprint + + + Load FootPrint + Wczytaj odcisk + + + + ksu Load KiCad PCB FootPrint + KSU Wczytaj odcisk płytki drukowanej z KiCad + + + + ksuToolsLoadFootprint + + + Load FootPrint + Wczytaj odcisk + + + + ksu Load KiCad PCB FootPrint + KSU Wczytaj odcisk płytki drukowanej z KiCad + + + + ksuToolsLoopSelection + + + ksu tools 'LoopSelection' +Loop selection on a xy outline + Wybierz narzędzie "Wybór pętli” +Wybierz pętlę na konturze xy. + + + + ksuToolsMakeCompound + + + Make Compound + Utwórz złożenie + + + + ksu Make a Compound of selected objects + KSU utworzy złożenie z wybranych obiektów + + + + ksuToolsMakeUnion + + + Make Union + Utworz scalenie + + + + ksu Make a Union of selected objects + KSU scali wybrane obiekty + + + + ksuToolsMergeSketches + + + Merge Sketches + Połacz szkice + + + + ksuToolsMoveSketch + + + Move Sketch + Przesuń szkic + + + + ksu Move 2D Sketch + KSU Przesuń szkic 2D + + + + ksuToolsMover + + + Manipulator tools 'Mover' + Narzędzia manipulacji "Przesuwacz" + + + + ksuToolsOffset2D + + + Offset 2D + Odsunięcie 2D + + + + ksu Offset 2D object + KSU Odsunięcie obiektu 2D + + + + ksuToolsOpenBoard + + + Load Board + Wczytaj płytkę + + + + ksu Load KiCad PCB Board and Parts + KSU załaduje płytę PCB i części z KiCad + + + + ksuToolsPullMoved + + + Pull 3D model(s) placement from PCB + Pobierz położenie modeli 3D z płytki PCB + + + + ksu Pull 3D model(s) placement from PCB + KSU pobierze położenie modeli 3D z płytki PCB + + + + ksuToolsPullPCB + + + Pull Sketch from PCB + Pobierz Szkiz z PCB + + + + ksu Pull Sketch from PCB Edge + KSU pobierze szkic z krawędzi PCB + + + + ksuToolsPushMoved + + + Push 3D moved model(s) to PCB + Zastosuj zmiany z modeli 3D do PCB + + + + ksu Push 3D moved model(s) to PCB + KSU zastosuje zmiany z modeli 3D do PCB + + + + ksuToolsPushPCB + + + Push Sketch to PCB + Zastosuj szkic na PCB + + + + ksu Push Sketch to PCB Edge + KSU zastosuje szkic na PCB + + + + ksuToolsReLinkBinder + + + Relink Binder + Przypisz łącznik + + + + Relink Binder object Select Binder and an Object to be linked + Przypisze ponownie łącznik. Wybierz łącznik oraz obiekt, który ma zostać połączony. + + + + ksuToolsRemoveFromTree + + + Remove from Tree + Usuń z drzewa + + + + ksu Remove Object(s) from Container Tree +keeping Placement +First Selection is the Container + KSU Usuń obiek(y z drzewa kontenera, +zachowując umiejscowienie. +Najpierw wybierz kontener. + + + + ksuToolsRemoveSubTree + + + Remove Sub Tree + Usuń pozycję z drzewa + + + + ksuToolsResetPartPlacement + + + Reset Part Placement + Resetuj umiejscowienie części + + + + ksu Reset Placement for all Part containers in selection + KSU zresetuje położenie dla wszystkich kontenerów części w zaznaczeniu. + + + + ksuToolsResetPlacement + + + Reset Placement + Resetuj umiejscowienie + + + + ksu Reset Placement for a Shape + KSU zresetuje umiejscowienie kształtu + + + + ksuToolsSimpleCopy + + + Simple Copy + Prosta kopia + + + + ksu Simple Copy object + KSU utworzy prostą kopię obiektu + + + + ksuToolsSimplifySketck + + + Simplify Sketch + Uprość szkic + + + + ksu Simplifying Sketch to Arcs and Lines + KSU uprości szkic do łuków i linii. + + + + ksuToolsSkValidate + + + ksu tools 'Sketcher Validate' +Validate selected Sketch + KSU Narzędzia: "Sprawdź poprawność szkicu" Sprawdź wybrany szkic. + + + + ksuToolsStepImportModeComp + + + disable Simplified STEP Import Mode + Wyłącz tryb uproszczonego importu plików STEP + + + + ksu tools disable Simplified STEP Import Mode + KSU wyłączy tryb uproszczonego importu plików STEP + + + + ksuToolsStepImportModeSTD + + + disable Full STEP Import Mode + Wyłącz tryb pełnego importu plików STEP + + + + ksu tools disable Full STEP Import Mode + KSU Narzędzia: Wyłącz tryb pełnego importu plików STEP + + + + ksuToolsSync3DModels + + + Sync 3D model(s) Ref & TimeStamps with PCB + Synchronizuj odniesienia 3D modeli i znaczniki czasu z PCB + + + + ksu Sync 3D model(s) Ref & TimeStamps +of the Selected 3D model with KiCad PCB + KSU zsynchronizuje odniesienia 3D modeli i znaczniki czasu z PCB KiCad + + + + ksuToolsToggleTreeView + + + Expand/Collapse Tree View + Zwiń / rozwiń Widok drzewa + + + + ksu tools Expand/Collapse Tree View + KSU Narzędzia: Zwiń / rozwiń Widok drzewa + + + + ksuToolsTransparencyToggle + + + Transparency Toggle + Przełącz przezroczystość + + + + ksu Selection Transparency Toggle + KSU Zaznaczenie: Przełącz przezroczystość + + + + ksuToolsTurnTable + + + TurnTable + TurnTable + + + + ksu TurnTable + KSU manipulator TurnTable + + + + ksuToolsUnion + + + Fuse objects + Scal obiekt + + + + Make Union (Fuse) objects + Utworzy scalenie (połączenie) obiektu + + + + ksuToolsVisibilityToggle + + + Visibility Toggle + Włącz / wyłącz widoczność + + + + ksu Selection Visibility Toggle + KSU Zaznaczenie: Przełącz widoczność + + + diff --git a/translations/update_translation.sh b/translations/update_translation.sh new file mode 100755 index 0000000..d073238 --- /dev/null +++ b/translations/update_translation.sh @@ -0,0 +1,125 @@ +#!/usr/bin/env bash + +# -------------------------------------------------------------------------------------------------- +# +# Update translation files +# +# Supported locales on FreeCAD <2024-01-20, FreeCADGui.supportedLocales(), total=40>: +# {'English': 'en', 'Afrikaans': 'af', 'Arabic': 'ar', 'Basque': 'eu', 'Belarusian': 'be', +# 'Bulgarian': 'bg', 'Catalan': 'ca', 'Chinese Simplified': 'zh-CN', +# 'Chinese Traditional': 'zh-TW', 'Croatian': 'hr', 'Czech': 'cs', 'Dutch': 'nl', +# 'Filipino': 'fil', 'Finnish': 'fi', 'French': 'fr', 'Galician': 'gl', 'Georgian': 'ka', +# 'German': 'de', 'Greek': 'el', 'Hungarian': 'hu', 'Indonesian': 'id', 'Italian': 'it', +# 'Japanese': 'ja', 'Kabyle': 'kab', 'Korean': 'ko', 'Lithuanian': 'lt', 'Norwegian': 'no', +# 'Polish': 'pl', 'Portuguese': 'pt-PT', 'Portuguese, Brazilian': 'pt-BR', 'Romanian': 'ro', +# 'Russian': 'ru', 'Serbian': 'sr', 'Serbian, Latin': 'sr-CS', 'Slovak': 'sk', +# 'Slovenian': 'sl', 'Spanish': 'es-ES', 'Spanish, Argentina': 'es-AR', 'Swedish': 'sv-SE', +# 'Turkish': 'tr', 'Ukrainian': 'uk', 'Valencian': 'val-ES', 'Vietnamese': 'vi'} +# +# NOTE: WORKFLOW +# 0. Install Qt tools +# Debian-based (e.g., Ubuntu): $ sudo apt-get install qttools5-dev-tools pyqt6-dev-tools +# Fedora-based: $ sudo dnf install qt6-linguist qt6-devel +# Arch-based: $ sudo pacman -S qt6-tools python-pyqt6 +# 1. Make the script executable +# $ chmod +x update_translation.sh +# 2. Execute the script passing the locale code as first parameter +# The script has to be executed within the `resources/translations` directory +# Only update the files you're translating! +# $ ./update_translation.sh es-ES +# 3. Do the translation via Qt Linguist and use `File>Release` +# 4. If releasing with the script execute the script passing the locale code as first parameter +# and use '-r' flag next +# $ ./update_translation.sh es-ES -r +# +# The usage of `pylupdate6` is preferred over 'pylupdate5' when extracting text strings from +# Python files. +# +# -------------------------------------------------------------------------------------------------- + +supported_locales=( + "en" "af" "ar" "eu" "be" "bg" "ca" "zh-CN" "zh-TW" "hr" + "cs" "nl" "fil" "fi" "fr" "gl" "ka" "de" "el" "hu" + "id" "it" "ja" "kab" "ko" "lt" "no" "pl" "pt-PT" "pt-BR" + "ro" "ru" "sr" "es-ES" "es-AR" "sv-SE" "tr" "uk" "val-ES" "vi" +) + +is_locale_supported() { + local locale="$1" + for supported_locale in "${supported_locales[@]}"; do + if [[ "$supported_locale" == "$locale" ]]; then + return 0 + fi + done + return 1 +} + +get_strings() { + # Get translatable strings from ../ui/*.ui Qt Designer files + lupdate ../Resources/ui/constrinator-v1.2.ui ../Resources/ui/explode.ui \ + ../Resources/ui/ksu_prefs.ui ../Resources/ui/STEP-preferences.ui \ + -ts uifiles.ts -no-obsolete + # Get translatable strings from ../../*.py Python files + # pylupdate5 -verbose ../*.py -ts pyfiles.ts + pylupdate6 ../InitGui.py ../hlp.py \ + ../kicadStepUptools.py ../kicadStepUpCMD.py \ + -ts pyfiles.ts +} + +delete_files() { + # Delete files that are no longer needed + rm uifiles.ts + rm pyfiles.ts + rm -f _${WB}.ts +} + +add_new_locale() { + echo -e "\033[1;33m\n\t<<< Creating '${WB}_${LOCALE}.ts' file >>>\n\033[m" + get_strings + # Join strings from Qt Designer and Python files into temp file + lconvert -i uifiles.ts pyfiles.ts -o _${WB}.ts + # Add generic file + lconvert -i _${WB}.ts -o ${WB}.ts + # Add specified locale file + lconvert -source-language en -target-language $LOCALE \ + -i _${WB}.ts -o ${WB}_${LOCALE}.ts +} + +update_locale() { + echo -e "\033[1;32m\n\t<<< Updating '${WB}_${LOCALE}.ts' file >>>\n\033[m" + get_strings + # Join strings from Qt Designer and Python files + lconvert -i uifiles.ts pyfiles.ts -o _${WB}.ts + # Join newly created file with older file (-no-obsolete) + # Update generic file + lconvert -i _${WB}.ts ${WB}.ts -o ${WB}.ts + # Update specified locale file + lconvert -source-language en -target-language $LOCALE \ + -i _${WB}.ts ${WB}_${LOCALE}.ts -o ${WB}_${LOCALE}.ts +} + +release_translation() { + # Release translation (creation of *.qm file from *.ts file) + lrelease ${WB}_${LOCALE}.ts +} + +# Main function ------------------------------------------------------------------------------------ + +WB="ksu" +LOCALE="$1" + +if is_locale_supported "$LOCALE"; then + if [ "$2" == "-r" ]; then + release_translation + else + if [ ! -f "${WB}_${LOCALE}.ts" ]; then + add_new_locale + else + update_locale + fi + delete_files + fi +else + echo "Verify your language code. Case sensitive." + echo "If it's correct ask a maintainer to add support for your language on FreeCAD." +fi