diff --git a/cMake/FindCoin3D.cmake b/cMake/FindCoin3D.cmake
index a8d68b7e45..22b901f38b 100644
--- a/cMake/FindCoin3D.cmake
+++ b/cMake/FindCoin3D.cmake
@@ -9,7 +9,7 @@
SET( COIN3D_FOUND "NO" )
IF (WIN32)
- IF (CYGWIN)
+ IF (CYGWIN OR MINGW)
FIND_PATH(COIN3D_INCLUDE_DIRS Inventor/So.h
${CMAKE_INCLUDE_PATH}
@@ -24,7 +24,7 @@ IF (WIN32)
/usr/local/lib
)
- ELSE (CYGWIN)
+ ELSE (CYGWIN OR MINGW)
FIND_PATH(COIN3D_INCLUDE_DIRS Inventor/So.h
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\SIM\\Coin3D\\2;Installation Path]/include"
diff --git a/data/examples/PartDesignExample.FCStd b/data/examples/PartDesignExample.FCStd
index 5288b4e7f9..8e5278bc54 100644
Binary files a/data/examples/PartDesignExample.FCStd and b/data/examples/PartDesignExample.FCStd differ
diff --git a/src/App/DocumentObjectPy.xml b/src/App/DocumentObjectPy.xml
index bc1493fc6c..f15f59399a 100644
--- a/src/App/DocumentObjectPy.xml
+++ b/src/App/DocumentObjectPy.xml
@@ -55,7 +55,7 @@
Register an expression for a property
-
+ Evaluate an expression
diff --git a/src/App/DocumentObjectPyImp.cpp b/src/App/DocumentObjectPyImp.cpp
index 450ef7e69a..6c72bb7ec1 100644
--- a/src/App/DocumentObjectPyImp.cpp
+++ b/src/App/DocumentObjectPyImp.cpp
@@ -346,15 +346,31 @@ PyObject* DocumentObjectPy::setExpression(PyObject * args)
Py_Return;
}
-PyObject* DocumentObjectPy::evalExpression(PyObject * args)
+PyObject* DocumentObjectPy::evalExpression(PyObject *self, PyObject * args)
{
const char *expr;
- if (!PyArg_ParseTuple(args, "s", &expr)) // convert args: Python->C
- return NULL; // NULL triggers exception
+ if (!PyArg_ParseTuple(args, "s", &expr))
+ return nullptr;
+
+ // HINT:
+ // The standard behaviour of Python for class methods is to always pass the class
+ // object as first argument.
+ // For FreeCAD-specific types the behaviour is a bit different:
+ // When calling this method for an instance then this is passed as first argument
+ // and otherwise the class object is passed.
+ // This behaviour is achieved by the function _getattr() that passed 'this' to
+ // PyCFunction_New().
+ //
+ // evalExpression() is a class method and thus 'self' can either be an instance of
+ // DocumentObjectPy or a type object.
+ App::DocumentObject* obj = nullptr;
+ if (self && PyObject_TypeCheck(self, &DocumentObjectPy::Type)) {
+ obj = static_cast(self)->getDocumentObjectPtr();
+ }
PY_TRY {
- std::shared_ptr shared_expr(Expression::parse(getDocumentObjectPtr(), expr));
- if(shared_expr)
+ std::shared_ptr shared_expr(Expression::parse(obj, expr));
+ if (shared_expr)
return Py::new_reference_to(shared_expr->getPyValue());
Py_Return;
} PY_CATCH
diff --git a/src/Ext/freecad/CMakeLists.txt b/src/Ext/freecad/CMakeLists.txt
index baf6df2e52..70aa6b7d9c 100644
--- a/src/Ext/freecad/CMakeLists.txt
+++ b/src/Ext/freecad/CMakeLists.txt
@@ -3,16 +3,18 @@ EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c
OUTPUT_VARIABLE python_libs OUTPUT_STRIP_TRAILING_WHITESPACE )
SET(PYTHON_MAIN_DIR ${python_libs})
-set(NAMESPACE_INIT "${CMAKE_BINARY_DIR}/Ext/freecad/__init__.py")
+set(NAMESPACE_DIR "${CMAKE_BINARY_DIR}/Ext/freecad")
+set(NAMESPACE_INIT "${NAMESPACE_DIR}/__init__.py")
if (WIN32)
- get_filename_component(FREECAD_LIBRARY_INSTALL_DIR "${CMAKE_INSTALL_BINDIR}"
+ get_filename_component(FREECAD_LIBRARY_INSTALL_DIR "${CMAKE_INSTALL_BINDIR}"
REALPATH BASE_DIR "${CMAKE_INSTALL_PREFIX}")
- set( ${CMAKE_INSTALL_BINDIR})
+ set( ${CMAKE_INSTALL_BINDIR})
else()
- set(FREECAD_LIBRARY_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR})
+ set(FREECAD_LIBRARY_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR})
endif()
configure_file(__init__.py.template ${NAMESPACE_INIT})
+configure_file(UiTools.py ${NAMESPACE_DIR}/UiTools.py)
if (INSTALL_TO_SITEPACKAGES)
SET(SITE_PACKAGE_DIR ${PYTHON_MAIN_DIR}/freecad)
@@ -23,6 +25,7 @@ endif()
INSTALL(
FILES
${NAMESPACE_INIT}
+ UiTools.py
DESTINATION
${SITE_PACKAGE_DIR}
)
diff --git a/src/Ext/freecad/UiTools.py b/src/Ext/freecad/UiTools.py
new file mode 100644
index 0000000000..aad94ebb04
--- /dev/null
+++ b/src/Ext/freecad/UiTools.py
@@ -0,0 +1,21 @@
+# (c) 2021 Werner Mayer LGPL
+
+from PySide2 import QtUiTools
+from PySide2 import QtCore
+import FreeCADGui as Gui
+
+
+class QUiLoader(QtUiTools.QUiLoader):
+ """
+ This is an extension of Qt's QUiLoader to also create custom widgets
+ """
+ def __init__(self, arg = None):
+ super(QUiLoader, self).__init__(arg)
+ self.ui = Gui.PySideUic
+
+ def createWidget(self, className, parent = None, name = ""):
+ widget = self.ui.createCustomWidget(className, parent, name)
+ if not widget:
+ widget = super(QUiLoader, self).createWidget(className, parent, name)
+ return widget
+
diff --git a/src/Gui/Application.cpp b/src/Gui/Application.cpp
index c93b2b6b03..6af9e09da9 100644
--- a/src/Gui/Application.cpp
+++ b/src/Gui/Application.cpp
@@ -69,6 +69,7 @@
#include "DocumentPy.h"
#include "View.h"
#include "View3DPy.h"
+#include "UiLoader.h"
#include "WidgetFactory.h"
#include "Command.h"
#include "Macro.h"
diff --git a/src/Gui/ApplicationPy.cpp b/src/Gui/ApplicationPy.cpp
index 61d636a63b..cf23554b0d 100644
--- a/src/Gui/ApplicationPy.cpp
+++ b/src/Gui/ApplicationPy.cpp
@@ -52,6 +52,7 @@
#include "SplitView3DInventor.h"
#include "ViewProvider.h"
#include "WaitCursor.h"
+#include "PythonWrapper.h"
#include "WidgetFactory.h"
#include "Workbench.h"
#include "WorkbenchManager.h"
diff --git a/src/Gui/CMakeLists.txt b/src/Gui/CMakeLists.txt
index e682cc825b..5cbdfe8b00 100644
--- a/src/Gui/CMakeLists.txt
+++ b/src/Gui/CMakeLists.txt
@@ -1032,6 +1032,8 @@ SET(Widget_CPP_SRCS
QuantitySpinBox.cpp
SpinBox.cpp
Splashscreen.cpp
+ PythonWrapper.cpp
+ UiLoader.cpp
WidgetFactory.cpp
Widgets.cpp
Window.cpp
@@ -1048,6 +1050,8 @@ SET(Widget_HPP_SRCS
QuantitySpinBox_p.h
SpinBox.h
Splashscreen.h
+ PythonWrapper.h
+ UiLoader.h
WidgetFactory.h
Widgets.h
Window.h
diff --git a/src/Gui/CommandPyImp.cpp b/src/Gui/CommandPyImp.cpp
index b705ec8149..332434ce65 100644
--- a/src/Gui/CommandPyImp.cpp
+++ b/src/Gui/CommandPyImp.cpp
@@ -31,7 +31,7 @@
#include "MainWindow.h"
#include "Selection.h"
#include "Window.h"
-#include "WidgetFactory.h"
+#include "PythonWrapper.h"
// inclusion of the generated files (generated out of AreaPy.xml)
#include "CommandPy.h"
diff --git a/src/Gui/DlgPreferencesImp.h b/src/Gui/DlgPreferencesImp.h
index 172baba36d..a785e178db 100644
--- a/src/Gui/DlgPreferencesImp.h
+++ b/src/Gui/DlgPreferencesImp.h
@@ -26,6 +26,7 @@
#include
#include
+#include
class QAbstractButton;
class QListWidgetItem;
diff --git a/src/Gui/ExpressionBindingPy.cpp b/src/Gui/ExpressionBindingPy.cpp
index 6899a59177..811bc77df7 100644
--- a/src/Gui/ExpressionBindingPy.cpp
+++ b/src/Gui/ExpressionBindingPy.cpp
@@ -25,7 +25,7 @@
#endif
#include "ExpressionBindingPy.h"
#include "ExpressionBinding.h"
-#include "WidgetFactory.h"
+#include "PythonWrapper.h"
#include "QuantitySpinBox.h"
#include "InputField.h"
#include
diff --git a/src/Gui/Language/FreeCAD.ts b/src/Gui/Language/FreeCAD.ts
index ef261795b9..a58cd26e31 100644
--- a/src/Gui/Language/FreeCAD.ts
+++ b/src/Gui/Language/FreeCAD.ts
@@ -3228,10 +3228,6 @@ You can also use the form: John Doe <john@doe.com>
Gui::Dialog::DlgSettingsLazyLoaded
-
- Unloaded Workbenches
-
- Workbench Name
@@ -3248,6 +3244,10 @@ You can also use the form: John Doe <john@doe.com>
<html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html>
+
+ Available Workbenches
+
+ Gui::Dialog::DlgSettingsLazyLoadedImp
@@ -4435,31 +4435,31 @@ The 'Status' column shows whether the document could be recovered.
- Around y-axis:
+ Pitch (around y-axis):
- Around z-axis:
+ Roll (around x-axis):
- Around x-axis:
+ Yaw (around z-axis):
- Rotation around the x-axis
+ Yaw (around z-axis)
- Rotation around the y-axis
+ Pitch (around y-axis)
- Rotation around the z-axis
+ Roll (around the x-axis)
- Euler angles (xy'z'')
+ Euler angles (zy'x'')
@@ -5973,6 +5973,18 @@ Do you want to specify another directory?
Vietnamese
+
+ Bulgarian
+
+
+
+ Greek
+
+
+
+ Spanish, Argentina
+
+ Gui::TreeDockWidget
@@ -6919,6 +6931,34 @@ Document:
Physical path:
+
+ Could not save document
+
+
+
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+
+
+
+ Document not saved
+
+
+
+ The document%1 could not be saved. Do you want to cancel closing it?
+
+
+
+ %1 Document(s) not saved
+
+
+
+ Some documents could not be saved. Do you want to cancel closing?
+
+ SelectionFilter
@@ -9719,6 +9759,10 @@ Do you still want to proceed?
Special Ops
+
+ Axonometric
+
+ testClass
diff --git a/src/Gui/Language/FreeCAD_ar.qm b/src/Gui/Language/FreeCAD_ar.qm
index 47decf0817..d24c3dd555 100644
Binary files a/src/Gui/Language/FreeCAD_ar.qm and b/src/Gui/Language/FreeCAD_ar.qm differ
diff --git a/src/Gui/Language/FreeCAD_ar.ts b/src/Gui/Language/FreeCAD_ar.ts
index b68313cc21..4ec442eff0 100644
--- a/src/Gui/Language/FreeCAD_ar.ts
+++ b/src/Gui/Language/FreeCAD_ar.ts
@@ -3293,10 +3293,6 @@ You can also use the form: John Doe <john@doe.com>
Gui::Dialog::DlgSettingsLazyLoaded
-
- Unloaded Workbenches
- Unloaded Workbenches
- Workbench NameWorkbench Name
@@ -3313,6 +3309,10 @@ You can also use the form: John Doe <john@doe.com>
<html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html><html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html>
+
+ Available Workbenches
+ Available Workbenches
+ Gui::Dialog::DlgSettingsLazyLoadedImp
@@ -4511,32 +4511,32 @@ The 'Status' column shows whether the document could be recovered.
Please select 1, 2, or 3 points before clicking this button. A point may be on a vertex, face, or edge. If on a face or edge the point used will be the point at the mouse position along face or edge. If 1 point is selected it will be used as the center of rotation. If 2 points are selected the midpoint between them will be the center of rotation and a new custom axis will be created, if needed. If 3 points are selected the first point becomes the center of rotation and lies on the vector that is normal to the plane defined by the 3 points. Some distance and angle information is provided in the report view, which can be useful when aligning objects. For your convenience when Shift + click is used the appropriate distance or angle is copied to the clipboard.
- Around y-axis:
- Around y-axis:
+ Pitch (around y-axis):
+ Pitch (around y-axis):
- Around z-axis:
- Around z-axis:
+ Roll (around x-axis):
+ Roll (around x-axis):
- Around x-axis:
- Around x-axis:
+ Yaw (around z-axis):
+ Yaw (around z-axis):
- Rotation around the x-axis
- Rotation around the x-axis
+ Yaw (around z-axis)
+ Yaw (around z-axis)
- Rotation around the y-axis
- Rotation around the y-axis
+ Pitch (around y-axis)
+ Pitch (around y-axis)
- Rotation around the z-axis
- Rotation around the z-axis
+ Roll (around the x-axis)
+ Roll (around the x-axis)
- Euler angles (xy'z'')
- Euler angles (xy'z'')
+ Euler angles (zy'x'')
+ Euler angles (zy'x'')
@@ -6062,6 +6062,18 @@ Do you want to specify another directory?
VietnameseVietnamese
+
+ Bulgarian
+ Bulgarian
+
+
+ Greek
+ اليونانية
+
+
+ Spanish, Argentina
+ Spanish, Argentina
+ Gui::TreeDockWidget
@@ -7026,6 +7038,38 @@ Physical path:
Physical path:
+
+ Could not save document
+ Could not save document
+
+
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+
+
+ Document not saved
+ Document not saved
+
+
+ The document%1 could not be saved. Do you want to cancel closing it?
+ The document%1 could not be saved. Do you want to cancel closing it?
+
+
+ %1 Document(s) not saved
+ %1 Document(s) not saved
+
+
+ Some documents could not be saved. Do you want to cancel closing?
+ Some documents could not be saved. Do you want to cancel closing?
+ SelectionFilter
@@ -9833,6 +9877,10 @@ Do you still want to proceed?
Special OpsSpecial Ops
+
+ Axonometric
+ Axonometric
+ testClass
diff --git a/src/Gui/Language/FreeCAD_bg.qm b/src/Gui/Language/FreeCAD_bg.qm
index 097ade43b4..ee62d33c90 100644
Binary files a/src/Gui/Language/FreeCAD_bg.qm and b/src/Gui/Language/FreeCAD_bg.qm differ
diff --git a/src/Gui/Language/FreeCAD_bg.ts b/src/Gui/Language/FreeCAD_bg.ts
index b2900f2f6b..15000a907d 100644
--- a/src/Gui/Language/FreeCAD_bg.ts
+++ b/src/Gui/Language/FreeCAD_bg.ts
@@ -3266,10 +3266,6 @@ You can also use the form: John Doe <john@doe.com>
Gui::Dialog::DlgSettingsLazyLoaded
-
- Unloaded Workbenches
- Unloaded Workbenches
- Workbench NameWorkbench Name
@@ -3286,6 +3282,10 @@ You can also use the form: John Doe <john@doe.com>
<html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html><html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html>
+
+ Available Workbenches
+ Available Workbenches
+ Gui::Dialog::DlgSettingsLazyLoadedImp
@@ -4484,32 +4484,32 @@ The 'Status' column shows whether the document could be recovered.
Please select 1, 2, or 3 points before clicking this button. A point may be on a vertex, face, or edge. If on a face or edge the point used will be the point at the mouse position along face or edge. If 1 point is selected it will be used as the center of rotation. If 2 points are selected the midpoint between them will be the center of rotation and a new custom axis will be created, if needed. If 3 points are selected the first point becomes the center of rotation and lies on the vector that is normal to the plane defined by the 3 points. Some distance and angle information is provided in the report view, which can be useful when aligning objects. For your convenience when Shift + click is used the appropriate distance or angle is copied to the clipboard.
- Around y-axis:
- Around y-axis:
+ Pitch (around y-axis):
+ Pitch (around y-axis):
- Around z-axis:
- Around z-axis:
+ Roll (around x-axis):
+ Roll (around x-axis):
- Around x-axis:
- Around x-axis:
+ Yaw (around z-axis):
+ Yaw (around z-axis):
- Rotation around the x-axis
- Rotation around the x-axis
+ Yaw (around z-axis)
+ Yaw (around z-axis)
- Rotation around the y-axis
- Rotation around the y-axis
+ Pitch (around y-axis)
+ Pitch (around y-axis)
- Rotation around the z-axis
- Rotation around the z-axis
+ Roll (around the x-axis)
+ Roll (around the x-axis)
- Euler angles (xy'z'')
- Euler angles (xy'z'')
+ Euler angles (zy'x'')
+ Euler angles (zy'x'')
@@ -6035,6 +6035,18 @@ Do you want to specify another directory?
VietnameseVietnamese
+
+ Bulgarian
+ Bulgarian
+
+
+ Greek
+ Гръцки
+
+
+ Spanish, Argentina
+ Spanish, Argentina
+ Gui::TreeDockWidget
@@ -6999,6 +7011,38 @@ Physical path:
Физически път:
+
+ Could not save document
+ Could not save document
+
+
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+
+
+ Document not saved
+ Document not saved
+
+
+ The document%1 could not be saved. Do you want to cancel closing it?
+ The document%1 could not be saved. Do you want to cancel closing it?
+
+
+ %1 Document(s) not saved
+ %1 Document(s) not saved
+
+
+ Some documents could not be saved. Do you want to cancel closing?
+ Some documents could not be saved. Do you want to cancel closing?
+ SelectionFilter
@@ -9806,6 +9850,10 @@ Do you still want to proceed?
Special OpsСпециални операции
+
+ Axonometric
+ Аксонометрия
+ testClass
diff --git a/src/Gui/Language/FreeCAD_ca.qm b/src/Gui/Language/FreeCAD_ca.qm
index 98fc5c754c..26b3ca064d 100644
Binary files a/src/Gui/Language/FreeCAD_ca.qm and b/src/Gui/Language/FreeCAD_ca.qm differ
diff --git a/src/Gui/Language/FreeCAD_ca.ts b/src/Gui/Language/FreeCAD_ca.ts
index 4ca7b9b6f1..bcf978ba2e 100644
--- a/src/Gui/Language/FreeCAD_ca.ts
+++ b/src/Gui/Language/FreeCAD_ca.ts
@@ -3285,10 +3285,6 @@ També podeu utilitzar la forma: Joan Peris <joan@peris.com>
Gui::Dialog::DlgSettingsLazyLoaded
-
- Unloaded Workbenches
- Bancs de treball no carregats
- Workbench NameWorkbench Name
@@ -3305,6 +3301,10 @@ També podeu utilitzar la forma: Joan Peris <joan@peris.com>
<html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html><html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html>
+
+ Available Workbenches
+ Available Workbenches
+ Gui::Dialog::DlgSettingsLazyLoadedImp
@@ -4500,32 +4500,32 @@ La columna 'Estat' mostra si el document es pot recuperar.
Seleccioneu 1, 2 o 3 punts abans de fer clic en aquest botó. Un punt pot estar en un vèrtex, cara o aresta. Si esteu en una cara o aresta, el punt utilitzat serà el punt en la cara o aresta de la posició del ratolí. Si 1 punt és seleccionat serà utilitzat com a centre de rotació. Si se seleccionen 2 punts, el punt mig entre ells serà el centre de rotació i un nou eix personalitzat es crearà, si és necessari. Si se seleccionen 3 punts, el primer punt es converteix en el centre de rotació i es troba en el vector que és normal al pla definit per 3 punts. Alguns detalls de distància i angle es proporcionen en la visualització d'informe, que pot ser útil per a alinear objectes. Per a la vostra comoditat, quan feu Majúscules + clic s'utilitza la distància adequada o l'angle es copia al porta-retalls.
- Around y-axis:
- Al voltant de l'eix Y:
+ Pitch (around y-axis):
+ Pitch (around y-axis):
- Around z-axis:
- Al voltant de l'eix Z:
+ Roll (around x-axis):
+ Roll (around x-axis):
- Around x-axis:
- Al voltant de l'eix X:
+ Yaw (around z-axis):
+ Yaw (around z-axis):
- Rotation around the x-axis
- Rotació al voltant de l'eix X
+ Yaw (around z-axis)
+ Yaw (around z-axis)
- Rotation around the y-axis
- Rotació al voltant de l'eix Y
+ Pitch (around y-axis)
+ Pitch (around y-axis)
- Rotation around the z-axis
- Rotació al voltant de l'eix Z
+ Roll (around the x-axis)
+ Roll (around the x-axis)
- Euler angles (xy'z'')
- Angles d'Euler (xy'z'')
+ Euler angles (zy'x'')
+ Euler angles (zy'x'')
@@ -6043,6 +6043,18 @@ Do you want to specify another directory?
VietnameseVietnamita
+
+ Bulgarian
+ Bulgarian
+
+
+ Greek
+ Grec
+
+
+ Spanish, Argentina
+ Spanish, Argentina
+ Gui::TreeDockWidget
@@ -7001,6 +7013,38 @@ Physical path:
Ruta física:
+
+ Could not save document
+ Could not save document
+
+
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+
+
+ Document not saved
+ Document not saved
+
+
+ The document%1 could not be saved. Do you want to cancel closing it?
+ The document%1 could not be saved. Do you want to cancel closing it?
+
+
+ %1 Document(s) not saved
+ %1 Document(s) not saved
+
+
+ Some documents could not be saved. Do you want to cancel closing?
+ Some documents could not be saved. Do you want to cancel closing?
+ SelectionFilter
@@ -9808,6 +9852,10 @@ Encara voleu continuar?
Special OpsOperacions especials
+
+ Axonometric
+ Axonomètrica
+ testClass
diff --git a/src/Gui/Language/FreeCAD_cs.qm b/src/Gui/Language/FreeCAD_cs.qm
index adef8c6075..5ec8c04e7d 100644
Binary files a/src/Gui/Language/FreeCAD_cs.qm and b/src/Gui/Language/FreeCAD_cs.qm differ
diff --git a/src/Gui/Language/FreeCAD_cs.ts b/src/Gui/Language/FreeCAD_cs.ts
index ab149f73ef..01a2c19930 100644
--- a/src/Gui/Language/FreeCAD_cs.ts
+++ b/src/Gui/Language/FreeCAD_cs.ts
@@ -3286,10 +3286,6 @@ You can also use the form: John Doe <john@doe.com>
Gui::Dialog::DlgSettingsLazyLoaded
-
- Unloaded Workbenches
- Unloaded Workbenches
- Workbench NameWorkbench Name
@@ -3306,6 +3302,10 @@ You can also use the form: John Doe <john@doe.com>
<html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html><html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html>
+
+ Available Workbenches
+ Available Workbenches
+ Gui::Dialog::DlgSettingsLazyLoadedImp
@@ -4504,32 +4504,32 @@ Sloupec "Status" ukazuje zda je možné dokument obnovit.
Před stisknutím tohoto tlačítka prosím vyberte 1, 2 nebo 3 body. Bod může být na vrcholu, ploše nebo hraně. Je-li na ploše nebo hraně, pak bude použit bod na pozici myši podél plochy nebo hrany. Je-li vybrán 1 bod, pak bude použit jako střed rotace. Jsou-li vybrány 2 body, pak bude střední bod mezi nimi středem rotace a bude vytvořena nová uživatelská osa, je-li potřeba. Jsou-li vybrány 3 body, první bod bude středem rotace a bude podél vektoru, který je normálou roviny dané třemi body. Vzdálenost a úhlová informace jsou v zobrazení reportu, což může být užitečné pro zarovnání objektů. Příslušnou vzdálenost a úhel je možné zkopírovat do schánky kliknutím se Shiftem.
- Around y-axis:
- Kolem osy y:
+ Pitch (around y-axis):
+ Pitch (around y-axis):
- Around z-axis:
- Kolem osy z:
+ Roll (around x-axis):
+ Roll (around x-axis):
- Around x-axis:
- Kolem osy x:
+ Yaw (around z-axis):
+ Yaw (around z-axis):
- Rotation around the x-axis
- Otáčení kolem osy x
+ Yaw (around z-axis)
+ Yaw (around z-axis)
- Rotation around the y-axis
- Otáčení kolem osy y
+ Pitch (around y-axis)
+ Pitch (around y-axis)
- Rotation around the z-axis
- Otáčení kolem osy z
+ Roll (around the x-axis)
+ Roll (around the x-axis)
- Euler angles (xy'z'')
- Eulerovy úhly (xy'z")
+ Euler angles (zy'x'')
+ Euler angles (zy'x'')
@@ -6051,6 +6051,18 @@ Do you want to specify another directory?
VietnameseVietnamština
+
+ Bulgarian
+ Bulgarian
+
+
+ Greek
+ Řečtina
+
+
+ Spanish, Argentina
+ Spanish, Argentina
+ Gui::TreeDockWidget
@@ -7014,6 +7026,38 @@ Physical path:
Fyzická cesta:
+
+ Could not save document
+ Could not save document
+
+
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+
+
+ Document not saved
+ Document not saved
+
+
+ The document%1 could not be saved. Do you want to cancel closing it?
+ The document%1 could not be saved. Do you want to cancel closing it?
+
+
+ %1 Document(s) not saved
+ %1 Document(s) not saved
+
+
+ Some documents could not be saved. Do you want to cancel closing?
+ Some documents could not be saved. Do you want to cancel closing?
+ SelectionFilter
@@ -9821,6 +9865,10 @@ Do you still want to proceed?
Special OpsSpeciální operace
+
+ Axonometric
+ Axonometrický
+ testClass
diff --git a/src/Gui/Language/FreeCAD_de.qm b/src/Gui/Language/FreeCAD_de.qm
index b904288bc0..51ae74ebbc 100644
Binary files a/src/Gui/Language/FreeCAD_de.qm and b/src/Gui/Language/FreeCAD_de.qm differ
diff --git a/src/Gui/Language/FreeCAD_de.ts b/src/Gui/Language/FreeCAD_de.ts
index c85b156562..7487f3443e 100644
--- a/src/Gui/Language/FreeCAD_de.ts
+++ b/src/Gui/Language/FreeCAD_de.ts
@@ -3274,10 +3274,6 @@ Sie können auch das Formular verwenden: John Doe <john@doe.com>
Gui::Dialog::DlgSettingsLazyLoaded
-
- Unloaded Workbenches
- Nicht geladene Arbeitsbereiche
- Workbench NameName des Arbeitsbereichs
@@ -3294,6 +3290,10 @@ Sie können auch das Formular verwenden: John Doe <john@doe.com><html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html>
<html><head/><body><p>Um Ressourcen zu schonen, lädt FreeCAD keine Arbeitsbereiche solange sie nicht verwendet werden. Wenn sie geladen werden, können sie Zugriff auf weitere Einstellungen bezüglich ihrer Funktionalität freigeben.</p><p>Die folgenden Arbeitsbereiche sind in Ihrer Installation verfügbar:</p></body></html>
+
+ Available Workbenches
+ Available Workbenches
+ Gui::Dialog::DlgSettingsLazyLoadedImp
@@ -4490,32 +4490,32 @@ The 'Status' column shows whether the document could be recovered.
Bitte wählen Sie 1, 2 oder 3 Punkte, bevor Sie auf diese Schaltfläche klicken. Ein Punkt kann sich auf einem Scheitelpunkt, einer Fläche oder einer Kante befinden. Der verwendete Punkt auf einer Fläche oder Kante ist derjenige Punkt, der sich an der Mausposition entlang der Fläche oder Kante befindet. Wenn 1 Punkt ausgewählt ist, wird dieser als Drehpunkt verwendet. Wenn zwei Punkte ausgewählt werden, ist der Mittelpunkt zwischen ihnen der Drehpunkt und falls erforderlich, wird eine neue benutzerdefinierte Achse erstellt. Wenn 3 Punkte ausgewählt werden, wird der erste Punkt zum Drehpunkt und liegt auf dem Vektor, der senkrecht zu der durch die 3 Punkte definierten Ebene liegt. In der Berichtansicht werden einige Entfernungs- und Winkelinformationen bereitgestellt, die beim Ausrichten von Objekten hilfreich sein können. Wenn Sie bei gedrückter Umschalttaste + klicken, wird der entsprechende Abstand oder Winkel in die Zwischenablage kopiert.
- Around y-axis:
- Um die y-Achse:
+ Pitch (around y-axis):
+ Pitch (around y-axis):
- Around z-axis:
- Um die z-Achse:
+ Roll (around x-axis):
+ Roll (around x-axis):
- Around x-axis:
- Um die x-Achse:
+ Yaw (around z-axis):
+ Yaw (around z-axis):
- Rotation around the x-axis
- Drehen um die x-Achse
+ Yaw (around z-axis)
+ Yaw (around z-axis)
- Rotation around the y-axis
- Drehen um die y-Achse
+ Pitch (around y-axis)
+ Pitch (around y-axis)
- Rotation around the z-axis
- Drehung um die z-Achse
+ Roll (around the x-axis)
+ Roll (around the x-axis)
- Euler angles (xy'z'')
- Eulersche Winkel (xy'z'')
+ Euler angles (zy'x'')
+ Euler angles (zy'x'')
@@ -4685,8 +4685,9 @@ The 'Status' column shows whether the document could be recovered.
Ignore dependencies and proceed with objects
originally selected prior to opening this dialog
- Ignore dependencies and proceed with objects
-originally selected prior to opening this dialog
+ Abhängigkeiten ignorieren und mit Objekten
+fortfahren die ursprünglich vor dem Öffnen
+dieses Dialogs ausgewählt wurden
@@ -6040,6 +6041,18 @@ Möchten Sie ein anderes Verzeichnis angeben?
VietnameseVietnamesisch
+
+ Bulgarian
+ Bulgarian
+
+
+ Greek
+ Griechisch
+
+
+ Spanish, Argentina
+ Spanish, Argentina
+ Gui::TreeDockWidget
@@ -7004,6 +7017,38 @@ Physical path:
Physischer Pfad:
+
+ Could not save document
+ Could not save document
+
+
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+
+
+ Document not saved
+ Document not saved
+
+
+ The document%1 could not be saved. Do you want to cancel closing it?
+ The document%1 could not be saved. Do you want to cancel closing it?
+
+
+ %1 Document(s) not saved
+ %1 Document(s) not saved
+
+
+ Some documents could not be saved. Do you want to cancel closing?
+ Some documents could not be saved. Do you want to cancel closing?
+ SelectionFilter
@@ -8780,7 +8825,7 @@ Physischer Pfad:
StdCmdUserEditModeEdit mode
- Edit mode
+ BearbeitungsmodusDefines behavior when editing an object from tree
@@ -9811,6 +9856,10 @@ Möchten Sie trotzdem fortfahren?
Special OpsSpezialfunktionen
+
+ Axonometric
+ Axonometrisch
+ testClass
diff --git a/src/Gui/Language/FreeCAD_el.qm b/src/Gui/Language/FreeCAD_el.qm
index b67377e769..a9e18ee155 100644
Binary files a/src/Gui/Language/FreeCAD_el.qm and b/src/Gui/Language/FreeCAD_el.qm differ
diff --git a/src/Gui/Language/FreeCAD_el.ts b/src/Gui/Language/FreeCAD_el.ts
index 242d9a63db..679a2de28a 100644
--- a/src/Gui/Language/FreeCAD_el.ts
+++ b/src/Gui/Language/FreeCAD_el.ts
@@ -3292,10 +3292,6 @@ You can also use the form: John Doe <john@doe.com>
Gui::Dialog::DlgSettingsLazyLoaded
-
- Unloaded Workbenches
- Unloaded Workbenches
- Workbench NameWorkbench Name
@@ -3312,6 +3308,10 @@ You can also use the form: John Doe <john@doe.com>
<html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html><html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html>
+
+ Available Workbenches
+ Available Workbenches
+ Gui::Dialog::DlgSettingsLazyLoadedImp
@@ -4510,32 +4510,32 @@ The 'Status' column shows whether the document could be recovered.
Please select 1, 2, or 3 points before clicking this button. A point may be on a vertex, face, or edge. If on a face or edge the point used will be the point at the mouse position along face or edge. If 1 point is selected it will be used as the center of rotation. If 2 points are selected the midpoint between them will be the center of rotation and a new custom axis will be created, if needed. If 3 points are selected the first point becomes the center of rotation and lies on the vector that is normal to the plane defined by the 3 points. Some distance and angle information is provided in the report view, which can be useful when aligning objects. For your convenience when Shift + click is used the appropriate distance or angle is copied to the clipboard.
- Around y-axis:
- Around y-axis:
+ Pitch (around y-axis):
+ Pitch (around y-axis):
- Around z-axis:
- Around z-axis:
+ Roll (around x-axis):
+ Roll (around x-axis):
- Around x-axis:
- Around x-axis:
+ Yaw (around z-axis):
+ Yaw (around z-axis):
- Rotation around the x-axis
- Rotation around the x-axis
+ Yaw (around z-axis)
+ Yaw (around z-axis)
- Rotation around the y-axis
- Rotation around the y-axis
+ Pitch (around y-axis)
+ Pitch (around y-axis)
- Rotation around the z-axis
- Rotation around the z-axis
+ Roll (around the x-axis)
+ Roll (around the x-axis)
- Euler angles (xy'z'')
- Euler angles (xy'z'')
+ Euler angles (zy'x'')
+ Euler angles (zy'x'')
@@ -6060,6 +6060,18 @@ Do you want to specify another directory?
VietnameseVietnamese
+
+ Bulgarian
+ Bulgarian
+
+
+ Greek
+ Ελληνικά
+
+
+ Spanish, Argentina
+ Spanish, Argentina
+ Gui::TreeDockWidget
@@ -7025,6 +7037,38 @@ Physical path:
Physical path:
+
+ Could not save document
+ Could not save document
+
+
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+
+
+ Document not saved
+ Document not saved
+
+
+ The document%1 could not be saved. Do you want to cancel closing it?
+ The document%1 could not be saved. Do you want to cancel closing it?
+
+
+ %1 Document(s) not saved
+ %1 Document(s) not saved
+
+
+ Some documents could not be saved. Do you want to cancel closing?
+ Some documents could not be saved. Do you want to cancel closing?
+ SelectionFilter
@@ -9832,6 +9876,10 @@ Do you still want to proceed;
Special OpsΕιδικές Λειτουργίες
+
+ Axonometric
+ Αξονομετρική
+ testClass
diff --git a/src/Gui/Language/FreeCAD_es-AR.qm b/src/Gui/Language/FreeCAD_es-AR.qm
index 1f3cf6b3dd..3e337d3823 100644
Binary files a/src/Gui/Language/FreeCAD_es-AR.qm and b/src/Gui/Language/FreeCAD_es-AR.qm differ
diff --git a/src/Gui/Language/FreeCAD_es-AR.ts b/src/Gui/Language/FreeCAD_es-AR.ts
index 1f2a125f97..3a42d849b9 100644
--- a/src/Gui/Language/FreeCAD_es-AR.ts
+++ b/src/Gui/Language/FreeCAD_es-AR.ts
@@ -3284,10 +3284,6 @@ También puede utilizar el formulario: John Doe <john@doe.com>
Gui::Dialog::DlgSettingsLazyLoaded
-
- Unloaded Workbenches
- Bancos de trabajo descargados
- Workbench NameNombre del banco de trabajo
@@ -3304,6 +3300,10 @@ También puede utilizar el formulario: John Doe <john@doe.com><html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html>
<html><head/><body><p>Para ahorrarrecursos, FreeCAD no carga los bancos de trabajo hasta que se usen. Cargarlos puede proporcionar acceso a preferencias adicionales relacionadas con su funcionalidad.</p><p>Los siguientes bancos de trabajo están disponibles en su instalación:</p></body></html>
+
+ Available Workbenches
+ Available Workbenches
+ Gui::Dialog::DlgSettingsLazyLoadedImp
@@ -4500,32 +4500,32 @@ La columna 'Estado' muestra si el documento puede ser recuperado.
Por favor, seleccione 1, 2 o 3 puntos antes de hacer clic en este botón. Un punto puede estar en un vértice, cara o arista. Si en una cara o arista, el punto utilizado será el punto en la posición del mouse a lo largo de la cara o la arista. Si se selecciona 1 punto, se utilizará como centro de rotación. Si se seleccionan 2 puntos, el punto medio entre ellos será el centro de rotación y, si es necesario, se creará un nuevo eje personalizado. Si se seleccionan 3 puntos, el primer punto se convierte en el centro de rotación y se encuentra en el vector que es normal al plano definido por los 3 puntos. Se proporciona cierta información de distancia y ángulo en la vista de reporte, que puede ser útil al alinear objetos. Para su comodidad, cuando se usa la tecla Mayús + clic, la distancia o el ángulo apropiados se copian en el portapapeles.
- Around y-axis:
- Alrededor del eje Y:
+ Pitch (around y-axis):
+ Pitch (around y-axis):
- Around z-axis:
- Alrededor del eje Z:
+ Roll (around x-axis):
+ Roll (around x-axis):
- Around x-axis:
- Alrededor del eje X:
+ Yaw (around z-axis):
+ Yaw (around z-axis):
- Rotation around the x-axis
- Rotación alrededor del eje x
+ Yaw (around z-axis)
+ Yaw (around z-axis)
- Rotation around the y-axis
- Rotación alrededor del eje y
+ Pitch (around y-axis)
+ Pitch (around y-axis)
- Rotation around the z-axis
- Rotación alrededor del eje z
+ Roll (around the x-axis)
+ Roll (around the x-axis)
- Euler angles (xy'z'')
- Ángulos de Euler (xy'z'')
+ Euler angles (zy'x'')
+ Euler angles (zy'x'')
@@ -4690,13 +4690,12 @@ La columna 'Estado' muestra si el documento puede ser recuperado.
&Use Original Selections
- &Use Original Selections
+ &Usar las Selecciones OriginalesIgnore dependencies and proceed with objects
originally selected prior to opening this dialog
- Ignore dependencies and proceed with objects
-originally selected prior to opening this dialog
+ Ignorar lo precedente y continuar con los objetos seleccionados con prioridad a la apertura de este dialogo
@@ -6048,6 +6047,18 @@ Do you want to specify another directory?
VietnameseVietnamita
+
+ Bulgarian
+ Bulgarian
+
+
+ Greek
+ Griego
+
+
+ Spanish, Argentina
+ Spanish, Argentina
+ Gui::TreeDockWidget
@@ -7009,6 +7020,38 @@ Physical path:
Trayectoria física:
+
+ Could not save document
+ Could not save document
+
+
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+
+
+ Document not saved
+ Document not saved
+
+
+ The document%1 could not be saved. Do you want to cancel closing it?
+ The document%1 could not be saved. Do you want to cancel closing it?
+
+
+ %1 Document(s) not saved
+ %1 Document(s) not saved
+
+
+ Some documents could not be saved. Do you want to cancel closing?
+ Some documents could not be saved. Do you want to cancel closing?
+ SelectionFilter
@@ -8785,11 +8828,11 @@ Trayectoria física:
StdCmdUserEditModeEdit mode
- Edit mode
+ Modo ediciónDefines behavior when editing an object from tree
- Defines behavior when editing an object from tree
+ Determina el comportamiento cuando se edita un objeto del árbol
@@ -9816,6 +9859,10 @@ Por favor, compruebe la Vista de Reportes para más detalles.
Special OpsOperaciones especiales
+
+ Axonometric
+ Axonométrica
+ testClass
diff --git a/src/Gui/Language/FreeCAD_es-ES.qm b/src/Gui/Language/FreeCAD_es-ES.qm
index 4a4237fe9a..f17cc722b0 100644
Binary files a/src/Gui/Language/FreeCAD_es-ES.qm and b/src/Gui/Language/FreeCAD_es-ES.qm differ
diff --git a/src/Gui/Language/FreeCAD_es-ES.ts b/src/Gui/Language/FreeCAD_es-ES.ts
index 388c753e09..4d356fd898 100644
--- a/src/Gui/Language/FreeCAD_es-ES.ts
+++ b/src/Gui/Language/FreeCAD_es-ES.ts
@@ -3286,10 +3286,6 @@ También puede utilizar el formulario: John Doe <john@doe.com>
Gui::Dialog::DlgSettingsLazyLoaded
-
- Unloaded Workbenches
- Bancos de trabajo descargados
- Workbench NameNombre del banco de trabajo
@@ -3306,6 +3302,10 @@ También puede utilizar el formulario: John Doe <john@doe.com><html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html>
<html><head/><body><p>Para preservar recursos, FreeCAD no carga los bancos de trabajo hasta que se usen. Cargarlos puede proporcionar acceso a preferencias adicionales relacionadas con su funcionalidad.</p><p>Los siguientes bancos de trabajo están disponibles en su instalación:</p></body></html>
+
+ Available Workbenches
+ Available Workbenches
+ Gui::Dialog::DlgSettingsLazyLoadedImp
@@ -4502,32 +4502,32 @@ La columna 'Estado' muestra si el documento puede ser recuperado.
Por favor, seleccione 1, 2 o 3 puntos antes de hacer clic en este botón. Un punto puede estar en un vértice, cara o arista. Si en una cara o arista, el punto utilizado será el punto en la posición del mouse a lo largo de la cara o la arista. Si se selecciona 1 punto, se utilizará como centro de rotación. Si se seleccionan 2 puntos, el punto medio entre ellos será el centro de rotación y, si es necesario, se creará un nuevo eje personalizado. Si se seleccionan 3 puntos, el primer punto se convierte en el centro de rotación y se encuentra en el vector que es normal al plano definido por los 3 puntos. Se proporciona cierta información de distancia y ángulo en la vista de reporte, que puede ser útil al alinear objetos. Para su comodidad, cuando se usa la tecla Mayús + clic, la distancia o el ángulo apropiados se copian en el portapapeles.
- Around y-axis:
- Alrededor del eje Y-:
+ Pitch (around y-axis):
+ Pitch (around y-axis):
- Around z-axis:
- Alrededor del eje Z:
+ Roll (around x-axis):
+ Roll (around x-axis):
- Around x-axis:
- Alrededor del eje X:
+ Yaw (around z-axis):
+ Yaw (around z-axis):
- Rotation around the x-axis
- Rotación alrededor del eje x
+ Yaw (around z-axis)
+ Yaw (around z-axis)
- Rotation around the y-axis
- Rotación alrededor del eje y
+ Pitch (around y-axis)
+ Pitch (around y-axis)
- Rotation around the z-axis
- Rotación alrededor del eje z
+ Roll (around the x-axis)
+ Roll (around the x-axis)
- Euler angles (xy'z'')
- Ángulos de Euler (xy'z'')
+ Euler angles (zy'x'')
+ Euler angles (zy'x'')
@@ -4692,13 +4692,12 @@ La columna 'Estado' muestra si el documento puede ser recuperado.
&Use Original Selections
- &Use Original Selections
+ &Usar las Selecciones OriginalesIgnore dependencies and proceed with objects
originally selected prior to opening this dialog
- Ignore dependencies and proceed with objects
-originally selected prior to opening this dialog
+ Ignorar lo precedente y continuar con los objetos seleccionados con prioridad a la apertura de este dialogo
@@ -6050,6 +6049,18 @@ Do you want to specify another directory?
VietnameseVietnamita
+
+ Bulgarian
+ Bulgarian
+
+
+ Greek
+ Griego
+
+
+ Spanish, Argentina
+ Spanish, Argentina
+ Gui::TreeDockWidget
@@ -7011,6 +7022,38 @@ Physical path:
Trayectoria física:
+
+ Could not save document
+ Could not save document
+
+
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+
+
+ Document not saved
+ Document not saved
+
+
+ The document%1 could not be saved. Do you want to cancel closing it?
+ The document%1 could not be saved. Do you want to cancel closing it?
+
+
+ %1 Document(s) not saved
+ %1 Document(s) not saved
+
+
+ Some documents could not be saved. Do you want to cancel closing?
+ Some documents could not be saved. Do you want to cancel closing?
+ SelectionFilter
@@ -8787,11 +8830,11 @@ Trayectoria física:
StdCmdUserEditModeEdit mode
- Edit mode
+ Modo ediciónDefines behavior when editing an object from tree
- Defines behavior when editing an object from tree
+ Determina el comportamiento cuando se edita un objeto del árbol
@@ -9818,6 +9861,10 @@ Por favor, compruebe la Vista de Reportes para más detalles.
Special OpsOperaciones especiales
+
+ Axonometric
+ Axonométrica
+ testClass
diff --git a/src/Gui/Language/FreeCAD_eu.qm b/src/Gui/Language/FreeCAD_eu.qm
index 9bbd9255e9..1fb1569dbe 100644
Binary files a/src/Gui/Language/FreeCAD_eu.qm and b/src/Gui/Language/FreeCAD_eu.qm differ
diff --git a/src/Gui/Language/FreeCAD_eu.ts b/src/Gui/Language/FreeCAD_eu.ts
index 3d04b76fcc..b1c79c3b82 100644
--- a/src/Gui/Language/FreeCAD_eu.ts
+++ b/src/Gui/Language/FreeCAD_eu.ts
@@ -3293,10 +3293,6 @@ Honako forma ere erabili dezakezu: Jon Inor <jon@inor.com>
Gui::Dialog::DlgSettingsLazyLoaded
-
- Unloaded Workbenches
- Deskargatutako lan-mahaiak
- Workbench NameLan-mahaiaren izena
@@ -3313,6 +3309,10 @@ Honako forma ere erabili dezakezu: Jon Inor <jon@inor.com>
<html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html><html><head/><body><p>Baliabideak aurrezteko, FreeCADek ez ditu laneko mahaiak kargatzen haiek erabili nahi diren arte. Kargatzen direnean, haien funtzionaltasunari lotutako hobespen gehigarriak agertuko dira.</p><p>Honako laneko mahaiak daude erabilgarri zure instalazioan:</p></body></html>
+
+ Available Workbenches
+ Available Workbenches
+ Gui::Dialog::DlgSettingsLazyLoadedImp
@@ -3334,7 +3334,7 @@ Honako forma ere erabili dezakezu: Jon Inor <jon@inor.com>
This is the current startup module, and must be autoloaded. See Preferences/General/Autoload to change.
- This is the current startup module, and must be autoloaded. See Preferences/General/Autoload to change.
+ Uneko abioko modulua da hau, eta automatikoki kargatu behar da. Ikusi 'Hobespenak - Orokorra - Automatikoki kargatu' hura aldatzeko.Loaded
@@ -4511,32 +4511,32 @@ The 'Status' column shows whether the document could be recovered.
Hautatu 1, 2 edo 3 puntu botoi hau sakatu baino lehen. Puntuak erpin batean, aurpegi batean edo ertz batean egon daitezke. Aurpegi edo ertz batean badago, erabiliko den puntua saguak aurpegian edo ertzean duen kokapenaren puntua izango da. Puntu bat hautatzen bada, biraketa-zentro gisa erabiliko da. Bi puntu hautatzen badira, bien arteko erdiko puntua izango da biraketa-zentroa eta ardatz pertsonalizatu berria sortuko da, beharrezkoa bada. Hiru puntu hautatzen badira, lehen puntua biraketa-zentroa izango da eta hiru puntuek definitutako planoarekiko normala den bektorean egongo da. Txosten-bistak distantziari eta angeluari buruzko informazioa ematen du. Informazio hori erabilgarria izan daiteke objektuak lerrokatzean. Shift + klik erabiltzen denean, distantzia edo angelu egokia arbelera kopiatuko da.
- Around y-axis:
- Y ardatzaren inguruan:
+ Pitch (around y-axis):
+ Pitch (around y-axis):
- Around z-axis:
- Z ardatzaren inguruan:
+ Roll (around x-axis):
+ Roll (around x-axis):
- Around x-axis:
- X ardatzaren inguruan:
+ Yaw (around z-axis):
+ Yaw (around z-axis):
- Rotation around the x-axis
- Biraketa X ardatzaren inguruan
+ Yaw (around z-axis)
+ Yaw (around z-axis)
- Rotation around the y-axis
- Biraketa Y ardatzaren inguruan
+ Pitch (around y-axis)
+ Pitch (around y-axis)
- Rotation around the z-axis
- Biraketa Z ardatzaren inguruan
+ Roll (around the x-axis)
+ Roll (around the x-axis)
- Euler angles (xy'z'')
- Euler angeluak (xy'z'')
+ Euler angles (zy'x'')
+ Euler angles (zy'x'')
@@ -4701,13 +4701,14 @@ The 'Status' column shows whether the document could be recovered.
&Use Original Selections
- &Use Original Selections
+ Erabili &jatorrizko hautapenakIgnore dependencies and proceed with objects
originally selected prior to opening this dialog
- Ignore dependencies and proceed with objects
-originally selected prior to opening this dialog
+ Ez ikusiarena egin mendekotasunei eta jarraitu
+elkarrizketa-koadro hau ireki baino lehen jatorriz
+hautatutako objektuekin
@@ -6062,6 +6063,18 @@ Beste direktorio bat aukeratu nahi al duzu?
VietnameseVietnamiera
+
+ Bulgarian
+ Bulgarian
+
+
+ Greek
+ Greziera
+
+
+ Spanish, Argentina
+ Spanish, Argentina
+ Gui::TreeDockWidget
@@ -7026,6 +7039,38 @@ Physical path:
Bide-izen fisikoa:
+
+ Could not save document
+ Could not save document
+
+
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+
+
+ Document not saved
+ Document not saved
+
+
+ The document%1 could not be saved. Do you want to cancel closing it?
+ The document%1 could not be saved. Do you want to cancel closing it?
+
+
+ %1 Document(s) not saved
+ %1 Document(s) not saved
+
+
+ Some documents could not be saved. Do you want to cancel closing?
+ Some documents could not be saved. Do you want to cancel closing?
+ SelectionFilter
@@ -8802,11 +8847,11 @@ Bide-izen fisikoa:
StdCmdUserEditModeEdit mode
- Edit mode
+ Edizio moduaDefines behavior when editing an object from tree
- Defines behavior when editing an object from tree
+ Zuhaitzeko objektu bat editatzean izango den portaera definitzen du
@@ -9833,6 +9878,10 @@ Jarraitu nahi al duzu?
Special OpsEragiketa bereziak
+
+ Axonometric
+ Axonometrikoa
+ testClass
diff --git a/src/Gui/Language/FreeCAD_fi.qm b/src/Gui/Language/FreeCAD_fi.qm
index 1584656d70..a5108b9b86 100644
Binary files a/src/Gui/Language/FreeCAD_fi.qm and b/src/Gui/Language/FreeCAD_fi.qm differ
diff --git a/src/Gui/Language/FreeCAD_fi.ts b/src/Gui/Language/FreeCAD_fi.ts
index 81946d9848..88527ecafa 100644
--- a/src/Gui/Language/FreeCAD_fi.ts
+++ b/src/Gui/Language/FreeCAD_fi.ts
@@ -3291,10 +3291,6 @@ Voit myös käyttää muotoa: John Doe <john@doe.com>
Gui::Dialog::DlgSettingsLazyLoaded
-
- Unloaded Workbenches
- Lataamattomat työpöydät
- Workbench NameWorkbench Name
@@ -3311,6 +3307,10 @@ Voit myös käyttää muotoa: John Doe <john@doe.com>
<html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html><html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html>
+
+ Available Workbenches
+ Available Workbenches
+ Gui::Dialog::DlgSettingsLazyLoadedImp
@@ -4509,32 +4509,32 @@ The 'Status' column shows whether the document could be recovered.
Valitse 1, 2 tai 3 pistettä ennen kuin napsautat tätä painiketta. Piste voi olla kärkipisteessä, pintanäkymässä tai reunassa. Jos käytetty piste on pintanäkymässä tai reunassa, niin käytetään kohtaa hiiren sijainnissa pitkin pintanäkymää tai reunaa. Jos 1 piste on valittuna, sitä käytetään pyörimisen keskipisteenä. Jos 2 pistettä on valittuna, niin niiden välinen keskikohta on kiertämisen keskipiste ja tarvittaessa luodaan uusi mukautettu akseli. Jos on 3 pistettä valittuna, niin ensimmäinen kohta tulee kiertämisen keskipisteeksi ja se sijaitsee vektorilla, joka on normaali 3 pisteen määrittelemällä tasolla. Raportissa esitetään joitakin etäisyys- ja kulmatietoja, jotka voivat olla hyödyllisiä kohdistettaessa kohteita. Mukavuutesi vuoksi, kun Shift + napsautusta käytetään, niin sopiva etäisyys tai kulma kopioidaan leikepöydälle.
- Around y-axis:
- Y-akselin ympärillä:
+ Pitch (around y-axis):
+ Pitch (around y-axis):
- Around z-axis:
- Z-akselin ympärillä:
+ Roll (around x-axis):
+ Roll (around x-axis):
- Around x-axis:
- X-akselin ympärillä:
+ Yaw (around z-axis):
+ Yaw (around z-axis):
- Rotation around the x-axis
- Pyöritys x-akselin ympäri
+ Yaw (around z-axis)
+ Yaw (around z-axis)
- Rotation around the y-axis
- Pyöritys y-akselin ympäri
+ Pitch (around y-axis)
+ Pitch (around y-axis)
- Rotation around the z-axis
- Kierto z-akselin ympäri
+ Roll (around the x-axis)
+ Roll (around the x-axis)
- Euler angles (xy'z'')
- Euler kulmat (xy'z')
+ Euler angles (zy'x'')
+ Euler angles (zy'x'')
@@ -6057,6 +6057,18 @@ Haluatko valita toisen hakemiston?
VietnameseVietnamin kieli
+
+ Bulgarian
+ Bulgarian
+
+
+ Greek
+ Kreikaksi
+
+
+ Spanish, Argentina
+ Spanish, Argentina
+ Gui::TreeDockWidget
@@ -7019,6 +7031,38 @@ Physical path:
Physical path:
+
+ Could not save document
+ Could not save document
+
+
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+
+
+ Document not saved
+ Document not saved
+
+
+ The document%1 could not be saved. Do you want to cancel closing it?
+ The document%1 could not be saved. Do you want to cancel closing it?
+
+
+ %1 Document(s) not saved
+ %1 Document(s) not saved
+
+
+ Some documents could not be saved. Do you want to cancel closing?
+ Some documents could not be saved. Do you want to cancel closing?
+ SelectionFilter
@@ -9826,6 +9870,10 @@ Haluatko silti jatkaa?
Special OpsErityisoperaatiot
+
+ Axonometric
+ Aksonometrisiä
+ testClass
diff --git a/src/Gui/Language/FreeCAD_fil.qm b/src/Gui/Language/FreeCAD_fil.qm
index f1f1dbbc4b..67cf6dbb30 100644
Binary files a/src/Gui/Language/FreeCAD_fil.qm and b/src/Gui/Language/FreeCAD_fil.qm differ
diff --git a/src/Gui/Language/FreeCAD_fil.ts b/src/Gui/Language/FreeCAD_fil.ts
index f1f7e08234..3726553878 100644
--- a/src/Gui/Language/FreeCAD_fil.ts
+++ b/src/Gui/Language/FreeCAD_fil.ts
@@ -3291,10 +3291,6 @@ You can also use the form: John Doe <john@doe.com>
Gui::Dialog::DlgSettingsLazyLoaded
-
- Unloaded Workbenches
- Unloaded Workbenches
- Workbench NameWorkbench Name
@@ -3311,6 +3307,10 @@ You can also use the form: John Doe <john@doe.com>
<html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html><html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html>
+
+ Available Workbenches
+ Available Workbenches
+ Gui::Dialog::DlgSettingsLazyLoadedImp
@@ -4510,32 +4510,32 @@ Ang haligi ng 'Katayuan' ay nagpapakita kung ang dokumento ay maaaring mabawi.
Please select 1, 2, or 3 points before clicking this button. A point may be on a vertex, face, or edge. If on a face or edge the point used will be the point at the mouse position along face or edge. If 1 point is selected it will be used as the center of rotation. If 2 points are selected the midpoint between them will be the center of rotation and a new custom axis will be created, if needed. If 3 points are selected the first point becomes the center of rotation and lies on the vector that is normal to the plane defined by the 3 points. Some distance and angle information is provided in the report view, which can be useful when aligning objects. For your convenience when Shift + click is used the appropriate distance or angle is copied to the clipboard.
- Around y-axis:
- Around y-axis:
+ Pitch (around y-axis):
+ Pitch (around y-axis):
- Around z-axis:
- Around z-axis:
+ Roll (around x-axis):
+ Roll (around x-axis):
- Around x-axis:
- Around x-axis:
+ Yaw (around z-axis):
+ Yaw (around z-axis):
- Rotation around the x-axis
- Rotation around the x-axis
+ Yaw (around z-axis)
+ Yaw (around z-axis)
- Rotation around the y-axis
- Rotation around the y-axis
+ Pitch (around y-axis)
+ Pitch (around y-axis)
- Rotation around the z-axis
- Rotation around the z-axis
+ Roll (around the x-axis)
+ Roll (around the x-axis)
- Euler angles (xy'z'')
- Euler angles (xy'z'')
+ Euler angles (zy'x'')
+ Euler angles (zy'x'')
@@ -6060,6 +6060,18 @@ Gusto mo bang tukuyin ang isa pang direktoryo?
VietnameseVietnamese
+
+ Bulgarian
+ Bulgarian
+
+
+ Greek
+ Greek
+
+
+ Spanish, Argentina
+ Spanish, Argentina
+ Gui::TreeDockWidget
@@ -7023,6 +7035,38 @@ Physical path:
Physical path:
+
+ Could not save document
+ Could not save document
+
+
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+
+
+ Document not saved
+ Document not saved
+
+
+ The document%1 could not be saved. Do you want to cancel closing it?
+ The document%1 could not be saved. Do you want to cancel closing it?
+
+
+ %1 Document(s) not saved
+ %1 Document(s) not saved
+
+
+ Some documents could not be saved. Do you want to cancel closing?
+ Some documents could not be saved. Do you want to cancel closing?
+ SelectionFilter
@@ -9830,6 +9874,10 @@ Do you still want to proceed?
Special OpsEspesyal Ops
+
+ Axonometric
+ Axonometric
+ testClass
diff --git a/src/Gui/Language/FreeCAD_fr.qm b/src/Gui/Language/FreeCAD_fr.qm
index cbb3566c82..8b85bde233 100644
Binary files a/src/Gui/Language/FreeCAD_fr.qm and b/src/Gui/Language/FreeCAD_fr.qm differ
diff --git a/src/Gui/Language/FreeCAD_fr.ts b/src/Gui/Language/FreeCAD_fr.ts
index 1b61323fcd..a525983490 100644
--- a/src/Gui/Language/FreeCAD_fr.ts
+++ b/src/Gui/Language/FreeCAD_fr.ts
@@ -3287,10 +3287,6 @@ Vous pouvez également utiliser la forme : John Doe <john@doe.com>
Gui::Dialog::DlgSettingsLazyLoaded
-
- Unloaded Workbenches
- Ateliers non chargés
- Workbench NameNom de l'atelier
@@ -3307,6 +3303,10 @@ Vous pouvez également utiliser la forme : John Doe <john@doe.com><html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html>
<html><head/><body><p>Pour préserver les ressources, FreeCAD ne charge pas les ateliers avant qu'ils soient utilisés. Les charger peut permettre d'accéder à des préférences supplémentaires en lien avec leurs fonctionnalités.</p><p>Les ateliers suivants sont disponibles dans votre installation:</p></body></html>
+
+ Available Workbenches
+ Available Workbenches
+ Gui::Dialog::DlgSettingsLazyLoadedImp
@@ -4503,32 +4503,32 @@ La colonne « État » indique si le document peut être récupéré.Veuillez sélectionner 1, 2 ou 3 points avant de cliquer sur ce bouton. Un point peut être sur un sommet, une face ou une arête. S'il est sur une face ou une arête, le point utilisé sera le point à la position de la souris le long de la face ou de l'arête. Si 1 point est sélectionné il sera utilisé comme centre de rotation. Si 2 points sont choisis le point médian sera le centre de rotation et un nouvel axe personnalisé sera créé, si nécessaire. Si 3 points sont choisis le premier point devient le centre de rotation et se trouve sur le vecteur qui est perpendiculaire au plan défini par les 3 points. Des informations de distance et d’angle sont fournies dans la vue rapport, ce qui peut être utile pour aligner des objets. Pour plus de commodité, lors de l'utilisation de Maj + clic la distance appropriée ou l’angle sont copiés dans le presse-papiers.
- Around y-axis:
- Autour de l'axe y:
+ Pitch (around y-axis):
+ Pitch (around y-axis):
- Around z-axis:
- Autour de l'axe z:
+ Roll (around x-axis):
+ Roll (around x-axis):
- Around x-axis:
- Autour de l'axe x:
+ Yaw (around z-axis):
+ Yaw (around z-axis):
- Rotation around the x-axis
- Rotation autour de l'axe X
+ Yaw (around z-axis)
+ Yaw (around z-axis)
- Rotation around the y-axis
- Rotation autour de l'axe Y
+ Pitch (around y-axis)
+ Pitch (around y-axis)
- Rotation around the z-axis
- Rotation autour de l'axe z
+ Roll (around the x-axis)
+ Roll (around the x-axis)
- Euler angles (xy'z'')
- Angle d'Euler (xy'z'')
+ Euler angles (zy'x'')
+ Euler angles (zy'x'')
@@ -4693,13 +4693,13 @@ La colonne « État » indique si le document peut être récupéré.
&Use Original Selections
- &Use Original Selections
+ &Utiliser les sélections originalesIgnore dependencies and proceed with objects
originally selected prior to opening this dialog
- Ignore dependencies and proceed with objects
-originally selected prior to opening this dialog
+ Ignorer les dépendances et continuer avec les objets
+initialement sélectionnés avant d'ouvrir ce dialogue
@@ -6049,6 +6049,18 @@ Do you want to specify another directory?
VietnameseVietnamien
+
+ Bulgarian
+ Bulgarian
+
+
+ Greek
+ Grec
+
+
+ Spanish, Argentina
+ Spanish, Argentina
+ Gui::TreeDockWidget
@@ -7010,6 +7022,38 @@ Physical path:
Chemin physique :
+
+ Could not save document
+ Could not save document
+
+
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+
+
+ Document not saved
+ Document not saved
+
+
+ The document%1 could not be saved. Do you want to cancel closing it?
+ The document%1 could not be saved. Do you want to cancel closing it?
+
+
+ %1 Document(s) not saved
+ %1 Document(s) not saved
+
+
+ Some documents could not be saved. Do you want to cancel closing?
+ Some documents could not be saved. Do you want to cancel closing?
+ SelectionFilter
@@ -8786,11 +8830,11 @@ Chemin physique :
StdCmdUserEditModeEdit mode
- Edit mode
+ Mode d'éditionDefines behavior when editing an object from tree
- Defines behavior when editing an object from tree
+ Définit le comportement lors de l'édition d'un objet depuis l'arbre
@@ -9817,6 +9861,10 @@ Voulez-vous tout de même continuer ?
Special OpsOpérations spéciales
+
+ Axonometric
+ Axonométrique
+ testClass
diff --git a/src/Gui/Language/FreeCAD_gl.qm b/src/Gui/Language/FreeCAD_gl.qm
index 4f92bdd5a8..ae88d8c2d1 100644
Binary files a/src/Gui/Language/FreeCAD_gl.qm and b/src/Gui/Language/FreeCAD_gl.qm differ
diff --git a/src/Gui/Language/FreeCAD_gl.ts b/src/Gui/Language/FreeCAD_gl.ts
index b373a013ed..48a15f61c0 100644
--- a/src/Gui/Language/FreeCAD_gl.ts
+++ b/src/Gui/Language/FreeCAD_gl.ts
@@ -3292,10 +3292,6 @@ You can also use the form: John Doe <john@doe.com>
Gui::Dialog::DlgSettingsLazyLoaded
-
- Unloaded Workbenches
- Unloaded Workbenches
- Workbench NameWorkbench Name
@@ -3312,6 +3308,10 @@ You can also use the form: John Doe <john@doe.com>
<html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html><html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html>
+
+ Available Workbenches
+ Available Workbenches
+ Gui::Dialog::DlgSettingsLazyLoadedImp
@@ -4510,32 +4510,32 @@ A columna 'Estado' amosa se é posible recuperar o documento.
Fai o favor de escolmar 1, 2 ou 3 puntos antes de facer clic neste botón. Un punto pode estar nun vértice, face ou bordo. Se está nunha face ou bordo, o punto empregado será o punto da posición do rato ao longo da face ou bordo. Se 1 punto é escolmado, vai ser usado coma centro de rotación. Se son 2 puntos escolmados o punto medio entre eles será o centro de rotación e crearase un novo eixo persoal, se fose necesario. Se son 3 puntos os escolmados, o primeiro punto convértese en centro de rotación e atópase no vector que é normal ao plano definido polos 3 puntos. Proporciónase certa información de distancia e ángulo na vista de informe, que pode ser útil ao aliñar obxectos. Para o seu convir, cando se usa Maius + clic, a distancia ou o ángulo apropiados cópianse ó portapapeis.
- Around y-axis:
- Around y-axis:
+ Pitch (around y-axis):
+ Pitch (around y-axis):
- Around z-axis:
- Around z-axis:
+ Roll (around x-axis):
+ Roll (around x-axis):
- Around x-axis:
- Around x-axis:
+ Yaw (around z-axis):
+ Yaw (around z-axis):
- Rotation around the x-axis
- Rotación ó redor do eixe x
+ Yaw (around z-axis)
+ Yaw (around z-axis)
- Rotation around the y-axis
- Rotación ó redor do eixe y
+ Pitch (around y-axis)
+ Pitch (around y-axis)
- Rotation around the z-axis
- Rotación ó redor do eixe z
+ Roll (around the x-axis)
+ Roll (around the x-axis)
- Euler angles (xy'z'')
- Ángulos de Euler (xy'z'')
+ Euler angles (zy'x'')
+ Euler angles (zy'x'')
@@ -6063,6 +6063,18 @@ Quere especificar outro directorio?
VietnameseVietnamese
+
+ Bulgarian
+ Bulgarian
+
+
+ Greek
+ Grego
+
+
+ Spanish, Argentina
+ Spanish, Argentina
+ Gui::TreeDockWidget
@@ -7024,6 +7036,38 @@ Physical path:
Physical path:
+
+ Could not save document
+ Could not save document
+
+
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+
+
+ Document not saved
+ Document not saved
+
+
+ The document%1 could not be saved. Do you want to cancel closing it?
+ The document%1 could not be saved. Do you want to cancel closing it?
+
+
+ %1 Document(s) not saved
+ %1 Document(s) not saved
+
+
+ Some documents could not be saved. Do you want to cancel closing?
+ Some documents could not be saved. Do you want to cancel closing?
+ SelectionFilter
@@ -9831,6 +9875,10 @@ Do you still want to proceed?
Special OpsOperacións especiais
+
+ Axonometric
+ Axonométrica
+ testClass
diff --git a/src/Gui/Language/FreeCAD_hr.qm b/src/Gui/Language/FreeCAD_hr.qm
index c6341ac0ac..fec178bb26 100644
Binary files a/src/Gui/Language/FreeCAD_hr.qm and b/src/Gui/Language/FreeCAD_hr.qm differ
diff --git a/src/Gui/Language/FreeCAD_hr.ts b/src/Gui/Language/FreeCAD_hr.ts
index 061bf1ac67..019179b9b9 100644
--- a/src/Gui/Language/FreeCAD_hr.ts
+++ b/src/Gui/Language/FreeCAD_hr.ts
@@ -3318,10 +3318,6 @@ Možete koristiti i obrazac: John Doe <john@doe.com>
Gui::Dialog::DlgSettingsLazyLoaded
-
- Unloaded Workbenches
- Unloaded Workbenches
- Workbench NameWorkbench Name
@@ -3338,6 +3334,10 @@ Možete koristiti i obrazac: John Doe <john@doe.com>
<html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html><html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html>
+
+ Available Workbenches
+ Available Workbenches
+ Gui::Dialog::DlgSettingsLazyLoadedImp
@@ -4553,32 +4553,32 @@ The 'Status' column shows whether the document could be recovered.
Odaberite 1, 2 ili 3 točke prije nego kliknete ovaj gumb. Točka može biti tjemena točka, točka lica ili ruba. Ako se koristi na licu ili rubu točka će biti točka na položaju miša uzduž lica ili ruba. Ako je 1 točka odabrana ona će se koristiti kao centar rotacije. Ako su 2 točke odabrane središnja točka između njih će biti centar rotacije i po potrebi će se stvoriti nova prilagođena os. Ako su 3 točke odabrane prva točka postaje centar rotacije i leži na vektoru koji je normala na ravninu definiranu sa 3 točke. Neke informacije udaljenosti i kuta su dane u prikazu izvještaja, što može biti korisno kod poravnavanja objekata. Radi vaše udobnosti kada se koristi "Shift + klik" odgovarajuća udaljenost ili kut je kopiran(a) u međuspremnik.
- Around y-axis:
- Oko y-osi
+ Pitch (around y-axis):
+ Pitch (around y-axis):
- Around z-axis:
- Oko z-osi
+ Roll (around x-axis):
+ Roll (around x-axis):
- Around x-axis:
- Oko x-osi
+ Yaw (around z-axis):
+ Yaw (around z-axis):
- Rotation around the x-axis
- rotacija oko x-osi
+ Yaw (around z-axis)
+ Yaw (around z-axis)
- Rotation around the y-axis
- rotacija oko y-osi
+ Pitch (around y-axis)
+ Pitch (around y-axis)
- Rotation around the z-axis
- rotacija oko z-osi
+ Roll (around the x-axis)
+ Roll (around the x-axis)
- Euler angles (xy'z'')
- Eulerovih kuteva (xy'z'')
+ Euler angles (zy'x'')
+ Euler angles (zy'x'')
@@ -6106,6 +6106,18 @@ Do you want to specify another directory?
VietnameseVijetnamski
+
+ Bulgarian
+ Bulgarian
+
+
+ Greek
+ Grčki
+
+
+ Spanish, Argentina
+ Spanish, Argentina
+ Gui::TreeDockWidget
@@ -7071,6 +7083,38 @@ Physical path:
Physical path:
+
+ Could not save document
+ Could not save document
+
+
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+
+
+ Document not saved
+ Document not saved
+
+
+ The document%1 could not be saved. Do you want to cancel closing it?
+ The document%1 could not be saved. Do you want to cancel closing it?
+
+
+ %1 Document(s) not saved
+ %1 Document(s) not saved
+
+
+ Some documents could not be saved. Do you want to cancel closing?
+ Some documents could not be saved. Do you want to cancel closing?
+ SelectionFilter
@@ -9893,6 +9937,10 @@ Molimo provjerite Pregled izvještaja za više pojedinosti.
Special OpsSpecijalne radnje
+
+ Axonometric
+ Aksonometrijski
+ testClass
diff --git a/src/Gui/Language/FreeCAD_hu.qm b/src/Gui/Language/FreeCAD_hu.qm
index 1d988004ff..c2163f5036 100644
Binary files a/src/Gui/Language/FreeCAD_hu.qm and b/src/Gui/Language/FreeCAD_hu.qm differ
diff --git a/src/Gui/Language/FreeCAD_hu.ts b/src/Gui/Language/FreeCAD_hu.ts
index 2f09088c0b..5f53a403f0 100644
--- a/src/Gui/Language/FreeCAD_hu.ts
+++ b/src/Gui/Language/FreeCAD_hu.ts
@@ -3285,10 +3285,6 @@ Használhatja az űrlapot is: Gipsz Jakab <gipsz@jakab.hu>
Gui::Dialog::DlgSettingsLazyLoaded
-
- Unloaded Workbenches
- Betöltetlen munkafelületek
- Workbench NameMunkafelület neve
@@ -3305,6 +3301,10 @@ Használhatja az űrlapot is: Gipsz Jakab <gipsz@jakab.hu>
<html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html><html><head/><body><p>Az erőforrások megőrzése érdekében a FreeCAD használatukig nem tölt be munkafelületeket. Ezek betöltése hozzáférést biztosíthat további funkcionalitásukkal kapcsolatos további beállításokhoz.</p> <p>A következő munkafelületek állnak rendelkezésre a telepítéshez, de még nincsenek betöltve:</p></body></html>
+
+ Available Workbenches
+ Available Workbenches
+ Gui::Dialog::DlgSettingsLazyLoadedImp
@@ -4503,32 +4503,32 @@ Az 'Állapot' oszlop tájékoztatja a visszaállítás sikerességéről.Kérjük, válasszon 1, 2 vagy 3 pontot ennek a gombnak a megnyomása előtt. Egy pont lehet a végponton, felületen vagy élen. Ha egy felületre vagy élre használja a pontot az egér helyzetének pontja lesz a felület vagy él mentén. Ha 1 pontot választ ki akkor az az elforgatás középpontját határozza meg. 2 pont kijelölésekor a két pont közti lesz az elforgatás középpontja, és egy új egyéni tengely jön létre, ha szükséges. Ha 3 pontot jelöltünk az első pont lesz az elforgatás középpontja, és azon a vektoron fekszik, mely síkot a 3 pont alapértelmezés meghatározza. Néhány távolság és szög információt a jelentésben tekinthet meg, ami hasznos lehet az tárgyak igazításához. Az Ön kényelme érdekében Shift + kattintás használata esetén a megfelelő távolság vagy szög másolódik a vágólapra.
- Around y-axis:
- Az y tengely körül:
+ Pitch (around y-axis):
+ Pitch (around y-axis):
- Around z-axis:
- Az z tengely körül:
+ Roll (around x-axis):
+ Roll (around x-axis):
- Around x-axis:
- Az x tengely körül:
+ Yaw (around z-axis):
+ Yaw (around z-axis):
- Rotation around the x-axis
- Forgatás az x tengely körül
+ Yaw (around z-axis)
+ Yaw (around z-axis)
- Rotation around the y-axis
- Forgatás az y tengely körül
+ Pitch (around y-axis)
+ Pitch (around y-axis)
- Rotation around the z-axis
- Forgatás az z tengely körül
+ Roll (around the x-axis)
+ Roll (around the x-axis)
- Euler angles (xy'z'')
- Euler-szögek (xy'z'')
+ Euler angles (zy'x'')
+ Euler angles (zy'x'')
@@ -4693,13 +4693,13 @@ Az 'Állapot' oszlop tájékoztatja a visszaállítás sikerességéről.
&Use Original Selections
- &Use Original Selections
+ Eredeti kijelölések használata (&U)Ignore dependencies and proceed with objects
originally selected prior to opening this dialog
- Ignore dependencies and proceed with objects
-originally selected prior to opening this dialog
+ Függőségek figyelmen kívül hagyása és eredetileg ezen
+párbeszédpanel megnyitása előtt kiválasztott tárgyak folytatása
@@ -6054,6 +6054,18 @@ Meg szeretne adni egy másik könyvtárat?
VietnameseVietnami
+
+ Bulgarian
+ Bulgarian
+
+
+ Greek
+ Görög
+
+
+ Spanish, Argentina
+ Spanish, Argentina
+ Gui::TreeDockWidget
@@ -7017,6 +7029,38 @@ Physical path:
Fizikai útvonal:
+
+ Could not save document
+ Could not save document
+
+
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+
+
+ Document not saved
+ Document not saved
+
+
+ The document%1 could not be saved. Do you want to cancel closing it?
+ The document%1 could not be saved. Do you want to cancel closing it?
+
+
+ %1 Document(s) not saved
+ %1 Document(s) not saved
+
+
+ Some documents could not be saved. Do you want to cancel closing?
+ Some documents could not be saved. Do you want to cancel closing?
+ SelectionFilter
@@ -8793,11 +8837,11 @@ Fizikai útvonal:
StdCmdUserEditModeEdit mode
- Edit mode
+ SzerkesztőmódDefines behavior when editing an object from tree
- Defines behavior when editing an object from tree
+ Viselkedést határoz meg egy tárgy fa nézetben történő szerkesztésekor
@@ -9824,6 +9868,10 @@ Még mindig fojtatni szeretné?
Special OpsSpeciális lehetőségek
+
+ Axonometric
+ Axonometric
+ testClass
diff --git a/src/Gui/Language/FreeCAD_id.qm b/src/Gui/Language/FreeCAD_id.qm
index 0019d87a75..13fabd49dd 100644
Binary files a/src/Gui/Language/FreeCAD_id.qm and b/src/Gui/Language/FreeCAD_id.qm differ
diff --git a/src/Gui/Language/FreeCAD_id.ts b/src/Gui/Language/FreeCAD_id.ts
index c8c5b08630..ff504570a7 100644
--- a/src/Gui/Language/FreeCAD_id.ts
+++ b/src/Gui/Language/FreeCAD_id.ts
@@ -3287,10 +3287,6 @@ You can also use the form: John Doe <john@doe.com>
Gui::Dialog::DlgSettingsLazyLoaded
-
- Unloaded Workbenches
- Unloaded Workbenches
- Workbench NameWorkbench Name
@@ -3307,6 +3303,10 @@ You can also use the form: John Doe <john@doe.com>
<html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html><html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html>
+
+ Available Workbenches
+ Available Workbenches
+ Gui::Dialog::DlgSettingsLazyLoadedImp
@@ -4503,32 +4503,32 @@ The 'Status' column shows whether the document could be recovered.
Please select 1, 2, or 3 points before clicking this button. A point may be on a vertex, face, or edge. If on a face or edge the point used will be the point at the mouse position along face or edge. If 1 point is selected it will be used as the center of rotation. If 2 points are selected the midpoint between them will be the center of rotation and a new custom axis will be created, if needed. If 3 points are selected the first point becomes the center of rotation and lies on the vector that is normal to the plane defined by the 3 points. Some distance and angle information is provided in the report view, which can be useful when aligning objects. For your convenience when Shift + click is used the appropriate distance or angle is copied to the clipboard.
- Around y-axis:
- Around y-axis:
+ Pitch (around y-axis):
+ Pitch (around y-axis):
- Around z-axis:
- Around z-axis:
+ Roll (around x-axis):
+ Roll (around x-axis):
- Around x-axis:
- Around x-axis:
+ Yaw (around z-axis):
+ Yaw (around z-axis):
- Rotation around the x-axis
- Rotation around the x-axis
+ Yaw (around z-axis)
+ Yaw (around z-axis)
- Rotation around the y-axis
- Rotation around the y-axis
+ Pitch (around y-axis)
+ Pitch (around y-axis)
- Rotation around the z-axis
- Rotation around the z-axis
+ Roll (around the x-axis)
+ Roll (around the x-axis)
- Euler angles (xy'z'')
- Euler angles (xy'z'')
+ Euler angles (zy'x'')
+ Euler angles (zy'x'')
@@ -6043,6 +6043,18 @@ Do you want to specify another directory?
VietnameseVietnamese
+
+ Bulgarian
+ Bulgarian
+
+
+ Greek
+ Yunani
+
+
+ Spanish, Argentina
+ Spanish, Argentina
+ Gui::TreeDockWidget
@@ -7001,6 +7013,38 @@ Physical path:
Physical path:
+
+ Could not save document
+ Could not save document
+
+
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+
+
+ Document not saved
+ Document not saved
+
+
+ The document%1 could not be saved. Do you want to cancel closing it?
+ The document%1 could not be saved. Do you want to cancel closing it?
+
+
+ %1 Document(s) not saved
+ %1 Document(s) not saved
+
+
+ Some documents could not be saved. Do you want to cancel closing?
+ Some documents could not be saved. Do you want to cancel closing?
+ SelectionFilter
@@ -9808,6 +9852,10 @@ Do you still want to proceed?
Special OpsPasukan khusus
+
+ Axonometric
+ Axonometrik
+ testClass
diff --git a/src/Gui/Language/FreeCAD_it.qm b/src/Gui/Language/FreeCAD_it.qm
index aa7fc04016..2964ef4fe4 100644
Binary files a/src/Gui/Language/FreeCAD_it.qm and b/src/Gui/Language/FreeCAD_it.qm differ
diff --git a/src/Gui/Language/FreeCAD_it.ts b/src/Gui/Language/FreeCAD_it.ts
index f3a380ada0..4dc9654fa6 100644
--- a/src/Gui/Language/FreeCAD_it.ts
+++ b/src/Gui/Language/FreeCAD_it.ts
@@ -3290,10 +3290,6 @@ Si può anche utilizzare il modulo: John Doe <john@doe.com>
Gui::Dialog::DlgSettingsLazyLoaded
-
- Unloaded Workbenches
- Ambienti di lavoro scaricati
- Workbench NameNome Workbench
@@ -3310,6 +3306,10 @@ Si può anche utilizzare il modulo: John Doe <john@doe.com>
<html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html><html><head/><body><p>Per preservare le risorse, FreeCAD non carica gli ambienti di lavoro finché non vengono utilizzati. Il loro caricamento può fornire l'accesso a preferenze aggiuntive relative alla loro funzionalità.</p><p>I seguenti ambienti di lavoro sono disponibili nella tua installazione, ma non sono ancora caricati:</p></body></html>
+
+ Available Workbenches
+ Available Workbenches
+ Gui::Dialog::DlgSettingsLazyLoadedImp
@@ -4506,32 +4506,32 @@ The 'Status' column shows whether the document could be recovered.
Selezionare 1, 2 o 3 punti prima di fare clic su questo pulsante. Il punto può essere su un vertice, una faccia o un bordo. Se viene scelto su una faccia o bordo il punto utilizzato è il punto in corrispondenza della posizione del mouse lungo la faccia o il bordo. Se viene selezionato solo 1 punto, esso è usato come centro di rotazione. Se sono selezionati 2 punti, il centro di rotazione è il punto medio tra di essi e viene creato un nuovo asse personalizzato, se necessario. Se vengono selezionati 3 punti, il primo punto diventa il centro di rotazione e giace sul vettore che è normale rispetto al piano definito dai 3 punti. Alcune informazioni sulla distanza e sull'angolo sono fornite nella vista Report, questo può essere utile quando si allineano gli oggetti. Per praticità quando si usa Maiusc + clic, la distanza o l'angolo appropriati vengono copiati negli Appunti.
- Around y-axis:
- Intorno all'asse y:
+ Pitch (around y-axis):
+ Pitch (around y-axis):
- Around z-axis:
- Intorno all'asse z:
+ Roll (around x-axis):
+ Roll (around x-axis):
- Around x-axis:
- Intorno all'asse x:
+ Yaw (around z-axis):
+ Yaw (around z-axis):
- Rotation around the x-axis
- Rotazione attorno all'asse x
+ Yaw (around z-axis)
+ Yaw (around z-axis)
- Rotation around the y-axis
- Rotazione attorno all'asse y
+ Pitch (around y-axis)
+ Pitch (around y-axis)
- Rotation around the z-axis
- Rotazione attorno all'asse z
+ Roll (around the x-axis)
+ Roll (around the x-axis)
- Euler angles (xy'z'')
- Angoli di Eulero (xy'z'')
+ Euler angles (zy'x'')
+ Euler angles (zy'x'')
@@ -4696,13 +4696,13 @@ The 'Status' column shows whether the document could be recovered.
&Use Original Selections
- &Use Original Selections
+ &Usa Selezioni OriginaliIgnore dependencies and proceed with objects
originally selected prior to opening this dialog
- Ignore dependencies and proceed with objects
-originally selected prior to opening this dialog
+ Ignora le dipendenze e procedi con gli oggetti
+originariamente selezionati prima di aprire questa finestra
@@ -6056,6 +6056,18 @@ Vuoi specificare un'altra cartella?
VietnameseVietnamita
+
+ Bulgarian
+ Bulgarian
+
+
+ Greek
+ Greek
+
+
+ Spanish, Argentina
+ Spanish, Argentina
+ Gui::TreeDockWidget
@@ -7020,6 +7032,38 @@ Physical path:
Percorso fisico:
+
+ Could not save document
+ Could not save document
+
+
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+
+
+ Document not saved
+ Document not saved
+
+
+ The document%1 could not be saved. Do you want to cancel closing it?
+ The document%1 could not be saved. Do you want to cancel closing it?
+
+
+ %1 Document(s) not saved
+ %1 Document(s) not saved
+
+
+ Some documents could not be saved. Do you want to cancel closing?
+ Some documents could not be saved. Do you want to cancel closing?
+ SelectionFilter
@@ -8796,11 +8840,11 @@ Percorso fisico:
StdCmdUserEditModeEdit mode
- Edit mode
+ Modalità modificaDefines behavior when editing an object from tree
- Defines behavior when editing an object from tree
+ Definisce il comportamento quando si modifica un oggetto dall'albero
@@ -9827,6 +9871,10 @@ Si desidera ancora procedere?
Special OpsOperazioni speciali
+
+ Axonometric
+ Assonometria
+ testClass
diff --git a/src/Gui/Language/FreeCAD_ja.qm b/src/Gui/Language/FreeCAD_ja.qm
index b967c44b26..a1dafc5e5c 100644
Binary files a/src/Gui/Language/FreeCAD_ja.qm and b/src/Gui/Language/FreeCAD_ja.qm differ
diff --git a/src/Gui/Language/FreeCAD_ja.ts b/src/Gui/Language/FreeCAD_ja.ts
index bda16611c0..4d4a2203b7 100644
--- a/src/Gui/Language/FreeCAD_ja.ts
+++ b/src/Gui/Language/FreeCAD_ja.ts
@@ -3262,10 +3262,6 @@ John Doe <john@doe.com> 形式を使用することもできます。
Gui::Dialog::DlgSettingsLazyLoaded
-
- Unloaded Workbenches
- ロードされていないワークベンチ
- Workbench NameWorkbench Name
@@ -3282,6 +3278,10 @@ John Doe <john@doe.com> 形式を使用することもできます。<html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html>
<html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html>
+
+ Available Workbenches
+ Available Workbenches
+ Gui::Dialog::DlgSettingsLazyLoadedImp
@@ -4478,32 +4478,32 @@ The 'Status' column shows whether the document could be recovered.
このボタンをクリックする前に1つ、2つ、または3つの点を選択してください。 点は頂点、面、またはエッジ上にあります。面またはエッジ上の点を使用する場合は面またはエッジに沿ったマウス位置にある点を使います。1つの点を選択した場合には点が回転中心として使用されます。2つの点を選択した場合にはその中点が回転中心となり、必要に応じて新しいカスタム軸が作成されます。3つの点を選択した場合には1つ目の点が回転中心となり、3点によって定義される平面の法線となるベクトル上に配置されます。距離と角度の情報はレポートビューに表示されます。この情報はオブジェクトを配置する際に便利です。簡単のために Shift + クリックで適切な距離と角度がクリップボードにコピーされます。
- Around y-axis:
- Y軸周り:
+ Pitch (around y-axis):
+ Pitch (around y-axis):
- Around z-axis:
- Z軸周り:
+ Roll (around x-axis):
+ Roll (around x-axis):
- Around x-axis:
- X軸周り:
+ Yaw (around z-axis):
+ Yaw (around z-axis):
- Rotation around the x-axis
- X軸周りの回転
+ Yaw (around z-axis)
+ Yaw (around z-axis)
- Rotation around the y-axis
- Y軸周りの回転
+ Pitch (around y-axis)
+ Pitch (around y-axis)
- Rotation around the z-axis
- Z軸周りの回転
+ Roll (around the x-axis)
+ Roll (around the x-axis)
- Euler angles (xy'z'')
- オイラー角度 (xy'z'')
+ Euler angles (zy'x'')
+ Euler angles (zy'x'')
@@ -4668,13 +4668,13 @@ The 'Status' column shows whether the document could be recovered.
&Use Original Selections
- &Use Original Selections
+ 元の選択を使用 (&U)Ignore dependencies and proceed with objects
originally selected prior to opening this dialog
- Ignore dependencies and proceed with objects
-originally selected prior to opening this dialog
+ 依存関係を無視し、このダイアログを開く前に最初に選択されたオブジェクト
+を続行します
@@ -6024,6 +6024,18 @@ Do you want to specify another directory?
Vietnameseベトナム語
+
+ Bulgarian
+ Bulgarian
+
+
+ Greek
+ ギリシャ語
+
+
+ Spanish, Argentina
+ Spanish, Argentina
+ Gui::TreeDockWidget
@@ -6983,6 +6995,38 @@ Physical path:
物理パス:
+
+ Could not save document
+ Could not save document
+
+
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+
+
+ Document not saved
+ Document not saved
+
+
+ The document%1 could not be saved. Do you want to cancel closing it?
+ The document%1 could not be saved. Do you want to cancel closing it?
+
+
+ %1 Document(s) not saved
+ %1 Document(s) not saved
+
+
+ Some documents could not be saved. Do you want to cancel closing?
+ Some documents could not be saved. Do you want to cancel closing?
+ SelectionFilter
@@ -8759,11 +8803,11 @@ Physical path:
StdCmdUserEditModeEdit mode
- Edit mode
+ 編集モードDefines behavior when editing an object from tree
- Defines behavior when editing an object from tree
+ ツリーからオブジェクトを編集するときの動作を定義します。
@@ -9790,6 +9834,10 @@ Do you still want to proceed?
Special Ops特殊設定
+
+ Axonometric
+ 不等角投影
+ testClass
diff --git a/src/Gui/Language/FreeCAD_lt.qm b/src/Gui/Language/FreeCAD_lt.qm
index 0f58fcf62b..73c7bf4362 100644
Binary files a/src/Gui/Language/FreeCAD_lt.qm and b/src/Gui/Language/FreeCAD_lt.qm differ
diff --git a/src/Gui/Language/FreeCAD_lt.ts b/src/Gui/Language/FreeCAD_lt.ts
index c143659000..8f115b428f 100644
--- a/src/Gui/Language/FreeCAD_lt.ts
+++ b/src/Gui/Language/FreeCAD_lt.ts
@@ -3291,10 +3291,6 @@ You can also use the form: John Doe <john@doe.com>
Gui::Dialog::DlgSettingsLazyLoaded
-
- Unloaded Workbenches
- Unloaded Workbenches
- Workbench NameWorkbench Name
@@ -3311,6 +3307,10 @@ You can also use the form: John Doe <john@doe.com>
<html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html><html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html>
+
+ Available Workbenches
+ Available Workbenches
+ Gui::Dialog::DlgSettingsLazyLoadedImp
@@ -4507,32 +4507,32 @@ The 'Status' column shows whether the document could be recovered.
Prieš paspausdami šį mygtuką, pažymėkite 1–3 taškus. Taškas turi būti viršūnėje, sienoje ar kraštinėje. Jei taškas yra sienoje ar kraštinėje, naudojamas taškas bus žymeklio vietoje esantis taškas, sutampantis su siena ar kraštine. Jei pasirinktas vienas taškas, jis bus naudojamas kaip sukimosi taškas. Jei pasirinkti du taškai, tai jas jungiančios atkarpos vidurio taškas bus naudojamas kaip sukimosi taškas; jei reikės, bus sukurta ir sukimosi ašis. Jei pasirinkti trys taškai, pirmasis pasirinktas taškas bus sukimosi taškas, kuris yra vektoriuje, statmename trimis taškais apibrėžtai plokštumai. Tam tikri atstumo ir kampo duomenys, naudingi daiktų sutapdinimui, bus pateikiami ataskaitos rodinyje. Jūsų patogumui, paspaudus „Shift“ ir pelės mygtuką, atitinkamas atstumas ar kampas bus nukopijuotas į mainų sritį.
- Around y-axis:
- Apie y ašį:
+ Pitch (around y-axis):
+ Pitch (around y-axis):
- Around z-axis:
- Apie z ašį:
+ Roll (around x-axis):
+ Roll (around x-axis):
- Around x-axis:
- Apie x ašį:
+ Yaw (around z-axis):
+ Yaw (around z-axis):
- Rotation around the x-axis
- Sukimas apie x ašį
+ Yaw (around z-axis)
+ Yaw (around z-axis)
- Rotation around the y-axis
- Sukimas apie y ašį
+ Pitch (around y-axis)
+ Pitch (around y-axis)
- Rotation around the z-axis
- Sukimas apie z ašį
+ Roll (around the x-axis)
+ Roll (around the x-axis)
- Euler angles (xy'z'')
- Oilerio kampai (xy'z'')
+ Euler angles (zy'x'')
+ Euler angles (zy'x'')
@@ -6059,6 +6059,18 @@ Ar norėtumėte nurodyti kitą aplanką?
VietnameseVietnamiečių
+
+ Bulgarian
+ Bulgarian
+
+
+ Greek
+ Graikų
+
+
+ Spanish, Argentina
+ Spanish, Argentina
+ Gui::TreeDockWidget
@@ -7022,6 +7034,38 @@ Physical path:
Physical path:
+
+ Could not save document
+ Could not save document
+
+
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+
+
+ Document not saved
+ Document not saved
+
+
+ The document%1 could not be saved. Do you want to cancel closing it?
+ The document%1 could not be saved. Do you want to cancel closing it?
+
+
+ %1 Document(s) not saved
+ %1 Document(s) not saved
+
+
+ Some documents could not be saved. Do you want to cancel closing?
+ Some documents could not be saved. Do you want to cancel closing?
+ SelectionFilter
@@ -9829,6 +9873,10 @@ Ar vis dar norite tęsti?
Special OpsYpatingi veiksmai
+
+ Axonometric
+ Aksonometrinis
+ testClass
diff --git a/src/Gui/Language/FreeCAD_nl.qm b/src/Gui/Language/FreeCAD_nl.qm
index 2458819cc3..3c42cd4f21 100644
Binary files a/src/Gui/Language/FreeCAD_nl.qm and b/src/Gui/Language/FreeCAD_nl.qm differ
diff --git a/src/Gui/Language/FreeCAD_nl.ts b/src/Gui/Language/FreeCAD_nl.ts
index ed07610c1a..8110955846 100644
--- a/src/Gui/Language/FreeCAD_nl.ts
+++ b/src/Gui/Language/FreeCAD_nl.ts
@@ -3288,10 +3288,6 @@ U kunt ook het formulier gebruiken: John Doe <john@doe.com>
Gui::Dialog::DlgSettingsLazyLoaded
-
- Unloaded Workbenches
- Ongeladen werkbanken
- Workbench NameWorkbench Name
@@ -3308,6 +3304,10 @@ U kunt ook het formulier gebruiken: John Doe <john@doe.com>
<html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html><html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html>
+
+ Available Workbenches
+ Available Workbenches
+ Gui::Dialog::DlgSettingsLazyLoadedImp
@@ -4504,32 +4504,32 @@ The 'Status' column shows whether the document could be recovered.
Gelieve 1, 2 of 3 punten te selecteren voordat u op deze knop klikt. Een punt kan op een eindpunt, vlak of rand zijn. Indien op een vlak of rand, zal het gebruikte punt het punt zijn dat zich op de positie van de muis langs het vlak of de rand bevindt. Als 1 punt wordt geselecteerd, wordt het gebruikt als draaipunt. Als 2 punten worden geselecteerd, is het middelpunt daarvan het draaipunt en wordt er zo nodig een nieuwe aangepaste as gemaakt. Als 3 punten worden geselecteerd, wordt het eerste punt het draaipunt en ligt het op de vector die normaal is voor het vlak gedefinieerd door de 3 punten. Enige informatie over afstand en hoek wordt in de rapportweergave gegeven, wat nuttig kan zijn bij het uitlijnen van objecten. Voor uw gemak wordt, wanneer Shift + klik gebruikt worden, de juiste afstand of hoek naar het klembord gekopieerd.
- Around y-axis:
- Rond de y-as:
+ Pitch (around y-axis):
+ Pitch (around y-axis):
- Around z-axis:
- Rond de z-as:
+ Roll (around x-axis):
+ Roll (around x-axis):
- Around x-axis:
- Rond de x-as:
+ Yaw (around z-axis):
+ Yaw (around z-axis):
- Rotation around the x-axis
- Rotatie rond de x-as
+ Yaw (around z-axis)
+ Yaw (around z-axis)
- Rotation around the y-axis
- Rotatie rond de y-as
+ Pitch (around y-axis)
+ Pitch (around y-axis)
- Rotation around the z-axis
- Rotatie rond de z-as
+ Roll (around the x-axis)
+ Roll (around the x-axis)
- Euler angles (xy'z'')
- Hoeken van Euler (xy'z'')
+ Euler angles (zy'x'')
+ Euler angles (zy'x'')
@@ -6049,6 +6049,18 @@ Wilt u een andere map opgeven?
VietnameseVietnamees
+
+ Bulgarian
+ Bulgarian
+
+
+ Greek
+ Grieks
+
+
+ Spanish, Argentina
+ Spanish, Argentina
+ Gui::TreeDockWidget
@@ -7011,6 +7023,38 @@ Physical path:
Fysiek pad:
+
+ Could not save document
+ Could not save document
+
+
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+
+
+ Document not saved
+ Document not saved
+
+
+ The document%1 could not be saved. Do you want to cancel closing it?
+ The document%1 could not be saved. Do you want to cancel closing it?
+
+
+ %1 Document(s) not saved
+ %1 Document(s) not saved
+
+
+ Some documents could not be saved. Do you want to cancel closing?
+ Some documents could not be saved. Do you want to cancel closing?
+ SelectionFilter
@@ -9818,6 +9862,10 @@ Wilt u toch doorgaan?
Special OpsSpeciale functies
+
+ Axonometric
+ Axonometrisch
+ testClass
diff --git a/src/Gui/Language/FreeCAD_pl.qm b/src/Gui/Language/FreeCAD_pl.qm
index 5ce2ab75ce..80c482d1ef 100644
Binary files a/src/Gui/Language/FreeCAD_pl.qm and b/src/Gui/Language/FreeCAD_pl.qm differ
diff --git a/src/Gui/Language/FreeCAD_pl.ts b/src/Gui/Language/FreeCAD_pl.ts
index 49c29a3628..ed1665c696 100644
--- a/src/Gui/Language/FreeCAD_pl.ts
+++ b/src/Gui/Language/FreeCAD_pl.ts
@@ -3288,10 +3288,6 @@ Możesz również skorzystać z formatki: John Doe <john@doe.com>
Gui::Dialog::DlgSettingsLazyLoaded
-
- Unloaded Workbenches
- Niezaładowane Środowiska pracy
- Workbench NameNazwa środowiska pracy
@@ -3308,6 +3304,10 @@ Możesz również skorzystać z formatki: John Doe <john@doe.com><html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html>
<html><head/><body><p>Aby oszczędzać zasoby, FreeCAD nie ładuje środowisk pracy, dopóki nie zostaną użyte. Ich załadowanie może zapewnić dostęp do dodatkowych preferencji związanych z ich funkcjonalnością.</p><p>Następujące środowiska pracy są dostępne w twojej instalacji, ale nie są jeszcze załadowane:</p></body></html>
+
+ Available Workbenches
+ Available Workbenches
+ Gui::Dialog::DlgSettingsLazyLoadedImp
@@ -3321,7 +3321,7 @@ Możesz również skorzystać z formatki: John Doe <john@doe.com>
If checked
- Jeśli zaznaczone
+ Jeśli opcja jest zaznaczonawill be loaded automatically when FreeCAD starts up
@@ -4507,32 +4507,32 @@ Kolumna "Aktualny status" pokazuje, czy dokument może być odzyskany.Proszę wybrać 1, 2 lub 3 punkty przed kliknięciem na ten przycisk. Punktem może być wierzchołek, ściana lub krawędź. Jeśli zostanie wybrany punkt na ścianie lub na krawędzi, zostanie użyty punkt pozycji myszy na tej ścianie lub wzdłuż tej krawędzi. Jeśli zostanie wybrany 1 punkt, to zostanie on użyty jako środek obrotu. Jeśli zostaną wybrane 2 punkty, to punkt pomiędzy nimi zostanie wybrany jako środek obrotu, a te punkty utworzą nową oś, jeśli jest taka potrzeba. Jeśli zostaną wybrane 3 punkty to pierwszy punkt zostanie użyty jako środek obrotu i jako wierzchołek wektora normalnego do płaszczyzny zdefiniowanej przez te 3 punkty. Niektóre odległości i kąty są pokazane na widoku raportu, mogę być one pomocne przy dopasowywaniu obiektów. Dla Twojej wygody, gdy naciśniesz Shift+Click, to odpowiednia odległość lub kąt są skopiowane do schowka.
- Around y-axis:
- W okolicy osi Y:
+ Pitch (around y-axis):
+ Pitch (around y-axis):
- Around z-axis:
- W okolicy osi Z:
+ Roll (around x-axis):
+ Roll (around x-axis):
- Around x-axis:
- W okolicy osi X:
+ Yaw (around z-axis):
+ Yaw (around z-axis):
- Rotation around the x-axis
- Obrót wokół osi X
+ Yaw (around z-axis)
+ Yaw (around z-axis)
- Rotation around the y-axis
- Obrót wokół osi Y
+ Pitch (around y-axis)
+ Pitch (around y-axis)
- Rotation around the z-axis
- Obrót wokół osi Z
+ Roll (around the x-axis)
+ Roll (around the x-axis)
- Euler angles (xy'z'')
- Kąty Eulera (XY'Z'')
+ Euler angles (zy'x'')
+ Euler angles (zy'x'')
@@ -4697,13 +4697,13 @@ Kolumna "Aktualny status" pokazuje, czy dokument może być odzyskany.
&Use Original Selections
- &Use Original Selections
+ &Użyj wyboru początkowegoIgnore dependencies and proceed with objects
originally selected prior to opening this dialog
- Ignore dependencies and proceed with objects
-originally selected prior to opening this dialog
+ Ignoruj zależności i kontynuuj z obiektami
+wstępnie wybranymi przed otwarciem tego okna
@@ -4849,7 +4849,7 @@ originally selected prior to opening this dialog
Selects and fits this object in the 3D window
- Wybiera i lokalizuje ten obiekt w oknie widoku 3D
+ Zaznacza i dopasowuje ten obiekt w oknie widoku 3DGo to selection
@@ -6052,6 +6052,18 @@ Do you want to specify another directory?
Vietnamesewietnamski
+
+ Bulgarian
+ Bulgarian
+
+
+ Greek
+ grecki
+
+
+ Spanish, Argentina
+ Spanish, Argentina
+ Gui::TreeDockWidget
@@ -7013,6 +7025,38 @@ Physical path:
Ścieżka fizyczna:
+
+ Could not save document
+ Could not save document
+
+
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+
+
+ Document not saved
+ Document not saved
+
+
+ The document%1 could not be saved. Do you want to cancel closing it?
+ The document%1 could not be saved. Do you want to cancel closing it?
+
+
+ %1 Document(s) not saved
+ %1 Document(s) not saved
+
+
+ Some documents could not be saved. Do you want to cancel closing?
+ Some documents could not be saved. Do you want to cancel closing?
+ SelectionFilter
@@ -8092,7 +8136,7 @@ Physical path:
Placement...
- Umiejscowienie...
+ Umiejscowienie ...Place the selected objects
@@ -8789,11 +8833,11 @@ Physical path:
StdCmdUserEditModeEdit mode
- Edit mode
+ Tryb edycjiDefines behavior when editing an object from tree
- Defines behavior when editing an object from tree
+ Definiuje zachowanie podczas edycji obiektu w widoku drzewa
@@ -9820,6 +9864,10 @@ Czy nadal chcesz kontynuować?
Special OpsOpcje specjalne
+
+ Axonometric
+ Aksonometryczny
+ testClass
diff --git a/src/Gui/Language/FreeCAD_pt-BR.qm b/src/Gui/Language/FreeCAD_pt-BR.qm
index fa9cfb64d4..5cfc6139ab 100644
Binary files a/src/Gui/Language/FreeCAD_pt-BR.qm and b/src/Gui/Language/FreeCAD_pt-BR.qm differ
diff --git a/src/Gui/Language/FreeCAD_pt-BR.ts b/src/Gui/Language/FreeCAD_pt-BR.ts
index 780a3aaa7b..08645824b7 100644
--- a/src/Gui/Language/FreeCAD_pt-BR.ts
+++ b/src/Gui/Language/FreeCAD_pt-BR.ts
@@ -3280,10 +3280,6 @@ Você também pode usar o formulário: João Silva <joao@silva.com>
Gui::Dialog::DlgSettingsLazyLoaded
-
- Unloaded Workbenches
- Bancadas não carregadas
- Workbench NameNome da bancada
@@ -3300,6 +3296,10 @@ Você também pode usar o formulário: João Silva <joao@silva.com><html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html>
<html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html>
+
+ Available Workbenches
+ Available Workbenches
+ Gui::Dialog::DlgSettingsLazyLoadedImp
@@ -4496,32 +4496,32 @@ The 'Status' column shows whether the document could be recovered.
Por favor, selecione 1, 2 ou 3 pontos antes de clicar neste botão. Um ponto pode estar em um vértice, face ou aresta. Se em uma face ou borda, o ponto usado será o ponto na posição do mouse ao longo da face ou da borda. Se 1 ponto for selecionado, ele será usado como centro de rotação. Se 2 pontos forem selecionados, o ponto médio entre eles será o centro de rotação e um novo eixo personalizado será criado, se necessário. Se 3 pontos são selecionados, o primeiro ponto se torna o centro de rotação e fica no vetor que é normal ao plano definido pelos 3 pontos. Algumas informações de distância e ângulo são fornecidas na visão do relatório, o que pode ser útil ao alinhar objetos. Para sua conveniência, quando Shift + clique é usado, a distância ou ângulo apropriado é copiado para a área de transferência.
- Around y-axis:
- Em torno do eixo Y:
+ Pitch (around y-axis):
+ Pitch (around y-axis):
- Around z-axis:
- Em torno do eixo Z:
+ Roll (around x-axis):
+ Roll (around x-axis):
- Around x-axis:
- Em torno do eixo X:
+ Yaw (around z-axis):
+ Yaw (around z-axis):
- Rotation around the x-axis
- Rotação em torno do eixo x
+ Yaw (around z-axis)
+ Yaw (around z-axis)
- Rotation around the y-axis
- Rotação em torno do eixo y
+ Pitch (around y-axis)
+ Pitch (around y-axis)
- Rotation around the z-axis
- Rotação em torno do eixo z
+ Roll (around the x-axis)
+ Roll (around the x-axis)
- Euler angles (xy'z'')
- Ângulos de Euler (XY'Z")
+ Euler angles (zy'x'')
+ Euler angles (zy'x'')
@@ -6041,6 +6041,18 @@ Do you want to specify another directory?
VietnameseVietnamita
+
+ Bulgarian
+ Bulgarian
+
+
+ Greek
+ Grego
+
+
+ Spanish, Argentina
+ Spanish, Argentina
+ Gui::TreeDockWidget
@@ -6999,6 +7011,38 @@ Physical path:
Caminho físico:
+
+ Could not save document
+ Could not save document
+
+
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+
+
+ Document not saved
+ Document not saved
+
+
+ The document%1 could not be saved. Do you want to cancel closing it?
+ The document%1 could not be saved. Do you want to cancel closing it?
+
+
+ %1 Document(s) not saved
+ %1 Document(s) not saved
+
+
+ Some documents could not be saved. Do you want to cancel closing?
+ Some documents could not be saved. Do you want to cancel closing?
+ SelectionFilter
@@ -9806,6 +9850,10 @@ Deseja prosseguir mesmo assim?
Special OpsOperações especiais
+
+ Axonometric
+ Axonométrica
+ testClass
diff --git a/src/Gui/Language/FreeCAD_pt-PT.qm b/src/Gui/Language/FreeCAD_pt-PT.qm
index 7b43ea08ae..9ea05cfc96 100644
Binary files a/src/Gui/Language/FreeCAD_pt-PT.qm and b/src/Gui/Language/FreeCAD_pt-PT.qm differ
diff --git a/src/Gui/Language/FreeCAD_pt-PT.ts b/src/Gui/Language/FreeCAD_pt-PT.ts
index 546d9bf6d3..ba8d263e3c 100644
--- a/src/Gui/Language/FreeCAD_pt-PT.ts
+++ b/src/Gui/Language/FreeCAD_pt-PT.ts
@@ -3287,10 +3287,6 @@ You can also use the form: John Doe <john@doe.com>
Gui::Dialog::DlgSettingsLazyLoaded
-
- Unloaded Workbenches
- Unloaded Workbenches
- Workbench NameWorkbench Name
@@ -3307,6 +3303,10 @@ You can also use the form: John Doe <john@doe.com>
<html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html><html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html>
+
+ Available Workbenches
+ Available Workbenches
+ Gui::Dialog::DlgSettingsLazyLoadedImp
@@ -4503,32 +4503,32 @@ The 'Status' column shows whether the document could be recovered.
Por favor selecione 1, 2 ou 3 pontos antes de clicar neste botão. Um ponto pode estar num vértice, face ou aresta. Se estiver numa face ou aresta, o ponto utilizado será o ponto na posição do rato ao longo da face ou aresta. Se for selecionado 1 ponto será usado como o centro de rotação. Se forem selecionados 2 pontos o ponto médio entre eles será o centro de rotação e será criado um novo eixo personalizado, se necessário. Se forem selecionados 3 pontos o primeiro ponto torna-se o centro de rotação e encontra-se sobre o vetor normal ao plano definido por 3 pontos. Algumas informações de distância e ângulo são fornecidas na vista de relatório, que pode ser útil ao alinhar objetos. Para sua conveniência quando Shift + clique for usado a distância adequada ou ângulo é copiado para a área de transferência.
- Around y-axis:
- Around y-axis:
+ Pitch (around y-axis):
+ Pitch (around y-axis):
- Around z-axis:
- Around z-axis:
+ Roll (around x-axis):
+ Roll (around x-axis):
- Around x-axis:
- Around x-axis:
+ Yaw (around z-axis):
+ Yaw (around z-axis):
- Rotation around the x-axis
- Rotação em torno do eixo-x
+ Yaw (around z-axis)
+ Yaw (around z-axis)
- Rotation around the y-axis
- Rotação em torno do eixo-y
+ Pitch (around y-axis)
+ Pitch (around y-axis)
- Rotation around the z-axis
- Rotação em torno do eixo-z
+ Roll (around the x-axis)
+ Roll (around the x-axis)
- Euler angles (xy'z'')
- Euler angles (xy'z'')
+ Euler angles (zy'x'')
+ Euler angles (zy'x'')
@@ -6052,6 +6052,18 @@ Quer especificar outro diretório?
VietnameseVietnamita
+
+ Bulgarian
+ Bulgarian
+
+
+ Greek
+ Grego
+
+
+ Spanish, Argentina
+ Spanish, Argentina
+ Gui::TreeDockWidget
@@ -7012,6 +7024,38 @@ Physical path:
Caminho físico:
+
+ Could not save document
+ Could not save document
+
+
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+
+
+ Document not saved
+ Document not saved
+
+
+ The document%1 could not be saved. Do you want to cancel closing it?
+ The document%1 could not be saved. Do you want to cancel closing it?
+
+
+ %1 Document(s) not saved
+ %1 Document(s) not saved
+
+
+ Some documents could not be saved. Do you want to cancel closing?
+ Some documents could not be saved. Do you want to cancel closing?
+ SelectionFilter
@@ -9819,6 +9863,10 @@ Ainda deseja prosseguir?
Special OpsOperações especiais
+
+ Axonometric
+ Axanométrico
+ testClass
diff --git a/src/Gui/Language/FreeCAD_ro.qm b/src/Gui/Language/FreeCAD_ro.qm
index 3cf42cf176..f7668caabf 100644
Binary files a/src/Gui/Language/FreeCAD_ro.qm and b/src/Gui/Language/FreeCAD_ro.qm differ
diff --git a/src/Gui/Language/FreeCAD_ro.ts b/src/Gui/Language/FreeCAD_ro.ts
index 5b999fd7a7..061a45f3a8 100644
--- a/src/Gui/Language/FreeCAD_ro.ts
+++ b/src/Gui/Language/FreeCAD_ro.ts
@@ -3288,10 +3288,6 @@ You can also use the form: John Doe <john@doe.com>
Gui::Dialog::DlgSettingsLazyLoaded
-
- Unloaded Workbenches
- Unloaded Workbenches
- Workbench NameWorkbench Name
@@ -3308,6 +3304,10 @@ You can also use the form: John Doe <john@doe.com>
<html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html><html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html>
+
+ Available Workbenches
+ Available Workbenches
+ Gui::Dialog::DlgSettingsLazyLoadedImp
@@ -4504,32 +4504,32 @@ The 'Status' column shows whether the document could be recovered.
Please select 1, 2, or 3 points before clicking this button. A point may be on a vertex, face, or edge. If on a face or edge the point used will be the point at the mouse position along face or edge. If 1 point is selected it will be used as the center of rotation. If 2 points are selected the midpoint between them will be the center of rotation and a new custom axis will be created, if needed. If 3 points are selected the first point becomes the center of rotation and lies on the vector that is normal to the plane defined by the 3 points. Some distance and angle information is provided in the report view, which can be useful when aligning objects. For your convenience when Shift + click is used the appropriate distance or angle is copied to the clipboard.
- Around y-axis:
- Around y-axis:
+ Pitch (around y-axis):
+ Pitch (around y-axis):
- Around z-axis:
- Around z-axis:
+ Roll (around x-axis):
+ Roll (around x-axis):
- Around x-axis:
- Around x-axis:
+ Yaw (around z-axis):
+ Yaw (around z-axis):
- Rotation around the x-axis
- Rotation around the x-axis
+ Yaw (around z-axis)
+ Yaw (around z-axis)
- Rotation around the y-axis
- Rotation around the y-axis
+ Pitch (around y-axis)
+ Pitch (around y-axis)
- Rotation around the z-axis
- Rotation around the z-axis
+ Roll (around the x-axis)
+ Roll (around the x-axis)
- Euler angles (xy'z'')
- Euler angles (xy'z'')
+ Euler angles (zy'x'')
+ Euler angles (zy'x'')
@@ -6052,6 +6052,18 @@ Doriţi să specificaţi un alt director?
VietnameseVietnameză
+
+ Bulgarian
+ Bulgarian
+
+
+ Greek
+ Greacă
+
+
+ Spanish, Argentina
+ Spanish, Argentina
+ Gui::TreeDockWidget
@@ -7013,6 +7025,38 @@ Physical path:
Cale fizică:
+
+ Could not save document
+ Could not save document
+
+
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+
+
+ Document not saved
+ Document not saved
+
+
+ The document%1 could not be saved. Do you want to cancel closing it?
+ The document%1 could not be saved. Do you want to cancel closing it?
+
+
+ %1 Document(s) not saved
+ %1 Document(s) not saved
+
+
+ Some documents could not be saved. Do you want to cancel closing?
+ Some documents could not be saved. Do you want to cancel closing?
+ SelectionFilter
@@ -9820,6 +9864,10 @@ Do you still want to proceed?
Special OpsOperaţii speciale
+
+ Axonometric
+ Axonometric
+ testClass
diff --git a/src/Gui/Language/FreeCAD_ru.qm b/src/Gui/Language/FreeCAD_ru.qm
index 1339699eba..e1e09c935d 100644
Binary files a/src/Gui/Language/FreeCAD_ru.qm and b/src/Gui/Language/FreeCAD_ru.qm differ
diff --git a/src/Gui/Language/FreeCAD_ru.ts b/src/Gui/Language/FreeCAD_ru.ts
index 5c2f8fa325..985228d995 100644
--- a/src/Gui/Language/FreeCAD_ru.ts
+++ b/src/Gui/Language/FreeCAD_ru.ts
@@ -3289,10 +3289,6 @@ Opening mode: If you defined a hinge in this component or any other earlier in t
Gui::Dialog::DlgSettingsLazyLoaded
-
- Unloaded Workbenches
- Незагруженные верстаки
- Workbench NameНазвание верстака
@@ -3309,6 +3305,10 @@ Opening mode: If you defined a hinge in this component or any other earlier in t
<html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html><html><head/><body><p>Чтобы сэкономить ресурсы, FreeCAD не загружает верстаки до тех пор, пока они не будут использованы. После загрузки верстака, если это предусмотрено в настройках может появится дополнительный раздел с настройкам, связанным с функциональностью загруженного верстака.</p><p>В текущий момент доступны следующие верстаки, которые можно загрузить, если это требуется:</p></body></html>
+
+ Available Workbenches
+ Available Workbenches
+ Gui::Dialog::DlgSettingsLazyLoadedImp
@@ -4508,32 +4508,32 @@ The 'Status' column shows whether the document could be recovered.
Пожалуйста, выберите 1, 2 или 3 точки, прежде чем нажать эту кнопку. Точка может быть на вершине, грани или кромке. Если используемая точка на грани или кромке, то она будет точкой на позиции мыши вдоль грани или кромки. Если выбрана 1 точка, то она будет использоваться в качестве центра вращения. Если выбраны 2 точки, то посредине между ними будет центр вращения, и, при необходимости, будет создана новая пользовательская ось. Если выбраны 3 точки, то первая точка становится центром вращения, и будет лежать на векторе, который перпендикулярен плоскости, проходящей через эти 3 точки. Некоторые расстояния и углы содержатся в отчёте, который может быть полезен при выравнивании объектов. Для Вашего удобства при использовании Shift + щелчок мыши соответствующее расстояние или угол копируются в буфер обмена.
- Around y-axis:
- Вокруг оси y:
+ Pitch (around y-axis):
+ Pitch (around y-axis):
- Around z-axis:
- Вокруг оси z:
+ Roll (around x-axis):
+ Roll (around x-axis):
- Around x-axis:
- Вокруг оси x:
+ Yaw (around z-axis):
+ Yaw (around z-axis):
- Rotation around the x-axis
- Поворот вокруг оси X
+ Yaw (around z-axis)
+ Yaw (around z-axis)
- Rotation around the y-axis
- Поворот вокруг оси Y
+ Pitch (around y-axis)
+ Pitch (around y-axis)
- Rotation around the z-axis
- Поворот вокруг оси Z
+ Roll (around the x-axis)
+ Roll (around the x-axis)
- Euler angles (xy'z'')
- Углы Эйлера (xy'z'')
+ Euler angles (zy'x'')
+ Euler angles (zy'x'')
@@ -6055,6 +6055,18 @@ Do you want to specify another directory?
VietnameseВьетнамский
+
+ Bulgarian
+ Bulgarian
+
+
+ Greek
+ Греческий
+
+
+ Spanish, Argentina
+ Spanish, Argentina
+ Gui::TreeDockWidget
@@ -7015,6 +7027,38 @@ Physical path:
Физический путь:
+
+ Could not save document
+ Could not save document
+
+
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+
+
+ Document not saved
+ Document not saved
+
+
+ The document%1 could not be saved. Do you want to cancel closing it?
+ The document%1 could not be saved. Do you want to cancel closing it?
+
+
+ %1 Document(s) not saved
+ %1 Document(s) not saved
+
+
+ Some documents could not be saved. Do you want to cancel closing?
+ Some documents could not be saved. Do you want to cancel closing?
+ SelectionFilter
@@ -9822,6 +9866,10 @@ Do you still want to proceed?
Special OpsСпециальные операции
+
+ Axonometric
+ Аксонометрия
+ testClass
diff --git a/src/Gui/Language/FreeCAD_sl.qm b/src/Gui/Language/FreeCAD_sl.qm
index ac2e9a5141..8197a4d7e1 100644
Binary files a/src/Gui/Language/FreeCAD_sl.qm and b/src/Gui/Language/FreeCAD_sl.qm differ
diff --git a/src/Gui/Language/FreeCAD_sl.ts b/src/Gui/Language/FreeCAD_sl.ts
index 564dcf3e54..90987f7d58 100644
--- a/src/Gui/Language/FreeCAD_sl.ts
+++ b/src/Gui/Language/FreeCAD_sl.ts
@@ -3292,10 +3292,6 @@ Lahko uporabite tudi obliko: Neznanec <ne@znanec.com>
Gui::Dialog::DlgSettingsLazyLoaded
-
- Unloaded Workbenches
- Odložena delovna okolja
- Workbench NameIme delovnega okolja
@@ -3312,6 +3308,10 @@ Lahko uporabite tudi obliko: Neznanec <ne@znanec.com>
<html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html><html><head/><body><p>Zaradi varčevanja z viri FreeCAD ne naloži delovnih okolij, dokler se jih ne uporabi. Če jih naložite, vam bodo lahko na voljo dodatne prednastavitve, ki so povezane z njihovimi zmožnostmi.</p><p>V vaši namestitvi so na voljo naslednja delovna okolja:</p></body></html>
+
+ Available Workbenches
+ Available Workbenches
+ Gui::Dialog::DlgSettingsLazyLoadedImp
@@ -4508,32 +4508,32 @@ The 'Status' column shows whether the document could be recovered.
Izberite 1, 2 ali 3 točke preden kliknete ta gumb. Točka je lahko na ogljišču, ploskvi ali na robu. Če bo na ploskvi ali robu, bo uporabljena točka položaja kazalke na ploskvi ali robu. Če je izbrana 1 točka, bo uporabljena kot središče sukanja. Če sta izbrani 2 točki, bo točka na sredini med njima središče sukanja in ustvarjena bo nova os po meri, če bo potrebno. Če so izbrane 3 točke, prva točka postane središče vrtenja in leži na vektorju, ki je pravokoten na ravnino, določeno s temi 3 točkami. Nekateri podatki o razdaljah in kotih so podani v poročilnem pogledu, ki je lahko koristen posebno pri poravnavanju objektov. Za lažjo uporabo se s Premakni + klik ustrezna razdalja ali kot kopira v odložišče.
- Around y-axis:
- Okoli osi y:
+ Pitch (around y-axis):
+ Pitch (around y-axis):
- Around z-axis:
- Okoli osi z:
+ Roll (around x-axis):
+ Roll (around x-axis):
- Around x-axis:
- Okoli osi x:
+ Yaw (around z-axis):
+ Yaw (around z-axis):
- Rotation around the x-axis
- Sukanje okoli osi x
+ Yaw (around z-axis)
+ Yaw (around z-axis)
- Rotation around the y-axis
- Sukanje okoli osi y
+ Pitch (around y-axis)
+ Pitch (around y-axis)
- Rotation around the z-axis
- Sukanje okoli osi z
+ Roll (around the x-axis)
+ Roll (around the x-axis)
- Euler angles (xy'z'')
- Eulerjevi koti (xy'z")
+ Euler angles (zy'x'')
+ Euler angles (zy'x'')
@@ -4698,13 +4698,13 @@ The 'Status' column shows whether the document could be recovered.
&Use Original Selections
- &Use Original Selections
+ &Uporabi izvorni izborIgnore dependencies and proceed with objects
originally selected prior to opening this dialog
- Ignore dependencies and proceed with objects
-originally selected prior to opening this dialog
+ Prezri odvisnosti in nadaljuj s predmeti, ki so bili
+izbrani pred odprtjem tega pogovrnega okna
@@ -6059,6 +6059,18 @@ Ali želite navesti drugo mapo?
VietnameseVietnamščina
+
+ Bulgarian
+ Bulgarian
+
+
+ Greek
+ Grščina
+
+
+ Spanish, Argentina
+ Spanish, Argentina
+ Gui::TreeDockWidget
@@ -7023,6 +7035,38 @@ Physical path:
Tvarna pot:
+
+ Could not save document
+ Could not save document
+
+
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+
+
+ Document not saved
+ Document not saved
+
+
+ The document%1 could not be saved. Do you want to cancel closing it?
+ The document%1 could not be saved. Do you want to cancel closing it?
+
+
+ %1 Document(s) not saved
+ %1 Document(s) not saved
+
+
+ Some documents could not be saved. Do you want to cancel closing?
+ Some documents could not be saved. Do you want to cancel closing?
+ SelectionFilter
@@ -8799,11 +8843,11 @@ Tvarna pot:
StdCmdUserEditModeEdit mode
- Edit mode
+ Način urejanjaDefines behavior when editing an object from tree
- Defines behavior when editing an object from tree
+ Opredeljuje obnašanje pri urejanju predmeta iz drevesa
@@ -9830,6 +9874,10 @@ Ali želite vseeno nadaljevati?
Special OpsPosebne možnosti
+
+ Axonometric
+ Aksonometrično
+ testClass
diff --git a/src/Gui/Language/FreeCAD_sv-SE.qm b/src/Gui/Language/FreeCAD_sv-SE.qm
index 8e4a685412..d5ce49931f 100644
Binary files a/src/Gui/Language/FreeCAD_sv-SE.qm and b/src/Gui/Language/FreeCAD_sv-SE.qm differ
diff --git a/src/Gui/Language/FreeCAD_sv-SE.ts b/src/Gui/Language/FreeCAD_sv-SE.ts
index 0ec1a95413..154d4019c5 100644
--- a/src/Gui/Language/FreeCAD_sv-SE.ts
+++ b/src/Gui/Language/FreeCAD_sv-SE.ts
@@ -3292,10 +3292,6 @@ Du kan också använda formuläret: John Doe <john@doe.com>
Gui::Dialog::DlgSettingsLazyLoaded
-
- Unloaded Workbenches
- Oladdade arbetsbänkar
- Workbench NameWorkbench Name
@@ -3312,6 +3308,10 @@ Du kan också använda formuläret: John Doe <john@doe.com>
<html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html><html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html>
+
+ Available Workbenches
+ Available Workbenches
+ Gui::Dialog::DlgSettingsLazyLoadedImp
@@ -4506,32 +4506,32 @@ The 'Status' column shows whether the document could be recovered.
Vänligen välj en, två eller tre punkter och tryck sedan på denna knapp. En punkt kan antingen vara en hörnpunkt eller ligga på en kant eller yta. Om en kant eller yta väljs, kommer punkten ligga vid musens position på kanten eller ytan. Om en punkt är vald kommer den vara rotationscentrum. Om två punkter är valda kommer mittpunkten mellan dom att vara rotationscentrum, och en ny axel kommer skapas vid behov. Om tre punkter är valda kommer den första punkten att vara rotationscentrum och ligga på normalvektorn mot det plan som definieras av dom tre valda punkterna. Viss distans- och vinkelinformation är tillgänglig i rapport-vyn, vilket kan vara användbart när objekt ska justeras. För enkelhetens skull så kopieras lämplig distans och vinkel vid skift + klick.
- Around y-axis:
- Runt y-axeln:
+ Pitch (around y-axis):
+ Pitch (around y-axis):
- Around z-axis:
- Runt z-axeln:
+ Roll (around x-axis):
+ Roll (around x-axis):
- Around x-axis:
- Runt x-axeln:
+ Yaw (around z-axis):
+ Yaw (around z-axis):
- Rotation around the x-axis
- Rotation runt x-axeln
+ Yaw (around z-axis)
+ Yaw (around z-axis)
- Rotation around the y-axis
- Rotation runt y-axeln
+ Pitch (around y-axis)
+ Pitch (around y-axis)
- Rotation around the z-axis
- Rotation runt z-axeln
+ Roll (around the x-axis)
+ Roll (around the x-axis)
- Euler angles (xy'z'')
- Eulervinklar (xy'z'')
+ Euler angles (zy'x'')
+ Euler angles (zy'x'')
@@ -6057,6 +6057,18 @@ Vill du ange en annan katalog?
VietnameseVietnamesiska
+
+ Bulgarian
+ Bulgarian
+
+
+ Greek
+ Grekiska
+
+
+ Spanish, Argentina
+ Spanish, Argentina
+ Gui::TreeDockWidget
@@ -7021,6 +7033,38 @@ Physical path:
Physical path:
+
+ Could not save document
+ Could not save document
+
+
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+
+
+ Document not saved
+ Document not saved
+
+
+ The document%1 could not be saved. Do you want to cancel closing it?
+ The document%1 could not be saved. Do you want to cancel closing it?
+
+
+ %1 Document(s) not saved
+ %1 Document(s) not saved
+
+
+ Some documents could not be saved. Do you want to cancel closing?
+ Some documents could not be saved. Do you want to cancel closing?
+ SelectionFilter
@@ -9826,6 +9870,10 @@ Vill du fortfarande fortsätta?
Special OpsSpecial operationer
+
+ Axonometric
+ Axonometrisk
+ testClass
diff --git a/src/Gui/Language/FreeCAD_tr.qm b/src/Gui/Language/FreeCAD_tr.qm
index 11e75789ba..1bf81124ef 100644
Binary files a/src/Gui/Language/FreeCAD_tr.qm and b/src/Gui/Language/FreeCAD_tr.qm differ
diff --git a/src/Gui/Language/FreeCAD_tr.ts b/src/Gui/Language/FreeCAD_tr.ts
index 4da70a81b5..6faf3a1649 100644
--- a/src/Gui/Language/FreeCAD_tr.ts
+++ b/src/Gui/Language/FreeCAD_tr.ts
@@ -3285,10 +3285,6 @@ Ayrıca formu da kullanabilirsiniz: John Doe <john@doe.com>
Gui::Dialog::DlgSettingsLazyLoaded
-
- Unloaded Workbenches
- Çalışma Tezgahları Yüklenmedi
- Workbench NameTezgah Adı
@@ -3305,6 +3301,10 @@ Ayrıca formu da kullanabilirsiniz: John Doe <john@doe.com>
<html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html><html><head/><body> <p> Kaynakları korumak için FreeCAD, kullanılıncaya kadar çalışma tezgahlarını yüklemez. Bunları yüklemek, işlevleriyle ilgili ek tercihlere erişim sağlayabilir. </p> <p> Aşağıdaki çalışma tezgahları kurulumunuzda mevcuttur, ancak henüz yüklenmemiştir: </p> </body> </html>
+
+ Available Workbenches
+ Available Workbenches
+ Gui::Dialog::DlgSettingsLazyLoadedImp
@@ -4503,32 +4503,32 @@ The 'Status' column shows whether the document could be recovered.
Bu tuşa basmadan önce lütfen 1, 2 veya 3 nokta seçin. Bir nokta, yüzey veya kenarda bir nokta olabilir. Bir yüzey veya kenarda kullanılan nokta, yüzey veya kenar boyunca fare konumunda bulunan nokta olacaktır. 1 nokta seçilirse, dönüş merkezi olarak kullanılacaktır. 2 nokta seçilirse, aralarındaki orta nokta, dönme merkezi olacak ve gerekirse yeni bir özel eksen oluşturulacaktır. 3 nokta seçilirse, ilk nokta dönme merkezi olur ve 3 nokta tarafından tanımlanan düzlemde normal olan vektör üzerinde bulunur. Nesneleri hizalarken faydalı olabilecek, rapor görünümünde bazı mesafe ve açı bilgileri sağlanır. Shift + tıklama kullanıldığında kolaylık için uygun mesafe veya açı panoya kopyalanır.
- Around y-axis:
- Y ekseni etrafında:
+ Pitch (around y-axis):
+ Pitch (around y-axis):
- Around z-axis:
- Z ekseni etrafında:
+ Roll (around x-axis):
+ Roll (around x-axis):
- Around x-axis:
- X ekseni etrafında:
+ Yaw (around z-axis):
+ Yaw (around z-axis):
- Rotation around the x-axis
- X ekseni etrafında dönme
+ Yaw (around z-axis)
+ Yaw (around z-axis)
- Rotation around the y-axis
- Y ekseni etrafında dönme
+ Pitch (around y-axis)
+ Pitch (around y-axis)
- Rotation around the z-axis
- Z ekseni etrafında dönme
+ Roll (around the x-axis)
+ Roll (around the x-axis)
- Euler angles (xy'z'')
- Euler açıları (xy'z'')
+ Euler angles (zy'x'')
+ Euler angles (zy'x'')
@@ -6052,6 +6052,18 @@ Başka bir dizin belirlemek ister misiniz?
VietnameseVietnamca
+
+ Bulgarian
+ Bulgarian
+
+
+ Greek
+ Yunanca
+
+
+ Spanish, Argentina
+ Spanish, Argentina
+ Gui::TreeDockWidget
@@ -7011,6 +7023,38 @@ Physical path:
Fiziksel yol:
+
+ Could not save document
+ Could not save document
+
+
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+
+
+ Document not saved
+ Document not saved
+
+
+ The document%1 could not be saved. Do you want to cancel closing it?
+ The document%1 could not be saved. Do you want to cancel closing it?
+
+
+ %1 Document(s) not saved
+ %1 Document(s) not saved
+
+
+ Some documents could not be saved. Do you want to cancel closing?
+ Some documents could not be saved. Do you want to cancel closing?
+ SelectionFilter
@@ -9817,6 +9861,10 @@ Hala ilerlemek istiyor musunuz?
Special OpsÖzel Ops
+
+ Axonometric
+ Aksonometrik
+ testClass
diff --git a/src/Gui/Language/FreeCAD_uk.qm b/src/Gui/Language/FreeCAD_uk.qm
index 4462d96231..f23f587d19 100644
Binary files a/src/Gui/Language/FreeCAD_uk.qm and b/src/Gui/Language/FreeCAD_uk.qm differ
diff --git a/src/Gui/Language/FreeCAD_uk.ts b/src/Gui/Language/FreeCAD_uk.ts
index 0c7f576579..287ceaa20b 100644
--- a/src/Gui/Language/FreeCAD_uk.ts
+++ b/src/Gui/Language/FreeCAD_uk.ts
@@ -3289,10 +3289,6 @@ You can also use the form: John Doe <john@doe.com>
Gui::Dialog::DlgSettingsLazyLoaded
-
- Unloaded Workbenches
- Вивантажені робочі середовища
- Workbench NameНазва робочого середовища
@@ -3309,6 +3305,10 @@ You can also use the form: John Doe <john@doe.com>
<html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html><html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html>
+
+ Available Workbenches
+ Available Workbenches
+ Gui::Dialog::DlgSettingsLazyLoadedImp
@@ -4507,32 +4507,32 @@ The 'Status' column shows whether the document could be recovered.
Будь ласка, виберіть 1, 2 або 3 точки перед натисканням на цю кнопку. Точка може бути на вершині, поверхні або на ребрі. Якщо вибрати на поверхні або на ребрі, то обраною буде точка найближча до курсора, що належить поверхні або ребру. Якщо вибрано 1 точку, вона буде використовуватися як центр обертання. При виборі двох точок, центром обертання буде середина між ними, а також при потребі буде додано нову вісь обертання. При виборі 3 точок, перша точка стає центром обертання і лежить на векторі, що буде нормаллю до площини утвореної трьома вибраними точками. У додатвовій інформації також надаються дані про відстань та кут. Це може бути корисним для вирівнювання об'єктів. Для вашої зручності при кліку з натисненим Shift відповідна відстань або кут буде скопійовано в буфер обміну.
- Around y-axis:
- Навколо осі Y:
+ Pitch (around y-axis):
+ Pitch (around y-axis):
- Around z-axis:
- Навколо осі Z:
+ Roll (around x-axis):
+ Roll (around x-axis):
- Around x-axis:
- Навколо осі X:
+ Yaw (around z-axis):
+ Yaw (around z-axis):
- Rotation around the x-axis
- Обертання навколо осі Х
+ Yaw (around z-axis)
+ Yaw (around z-axis)
- Rotation around the y-axis
- Обертання навколо осі У
+ Pitch (around y-axis)
+ Pitch (around y-axis)
- Rotation around the z-axis
- Обертання навколо осі Z
+ Roll (around the x-axis)
+ Roll (around the x-axis)
- Euler angles (xy'z'')
- Ейлерові кути (xy'z'')
+ Euler angles (zy'x'')
+ Euler angles (zy'x'')
@@ -6055,6 +6055,18 @@ Do you want to specify another directory?
VietnameseВ’єтнамська
+
+ Bulgarian
+ Bulgarian
+
+
+ Greek
+ Грецька
+
+
+ Spanish, Argentina
+ Spanish, Argentina
+ Gui::TreeDockWidget
@@ -7017,6 +7029,38 @@ Physical path:
Physical path:
+
+ Could not save document
+ Could not save document
+
+
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+
+
+ Document not saved
+ Document not saved
+
+
+ The document%1 could not be saved. Do you want to cancel closing it?
+ The document%1 could not be saved. Do you want to cancel closing it?
+
+
+ %1 Document(s) not saved
+ %1 Document(s) not saved
+
+
+ Some documents could not be saved. Do you want to cancel closing?
+ Some documents could not be saved. Do you want to cancel closing?
+ SelectionFilter
@@ -8793,7 +8837,7 @@ Physical path:
StdCmdUserEditModeEdit mode
- Edit mode
+ Режим редагуванняDefines behavior when editing an object from tree
@@ -9824,6 +9868,10 @@ Do you still want to proceed?
Special OpsСпеціальні операції
+
+ Axonometric
+ Аксонометрія
+ testClass
diff --git a/src/Gui/Language/FreeCAD_val-ES.qm b/src/Gui/Language/FreeCAD_val-ES.qm
index e7a225ce45..ccfc6d3090 100644
Binary files a/src/Gui/Language/FreeCAD_val-ES.qm and b/src/Gui/Language/FreeCAD_val-ES.qm differ
diff --git a/src/Gui/Language/FreeCAD_val-ES.ts b/src/Gui/Language/FreeCAD_val-ES.ts
index 706ebef86d..c4d90d77b1 100644
--- a/src/Gui/Language/FreeCAD_val-ES.ts
+++ b/src/Gui/Language/FreeCAD_val-ES.ts
@@ -3279,10 +3279,6 @@ També podeu utilitzar la forma: Joan Peris <joan@peris.com>
Gui::Dialog::DlgSettingsLazyLoaded
-
- Unloaded Workbenches
- Unloaded Workbenches
- Workbench NameWorkbench Name
@@ -3299,6 +3295,10 @@ També podeu utilitzar la forma: Joan Peris <joan@peris.com>
<html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html><html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html>
+
+ Available Workbenches
+ Available Workbenches
+ Gui::Dialog::DlgSettingsLazyLoadedImp
@@ -4494,32 +4494,32 @@ La columna 'Estat? mostra si el document es pot recuperar.
Seleccioneu 1, 2 o 3 punts abans de fer clic en aquest botó. Un punt pot estar en un vèrtex, cara o aresta. Si esteu en una cara o aresta, el punt utilitzat serà el punt en la cara o aresta en la posició del ratolí. Si 1 punt és seleccionat serà utilitzat com a centre de rotació. Si se seleccionen 2 punts, el punt mig entre ells serà el centre de rotació i un nou eix personalitzat es crearà, si és necessari. Si se seleccionen 3 punts, el primer punt es converteix en el centre de rotació i es troba en el vector que és normal al pla definit per 3 punts. Alguns detalls de distància i angle es proporcionen en la visualització d'informe, que pot ser útil per a alinear objectes. Per a la vostra comoditat, quan feu Majúscules + clic s'utilitza la distància adequada o l'angle es copia al porta-retalls.
- Around y-axis:
- Al voltant de l'eix Y:
+ Pitch (around y-axis):
+ Pitch (around y-axis):
- Around z-axis:
- Al voltant de l'eix Z:
+ Roll (around x-axis):
+ Roll (around x-axis):
- Around x-axis:
- Al voltant de l'eix X:
+ Yaw (around z-axis):
+ Yaw (around z-axis):
- Rotation around the x-axis
- Rotació al voltant de l'eix X
+ Yaw (around z-axis)
+ Yaw (around z-axis)
- Rotation around the y-axis
- Rotació al voltant de l'eix Y
+ Pitch (around y-axis)
+ Pitch (around y-axis)
- Rotation around the z-axis
- Rotació al voltant de l'eix Z
+ Roll (around the x-axis)
+ Roll (around the x-axis)
- Euler angles (xy'z'')
- Angles d'Euler (Xy'Z'')
+ Euler angles (zy'x'')
+ Euler angles (zy'x'')
@@ -6036,6 +6036,18 @@ Do you want to specify another directory?
VietnameseVietnamita
+
+ Bulgarian
+ Bulgarian
+
+
+ Greek
+ Grec
+
+
+ Spanish, Argentina
+ Spanish, Argentina
+ Gui::TreeDockWidget
@@ -6994,6 +7006,38 @@ Physical path:
Physical path:
+
+ Could not save document
+ Could not save document
+
+
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+
+
+ Document not saved
+ Document not saved
+
+
+ The document%1 could not be saved. Do you want to cancel closing it?
+ The document%1 could not be saved. Do you want to cancel closing it?
+
+
+ %1 Document(s) not saved
+ %1 Document(s) not saved
+
+
+ Some documents could not be saved. Do you want to cancel closing?
+ Some documents could not be saved. Do you want to cancel closing?
+ SelectionFilter
@@ -9801,6 +9845,10 @@ Encara voleu continuar?
Special OpsOperacions especials
+
+ Axonometric
+ Axonomètrica
+ testClass
diff --git a/src/Gui/Language/FreeCAD_vi.qm b/src/Gui/Language/FreeCAD_vi.qm
index 2dcddd5962..d1d011f01f 100644
Binary files a/src/Gui/Language/FreeCAD_vi.qm and b/src/Gui/Language/FreeCAD_vi.qm differ
diff --git a/src/Gui/Language/FreeCAD_vi.ts b/src/Gui/Language/FreeCAD_vi.ts
index ee46fbfc9e..75b1b10d6a 100644
--- a/src/Gui/Language/FreeCAD_vi.ts
+++ b/src/Gui/Language/FreeCAD_vi.ts
@@ -3293,10 +3293,6 @@ You can also use the form: John Doe <john@doe.com>
Gui::Dialog::DlgSettingsLazyLoaded
-
- Unloaded Workbenches
- Unloaded Workbenches
- Workbench NameWorkbench Name
@@ -3313,6 +3309,10 @@ You can also use the form: John Doe <john@doe.com>
<html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html><html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html>
+
+ Available Workbenches
+ Available Workbenches
+ Gui::Dialog::DlgSettingsLazyLoadedImp
@@ -4511,32 +4511,32 @@ Cột 'Trạng thái' cho biết liệu tài liệu có thể được khôi ph
Please select 1, 2, or 3 points before clicking this button. A point may be on a vertex, face, or edge. If on a face or edge the point used will be the point at the mouse position along face or edge. If 1 point is selected it will be used as the center of rotation. If 2 points are selected the midpoint between them will be the center of rotation and a new custom axis will be created, if needed. If 3 points are selected the first point becomes the center of rotation and lies on the vector that is normal to the plane defined by the 3 points. Some distance and angle information is provided in the report view, which can be useful when aligning objects. For your convenience when Shift + click is used the appropriate distance or angle is copied to the clipboard.
- Around y-axis:
- Around y-axis:
+ Pitch (around y-axis):
+ Pitch (around y-axis):
- Around z-axis:
- Around z-axis:
+ Roll (around x-axis):
+ Roll (around x-axis):
- Around x-axis:
- Around x-axis:
+ Yaw (around z-axis):
+ Yaw (around z-axis):
- Rotation around the x-axis
- Rotation around the x-axis
+ Yaw (around z-axis)
+ Yaw (around z-axis)
- Rotation around the y-axis
- Rotation around the y-axis
+ Pitch (around y-axis)
+ Pitch (around y-axis)
- Rotation around the z-axis
- Rotation around the z-axis
+ Roll (around the x-axis)
+ Roll (around the x-axis)
- Euler angles (xy'z'')
- Euler angles (xy'z'')
+ Euler angles (zy'x'')
+ Euler angles (zy'x'')
@@ -6062,6 +6062,18 @@ Bạn có muốn chỉ định thư mục khác không?
VietnameseVietnamese
+
+ Bulgarian
+ Bulgarian
+
+
+ Greek
+ Tiếng Hy Lạp
+
+
+ Spanish, Argentina
+ Spanish, Argentina
+ Gui::TreeDockWidget
@@ -7026,6 +7038,38 @@ Physical path:
Physical path:
+
+ Could not save document
+ Could not save document
+
+
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+
+
+ Document not saved
+ Document not saved
+
+
+ The document%1 could not be saved. Do you want to cancel closing it?
+ The document%1 could not be saved. Do you want to cancel closing it?
+
+
+ %1 Document(s) not saved
+ %1 Document(s) not saved
+
+
+ Some documents could not be saved. Do you want to cancel closing?
+ Some documents could not be saved. Do you want to cancel closing?
+ SelectionFilter
@@ -9833,6 +9877,10 @@ Do you still want to proceed?
Special OpsTính năng đặc biệt
+
+ Axonometric
+ Phép chiếu có trục đo
+ testClass
diff --git a/src/Gui/Language/FreeCAD_zh-CN.qm b/src/Gui/Language/FreeCAD_zh-CN.qm
index 5542ca3dac..464c4536df 100644
Binary files a/src/Gui/Language/FreeCAD_zh-CN.qm and b/src/Gui/Language/FreeCAD_zh-CN.qm differ
diff --git a/src/Gui/Language/FreeCAD_zh-CN.ts b/src/Gui/Language/FreeCAD_zh-CN.ts
index 5b5f8bc62d..669518036a 100644
--- a/src/Gui/Language/FreeCAD_zh-CN.ts
+++ b/src/Gui/Language/FreeCAD_zh-CN.ts
@@ -3281,10 +3281,6 @@ You can also use the form: John Doe <john@doe.com>
Gui::Dialog::DlgSettingsLazyLoaded
-
- Unloaded Workbenches
- Unloaded Workbenches
- Workbench NameWorkbench Name
@@ -3301,6 +3297,10 @@ You can also use the form: John Doe <john@doe.com>
<html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html><html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html>
+
+ Available Workbenches
+ Available Workbenches
+ Gui::Dialog::DlgSettingsLazyLoadedImp
@@ -4498,32 +4498,32 @@ The 'Status' column shows whether the document could be recovered.
单击此按钮之前,请选择1,2或3个点。点可以位于顶点,面或边上。如果在面或边缘上,所使用的点将是沿着面或边缘的鼠标位置处的点。如果选择1点,则将其用作旋转中心。如果选择了2个点,则它们之间的中点将成为旋转中心,必要时将新建自定义轴。如果选择3个点,则第一个点成为旋转中心,并且位于与3个点定义的平面垂直的矢量上。报告视图中提供了一些距离和角度信息,这在对齐对象时非常有用。为方便,使用Shift+单击时,相应的距离或角度将复制到剪贴板。
- Around y-axis:
- Around y-axis:
+ Pitch (around y-axis):
+ Pitch (around y-axis):
- Around z-axis:
- Around z-axis:
+ Roll (around x-axis):
+ Roll (around x-axis):
- Around x-axis:
- Around x-axis:
+ Yaw (around z-axis):
+ Yaw (around z-axis):
- Rotation around the x-axis
- Rotation around the x-axis
+ Yaw (around z-axis)
+ Yaw (around z-axis)
- Rotation around the y-axis
- Rotation around the y-axis
+ Pitch (around y-axis)
+ Pitch (around y-axis)
- Rotation around the z-axis
- Rotation around the z-axis
+ Roll (around the x-axis)
+ Roll (around the x-axis)
- Euler angles (xy'z'')
- 欧拉角(xy'z'')
+ Euler angles (zy'x'')
+ Euler angles (zy'x'')
@@ -6043,6 +6043,18 @@ Do you want to specify another directory?
Vietnamese越南语
+
+ Bulgarian
+ Bulgarian
+
+
+ Greek
+ 希腊语
+
+
+ Spanish, Argentina
+ Spanish, Argentina
+ Gui::TreeDockWidget
@@ -7004,6 +7016,38 @@ Physical path:
物理路径:
+
+ Could not save document
+ Could not save document
+
+
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+
+
+ Document not saved
+ Document not saved
+
+
+ The document%1 could not be saved. Do you want to cancel closing it?
+ The document%1 could not be saved. Do you want to cancel closing it?
+
+
+ %1 Document(s) not saved
+ %1 Document(s) not saved
+
+
+ Some documents could not be saved. Do you want to cancel closing?
+ Some documents could not be saved. Do you want to cancel closing?
+ SelectionFilter
@@ -9811,6 +9855,10 @@ Do you still want to proceed?
Special Ops特殊设定
+
+ Axonometric
+ 轴测图
+ testClass
diff --git a/src/Gui/Language/FreeCAD_zh-TW.qm b/src/Gui/Language/FreeCAD_zh-TW.qm
index 8413477c4b..1a2af100df 100644
Binary files a/src/Gui/Language/FreeCAD_zh-TW.qm and b/src/Gui/Language/FreeCAD_zh-TW.qm differ
diff --git a/src/Gui/Language/FreeCAD_zh-TW.ts b/src/Gui/Language/FreeCAD_zh-TW.ts
index 4c5e023f1a..39a3211e03 100644
--- a/src/Gui/Language/FreeCAD_zh-TW.ts
+++ b/src/Gui/Language/FreeCAD_zh-TW.ts
@@ -3281,10 +3281,6 @@ You can also use the form: John Doe <john@doe.com>
Gui::Dialog::DlgSettingsLazyLoaded
-
- Unloaded Workbenches
- Unloaded Workbenches
- Workbench NameWorkbench Name
@@ -3301,6 +3297,10 @@ You can also use the form: John Doe <john@doe.com>
<html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html><html><head/><body><p>To preserve resources, FreeCAD does not load workbenches until they are used. Loading them may provide access to additional preferences related to their functionality.</p><p>The following workbenches are available in your installation:</p></body></html>
+
+ Available Workbenches
+ Available Workbenches
+ Gui::Dialog::DlgSettingsLazyLoadedImp
@@ -4499,32 +4499,32 @@ The 'Status' column shows whether the document could be recovered.
Please select 1, 2, or 3 points before clicking this button. A point may be on a vertex, face, or edge. If on a face or edge the point used will be the point at the mouse position along face or edge. If 1 point is selected it will be used as the center of rotation. If 2 points are selected the midpoint between them will be the center of rotation and a new custom axis will be created, if needed. If 3 points are selected the first point becomes the center of rotation and lies on the vector that is normal to the plane defined by the 3 points. Some distance and angle information is provided in the report view, which can be useful when aligning objects. For your convenience when Shift + click is used the appropriate distance or angle is copied to the clipboard.
- Around y-axis:
- Around y-axis:
+ Pitch (around y-axis):
+ Pitch (around y-axis):
- Around z-axis:
- Around z-axis:
+ Roll (around x-axis):
+ Roll (around x-axis):
- Around x-axis:
- Around x-axis:
+ Yaw (around z-axis):
+ Yaw (around z-axis):
- Rotation around the x-axis
- Rotation around the x-axis
+ Yaw (around z-axis)
+ Yaw (around z-axis)
- Rotation around the y-axis
- Rotation around the y-axis
+ Pitch (around y-axis)
+ Pitch (around y-axis)
- Rotation around the z-axis
- Rotation around the z-axis
+ Roll (around the x-axis)
+ Roll (around the x-axis)
- Euler angles (xy'z'')
- Euler angles (xy'z'')
+ Euler angles (zy'x'')
+ Euler angles (zy'x'')
@@ -6042,6 +6042,18 @@ Do you want to specify another directory?
VietnameseVietnamese
+
+ Bulgarian
+ Bulgarian
+
+
+ Greek
+ Greek 希臘語
+
+
+ Spanish, Argentina
+ Spanish, Argentina
+ Gui::TreeDockWidget
@@ -7000,6 +7012,38 @@ Physical path:
Physical path:
+
+ Could not save document
+ Could not save document
+
+
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+ There was an issue trying to save the file. This may be because some of the parent folders do not exist, or you do not have sufficient permissions, or for other reasons. Error details:
+
+"%1"
+
+Would you like to save the file with a different name?
+
+
+ Document not saved
+ Document not saved
+
+
+ The document%1 could not be saved. Do you want to cancel closing it?
+ The document%1 could not be saved. Do you want to cancel closing it?
+
+
+ %1 Document(s) not saved
+ %1 Document(s) not saved
+
+
+ Some documents could not be saved. Do you want to cancel closing?
+ Some documents could not be saved. Do you want to cancel closing?
+ SelectionFilter
@@ -9807,6 +9851,10 @@ Do you still want to proceed?
Special Ops特別行動
+
+ Axonometric
+ 軸測圖
+ testClass
diff --git a/src/Gui/PropertyPage.cpp b/src/Gui/PropertyPage.cpp
index f95379dc55..303b730516 100644
--- a/src/Gui/PropertyPage.cpp
+++ b/src/Gui/PropertyPage.cpp
@@ -25,7 +25,7 @@
#include "PropertyPage.h"
#include "PrefWidgets.h"
-#include "WidgetFactory.h"
+#include "UiLoader.h"
#include
using namespace Gui::Dialog;
diff --git a/src/Gui/PropertyPage.h b/src/Gui/PropertyPage.h
index 1718d60019..486d42ea50 100644
--- a/src/Gui/PropertyPage.h
+++ b/src/Gui/PropertyPage.h
@@ -25,6 +25,7 @@
#define GUI_DIALOG_PROPERTYPAGE_H
#include
+#include
namespace Gui {
namespace Dialog {
diff --git a/src/Gui/PythonWrapper.cpp b/src/Gui/PythonWrapper.cpp
new file mode 100644
index 0000000000..e7091a6ef0
--- /dev/null
+++ b/src/Gui/PythonWrapper.cpp
@@ -0,0 +1,652 @@
+/***************************************************************************
+ * Copyright (c) 2021 Werner Mayer *
+ * *
+ * This file is part of the FreeCAD CAx development system. *
+ * *
+ * This library is free software; you can redistribute it and/or *
+ * modify it under the terms of the GNU Library General Public *
+ * License as published by the Free Software Foundation; either *
+ * version 2 of the License, or (at your option) any later version. *
+ * *
+ * This library 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 library; see the file COPYING.LIB. If not, *
+ * write to the Free Software Foundation, Inc., 59 Temple Place, *
+ * Suite 330, Boston, MA 02111-1307, USA *
+ * *
+ ***************************************************************************/
+
+
+#include "PreCompiled.h"
+#ifndef _PreComp_
+# include
+# include
+# include
+# include
+# include
+#endif
+#include
+
+// Uncomment this block to remove PySide C++ support and switch to its Python interface
+//#undef HAVE_SHIBOKEN
+//#undef HAVE_PYSIDE
+//#undef HAVE_SHIBOKEN2
+//#undef HAVE_PYSIDE2
+
+#ifdef FC_OS_WIN32
+#undef max
+#undef min
+#ifdef _MSC_VER
+#pragma warning( disable : 4099 )
+#pragma warning( disable : 4522 )
+#endif
+#endif
+
+// class and struct used for SbkObject
+#if defined(__clang__)
+# pragma clang diagnostic push
+# pragma clang diagnostic ignored "-Wmismatched-tags"
+# pragma clang diagnostic ignored "-Wunused-parameter"
+# if __clang_major__ > 3
+# pragma clang diagnostic ignored "-Wkeyword-macro"
+# endif
+#elif defined (__GNUC__)
+# pragma GCC diagnostic push
+# pragma GCC diagnostic ignored "-Wunused-parameter"
+# pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#endif
+
+#ifdef HAVE_SHIBOKEN
+# undef _POSIX_C_SOURCE
+# undef _XOPEN_SOURCE
+# include
+# include
+# include
+# include
+# include
+# ifdef HAVE_PYSIDE
+# include
+# include
+PyTypeObject** SbkPySide_QtCoreTypes=nullptr;
+PyTypeObject** SbkPySide_QtGuiTypes=nullptr;
+# endif
+#endif
+
+#ifdef HAVE_SHIBOKEN2
+# define HAVE_SHIBOKEN
+# undef _POSIX_C_SOURCE
+# undef _XOPEN_SOURCE
+# include
+# include
+# include
+# include
+# ifdef HAVE_PYSIDE2
+# define HAVE_PYSIDE
+
+// Since version 5.12 shiboken offers a method to get wrapper by class name (typeForTypeName)
+// This helps to avoid to include the PySide2 headers since MSVC has a compiler bug when
+// compiling together with std::bitset (https://bugreports.qt.io/browse/QTBUG-72073)
+
+// Do not use SHIBOKEN_MICRO_VERSION; it might contain a dot
+# define SHIBOKEN_FULL_VERSION QT_VERSION_CHECK(SHIBOKEN_MAJOR_VERSION, SHIBOKEN_MINOR_VERSION, 0)
+# if (SHIBOKEN_FULL_VERSION >= QT_VERSION_CHECK(5, 12, 0))
+# define HAVE_SHIBOKEN_TYPE_FOR_TYPENAME
+# endif
+
+# ifndef HAVE_SHIBOKEN_TYPE_FOR_TYPENAME
+# include
+# include
+# include
+# endif
+# include
+PyTypeObject** SbkPySide2_QtCoreTypes=nullptr;
+PyTypeObject** SbkPySide2_QtGuiTypes=nullptr;
+PyTypeObject** SbkPySide2_QtWidgetsTypes=nullptr;
+# endif // HAVE_PYSIDE2
+#endif // HAVE_SHIBOKEN2
+
+#if defined(__clang__)
+# pragma clang diagnostic pop
+#elif defined (__GNUC__)
+# pragma GCC diagnostic pop
+#endif
+
+#include
+#include
+#include
+
+#include "PythonWrapper.h"
+#include "UiLoader.h"
+#include "MetaTypes.h"
+
+
+using namespace Gui;
+
+#if defined (HAVE_SHIBOKEN)
+
+/**
+ Example:
+ \code
+ ui = FreeCADGui.UiLoader()
+ w = ui.createWidget("Gui::InputField")
+ w.show()
+ w.property("quantity")
+ \endcode
+ */
+
+PyObject* toPythonFuncQuantityTyped(Base::Quantity cpx) {
+ return new Base::QuantityPy(new Base::Quantity(cpx));
+}
+
+PyObject* toPythonFuncQuantity(const void* cpp)
+{
+ return toPythonFuncQuantityTyped(*reinterpret_cast(cpp));
+}
+
+void toCppPointerConvFuncQuantity(PyObject* pyobj,void* cpp)
+{
+ *((Base::Quantity*)cpp) = *static_cast(pyobj)->getQuantityPtr();
+}
+
+PythonToCppFunc toCppPointerCheckFuncQuantity(PyObject* obj)
+{
+ if (PyObject_TypeCheck(obj, &(Base::QuantityPy::Type)))
+ return toCppPointerConvFuncQuantity;
+ else
+ return nullptr;
+}
+
+void BaseQuantity_PythonToCpp_QVariant(PyObject* pyIn, void* cppOut)
+{
+ Base::Quantity* q = static_cast(pyIn)->getQuantityPtr();
+ *((QVariant*)cppOut) = QVariant::fromValue(*q);
+}
+
+PythonToCppFunc isBaseQuantity_PythonToCpp_QVariantConvertible(PyObject* obj)
+{
+ if (PyObject_TypeCheck(obj, &(Base::QuantityPy::Type)))
+ return BaseQuantity_PythonToCpp_QVariant;
+ return nullptr;
+}
+
+#if defined (HAVE_PYSIDE)
+Base::Quantity convertWrapperToQuantity(const PySide::PyObjectWrapper &w)
+{
+ PyObject* pyIn = static_cast(w);
+ if (PyObject_TypeCheck(pyIn, &(Base::QuantityPy::Type))) {
+ return *static_cast(pyIn)->getQuantityPtr();
+ }
+
+ return Base::Quantity(std::numeric_limits::quiet_NaN());
+}
+#endif
+
+void registerTypes()
+{
+ SbkConverter* convert = Shiboken::Conversions::createConverter(&Base::QuantityPy::Type,
+ toPythonFuncQuantity);
+ Shiboken::Conversions::setPythonToCppPointerFunctions(convert,
+ toCppPointerConvFuncQuantity,
+ toCppPointerCheckFuncQuantity);
+ Shiboken::Conversions::registerConverterName(convert, "Base::Quantity");
+
+ SbkConverter* qvariant_conv = Shiboken::Conversions::getConverter("QVariant");
+ if (qvariant_conv) {
+ // The type QVariant already has a converter from PyBaseObject_Type which will
+ // come before our own converter.
+ Shiboken::Conversions::addPythonToCppValueConversion(qvariant_conv,
+ BaseQuantity_PythonToCpp_QVariant,
+ isBaseQuantity_PythonToCpp_QVariantConvertible);
+ }
+
+#if defined (HAVE_PYSIDE)
+ QMetaType::registerConverter(&convertWrapperToQuantity);
+#endif
+}
+#endif
+
+// --------------------------------------------------------
+
+namespace Gui {
+template
+Py::Object qt_wrapInstance(qttype object, const char* className,
+ const char* shiboken, const char* pyside,
+ const char* wrap)
+{
+ PyObject* module = PyImport_ImportModule(shiboken);
+ if (!module) {
+ std::string error = "Cannot load ";
+ error += shiboken;
+ error += " module";
+ throw Py::Exception(PyExc_ImportError, error);
+ }
+
+ Py::Module mainmod(module, true);
+ Py::Callable func = mainmod.getDict().getItem(wrap);
+
+ Py::Tuple arguments(2);
+ arguments[0] = Py::asObject(PyLong_FromVoidPtr((void*)object));
+
+ module = PyImport_ImportModule(pyside);
+ if (!module) {
+ std::string error = "Cannot load ";
+ error += pyside;
+ error += " module";
+ throw Py::Exception(PyExc_ImportError, error);
+ }
+
+ Py::Module qtmod(module);
+ arguments[1] = qtmod.getDict().getItem(className);
+ return func.apply(arguments);
+}
+
+const char* qt_identifyType(QObject* ptr, const char* pyside)
+{
+ PyObject* module = PyImport_ImportModule(pyside);
+ if (!module) {
+ std::string error = "Cannot load ";
+ error += pyside;
+ error += " module";
+ throw Py::Exception(PyExc_ImportError, error);
+ }
+
+ Py::Module qtmod(module);
+ const QMetaObject* metaObject = ptr->metaObject();
+ while (metaObject) {
+ const char* className = metaObject->className();
+ if (qtmod.getDict().hasKey(className))
+ return className;
+ metaObject = metaObject->superClass();
+ }
+
+ return nullptr;
+}
+
+void* qt_getCppPointer(const Py::Object& pyobject, const char* shiboken, const char* unwrap)
+{
+ // https://github.com/PySide/Shiboken/blob/master/shibokenmodule/typesystem_shiboken.xml
+ PyObject* module = PyImport_ImportModule(shiboken);
+ if (!module) {
+ std::string error = "Cannot load ";
+ error += shiboken;
+ error += " module";
+ throw Py::Exception(PyExc_ImportError, error);
+ }
+
+ Py::Module mainmod(module, true);
+ Py::Callable func = mainmod.getDict().getItem(unwrap);
+
+ Py::Tuple arguments(1);
+ arguments[0] = pyobject; //PySide pointer
+ Py::Tuple result(func.apply(arguments));
+ void* ptr = PyLong_AsVoidPtr(result[0].ptr());
+ return ptr;
+}
+
+
+template
+PyTypeObject *getPyTypeObjectForTypeName()
+{
+#if defined (HAVE_SHIBOKEN) && defined(HAVE_PYSIDE)
+#if defined (HAVE_SHIBOKEN_TYPE_FOR_TYPENAME)
+ SbkObjectType* sbkType = Shiboken::ObjectType::typeForTypeName(typeid(qttype).name());
+ if (sbkType)
+ return &(sbkType->type);
+#else
+ return Shiboken::SbkType();
+#endif
+#endif
+ return nullptr;
+}
+}
+
+// --------------------------------------------------------
+
+PythonWrapper::PythonWrapper()
+{
+#if defined (HAVE_SHIBOKEN)
+ static bool init = false;
+ if (!init) {
+ init = true;
+ registerTypes();
+ }
+#endif
+}
+
+bool PythonWrapper::toCString(const Py::Object& pyobject, std::string& str)
+{
+ if (PyUnicode_Check(pyobject.ptr())) {
+ PyObject* unicode = PyUnicode_AsUTF8String(pyobject.ptr());
+ str = PyBytes_AsString(unicode);
+ Py_DECREF(unicode);
+ return true;
+ }
+ else if (PyBytes_Check(pyobject.ptr())) {
+ str = PyBytes_AsString(pyobject.ptr());
+ return true;
+ }
+#if defined (HAVE_SHIBOKEN) && defined(HAVE_PYSIDE)
+ if (Shiboken::String::check(pyobject.ptr())) {
+ const char* s = Shiboken::String::toCString(pyobject.ptr());
+ if (s) str = s;
+ return true;
+ }
+#endif
+ return false;
+}
+
+QObject* PythonWrapper::toQObject(const Py::Object& pyobject)
+{
+ // http://pastebin.com/JByDAF5Z
+#if defined (HAVE_SHIBOKEN) && defined(HAVE_PYSIDE)
+ PyTypeObject * type = getPyTypeObjectForTypeName();
+ if (type) {
+ if (Shiboken::Object::checkType(pyobject.ptr())) {
+ SbkObject* sbkobject = reinterpret_cast(pyobject.ptr());
+ void* cppobject = Shiboken::Object::cppPointer(sbkobject, type);
+ return reinterpret_cast(cppobject);
+ }
+ }
+#else
+ // Access shiboken2/PySide2 via Python
+ //
+ void* ptr = qt_getCppPointer(pyobject, "shiboken2", "getCppPointer");
+ return reinterpret_cast(ptr);
+#endif
+
+#if 0 // Unwrapping using sip/PyQt
+ void* ptr = qt_getCppPointer(pyobject, "sip", "unwrapinstance");
+ return reinterpret_cast(ptr);
+#endif
+
+ return nullptr;
+}
+
+QGraphicsItem* PythonWrapper::toQGraphicsItem(PyObject* pyPtr)
+{
+#if defined (HAVE_SHIBOKEN) && defined(HAVE_PYSIDE)
+ PyTypeObject* type = getPyTypeObjectForTypeName();
+ if (type) {
+ if (Shiboken::Object::checkType(pyPtr)) {
+ SbkObject* sbkobject = reinterpret_cast(pyPtr);
+ void* cppobject = Shiboken::Object::cppPointer(sbkobject, type);
+ return reinterpret_cast(cppobject);
+ }
+ }
+#else
+ // Access shiboken2/PySide2 via Python
+ //
+ void* ptr = qt_getCppPointer(Py::asObject(pyPtr), "shiboken2", "getCppPointer");
+ return reinterpret_cast(ptr);
+#endif
+ return nullptr;
+}
+
+Py::Object PythonWrapper::fromQIcon(const QIcon* icon)
+{
+#if defined (HAVE_SHIBOKEN) && defined(HAVE_PYSIDE)
+ const char* typeName = typeid(*const_cast(icon)).name();
+ PyObject* pyobj = Shiboken::Object::newObject(reinterpret_cast(getPyTypeObjectForTypeName()),
+ const_cast(icon), true, false, typeName);
+ if (pyobj)
+ return Py::asObject(pyobj);
+#else
+ // Access shiboken2/PySide2 via Python
+ //
+ return qt_wrapInstance(icon, "QIcon", "shiboken2", "PySide2.QtGui", "wrapInstance");
+#endif
+ throw Py::RuntimeError("Failed to wrap icon");
+}
+
+QIcon *PythonWrapper::toQIcon(PyObject *pyobj)
+{
+#if defined (HAVE_SHIBOKEN) && defined(HAVE_PYSIDE)
+ PyTypeObject * type = getPyTypeObjectForTypeName();
+ if(type) {
+ if (Shiboken::Object::checkType(pyobj)) {
+ SbkObject* sbkobject = reinterpret_cast(pyobj);
+ void* cppobject = Shiboken::Object::cppPointer(sbkobject, type);
+ return reinterpret_cast(cppobject);
+ }
+ }
+#else
+ Q_UNUSED(pyobj);
+#endif
+ return nullptr;
+}
+
+Py::Object PythonWrapper::fromQDir(const QDir& dir)
+{
+#if defined (HAVE_SHIBOKEN) && defined(HAVE_PYSIDE)
+ const char* typeName = typeid(dir).name();
+ PyObject* pyobj = Shiboken::Object::newObject(reinterpret_cast(getPyTypeObjectForTypeName()),
+ const_cast(&dir), false, false, typeName);
+ if (pyobj)
+ return Py::asObject(pyobj);
+#else
+ Q_UNUSED(dir)
+#endif
+ throw Py::RuntimeError("Failed to wrap icon");
+}
+
+QDir* PythonWrapper::toQDir(PyObject* pyobj)
+{
+#if defined (HAVE_SHIBOKEN) && defined(HAVE_PYSIDE)
+ PyTypeObject* type = getPyTypeObjectForTypeName();
+ if (type) {
+ if (Shiboken::Object::checkType(pyobj)) {
+ SbkObject* sbkobject = reinterpret_cast(pyobj);
+ void* cppobject = Shiboken::Object::cppPointer(sbkobject, type);
+ return reinterpret_cast(cppobject);
+ }
+ }
+#else
+ Q_UNUSED(pyobj);
+#endif
+ return nullptr;
+}
+
+Py::Object PythonWrapper::fromQObject(QObject* object, const char* className)
+{
+ if (!object)
+ return Py::None();
+#if defined (HAVE_SHIBOKEN) && defined(HAVE_PYSIDE)
+ // Access shiboken/PySide via C++
+ //
+ PyTypeObject * type = getPyTypeObjectForTypeName();
+ if (type) {
+ SbkObjectType* sbk_type = reinterpret_cast(type);
+ std::string typeName;
+ if (className)
+ typeName = className;
+ else
+ typeName = object->metaObject()->className();
+ PyObject* pyobj = Shiboken::Object::newObject(sbk_type, object, false, false, typeName.c_str());
+ return Py::asObject(pyobj);
+ }
+ throw Py::RuntimeError("Failed to wrap object");
+#else
+ // Access shiboken2/PySide2 via Python
+ //
+ return qt_wrapInstance(object, className, "shiboken2", "PySide2.QtCore", "wrapInstance");
+#endif
+#if 0 // Unwrapping using sip/PyQt
+ Q_UNUSED(className);
+ return qt_wrapInstance(object, "QObject", "sip", "PyQt5.QtCore", "wrapinstance");
+#endif
+}
+
+Py::Object PythonWrapper::fromQWidget(QWidget* widget, const char* className)
+{
+#if defined (HAVE_SHIBOKEN) && defined(HAVE_PYSIDE)
+ // Access shiboken/PySide via C++
+ //
+ PyTypeObject * type = getPyTypeObjectForTypeName();
+ if (type) {
+ SbkObjectType* sbk_type = reinterpret_cast(type);
+ std::string typeName;
+ if (className)
+ typeName = className;
+ else
+ typeName = widget->metaObject()->className();
+ PyObject* pyobj = Shiboken::Object::newObject(sbk_type, widget, false, false, typeName.c_str());
+ return Py::asObject(pyobj);
+ }
+ throw Py::RuntimeError("Failed to wrap widget");
+
+#else
+ // Access shiboken2/PySide2 via Python
+ //
+ return qt_wrapInstance(widget, className, "shiboken2", "PySide2.QtWidgets", "wrapInstance");
+#endif
+
+#if 0 // Unwrapping using sip/PyQt
+ Q_UNUSED(className);
+ return qt_wrapInstance(widget, "QWidget", "sip", "PyQt5.QtWidgets", "wrapinstance");
+#endif
+}
+
+const char* PythonWrapper::getWrapperName(QObject* obj) const
+{
+#if defined (HAVE_SHIBOKEN) && defined(HAVE_PYSIDE)
+ const QMetaObject* meta = obj->metaObject();
+ while (meta) {
+ const char* typeName = meta->className();
+ PyTypeObject* exactType = Shiboken::Conversions::getPythonTypeObject(typeName);
+ if (exactType)
+ return typeName;
+ meta = meta->superClass();
+ }
+#else
+ QUiLoader ui;
+ QStringList names = ui.availableWidgets();
+ const QMetaObject* meta = obj->metaObject();
+ while (meta) {
+ const char* typeName = meta->className();
+ if (names.indexOf(QLatin1String(typeName)) >= 0)
+ return typeName;
+ meta = meta->superClass();
+ }
+#endif
+ return "QObject";
+}
+
+bool PythonWrapper::loadCoreModule()
+{
+#if defined (HAVE_SHIBOKEN2) && (HAVE_PYSIDE2)
+ // QtCore
+ if (!SbkPySide2_QtCoreTypes) {
+ Shiboken::AutoDecRef requiredModule(Shiboken::Module::import("PySide2.QtCore"));
+ if (requiredModule.isNull())
+ return false;
+ SbkPySide2_QtCoreTypes = Shiboken::Module::getTypes(requiredModule);
+ }
+#elif defined (HAVE_SHIBOKEN) && defined(HAVE_PYSIDE)
+ // QtCore
+ if (!SbkPySide_QtCoreTypes) {
+ Shiboken::AutoDecRef requiredModule(Shiboken::Module::import("PySide.QtCore"));
+ if (requiredModule.isNull())
+ return false;
+ SbkPySide_QtCoreTypes = Shiboken::Module::getTypes(requiredModule);
+ }
+#endif
+ return true;
+}
+
+bool PythonWrapper::loadGuiModule()
+{
+#if defined (HAVE_SHIBOKEN2) && defined(HAVE_PYSIDE2)
+ // QtGui
+ if (!SbkPySide2_QtGuiTypes) {
+ Shiboken::AutoDecRef requiredModule(Shiboken::Module::import("PySide2.QtGui"));
+ if (requiredModule.isNull())
+ return false;
+ SbkPySide2_QtGuiTypes = Shiboken::Module::getTypes(requiredModule);
+ }
+#elif defined (HAVE_SHIBOKEN) && defined(HAVE_PYSIDE)
+ // QtGui
+ if (!SbkPySide_QtGuiTypes) {
+ Shiboken::AutoDecRef requiredModule(Shiboken::Module::import("PySide.QtGui"));
+ if (requiredModule.isNull())
+ return false;
+ SbkPySide_QtGuiTypes = Shiboken::Module::getTypes(requiredModule);
+ }
+#endif
+ return true;
+}
+
+bool PythonWrapper::loadWidgetsModule()
+{
+#if defined (HAVE_SHIBOKEN2) && defined(HAVE_PYSIDE2)
+ // QtWidgets
+ if (!SbkPySide2_QtWidgetsTypes) {
+ Shiboken::AutoDecRef requiredModule(Shiboken::Module::import("PySide2.QtWidgets"));
+ if (requiredModule.isNull())
+ return false;
+ SbkPySide2_QtWidgetsTypes = Shiboken::Module::getTypes(requiredModule);
+ }
+#endif
+ return true;
+}
+
+bool PythonWrapper::loadUiToolsModule()
+{
+#if defined (HAVE_SHIBOKEN2) && defined(HAVE_PYSIDE2)
+ // QtUiTools
+ static PyTypeObject** SbkPySide2_QtUiToolsTypes = nullptr;
+ if (!SbkPySide2_QtUiToolsTypes) {
+ Shiboken::AutoDecRef requiredModule(Shiboken::Module::import("PySide2.QtUiTools"));
+ if (requiredModule.isNull())
+ return false;
+ SbkPySide2_QtUiToolsTypes = Shiboken::Module::getTypes(requiredModule);
+ }
+#endif
+ return true;
+}
+
+void PythonWrapper::createChildrenNameAttributes(PyObject* root, QObject* object)
+{
+ Q_FOREACH (QObject* child, object->children()) {
+ const QByteArray name = child->objectName().toLocal8Bit();
+
+ if (!name.isEmpty() && !name.startsWith("_") && !name.startsWith("qt_")) {
+ bool hasAttr = PyObject_HasAttrString(root, name.constData());
+ if (!hasAttr) {
+#if defined (HAVE_SHIBOKEN) && defined(HAVE_PYSIDE)
+ Shiboken::AutoDecRef pyChild(Shiboken::Conversions::pointerToPython(reinterpret_cast(getPyTypeObjectForTypeName()), child));
+ PyObject_SetAttrString(root, name.constData(), pyChild);
+#else
+ const char* className = qt_identifyType(child, "PySide2.QtWidgets");
+ if (!className) {
+ if (qobject_cast(child))
+ className = "QWidget";
+ else
+ className = "QObject";
+ }
+
+ Py::Object pyChild(qt_wrapInstance(child, className, "shiboken2", "PySide2.QtWidgets", "wrapInstance"));
+ PyObject_SetAttrString(root, name.constData(), pyChild.ptr());
+#endif
+ }
+ createChildrenNameAttributes(root, child);
+ }
+ createChildrenNameAttributes(root, child);
+ }
+}
+
+void PythonWrapper::setParent(PyObject* pyWdg, QObject* parent)
+{
+#if defined (HAVE_SHIBOKEN) && defined(HAVE_PYSIDE)
+ if (parent) {
+ Shiboken::AutoDecRef pyParent(Shiboken::Conversions::pointerToPython(reinterpret_cast(getPyTypeObjectForTypeName()), parent));
+ Shiboken::Object::setParent(pyParent, pyWdg);
+ }
+#else
+ Q_UNUSED(pyWdg);
+ Q_UNUSED(parent);
+#endif
+}
diff --git a/src/Gui/PythonWrapper.h b/src/Gui/PythonWrapper.h
new file mode 100644
index 0000000000..d12e81df15
--- /dev/null
+++ b/src/Gui/PythonWrapper.h
@@ -0,0 +1,68 @@
+/***************************************************************************
+ * Copyright (c) 2021 Werner Mayer *
+ * *
+ * This file is part of the FreeCAD CAx development system. *
+ * *
+ * This library is free software; you can redistribute it and/or *
+ * modify it under the terms of the GNU Library General Public *
+ * License as published by the Free Software Foundation; either *
+ * version 2 of the License, or (at your option) any later version. *
+ * *
+ * This library 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 library; see the file COPYING.LIB. If not, *
+ * write to the Free Software Foundation, Inc., 59 Temple Place, *
+ * Suite 330, Boston, MA 02111-1307, USA *
+ * *
+ ***************************************************************************/
+
+
+#ifndef GUI_PYTHONWRAPPER_H
+#define GUI_PYTHONWRAPPER_H
+
+#include
+
+#include
+#include
+#include
+
+QT_BEGIN_NAMESPACE
+class QDir;
+QT_END_NAMESPACE
+
+namespace Gui {
+
+class GuiExport PythonWrapper
+{
+public:
+ PythonWrapper();
+ bool loadCoreModule();
+ bool loadGuiModule();
+ bool loadWidgetsModule();
+ bool loadUiToolsModule();
+
+ bool toCString(const Py::Object&, std::string&);
+ QObject* toQObject(const Py::Object&);
+ QGraphicsItem* toQGraphicsItem(PyObject* ptr);
+ Py::Object fromQObject(QObject*, const char* className=nullptr);
+ Py::Object fromQWidget(QWidget*, const char* className=nullptr);
+ const char* getWrapperName(QObject*) const;
+ /*!
+ Create a Python wrapper for the icon. The icon must be created on the heap
+ and the Python wrapper takes ownership of it.
+ */
+ Py::Object fromQIcon(const QIcon*);
+ QIcon *toQIcon(PyObject *pyobj);
+ Py::Object fromQDir(const QDir&);
+ QDir* toQDir(PyObject* pyobj);
+ static void createChildrenNameAttributes(PyObject* root, QObject* object);
+ static void setParent(PyObject* pyWdg, QObject* parent);
+};
+
+} // namespace Gui
+
+#endif // GUI_PYTHONWRAPPER_H
diff --git a/src/Gui/Qt4All.h b/src/Gui/Qt4All.h
index 3dca95bd68..256dd249cc 100644
--- a/src/Gui/Qt4All.h
+++ b/src/Gui/Qt4All.h
@@ -157,9 +157,6 @@
// QtSvg
#include
#include
-// QtUiTools
-#include
-#include
#include "qmath.h"
#include
diff --git a/src/Gui/TaskView/TaskDialogPython.cpp b/src/Gui/TaskView/TaskDialogPython.cpp
index 82da806206..7415c85799 100644
--- a/src/Gui/TaskView/TaskDialogPython.cpp
+++ b/src/Gui/TaskView/TaskDialogPython.cpp
@@ -36,7 +36,8 @@
#include
#include
#include
-#include
+#include
+#include
#include
#include
#include
diff --git a/src/Gui/UiLoader.cpp b/src/Gui/UiLoader.cpp
new file mode 100644
index 0000000000..1f35360112
--- /dev/null
+++ b/src/Gui/UiLoader.cpp
@@ -0,0 +1,633 @@
+/***************************************************************************
+ * Copyright (c) 2021 Werner Mayer *
+ * *
+ * This file is part of the FreeCAD CAx development system. *
+ * *
+ * This library is free software; you can redistribute it and/or *
+ * modify it under the terms of the GNU Library General Public *
+ * License as published by the Free Software Foundation; either *
+ * version 2 of the License, or (at your option) any later version. *
+ * *
+ * This library 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 library; see the file COPYING.LIB. If not, *
+ * write to the Free Software Foundation, Inc., 59 Temple Place, *
+ * Suite 330, Boston, MA 02111-1307, USA *
+ * *
+ ***************************************************************************/
+
+
+#include "PreCompiled.h"
+#ifndef _PreComp_
+# include
+# include
+# include
+# include
+# include
+# include
+#endif
+
+#include "UiLoader.h"
+#include "PythonWrapper.h"
+#include "WidgetFactory.h"
+#include
+#include
+
+using namespace Gui;
+
+namespace {
+
+QWidget* createFromWidgetFactory(const QString & className, QWidget * parent, const QString& name)
+{
+ QWidget* widget = nullptr;
+ if (WidgetFactory().CanProduce((const char*)className.toLatin1()))
+ widget = WidgetFactory().createWidget((const char*)className.toLatin1(), parent);
+ if (widget)
+ widget->setObjectName(name);
+ return widget;
+}
+
+Py::Object wrapFromWidgetFactory(const Py::Tuple& args, const std::function & callableFunc)
+{
+ Gui::PythonWrapper wrap;
+
+ // 1st argument
+ Py::String str(args[0]);
+ std::string className;
+ className = str.as_std_string("utf-8");
+ // 2nd argument
+ QWidget* parent = nullptr;
+ if (wrap.loadCoreModule() && args.size() > 1) {
+ QObject* object = wrap.toQObject(args[1]);
+ if (object)
+ parent = qobject_cast(object);
+ }
+
+ // 3rd argument
+ std::string objectName;
+ if (args.size() > 2) {
+ Py::String str(args[2]);
+ objectName = str.as_std_string("utf-8");
+ }
+
+ QWidget* widget = callableFunc(QString::fromLatin1(className.c_str()), parent,
+ QString::fromLatin1(objectName.c_str()));
+ if (!widget) {
+ return Py::None();
+ // std::string err = "No such widget class '";
+ // err += className;
+ // err += "'";
+ // throw Py::RuntimeError(err);
+ }
+ wrap.loadGuiModule();
+ wrap.loadWidgetsModule();
+
+ const char* typeName = wrap.getWrapperName(widget);
+ return wrap.fromQWidget(widget, typeName);
+}
+
+}
+
+PySideUicModule::PySideUicModule()
+ : Py::ExtensionModule("PySideUic")
+{
+ add_varargs_method("loadUiType",&PySideUicModule::loadUiType,
+ "PySide lacks the \"loadUiType\" command, so we have to convert the ui file to py code in-memory first\n"
+ "and then execute it in a special frame to retrieve the form_class.");
+ add_varargs_method("loadUi",&PySideUicModule::loadUi,
+ "Addition of \"loadUi\" to PySide.");
+ add_varargs_method("createCustomWidget",&PySideUicModule::createCustomWidget,
+ "Create custom widgets.");
+ initialize("PySideUic helper module"); // register with Python
+}
+
+Py::Object PySideUicModule::loadUiType(const Py::Tuple& args)
+{
+ Base::PyGILStateLocker lock;
+ PyObject* main = PyImport_AddModule("__main__");
+ PyObject* dict = PyModule_GetDict(main);
+ Py::Dict d(PyDict_Copy(dict), true);
+ Py::String uiFile(args.getItem(0));
+ std::string file = uiFile.as_string();
+ std::replace(file.begin(), file.end(), '\\', '/');
+
+ QString cmd;
+ QTextStream str(&cmd);
+ // https://github.com/albop/dolo/blob/master/bin/load_ui.py
+ str << "import pyside2uic\n"
+ << "from PySide2 import QtCore, QtGui, QtWidgets\n"
+ << "import xml.etree.ElementTree as xml\n"
+ << "try:\n"
+ << " from cStringIO import StringIO\n"
+ << "except Exception:\n"
+ << " from io import StringIO\n"
+ << "\n"
+ << "uiFile = \"" << file.c_str() << "\"\n"
+ << "parsed = xml.parse(uiFile)\n"
+ << "widget_class = parsed.find('widget').get('class')\n"
+ << "form_class = parsed.find('class').text\n"
+ << "with open(uiFile, 'r') as f:\n"
+ << " o = StringIO()\n"
+ << " frame = {}\n"
+ << " pyside2uic.compileUi(f, o, indent=0)\n"
+ << " pyc = compile(o.getvalue(), '', 'exec')\n"
+ << " exec(pyc, frame)\n"
+ << " #Fetch the base_class and form class based on their type in the xml from designer\n"
+ << " form_class = frame['Ui_%s'%form_class]\n"
+ << " base_class = eval('QtWidgets.%s'%widget_class)\n";
+
+ PyObject* result = PyRun_String((const char*)cmd.toLatin1(), Py_file_input, d.ptr(), d.ptr());
+ if (result) {
+ Py_DECREF(result);
+ if (d.hasKey("form_class") && d.hasKey("base_class")) {
+ Py::Tuple t(2);
+ t.setItem(0, d.getItem("form_class"));
+ t.setItem(1, d.getItem("base_class"));
+ return t;
+ }
+ }
+ else {
+ throw Py::Exception();
+ }
+
+ return Py::None();
+}
+
+Py::Object PySideUicModule::loadUi(const Py::Tuple& args)
+{
+ Base::PyGILStateLocker lock;
+ PyObject* main = PyImport_AddModule("__main__");
+ PyObject* dict = PyModule_GetDict(main);
+ Py::Dict d(PyDict_Copy(dict), true);
+ d.setItem("uiFile_", args[0]);
+ if (args.size() > 1)
+ d.setItem("base_", args[1]);
+ else
+ d.setItem("base_", Py::None());
+
+ QString cmd;
+ QTextStream str(&cmd);
+#if 0
+ // https://github.com/lunaryorn/snippets/blob/master/qt4/designer/pyside_dynamic.py
+ str << "from PySide import QtCore, QtGui, QtUiTools\n"
+ << "import FreeCADGui"
+ << "\n"
+ << "class UiLoader(QtUiTools.QUiLoader):\n"
+ << " def __init__(self, baseinstance):\n"
+ << " QtUiTools.QUiLoader.__init__(self, baseinstance)\n"
+ << " self.baseinstance = baseinstance\n"
+ << " self.ui = FreeCADGui.UiLoader()\n"
+ << "\n"
+ << " def createWidget(self, class_name, parent=None, name=''):\n"
+ << " if parent is None and self.baseinstance:\n"
+ << " return self.baseinstance\n"
+ << " else:\n"
+ << " widget = self.ui.createWidget(class_name, parent, name)\n"
+ << " if not widget:\n"
+ << " widget = QtUiTools.QUiLoader.createWidget(self, class_name, parent, name)\n"
+ << " if self.baseinstance:\n"
+ << " setattr(self.baseinstance, name, widget)\n"
+ << " return widget\n"
+ << "\n"
+ << "loader = UiLoader(globals()[\"base_\"])\n"
+ << "widget = loader.load(globals()[\"uiFile_\"])\n"
+ << "\n";
+#else
+ str << "from PySide2 import QtCore, QtGui, QtWidgets\n"
+ << "import FreeCADGui"
+ << "\n"
+ << "loader = FreeCADGui.UiLoader()\n"
+ << "widget = loader.load(globals()[\"uiFile_\"])\n"
+ << "\n";
+#endif
+
+ PyObject* result = PyRun_String((const char*)cmd.toLatin1(), Py_file_input, d.ptr(), d.ptr());
+ if (result) {
+ Py_DECREF(result);
+ if (d.hasKey("widget")) {
+ return d.getItem("widget");
+ }
+ }
+ else {
+ throw Py::Exception();
+ }
+
+ return Py::None();
+}
+
+Py::Object PySideUicModule::createCustomWidget(const Py::Tuple& args)
+{
+ return wrapFromWidgetFactory(args, &createFromWidgetFactory);
+}
+
+// ----------------------------------------------------
+
+#if !defined (HAVE_QT_UI_TOOLS)
+namespace Gui {
+QUiLoader::QUiLoader(QObject* parent)
+{
+ Base::PyGILStateLocker lock;
+ PythonWrapper wrap;
+ wrap.loadUiToolsModule();
+ //PyObject* module = PyImport_ImportModule("PySide2.QtUiTools");
+ PyObject* module = PyImport_ImportModule("freecad.UiTools");
+ if (module) {
+ Py::Tuple args(1);
+ args[0] = wrap.fromQObject(parent);
+ Py::Module mod(module, true);
+ uiloader = mod.callMemberFunction("QUiLoader", args);
+ }
+}
+
+QUiLoader::~QUiLoader()
+{
+ Base::PyGILStateLocker lock;
+ uiloader = Py::None();
+}
+
+QStringList QUiLoader::pluginPaths() const
+{
+ Base::PyGILStateLocker lock;
+ try {
+ Py::List list(uiloader.callMemberFunction("pluginPaths"));
+ QStringList paths;
+ for (const auto& it : list) {
+ paths << QString::fromStdString(Py::String(it).as_std_string());
+ }
+ return paths;
+ }
+ catch (Py::Exception& e) {
+ e.clear();
+ return QStringList();
+ }
+}
+
+void QUiLoader::clearPluginPaths()
+{
+ Base::PyGILStateLocker lock;
+ try {
+ uiloader.callMemberFunction("clearPluginPaths");
+ }
+ catch (Py::Exception& e) {
+ e.clear();
+ }
+}
+
+void QUiLoader::addPluginPath(const QString& path)
+{
+ Base::PyGILStateLocker lock;
+ try {
+ Py::Tuple args(1);
+ args[0] = Py::String(path.toStdString());
+ uiloader.callMemberFunction("addPluginPath", args);
+ }
+ catch (Py::Exception& e) {
+ e.clear();
+ }
+}
+
+QWidget* QUiLoader::load(QIODevice* device, QWidget* parentWidget)
+{
+ Base::PyGILStateLocker lock;
+ try {
+ PythonWrapper wrap;
+ Py::Tuple args(2);
+ args[0] = wrap.fromQObject(device);
+ args[1] = wrap.fromQObject(parentWidget);
+ Py::Object form(uiloader.callMemberFunction("load", args));
+ return qobject_cast(wrap.toQObject(form));
+ }
+ catch (Py::Exception& e) {
+ e.clear();
+ return nullptr;
+ }
+}
+
+QStringList QUiLoader::availableWidgets() const
+{
+ Base::PyGILStateLocker lock;
+ try {
+ Py::List list(uiloader.callMemberFunction("availableWidgets"));
+ QStringList widgets;
+ for (const auto& it : list) {
+ widgets << QString::fromStdString(Py::String(it).as_std_string());
+ }
+ return widgets;
+ }
+ catch (Py::Exception& e) {
+ e.clear();
+ return QStringList();
+ }
+}
+
+QStringList QUiLoader::availableLayouts() const
+{
+ Base::PyGILStateLocker lock;
+ try {
+ Py::List list(uiloader.callMemberFunction("availableLayouts"));
+ QStringList layouts;
+ for (const auto& it : list) {
+ layouts << QString::fromStdString(Py::String(it).as_std_string());
+ }
+ return layouts;
+ }
+ catch (Py::Exception& e) {
+ e.clear();
+ return QStringList();
+ }
+}
+
+QWidget* QUiLoader::createWidget(const QString& className, QWidget* parent, const QString& name)
+{
+ Base::PyGILStateLocker lock;
+ try {
+ PythonWrapper wrap;
+ Py::Tuple args(3);
+ args[0] = Py::String(className.toStdString());
+ args[1] = wrap.fromQObject(parent);
+ args[2] = Py::String(name.toStdString());
+ Py::Object form(uiloader.callMemberFunction("createWidget", args));
+ return qobject_cast(wrap.toQObject(form));
+ }
+ catch (Py::Exception& e) {
+ e.clear();
+ return nullptr;
+ }
+}
+
+QLayout* QUiLoader::createLayout(const QString& className, QObject* parent, const QString& name)
+{
+ Base::PyGILStateLocker lock;
+ try {
+ PythonWrapper wrap;
+ Py::Tuple args(3);
+ args[0] = Py::String(className.toStdString());
+ args[1] = wrap.fromQObject(parent);
+ args[2] = Py::String(name.toStdString());
+ Py::Object form(uiloader.callMemberFunction("createLayout", args));
+ return qobject_cast(wrap.toQObject(form));
+ }
+ catch (Py::Exception& e) {
+ e.clear();
+ return nullptr;
+ }
+}
+
+QActionGroup* QUiLoader::createActionGroup(QObject* parent, const QString& name)
+{
+ Base::PyGILStateLocker lock;
+ try {
+ PythonWrapper wrap;
+ Py::Tuple args(2);
+ args[0] = wrap.fromQObject(parent);
+ args[1] = Py::String(name.toStdString());
+ Py::Object action(uiloader.callMemberFunction("createActionGroup", args));
+ return qobject_cast(wrap.toQObject(action));
+ }
+ catch (Py::Exception& e) {
+ e.clear();
+ return nullptr;
+ }
+}
+
+QAction* QUiLoader::createAction(QObject* parent, const QString& name)
+{
+ Base::PyGILStateLocker lock;
+ try {
+ PythonWrapper wrap;
+ Py::Tuple args(2);
+ args[0] = wrap.fromQObject(parent);
+ args[1] = Py::String(name.toStdString());
+ Py::Object action(uiloader.callMemberFunction("createAction", args));
+ return qobject_cast(wrap.toQObject(action));
+ }
+ catch (Py::Exception& e) {
+ e.clear();
+ return nullptr;
+ }
+}
+
+void QUiLoader::setWorkingDirectory(const QDir& dir)
+{
+ Base::PyGILStateLocker lock;
+ try {
+ PythonWrapper wrap;
+ Py::Tuple args(1);
+ args[0] = wrap.fromQDir(dir);
+ uiloader.callMemberFunction("setWorkingDirectory", args);
+ }
+ catch (Py::Exception& e) {
+ e.clear();
+ }
+}
+
+QDir QUiLoader::workingDirectory() const
+{
+ Base::PyGILStateLocker lock;
+ try {
+ PythonWrapper wrap;
+ Py::Object dir((uiloader.callMemberFunction("workingDirectory")));
+ QDir* d = wrap.toQDir(dir.ptr());
+ if (d) return *d;
+ return QDir::current();
+ }
+ catch (Py::Exception& e) {
+ e.clear();
+ return QDir::current();
+ }
+}
+
+void QUiLoader::setLanguageChangeEnabled(bool enabled)
+{
+ Base::PyGILStateLocker lock;
+ try {
+ Py::Tuple args(1);
+ args[0] = Py::Boolean(enabled);
+ uiloader.callMemberFunction("setLanguageChangeEnabled", args);
+ }
+ catch (Py::Exception& e) {
+ e.clear();
+ }
+}
+
+bool QUiLoader::isLanguageChangeEnabled() const
+{
+ Base::PyGILStateLocker lock;
+ try {
+ Py::Boolean ok((uiloader.callMemberFunction("isLanguageChangeEnabled")));
+ return static_cast(ok);
+ }
+ catch (Py::Exception& e) {
+ e.clear();
+ return false;
+ }
+}
+
+void QUiLoader::setTranslationEnabled(bool enabled)
+{
+ Base::PyGILStateLocker lock;
+ try {
+ Py::Tuple args(1);
+ args[0] = Py::Boolean(enabled);
+ uiloader.callMemberFunction("setTranslationEnabled", args);
+ }
+ catch (Py::Exception& e) {
+ e.clear();
+ }
+}
+
+bool QUiLoader::isTranslationEnabled() const
+{
+ Base::PyGILStateLocker lock;
+ try {
+ Py::Boolean ok((uiloader.callMemberFunction("isTranslationEnabled")));
+ return static_cast(ok);
+ }
+ catch (Py::Exception& e) {
+ e.clear();
+ return false;
+ }
+}
+
+QString QUiLoader::errorString() const
+{
+ Base::PyGILStateLocker lock;
+ try {
+ Py::String error((uiloader.callMemberFunction("errorString")));
+ return QString::fromStdString(error.as_std_string());
+ }
+ catch (Py::Exception& e) {
+ e.clear();
+ return QString();
+ }
+}
+}
+#endif
+
+// ----------------------------------------------------
+
+UiLoader::UiLoader(QObject* parent)
+ : QUiLoader(parent)
+{
+ // do not use the plugins for additional widgets as we don't need them and
+ // the application may crash under Linux (tested on Ubuntu 7.04 & 7.10).
+ clearPluginPaths();
+ this->cw = availableWidgets();
+}
+
+UiLoader::~UiLoader()
+{
+}
+
+QWidget* UiLoader::createWidget(const QString & className, QWidget * parent,
+ const QString& name)
+{
+ if (this->cw.contains(className))
+ return QUiLoader::createWidget(className, parent, name);
+
+ return createFromWidgetFactory(className, parent, name);
+}
+
+// ----------------------------------------------------
+
+PyObject *UiLoaderPy::PyMake(struct _typeobject * /*type*/, PyObject * args, PyObject * /*kwds*/)
+{
+ if (!PyArg_ParseTuple(args, ""))
+ return nullptr;
+ return new UiLoaderPy();
+}
+
+void UiLoaderPy::init_type()
+{
+ behaviors().name("UiLoader");
+ behaviors().doc("UiLoader to create widgets");
+ behaviors().set_tp_new(PyMake);
+ // you must have overwritten the virtual functions
+ behaviors().supportRepr();
+ behaviors().supportGetattr();
+ behaviors().supportSetattr();
+ add_varargs_method("load",&UiLoaderPy::load,"load(string, QWidget parent=None) -> QWidget\n"
+ "load(QIODevice, QWidget parent=None) -> QWidget");
+ add_varargs_method("createWidget",&UiLoaderPy::createWidget,"createWidget()");
+}
+
+UiLoaderPy::UiLoaderPy()
+{
+}
+
+UiLoaderPy::~UiLoaderPy()
+{
+}
+
+Py::Object UiLoaderPy::repr()
+{
+ std::string s;
+ std::ostringstream s_out;
+ s_out << "Ui loader";
+ return Py::String(s_out.str());
+}
+
+Py::Object UiLoaderPy::load(const Py::Tuple& args)
+{
+ Gui::PythonWrapper wrap;
+ if (wrap.loadCoreModule()) {
+ std::string fn;
+ QFile file;
+ QIODevice* device = nullptr;
+ QWidget* parent = nullptr;
+ if (wrap.toCString(args[0], fn)) {
+ file.setFileName(QString::fromUtf8(fn.c_str()));
+ if (!file.open(QFile::ReadOnly))
+ throw Py::RuntimeError("Cannot open file");
+ device = &file;
+ }
+ else if (args[0].isString()) {
+ fn = (std::string)Py::String(args[0]);
+ file.setFileName(QString::fromUtf8(fn.c_str()));
+ if (!file.open(QFile::ReadOnly))
+ throw Py::RuntimeError("Cannot open file");
+ device = &file;
+ }
+ else {
+ QObject* obj = wrap.toQObject(args[0]);
+ device = qobject_cast(obj);
+ }
+
+ if (args.size() > 1) {
+ QObject* obj = wrap.toQObject(args[1]);
+ parent = qobject_cast(obj);
+ }
+
+ if (device) {
+ QWidget* widget = loader.load(device, parent);
+ if (widget) {
+ wrap.loadGuiModule();
+ wrap.loadWidgetsModule();
+
+ const char* typeName = wrap.getWrapperName(widget);
+ Py::Object pyWdg = wrap.fromQWidget(widget, typeName);
+ wrap.createChildrenNameAttributes(*pyWdg, widget);
+ wrap.setParent(*pyWdg, parent);
+ return pyWdg;
+ }
+ }
+ else {
+ throw Py::TypeError("string or QIODevice expected");
+ }
+ }
+ return Py::None();
+}
+
+Py::Object UiLoaderPy::createWidget(const Py::Tuple& args)
+{
+ return wrapFromWidgetFactory(args, std::bind(&UiLoader::createWidget, &loader,
+ std::placeholders::_1,
+ std::placeholders::_2,
+ std::placeholders::_3));
+}
+
+#include "moc_UiLoader.cpp"
diff --git a/src/Gui/UiLoader.h b/src/Gui/UiLoader.h
new file mode 100644
index 0000000000..8fea2e0048
--- /dev/null
+++ b/src/Gui/UiLoader.h
@@ -0,0 +1,146 @@
+/***************************************************************************
+ * Copyright (c) 2021 Werner Mayer *
+ * *
+ * This file is part of the FreeCAD CAx development system. *
+ * *
+ * This library is free software; you can redistribute it and/or *
+ * modify it under the terms of the GNU Library General Public *
+ * License as published by the Free Software Foundation; either *
+ * version 2 of the License, or (at your option) any later version. *
+ * *
+ * This library 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 library; see the file COPYING.LIB. If not, *
+ * write to the Free Software Foundation, Inc., 59 Temple Place, *
+ * Suite 330, Boston, MA 02111-1307, USA *
+ * *
+ ***************************************************************************/
+
+
+#ifndef GUI_UILOADER_H
+#define GUI_UILOADER_H
+
+#if !defined (__MINGW32__)
+#define HAVE_QT_UI_TOOLS
+#endif
+
+#if defined (HAVE_QT_UI_TOOLS)
+#include
+#else
+#include
+#endif
+#include
+
+QT_BEGIN_NAMESPACE
+class QLayout;
+class QAction;
+class QActionGroup;
+class QDir;
+class QIODevice;
+class QWidget;
+QT_END_NAMESPACE
+
+
+namespace Gui {
+
+class PySideUicModule : public Py::ExtensionModule
+{
+
+public:
+ PySideUicModule();
+ virtual ~PySideUicModule() {}
+
+private:
+ Py::Object loadUiType(const Py::Tuple& args);
+ Py::Object loadUi(const Py::Tuple& args);
+ Py::Object createCustomWidget(const Py::Tuple&);
+};
+
+#if !defined (HAVE_QT_UI_TOOLS)
+class QUiLoader : public QObject
+{
+ Q_OBJECT
+public:
+ explicit QUiLoader(QObject* parent = nullptr);
+ ~QUiLoader();
+
+ QStringList pluginPaths() const;
+ void clearPluginPaths();
+ void addPluginPath(const QString& path);
+
+ QWidget* load(QIODevice* device, QWidget* parentWidget = nullptr);
+ QStringList availableWidgets() const;
+ QStringList availableLayouts() const;
+
+ virtual QWidget* createWidget(const QString& className, QWidget* parent = nullptr, const QString& name = QString());
+ virtual QLayout* createLayout(const QString& className, QObject* parent = nullptr, const QString& name = QString());
+ virtual QActionGroup* createActionGroup(QObject* parent = nullptr, const QString& name = QString());
+ virtual QAction* createAction(QObject* parent = nullptr, const QString& name = QString());
+
+ void setWorkingDirectory(const QDir& dir);
+ QDir workingDirectory() const;
+
+ void setLanguageChangeEnabled(bool enabled);
+ bool isLanguageChangeEnabled() const;
+
+ void setTranslationEnabled(bool enabled);
+ bool isTranslationEnabled() const;
+
+ QString errorString() const;
+
+private:
+ Py::Object uiloader;
+};
+#endif
+
+/**
+ * The UiLoader class provides the abitlity to use the widget factory
+ * framework of FreeCAD within the framework provided by Qt. This class
+ * extends QUiLoader by the creation of FreeCAD specific widgets.
+ * @author Werner Mayer
+ */
+class UiLoader : public QUiLoader
+{
+public:
+ UiLoader(QObject* parent=nullptr);
+ virtual ~UiLoader();
+
+ /**
+ * Creates a widget of the type \a className with the parent \a parent.
+ * For more details see the documentation to QWidgetFactory.
+ */
+ QWidget* createWidget(const QString & className, QWidget * parent=nullptr,
+ const QString& name = QString());
+
+private:
+ QStringList cw;
+};
+
+// --------------------------------------------------------------------
+
+class UiLoaderPy : public Py::PythonExtension
+{
+public:
+ static void init_type(); // announce properties and methods
+
+ UiLoaderPy();
+ ~UiLoaderPy();
+
+ Py::Object repr();
+ Py::Object createWidget(const Py::Tuple&);
+ Py::Object load(const Py::Tuple&);
+
+private:
+ static PyObject *PyMake(struct _typeobject *, PyObject *, PyObject *);
+
+private:
+ UiLoader loader;
+};
+
+} // namespace Gui
+
+#endif // GUI_UILOADER_H
diff --git a/src/Gui/View3DPy.cpp b/src/Gui/View3DPy.cpp
index 18cf5985ec..50e8325c3a 100644
--- a/src/Gui/View3DPy.cpp
+++ b/src/Gui/View3DPy.cpp
@@ -51,7 +51,7 @@
#include "View3DInventorViewer.h"
#include "View3DViewerPy.h"
#include "ActiveObjectList.h"
-#include "WidgetFactory.h"
+#include "PythonWrapper.h"
#include
diff --git a/src/Gui/ViewProviderPyImp.cpp b/src/Gui/ViewProviderPyImp.cpp
index 506050f9fc..db048d382d 100644
--- a/src/Gui/ViewProviderPyImp.cpp
+++ b/src/Gui/ViewProviderPyImp.cpp
@@ -37,7 +37,7 @@
#include "SoFCDB.h"
#include "ViewProvider.h"
-#include "WidgetFactory.h"
+#include "PythonWrapper.h"
#include
diff --git a/src/Gui/ViewProviderPythonFeature.cpp b/src/Gui/ViewProviderPythonFeature.cpp
index 56c32885de..7b1c946844 100644
--- a/src/Gui/ViewProviderPythonFeature.cpp
+++ b/src/Gui/ViewProviderPythonFeature.cpp
@@ -57,7 +57,7 @@
#include "Application.h"
#include "BitmapFactory.h"
#include "Document.h"
-#include "WidgetFactory.h"
+#include "PythonWrapper.h"
#include "View3DInventorViewer.h"
#include
#include
diff --git a/src/Gui/WidgetFactory.cpp b/src/Gui/WidgetFactory.cpp
index 4ffeeff5db..b68456e7a4 100644
--- a/src/Gui/WidgetFactory.cpp
+++ b/src/Gui/WidgetFactory.cpp
@@ -25,15 +25,7 @@
#ifndef _PreComp_
# include
# include
-# include
#endif
-#include
-
-// Uncomment this block to remove PySide C++ support and switch to its Python interface
-//#undef HAVE_SHIBOKEN
-//#undef HAVE_PYSIDE
-//#undef HAVE_SHIBOKEN2
-//#undef HAVE_PYSIDE2
#ifdef FC_OS_WIN32
#undef max
@@ -44,590 +36,42 @@
#endif
#endif
-// class and struct used for SbkObject
-#if defined(__clang__)
-# pragma clang diagnostic push
-# pragma clang diagnostic ignored "-Wmismatched-tags"
-# pragma clang diagnostic ignored "-Wunused-parameter"
-# if __clang_major__ > 3
-# pragma clang diagnostic ignored "-Wkeyword-macro"
-# endif
-#elif defined (__GNUC__)
-# pragma GCC diagnostic push
-# pragma GCC diagnostic ignored "-Wunused-parameter"
-# pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-#endif
-
-#ifdef HAVE_SHIBOKEN
-# undef _POSIX_C_SOURCE
-# undef _XOPEN_SOURCE
-# include
-# include
-# include
-# include
-# include
-# ifdef HAVE_PYSIDE
-# include
-# include
-PyTypeObject** SbkPySide_QtCoreTypes=nullptr;
-PyTypeObject** SbkPySide_QtGuiTypes=nullptr;
-# endif
-#endif
-
-#ifdef HAVE_SHIBOKEN2
-# define HAVE_SHIBOKEN
-# undef _POSIX_C_SOURCE
-# undef _XOPEN_SOURCE
-# include
-# include
-# include
-# include
-# ifdef HAVE_PYSIDE2
-# define HAVE_PYSIDE
-
-// Since version 5.12 shiboken offers a method to get wrapper by class name (typeForTypeName)
-// This helps to avoid to include the PySide2 headers since MSVC has a compiler bug when
-// compiling together with std::bitset (https://bugreports.qt.io/browse/QTBUG-72073)
-
-// Do not use SHIBOKEN_MICRO_VERSION; it might contain a dot
-# define SHIBOKEN_FULL_VERSION QT_VERSION_CHECK(SHIBOKEN_MAJOR_VERSION, SHIBOKEN_MINOR_VERSION, 0)
-# if (SHIBOKEN_FULL_VERSION >= QT_VERSION_CHECK(5, 12, 0))
-# define HAVE_SHIBOKEN_TYPE_FOR_TYPENAME
-# endif
-
-# ifndef HAVE_SHIBOKEN_TYPE_FOR_TYPENAME
-# include
-# include
-# include
-# endif
-# include
-PyTypeObject** SbkPySide2_QtCoreTypes=nullptr;
-PyTypeObject** SbkPySide2_QtGuiTypes=nullptr;
-PyTypeObject** SbkPySide2_QtWidgetsTypes=nullptr;
-# endif // HAVE_PYSIDE2
-#endif // HAVE_SHIBOKEN2
-
-#if defined(__clang__)
-# pragma clang diagnostic pop
-#elif defined (__GNUC__)
-# pragma GCC diagnostic pop
-#endif
-
#include
#include
#include
#include
#include
-#include
-#include
#include "WidgetFactory.h"
+#include "UiLoader.h"
+#include "PythonWrapper.h"
#include "PrefWidgets.h"
#include "PropertyPage.h"
using namespace Gui;
-#if defined (HAVE_SHIBOKEN)
-
-/**
- Example:
- \code
- ui = FreeCADGui.UiLoader()
- w = ui.createWidget("Gui::InputField")
- w.show()
- w.property("quantity")
- \endcode
- */
-
-PyObject* toPythonFuncQuantityTyped(Base::Quantity cpx) {
- return new Base::QuantityPy(new Base::Quantity(cpx));
-}
-
-PyObject* toPythonFuncQuantity(const void* cpp)
-{
- return toPythonFuncQuantityTyped(*reinterpret_cast(cpp));
-}
-
-void toCppPointerConvFuncQuantity(PyObject* pyobj,void* cpp)
-{
- *((Base::Quantity*)cpp) = *static_cast(pyobj)->getQuantityPtr();
-}
-
-PythonToCppFunc toCppPointerCheckFuncQuantity(PyObject* obj)
-{
- if (PyObject_TypeCheck(obj, &(Base::QuantityPy::Type)))
- return toCppPointerConvFuncQuantity;
- else
- return 0;
-}
-
-void BaseQuantity_PythonToCpp_QVariant(PyObject* pyIn, void* cppOut)
-{
- Base::Quantity* q = static_cast(pyIn)->getQuantityPtr();
- *((QVariant*)cppOut) = QVariant::fromValue(*q);
-}
-
-PythonToCppFunc isBaseQuantity_PythonToCpp_QVariantConvertible(PyObject* obj)
-{
- if (PyObject_TypeCheck(obj, &(Base::QuantityPy::Type)))
- return BaseQuantity_PythonToCpp_QVariant;
- return 0;
-}
-
-#if defined (HAVE_PYSIDE)
-Base::Quantity convertWrapperToQuantity(const PySide::PyObjectWrapper &w)
-{
- PyObject* pyIn = static_cast(w);
- if (PyObject_TypeCheck(pyIn, &(Base::QuantityPy::Type))) {
- return *static_cast(pyIn)->getQuantityPtr();
- }
-
- return Base::Quantity(std::numeric_limits::quiet_NaN());
-}
-#endif
-
-void registerTypes()
-{
- SbkConverter* convert = Shiboken::Conversions::createConverter(&Base::QuantityPy::Type,
- toPythonFuncQuantity);
- Shiboken::Conversions::setPythonToCppPointerFunctions(convert,
- toCppPointerConvFuncQuantity,
- toCppPointerCheckFuncQuantity);
- Shiboken::Conversions::registerConverterName(convert, "Base::Quantity");
-
- SbkConverter* qvariant_conv = Shiboken::Conversions::getConverter("QVariant");
- if (qvariant_conv) {
- // The type QVariant already has a converter from PyBaseObject_Type which will
- // come before our own converter.
- Shiboken::Conversions::addPythonToCppValueConversion(qvariant_conv,
- BaseQuantity_PythonToCpp_QVariant,
- isBaseQuantity_PythonToCpp_QVariantConvertible);
- }
-
-#if defined (HAVE_PYSIDE)
- QMetaType::registerConverter(&convertWrapperToQuantity);
-#endif
-}
-#endif
-
-// --------------------------------------------------------
-
-namespace Gui {
-template
-Py::Object qt_wrapInstance(qttype object, const char* className,
- const char* shiboken, const char* pyside,
- const char* wrap)
-{
- PyObject* module = PyImport_ImportModule(shiboken);
- if (!module) {
- std::string error = "Cannot load ";
- error += shiboken;
- error += " module";
- throw Py::Exception(PyExc_ImportError, error);
- }
-
- Py::Module mainmod(module, true);
- Py::Callable func = mainmod.getDict().getItem(wrap);
-
- Py::Tuple arguments(2);
- arguments[0] = Py::asObject(PyLong_FromVoidPtr((void*)object));
-
- module = PyImport_ImportModule(pyside);
- if (!module) {
- std::string error = "Cannot load ";
- error += pyside;
- error += " module";
- throw Py::Exception(PyExc_ImportError, error);
- }
-
- Py::Module qtmod(module);
- arguments[1] = qtmod.getDict().getItem(className);
- return func.apply(arguments);
-}
-
-const char* qt_identifyType(QObject* ptr, const char* pyside)
-{
- PyObject* module = PyImport_ImportModule(pyside);
- if (!module) {
- std::string error = "Cannot load ";
- error += pyside;
- error += " module";
- throw Py::Exception(PyExc_ImportError, error);
- }
-
- Py::Module qtmod(module);
- const QMetaObject* metaObject = ptr->metaObject();
- while (metaObject) {
- const char* className = metaObject->className();
- if (qtmod.getDict().hasKey(className))
- return className;
- metaObject = metaObject->superClass();
- }
-
- return nullptr;
-}
-
-void* qt_getCppPointer(const Py::Object& pyobject, const char* shiboken, const char* unwrap)
-{
- // https://github.com/PySide/Shiboken/blob/master/shibokenmodule/typesystem_shiboken.xml
- PyObject* module = PyImport_ImportModule(shiboken);
- if (!module) {
- std::string error = "Cannot load ";
- error += shiboken;
- error += " module";
- throw Py::Exception(PyExc_ImportError, error);
- }
-
- Py::Module mainmod(module, true);
- Py::Callable func = mainmod.getDict().getItem(unwrap);
-
- Py::Tuple arguments(1);
- arguments[0] = pyobject; //PySide pointer
- Py::Tuple result(func.apply(arguments));
- void* ptr = PyLong_AsVoidPtr(result[0].ptr());
- return ptr;
-}
-
-
-template
-PyTypeObject *getPyTypeObjectForTypeName()
-{
-#if defined (HAVE_SHIBOKEN) && defined(HAVE_PYSIDE)
-#if defined (HAVE_SHIBOKEN_TYPE_FOR_TYPENAME)
- SbkObjectType* sbkType = Shiboken::ObjectType::typeForTypeName(typeid(qttype).name());
- if (sbkType)
- return &(sbkType->type);
-#else
- return Shiboken::SbkType();
-#endif
-#endif
- return nullptr;
-}
-}
-
-// --------------------------------------------------------
-
-PythonWrapper::PythonWrapper()
-{
-#if defined (HAVE_SHIBOKEN)
- static bool init = false;
- if (!init) {
- init = true;
- registerTypes();
- }
-#endif
-}
-
-bool PythonWrapper::toCString(const Py::Object& pyobject, std::string& str)
-{
- if (PyUnicode_Check(pyobject.ptr())) {
- PyObject* unicode = PyUnicode_AsUTF8String(pyobject.ptr());
- str = PyBytes_AsString(unicode);
- Py_DECREF(unicode);
- return true;
- }
- else if (PyBytes_Check(pyobject.ptr())) {
- str = PyBytes_AsString(pyobject.ptr());
- return true;
- }
-#if defined (HAVE_SHIBOKEN) && defined(HAVE_PYSIDE)
- if (Shiboken::String::check(pyobject.ptr())) {
- const char* s = Shiboken::String::toCString(pyobject.ptr());
- if (s) str = s;
- return true;
- }
-#endif
- return false;
-}
-
-QObject* PythonWrapper::toQObject(const Py::Object& pyobject)
-{
- // http://pastebin.com/JByDAF5Z
-#if defined (HAVE_SHIBOKEN) && defined(HAVE_PYSIDE)
- PyTypeObject * type = getPyTypeObjectForTypeName();
- if (type) {
- if (Shiboken::Object::checkType(pyobject.ptr())) {
- SbkObject* sbkobject = reinterpret_cast(pyobject.ptr());
- void* cppobject = Shiboken::Object::cppPointer(sbkobject, type);
- return reinterpret_cast(cppobject);
- }
- }
-#else
- // Access shiboken2/PySide2 via Python
- //
- void* ptr = qt_getCppPointer(pyobject, "shiboken2", "getCppPointer");
- return reinterpret_cast(ptr);
-#endif
-
-#if 0 // Unwrapping using sip/PyQt
- void* ptr = qt_getCppPointer(pyobject, "sip", "unwrapinstance");
- return reinterpret_cast(ptr);
-#endif
-
- return 0;
-}
-
-QGraphicsItem* PythonWrapper::toQGraphicsItem(PyObject* pyPtr)
-{
-#if defined (HAVE_SHIBOKEN) && defined(HAVE_PYSIDE)
- PyTypeObject* type = getPyTypeObjectForTypeName();
- if (type) {
- if (Shiboken::Object::checkType(pyPtr)) {
- SbkObject* sbkobject = reinterpret_cast(pyPtr);
- void* cppobject = Shiboken::Object::cppPointer(sbkobject, type);
- return reinterpret_cast(cppobject);
- }
- }
-#else
- // Access shiboken2/PySide2 via Python
- //
- void* ptr = qt_getCppPointer(Py::asObject(pyPtr), "shiboken2", "getCppPointer");
- return reinterpret_cast(ptr);
-#endif
- return nullptr;
-}
-
-Py::Object PythonWrapper::fromQIcon(const QIcon* icon)
-{
-#if defined (HAVE_SHIBOKEN) && defined(HAVE_PYSIDE)
- const char* typeName = typeid(*const_cast(icon)).name();
- PyObject* pyobj = Shiboken::Object::newObject(reinterpret_cast(getPyTypeObjectForTypeName()),
- const_cast(icon), true, false, typeName);
- if (pyobj)
- return Py::asObject(pyobj);
-#else
- // Access shiboken2/PySide2 via Python
- //
- return qt_wrapInstance(icon, "QIcon", "shiboken2", "PySide2.QtGui", "wrapInstance");
-#endif
- throw Py::RuntimeError("Failed to wrap icon");
-}
-
-QIcon *PythonWrapper::toQIcon(PyObject *pyobj)
-{
-#if defined (HAVE_SHIBOKEN) && defined(HAVE_PYSIDE)
- PyTypeObject * type = getPyTypeObjectForTypeName();
- if(type) {
- if (Shiboken::Object::checkType(pyobj)) {
- SbkObject* sbkobject = reinterpret_cast(pyobj);
- void* cppobject = Shiboken::Object::cppPointer(sbkobject, type);
- return reinterpret_cast(cppobject);
- }
- }
-#else
- Q_UNUSED(pyobj);
-#endif
- return 0;
-}
-
-Py::Object PythonWrapper::fromQObject(QObject* object, const char* className)
-{
-#if defined (HAVE_SHIBOKEN) && defined(HAVE_PYSIDE)
- // Access shiboken/PySide via C++
- //
- PyTypeObject * type = getPyTypeObjectForTypeName();
- if (type) {
- SbkObjectType* sbk_type = reinterpret_cast(type);
- std::string typeName;
- if (className)
- typeName = className;
- else
- typeName = object->metaObject()->className();
- PyObject* pyobj = Shiboken::Object::newObject(sbk_type, object, false, false, typeName.c_str());
- return Py::asObject(pyobj);
- }
- throw Py::RuntimeError("Failed to wrap object");
-#else
- // Access shiboken2/PySide2 via Python
- //
- return qt_wrapInstance(object, className, "shiboken2", "PySide2.QtCore", "wrapInstance");
-#endif
-#if 0 // Unwrapping using sip/PyQt
- Q_UNUSED(className);
- return qt_wrapInstance(object, "QObject", "sip", "PyQt5.QtCore", "wrapinstance");
-#endif
-}
-
-Py::Object PythonWrapper::fromQWidget(QWidget* widget, const char* className)
-{
-#if defined (HAVE_SHIBOKEN) && defined(HAVE_PYSIDE)
- // Access shiboken/PySide via C++
- //
- PyTypeObject * type = getPyTypeObjectForTypeName();
- if (type) {
- SbkObjectType* sbk_type = reinterpret_cast(type);
- std::string typeName;
- if (className)
- typeName = className;
- else
- typeName = widget->metaObject()->className();
- PyObject* pyobj = Shiboken::Object::newObject(sbk_type, widget, false, false, typeName.c_str());
- return Py::asObject(pyobj);
- }
- throw Py::RuntimeError("Failed to wrap widget");
-
-#else
- // Access shiboken2/PySide2 via Python
- //
- return qt_wrapInstance(widget, className, "shiboken2", "PySide2.QtWidgets", "wrapInstance");
-#endif
-
-#if 0 // Unwrapping using sip/PyQt
- Q_UNUSED(className);
- return qt_wrapInstance(widget, "QWidget", "sip", "PyQt5.QtWidgets", "wrapinstance");
-#endif
-}
-
-const char* PythonWrapper::getWrapperName(QObject* obj) const
-{
-#if defined (HAVE_SHIBOKEN) && defined(HAVE_PYSIDE)
- const QMetaObject* meta = obj->metaObject();
- while (meta) {
- const char* typeName = meta->className();
- PyTypeObject* exactType = Shiboken::Conversions::getPythonTypeObject(typeName);
- if (exactType)
- return typeName;
- meta = meta->superClass();
- }
-#else
- QUiLoader ui;
- QStringList names = ui.availableWidgets();
- const QMetaObject* meta = obj->metaObject();
- while (meta) {
- const char* typeName = meta->className();
- if (names.indexOf(QLatin1String(typeName)) >= 0)
- return typeName;
- meta = meta->superClass();
- }
-#endif
- return "QObject";
-}
-
-bool PythonWrapper::loadCoreModule()
-{
-#if defined (HAVE_SHIBOKEN2) && (HAVE_PYSIDE2)
- // QtCore
- if (!SbkPySide2_QtCoreTypes) {
- Shiboken::AutoDecRef requiredModule(Shiboken::Module::import("PySide2.QtCore"));
- if (requiredModule.isNull())
- return false;
- SbkPySide2_QtCoreTypes = Shiboken::Module::getTypes(requiredModule);
- }
-#elif defined (HAVE_SHIBOKEN) && defined(HAVE_PYSIDE)
- // QtCore
- if (!SbkPySide_QtCoreTypes) {
- Shiboken::AutoDecRef requiredModule(Shiboken::Module::import("PySide.QtCore"));
- if (requiredModule.isNull())
- return false;
- SbkPySide_QtCoreTypes = Shiboken::Module::getTypes(requiredModule);
- }
-#endif
- return true;
-}
-
-bool PythonWrapper::loadGuiModule()
-{
-#if defined (HAVE_SHIBOKEN2) && defined(HAVE_PYSIDE2)
- // QtGui
- if (!SbkPySide2_QtGuiTypes) {
- Shiboken::AutoDecRef requiredModule(Shiboken::Module::import("PySide2.QtGui"));
- if (requiredModule.isNull())
- return false;
- SbkPySide2_QtGuiTypes = Shiboken::Module::getTypes(requiredModule);
- }
-#elif defined (HAVE_SHIBOKEN) && defined(HAVE_PYSIDE)
- // QtGui
- if (!SbkPySide_QtGuiTypes) {
- Shiboken::AutoDecRef requiredModule(Shiboken::Module::import("PySide.QtGui"));
- if (requiredModule.isNull())
- return false;
- SbkPySide_QtGuiTypes = Shiboken::Module::getTypes(requiredModule);
- }
-#endif
- return true;
-}
-
-bool PythonWrapper::loadWidgetsModule()
-{
-#if defined (HAVE_SHIBOKEN2) && defined(HAVE_PYSIDE2)
- // QtWidgets
- if (!SbkPySide2_QtWidgetsTypes) {
- Shiboken::AutoDecRef requiredModule(Shiboken::Module::import("PySide2.QtWidgets"));
- if (requiredModule.isNull())
- return false;
- SbkPySide2_QtWidgetsTypes = Shiboken::Module::getTypes(requiredModule);
- }
-#endif
- return true;
-}
-
-void PythonWrapper::createChildrenNameAttributes(PyObject* root, QObject* object)
-{
- Q_FOREACH (QObject* child, object->children()) {
- const QByteArray name = child->objectName().toLocal8Bit();
-
- if (!name.isEmpty() && !name.startsWith("_") && !name.startsWith("qt_")) {
- bool hasAttr = PyObject_HasAttrString(root, name.constData());
- if (!hasAttr) {
-#if defined (HAVE_SHIBOKEN) && defined(HAVE_PYSIDE)
- Shiboken::AutoDecRef pyChild(Shiboken::Conversions::pointerToPython(reinterpret_cast(getPyTypeObjectForTypeName()), child));
- PyObject_SetAttrString(root, name.constData(), pyChild);
-#else
- const char* className = qt_identifyType(child, "PySide2.QtWidgets");
- if (!className) {
- if (qobject_cast(child))
- className = "QWidget";
- else
- className = "QObject";
- }
-
- Py::Object pyChild(qt_wrapInstance(child, className, "shiboken2", "PySide2.QtWidgets", "wrapInstance"));
- PyObject_SetAttrString(root, name.constData(), pyChild.ptr());
-#endif
- }
- createChildrenNameAttributes(root, child);
- }
- createChildrenNameAttributes(root, child);
- }
-}
-
-void PythonWrapper::setParent(PyObject* pyWdg, QObject* parent)
-{
-#if defined (HAVE_SHIBOKEN) && defined(HAVE_PYSIDE)
- if (parent) {
- Shiboken::AutoDecRef pyParent(Shiboken::Conversions::pointerToPython(reinterpret_cast(getPyTypeObjectForTypeName()), parent));
- Shiboken::Object::setParent(pyParent, pyWdg);
- }
-#else
- Q_UNUSED(pyWdg);
- Q_UNUSED(parent);
-#endif
-}
-
-// ----------------------------------------------------
-
-Gui::WidgetFactoryInst* Gui::WidgetFactoryInst::_pcSingleton = NULL;
+Gui::WidgetFactoryInst* Gui::WidgetFactoryInst::_pcSingleton = nullptr;
WidgetFactoryInst& WidgetFactoryInst::instance()
{
- if (_pcSingleton == 0L)
+ if (_pcSingleton == nullptr)
_pcSingleton = new WidgetFactoryInst;
return *_pcSingleton;
}
void WidgetFactoryInst::destruct ()
{
- if (_pcSingleton != 0)
+ if (_pcSingleton != nullptr)
delete _pcSingleton;
- _pcSingleton = 0;
+ _pcSingleton = nullptr;
}
/**
* Creates a widget with the name \a sName which is a child of \a parent.
* To create an instance of this widget once it must has been registered.
- * If there is no appropriate widget registered 0 is returned.
+ * If there is no appropriate widget registered nullptr is returned.
*/
QWidget* WidgetFactoryInst::createWidget (const char* sName, QWidget* parent) const
{
@@ -640,7 +84,7 @@ QWidget* WidgetFactoryInst::createWidget (const char* sName, QWidget* parent) co
#else
Base::Console().Log("\"%s\" is not registered\n", sName);
#endif
- return 0;
+ return nullptr;
}
try {
@@ -656,7 +100,7 @@ QWidget* WidgetFactoryInst::createWidget (const char* sName, QWidget* parent) co
Base::Console().Log("%s does not inherit from \"QWidget\"\n", sName);
#endif
delete w;
- return 0;
+ return nullptr;
}
// set the parent to the widget
@@ -669,7 +113,7 @@ QWidget* WidgetFactoryInst::createWidget (const char* sName, QWidget* parent) co
/**
* Creates a widget with the name \a sName which is a child of \a parent.
* To create an instance of this widget once it must has been registered.
- * If there is no appropriate widget registered 0 is returned.
+ * If there is no appropriate widget registered nullptr is returned.
*/
Gui::Dialog::PreferencePage* WidgetFactoryInst::createPreferencePage (const char* sName, QWidget* parent) const
{
@@ -682,7 +126,7 @@ Gui::Dialog::PreferencePage* WidgetFactoryInst::createPreferencePage (const char
#else
Base::Console().Log("Cannot create an instance of \"%s\"\n", sName);
#endif
- return 0;
+ return nullptr;
}
if (qobject_cast(w)) {
@@ -695,7 +139,7 @@ Gui::Dialog::PreferencePage* WidgetFactoryInst::createPreferencePage (const char
Base::Console().Error("%s does not inherit from 'Gui::Dialog::PreferencePage'\n", sName);
#endif
delete w;
- return 0;
+ return nullptr;
}
// set the parent to the widget
@@ -709,7 +153,7 @@ Gui::Dialog::PreferencePage* WidgetFactoryInst::createPreferencePage (const char
* Creates a preference widget with the name \a sName and the preference name \a sPref
* which is a child of \a parent.
* To create an instance of this widget once it must has been registered.
- * If there is no appropriate widget registered 0 is returned.
+ * If there is no appropriate widget registered nullptr is returned.
* After creation of this widget its recent preferences are restored automatically.
*/
QWidget* WidgetFactoryInst::createPrefWidget(const char* sName, QWidget* parent, const char* sPref)
@@ -717,7 +161,7 @@ QWidget* WidgetFactoryInst::createPrefWidget(const char* sName, QWidget* parent,
QWidget* w = createWidget(sName);
// this widget class is not registered
if (!w)
- return 0; // no valid QWidget object
+ return nullptr; // no valid QWidget object
// set the parent to the widget
w->setParent(parent);
@@ -734,7 +178,7 @@ QWidget* WidgetFactoryInst::createPrefWidget(const char* sName, QWidget* parent,
Base::Console().Error("%s does not inherit from \"PrefWidget\"\n", w->metaObject()->className());
#endif
delete w;
- return 0;
+ return nullptr;
}
return w;
@@ -742,289 +186,7 @@ QWidget* WidgetFactoryInst::createPrefWidget(const char* sName, QWidget* parent,
// ----------------------------------------------------
-PySideUicModule::PySideUicModule()
- : Py::ExtensionModule("PySideUic")
-{
- add_varargs_method("loadUiType",&PySideUicModule::loadUiType,
- "PySide lacks the \"loadUiType\" command, so we have to convert the ui file to py code in-memory first\n"
- "and then execute it in a special frame to retrieve the form_class.");
- add_varargs_method("loadUi",&PySideUicModule::loadUi,
- "Addition of \"loadUi\" to PySide.");
- initialize("PySideUic helper module"); // register with Python
-}
-
-Py::Object PySideUicModule::loadUiType(const Py::Tuple& args)
-{
- Base::PyGILStateLocker lock;
- PyObject* main = PyImport_AddModule("__main__");
- PyObject* dict = PyModule_GetDict(main);
- Py::Dict d(PyDict_Copy(dict), true);
- Py::String uiFile(args.getItem(0));
- std::string file = uiFile.as_string();
- std::replace(file.begin(), file.end(), '\\', '/');
-
- QString cmd;
- QTextStream str(&cmd);
- // https://github.com/albop/dolo/blob/master/bin/load_ui.py
- str << "import pyside2uic\n"
- << "from PySide2 import QtCore, QtGui, QtWidgets\n"
- << "import xml.etree.ElementTree as xml\n"
- << "try:\n"
- << " from cStringIO import StringIO\n"
- << "except Exception:\n"
- << " from io import StringIO\n"
- << "\n"
- << "uiFile = \"" << file.c_str() << "\"\n"
- << "parsed = xml.parse(uiFile)\n"
- << "widget_class = parsed.find('widget').get('class')\n"
- << "form_class = parsed.find('class').text\n"
- << "with open(uiFile, 'r') as f:\n"
- << " o = StringIO()\n"
- << " frame = {}\n"
- << " pyside2uic.compileUi(f, o, indent=0)\n"
- << " pyc = compile(o.getvalue(), '', 'exec')\n"
- << " exec(pyc, frame)\n"
- << " #Fetch the base_class and form class based on their type in the xml from designer\n"
- << " form_class = frame['Ui_%s'%form_class]\n"
- << " base_class = eval('QtWidgets.%s'%widget_class)\n";
-
- PyObject* result = PyRun_String((const char*)cmd.toLatin1(), Py_file_input, d.ptr(), d.ptr());
- if (result) {
- Py_DECREF(result);
- if (d.hasKey("form_class") && d.hasKey("base_class")) {
- Py::Tuple t(2);
- t.setItem(0, d.getItem("form_class"));
- t.setItem(1, d.getItem("base_class"));
- return t;
- }
- }
- else {
- throw Py::Exception();
- }
-
- return Py::None();
-}
-
-Py::Object PySideUicModule::loadUi(const Py::Tuple& args)
-{
- Base::PyGILStateLocker lock;
- PyObject* main = PyImport_AddModule("__main__");
- PyObject* dict = PyModule_GetDict(main);
- Py::Dict d(PyDict_Copy(dict), true);
- d.setItem("uiFile_", args[0]);
- if (args.size() > 1)
- d.setItem("base_", args[1]);
- else
- d.setItem("base_", Py::None());
-
- QString cmd;
- QTextStream str(&cmd);
-#if 0
- // https://github.com/lunaryorn/snippets/blob/master/qt4/designer/pyside_dynamic.py
- str << "from PySide import QtCore, QtGui, QtUiTools\n"
- << "import FreeCADGui"
- << "\n"
- << "class UiLoader(QtUiTools.QUiLoader):\n"
- << " def __init__(self, baseinstance):\n"
- << " QtUiTools.QUiLoader.__init__(self, baseinstance)\n"
- << " self.baseinstance = baseinstance\n"
- << " self.ui = FreeCADGui.UiLoader()\n"
- << "\n"
- << " def createWidget(self, class_name, parent=None, name=''):\n"
- << " if parent is None and self.baseinstance:\n"
- << " return self.baseinstance\n"
- << " else:\n"
- << " widget = self.ui.createWidget(class_name, parent, name)\n"
- << " if not widget:\n"
- << " widget = QtUiTools.QUiLoader.createWidget(self, class_name, parent, name)\n"
- << " if self.baseinstance:\n"
- << " setattr(self.baseinstance, name, widget)\n"
- << " return widget\n"
- << "\n"
- << "loader = UiLoader(globals()[\"base_\"])\n"
- << "widget = loader.load(globals()[\"uiFile_\"])\n"
- << "\n";
-#else
- str << "from PySide2 import QtCore, QtGui, QtWidgets\n"
- << "import FreeCADGui"
- << "\n"
- << "loader = FreeCADGui.UiLoader()\n"
- << "widget = loader.load(globals()[\"uiFile_\"])\n"
- << "\n";
-#endif
-
- PyObject* result = PyRun_String((const char*)cmd.toLatin1(), Py_file_input, d.ptr(), d.ptr());
- if (result) {
- Py_DECREF(result);
- if (d.hasKey("widget")) {
- return d.getItem("widget");
- }
- }
- else {
- throw Py::Exception();
- }
-
- return Py::None();
-}
-
-// ----------------------------------------------------
-
-UiLoader::UiLoader(QObject* parent)
- : QUiLoader(parent)
-{
- // do not use the plugins for additional widgets as we don't need them and
- // the application may crash under Linux (tested on Ubuntu 7.04 & 7.10).
- clearPluginPaths();
- this->cw = availableWidgets();
-}
-
-UiLoader::~UiLoader()
-{
-}
-
-QWidget* UiLoader::createWidget(const QString & className, QWidget * parent,
- const QString& name)
-{
- if (this->cw.contains(className))
- return QUiLoader::createWidget(className, parent, name);
- QWidget* w = 0;
- if (WidgetFactory().CanProduce((const char*)className.toLatin1()))
- w = WidgetFactory().createWidget((const char*)className.toLatin1(), parent);
- if (w) w->setObjectName(name);
- return w;
-}
-
-// ----------------------------------------------------
-
-PyObject *UiLoaderPy::PyMake(struct _typeobject * /*type*/, PyObject * args, PyObject * /*kwds*/)
-{
- if (!PyArg_ParseTuple(args, ""))
- return 0;
- return new UiLoaderPy();
-}
-
-void UiLoaderPy::init_type()
-{
- behaviors().name("UiLoader");
- behaviors().doc("UiLoader to create widgets");
- behaviors().set_tp_new(PyMake);
- // you must have overwritten the virtual functions
- behaviors().supportRepr();
- behaviors().supportGetattr();
- behaviors().supportSetattr();
- add_varargs_method("load",&UiLoaderPy::load,"load(string, QWidget parent=None) -> QWidget\n"
- "load(QIODevice, QWidget parent=None) -> QWidget");
- add_varargs_method("createWidget",&UiLoaderPy::createWidget,"createWidget()");
-}
-
-UiLoaderPy::UiLoaderPy()
-{
-}
-
-UiLoaderPy::~UiLoaderPy()
-{
-}
-
-Py::Object UiLoaderPy::repr()
-{
- std::string s;
- std::ostringstream s_out;
- s_out << "Ui loader";
- return Py::String(s_out.str());
-}
-
-Py::Object UiLoaderPy::load(const Py::Tuple& args)
-{
- Gui::PythonWrapper wrap;
- if (wrap.loadCoreModule()) {
- std::string fn;
- QFile file;
- QIODevice* device = 0;
- QWidget* parent = 0;
- if (wrap.toCString(args[0], fn)) {
- file.setFileName(QString::fromUtf8(fn.c_str()));
- if (!file.open(QFile::ReadOnly))
- throw Py::RuntimeError("Cannot open file");
- device = &file;
- }
- else if (args[0].isString()) {
- fn = (std::string)Py::String(args[0]);
- file.setFileName(QString::fromUtf8(fn.c_str()));
- if (!file.open(QFile::ReadOnly))
- throw Py::RuntimeError("Cannot open file");
- device = &file;
- }
- else {
- QObject* obj = wrap.toQObject(args[0]);
- device = qobject_cast(obj);
- }
-
- if (args.size() > 1) {
- QObject* obj = wrap.toQObject(args[1]);
- parent = qobject_cast(obj);
- }
-
- if (device) {
- QWidget* widget = loader.load(device, parent);
- if (widget) {
- wrap.loadGuiModule();
- wrap.loadWidgetsModule();
-
- const char* typeName = wrap.getWrapperName(widget);
- Py::Object pyWdg = wrap.fromQWidget(widget, typeName);
- wrap.createChildrenNameAttributes(*pyWdg, widget);
- wrap.setParent(*pyWdg, parent);
- return pyWdg;
- }
- }
- else {
- throw Py::TypeError("string or QIODevice expected");
- }
- }
- return Py::None();
-}
-
-Py::Object UiLoaderPy::createWidget(const Py::Tuple& args)
-{
- Gui::PythonWrapper wrap;
-
- // 1st argument
- Py::String str(args[0]);
- std::string className;
- className = str.as_std_string("utf-8");
- // 2nd argument
- QWidget* parent = 0;
- if (wrap.loadCoreModule() && args.size() > 1) {
- QObject* object = wrap.toQObject(args[1]);
- if (object)
- parent = qobject_cast(object);
- }
-
- // 3rd argument
- std::string objectName;
- if (args.size() > 2) {
- Py::String str(args[2]);
- objectName = str.as_std_string("utf-8");
- }
-
- QWidget* widget = loader.createWidget(QString::fromLatin1(className.c_str()), parent,
- QString::fromLatin1(objectName.c_str()));
- if (!widget) {
- std::string err = "No such widget class '";
- err += className;
- err += "'";
- throw Py::RuntimeError(err);
- }
- wrap.loadGuiModule();
- wrap.loadWidgetsModule();
-
- const char* typeName = wrap.getWrapperName(widget);
- return wrap.fromQWidget(widget, typeName);
-}
-
-// ----------------------------------------------------
-
-WidgetFactorySupplier* WidgetFactorySupplier::_pcSingleton = 0L;
+WidgetFactorySupplier* WidgetFactorySupplier::_pcSingleton = nullptr;
WidgetFactorySupplier & WidgetFactorySupplier::instance()
{
@@ -1039,7 +201,7 @@ void WidgetFactorySupplier::destruct()
// delete the widget factory and all its producers first
WidgetFactoryInst::destruct();
delete _pcSingleton;
- _pcSingleton=0;
+ _pcSingleton=nullptr;
}
// ----------------------------------------------------
@@ -1092,13 +254,13 @@ void* PrefPagePyProducer::Produce () const
QWidget* widget = new Gui::Dialog::PreferencePagePython(page);
if (!widget->layout()) {
delete widget;
- widget = 0;
+ widget = nullptr;
}
return widget;
}
catch (Py::Exception&) {
PyErr_Print();
- return 0;
+ return nullptr;
}
}
@@ -1243,7 +405,7 @@ void PyResource::init_type()
add_varargs_method("connect",&PyResource::connect);
}
-PyResource::PyResource() : myDlg(0)
+PyResource::PyResource() : myDlg(nullptr)
{
}
@@ -1300,7 +462,7 @@ void PyResource::load(const char* name)
}
}
- QWidget* w=0;
+ QWidget* w=nullptr;
try {
UiLoader loader;
loader.setLanguageChangeEnabled(true);
@@ -1335,13 +497,13 @@ bool PyResource::connect(const char* sender, const char* signal, PyObject* cb)
if ( !myDlg )
return false;
- QObject* objS=0L;
+ QObject* objS=nullptr;
QList list = myDlg->findChildren();
- QList::const_iterator it = list.begin();
+ QList::const_iterator it = list.cbegin();
QObject *obj;
QString sigStr = QString::fromLatin1("2%1").arg(QString::fromLatin1(signal));
- while ( it != list.end() ) {
+ while ( it != list.cend() ) {
obj = *it;
++it;
if (obj->objectName() == QLatin1String(sender)) {
@@ -1372,7 +534,7 @@ Py::Object PyResource::repr()
/**
* Searches for a widget and its value in the argument object \a args
* to returns its value as Python object.
- * In the case it fails 0 is returned.
+ * In the case it fails nullptr is returned.
*/
Py::Object PyResource::value(const Py::Tuple& args)
{
@@ -1384,11 +546,11 @@ Py::Object PyResource::value(const Py::Tuple& args)
QVariant v;
if (myDlg) {
QList list = myDlg->findChildren();
- QList::const_iterator it = list.begin();
+ QList::const_iterator it = list.cbegin();
QObject *obj;
bool fnd = false;
- while ( it != list.end() ) {
+ while ( it != list.cend() ) {
obj = *it;
++it;
if (obj->objectName() == QLatin1String(psName)) {
@@ -1443,7 +605,7 @@ Py::Object PyResource::value(const Py::Tuple& args)
/**
* Searches for a widget, its value name and the new value in the argument object \a args
* to set even this new value.
- * In the case it fails 0 is returned.
+ * In the case it fails nullptr is returned.
*/
Py::Object PyResource::setValue(const Py::Tuple& args)
{
@@ -1484,11 +646,11 @@ Py::Object PyResource::setValue(const Py::Tuple& args)
if (myDlg) {
QList list = myDlg->findChildren();
- QList::const_iterator it = list.begin();
+ QList::const_iterator it = list.cbegin();
QObject *obj;
bool fnd = false;
- while ( it != list.end() ) {
+ while ( it != list.cend() ) {
obj = *it;
++it;
if (obj->objectName() == QLatin1String(psName)) {
@@ -1531,7 +693,7 @@ Py::Object PyResource::show(const Py::Tuple&)
/**
* Searches for the sender, the signal and the callback function to connect with
- * in the argument object \a args. In the case it fails 0 is returned.
+ * in the argument object \a args. In the case it fails nullptr is returned.
*/
Py::Object PyResource::connect(const Py::Tuple& args)
{
diff --git a/src/Gui/WidgetFactory.h b/src/Gui/WidgetFactory.h
index d1d1ecf6eb..929483783c 100644
--- a/src/Gui/WidgetFactory.h
+++ b/src/Gui/WidgetFactory.h
@@ -25,8 +25,6 @@
#define GUI_WIDGETFACTORY_H
#include
-#include
-#include
#include
#include
@@ -35,47 +33,15 @@
#include "PropertyPage.h"
#include
+QT_BEGIN_NAMESPACE
+class QDir;
+QT_END_NAMESPACE
+
namespace Gui {
namespace Dialog{
class PreferencePage;
}
-class GuiExport PythonWrapper
-{
-public:
- PythonWrapper();
- bool loadCoreModule();
- bool loadGuiModule();
- bool loadWidgetsModule();
-
- bool toCString(const Py::Object&, std::string&);
- QObject* toQObject(const Py::Object&);
- QGraphicsItem* toQGraphicsItem(PyObject* ptr);
- Py::Object fromQObject(QObject*, const char* className=0);
- Py::Object fromQWidget(QWidget*, const char* className=0);
- const char* getWrapperName(QObject*) const;
- /*!
- Create a Python wrapper for the icon. The icon must be created on the heap
- and the Python wrapper takes ownership of it.
- */
- Py::Object fromQIcon(const QIcon*);
- QIcon *toQIcon(PyObject *pyobj);
- static void createChildrenNameAttributes(PyObject* root, QObject* object);
- static void setParent(PyObject* pyWdg, QObject* parent);
-};
-
-class PySideUicModule : public Py::ExtensionModule
-{
-
-public:
- PySideUicModule();
- virtual ~PySideUicModule() {}
-
-private:
- Py::Object loadUiType(const Py::Tuple& args);
- Py::Object loadUi(const Py::Tuple& args);
-};
-
/**
* The widget factory provides methods for the dynamic creation of widgets.
* To create these widgets once they must be registered to the factory.
@@ -89,8 +55,8 @@ public:
static WidgetFactoryInst& instance();
static void destruct ();
- QWidget* createWidget (const char* sName, QWidget* parent=0) const;
- Gui::Dialog::PreferencePage* createPreferencePage (const char* sName, QWidget* parent=0) const;
+ QWidget* createWidget (const char* sName, QWidget* parent=nullptr) const;
+ Gui::Dialog::PreferencePage* createPreferencePage (const char* sName, QWidget* parent=nullptr) const;
QWidget* createPrefWidget(const char* sName, QWidget* parent, const char* sPref);
private:
@@ -107,51 +73,6 @@ inline WidgetFactoryInst& WidgetFactory()
// --------------------------------------------------------------------
-/**
- * The UiLoader class provides the abitlity to use the widget factory
- * framework of FreeCAD within the framework provided by Qt. This class
- * extends QUiLoader by the creation of FreeCAD specific widgets.
- * @author Werner Mayer
- */
-class UiLoader : public QUiLoader
-{
-public:
- UiLoader(QObject* parent=0);
- virtual ~UiLoader();
-
- /**
- * Creates a widget of the type \a className with the parent \a parent.
- * For more details see the documentation to QWidgetFactory.
- */
- QWidget* createWidget(const QString & className, QWidget * parent=0,
- const QString& name = QString());
-private:
- QStringList cw;
-};
-
-// --------------------------------------------------------------------
-
-class UiLoaderPy : public Py::PythonExtension
-{
-public:
- static void init_type(void); // announce properties and methods
-
- UiLoaderPy();
- ~UiLoaderPy();
-
- Py::Object repr();
- Py::Object createWidget(const Py::Tuple&);
- Py::Object load(const Py::Tuple&);
-
-private:
- static PyObject *PyMake(struct _typeobject *, PyObject *, PyObject *);
-
-private:
- UiLoader loader;
-};
-
-// --------------------------------------------------------------------
-
/**
* The WidgetProducer class is a value-based template class that provides
* the ability to create widgets dynamically.
@@ -409,7 +330,7 @@ private:
class PyResource : public Py::PythonExtension
{
public:
- static void init_type(void); // announce properties and methods
+ static void init_type(); // announce properties and methods
PyResource();
~PyResource();
@@ -462,7 +383,7 @@ class GuiExport PreferencePagePython : public PreferencePage
Q_OBJECT
public:
- PreferencePagePython(const Py::Object& dlg, QWidget* parent = 0);
+ PreferencePagePython(const Py::Object& dlg, QWidget* parent = nullptr);
virtual ~PreferencePagePython();
void loadSettings();
diff --git a/src/Main/MainCmd.cpp b/src/Main/MainCmd.cpp
index 4a11233ab5..fa230acacc 100644
--- a/src/Main/MainCmd.cpp
+++ b/src/Main/MainCmd.cpp
@@ -72,6 +72,13 @@ int main( int argc, char ** argv )
setlocale(LC_ALL, "");
setlocale(LC_NUMERIC, "C");
+#if defined(__MINGW32__)
+ const char* mingw_prefix = getenv("MINGW_PREFIX");
+ const char* py_home = getenv("PYTHONHOME");
+ if (!py_home && mingw_prefix)
+ _putenv_s("PYTHONHOME", mingw_prefix);
+#endif
+
// Name and Version of the Application
App::Application::Config()["ExeName"] = "FreeCAD";
App::Application::Config()["ExeVendor"] = "FreeCAD";
diff --git a/src/Main/MainGui.cpp b/src/Main/MainGui.cpp
index 93c263d85e..af31924450 100644
--- a/src/Main/MainGui.cpp
+++ b/src/Main/MainGui.cpp
@@ -127,6 +127,11 @@ int main( int argc, char ** argv )
#elif defined(FC_OS_MACOSX)
(void)QLocale::system();
putenv("PYTHONPATH=");
+#elif defined(__MINGW32__)
+ const char* mingw_prefix = getenv("MINGW_PREFIX");
+ const char* py_home = getenv("PYTHONHOME");
+ if (!py_home && mingw_prefix)
+ _putenv_s("PYTHONHOME", mingw_prefix);
#else
_putenv("PYTHONPATH=");
// https://forum.freecadweb.org/viewtopic.php?f=4&t=18288
diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager.ts b/src/Mod/AddonManager/Resources/translations/AddonManager.ts
index 7112c6c5ca..a5ddcc8f2a 100644
--- a/src/Mod/AddonManager/Resources/translations/AddonManager.ts
+++ b/src/Mod/AddonManager/Resources/translations/AddonManager.ts
@@ -3,7 +3,7 @@
AddonInstaller
-
+ Installed location
@@ -96,97 +96,97 @@
-
+ Outdated GitPython detected, consider upgrading with pip.
-
+ List of macros successfully retrieved.
-
+ Retrieving description...
-
+ Retrieving info from
-
+ An update is available for this addon.
-
+ This addon is already installed.
-
+ Retrieving info from git
-
+ Retrieving info from wiki
-
+ GitPython not found. Using standard download instead.
-
+ Your version of python doesn't appear to support ZIP files. Unable to proceed.
-
+ Workbench successfully installed. Please restart FreeCAD to apply the changes.
-
+ Missing workbench
-
+ Missing python module
-
+ Missing optional python module (doesn't prevent installing)
-
+ Some errors were found that prevent to install this workbench
-
+ Please install the missing components first.
-
+ Error: Unable to download
-
+ Successfully installed
-
+ GitPython not installed! Cannot retrieve macros from git
@@ -206,72 +206,72 @@
-
+ This macro is already installed.
-
+ A macro has been installed and is available under Macro -> Macros menu
-
+ This addon is marked as obsolete
-
+ This usually means it is no longer maintained, and some more advanced addon in this list provides the same functionality.
-
+ Error: Unable to locate zip from
-
+ Something went wrong with the Git Macro Retrieval, possibly the Git executable is not in the path
-
+ This addon is marked as Python 2 Only
-
+ This workbench may no longer be maintained and installing it on a Python 3 system will more than likely result in errors at startup or while in use.
-
+ User requested updating a Python 2 workbench on a system running Python 3 -
-
+ Workbench successfully updated. Please restart FreeCAD to apply the changes.
-
+ User requested installing a Python 2 workbench on a system running Python 3 -
-
+ Appears to be an issue connecting to the Wiki, therefore cannot retrieve Wiki macro list at this time
-
+ Raw markdown displayed
-
+ Python Markdown library is missing.
diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_ar.ts b/src/Mod/AddonManager/Resources/translations/AddonManager_ar.ts
index 25724b8bca..e0f6ddd45b 100644
--- a/src/Mod/AddonManager/Resources/translations/AddonManager_ar.ts
+++ b/src/Mod/AddonManager/Resources/translations/AddonManager_ar.ts
@@ -4,7 +4,7 @@
AddonInstaller
-
+ Installed locationInstalled location
@@ -97,97 +97,97 @@
Workbenches list was updated.
-
+ Outdated GitPython detected, consider upgrading with pip.Outdated GitPython detected, consider upgrading with pip.
-
+ List of macros successfully retrieved.List of macros successfully retrieved.
-
+ Retrieving description...Retrieving description...
-
+ Retrieving info fromRetrieving info from
-
+ An update is available for this addon.An update is available for this addon.
-
+ This addon is already installed.This addon is already installed.
-
+ Retrieving info from gitRetrieving info from git
-
+ Retrieving info from wikiRetrieving info from wiki
-
+ GitPython not found. Using standard download instead.GitPython not found. Using standard download instead.
-
+ Your version of python doesn't appear to support ZIP files. Unable to proceed.Your version of python doesn't appear to support ZIP files. Unable to proceed.
-
+ Workbench successfully installed. Please restart FreeCAD to apply the changes.Workbench successfully installed. Please restart FreeCAD to apply the changes.
-
+ Missing workbenchMissing workbench
-
+ Missing python moduleMissing python module
-
+ Missing optional python module (doesn't prevent installing)Missing optional python module (doesn't prevent installing)
-
+ Some errors were found that prevent to install this workbenchSome errors were found that prevent to install this workbench
-
+ Please install the missing components first.Please install the missing components first.
-
+ Error: Unable to downloadError: Unable to download
-
+ Successfully installedSuccessfully installed
-
+ GitPython not installed! Cannot retrieve macros from gitGitPython not installed! Cannot retrieve macros from git
@@ -207,72 +207,72 @@
Restart required
-
+ This macro is already installed.This macro is already installed.
-
+ A macro has been installed and is available under Macro -> Macros menuA macro has been installed and is available under Macro -> Macros menu
-
+ This addon is marked as obsoleteThis addon is marked as obsolete
-
+ This usually means it is no longer maintained, and some more advanced addon in this list provides the same functionality.This usually means it is no longer maintained, and some more advanced addon in this list provides the same functionality.
-
+ Error: Unable to locate zip fromError: Unable to locate zip from
-
+ Something went wrong with the Git Macro Retrieval, possibly the Git executable is not in the pathSomething went wrong with the Git Macro Retrieval, possibly the Git executable is not in the path
-
+ This addon is marked as Python 2 OnlyThis addon is marked as Python 2 Only
-
+ This workbench may no longer be maintained and installing it on a Python 3 system will more than likely result in errors at startup or while in use.This workbench may no longer be maintained and installing it on a Python 3 system will more than likely result in errors at startup or while in use.
-
+ User requested updating a Python 2 workbench on a system running Python 3 - User requested updating a Python 2 workbench on a system running Python 3 -
-
+ Workbench successfully updated. Please restart FreeCAD to apply the changes.Workbench successfully updated. Please restart FreeCAD to apply the changes.
-
+ User requested installing a Python 2 workbench on a system running Python 3 - User requested installing a Python 2 workbench on a system running Python 3 -
-
+ Appears to be an issue connecting to the Wiki, therefore cannot retrieve Wiki macro list at this timeAppears to be an issue connecting to the Wiki, therefore cannot retrieve Wiki macro list at this time
-
+ Raw markdown displayedRaw markdown displayed
-
+ Python Markdown library is missing.Python Markdown library is missing.
diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_bg.ts b/src/Mod/AddonManager/Resources/translations/AddonManager_bg.ts
index 5464734408..2f157dd6cf 100644
--- a/src/Mod/AddonManager/Resources/translations/AddonManager_bg.ts
+++ b/src/Mod/AddonManager/Resources/translations/AddonManager_bg.ts
@@ -4,7 +4,7 @@
AddonInstaller
-
+ Installed locationИнсталационна папка
@@ -97,97 +97,97 @@
Списъкът с работни среди бе обновен.
-
+ Outdated GitPython detected, consider upgrading with pip.Засечен е остарял GitPython, обмислете да го надградите с помощта на pip.
-
+ List of macros successfully retrieved.Успешно извлечен е списъкът с макроси.
-
+ Retrieving description...Извлича се описание...
-
+ Retrieving info fromИзвличане на данни от
-
+ An update is available for this addon.Има обновяване за тази добавка.
-
+ This addon is already installed.Добавката вече я има.
-
+ Retrieving info from gitИзвличане на данни от git
-
+ Retrieving info from wikiИзвличане на данни от уики
-
+ GitPython not found. Using standard download instead.Няма открит GitPython. Вместо това използвайте стандартно изтегляне.
-
+ Your version of python doesn't appear to support ZIP files. Unable to proceed.Вашата версия на python не поддържа ZIP файлове. Продължаването невъзможно.
-
+ Workbench successfully installed. Please restart FreeCAD to apply the changes.Работната среда бе обновена. Моля рестартирайте FreeCAD за прилагане на промените.
-
+ Missing workbenchРаботната среда не е налична
-
+ Missing python moduleЛипсва модул на python
-
+ Missing optional python module (doesn't prevent installing)Липсва допълнителен модул на python (не предотвратява инсталирането)
-
+ Some errors were found that prevent to install this workbenchОткрити бяха грешки, които предотвратяват инсталирането на работната среда
-
+ Please install the missing components first.Първо инсталирайте липсващите компоненти.
-
+ Error: Unable to downloadГрешка: Не може да се изтегли
-
+ Successfully installedУспешно инсталирано
-
+ GitPython not installed! Cannot retrieve macros from gitНе е инсталиран GitPython! Не може да извлечете данни за макроса от git
@@ -207,72 +207,72 @@
Изисква се повторно пускане
-
+ This macro is already installed.Макросът вече е инсталиран.
-
+ A macro has been installed and is available under Macro -> Macros menuМакросът е инсталиран и наличен под менюто Макроси -> макрос
-
+ This addon is marked as obsoleteДобавката е отбелязана като остаряла
-
+ This usually means it is no longer maintained, and some more advanced addon in this list provides the same functionality.Това обикновено означава, че тя вече не се поддържа, и някоя по-напреднала добавка в този списък предлага същата функционалност.
-
+ Error: Unable to locate zip fromГрешка: Не може да се намери zip от
-
+ Something went wrong with the Git Macro Retrieval, possibly the Git executable is not in the pathПолучи се проблем при извличането на макроса от Git, вероятно изпълнимият файл Git.exe не е достъпен през променливата на средата PATH
-
+ This addon is marked as Python 2 OnlyТази добавка е отбелязана като съвместима само с Python 2
-
+ This workbench may no longer be maintained and installing it on a Python 3 system will more than likely result in errors at startup or while in use.Тази работна среда вероятно вече не се поддържа и инсталирането и в система с Python 3 вероятно ще доведе до грешки по време на стартиране или употреба.
-
+ User requested updating a Python 2 workbench on a system running Python 3 - Потребителят пожела обновяване на Python 2 работна среда в система използваща Python 3 -
-
+ Workbench successfully updated. Please restart FreeCAD to apply the changes.Работната среда бе обновена. Моля рестартирайте FreeCAD за прилагане на промените.
-
+ User requested installing a Python 2 workbench on a system running Python 3 - Потребителят пожела инсталиране на Python 2 работна среда в система използваща Python 3 -
-
+ Appears to be an issue connecting to the Wiki, therefore cannot retrieve Wiki macro list at this timeИзглежда има проблем при свързване с Wiki, свалянето на списъка с макроси от Wiki не е възможно в момента
-
+ Raw markdown displayedПоказан е суровия изходния код
-
+ Python Markdown library is missing.Липсва библиотеката Python Markdown.
diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_ca.ts b/src/Mod/AddonManager/Resources/translations/AddonManager_ca.ts
index 9ed77112c9..2af99c1011 100644
--- a/src/Mod/AddonManager/Resources/translations/AddonManager_ca.ts
+++ b/src/Mod/AddonManager/Resources/translations/AddonManager_ca.ts
@@ -4,7 +4,7 @@
AddonInstaller
-
+ Installed locationLocalització de la instal·lació
@@ -97,97 +97,97 @@
Banc de treball actualitzat.
-
+ Outdated GitPython detected, consider upgrading with pip.S'ha detectat GitPython obsolet, plantegeu-vos l'actualització amb pip.
-
+ List of macros successfully retrieved.La llista de macos s'ha recuperat correctament.
-
+ Retrieving description...S'està recuperant la descripció...
-
+ Retrieving info fromS'està recuperant informació de
-
+ An update is available for this addon.Hi ha una actualització disponible per a aquest complement.
-
+ This addon is already installed.Aquest complement ja s'ha instal·lat.
-
+ Retrieving info from gitS'està recuperant informació de git
-
+ Retrieving info from wikiS'està recuperant informació del wiki
-
+ GitPython not found. Using standard download instead.No s'ha trobat GitPython. En lloc seu s'utilitza la descàrrega estàndard.
-
+ Your version of python doesn't appear to support ZIP files. Unable to proceed.La vostra versió de python n'o sembla ser compatible amb els fitxers ZIP. No es pot procedir.
-
+ Workbench successfully installed. Please restart FreeCAD to apply the changes.El banc de treball s'ha instal·lat correctament. Reinicieu FreeCAD per aplicar els canvis.
-
+ Missing workbenchFalta el banc de treball
-
+ Missing python moduleManca el mòdul python
-
+ Missing optional python module (doesn't prevent installing)Manca el mòdul python opcional (n'o impedeix la instal·lació)
-
+ Some errors were found that prevent to install this workbenchS'han trobat alguns errors que impedeixen instal·lar aquest banc de treball
-
+ Please install the missing components first.Si us plau, instal·leu primer els components que manquen.
-
+ Error: Unable to downloadS'ha produït un error: no es pot baixar
-
+ Successfully installedS'ha instal·lat correctament
-
+ GitPython not installed! Cannot retrieve macros from gitNo s'ha instal·lat GitPython! No es poden recuperar les macros de git
@@ -207,72 +207,72 @@
S'ha de reiniciar
-
+ This macro is already installed.Aquesta macro ja s'ha instal·lat.
-
+ A macro has been installed and is available under Macro -> Macros menuS'ha instal·lat una macro i està disponible en el menú Macro -> Macros
-
+ This addon is marked as obsoleteAquest complement està marcat com a obsolet
-
+ This usually means it is no longer maintained, and some more advanced addon in this list provides the same functionality.Normalment significa que ja no és mantingut i que algun complement més avançat d'aquesta llista ofereix la mateixa funcionalitat.
-
+ Error: Unable to locate zip fromS'ha produït un error: no s'ha pogut localitzar el zip des de
-
+ Something went wrong with the Git Macro Retrieval, possibly the Git executable is not in the pathS'ha produït un error amb la recuperació de macros de Git, possiblement l'executable de Git no estigui en la ruta
-
+ This addon is marked as Python 2 OnlyAquest complement està marcat només com a Python 2
-
+ This workbench may no longer be maintained and installing it on a Python 3 system will more than likely result in errors at startup or while in use.És possible que aquest banc de treball ja no es mantingui i instal·lar-lo en un sistema Python 3 provocarà probablement errors en iniciar-se o en ús.
-
+ User requested updating a Python 2 workbench on a system running Python 3 - L'usuari ha sol·licitat l'actualització d'un banc de treball Python 2 en un sistema que executa Python 3 -
-
+ Workbench successfully updated. Please restart FreeCAD to apply the changes.El banc de treball s'ha instal·lat correctament. Reinicieu FreeCAD per aplicar els canvis.
-
+ User requested installing a Python 2 workbench on a system running Python 3 - L'usuari ha sol·licitat l'actualització d'un banc de treball Python 2 en un sistema que executa Python 3 -
-
+ Appears to be an issue connecting to the Wiki, therefore cannot retrieve Wiki macro list at this timeSembla que és hi ha algun problema de connexió amb el Wiki, per tant no es pot recuperar la llista de macros de la Wiki en aquest moment
-
+ Raw markdown displayedMostrant Markdown sense processar
-
+ Python Markdown library is missing.Falta la biblioteca Python Markdown.
diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_cs.ts b/src/Mod/AddonManager/Resources/translations/AddonManager_cs.ts
index c16ad385a1..239228f9ed 100644
--- a/src/Mod/AddonManager/Resources/translations/AddonManager_cs.ts
+++ b/src/Mod/AddonManager/Resources/translations/AddonManager_cs.ts
@@ -4,7 +4,7 @@
AddonInstaller
-
+ Installed locationUmístění instalace
@@ -97,97 +97,97 @@
Seznam pracovních prostředí byl aktualizován.
-
+ Outdated GitPython detected, consider upgrading with pip.Zjištěn zastaralý GitPython, zvažte upgrade pomocí pip.
-
+ List of macros successfully retrieved.Seznam maker úspěšně načten.
-
+ Retrieving description...Načítání popisu...
-
+ Retrieving info fromNačítání informací z
-
+ An update is available for this addon.Pro tento doplněk je dostupná aktualizace.
-
+ This addon is already installed.Toto rozšíření je již nainstalováno.
-
+ Retrieving info from gitNačítání informací z gitu
-
+ Retrieving info from wikiNačítání informací z wiki
-
+ GitPython not found. Using standard download instead.GitPython nenalezen. Použijte standardní způsob stažení.
-
+ Your version of python doesn't appear to support ZIP files. Unable to proceed.Vaše verze pythonu pravděpodobně nepodporuje ZIP soubory. Nelze pokračovat.
-
+ Workbench successfully installed. Please restart FreeCAD to apply the changes.Pracovní prostředí bylo úspěšně nainstalováno. Pro aplikaci změn prosím restartujte FreeCAD.
-
+ Missing workbenchChybí pracovní prostředí
-
+ Missing python moduleChybějící modul python
-
+ Missing optional python module (doesn't prevent installing)Chybí volitelný modul pythonu (nebrání instalaci)
-
+ Some errors were found that prevent to install this workbenchByly nalezeny chyby, které brání instalaci tohoto pracovního prostředí
-
+ Please install the missing components first.Nejprve prosím nainstalujte chybějící komponenty.
-
+ Error: Unable to downloadChyba: Nelze stáhnout
-
+ Successfully installedÚspěšně nainstalováno
-
+ GitPython not installed! Cannot retrieve macros from gitGitPython není nainstalován! Nelze načíst makra z gitu
@@ -207,72 +207,72 @@
Je vyžadován restart
-
+ This macro is already installed.Toto makro je již nainstalováno.
-
+ A macro has been installed and is available under Macro -> Macros menuMakro bylo nainstalováno a je k dispozici v menu Makro -> Makra
-
+ This addon is marked as obsoleteTento doplněk je označen jako zastaralý
-
+ This usually means it is no longer maintained, and some more advanced addon in this list provides the same functionality.To obvykle znamená, že již není udržován a některé pokročilejší doplňky v tomto seznamu poskytují stejnou funkčnost.
-
+ Error: Unable to locate zip fromChyba: Nelze najít zip z
-
+ Something went wrong with the Git Macro Retrieval, possibly the Git executable is not in the pathNěco se pokazilo s Git Macro Retrieval, možná není spustitelný Git v cestě
-
+ This addon is marked as Python 2 OnlyTento doplněk je označen pouze jako Python 2
-
+ This workbench may no longer be maintained and installing it on a Python 3 system will more than likely result in errors at startup or while in use.Tento pracovní prostředí již nemusí být udržován a instalace do systému Python 3 bude mít pravděpodobně za následek chyby při startu nebo při používání.
-
+ User requested updating a Python 2 workbench on a system running Python 3 - Uživatel požádal o aktualizaci pracovního prostředí Pythonu 2 do systému, který používá Python 3 -
-
+ Workbench successfully updated. Please restart FreeCAD to apply the changes.Pracovní prostředí bylo úspěšně aktualizováno. Pro aplikaci změn prosím restartujte FreeCAD.
-
+ User requested installing a Python 2 workbench on a system running Python 3 - Uživatel požádal o instalaci pracovního prostředí Pythonu 2 do systému, který používá Python 3 -
-
+ Appears to be an issue connecting to the Wiki, therefore cannot retrieve Wiki macro list at this timeZdá se, že je problém s připojením k Wiki, proto momentálně nelze získat seznam maker Wiki
-
+ Raw markdown displayedZobrazit čisté markdown
-
+ Python Markdown library is missing.Chybí python knihovna Markdown.
diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_de.ts b/src/Mod/AddonManager/Resources/translations/AddonManager_de.ts
index 0d63b2feac..e54ff402f8 100644
--- a/src/Mod/AddonManager/Resources/translations/AddonManager_de.ts
+++ b/src/Mod/AddonManager/Resources/translations/AddonManager_de.ts
@@ -4,7 +4,7 @@
AddonInstaller
-
+ Installed locationInstallationsort
@@ -97,97 +97,97 @@
Die Liste der Arbeitsbereiche wurde aktualisiert.
-
+ Outdated GitPython detected, consider upgrading with pip.Es wurde eine veraltete GitPython-Version erkannt, erwäge das Upgrade mit Pip.
-
+ List of macros successfully retrieved.Die Makro-Liste wurde erfolgreich abgerufen.
-
+ Retrieving description...Beschreibung wird abgerufen...
-
+ Retrieving info fromInformationen werden abgerufen von
-
+ An update is available for this addon.Für dieses Addon ist ein Update verfügbar.
-
+ This addon is already installed.Dieses Addon ist bereits installiert.
-
+ Retrieving info from gitInformationen werden von Git abgerufen
-
+ Retrieving info from wikiInformationen werden aus den Wiki abgerufen
-
+ GitPython not found. Using standard download instead.GitPython wurde nicht gefunden. Stattdessen wird der Standarddownload verwendet.
-
+ Your version of python doesn't appear to support ZIP files. Unable to proceed.Ihre Version von Python scheint ZIP-Dateien nicht zu unterstützen. Aktion kann nicht fortgesetzt werden.
-
+ Workbench successfully installed. Please restart FreeCAD to apply the changes.Arbeitsbreich erfolgreich installiert. Bitte starten Sie FreeCAD neu, um die Änderungen anzuwenden.
-
+ Missing workbenchFehlender Arbeitsbereich
-
+ Missing python moduleFehlendes Python-Modul
-
+ Missing optional python module (doesn't prevent installing)Fehlendes optionales Python-Modul (verhindert nicht die Installation)
-
+ Some errors were found that prevent to install this workbenchEinige Fehler verhindern die Installation dieses Arbeitsbereiches
-
+ Please install the missing components first.Bitte installieren Sie zuerst die fehlenden Komponenten.
-
+ Error: Unable to downloadFehler: Download nicht möglich
-
+ Successfully installedInstallation erfolgreich
-
+ GitPython not installed! Cannot retrieve macros from gitGitPython is nicht installiert! Makros können nicht von Git abgerufen werden
@@ -207,72 +207,72 @@
Neustart erforderlich
-
+ This macro is already installed.Dieses Makro ist bereits installiert.
-
+ A macro has been installed and is available under Macro -> Macros menuEin Makro wurde installiert und ist verfügbar unter Makro -> Makros-Menü
-
+ This addon is marked as obsoleteDieses Addon ist als veraltet markiert
-
+ This usually means it is no longer maintained, and some more advanced addon in this list provides the same functionality.Dies bedeutet normalerweise, dass es nicht mehr gewartet wird und ein fortschrittlicheres Addon in dieser Liste die gleiche Funktionalität bietet.
-
+ Error: Unable to locate zip fromFehler: Zip-Datei kann nicht gefunden werden von
-
+ Something went wrong with the Git Macro Retrieval, possibly the Git executable is not in the pathEin Fehler ist bei der Git-Makro Abfrage aufgetreten, möglicherweise befindet sich die ausführbare Git-Datei nicht in dem Pfad
-
+ This addon is marked as Python 2 OnlyDieses Addon ist als nur für Python 2 gekennzeichnet
-
+ This workbench may no longer be maintained and installing it on a Python 3 system will more than likely result in errors at startup or while in use.Dieser Arbeitsbereich wird möglicherweise nicht mehr gewartet und die Installation auf einem Python-3-System wird höchstwahrscheinlich zu Fehlern beim Start oder während der Nutzung führen.
-
+ User requested updating a Python 2 workbench on a system running Python 3 - Der Benutzer hat die Aktualisierung eines Python-2-Arbeitsbereichs auf einem System mit Python 3 angefordert -
-
+ Workbench successfully updated. Please restart FreeCAD to apply the changes.Arbeitsbreich erfolgreich aktualisiert. Bitte starten Sie FreeCAD neu, um die Änderungen zu übernehmen.
-
+ User requested installing a Python 2 workbench on a system running Python 3 - Der Benutzer hat die Installation eines Python-2-Arbeitsbereichs auf einem System mit Python 3 angefordert -
-
+ Appears to be an issue connecting to the Wiki, therefore cannot retrieve Wiki macro list at this timeAnscheinend ist ein Problem beim Verbinden mit dem Wiki aufgetreten, daher kann die Wiki-Makroliste zu diesem Zeitpunkt nicht abgerufen werden
-
+ Raw markdown displayedUnbearbeitetes Markdown angezeigt
-
+ Python Markdown library is missing.Python Markdown Bibliothek fehlt.
diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_el.ts b/src/Mod/AddonManager/Resources/translations/AddonManager_el.ts
index f69ac1c896..84d2327d55 100644
--- a/src/Mod/AddonManager/Resources/translations/AddonManager_el.ts
+++ b/src/Mod/AddonManager/Resources/translations/AddonManager_el.ts
@@ -4,7 +4,7 @@
AddonInstaller
-
+ Installed locationInstalled location
@@ -97,97 +97,97 @@
Ενημερώθηκε η λίστα πάγκων εργασίας.
-
+ Outdated GitPython detected, consider upgrading with pip.Ανιχνεύθηκε ξεπερασμένη έκδοση GitPython, εξετάστε το ενδεχόμενο αναβάθμισης με το pip.
-
+ List of macros successfully retrieved.Η λίστα μακροεντολών ανακτήθηκε επιτυχώς.
-
+ Retrieving description...Ανάκτηση περιγραφής...
-
+ Retrieving info fromΑνάκτηση πληροφοριών από
-
+ An update is available for this addon.Υπάρχει διαθέσιμη ενημέρωση για αυτό το πρόσθετο.
-
+ This addon is already installed.Αυτό το πρόσθετο είναι ήδη εγκατεστημένο.
-
+ Retrieving info from gitΑνάκτηση πληροφοριών από το git
-
+ Retrieving info from wikiΑνάκτηση πληροφοριών από το wiki
-
+ GitPython not found. Using standard download instead.GitPython not found. Using standard download instead.
-
+ Your version of python doesn't appear to support ZIP files. Unable to proceed.Η δικιά σας έκδοση της python δεν φαίνεται να υποστηρίζει αρχεία ZIP. Δεν είναι δυνατή η συνέχιση.
-
+ Workbench successfully installed. Please restart FreeCAD to apply the changes.Ο πάγκος εργασίας εγκαταστάθηκε επιτυχώς. Παρακαλώ επανεκκινήστε το FreeCAD για να εφαρμόσετε τις αλλαγές.
-
+ Missing workbenchMissing workbench
-
+ Missing python moduleMissing python module
-
+ Missing optional python module (doesn't prevent installing)Missing optional python module (doesn't prevent installing)
-
+ Some errors were found that prevent to install this workbenchΒρέθηκαν κάποια σφάλματα που εμποδίζουν την εγκατάσταση αυτού του πάγκου εργασίας
-
+ Please install the missing components first.Please install the missing components first.
-
+ Error: Unable to downloadΣφάλμα: Δεν είναι δυνατή η λήψη
-
+ Successfully installedΕπιτυχής εγκατάσταση
-
+ GitPython not installed! Cannot retrieve macros from gitGitPython not installed! Cannot retrieve macros from git
@@ -207,72 +207,72 @@
Απαιτείται επανεκκίνηση
-
+ This macro is already installed.This macro is already installed.
-
+ A macro has been installed and is available under Macro -> Macros menuA macro has been installed and is available under Macro -> Macros menu
-
+ This addon is marked as obsoleteThis addon is marked as obsolete
-
+ This usually means it is no longer maintained, and some more advanced addon in this list provides the same functionality.This usually means it is no longer maintained, and some more advanced addon in this list provides the same functionality.
-
+ Error: Unable to locate zip fromError: Unable to locate zip from
-
+ Something went wrong with the Git Macro Retrieval, possibly the Git executable is not in the pathSomething went wrong with the Git Macro Retrieval, possibly the Git executable is not in the path
-
+ This addon is marked as Python 2 OnlyThis addon is marked as Python 2 Only
-
+ This workbench may no longer be maintained and installing it on a Python 3 system will more than likely result in errors at startup or while in use.This workbench may no longer be maintained and installing it on a Python 3 system will more than likely result in errors at startup or while in use.
-
+ User requested updating a Python 2 workbench on a system running Python 3 - User requested updating a Python 2 workbench on a system running Python 3 -
-
+ Workbench successfully updated. Please restart FreeCAD to apply the changes.Workbench successfully updated. Please restart FreeCAD to apply the changes.
-
+ User requested installing a Python 2 workbench on a system running Python 3 - User requested installing a Python 2 workbench on a system running Python 3 -
-
+ Appears to be an issue connecting to the Wiki, therefore cannot retrieve Wiki macro list at this timeAppears to be an issue connecting to the Wiki, therefore cannot retrieve Wiki macro list at this time
-
+ Raw markdown displayedRaw markdown displayed
-
+ Python Markdown library is missing.Python Markdown library is missing.
diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_es-AR.ts b/src/Mod/AddonManager/Resources/translations/AddonManager_es-AR.ts
index 02d39f45e0..6e81db67ad 100644
--- a/src/Mod/AddonManager/Resources/translations/AddonManager_es-AR.ts
+++ b/src/Mod/AddonManager/Resources/translations/AddonManager_es-AR.ts
@@ -4,7 +4,7 @@
AddonInstaller
-
+ Installed locationUbicación de la instalación
@@ -97,97 +97,97 @@
Se actualizó la lista de Entornos de trabajo.
-
+ Outdated GitPython detected, consider upgrading with pip.Se ha detectado GitPython obsoleto, considere actualizar con pip.
-
+ List of macros successfully retrieved.La lista de macros fue recuperada con éxito.
-
+ Retrieving description...Recuperando descripción...
-
+ Retrieving info fromRecuperando información de
-
+ An update is available for this addon.Una actualización está disponible para este complemento.
-
+ This addon is already installed.Este complemento ya está instalado.
-
+ Retrieving info from gitRecuperando información de git
-
+ Retrieving info from wikiRecuperando información de wiki
-
+ GitPython not found. Using standard download instead.GitPython no encontrado. Utilizando descarga estándar en su lugar.
-
+ Your version of python doesn't appear to support ZIP files. Unable to proceed.Su versión de python n'o parece ser compatible con archivos ZIP. No es posible proceder.
-
+ Workbench successfully installed. Please restart FreeCAD to apply the changes.Entorno de trabajo instalado correctamente. Reinicie FreeCAD para aplicar los cambios.
-
+ Missing workbenchFalta el Entorno de trabajo
-
+ Missing python moduleFalta módulo python
-
+ Missing optional python module (doesn't prevent installing)Falta módulo opcional de python (n'o impide la instalación)
-
+ Some errors were found that prevent to install this workbenchSe encontraron algunos errores que impiden instalar este Entorno de trabajo
-
+ Please install the missing components first.Por favor, instale los componentes que faltan primero.
-
+ Error: Unable to downloadError: No se puede descargar
-
+ Successfully installedInstalado correctamente
-
+ GitPython not installed! Cannot retrieve macros from git¡GitPython no instalado! No se pueden recuperar macros desde git
@@ -207,72 +207,72 @@
Es necesario reiniciar
-
+ This macro is already installed.Esta macro ya está instalada.
-
+ A macro has been installed and is available under Macro -> Macros menuUna macro ha sido instalada y está disponible en el menú Macro -> Macros
-
+ This addon is marked as obsoleteEste complemento está marcado como obsoleto
-
+ This usually means it is no longer maintained, and some more advanced addon in this list provides the same functionality.Esto generalmente significa que ya no está mantenido, y algún complemento más avanzado en esta lista proporciona la misma funcionalidad.
-
+ Error: Unable to locate zip fromError: No se puede localizar zip desde
-
+ Something went wrong with the Git Macro Retrieval, possibly the Git executable is not in the pathAlgo salió mal con la recuperación de Macro de Git, posiblemente el ejecutable de Git no está en la ruta
-
+ This addon is marked as Python 2 OnlyEste complemento está marcado solo con Python 2
-
+ This workbench may no longer be maintained and installing it on a Python 3 system will more than likely result in errors at startup or while in use.Este Entorno de trabajo ya no se mantiene, instalarlo en un sistema con Python 3 probablemente provocará errores al ejecutarse o utilizarse.
-
+ User requested updating a Python 2 workbench on a system running Python 3 - El usuario solicitó actualizar un Entorno de trabajo Python 2 en un sistema que ejecuta Python 3 -
-
+ Workbench successfully updated. Please restart FreeCAD to apply the changes.Entorno de Trabajo actualizado con éxito. Reinicie FreeCAD para aplicar los cambios.
-
+ User requested installing a Python 2 workbench on a system running Python 3 - El usuario solicitó instalar un Entorno de trabajo Python 2 en un sistema que ejecuta Python 3 -
-
+ Appears to be an issue connecting to the Wiki, therefore cannot retrieve Wiki macro list at this timeParece ser un problema para conectarse a la Wiki, por lo tanto, no se puede recuperar la lista de macros de la Wiki en este momento
-
+ Raw markdown displayedMarkdown sin procesar mostrada
-
+ Python Markdown library is missing.Falta la biblioteca Python Markdown.
diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_es-ES.ts b/src/Mod/AddonManager/Resources/translations/AddonManager_es-ES.ts
index fe352d7a61..2721225306 100644
--- a/src/Mod/AddonManager/Resources/translations/AddonManager_es-ES.ts
+++ b/src/Mod/AddonManager/Resources/translations/AddonManager_es-ES.ts
@@ -4,7 +4,7 @@
AddonInstaller
-
+ Installed locationUbicación de la instalación
@@ -97,97 +97,97 @@
Lista de entornos de trabajo actualizada.
-
+ Outdated GitPython detected, consider upgrading with pip.Detectado GitPython caducado, considere actualizar con pip.
-
+ List of macros successfully retrieved.La lista de macros fue recuperada con éxito.
-
+ Retrieving description...Recuperando la descripción...
-
+ Retrieving info fromRecuperando información de
-
+ An update is available for this addon.Una actualización está disponible para este complemento.
-
+ This addon is already installed.Este complemento ya está instalado.
-
+ Retrieving info from gitRecuperando información de git
-
+ Retrieving info from wikiRecuperando información de wiki
-
+ GitPython not found. Using standard download instead.GitPython no encontrado. Utilizando descarga estándar en su lugar.
-
+ Your version of python doesn't appear to support ZIP files. Unable to proceed.Su versión de python no parece ser compatible con archivos ZIP. No es posible proceder.
-
+ Workbench successfully installed. Please restart FreeCAD to apply the changes.El entorno de trabajo se ha instalado correctamente. Reinicie FreeCAD para aplicar los cambios.
-
+ Missing workbenchFalta el entorno de trabajo
-
+ Missing python moduleFalta módulo python
-
+ Missing optional python module (doesn't prevent installing)Falta módulo opcional de python (no impide la instalación)
-
+ Some errors were found that prevent to install this workbenchSe han encontrado algunos errores que impiden instalar este entorno de trabajo
-
+ Please install the missing components first.Por favor, instale los componentes que faltan primero.
-
+ Error: Unable to downloadError: No se puede descargar
-
+ Successfully installedSe ha instalado correctamente
-
+ GitPython not installed! Cannot retrieve macros from git¡GitPython no instalado! No se pueden recuperar macros desde git
@@ -207,72 +207,72 @@
Es necesario reiniciar
-
+ This macro is already installed.Esta macro ya está instalada.
-
+ A macro has been installed and is available under Macro -> Macros menuUna macro ha sido instalada y está disponible en el menú Macro -> Macros
-
+ This addon is marked as obsoleteEste complemento está marcado como obsoleto
-
+ This usually means it is no longer maintained, and some more advanced addon in this list provides the same functionality.Esto generalmente significa que ya no está mantenido, y algún complemento más avanzado en esta lista proporciona la misma funcionalidad.
-
+ Error: Unable to locate zip fromError: No se puede localizar zip desde
-
+ Something went wrong with the Git Macro Retrieval, possibly the Git executable is not in the pathAlgo salió mal con la recuperación de instrucciones de Git, posiblemente el ejecutable de Git no está en la ruta
-
+ This addon is marked as Python 2 OnlyEste complemento está marcado solo con Python 2
-
+ This workbench may no longer be maintained and installing it on a Python 3 system will more than likely result in errors at startup or while in use.Este banco de trabajo ya no se mantiene, instalarlo en un sistema con Python 3 probablemente provocará errores al ejecutarse o utilizarse.
-
+ User requested updating a Python 2 workbench on a system running Python 3 - El usuario solicita actualizar un banco de trabajo con Python 2 en un sistema que ejecuta Python 3 -
-
+ Workbench successfully updated. Please restart FreeCAD to apply the changes.Banco de trabajo actualizado con éxito. Reinicie FreeCAD para aplicar los cambios.
-
+ User requested installing a Python 2 workbench on a system running Python 3 - El usuario solicita instalar un banco de trabajo Python 2 en un sistema que ejecuta Python 3 -
-
+ Appears to be an issue connecting to the Wiki, therefore cannot retrieve Wiki macro list at this timeParece ser un problema al conectarse a la Wiki, por lo tanto no puede recuperar la lista de macros del Wiki en este momento
-
+ Raw markdown displayedMarkdown sin procesar mostrado
-
+ Python Markdown library is missing.Falta la biblioteca Python Markdown.
diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_eu.ts b/src/Mod/AddonManager/Resources/translations/AddonManager_eu.ts
index b4d8758f42..9adb2cac4f 100644
--- a/src/Mod/AddonManager/Resources/translations/AddonManager_eu.ts
+++ b/src/Mod/AddonManager/Resources/translations/AddonManager_eu.ts
@@ -4,7 +4,7 @@
AddonInstaller
-
+ Installed locationInstalatutako kokapena
@@ -97,97 +97,97 @@
Lan-mahaien zerrenda eguneratu da.
-
+ Outdated GitPython detected, consider upgrading with pip.GitPython zaharkitua detektatu da, eguneratu ezazu pip bidez.
-
+ List of macros successfully retrieved.Makroen zerrenda ongi atzitu da.
-
+ Retrieving description...Deskribapena atzitzen...
-
+ Retrieving info fromInformazioa berreskuratzen hemendik
-
+ An update is available for this addon.Eguneraketa bat eskuragarri dago gehigarri honetarako.
-
+ This addon is already installed.Gehigarri hau instalatuta dago.
-
+ Retrieving info from gitInformazioa atzitzen git biltegitik
-
+ Retrieving info from wikiInformazioa atzitzen wikitik
-
+ GitPython not found. Using standard download instead.GitPython ez da aurkitu. Deskarga estandarra erabiltzen.
-
+ Your version of python doesn't appear to support ZIP files. Unable to proceed.Badirudi zure Python bertsioak ez duela ZIP fitxategirik onartzen. Ezin da jarraitu.
-
+ Workbench successfully installed. Please restart FreeCAD to apply the changes.Lan-mahaia ongi instalatu da. Berrabiarazi FreeCAD aldaketak aplikatzeko.
-
+ Missing workbenchLan-mahaia falta da
-
+ Missing python modulePython modulua falta da
-
+ Missing optional python module (doesn't prevent installing)Aukerako Python modulua falta da (ez du instalazioa eragozten)
-
+ Some errors were found that prevent to install this workbenchLan-mahai hau instalatzea eragozten duten zenbait errore aurkitu dira
-
+ Please install the missing components first.Instalatu falta diren osagaiak.
-
+ Error: Unable to downloadErrorea: Ezin da deskargatu
-
+ Successfully installedOngi instalatu da
-
+ GitPython not installed! Cannot retrieve macros from gitGitPython ez dago instalatuta! Ezin dira makroak atzitu git biltegitik
@@ -207,72 +207,72 @@
Berrabiaraztea beharrezkoa da
-
+ This macro is already installed.Makro hau instalatuta dago.
-
+ A macro has been installed and is available under Macro -> Macros menuMakro bat instalatu da eta 'Makroa -> Makroak' menuan erabilgarri dago
-
+ This addon is marked as obsoleteGehigarri hau zaharkituta dago
-
+ This usually means it is no longer maintained, and some more advanced addon in this list provides the same functionality.Horrek esan nahi du ez dela mantentzen eta zerrenda honetako gehigarri aurreratuagoren batek funtzionaltasun bera eskaintzen duela.
-
+ Error: Unable to locate zip fromErrorea: Ezin izan da ZIP fitxategia aurkitu
-
+ Something went wrong with the Git Macro Retrieval, possibly the Git executable is not in the pathZerbait gaizki atera da Git makroak atzitzean, ziur aski Git exekutagarria ez dago bidean
-
+ This addon is marked as Python 2 OnlyGehigarri hau Python 2 bertsiorako soilik da
-
+ This workbench may no longer be maintained and installing it on a Python 3 system will more than likely result in errors at startup or while in use.Lan-mahai honek beharbada ez du jadanik mantenimendurik eta Python 3 duen sistema batean instalatzen bada erroreak sortu ditzake bai abioan bai erabiltzen ari denean.
-
+ User requested updating a Python 2 workbench on a system running Python 3 - Erabiltzaileak Python 2 lan-mahai bat eguneratzea eskatu du Python 3 duen sistema batean -
-
+ Workbench successfully updated. Please restart FreeCAD to apply the changes.Lan-mahaia ongi eguneratu da. Berrabiarazi FreeCAD aldaketak aplikatzeko.
-
+ User requested installing a Python 2 workbench on a system running Python 3 - Erabiltzaileak Python 2 lan-mahai bat instalatzea eskatu du Python 3 duen sistema batean -
-
+ Appears to be an issue connecting to the Wiki, therefore cannot retrieve Wiki macro list at this timeBadirudi arazo bat dagoela wikiarekin konektatzean, ezin da atzitu wikiko makroen zerrenda momentu honetan
-
+ Raw markdown displayedMarkdown gordina bistaratzen ari da.
-
+ Python Markdown library is missing.Python Markdown liburutegia falta da.
diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_fi.ts b/src/Mod/AddonManager/Resources/translations/AddonManager_fi.ts
index 4e4f2c0b9a..dcae98e77a 100644
--- a/src/Mod/AddonManager/Resources/translations/AddonManager_fi.ts
+++ b/src/Mod/AddonManager/Resources/translations/AddonManager_fi.ts
@@ -4,7 +4,7 @@
AddonInstaller
-
+ Installed locationAsennettu sijainti
@@ -97,97 +97,97 @@
Työpöytien luettelo on päivitetty.
-
+ Outdated GitPython detected, consider upgrading with pip.Vanhentunut GitPython havaittu, harkitse päivitystä pip: n kanssa.
-
+ List of macros successfully retrieved.Luettelo makroista noudettu.
-
+ Retrieving description...Haetaan kuvausta...
-
+ Retrieving info fromHaetaan tietoja
-
+ An update is available for this addon.Päivitys on saatavilla tälle lisäosalle.
-
+ This addon is already installed.Tämä lisäosa on jo asennettu.
-
+ Retrieving info from gitHaetaan tietoja git: stä
-
+ Retrieving info from wikiHaetaan tietoja wikistä
-
+ GitPython not found. Using standard download instead.GitPythonia ei löytynyt. Käytetään sen sijaan standardilatausta.
-
+ Your version of python doesn't appear to support ZIP files. Unable to proceed.Sinun versiota pythonista ei ' löydy tukeakseen ZIP tiedostoja. Ei voida edetä.
-
+ Workbench successfully installed. Please restart FreeCAD to apply the changes.Työpöytä asennettu onnistuneesti. Käynnistä FreeCAD uudelleen ottaaksesi muutokset käyttöön.
-
+ Missing workbenchTyöpöytä puuttuu
-
+ Missing python modulePython moduuli puuttuu
-
+ Missing optional python module (doesn't prevent installing)Valinnainen python-moduuli puuttuu (se ' estää asennuksen)
-
+ Some errors were found that prevent to install this workbenchJoitakin virheitä havaittiin, mikä estää tämän työpöydän asentamisen
-
+ Please install the missing components first.Asenna ensin puuttuvat komponentit.
-
+ Error: Unable to downloadVirhe: Lataaminen epäonnistui
-
+ Successfully installedAsennettu onnistuneesti
-
+ GitPython not installed! Cannot retrieve macros from gitGitPythonia ei ole asennettu! Makroja ei voi noutaa git: stä
@@ -207,72 +207,72 @@
Uudelleenkäynnistys vaaditaan
-
+ This macro is already installed.Tämä makro on jo asennettu.
-
+ A macro has been installed and is available under Macro -> Macros menuMakro on asennettu ja se on saatavilla makro -> Makro -valikosta
-
+ This addon is marked as obsoleteTämä lisäosa on merkitty vanhentuneeksi
-
+ This usually means it is no longer maintained, and some more advanced addon in this list provides the same functionality.Tämä tarkoittaa yleensä sitä, että sitä ei enää ylläpidetä ja että tässä luettelossa on edistyneempiä lisäosia, mitkä tekevät saman toiminnallisuuden.
-
+ Error: Unable to locate zip fromVirhe: Zip -tiedostoa ei voitu paikantaa
-
+ Something went wrong with the Git Macro Retrieval, possibly the Git executable is not in the pathJotain meni pieleen Git Makron noutamisessa, ehkä Git-ohjelma ei ole polulla
-
+ This addon is marked as Python 2 OnlyTämä lisäosa on merkitty vain Python 2: lle
-
+ This workbench may no longer be maintained and installing it on a Python 3 system will more than likely result in errors at startup or while in use.Tätä työpöytää ei voida enää ylläpitää ja sen asentaminen Python 3 -järjestelmään johtaa todennäköisemmin virheisiin käynnistyksessä tai käytön aikana.
-
+ User requested updating a Python 2 workbench on a system running Python 3 - Käyttäjä pyysi Python 2 -työpöydän päivittämistä Python 3 -järjestelmään
-
+ Workbench successfully updated. Please restart FreeCAD to apply the changes.Työpöytä asennettu onnistuneesti. Käynnistä FreeCAD uudelleen ottaaksesi muutokset käyttöön.
-
+ User requested installing a Python 2 workbench on a system running Python 3 - Käyttäjä pyysi Python 2 -työpöydän asentamista Python 3 -järjestelmässä -
-
+ Appears to be an issue connecting to the Wiki, therefore cannot retrieve Wiki macro list at this timeNäyttää siltä, että kyseessä on Wikiin yhdistämiseen liittyvä ongelma, joten Wiki makro -listaa ei voida hakea tällä hetkellä
-
+ Raw markdown displayedRaw Markdown (muokkaamaton) näytetään
-
+ Python Markdown library is missing.Python Markdown kirjasto puuttuu.
diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_fil.ts b/src/Mod/AddonManager/Resources/translations/AddonManager_fil.ts
index 3aa1393246..23890549cd 100644
--- a/src/Mod/AddonManager/Resources/translations/AddonManager_fil.ts
+++ b/src/Mod/AddonManager/Resources/translations/AddonManager_fil.ts
@@ -4,7 +4,7 @@
AddonInstaller
-
+ Installed locationInstalled location
@@ -97,97 +97,97 @@
Workbenches list was updated.
-
+ Outdated GitPython detected, consider upgrading with pip.Outdated GitPython detected, consider upgrading with pip.
-
+ List of macros successfully retrieved.List of macros successfully retrieved.
-
+ Retrieving description...Retrieving description...
-
+ Retrieving info fromRetrieving info from
-
+ An update is available for this addon.An update is available for this addon.
-
+ This addon is already installed.This addon is already installed.
-
+ Retrieving info from gitRetrieving info from git
-
+ Retrieving info from wikiRetrieving info from wiki
-
+ GitPython not found. Using standard download instead.GitPython not found. Using standard download instead.
-
+ Your version of python doesn't appear to support ZIP files. Unable to proceed.Your version of python doesn't appear to support ZIP files. Unable to proceed.
-
+ Workbench successfully installed. Please restart FreeCAD to apply the changes.Workbench successfully installed. Please restart FreeCAD to apply the changes.
-
+ Missing workbenchMissing workbench
-
+ Missing python moduleMissing python module
-
+ Missing optional python module (doesn't prevent installing)Missing optional python module (doesn't prevent installing)
-
+ Some errors were found that prevent to install this workbenchSome errors were found that prevent to install this workbench
-
+ Please install the missing components first.Please install the missing components first.
-
+ Error: Unable to downloadError: Unable to download
-
+ Successfully installedSuccessfully installed
-
+ GitPython not installed! Cannot retrieve macros from gitGitPython not installed! Cannot retrieve macros from git
@@ -207,72 +207,72 @@
Restart required
-
+ This macro is already installed.This macro is already installed.
-
+ A macro has been installed and is available under Macro -> Macros menuA macro has been installed and is available under Macro -> Macros menu
-
+ This addon is marked as obsoleteThis addon is marked as obsolete
-
+ This usually means it is no longer maintained, and some more advanced addon in this list provides the same functionality.This usually means it is no longer maintained, and some more advanced addon in this list provides the same functionality.
-
+ Error: Unable to locate zip fromError: Unable to locate zip from
-
+ Something went wrong with the Git Macro Retrieval, possibly the Git executable is not in the pathSomething went wrong with the Git Macro Retrieval, possibly the Git executable is not in the path
-
+ This addon is marked as Python 2 OnlyThis addon is marked as Python 2 Only
-
+ This workbench may no longer be maintained and installing it on a Python 3 system will more than likely result in errors at startup or while in use.This workbench may no longer be maintained and installing it on a Python 3 system will more than likely result in errors at startup or while in use.
-
+ User requested updating a Python 2 workbench on a system running Python 3 - User requested updating a Python 2 workbench on a system running Python 3 -
-
+ Workbench successfully updated. Please restart FreeCAD to apply the changes.Workbench successfully updated. Please restart FreeCAD to apply the changes.
-
+ User requested installing a Python 2 workbench on a system running Python 3 - User requested installing a Python 2 workbench on a system running Python 3 -
-
+ Appears to be an issue connecting to the Wiki, therefore cannot retrieve Wiki macro list at this timeAppears to be an issue connecting to the Wiki, therefore cannot retrieve Wiki macro list at this time
-
+ Raw markdown displayedRaw markdown displayed
-
+ Python Markdown library is missing.Python Markdown library is missing.
diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_fr.ts b/src/Mod/AddonManager/Resources/translations/AddonManager_fr.ts
index 67e0d5754a..18c1eaf6db 100644
--- a/src/Mod/AddonManager/Resources/translations/AddonManager_fr.ts
+++ b/src/Mod/AddonManager/Resources/translations/AddonManager_fr.ts
@@ -4,7 +4,7 @@
AddonInstaller
-
+ Installed locationEmplacement installé
@@ -97,97 +97,97 @@
La liste des ateliers a été mise à jour.
-
+ Outdated GitPython detected, consider upgrading with pip.La version de GitPython est obsolète, envisagez de mettre à jour avec pip.
-
+ List of macros successfully retrieved.Liste des macros récupérée avec succès.
-
+ Retrieving description...Récupération de la description...
-
+ Retrieving info fromRécupération des informations de
-
+ An update is available for this addon.Une mise à jour est disponible pour ce greffon.
-
+ This addon is already installed.Ce greffon est déjà installé.
-
+ Retrieving info from gitRécupération des informations depuis git
-
+ Retrieving info from wikiRécupération des informations depuis le wiki
-
+ GitPython not found. Using standard download instead.GitPython est introuvable. Utilisation du téléchargement standard.
-
+ Your version of python doesn't appear to support ZIP files. Unable to proceed.Votre version de Python semble ne pas supporter les fichiers ZIP. Impossible de continuer.
-
+ Workbench successfully installed. Please restart FreeCAD to apply the changes.Atelier installé avec succès. Veuillez redémarrer FreeCAD pour appliquer les modifications.
-
+ Missing workbenchAtelier manquant
-
+ Missing python moduleModule Python manquant
-
+ Missing optional python module (doesn't prevent installing)Un module Python optionnel est manquant (mais n'empêche pas l'installation)
-
+ Some errors were found that prevent to install this workbenchDes erreurs sont survenues et empêchent l'installation de cet atelier
-
+ Please install the missing components first.Veuillez d'abord installer les composants manquants.
-
+ Error: Unable to downloadErreur : impossible de télécharger
-
+ Successfully installedInstallation réussie
-
+ GitPython not installed! Cannot retrieve macros from gitGitPython n'est pas installé. Impossible de récupérer les macros depuis git
@@ -207,72 +207,72 @@
Redémarrage requis
-
+ This macro is already installed.Cette macro est déjà installée.
-
+ A macro has been installed and is available under Macro -> Macros menuUne macro a été installée et est disponible dans le menu Macro -> Macros
-
+ This addon is marked as obsoleteCe greffon est marqué comme obsolète
-
+ This usually means it is no longer maintained, and some more advanced addon in this list provides the same functionality.Cela signifie généralement qu'il n'est plus maintenu, et que d'autres greffons plus perfectionnés proposant les mêmes fonctionnalités sont disponibles.
-
+ Error: Unable to locate zip fromErreur: Impossible de localiser le zip de
-
+ Something went wrong with the Git Macro Retrieval, possibly the Git executable is not in the pathUne erreur s'est produite lors de la Récupération de Macro Git, peut-être que l'exécutable Git n'est pas dans le chemin d'accès
-
+ This addon is marked as Python 2 OnlyCet addon est indiqué pour Python 2 uniquement
-
+ This workbench may no longer be maintained and installing it on a Python 3 system will more than likely result in errors at startup or while in use.Cet atelier peut ne plus être maintenu et l'installer sur un système Python 3 entraînera très probablement des erreurs au démarrage ou en cours d'utilisation.
-
+ User requested updating a Python 2 workbench on a system running Python 3 - L'utilisateur a demandé la mise à jour d'un atelier Python 2 sur un système Python 3 -
-
+ Workbench successfully updated. Please restart FreeCAD to apply the changes.Atelier mis à jour avec succès. Veuillez redémarrer FreeCAD pour appliquer les modifications.
-
+ User requested installing a Python 2 workbench on a system running Python 3 - L'utilisateur a demandé l'installation d'un atelier Python 2 sur un système exécutant Python 3 -
-
+ Appears to be an issue connecting to the Wiki, therefore cannot retrieve Wiki macro list at this timeIl semble y avoir un problème de connexion au Wiki, la liste des macros du Wiki ne peut donc pas être récupérée pour le moment
-
+ Raw markdown displayedAffichage du Markdown brut
-
+ Python Markdown library is missing.La bibliothèque Python Markdown est manquante.
diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_gl.ts b/src/Mod/AddonManager/Resources/translations/AddonManager_gl.ts
index c2add8662a..605eeef93a 100644
--- a/src/Mod/AddonManager/Resources/translations/AddonManager_gl.ts
+++ b/src/Mod/AddonManager/Resources/translations/AddonManager_gl.ts
@@ -4,7 +4,7 @@
AddonInstaller
-
+ Installed locationLocalización da instalación
@@ -97,97 +97,97 @@
A lista de bancos de traballo foi actualizada.
-
+ Outdated GitPython detected, consider upgrading with pip.Detectado GitPython caducado, considera actualizar con pip.
-
+ List of macros successfully retrieved.Lista de macros recuperada con éxito.
-
+ Retrieving description...Recuperando descrición...
-
+ Retrieving info fromRecuperando información dende
-
+ An update is available for this addon.Unha actualización está dispoñible para este engadido.
-
+ This addon is already installed.Este engadido xa está instalado.
-
+ Retrieving info from gitRecuperando información dende git
-
+ Retrieving info from wikiRecuperando información dende wiki
-
+ GitPython not found. Using standard download instead.GitPython non atopado. Utilizando descarga estándard no seu lugar.
-
+ Your version of python doesn't appear to support ZIP files. Unable to proceed.A túa versión de python non parece ser compatible con ficheiros ZIP. Non é posible proceder.
-
+ Workbench successfully installed. Please restart FreeCAD to apply the changes.O banco de traballo instalado correctamente. Fai o favor de reiniciar FreeCAD para aplicar os trocos.
-
+ Missing workbenchPerdido banco de traballo
-
+ Missing python modulePerdido módulo python
-
+ Missing optional python module (doesn't prevent installing)Módulo python opcional perdido (non impide a instalación)
-
+ Some errors were found that prevent to install this workbenchAlgúns erros atopados que impiden instalar este banco de traballo
-
+ Please install the missing components first.Fai o favor de instalar os compoñentes que falta primeiro.
-
+ Error: Unable to downloadErro: A descarga non vai
-
+ Successfully installedInstalado con éxito
-
+ GitPython not installed! Cannot retrieve macros from gitGitPyton non instalado! Non se pode recuperar macros dende o git
@@ -207,72 +207,72 @@
Require reinicio
-
+ This macro is already installed.Esta macro xa está instalada.
-
+ A macro has been installed and is available under Macro -> Macros menuUnha macro foi instalada e está dispoñible baixo o menú Macros Macro ->
-
+ This addon is marked as obsoleteEste complemento está marcado como obsoleto
-
+ This usually means it is no longer maintained, and some more advanced addon in this list provides the same functionality.Esto xeralmente significa que xa non é mantido, e algún complemento máis avanzado nesta lista provén a mesma funcionalidade.
-
+ Error: Unable to locate zip fromErro: non se puido localizar o zip dende
-
+ Something went wrong with the Git Macro Retrieval, possibly the Git executable is not in the pathAlgo saíu mal coa recuperación de macros de Git, posiblemente o executable de Git non está na ruta
-
+ This addon is marked as Python 2 OnlyEste complemento está marcado soamente como Python 2
-
+ This workbench may no longer be maintained and installing it on a Python 3 system will more than likely result in errors at startup or while in use.Este banco de traballo xa non se mantén e instalalo nun sistema con Python 3 probablemente provoque erros ó iniciarse ou ó usarse.
-
+ User requested updating a Python 2 workbench on a system running Python 3 - O usuario solicitou actualizar un banco de traballo en Python 2 nun sistema que executa Python 3 -
-
+ Workbench successfully updated. Please restart FreeCAD to apply the changes.O banco de traballo actualizouse correctamente. Reinicie FreeCAD para aplicar os cambios.
-
+ User requested installing a Python 2 workbench on a system running Python 3 - O usuario solicitou instalar un banco de traballo en Python 2 nun sistema que executa Python 3 -
-
+ Appears to be an issue connecting to the Wiki, therefore cannot retrieve Wiki macro list at this timeParece que hai un problema ó conectarse á Wiki, polo tanto non se pode recuperar a lista de macros da Wiki neste momento
-
+ Raw markdown displayedMostrando Markdown sen procesar
-
+ Python Markdown library is missing.Falta a biblioteca Markdown de Python.
diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_hr.ts b/src/Mod/AddonManager/Resources/translations/AddonManager_hr.ts
index 172ac29b9e..43c0475589 100644
--- a/src/Mod/AddonManager/Resources/translations/AddonManager_hr.ts
+++ b/src/Mod/AddonManager/Resources/translations/AddonManager_hr.ts
@@ -4,7 +4,7 @@
AddonInstaller
-
+ Installed locationMjesto instaliranja
@@ -97,97 +97,97 @@
Popis radnih površina je ažuriran.
-
+ Outdated GitPython detected, consider upgrading with pip.Otkriven je zastarjeli GitPython, razmislite o nadogradnji s pip.
-
+ List of macros successfully retrieved.Popis makronaredbi uspješno je dohvaćen.
-
+ Retrieving description...Dohvaćanje opisa...
-
+ Retrieving info fromDohvaćanje informacije od
-
+ An update is available for this addon.Dostupno ažuriranje za ovaj dodatak.
-
+ This addon is already installed.Ovaj dodatak je već instaliran.
-
+ Retrieving info from gitDohvaćanje informacije od git
-
+ Retrieving info from wikiDohvaćanje informacije od wiki-a
-
+ GitPython not found. Using standard download instead.GitPython nije pronađen. Upotreba standardnog preuzimanja.
-
+ Your version of python doesn't appear to support ZIP files. Unable to proceed.Vaša verzija python-a ne podržava ZIP datoteke. Nije moguće nastaviti.
-
+ Workbench successfully installed. Please restart FreeCAD to apply the changes.Radna površina je uspješno instalirana. Ponovo pokrenite FreeCAD da biste primijenili promjene.
-
+ Missing workbenchNedostaje radna površina
-
+ Missing python moduleNedostaje python modul
-
+ Missing optional python module (doesn't prevent installing)Nedostaje neobvezan python modul (neće se spriječiti instalacija)
-
+ Some errors were found that prevent to install this workbenchPronađene su neke pogreške koje sprečavaju instalaciju ove radne površine
-
+ Please install the missing components first.Prvo instalirajte nedostajuće dijelove.
-
+ Error: Unable to downloadGreška: Ne mogu preuzeti
-
+ Successfully installedUspješno instaliran
-
+ GitPython not installed! Cannot retrieve macros from gitGitPython se nije instalirao! Ne mogu se dohvatiti makronaredbe iz git-a
@@ -207,78 +207,78 @@
Potrebno je ponovo pokretanje
-
+ This macro is already installed.Ova makronaredba je već instalirana.
-
+ A macro has been installed and is available under Macro -> Macros menuMakronaredba je instalirana i dostupna je pod Makro -> Makros-Izborniku
-
+ This addon is marked as obsoleteOvaj dodatak je označen kao zastario
-
+ This usually means it is no longer maintained, and some more advanced addon in this list provides the same functionality.To obično znači da se više ne održava, a neki napredniji dodatak na ovom popisu pruža istu funkciju.
-
+ Error: Unable to locate zip fromGreška: Nije moguće locirati zip od
-
+ Something went wrong with the Git Macro Retrieval, possibly the Git executable is not in the pathNešto je pošlo po zlu s dohvaćanjem Git Macro-a, možda Git izvršni program nije u poveznici
-
+ This addon is marked as Python 2 OnlyTaj je dodatak označen samo za Python 2
-
+ This workbench may no longer be maintained and installing it on a Python 3 system will more than likely result in errors at startup or while in use.Ova radna ploča se više ne može održavati i instaliranje na Python 3 sustav vjerojatno će rezultirati pogreškama pri pokretanju ili tijekom upotrebe.
-
+ User requested updating a Python 2 workbench on a system running Python 3 - Korisnik je zatražio ažuriranje radne površine Python 2 na sustavu koji pokreće Python 3 -
-
+ Workbench successfully updated. Please restart FreeCAD to apply the changes.Workbench je uspješno ažuriran. Ponovo pokrenite FreeCAD da biste primijenili promjene.
-
+ User requested installing a Python 2 workbench on a system running Python 3 - Korisnik je zatražio instaliranje radne stanice Python 2 na sustav koji radi s Python 3 -
-
+ Appears to be an issue connecting to the Wiki, therefore cannot retrieve Wiki macro list at this timeČini se da je problem povezivanje s Wiki-em, stoga trenutačno ne može dohvatiti popis makronaredbi Wiki-a
-
+ Raw markdown displayedPrikazan čisti markdown kod
-
+ Python Markdown library is missing.Nedostaje Python Markdown biblioteka.
diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_hu.ts b/src/Mod/AddonManager/Resources/translations/AddonManager_hu.ts
index bdbbe6deb3..a4f71429a9 100644
--- a/src/Mod/AddonManager/Resources/translations/AddonManager_hu.ts
+++ b/src/Mod/AddonManager/Resources/translations/AddonManager_hu.ts
@@ -4,7 +4,7 @@
AddonInstaller
-
+ Installed locationTelepített hely
@@ -97,97 +97,97 @@
A munkafelületek listája frissítve.
-
+ Outdated GitPython detected, consider upgrading with pip.Elavult GitPython észlelve, fontolja meg a frissítés a pip-el.
-
+ List of macros successfully retrieved.A sikeresen beolvasott makrók listája.
-
+ Retrieving description...Leírások lekérdezése...
-
+ Retrieving info fromInformáció beolvasása ettől
-
+ An update is available for this addon.Ehhez a kiegészítőhöz egy frissítés érhető el.
-
+ This addon is already installed.Ez a kiegészítő már telepítve van.
-
+ Retrieving info from gitInformáció beolvasása git-ből
-
+ Retrieving info from wikiInformáció beolvasása wiki-ből
-
+ GitPython not found. Using standard download instead.GitPython nem található. Szokásos letöltési hely használata.
-
+ Your version of python doesn't appear to support ZIP files. Unable to proceed.A Python verziója úgy tűnik, nem támogatja a zip fájlokat. Nem folytatható.
-
+ Workbench successfully installed. Please restart FreeCAD to apply the changes.Munkafelület sikeresen telepítve. A változtatások alkalmazásához indítsa újra a FreeCAD programot.
-
+ Missing workbenchHiányzó munkafelület
-
+ Missing python moduleHiányzó python modul
-
+ Missing optional python module (doesn't prevent installing)Hiányzó kiegészítő python modul (nem állítja meg a telepítése)
-
+ Some errors were found that prevent to install this workbenchNéhány hibát talált, amely megakadályozza, hogy telepítse ezt a munkafelületet
-
+ Please install the missing components first.Kérem először telepítse a hiányzó összetevőket.
-
+ Error: Unable to downloadHiba: Nem lehet letölteni
-
+ Successfully installedSikeresen telepítve
-
+ GitPython not installed! Cannot retrieve macros from gitGitPython nincs telepítve! Nem olvashatók be a makrók a git-ből
@@ -207,72 +207,72 @@
Újraindítás szükséges
-
+ This macro is already installed.Ez a makró már telepítve van.
-
+ A macro has been installed and is available under Macro -> Macros menuA makró telepítve van, és elérhető a Makró -> Makrók menüben
-
+ This addon is marked as obsoleteEz a bővítmény elavultként jelölt
-
+ This usually means it is no longer maintained, and some more advanced addon in this list provides the same functionality.Ez általában azt jelenti, hogy már nem tartják karban, és a lista néhány fejlettebb bővítménye ugyanazokat a funkciókat nyújtja.
-
+ Error: Unable to locate zip fromHiba: Nem található a zip formátum
-
+ Something went wrong with the Git Macro Retrieval, possibly the Git executable is not in the pathValami elromlott a Git makró visszakeresésnél, esetleg a futtatható Git nincs az elérési úton
-
+ This addon is marked as Python 2 OnlyEz a bővítmény csak Python 2-ként van megjelölve
-
+ This workbench may no longer be maintained and installing it on a Python 3 system will more than likely result in errors at startup or while in use.Előfordulhat, hogy ez a munkafelület már nem karbantartható, és a Python 3 rendszerre való telepítése több mint valószínű, hogy hibákat fog eredményezni indításkor vagy használat közben.
-
+ User requested updating a Python 2 workbench on a system running Python 3 - A felhasználó egy Python 2 munkaterület frissítését kérte egy Python 3-at futtató rendszeren -
-
+ Workbench successfully updated. Please restart FreeCAD to apply the changes.A munkaterület frissítése sikeresen megtörtént. A módosítások alkalmazásához indítsa újra a FreeCAD programot.
-
+ User requested installing a Python 2 workbench on a system running Python 3 - A felhasználó python 2 munkafelület telepítését kérte egy Python 3-at futtató rendszeren -
-
+ Appears to be an issue connecting to the Wiki, therefore cannot retrieve Wiki macro list at this timeÚgy tűnik, hogy a wikihez való kapcsolódási probléma, ezért jelenleg nem lehet beolvasni a Wiki makrólistát
-
+ Raw markdown displayedNyers leíró megjelenítése
-
+ Python Markdown library is missing.Python leíró könyvtár hiányzik.
diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_id.ts b/src/Mod/AddonManager/Resources/translations/AddonManager_id.ts
index 5e58a84fa5..8d2f5b476e 100644
--- a/src/Mod/AddonManager/Resources/translations/AddonManager_id.ts
+++ b/src/Mod/AddonManager/Resources/translations/AddonManager_id.ts
@@ -4,7 +4,7 @@
AddonInstaller
-
+ Installed locationLokasi pemasangan
@@ -97,97 +97,97 @@
Daftar meja kerja sudah diperbarui.
-
+ Outdated GitPython detected, consider upgrading with pip.GitPython yang kedaluwarsa terdeteksi, pertimbangkan untuk meningkatkan dengan pip.
-
+ List of macros successfully retrieved.Daftar makro berhasil diambil.
-
+ Retrieving description...Mengambil deskripsi...
-
+ Retrieving info fromMengambil info dari
-
+ An update is available for this addon.Pembaruan tersedia untuk addon ini.
-
+ This addon is already installed.Addon ini sudah diinstal.
-
+ Retrieving info from gitMengambil info dari git
-
+ Retrieving info from wikiMengambil info dari wiki
-
+ GitPython not found. Using standard download instead.GitPython tidak ditemukan. Sebaliknya, gunakan unduhan standar.
-
+ Your version of python doesn't appear to support ZIP files. Unable to proceed.Versi python Anda tampaknya tidak mendukung file ZIP. Tidak dapat melanjutkan.
-
+ Workbench successfully installed. Please restart FreeCAD to apply the changes.Meja kerja berhasil diinstal. Silakan mulai kembali FreeCAD untuk menerapkan perubahan.
-
+ Missing workbenchMeja kerja tidak ada
-
+ Missing python moduleModul python tidak ada
-
+ Missing optional python module (doesn't prevent installing)Modul python opsional tidak ada (tidak mencegah penginstalan)
-
+ Some errors were found that prevent to install this workbenchBeberapa kesalahan ditemukan yang mencegah untuk menginstal meja kerja ini
-
+ Please install the missing components first.Silakan instal komponen yang hilang terlebih dahulu.
-
+ Error: Unable to downloadKesalahan: Tidak dapat mengunduh
-
+ Successfully installedBerhasil diinstal
-
+ GitPython not installed! Cannot retrieve macros from gitGitPython tidak diinstal! Tidak dapat mengambil makro dari git
@@ -207,72 +207,72 @@
Mulai ulang diperlukan
-
+ This macro is already installed.Makro ini sudah diinstal.
-
+ A macro has been installed and is available under Macro -> Macros menuSebuah makro sudah diinstal dan tersedia di bawah menu Makro -> Makro
-
+ This addon is marked as obsoleteAddon ini ditandai sebagai usang
-
+ This usually means it is no longer maintained, and some more advanced addon in this list provides the same functionality.Addon ini biasanya tidak lagi dipertahankan dan beberapa addon lebih canggih di daftar ini menyediakan fungsionalitas yang sama.
-
+ Error: Unable to locate zip fromKesalahan: Tidak dapat menemukan zip dari
-
+ Something went wrong with the Git Macro Retrieval, possibly the Git executable is not in the pathSomething went wrong with the Git Macro Retrieval, possibly the Git executable is not in the path
-
+ This addon is marked as Python 2 OnlyThis addon is marked as Python 2 Only
-
+ This workbench may no longer be maintained and installing it on a Python 3 system will more than likely result in errors at startup or while in use.Meja kerja ini tidak lagi diurus dan memasangnya pada sistem Python 3 mungkin akan lebih sering menyebabkan galat saat memulai atau saat menggunakan.
-
+ User requested updating a Python 2 workbench on a system running Python 3 - Pengguna minta memperbaharui meja kerja Python 2 di sistem yang menjalankan Python 3 -
-
+ Workbench successfully updated. Please restart FreeCAD to apply the changes.Meja kerja berhasil diperbaharui. Tolong mulai ulang FreeCAD untuk menerapkan perubahan.
-
+ User requested installing a Python 2 workbench on a system running Python 3 - User requested installing a Python 2 workbench on a system running Python 3 -
-
+ Appears to be an issue connecting to the Wiki, therefore cannot retrieve Wiki macro list at this timeAppears to be an issue connecting to the Wiki, therefore cannot retrieve Wiki macro list at this time
-
+ Raw markdown displayedRaw markdown displayed
-
+ Python Markdown library is missing.Python Markdown library is missing.
diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_it.ts b/src/Mod/AddonManager/Resources/translations/AddonManager_it.ts
index d447f79d9e..34dcc4d537 100644
--- a/src/Mod/AddonManager/Resources/translations/AddonManager_it.ts
+++ b/src/Mod/AddonManager/Resources/translations/AddonManager_it.ts
@@ -4,7 +4,7 @@
AddonInstaller
-
+ Installed locationPercorso di installazione
@@ -97,97 +97,97 @@
Elenco degli ambienti di lavoro aggiornato.
-
+ Outdated GitPython detected, consider upgrading with pip.Rilevato GitPython obsoleto, considerare di aggiornarlo con pip.
-
+ List of macros successfully retrieved.Lista delle macro recuperata con successo.
-
+ Retrieving description...Recupero descrizione...
-
+ Retrieving info fromRecupero informazioni da
-
+ An update is available for this addon.Per questo addon è disponibile un aggiornamento.
-
+ This addon is already installed.Questo addon è già installato.
-
+ Retrieving info from gitRecupero informazioni da git
-
+ Retrieving info from wikiRecupero informazioni dal wiki
-
+ GitPython not found. Using standard download instead.GitPython non trovato. In sostituzione, usare il download standard.
-
+ Your version of python doesn't appear to support ZIP files. Unable to proceed.Sembra che la versione di python non supporti i file ZIP. Impossibile procedere.
-
+ Workbench successfully installed. Please restart FreeCAD to apply the changes.Ambiente di lavoro installato correttamente. Riavviare FreeCAD per applicare le modifiche.
-
+ Missing workbenchAmbiente di lavoro mancante
-
+ Missing python moduleModulo python mancante
-
+ Missing optional python module (doesn't prevent installing)Modulo Python opzionale mancante (ma non impedisce l'installazione)
-
+ Some errors were found that prevent to install this workbenchSono stati trovati alcuni errori che impediscono di installare questo ambiente di lavoro
-
+ Please install the missing components first.Si prega di installare prima i componenti mancanti.
-
+ Error: Unable to downloadErrore: download impossibile
-
+ Successfully installedInstallazione riuscita
-
+ GitPython not installed! Cannot retrieve macros from gitGitPython non installato! Impossibile recuperare la macro da git
@@ -207,72 +207,72 @@
Riavvio richiesto
-
+ This macro is already installed.Questa macro è già installata.
-
+ A macro has been installed and is available under Macro -> Macros menuUna macro è stata installata ed è disponibile sotto Macro -> menu Macros
-
+ This addon is marked as obsoleteQuesto addon è contrassegnato come obsoleto
-
+ This usually means it is no longer maintained, and some more advanced addon in this list provides the same functionality.Questo di solito significa che non è più mantenuto e alcuni addon in questa lista forniscono la stessa funzionalità.
-
+ Error: Unable to locate zip fromErrore: Impossibile individuare zip da
-
+ Something went wrong with the Git Macro Retrieval, possibly the Git executable is not in the pathQualcosa è andato storto con il recupero della macro da Git, forse l'eseguibile Git non è nel percorso
-
+ This addon is marked as Python 2 OnlyQuesto componente aggiuntivo è contrassegnato come solo con Python 2
-
+ This workbench may no longer be maintained and installing it on a Python 3 system will more than likely result in errors at startup or while in use.Questo ambiente potrebbe non essere più mantenuto e installarlo su un sistema Python 3 causerà probabilmente errori all'avvio o durante l'uso.
-
+ User requested updating a Python 2 workbench on a system running Python 3 - L'utente ha richiesto l'aggiornamento di un ambiente di lavoro in Python 2 su un sistema che esegue Python 3 -
-
+ Workbench successfully updated. Please restart FreeCAD to apply the changes.Ambiente di lavoro aggiornato correttamente. Riavviare FreeCAD per applicare le modifiche.
-
+ User requested installing a Python 2 workbench on a system running Python 3 - L'utente ha richiesto l'installazione di un ambiente di lavoro in Python 2 su un sistema che esegue Python 3 -
-
+ Appears to be an issue connecting to the Wiki, therefore cannot retrieve Wiki macro list at this timeSembra esserci un problema di connessione al Wiki, quindi in questo momento non è possibile recuperare l'elenco delle macro
-
+ Raw markdown displayedVisualizza il sorgente Markdown
-
+ Python Markdown library is missing.Manca la libreria Python Markdown.
diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_ja.ts b/src/Mod/AddonManager/Resources/translations/AddonManager_ja.ts
index cacd26a989..c221ddb432 100644
--- a/src/Mod/AddonManager/Resources/translations/AddonManager_ja.ts
+++ b/src/Mod/AddonManager/Resources/translations/AddonManager_ja.ts
@@ -4,7 +4,7 @@
AddonInstaller
-
+ Installed locationインストール場所
@@ -97,97 +97,97 @@
ワークベンチの一覧を更新しました。
-
+ Outdated GitPython detected, consider upgrading with pip.古い GitPython が見つかりました。pip によるアップグレードを検討してください。
-
+ List of macros successfully retrieved.マクロの一覧を取り込むことに成功しました。
-
+ Retrieving description...説明の取り込み中
-
+ Retrieving info from情報を取り込み中
-
+ An update is available for this addon.このアドオンでアップデートが利用可能です。
-
+ This addon is already installed.このアドオンは既にインストールされています。
-
+ Retrieving info from gitGitからの情報を取り込み中
-
+ Retrieving info from wikiWikiからの情報を取得しています
-
+ GitPython not found. Using standard download instead.GitPythonが見つかりません。代わりに標準のダウンロードを使用しています。
-
+ Your version of python doesn't appear to support ZIP files. Unable to proceed.利用しているPythonのバージョンではZIPファイルをサポートしていないようです。ゆえに続行できません。
-
+ Workbench successfully installed. Please restart FreeCAD to apply the changes.ワークベンチのインストールが成功しました。 FreeCADを再起動して変更を有効にしてください。
-
+ Missing workbenchワークベンチが見当たりません
-
+ Missing python modulePythonが見当たりません
-
+ Missing optional python module (doesn't prevent installing)オプションのPythonモジュールが見つかりません(インストールは停止されません)
-
+ Some errors were found that prevent to install this workbenchエラーが発生したためこのワークベンチをインストールすることができません
-
+ Please install the missing components first.先ずは、見当たらないコンポーネントをインストールしてください。
-
+ Error: Unable to downloadエラー: ダウンロードできませんでした
-
+ Successfully installedインストールが完了しました
-
+ GitPython not installed! Cannot retrieve macros from gitGitPythonがインストールされていませんでした!よってマクロをgitより取り戻すことができません
@@ -207,72 +207,72 @@
再起動が必要です
-
+ This macro is already installed.このマクロは既にインストールされています。
-
+ A macro has been installed and is available under Macro -> Macros menuマクロがインストールされました。メニューのマクロ -> マクロから利用できます。
-
+ This addon is marked as obsoleteこのアドオンは非推奨に設定されています
-
+ This usually means it is no longer maintained, and some more advanced addon in this list provides the same functionality.通常はすでにメンテナンスがされていないことを意味します。このリストにあるさらに高度なアドオンが同じ機能を提供している場合があります。
-
+ Error: Unable to locate zip fromエラー: ZIP ファイルを以下から配置できません。
-
+ Something went wrong with the Git Macro Retrieval, possibly the Git executable is not in the pathGit マクロの取得に問題が発生しました。おそらく Git 実行ファイルがパス中にありません。
-
+ This addon is marked as Python 2 Onlyこのアドオンは Python 2 専用として記されています
-
+ This workbench may no longer be maintained and installing it on a Python 3 system will more than likely result in errors at startup or while in use.このワークベンチは保守されておらず、Python 3 システムにインストールすると起動時や使用中にエラーが発生する可能性が高くなります。
-
+ User requested updating a Python 2 workbench on a system running Python 3 - ユーザーが Python 3 を実行しているシステムで Python 2 用ワークベンチの更新を要求しました -
-
+ Workbench successfully updated. Please restart FreeCAD to apply the changes.ワークベンチの更新が成功しました。 FreeCADを再起動して変更を有効にしてください。
-
+ User requested installing a Python 2 workbench on a system running Python 3 - ユーザーが Python 3 を実行しているシステムで Python 2 用ワークベンチのインストールを要求しました -
-
+ Appears to be an issue connecting to the Wiki, therefore cannot retrieve Wiki macro list at this timeWikiへの接続で問題が発生したため、現時点ではWikiのマクロリストを取得できません。
-
+ Raw markdown displayed未加工のマークダウンを表示
-
+ Python Markdown library is missing.Python Markdown ライブラリがありません。
diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_lt.ts b/src/Mod/AddonManager/Resources/translations/AddonManager_lt.ts
index 97a072a586..a3151bb126 100644
--- a/src/Mod/AddonManager/Resources/translations/AddonManager_lt.ts
+++ b/src/Mod/AddonManager/Resources/translations/AddonManager_lt.ts
@@ -4,7 +4,7 @@
AddonInstaller
-
+ Installed locationInstalled location
@@ -97,97 +97,97 @@
Workbenches list was updated.
-
+ Outdated GitPython detected, consider upgrading with pip.Outdated GitPython detected, consider upgrading with pip.
-
+ List of macros successfully retrieved.List of macros successfully retrieved.
-
+ Retrieving description...Retrieving description...
-
+ Retrieving info fromRetrieving info from
-
+ An update is available for this addon.An update is available for this addon.
-
+ This addon is already installed.This addon is already installed.
-
+ Retrieving info from gitRetrieving info from git
-
+ Retrieving info from wikiRetrieving info from wiki
-
+ GitPython not found. Using standard download instead.GitPython not found. Using standard download instead.
-
+ Your version of python doesn't appear to support ZIP files. Unable to proceed.Your version of python doesn't appear to support ZIP files. Unable to proceed.
-
+ Workbench successfully installed. Please restart FreeCAD to apply the changes.Workbench successfully installed. Please restart FreeCAD to apply the changes.
-
+ Missing workbenchMissing workbench
-
+ Missing python moduleMissing python module
-
+ Missing optional python module (doesn't prevent installing)Missing optional python module (doesn't prevent installing)
-
+ Some errors were found that prevent to install this workbenchSome errors were found that prevent to install this workbench
-
+ Please install the missing components first.Please install the missing components first.
-
+ Error: Unable to downloadError: Unable to download
-
+ Successfully installedSuccessfully installed
-
+ GitPython not installed! Cannot retrieve macros from gitGitPython not installed! Cannot retrieve macros from git
@@ -207,72 +207,72 @@
Būtina paleisti iš naujo
-
+ This macro is already installed.This macro is already installed.
-
+ A macro has been installed and is available under Macro -> Macros menuA macro has been installed and is available under Macro -> Macros menu
-
+ This addon is marked as obsoleteThis addon is marked as obsolete
-
+ This usually means it is no longer maintained, and some more advanced addon in this list provides the same functionality.This usually means it is no longer maintained, and some more advanced addon in this list provides the same functionality.
-
+ Error: Unable to locate zip fromError: Unable to locate zip from
-
+ Something went wrong with the Git Macro Retrieval, possibly the Git executable is not in the pathSomething went wrong with the Git Macro Retrieval, possibly the Git executable is not in the path
-
+ This addon is marked as Python 2 OnlyThis addon is marked as Python 2 Only
-
+ This workbench may no longer be maintained and installing it on a Python 3 system will more than likely result in errors at startup or while in use.This workbench may no longer be maintained and installing it on a Python 3 system will more than likely result in errors at startup or while in use.
-
+ User requested updating a Python 2 workbench on a system running Python 3 - User requested updating a Python 2 workbench on a system running Python 3 -
-
+ Workbench successfully updated. Please restart FreeCAD to apply the changes.Workbench successfully updated. Please restart FreeCAD to apply the changes.
-
+ User requested installing a Python 2 workbench on a system running Python 3 - User requested installing a Python 2 workbench on a system running Python 3 -
-
+ Appears to be an issue connecting to the Wiki, therefore cannot retrieve Wiki macro list at this timeAppears to be an issue connecting to the Wiki, therefore cannot retrieve Wiki macro list at this time
-
+ Raw markdown displayedRaw markdown displayed
-
+ Python Markdown library is missing.Python Markdown library is missing.
diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_nl.ts b/src/Mod/AddonManager/Resources/translations/AddonManager_nl.ts
index c96ae4e174..4d176dbb83 100644
--- a/src/Mod/AddonManager/Resources/translations/AddonManager_nl.ts
+++ b/src/Mod/AddonManager/Resources/translations/AddonManager_nl.ts
@@ -4,7 +4,7 @@
AddonInstaller
-
+ Installed locationGeïnstalleerde locatie
@@ -97,97 +97,97 @@
Werkbankenlijst is bijgewerkt.
-
+ Outdated GitPython detected, consider upgrading with pip.Verouderde GitPython gevonden, overweeg een upgrade met pip.
-
+ List of macros successfully retrieved.Lijst van macro's succesvol opgehaald.
-
+ Retrieving description...Omschrijving ophalen...
-
+ Retrieving info fromInformatie ophalen vanaf
-
+ An update is available for this addon.Er is een update beschikbaar voor deze addon.
-
+ This addon is already installed.Deze addon is al geïnstalleerd.
-
+ Retrieving info from gitInformatie ophalen van git
-
+ Retrieving info from wikiInformatie ophalen van wiki
-
+ GitPython not found. Using standard download instead.GitPython niet gevonden. Standaard download wordt nu gebruikt.
-
+ Your version of python doesn't appear to support ZIP files. Unable to proceed.Je versie van Python lijkt geen ZIP-bestanden te ondersteunen. Verder gaan niet mogelijk.
-
+ Workbench successfully installed. Please restart FreeCAD to apply the changes.Werkbank succesvol geïnstalleerd. Herstart FreeCAD om de wijzigingen toe te passen.
-
+ Missing workbenchWerkbank ontbreekt
-
+ Missing python moduleOntbrekende python module
-
+ Missing optional python module (doesn't prevent installing)Ontbrekende optionele python module (voorkomt niet het installeren)
-
+ Some errors were found that prevent to install this workbenchEr zijn enkele fouten gevonden die voorkomen dat deze werkbank wordt geïnstalleerd
-
+ Please install the missing components first.Installeer eerst de ontbrekende componenten.
-
+ Error: Unable to downloadFout: Kan niet downloaden
-
+ Successfully installedSuccesvol geïnstalleerd
-
+ GitPython not installed! Cannot retrieve macros from gitGitPython niet geïnstalleerd! Macro's kunnen niet worden opgehaald van git
@@ -207,72 +207,72 @@
Opnieuw opstarten vereist
-
+ This macro is already installed.Deze macro is al geïnstalleerd.
-
+ A macro has been installed and is available under Macro -> Macros menuEen macro is geïnstalleerd en is beschikbaar onder Macro -> Macro' s menu
-
+ This addon is marked as obsoleteDeze uitbreiding is gemarkeerd als verouderd
-
+ This usually means it is no longer maintained, and some more advanced addon in this list provides the same functionality.Dit betekent gewoonlijk dat het niet meer onderhouden wordt, en een geavanceerdere uitbreidingen in deze lijst biedt dezelfde functionaliteit.
-
+ Error: Unable to locate zip fromFout: Kan zip niet vinden vanuit
-
+ Something went wrong with the Git Macro Retrieval, possibly the Git executable is not in the pathEr is iets misgegaan met het ophalen van de Git Macro. Mogelijk bevindt het uitvoerbare Git-bestand zich niet in het pad
-
+ This addon is marked as Python 2 OnlyDeze toevoeging is alleen geschikt voor Python 2
-
+ This workbench may no longer be maintained and installing it on a Python 3 system will more than likely result in errors at startup or while in use.Deze werkbank wordt wellicht niet langer onderhouden en de installatie ervan op een Python 3-systeem zal hoogstwaarschijnlijk leiden tot fouten bij het opstarten of tijdens het gebruik.
-
+ User requested updating a Python 2 workbench on a system running Python 3 - De gebruiker verzocht om een Python 2 werkbank bij te werken die alleen geschikt is voor Python 3
-
+ Workbench successfully updated. Please restart FreeCAD to apply the changes.Werkbank succesvol bijgewerkt. Herstart FreeCAD om de wijzigingen toe te passen.
-
+ User requested installing a Python 2 workbench on a system running Python 3 - De gebruiker verzocht om een Python 2 werkbank te installeren op een systeem dat Python 3 draait
-
+ Appears to be an issue connecting to the Wiki, therefore cannot retrieve Wiki macro list at this timeEr lijkt een probleem te zijn met de verbinding met de Wiki, daarom kan de Wiki-macrolijst op dit moment niet worden opgehaald
-
+ Raw markdown displayedOngeformateerde tekst weergegeven
-
+ Python Markdown library is missing.Python Markdown bibliotheek mist.
diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_pl.ts b/src/Mod/AddonManager/Resources/translations/AddonManager_pl.ts
index 686f6a474e..6af1e8a1fc 100644
--- a/src/Mod/AddonManager/Resources/translations/AddonManager_pl.ts
+++ b/src/Mod/AddonManager/Resources/translations/AddonManager_pl.ts
@@ -4,7 +4,7 @@
AddonInstaller
-
+ Installed locationMiejsce instalacji
@@ -97,97 +97,97 @@
Lista Środowisk pracy została zaktualizowana.
-
+ Outdated GitPython detected, consider upgrading with pip.Wykryto przestarzały GitPython, rozważ aktualizację za pomocą programu pip.
-
+ List of macros successfully retrieved.Pomyślnie pobrano listę makrodefinicji.
-
+ Retrieving description...Pobieranie opisu...
-
+ Retrieving info fromPobieranie informacji z
-
+ An update is available for this addon.Aktualizacja jest dostępna dla tego dodatku.
-
+ This addon is already installed.Ten dodatek jest już zainstalowany.
-
+ Retrieving info from gitPobieranie informacji z git
-
+ Retrieving info from wikiPobieranie informacji z Wiki
-
+ GitPython not found. Using standard download instead.Nie znaleziono GitPython. Zamiast tego użyto standardowego pobierania.
-
+ Your version of python doesn't appear to support ZIP files. Unable to proceed.Twoja wersja Pythona nie' obsługuje plików ZIP. Nie można kontynuować.
-
+ Workbench successfully installed. Please restart FreeCAD to apply the changes.Środowisko pracy zainstalowano pomyślnie. Uruchom ponownie FreeCAD, aby zastosować zmiany.
-
+ Missing workbenchNieistniejące Środowisko pracy
-
+ Missing python moduleNieistniejący moduł Pyton
-
+ Missing optional python module (doesn't prevent installing)Brakuje opcjonalnego modułu Python (nie przeszkadza w instalacji)
-
+ Some errors were found that prevent to install this workbenchZnaleziono pewne błędy, które uniemożliwiają zainstalowanie tego środowiska
-
+ Please install the missing components first.Proszę najpierw zainstalować brakujące komponenty.
-
+ Error: Unable to downloadBłąd: Nie można pobrać
-
+ Successfully installedZainstalowano pomyślnie
-
+ GitPython not installed! Cannot retrieve macros from gitGitPython nie jest zainstalowany! Nie można pobrać makrodefinicji z git
@@ -207,72 +207,72 @@
Wymagany restart
-
+ This macro is already installed.Moduł jest już zainstalowany.
-
+ A macro has been installed and is available under Macro -> Macros menuMakro zostało zainstalowane i jest dostępne w menu Macrodefinicji -> Menu makrodefinicji
-
+ This addon is marked as obsoleteTen dodatek jest oznaczony jako przestarzały
-
+ This usually means it is no longer maintained, and some more advanced addon in this list provides the same functionality.Oznacza to, że zazwyczaj nie jest on już utrzymywany, a niektóre bardziej zaawansowane dodatki z tej listy zapewniają tę samą funkcjonalność.
-
+ Error: Unable to locate zip fromBłąd: nie można znaleźć pliku Zip z
-
+ Something went wrong with the Git Macro Retrieval, possibly the Git executable is not in the pathCoś poszło nie tak z pobieraniem makr Git, prawdopodobnie plik wykonywalny Git nie występuje w podanej lokalizacjii
-
+ This addon is marked as Python 2 OnlyTen dodatek jest oznaczony tylko jako Python 2
-
+ This workbench may no longer be maintained and installing it on a Python 3 system will more than likely result in errors at startup or while in use.Te środowisko pracy nie może być dłużej utrzymywane, a zainstalowanie go w systemie Python 3 z dużym prawdopodobieństwem doprowadzi do błędów podczas uruchamiania lub podczas użytkowania.
-
+ User requested updating a Python 2 workbench on a system running Python 3 - Użytkownik poprosił o zaktualizowanie Środowiska pracy Python 2 w systemie z obsługą Pythona 3 -
-
+ Workbench successfully updated. Please restart FreeCAD to apply the changes.Środowisko pracy zaktualizowano pomyślnie. Uruchom ponownie FreeCAD, aby zastosować zmiany.
-
+ User requested installing a Python 2 workbench on a system running Python 3 - Użytkownik poprosił o zainstalowanie Środowiska pracy Python 2 w systemie z obsługą Pythona 3 -
-
+ Appears to be an issue connecting to the Wiki, therefore cannot retrieve Wiki macro list at this timeWygląda na to, że występuje problem z połączeniem się z Wiki, dlatego nie można obecnie pobrać listy makrodefinicji dostępnej na Wiki
-
+ Raw markdown displayedWyświetlono surowy format markdown
-
+ Python Markdown library is missing.Brakuje biblioteki Markdown środowiska Python.
diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_pt-BR.ts b/src/Mod/AddonManager/Resources/translations/AddonManager_pt-BR.ts
index ff94554895..035e422913 100644
--- a/src/Mod/AddonManager/Resources/translations/AddonManager_pt-BR.ts
+++ b/src/Mod/AddonManager/Resources/translations/AddonManager_pt-BR.ts
@@ -4,7 +4,7 @@
AddonInstaller
-
+ Installed locationLocalização instalada
@@ -97,97 +97,97 @@
Lista de workbenches atualizada.
-
+ Outdated GitPython detected, consider upgrading with pip.GitPython desatualizado detectado, considere atualizar com pip.
-
+ List of macros successfully retrieved.Lista de macros obtida com sucesso.
-
+ Retrieving description...Recuperando descrição...
-
+ Retrieving info fromRecuperando informações de
-
+ An update is available for this addon.Uma atualização para esta extensão está disponível.
-
+ This addon is already installed.Esta extensão já está instalada.
-
+ Retrieving info from gitRecuperando informações do git
-
+ Retrieving info from wikiRecuperando informações da wiki
-
+ GitPython not found. Using standard download instead.GitPython não encontrado. Usando o download padrão em vez disso.
-
+ Your version of python doesn't appear to support ZIP files. Unable to proceed.Sua versão do python parece não suportar arquivos ZIP. Não é possível prosseguir.
-
+ Workbench successfully installed. Please restart FreeCAD to apply the changes.Bancada de trabalho instalada. Reinicie o FreeCAD para aplicar as alterações.
-
+ Missing workbenchBancada de trabalho não localizada
-
+ Missing python moduleModulo Python não localizado
-
+ Missing optional python module (doesn't prevent installing)Faltando módulo python opcional (não impede a instalação)
-
+ Some errors were found that prevent to install this workbenchForam encontrados alguns erros que impedem a instalação desta bancada de trabalho
-
+ Please install the missing components first.Por favor, primeiro instale os componentes faltantes.
-
+ Error: Unable to downloadErro: Não foi possível baixar
-
+ Successfully installedInstalado com sucesso
-
+ GitPython not installed! Cannot retrieve macros from gitGitPython não instalado! Não é possível recuperar macros do git
@@ -207,72 +207,72 @@
Reinicialização necessária
-
+ This macro is already installed.Esta macro já está instalada.
-
+ A macro has been installed and is available under Macro -> Macros menuUma macro foi instalada e está disponível no menu Macros
-
+ This addon is marked as obsoleteEssa extensão está marcada como obsoleta
-
+ This usually means it is no longer maintained, and some more advanced addon in this list provides the same functionality.Isso geralmente significa que ela não é mais mantida, e outra extensão mais avançada nesta lista fornece a mesma funcionalidade.
-
+ Error: Unable to locate zip fromErro: Não foi possível localizar o zip de
-
+ Something went wrong with the Git Macro Retrieval, possibly the Git executable is not in the pathAlgo deu errado com o Git Macro Retrieval, possivelmente o executável Git não está no caminho
-
+ This addon is marked as Python 2 OnlyEsta extensão é marcada como apenas para Python 2
-
+ This workbench may no longer be maintained and installing it on a Python 3 system will more than likely result in errors at startup or while in use.Esta bancada não pode mais ser mantida e instalá-la em um sistema Python 3 irá mais do que provavelmente resultar em erros na inicialização ou quando em uso.
-
+ User requested updating a Python 2 workbench on a system running Python 3 - O usuário solicitou a atualização de uma bancada de trabalho Python 2 em um sistema que usa Python 3 -
-
+ Workbench successfully updated. Please restart FreeCAD to apply the changes.Bancada atualizada com sucesso. Por favor, reinicie o FreeCAD para aplicar as alterações.
-
+ User requested installing a Python 2 workbench on a system running Python 3 - O usuário solicitou a instalação de uma bancada de trabalho Python 2 em um sistema que usa Python 3 -
-
+ Appears to be an issue connecting to the Wiki, therefore cannot retrieve Wiki macro list at this timeParece haver um problema conectando ao Wiki, portanto não foi possível recuperar a lista de macros Wiki neste momento
-
+ Raw markdown displayedMarcação bruta exibida
-
+ Python Markdown library is missing.Biblioteca Python Markdown está faltando.
diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_pt-PT.ts b/src/Mod/AddonManager/Resources/translations/AddonManager_pt-PT.ts
index b0a5232c77..6686770789 100644
--- a/src/Mod/AddonManager/Resources/translations/AddonManager_pt-PT.ts
+++ b/src/Mod/AddonManager/Resources/translations/AddonManager_pt-PT.ts
@@ -4,7 +4,7 @@
AddonInstaller
-
+ Installed locationCaminho de instalação
@@ -97,97 +97,97 @@
A lista de Bancadas de Trabalho foi atualizada.
-
+ Outdated GitPython detected, consider upgrading with pip.Detetado GitPython desactualizado, considere atualizar com pip.
-
+ List of macros successfully retrieved.Lista de macros atualizada com sucesso.
-
+ Retrieving description...Obtendo descrição...
-
+ Retrieving info fromObtendo informações de
-
+ An update is available for this addon.Uma atualização está disponível para esse extra.
-
+ This addon is already installed.Este extra já está instalado.
-
+ Retrieving info from gitObtendo informações do git
-
+ Retrieving info from wikiObtendo informações da wiki
-
+ GitPython not found. Using standard download instead.GitPython não foi encontrado. Em vez disso, será usado o descarregamento padrão.
-
+ Your version of python doesn't appear to support ZIP files. Unable to proceed.A sua versão de python parece não suportar ficheiros ZIP. Não é possível prosseguir.
-
+ Workbench successfully installed. Please restart FreeCAD to apply the changes.Bancada de trabalho instalada com sucesso. Por favor, reinicie o FreeCAD para aplicar as alterações.
-
+ Missing workbenchBancada de trabalho em falta
-
+ Missing python moduleMódulo python em falta
-
+ Missing optional python module (doesn't prevent installing)Módulo python opcional em falta (não impede instalação)
-
+ Some errors were found that prevent to install this workbenchForam encontrados erros que impedem a instalação desta bancada de trabalho
-
+ Please install the missing components first.Por favor, instale os componentes em falta primeiro.
-
+ Error: Unable to downloadErro: Não foi possível descarregar
-
+ Successfully installedInstalado com sucesso
-
+ GitPython not installed! Cannot retrieve macros from gitGitPython não está instalado! Não é possível descarregar macros do git
@@ -207,72 +207,72 @@
Reinicio necessário
-
+ This macro is already installed.Esta macro já está instalada.
-
+ A macro has been installed and is available under Macro -> Macros menuUma macro foi instalada e está disponível no menu Macro -> Macros
-
+ This addon is marked as obsoleteEste extra está marcado como obsoleto
-
+ This usually means it is no longer maintained, and some more advanced addon in this list provides the same functionality.Isto geralmente significa que já não é mantido, e algum extra mais atualizado nesta lista fornece a mesma funcionalidade.
-
+ Error: Unable to locate zip fromErro: Não foi possível localizar o zip de
-
+ Something went wrong with the Git Macro Retrieval, possibly the Git executable is not in the pathAlgo correu mal com a descarga da Macro do Git, possivelmente o executável Git não está no caminho especificado
-
+ This addon is marked as Python 2 OnlyEste complemento é marcado apenas como Python 2
-
+ This workbench may no longer be maintained and installing it on a Python 3 system will more than likely result in errors at startup or while in use.Esta bancada de trabalho não pode mais ser mantida e instalá-la em um sistema Python 3 irá provavelmente resultar em erros no arranque ou quando em uso.
-
+ User requested updating a Python 2 workbench on a system running Python 3 - Utilizador solicitou atualização de uma bancada de trabalho Python 2 num sistema que executa Python 3 -
-
+ Workbench successfully updated. Please restart FreeCAD to apply the changes.Bancada de trabalho atualizada com sucesso. Por favor reinicie o FreeCAD para aplicar as alterações.
-
+ User requested installing a Python 2 workbench on a system running Python 3 - Utilizador solicitou instalação de uma bancada de trabalho Python 2 num sistema que executa Python 3 -
-
+ Appears to be an issue connecting to the Wiki, therefore cannot retrieve Wiki macro list at this timeParece haver um problema com a ligação à Wiki, portanto neste momento não é possível recuperar a lista Wiki de macros
-
+ Raw markdown displayedRaw markdown displayed
-
+ Python Markdown library is missing.Falta biblioteca Python Markdown.
diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_ro.ts b/src/Mod/AddonManager/Resources/translations/AddonManager_ro.ts
index 358ce68c7a..db4c28b0f2 100644
--- a/src/Mod/AddonManager/Resources/translations/AddonManager_ro.ts
+++ b/src/Mod/AddonManager/Resources/translations/AddonManager_ro.ts
@@ -4,7 +4,7 @@
AddonInstaller
-
+ Installed locationLocația unde s-a efectuat instalarea
@@ -97,97 +97,97 @@
Lista atelierelor a fost actualizată.
-
+ Outdated GitPython detected, consider upgrading with pip.GitPython vechi detectat, luați în considerare actualizarea cu pip.
-
+ List of macros successfully retrieved.Lista macro-urilor recuperate cu succes.
-
+ Retrieving description...Recuperez descrierea...
-
+ Retrieving info fromPreluarea informațiilor de la
-
+ An update is available for this addon.O actualizare este disponibilă pentru acest addon.
-
+ This addon is already installed.Acest addon este deja instalat.
-
+ Retrieving info from gitPreluare informații de la git
-
+ Retrieving info from wikiPreluare informații de la wiki
-
+ GitPython not found. Using standard download instead.GitPython nu a fost găsit. Se folosește descarcarea standard în schimb.
-
+ Your version of python doesn't appear to support ZIP files. Unable to proceed.Versiunea dumneavoastră de Pyton nu suportă fișierele de tip ZIP. Nu se poate continua.
-
+ Workbench successfully installed. Please restart FreeCAD to apply the changes.Ambientul de lucru fost instalat cu succes. Reporniţi FreeCAD pentru a aplica modificările.
-
+ Missing workbenchLipsește ambientul de lucru
-
+ Missing python moduleLipsește modulul Python
-
+ Missing optional python module (doesn't prevent installing)Modulul opțional Python lipsește (nu împiedică instalarea)
-
+ Some errors were found that prevent to install this workbenchAu fost găsite unele erori care împiedică instalarea ambientului de lucru
-
+ Please install the missing components first.Vă rugăm instalați mai întâi componentele lipsă.
-
+ Error: Unable to downloadEroare: Imposibil de descărcat
-
+ Successfully installedInstalat cu succes
-
+ GitPython not installed! Cannot retrieve macros from gitGitPython nu este instalat! Nu se pot recupera macro-urile din git
@@ -207,72 +207,72 @@
Repornire necesară
-
+ This macro is already installed.Acest macro este deja instalat.
-
+ A macro has been installed and is available under Macro -> Macros menuUn macro a fost instalat și este disponibil sub meniul Macro -> Macros
-
+ This addon is marked as obsoleteAcest addon este marcat ca expirat
-
+ This usually means it is no longer maintained, and some more advanced addon in this list provides the same functionality.De obicei acest lucru inseamnă că nu mai este menținut, iar unele addon-uri mai avansate oferă aceleași funcții.
-
+ Error: Unable to locate zip fromEroare: Nu se poate localiza zip de la
-
+ Something went wrong with the Git Macro Retrieval, possibly the Git executable is not in the pathCeva nu a mers bine cu Git Macro Retrieval, probabil executabilul Git nu se află in adresă
-
+ This addon is marked as Python 2 OnlyAcest supliment este marcat ca Python 2 doar
-
+ This workbench may no longer be maintained and installing it on a Python 3 system will more than likely result in errors at startup or while in use.Acest ambient de lucru nu mai poate fi întreținut și instalarea sa pe un sistem Python 3 va cauza mai mult decât probabil erori la pornire sau în timpul utilizării.
-
+ User requested updating a Python 2 workbench on a system running Python 3 - Utilizatorul a solicitat actualizarea unui ambient de lucru Python 2 pe un sistem care rulează Python 3 -
-
+ Workbench successfully updated. Please restart FreeCAD to apply the changes.Ambientul de lucru fost instalat cu succes. Reporniţi FreeCAD pentru a aplica modificările.
-
+ User requested installing a Python 2 workbench on a system running Python 3 - Utilizatorul a solicitat actualizarea unui ambient de lucru Python 2 pe un sistem care rulează Python 3 -
-
+ Appears to be an issue connecting to the Wiki, therefore cannot retrieve Wiki macro list at this timePare că există o problemă in conectarea la Wiki, prin urmare momentan nu se poate prelua lista de macro Wiki
-
+ Raw markdown displayedMarcaj brut afișat
-
+ Python Markdown library is missing.Lipsește biblioteca Python Markdown.
diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_ru.ts b/src/Mod/AddonManager/Resources/translations/AddonManager_ru.ts
index 20a21e7919..965791bfca 100644
--- a/src/Mod/AddonManager/Resources/translations/AddonManager_ru.ts
+++ b/src/Mod/AddonManager/Resources/translations/AddonManager_ru.ts
@@ -4,7 +4,7 @@
AddonInstaller
-
+ Installed locationМесто установки
@@ -97,97 +97,97 @@
Список рабочих окружений обновлен.
-
+ Outdated GitPython detected, consider upgrading with pip.Обнаружен устаревший GitPython, рассмотрите обновление с помощью pip.
-
+ List of macros successfully retrieved.Список макросов успешно получен.
-
+ Retrieving description...Получение описания...
-
+ Retrieving info fromПолучение информации от
-
+ An update is available for this addon.Для этого дополнения доступно обновление.
-
+ This addon is already installed.Это дополнение уже установлено.
-
+ Retrieving info from gitПолучение информации из git
-
+ Retrieving info from wikiПолучение информации из вики
-
+ GitPython not found. Using standard download instead.GitPython не найден. Вместо этого используется стандартная загрузка.
-
+ Your version of python doesn't appear to support ZIP files. Unable to proceed.По-видимому, ваша версия python не поддерживает ZIP файлы. Продолжение невозможно.
-
+ Workbench successfully installed. Please restart FreeCAD to apply the changes.Рабочее окружение успешно установлено. Пожалуйста, перезапустите FreeCAD для применения изменений.
-
+ Missing workbenchОтсутствует рабочее окружение
-
+ Missing python moduleОтсутствует модуль python
-
+ Missing optional python module (doesn't prevent installing)Отсутствует дополнительный модуль python (не запрещает установку)
-
+ Some errors were found that prevent to install this workbenchНайдены некоторые ошибки, которые мешают установке этого рабочего окружения
-
+ Please install the missing components first.Сначала установите недостающие компоненты.
-
+ Error: Unable to downloadОшибка: Не удалось загрузить
-
+ Successfully installedУспешно установлено
-
+ GitPython not installed! Cannot retrieve macros from gitGitPython не установлен! Не удается получить макрос из git
@@ -207,72 +207,72 @@
Требуется перезапуск
-
+ This macro is already installed.Этот макрос уже установлен.
-
+ A macro has been installed and is available under Macro -> Macros menuМакрос установлен и доступен меню Макросы -> макрос
-
+ This addon is marked as obsoleteЭто дополнение помечено как устаревшее
-
+ This usually means it is no longer maintained, and some more advanced addon in this list provides the same functionality.Это обычно означает, что оно больше не поддерживается, и некоторые более продвинутые дополнения в этом списке обеспечивают те же функции.
-
+ Error: Unable to locate zip fromОшибка: Не удается найти zip из
-
+ Something went wrong with the Git Macro Retrieval, possibly the Git executable is not in the pathЧто-то пошло не так при запросе макроса с сайта Git. Возможно исполняемый файл Git не находится в нужном месте
-
+ This addon is marked as Python 2 OnlyЭто дополнение помечено Только для Python 2
-
+ This workbench may no longer be maintained and installing it on a Python 3 system will more than likely result in errors at startup or while in use.Этот верстак больше не может быть поддержан, и установка его на систему с Python 3, вероятно, вызовет ошибки при запуске или во время использования.
-
+ User requested updating a Python 2 workbench on a system running Python 3 - Пользователь запросил обновление рабочего стола Python 2 на системе, запущенной с Python 3 -
-
+ Workbench successfully updated. Please restart FreeCAD to apply the changes.Верстак успешно обновлен. Перезапустите FreeCAD, чтобы применить изменения.
-
+ User requested installing a Python 2 workbench on a system running Python 3 - Пользователь запросил установить верстак для Python 2 на системе Python 3 -
-
+ Appears to be an issue connecting to the Wiki, therefore cannot retrieve Wiki macro list at this timeВозможно, возникла проблема при подключении к Wiki, поэтому в данный момент не удается получить список Wiki-макросов
-
+ Raw markdown displayedПоказана исходная разметка
-
+ Python Markdown library is missing.Библиотека Python Markdown отсутствует.
diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_sl.ts b/src/Mod/AddonManager/Resources/translations/AddonManager_sl.ts
index ca3aba0d5b..18995b5e9a 100644
--- a/src/Mod/AddonManager/Resources/translations/AddonManager_sl.ts
+++ b/src/Mod/AddonManager/Resources/translations/AddonManager_sl.ts
@@ -4,7 +4,7 @@
AddonInstaller
-
+ Installed locationMesto namestitve
@@ -97,97 +97,97 @@
Seznam delovnih okolij je bil posodobljen.
-
+ Outdated GitPython detected, consider upgrading with pip.Zaznan je zastarel GitPython; razmislite o nadgraditivi s pip-om.
-
+ List of macros successfully retrieved.Seznam makrov uspšno pridobljen.
-
+ Retrieving description...Pridobivanje opisov ...
-
+ Retrieving info fromPridobivanje podatkov iz
-
+ An update is available for this addon.Posodobitev za ta dodatek je na voljo.
-
+ This addon is already installed.Ta dodatek je že nameščen.
-
+ Retrieving info from gitPridobivanje podatkov iz git-a
-
+ Retrieving info from wikiPridobivanje podatkov iz wiki strani
-
+ GitPython not found. Using standard download instead.GitPython ni mogoče najti. Namesto tega je običajno prenašanje.
-
+ Your version of python doesn't appear to support ZIP files. Unable to proceed.Kot kaže, vaša različica Pythona ne podpira datotek ZIP. Ni mogoče nadaljevati.
-
+ Workbench successfully installed. Please restart FreeCAD to apply the changes.Delovno okolje uspešno nameščeno. Za uveljavitev sprememb ponovno zaženite FreeCAD.
-
+ Missing workbenchManjkajoče delovno oklje
-
+ Missing python moduleManjkajoči Pythonov modul
-
+ Missing optional python module (doesn't prevent installing)Manjkajoči neobvezni Pythonov modul (ne ustavi namestitve)
-
+ Some errors were found that prevent to install this workbenchNajdene so bile določene napake, ki preprečujejo namestitev tega delovnega okolja
-
+ Please install the missing components first.Namestite najprej manjkajoče sestavine.
-
+ Error: Unable to downloadNapaka: Ni mogoče prenesti
-
+ Successfully installedUspešno nameščeno
-
+ GitPython not installed! Cannot retrieve macros from gitGitPython ni nameščen! Makrov ni mogoče pridobiti iz git-a
@@ -207,72 +207,72 @@
Potreben ponovni zagon
-
+ This macro is already installed.Ta makro je že nameščen.
-
+ A macro has been installed and is available under Macro -> Macros menuMakro je bil namščen in je dosegljiv preko menija Makro -> Makri
-
+ This addon is marked as obsoleteTa dodatek je označen kot zastarel
-
+ This usually means it is no longer maintained, and some more advanced addon in this list provides the same functionality.To ponavadi pomeni, da ni več vzdrževan in naprednejši dodatek s tega seznama nudi enake zmožnosti.
-
+ Error: Unable to locate zip fromNapaka: Ni mogoče najti zipa od
-
+ Something went wrong with the Git Macro Retrieval, possibly the Git executable is not in the pathPri pridobivanju Git makra se je nekje zalomilo. Najverjetneje Git-ove izvršljive datoteke ni na tej poti
-
+ This addon is marked as Python 2 OnlyTa dodatek je označen, da je le za Python 2
-
+ This workbench may no longer be maintained and installing it on a Python 3 system will more than likely result in errors at startup or while in use.To delovno okolje lahko ni več vzdrževano in namestitev v Python 3 okolje bo najverjetneje prinesla napake pri zagonu ali med delovanjem.
-
+ User requested updating a Python 2 workbench on a system running Python 3 - Uporabnik je zaprosil posodobitev Python 2 delovnega okolja na okolje, ki se izvaja v Pythonu 3 -
-
+ Workbench successfully updated. Please restart FreeCAD to apply the changes.Delovno okolje je uspešno posodobljeno. Za uveljavitev sprememb ponovno zaženite FreeCAD.
-
+ User requested installing a Python 2 workbench on a system running Python 3 - Uporabnik je zaprosil namestitev Python 2 delovnega okolja na okolje, ki se izvaja v Pythonu 3 -
-
+ Appears to be an issue connecting to the Wiki, therefore cannot retrieve Wiki macro list at this timeKaže, da je težava v povezavi z Wiki, zaradi česa trenutno ni mogoče pridobiti seznama Wiki makrov
-
+ Raw markdown displayedPrikazan surov Markdown
-
+ Python Markdown library is missing.Knjižnica Python Markdowna manjka.
diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_sv-SE.ts b/src/Mod/AddonManager/Resources/translations/AddonManager_sv-SE.ts
index 5d80f64a21..d205b8aba3 100644
--- a/src/Mod/AddonManager/Resources/translations/AddonManager_sv-SE.ts
+++ b/src/Mod/AddonManager/Resources/translations/AddonManager_sv-SE.ts
@@ -4,7 +4,7 @@
AddonInstaller
-
+ Installed locationDet gick inte att hämta en beskrivning för det här makrot.
@@ -97,97 +97,97 @@
Arbetsytelista uppdaterades.
-
+ Outdated GitPython detected, consider upgrading with pip.Utdaterad GitPython detekterad, överväg att uppgradera med pip.
-
+ List of macros successfully retrieved.Makrolista hämtades.
-
+ Retrieving description...Hämtar beskrivning...
-
+ Retrieving info fromHämtar information från
-
+ An update is available for this addon.En uppdatering är tillgänglig för detta tillägg.
-
+ This addon is already installed.Det här tillägget är redan installerat.
-
+ Retrieving info from gitHämtar information från git
-
+ Retrieving info from wikiHämtar information från wiki
-
+ GitPython not found. Using standard download instead.GitPython hittades inte. Vanlig nedladdning används istället.
-
+ Your version of python doesn't appear to support ZIP files. Unable to proceed.Din version av Python verkar inte stöda ZIP-filer. Kan inte fortsätta.
-
+ Workbench successfully installed. Please restart FreeCAD to apply the changes.Arbetsytan installerades. Vänligen starta om FreeCAD för att den ska bli tillgänglig i programmet.
-
+ Missing workbenchHittar inte arbetsyta
-
+ Missing python moduleHittar inte Python-modul
-
+ Missing optional python module (doesn't prevent installing)Hittar inte frivillig Python-modul (förhindrar inte installation)
-
+ Some errors were found that prevent to install this workbenchNågra fel hittades som förhindrar installationen av denna arbetsyta
-
+ Please install the missing components first.Vänligen installera de saknade komponenterna först.
-
+ Error: Unable to downloadFel: Kan inte ladda ned
-
+ Successfully installedInstallationen lyckades
-
+ GitPython not installed! Cannot retrieve macros from gitGitPython inte installerad! Kan inte hämta makron från git
@@ -207,72 +207,72 @@
Omstart krävs
-
+ This macro is already installed.Det här makrot är redan installerat.
-
+ A macro has been installed and is available under Macro -> Macros menuEtt makro har installerats och är tillgängligt under menyn Makro -> Makron
-
+ This addon is marked as obsoleteDetta addon är markerat som föråldrat
-
+ This usually means it is no longer maintained, and some more advanced addon in this list provides the same functionality.Det betyder oftast att den inte längre underhålls, och vissa mer avancerade addon i den här listan ger samma funktionalitet.
-
+ Error: Unable to locate zip fromFel: Det gick inte att hitta zip från
-
+ Something went wrong with the Git Macro Retrieval, possibly the Git executable is not in the pathNågot gick fel med Git Macro Retrieval, möjligen Git körbara är inte i sökvägen
-
+ This addon is marked as Python 2 OnlyDetta addon är markerat som Endast Python 2
-
+ This workbench may no longer be maintained and installing it on a Python 3 system will more than likely result in errors at startup or while in use.Denna arbetsbänk får inte längre underhållas och installera den på ett Python 3-system kommer mer än sannolikt resultera i fel vid start eller när den används.
-
+ User requested updating a Python 2 workbench on a system running Python 3 - Användaren begärde att uppdatera en Python 2-arbetsbänk på ett system som kör Python 3 -
-
+ Workbench successfully updated. Please restart FreeCAD to apply the changes.Workbench uppdateras med lyckat resultat. Vänligen starta om FreeCAD för att tillämpa ändringarna.
-
+ User requested installing a Python 2 workbench on a system running Python 3 - Användaren begärde att installera en Python 2-arbetsbänk på ett system som kör Python 3 -
-
+ Appears to be an issue connecting to the Wiki, therefore cannot retrieve Wiki macro list at this timeVerkar vara ett problem som ansluter till Wiki, kan därför inte hämta Wiki makro lista för tillfället
-
+ Raw markdown displayedRåmarkering visas
-
+ Python Markdown library is missing.Python Markdown-biblioteket saknas.
diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_tr.ts b/src/Mod/AddonManager/Resources/translations/AddonManager_tr.ts
index daa2d502f7..d147107dd8 100644
--- a/src/Mod/AddonManager/Resources/translations/AddonManager_tr.ts
+++ b/src/Mod/AddonManager/Resources/translations/AddonManager_tr.ts
@@ -4,7 +4,7 @@
AddonInstaller
-
+ Installed locationYükleme konumu
@@ -97,97 +97,97 @@
Çalışma Tezgahı listesi güncelleştirildi.
-
+ Outdated GitPython detected, consider upgrading with pip.Geçmiş sürüme ait GitPython tespit edildi. Pip ile güncelleştirmeyi değerlendirin.
-
+ List of macros successfully retrieved.Makroların listesi başarı ile alındı.
-
+ Retrieving description...Tanım alınıyor...
-
+ Retrieving info fromBilgi alınıyor
-
+ An update is available for this addon.Bu eklenti için bir güncelleştirme mevcuttur.
-
+ This addon is already installed.Bu eklenti halihazırda yüklüdür.
-
+ Retrieving info from gitGit'ten bilgi alınıyor
-
+ Retrieving info from wikiWiki'den bilgi alınıyor
-
+ GitPython not found. Using standard download instead.GitPython bulunamadı. Standart yüklemeyi kullanmayı deneyin.
-
+ Your version of python doesn't appear to support ZIP files. Unable to proceed.Sizin Python versiyonunuz ZIP dosyalarını desteklemiyor olabilir. İşlem yapılamadı.
-
+ Workbench successfully installed. Please restart FreeCAD to apply the changes.Çalışma Tezgahı başarı ile yüklendi. Değişikliklerin geçerli olması için lütfen FreeCAD'i yeniden başlatın.
-
+ Missing workbenchEksik Çalışma Tezgahı
-
+ Missing python moduleEksik Python Modülü
-
+ Missing optional python module (doesn't prevent installing)Eksik opsiyonel pyhton modülü (yüklemeye engel değil)
-
+ Some errors were found that prevent to install this workbenchBu Çalışma Tezgahı'nın yüklenmesini engelleyen bazı hatalar bulundu
-
+ Please install the missing components first.Lüften önce eksik bileşenleri yükleyin.
-
+ Error: Unable to downloadHata: İndirilemiyor
-
+ Successfully installedBaşarıyla Yüklendi
-
+ GitPython not installed! Cannot retrieve macros from gitGitPython kurulu değil! Makrolar Git'ten alınamıyor
@@ -207,72 +207,72 @@
Yeniden başlatma gerekli
-
+ This macro is already installed.Bu makro zaten yüklü.
-
+ A macro has been installed and is available under Macro -> Macros menuBir makro yüklendi ve buna makro->makrolar menüsü altından ulaşılabilir
-
+ This addon is marked as obsoleteBu eklenti eskimiş olarak işaretleniyor
-
+ This usually means it is no longer maintained, and some more advanced addon in this list provides the same functionality.Bu ifade genellikle, eklentinin artık sürdürülmediği ve bu listedeki bazı daha gelişmiş eklentilerin aynı işlevselliği sunacağı anlamına gelmektedir.
-
+ Error: Unable to locate zip fromHata: Posta kodu bulunamıyor
-
+ Something went wrong with the Git Macro Retrieval, possibly the Git executable is not in the pathGit Makro Çağırma ile ilgili bir şeyler ters gitti; muhtemelen Git çalıştırılabilir, adres yolunda değil
-
+ This addon is marked as Python 2 OnlyBu eklenti, Sadece Python 2 olarak işaretleniyor
-
+ This workbench may no longer be maintained and installing it on a Python 3 system will more than likely result in errors at startup or while in use.Bu tezgah artık sürdürülemeyebilir ve bunu Python 3 sistemine yüklemek, başlangıç hatalarında veya kullanım sırasında daha iyi sonuç verecektir.
-
+ User requested updating a Python 2 workbench on a system running Python 3 - Kullanıcı, Python 3 çalıştıran bir sistemde bir Python 2 tezgahını güncellemek istedi -
-
+ Workbench successfully updated. Please restart FreeCAD to apply the changes.Tezgah başarıyla güncellendi. Değişikliklerin uygulanması için lütfen FreeCAD' i yeniden başlatın.
-
+ User requested installing a Python 2 workbench on a system running Python 3 - Kullanıcı, Python 3 çalıştıran bir sistemde bir Python 2 tezgahını yüklemek istedi -
-
+ Appears to be an issue connecting to the Wiki, therefore cannot retrieve Wiki macro list at this timeWiki'ye bağlanma sorunu gibi görünüyor, bu nedenle şu anda Wiki makro listesi alınamıyor
-
+ Raw markdown displayedHam markdown görüntülendi
-
+ Python Markdown library is missing.Python Markdown kitaplığı eksik.
diff --git a/src/Mod/AddonManager/Resources/translations/AddonManager_uk.ts b/src/Mod/AddonManager/Resources/translations/AddonManager_uk.ts
index cc2e4646b8..c0d9896fbf 100644
--- a/src/Mod/AddonManager/Resources/translations/AddonManager_uk.ts
+++ b/src/Mod/AddonManager/Resources/translations/AddonManager_uk.ts
@@ -4,7 +4,7 @@
AddonInstaller
-