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