diff --git a/DockerRun.sh b/DockerRun.sh
index 31319fb81..0e2d98330 100755
--- a/DockerRun.sh
+++ b/DockerRun.sh
@@ -8,6 +8,8 @@ set -x
docker run \
`# Use the hosts networking. Printer wifi and also dbus communication` \
--net=host \
+ `# Some X installs will not have permissions to talk to sockets for shared memory` \
+ --ipc host \
`# Run as your workstations username to keep permissions the same` \
-u $USER \
`# Bind mount your home directory into the container for loading/saving files` \
diff --git a/Dockerfile b/Dockerfile
index 24700d482..90e0cbf17 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -18,6 +18,8 @@ RUN apt-get update && apt-get install -y \
extra-cmake-modules \
file \
git \
+ gstreamer1.0-plugins-bad \
+ gstreamer1.0-libav \
libcairo2-dev \
libcurl4-openssl-dev \
libdbus-1-dev \
diff --git a/bbl/i18n/de/OrcaSlicer_de.po b/bbl/i18n/de/OrcaSlicer_de.po
index 31a527bb7..d6a53579e 100644
--- a/bbl/i18n/de/OrcaSlicer_de.po
+++ b/bbl/i18n/de/OrcaSlicer_de.po
@@ -5373,10 +5373,10 @@ msgid ""
"by right-click the empty position of build plate and choose \"Add Primitive"
"\"->\"Timelapse Wipe Tower\"."
msgstr ""
-"Wenn Sie eine Zeitrafferaufnahme ohne Werkzeugkopf aufnehmen, wird "
-"empfohlen, einen „Timelapse Wipe Tower“ hinzuzufügen,\n"
-"indem Sie auf die leere Position der Bauplatte rechtsklicken und „Primitiv "
-"hinzufügen“ -> „Timelapse Wipe Tower“ auswählen."
+"Wenn Sie einen Zeitraffer ohne Werkzeugkopf aufnehmen, wird empfohlen, einen "
+"\"Timelapse Wischturm\" hinzuzufügen, indem Sie mit der rechten Maustaste "
+"auf die leere Position der Bauplatte klicken und \"Primitiv hinzufügen\"->"
+"\"Timelapse Wischturm\" wählen."
msgid "Line width"
msgstr "Breite der Linie"
diff --git a/bbl/i18n/en/OrcaSlicer_en.po b/bbl/i18n/en/OrcaSlicer_en.po
index 340e89e09..8650a978e 100644
--- a/bbl/i18n/en/OrcaSlicer_en.po
+++ b/bbl/i18n/en/OrcaSlicer_en.po
@@ -5084,6 +5084,10 @@ msgid ""
"by right-click the empty position of build plate and choose \"Add Primitive"
"\"->\"Timelapse Wipe Tower\"."
msgstr ""
+"When recording timelapse without toolhead, it is recommended to add a "
+"\"Timelapse Wipe Tower\" \n"
+"by right-click the empty position of build plate and choose \"Add Primitive"
+"\"->\"Timelapse Wipe Tower\"."
msgid "Line width"
msgstr "Line width"
diff --git a/bbl/i18n/fr/OrcaSlicer_fr.po b/bbl/i18n/fr/OrcaSlicer_fr.po
index 5abaaf1e6..9673d49c0 100644
--- a/bbl/i18n/fr/OrcaSlicer_fr.po
+++ b/bbl/i18n/fr/OrcaSlicer_fr.po
@@ -1540,8 +1540,8 @@ msgid ""
"Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically "
"load or unload filiament."
msgstr ""
-"Choisissez un emplacement de l’AMS puis appuyez sur le bouton \"Charger\" ou "
-"\"Décharger\" pour charger ou décharger automatiquement le filament."
+"Choisissez un slot AMS puis appuyez sur le bouton \"charger\" ou\"Décharger"
+"\" pour charger ou décharger automatiquement le filament."
msgid "Edit"
msgstr "Éditer"
@@ -5517,9 +5517,9 @@ msgid ""
"Bed temperature when cool plate is installed. Value 0 means the filament "
"does not support to print on the Cool Plate"
msgstr ""
-"Température du plateau lorsque le plateau Bambu Cool Plate est installé. Une "
-"valeur à 0 signifie que le filament ne prend pas en charge l'impression sur "
-"le plateau Bambu Cool Plate"
+"Il s'agit de la température du plateau lorsque le plateau froid (\"Cool plate"
+"\") est installé. Une valeur à 0 signifie que ce filament ne peut pas être "
+"imprimé sur le plateau froid."
msgid "Engineering plate"
msgstr "Bambu Engineering Plate"
@@ -6628,8 +6628,8 @@ msgstr ""
msgid "The prime tower is not supported in \"By object\" print."
msgstr ""
-"La tour de purge n'est pas prise en charge avec la séquence d’impression "
-"\"Par objet\"."
+"La tour de nettoyage n'est pas prise en charge dans l'impression \"Par objet"
+"\"."
msgid ""
"The prime tower is not supported when adaptive layer height is on. It "
@@ -7275,8 +7275,9 @@ msgid ""
"Add solid infill near sloping surfaces to guarantee the vertical shell "
"thickness (top+bottom solid layers)"
msgstr ""
-"Ajouter un remplissage solide près des surfaces en pente pour garantir "
-"l'épaisseur verticale de la coque (couches solides supérieures + inférieures)"
+"Ajoutez du remplissage solide à proximité des surfaces inclinées pour "
+"garantir l'épaisseur verticale de la coque (couches solides supérieure"
+"+inférieure)."
msgid "Internal bridge support thickness"
msgstr "Épaisseur des supports de ponts internes"
diff --git a/bbl/i18n/it/OrcaSlicer_it.po b/bbl/i18n/it/OrcaSlicer_it.po
index 899fa87f1..f7faeaf8e 100644
--- a/bbl/i18n/it/OrcaSlicer_it.po
+++ b/bbl/i18n/it/OrcaSlicer_it.po
@@ -5951,6 +5951,10 @@ msgid ""
"continue. Do you want to update now? You can also update later from 'Upgrade "
"firmware'."
msgstr ""
+"È stato rilevato un aggiornamento importante che deve essere eseguito prima "
+"che la stampa possa continuare. Si desidera aggiornare ora? È possibile "
+"effettuare l'aggiornamento anche in un secondo momento da \"Aggiorna firmware"
+"\"."
msgid ""
"The firmware version is abnormal. Repairing and updating are required before "
@@ -9845,7 +9849,43 @@ msgstr ""
#~ "\"Timelapse Wipe Tower\" \n"
#~ "by right-click the empty position of build plate and choose \"Add "
#~ "Primitive\"->\"Timelapse Wipe Tower\".\n"
-#~ msgstr "\n"
+#~ msgstr ""
+#~ "Quando si registra un timelapse senza testa di satmpa, si consiglia di "
+#~ "aggiungere un \"Timelapse Torre di pulizia\"\n"
+#~ "facendo clic con il pulsante destro del mouse sulla posizione vuota del "
+#~ "piatto e scegli \"Aggiungi primitiva\" ->\"Timelapse Torre di pulizia"
+#~ "\"».\n"
+
+#~ msgid ""
+#~ "When sparse infill density is low, the internal solid infill or internal "
+#~ "bridge may have no archor at the end of line. This cause falling and bad "
+#~ "quality when printing internal solid infill. When enable this feature, "
+#~ "loop paths will be added to the sparse fill of the lower layers for "
+#~ "specific thickness, so that better archor can be provided for internal "
+#~ "bridge. 0 means disable this feature"
+#~ msgstr ""
+#~ "Quando la densità riempimento è bassa, il riempimento solido interno o il "
+#~ "ponte interno potrebbero non avere alcun ancoraggio alla fine della "
+#~ "linea. Ciò causa cadute e cattiva qualità durante la stampa del "
+#~ "riempimento solido interno. Quando si abilita questa funzione, i percorsi "
+#~ "ad anello verranno aggiunti al riempimento dei layer inferiori per uno "
+#~ "spessore specifico, in modo da poter fornire ancoraggi migliori per i "
+#~ "ponti interni. 0 significa disabilitare questa funzione"
+
+#~ msgid ""
+#~ "When using support material for the support interface, We recommend the "
+#~ "following settings:\n"
+#~ "0 top z distance, 0 interface spacing, concentric pattern."
+#~ msgstr ""
+#~ "Quando si utilizza materiale di supporto per l'interfaccia supporto, si "
+#~ "consigliano le seguenti impostazioni:\n"
+#~ "0 distanza superiore, 0 distanza tra interfacce, trama concentrica."
+
+#~ msgid ""
+#~ "X1 General Settings - Network Settings in the side bar of X1 main screen"
+#~ msgstr ""
+#~ "Impostazioni generali X1 - Impostazioni rete nella barra laterale della "
+#~ "schermata principale X1."
#~ msgid ""
#~ "You have changed some preset settings. \n"
diff --git a/bbl/i18n/zh_cn/OrcaSlicer_zh_CN.po b/bbl/i18n/zh_cn/OrcaSlicer_zh_CN.po
index f81ae8014..48a815b99 100644
--- a/bbl/i18n/zh_cn/OrcaSlicer_zh_CN.po
+++ b/bbl/i18n/zh_cn/OrcaSlicer_zh_CN.po
@@ -8719,6 +8719,21 @@ msgstr "支撑:正在生成多边形"
msgid "Support: generate toolpath"
msgstr "支撑:正在生成走线路径"
+msgid "Unknown file format. Input file must have .stl, .obj, .amf(.xml) extension."
+msgstr "未知的文件格式。输入文件的扩展名必须为.stl、.obj 或 .amf(.xml)。"
+
+msgid "Loading of a model file failed."
+msgstr "加载模型文件失败。"
+
+msgid "The supplied file couldn't be read because it's empty"
+msgstr "无法读取提供的文件,因为该文件为空。"
+
+msgid "Unknown file format. Input file must have .3mf or .zip.amf extension."
+msgstr "未知的文件格式。输入文件的扩展名必须为.3mf或.zip .amf。"
+
+msgid "Canceled"
+msgstr "已取消"
+
#, c-format, boost-format
msgid "Support: generate polygons at layer %d"
msgstr "支撑:正在生成层%d的多边形"
diff --git a/resources/images/param_rectilinear_interlaced.svg b/resources/images/param_rectilinear_interlaced.svg
new file mode 100644
index 000000000..729cc3b84
--- /dev/null
+++ b/resources/images/param_rectilinear_interlaced.svg
@@ -0,0 +1,16 @@
+
diff --git a/src/libslic3r/Model.cpp b/src/libslic3r/Model.cpp
index bd68d7dcb..46309f616 100644
--- a/src/libslic3r/Model.cpp
+++ b/src/libslic3r/Model.cpp
@@ -37,6 +37,11 @@
#include "MeshBoolean.hpp"
#include "Format/3mf.hpp"
+// Transtltion
+#include "I18N.hpp"
+
+#define _L(s) Slic3r::I18N::translate(s)
+
namespace Slic3r {
// BBS initialization of static variables
std::map Model::extruderParamsMap = { {0,{"",0,0}}};
@@ -191,7 +196,7 @@ Model Model::read_from_file(const std::string& input_file, DynamicPrintConfig* c
//BBS: is_xxx is used for is_bbs_3mf when load 3mf
result = load_bbs_3mf(input_file.c_str(), config, config_substitutions, &model, plate_data, project_presets, is_xxx, file_version, proFn, options, project, plate_id);
else
- throw Slic3r::RuntimeError("Unknown file format. Input file must have .stl, .obj, .amf(.xml) extension.");
+ throw Slic3r::RuntimeError(_L("Unknown file format. Input file must have .stl, .obj, .amf(.xml) extension."));
if (is_cb_cancel) {
Model empty_model;
@@ -200,13 +205,13 @@ Model Model::read_from_file(const std::string& input_file, DynamicPrintConfig* c
if (!result) {
if (message.empty())
- throw Slic3r::RuntimeError("Loading of a model file failed.");
+ throw Slic3r::RuntimeError(_L("Loading of a model file failed."));
else
throw Slic3r::RuntimeError(message);
}
if (model.objects.empty())
- throw Slic3r::RuntimeError("The supplied file couldn't be read because it's empty");
+ throw Slic3r::RuntimeError(_L("The supplied file couldn't be read because it's empty"));
for (ModelObject *o : model.objects)
o->input_file = input_file;
@@ -252,14 +257,14 @@ Model Model::read_from_archive(const std::string& input_file, DynamicPrintConfig
else if (boost::algorithm::iends_with(input_file, ".zip.amf"))
result = load_amf(input_file.c_str(), config, config_substitutions, &model, &is_bbl_3mf);
else
- throw Slic3r::RuntimeError("Unknown file format. Input file must have .3mf or .zip.amf extension.");
+ throw Slic3r::RuntimeError(_L("Unknown file format. Input file must have .3mf or .zip.amf extension."));
if (out_file_type != En3mfType::From_Prusa) {
out_file_type = is_bbl_3mf ? En3mfType::From_BBS : En3mfType::From_Other;
}
if (!result)
- throw Slic3r::RuntimeError("Loading of a model file failed.");
+ throw Slic3r::RuntimeError(_L("Loading of a model file failed."));
for (ModelObject *o : model.objects) {
// if (boost::algorithm::iends_with(input_file, ".zip.amf"))
@@ -278,7 +283,7 @@ Model Model::read_from_archive(const std::string& input_file, DynamicPrintConfig
if (proFn) {
proFn(IMPORT_STAGE_ADD_INSTANCE, 0, 1, cb_cancel);
if (cb_cancel)
- throw Slic3r::RuntimeError("Canceled");
+ throw Slic3r::RuntimeError(_L("Canceled"));
}
}
@@ -289,7 +294,7 @@ Model Model::read_from_archive(const std::string& input_file, DynamicPrintConfig
if (proFn) {
proFn(IMPORT_STAGE_UPDATE_GCODE, 0, 1, cb_cancel);
if (cb_cancel)
- throw Slic3r::RuntimeError("Canceled");
+ throw Slic3r::RuntimeError(_L("Canceled"));
}
//BBS
@@ -300,7 +305,7 @@ Model Model::read_from_archive(const std::string& input_file, DynamicPrintConfig
if (proFn) {
proFn(IMPORT_STAGE_CHECK_MODE_GCODE, 0, 1, cb_cancel);
if (cb_cancel)
- throw Slic3r::RuntimeError("Canceled");
+ throw Slic3r::RuntimeError(_L("Canceled"));
}
handle_legacy_sla(*config);
diff --git a/version.inc b/version.inc
index d33f0a6b3..62938cd02 100644
--- a/version.inc
+++ b/version.inc
@@ -11,4 +11,4 @@ if(NOT DEFINED BBL_INTERNAL_TESTING)
set(BBL_INTERNAL_TESTING "1")
endif()
set(SoftFever_VERSION "1.6.3-beta")
-set(SLIC3R_VERSION "01.06.00.65")
\ No newline at end of file
+set(SLIC3R_VERSION "01.06.00.66")
\ No newline at end of file