From 87f6c437840b23f2e3b27d0ca133f2914ae7d34c Mon Sep 17 00:00:00 2001 From: ZdDroid <43038779+ZdDroid@users.noreply.github.com> Date: Sat, 22 Jul 2023 10:40:15 +0800 Subject: [PATCH] Display print end time for in BL device page (#1568) Show progress increase end time Supplementary translation Co-authored-by: ZdDroid <601865048@qq.com> --- bbl/i18n/zh_cn/OrcaSlicer_zh_CN.po | 478 ++++++++++++++++------------- resources/i18n/zh_cn/OrcaSlicer.mo | Bin 203745 -> 225486 bytes src/libslic3r/Utils.hpp | 18 ++ src/slic3r/GUI/StatusPanel.cpp | 22 ++ src/slic3r/GUI/StatusPanel.hpp | 1 + 5 files changed, 305 insertions(+), 214 deletions(-) diff --git a/bbl/i18n/zh_cn/OrcaSlicer_zh_CN.po b/bbl/i18n/zh_cn/OrcaSlicer_zh_CN.po index 2821bf01f6..0126106528 100644 --- a/bbl/i18n/zh_cn/OrcaSlicer_zh_CN.po +++ b/bbl/i18n/zh_cn/OrcaSlicer_zh_CN.po @@ -252,37 +252,37 @@ msgid "uniform scale" msgstr "等比例缩放" msgid "Left click" -msgstr "" +msgstr "左击" msgid "Add connector" -msgstr "" +msgstr "添加连接件" msgid "Right click" -msgstr "" +msgstr "右击" msgid "Remove connector" -msgstr "" +msgstr "删除连接件" msgid "Drag" -msgstr "" +msgstr "拖拽" msgid "Move connector" -msgstr "" +msgstr "移动连接件" msgid "Add connector to selection" -msgstr "" +msgstr "选择连接件" msgid "Remove connector from selection" -msgstr "" +msgstr "取消选择连接件" msgid "Select all connectors" -msgstr "" +msgstr "选择所有连接件" msgid "Cut" msgstr "剪切" msgid "Connector" -msgstr "" +msgstr "连接件" msgid "Movement:" msgstr "移动:" @@ -294,28 +294,28 @@ msgid "Height" msgstr "高度" msgid "Edit connectors" -msgstr "" +msgstr "编辑连接件" msgid "Add connectors" -msgstr "" +msgstr "添加连接件" msgid "Upper part" -msgstr "" +msgstr "上半部分" msgid "Lower part" -msgstr "" +msgstr "下半部分" msgid "Keep" msgstr "保持" msgid "Place on cut" -msgstr "" +msgstr "切割面放置到热床" msgid "Flip" -msgstr "" +msgstr "翻转" msgid "After cut" -msgstr "" +msgstr "切割后" msgid "Cut to parts" msgstr "切割为零件" @@ -330,7 +330,7 @@ msgid "Reset" msgstr "重置" msgid "Connectors" -msgstr "" +msgstr "连接件" msgid "Type" msgstr "类型" @@ -342,25 +342,25 @@ msgid "Shape" msgstr "形状" msgid "Depth ratio" -msgstr "" +msgstr "深度" msgid "Remove connectors" -msgstr "" +msgstr "删除所有连接件" msgid "Prizm" -msgstr "" +msgstr "棱柱" msgid "Frustum" -msgstr "" +msgstr "锥体" msgid "Square" -msgstr "" +msgstr "正方形" msgid "Hexagon" -msgstr "" +msgstr "六边形" msgid "Confirm connectors" -msgstr "" +msgstr "确认" msgid "Cancel" msgstr "取消" @@ -369,36 +369,38 @@ msgid "Warning" msgstr "警告" msgid "Invalid connectors detected" -msgstr "" +msgstr "检测到无效连接件" msgid "connector is out of cut contour" -msgstr "" +msgstr "个连接件超出了切割面范围" msgid "connectors are out of cut contour" -msgstr "" +msgstr "个连接件超出了切割面范围" msgid "connector is out of object" -msgstr "" +msgstr "个连接件穿透了模型" msgid "connectors is out of object" -msgstr "" +msgstr "个连接件穿透了模型" msgid "Some connectors are overlapped" -msgstr "" +msgstr "存在连接件相互重叠" msgid "" "Invalid state. \n" "No one part is selected for keep after cut" msgstr "" +"无效状态。\n" +"切割后没有选中要保留的部分" msgid "Plug" -msgstr "" +msgstr "插销" msgid "Dowel" -msgstr "" +msgstr "销钉" msgid "Tolerance" -msgstr "" +msgstr "容差" msgid "Mesh name" msgstr "Mesh名" @@ -484,10 +486,10 @@ msgid "Remove selection" msgstr "移除绘制" msgid "Shift + Mouse move up or dowm" -msgstr "" +msgstr "Shift + 鼠标上移或下移" msgid "Rotate text" -msgstr "" +msgstr "旋转文字" msgid "Text shape" msgstr "文本形状" @@ -502,24 +504,24 @@ msgid "Input text" msgstr "输入文本" msgid "Embeded" -msgstr "" +msgstr "嵌入的" msgid "Text Gap" -msgstr "" +msgstr "文字间距" msgid "Angle" -msgstr "" +msgstr "角度" msgid "" "Embeded\n" "depth" -msgstr "" +msgstr "内嵌深度" msgid "Surface" -msgstr "" +msgstr "附着曲面" msgid "Horizontal text" -msgstr "" +msgstr "水平文字" msgid "Ctrl+" msgstr "" @@ -564,6 +566,8 @@ msgid "" "OrcaSlicer will terminate because of running out of memory.It may be a bug. " "It will be appreciated if you report the issue to our team." msgstr "" +"系统内存耗尽,OrcaSlicer 即将终止运行。这可能是个缺陷,希望您可以报告此问" +"题,我们将非常感激。" msgid "Fatal error" msgstr "致命错误" @@ -572,13 +576,15 @@ msgid "" "OrcaSlicer will terminate because of a localization error. It will be " "appreciated if you report the specific scenario this issue happened." msgstr "" +"遇到本地化错误,OrcaSlicer 即将终止运行。希望您可以报告发生此问题的具体场" +"景,我们将非常感激。" msgid "Critical error" msgstr "严重错误" #, boost-format msgid "OrcaSlicer got an unhandled exception: %1%" -msgstr "" +msgstr "OrcaSlicer 捕捉到一个未处理的异常:%1%" msgid "Downloading Bambu Network Plug-in" msgstr "正在下载Bambu网络插件" @@ -594,6 +600,7 @@ msgid "" "OrcaSlicer configuration file may be corrupted and is not abled to be parsed." "Please delete the file and try again." msgstr "" +"OrcaSlicer 配置文件可能已损坏而无法解析。请删除此文件并重新启动BambuStudio。" #, c-format, boost-format msgid "" @@ -664,7 +671,7 @@ msgid "Login information expired. Please login again." msgstr "登录信息过期。请重新登录。" msgid "Privacy Policy Update" -msgstr "" +msgstr "隐私协议更新" msgid "Loading" msgstr "载入中" @@ -697,7 +704,7 @@ msgid "Select a G-code file:" msgstr "选择一个G-code文件:" msgid "Import File" -msgstr "" +msgstr "导入文件" msgid "Delete" msgstr "删除" @@ -706,7 +713,7 @@ msgid "Choose files" msgstr "选择文件" msgid "New Folder" -msgstr "" +msgstr "新建文件夹" msgid "Open" msgstr "打开" @@ -794,19 +801,19 @@ msgid "Select settings" msgstr "选择设置" msgid "Hide" -msgstr "" +msgstr "隐藏" msgid "Show" -msgstr "" +msgstr "显示" msgid "Del" -msgstr "" +msgstr "删除" msgid "Delete the selected object" msgstr "删除所选对象" msgid "Edit Text" -msgstr "" +msgstr "编辑文字" msgid "Load..." msgstr "加载..." @@ -954,7 +961,7 @@ msgid "Mirror object" msgstr "镜像对象" msgid "Invalidate cut info" -msgstr "" +msgstr "解除切割关系" msgid "Add Primitive" msgstr "添加标准模型" @@ -1017,7 +1024,7 @@ msgid "auto rotate current plate" msgstr "在当前盘执行自动朝向" msgid "Delete Plate" -msgstr "" +msgstr "删除盘" msgid "Remove the selected plate" msgstr "删除所选盘" @@ -1104,7 +1111,7 @@ msgid "Click the icon to edit color painting of the object" msgstr "点击此图标可编辑这个对象的颜色绘制" msgid "Click the icon to shift this object to the bed" -msgstr "" +msgstr "点击这个图标可将对象移动到热床上" msgid "Loading file" msgstr "载入文件中" @@ -1127,18 +1134,18 @@ msgid "" msgstr "切换到对象设置模式,以编辑所选对象的工艺参数" msgid "Delete connector from object which is a part of cut" -msgstr "" +msgstr "删除的连接件属于切割对象的一部分" msgid "Delete solid part from object which is a part of cut" -msgstr "" +msgstr "删除的实体属于切割对象的一部分" msgid "Delete negative volume from object which is a part of cut" -msgstr "" +msgstr "删除的负体积属于切割对象的一部分" msgid "" "To save cut correspondence you can delete all connectors from all related " "objects." -msgstr "" +msgstr "为保证切割关系,您可以将所有关联对象的连接件一起删除。" msgid "" "This action will break a cut correspondence.\n" @@ -1147,9 +1154,12 @@ msgid "" "To manipulate with solid parts or negative volumes you have to invalidate " "cut infornation first." msgstr "" +"该行为将破坏切割关系,在此之后将无法保证模型一致性。\n" +"\n" +"如果要操作子部件或者负零件,需要先解除切割关系。" msgid "Delete all connectors" -msgstr "" +msgstr "删除所有连接件" msgid "Deleting the last solid part is not allowed." msgstr "不允许删除对象的最后一个实体零件。" @@ -1161,7 +1171,7 @@ msgid "Assembly" msgstr "组合体" msgid "Cut Connectors information" -msgstr "" +msgstr "切割连接件信息" msgid "Object manipulation" msgstr "操作对象" @@ -1218,7 +1228,7 @@ msgid "Negative Part" msgstr "负零件" msgid "Modifier" -msgstr "修改器 Modifier" +msgstr "修改器" msgid "Support Blocker" msgstr "支撑去除器" @@ -1337,13 +1347,13 @@ msgid "Open Documentation in web browser." msgstr "在web浏览器中打开文档。" msgid "Pause:" -msgstr "" +msgstr "暂停" msgid "Custom Template:" -msgstr "" +msgstr "自定义模板:" msgid "Custom G-code:" -msgstr "" +msgstr "自定义G-code:" msgid "Custom G-code" msgstr "自定义 G-code" @@ -1367,40 +1377,40 @@ msgid "Add Pause" msgstr "添加暂停打印" msgid "Insert a pause command at the beginning of this layer." -msgstr "" +msgstr "在该层的起始位置插入暂停。" msgid "Add Custom G-code" msgstr "添加自定义G-code" msgid "Insert custom G-code at the beginning of this layer." -msgstr "" +msgstr "在该层的起始位置插入自定义G-code。" msgid "Add Custom Template" msgstr "添加自定义模板" msgid "Insert template custom G-code at the beginning of this layer." -msgstr "" +msgstr "在该层的起始位置插入模板自定义G-code。" msgid "Filament " msgstr "耗材丝" msgid "Change filament at the beginning of this layer." -msgstr "" +msgstr "在该层的起始位置更换耗材丝。" msgid "Delete Pause" -msgstr "" +msgstr "删除暂停打印" msgid "Delete Custom Template" -msgstr "" +msgstr "删除自定义模板" msgid "Edit Custom G-code" -msgstr "" +msgstr "编辑自定义G-code" msgid "Delete Custom G-code" -msgstr "" +msgstr "删除自定义G-code" msgid "Delete Filament Change" -msgstr "" +msgstr "删除耗材丝更换" msgid "No printer" msgstr "无打印机" @@ -1475,7 +1485,7 @@ msgid "Purge old filament" msgstr "冲刷旧耗材丝" msgid "Feed new filament from external spool" -msgstr "" +msgstr "将新的耗材丝推入挤出机" msgid "Confirm whether the filament has been extruded" msgstr "" @@ -1662,50 +1672,51 @@ msgid "Please log out and login to the printer again." msgstr "请先退出登录然后再重新登录打印机。" msgid "Choose SLA archive:" -msgstr "" +msgstr "选择SLA存档:" msgid "Import file" -msgstr "" +msgstr "导入文件" msgid "Import model and profile" -msgstr "" +msgstr "导入模型和配置" msgid "Import profile only" -msgstr "" +msgstr "仅导入配置" msgid "Import model only" -msgstr "" +msgstr "仅导入模型" msgid "Accurate" -msgstr "" +msgstr "精确的" msgid "Balanced" -msgstr "" +msgstr "均衡的" msgid "Quick" -msgstr "" +msgstr "快速的" msgid "Importing SLA archive" -msgstr "" +msgstr "导入SLA存档" msgid "" "The SLA archive doesn't contain any presets. Please activate some SLA " "printer preset first before importing that SLA archive." msgstr "" +"SLA存档不包含任何预设。在导入该SLA存档之前,请先激活一些SLA打印机预设。" msgid "Importing canceled." -msgstr "" +msgstr "导入已取消。" msgid "Importing done." -msgstr "" +msgstr "导入完成。" msgid "" "The imported SLA archive did not contain any presets. The current SLA " "presets were used as fallback." -msgstr "" +msgstr "导入的SLA存档不包含任何预设。当前的SLA预设被用作备用选项。" msgid "You cannot load SLA project with a multi-part object on the bed" -msgstr "" +msgstr "您不能加载一个在床上有多个部件的SLA项目" msgid "Please check your object list before preset changing." msgstr "请在预设更改之前检查对象列表。" @@ -1827,10 +1838,10 @@ msgid "Factor N" msgstr "系数N" msgid "Setting Virtual slot information while printing is not supported" -msgstr "" +msgstr "不支持在打印时设置虚拟槽位信息" msgid "Are you sure you want to clear the filament information?" -msgstr "" +msgstr "您确定要清除耗材丝信息吗?" msgid "Please input a valid value (K in 0~0.5)" msgstr "请输入有效的数值(K的范围为0~0.5)" @@ -1942,20 +1953,21 @@ msgid "Print with the filament mounted on the back of chassis" msgstr "使用机箱背后挂载的材料打印" msgid "Cabin humidity" -msgstr "机舱湿度" +msgstr "舱内湿度" msgid "" "Green means that AMS humidity is normal, orange represent humidity is high, " "red represent humidity is too high.(Hygrometer: lower the better.)" msgstr "" +"绿色表示 AMS 湿度正常,橙色表示湿度高,红色表示湿度过高。(湿度计:越低越好。)" msgid "Desiccant status" -msgstr "干燥机状态" +msgstr "干燥剂状态" msgid "" "A desiccant status lower than two bars indicates that desiccant may be " "inactive. Please change the desiccant.(The bars: higher the better.)" -msgstr "" +msgstr "干燥剂状态低于两格表示干燥剂可能不活跃。请更换干燥剂。(杠:越高越好)。" msgid "" "Note: When the lid is open or the desiccant pack is changed, it can take " @@ -1963,18 +1975,18 @@ msgid "" "process. During this time, the indicator may not represent the chamber " "accurately." msgstr "" -"注意: 打开盖子或更换干燥剂包时,可能需要数小时或一夜才能吸收水分。低温环境会" -"减慢这个过程。在此期间,指示器可能无法准确代表腔室。" +"注意:当盖子打开或更换干燥剂包装时,可能需要数小时或一晚才能吸收水分,低温也" +"会减慢这一过程。在此期间,指示器的数值可能并不准确。" msgid "" "Config which AMS slot should be used for a filament used in the print job" msgstr "配置当前打印任务应使用哪个AMS槽位" msgid "Filament used in this print job" -msgstr "当前打印打印使用的料丝" +msgstr "当前打印使用的耗材丝" msgid "AMS slot used for this filament" -msgstr "当前料丝对应的AMS槽位" +msgstr "当前耗材丝对应的AMS槽位" msgid "Click to select AMS slot manually" msgstr "点击以手动选择AMS槽位" @@ -1983,13 +1995,13 @@ msgid "Do not Enable AMS" msgstr "不启用AMS" msgid "Print using materials mounted on the back of the case" -msgstr "使用机箱背后挂载的材料打印" +msgstr "使用安装在机箱背面的材料进行打印" msgid "Print with filaments in ams" -msgstr "使用AMS里的材料打印" +msgstr "采用AMS里的材料打印" msgid "Print with filaments mounted on the back of the chassis" -msgstr "使用机箱背后挂载的材料打印" +msgstr "采用挂载在机箱背部的材料打印" msgid "Filaments replace" msgstr "" @@ -2053,7 +2065,7 @@ msgstr "" "动更新。" msgid "AMS filament backup" -msgstr "" +msgstr "AMS材料备份" msgid "" "AMS will continue to another spool with the same properties of filament " @@ -2312,6 +2324,8 @@ msgid "" "Spiral mode only works when wall loops is 1, support is disabled, top shell " "layers is 0, sparse infill density is 0 and timelapse type is traditional." msgstr "" +"旋转模式只能在外墙层数为1,关闭支撑,顶层层数为0,稀疏填充密度为0,传统延时摄" +"影时有效。" msgid "" "Change these settings automatically? \n" @@ -2365,11 +2379,14 @@ msgid "" "Yes - switch to rectilinear pattern automaticlly\n" "No - reset density to default non 100% value automaticlly" msgstr "" +"切换到直线图案?\n" +"是 - 自动切换到直线图案\n" +"否 - 自动将密度重置为默认的非100%值" msgid "" "While printing by Object, the extruder may collide skirt.\n" "Thus, reset the skirt layer to 1 to avoid that." -msgstr "" +msgstr "逐件打印时,挤出机可能与裙边碰撞。因此将裙边的层数重置为1。" msgid "Auto bed leveling" msgstr "自动热床调平" @@ -2402,7 +2419,7 @@ msgid "Inspecting first layer" msgstr "扫描首层" msgid "Identifying build plate type" -msgstr "识别构建板类型" +msgstr "识别打印板类型" msgid "Calibrating Micro Lidar" msgstr "标定轮廓仪外参" @@ -2456,7 +2473,7 @@ msgid "Serious" msgstr "严重" msgid "Common" -msgstr "" +msgstr "普通" msgid "Update successful." msgstr "更新成功。" @@ -2565,7 +2582,7 @@ msgid "Generating geometry index data" msgstr "正在生成几何索引数据" msgid "Statistics of All Plates" -msgstr "" +msgstr "所有盘切片信息" msgid "Display" msgstr "显示" @@ -2577,7 +2594,7 @@ msgid "Total" msgstr "总计" msgid "Total Time Estimation" -msgstr "" +msgstr "总时间预估" msgid "Total time" msgstr "总时间" @@ -2824,7 +2841,7 @@ msgid "Section View" msgstr "剖面视图" msgid "Assemble Control" -msgstr "" +msgstr "拼装视图控制" msgid "Total Volume:" msgstr "总体积:" @@ -2970,7 +2987,7 @@ msgid "No" msgstr "否" msgid "will be closed before creating a new model. Do you want to continue?" -msgstr "" +msgstr "将会被关闭以创建新模型,是否继续?" msgid "Slice plate" msgstr "切片单盘" @@ -3262,7 +3279,7 @@ msgid "Tutorial" msgstr "教程" msgid "Calibration help" -msgstr "" +msgstr "校准帮助" msgid "More calibrations" msgstr "" @@ -3280,19 +3297,19 @@ msgid "Re&load from Disk" msgstr "" msgid "Reload the plater from disk" -msgstr "" +msgstr "从磁盘重新加载平台" msgid "Export &Toolpaths as OBJ" msgstr "" msgid "Export toolpaths as OBJ" -msgstr "" +msgstr "将工具路径导出为OBJ格式" msgid "Open &Studio" msgstr "" msgid "Open Studio" -msgstr "" +msgstr "打开 Studio" msgid "&Quit" msgstr "" @@ -3312,11 +3329,11 @@ msgstr "" #, c-format, boost-format msgid "A file exists with the same name: %s, do you want to override it." -msgstr "" +msgstr "有一个同名的文件 %s。你想覆盖它吗?" #, c-format, boost-format msgid "A config exists with the same name: %s, do you want to override it." -msgstr "" +msgstr "有一个同名的配置 %s。你想覆盖它吗?" msgid "Overwrite file" msgstr "覆盖文件" @@ -3339,7 +3356,7 @@ msgid "Export result" msgstr "导出结果" msgid "Select profile to load:" -msgstr "" +msgstr "选择要加载的配置:" #, c-format, boost-format msgid "There is %d config imported. (Only non-system and compatible configs)" @@ -3417,7 +3434,7 @@ msgid "Stopped." msgstr "已经停止。" msgid "LAN Connection Failed (Failed to start liveview)" -msgstr "LAN连接失败 (无法启动liveview)" +msgstr "局域网连接失败(无法启动直播)" msgid "" "Virtual Camera Tools is required for this task!\n" @@ -3478,7 +3495,7 @@ msgid "Switch to video files." msgstr "切换到视频文件列表" msgid "Delete selected files from printer." -msgstr "从打印机中输出选中的文件" +msgstr "从打印机中删除选中的文件" msgid "Download" msgstr "下载" @@ -3522,7 +3539,7 @@ msgid "You are going to delete %u files. Are you sure to continue?" msgstr "" msgid "Delete files" -msgstr "" +msgstr "删除文件" #, c-format, boost-format msgid "File '%s' was lost! Please download it again." @@ -3587,10 +3604,10 @@ msgid "0" msgstr "" msgid "Layer: N/A" -msgstr "" +msgstr "层: N/A" msgid "Clear" -msgstr "" +msgstr "清除" msgid "Control" msgstr "控制" @@ -3658,15 +3675,15 @@ msgstr "云切片中..." #, c-format, boost-format msgid "In Cloud Slicing Queue, there are %s tasks ahead." -msgstr "" +msgstr "前面还有%s个任务在云端切片队列中" #, c-format, boost-format msgid "Layer: %s" -msgstr "" +msgstr "层: %s" #, c-format, boost-format msgid "Layer: %d/%d" -msgstr "" +msgstr "层: %d/%d" msgid "Please heat the nozzle to above 170 degree before loading filament." msgstr "请在进料前把喷嘴升温到170℃" @@ -3678,7 +3695,7 @@ msgid "Still load" msgstr "继续进料" msgid "Please select an AMS slot before calibration" -msgstr "请在标定前选择一个AMS槽位" +msgstr "请先选择一个AMS槽位后进行标定" msgid "" "Cannot read filament info: the filament is loaded to the tool head,please " @@ -3791,7 +3808,7 @@ msgid "Open Folder." msgstr "打开目录。" msgid "Safely remove hardware." -msgstr "" +msgstr "安全移除硬件。" #, c-format, boost-format msgid "%1$d Object has custom supports." @@ -3806,7 +3823,7 @@ msgstr[0] "%1$d对象有涂色。" #, c-format, boost-format msgid "%1$d object was loaded as a part of cut object." msgid_plural "%1$d objects were loaded as parts of cut object" -msgstr[0] "" +msgstr[0] "%1$d对象加载为一个切割对象的子部件" msgid "ERROR" msgstr "" @@ -3854,7 +3871,7 @@ msgid "Color painting" msgstr "颜色绘制" msgid "Cut connectors" -msgstr "" +msgstr "切割连接件" msgid "Layers" msgstr "层" @@ -4001,13 +4018,13 @@ msgstr "同步到 AMS 的材料列表将丢弃所有当前配置的材料预设 msgid "" "Already did a synchronization, do you want to sync only changes or resync " "all?" -msgstr "" +msgstr "已经同步过,你希望仅同步改变的材料还是重新同步所有材料?" msgid "Sync" msgstr "同步" msgid "Resync" -msgstr "" +msgstr "重新同步" msgid "There are no compatible filaments, and sync is not performed." msgstr "没有如任何兼容的材料,同步操作未执行。" @@ -4085,13 +4102,13 @@ msgstr "较新的3mf版本" msgid "" "The 3mf's version %s is newer than %s's version %s, Suggest to upgrade your " "software." -msgstr "" +msgstr "该3mf的版本%s比%s的版本%s要新,建议升级你的软件。" msgid "Invalid values found in the 3mf:" -msgstr "" +msgstr "在3mf文件中发现无效值:" msgid "Please correct them in the param tabs" -msgstr "" +msgstr "请在参数页更正它们" msgid "The 3mf is not compatible, load geometry data only!" msgstr "该3mf文件与软件不兼容,将只加载几何数据。" @@ -4161,13 +4178,15 @@ msgid "Save file as:" msgstr "文件另存为:" msgid "Delete object which is a part of cut object" -msgstr "" +msgstr "删除切割对象的一部分" msgid "" "You try to delete an object which is a part of a cut object.\n" "This action will break a cut correspondence.\n" "After that model consistency can't be guaranteed." msgstr "" +"您正尝试删除切割对象的一部分,这将破坏切割对应关系,删除之后,将无法再保证模" +"型的一致性。" msgid "The selected object couldn't be split." msgstr "选中的模型不可分裂。" @@ -4294,7 +4313,7 @@ msgid "The current project has unsaved changes, save it before continue?" msgstr "当前项目包含未保存的修改,是否先保存?" msgid "Remember my choice." -msgstr "" +msgstr "记住我的选择。" msgid "Number of copies:" msgstr "克隆数量:" @@ -4379,6 +4398,8 @@ msgid "" "still want to do this printing, please set this filament's bed temperature " "to non zero." msgstr "" +"热床% d:%s不建议被用于打印%s(%s)材料。如果你依然想打印,请设置耗材对应的热" +"床温度为非零值。" msgid "Switching the language requires application restart.\n" msgstr "切换语言要求重启应用程序。\n" @@ -4441,12 +4462,12 @@ msgid "Units" msgstr "单位" msgid "Zoom to mouse position" -msgstr "" +msgstr "放大到鼠标位置" msgid "" "Zoom in towards the mouse pointer's position in the 3D view, rather than the " "2D window center." -msgstr "" +msgstr "在3D视角放大到鼠标位置,而不是2D窗口的中心。" msgid "Show \"Tip of the day\" notification after start" msgstr "启动后显示“每日小贴士”通知" @@ -4461,7 +4482,7 @@ msgid "If enabled, g-code window will be displayed." msgstr "如果启用,将显示g-code窗口。" msgid "Presets" -msgstr "" +msgstr "预设" msgid "Auto sync user presets(Printer/Filament/Process)" msgstr "同步用户预设(打印机/耗材丝/工艺)" @@ -4470,13 +4491,13 @@ msgid "User Sync" msgstr "用户同步" msgid "Update built-in Presets automatically." -msgstr "" +msgstr "自动更新系统预设" msgid "System Sync" -msgstr "" +msgstr "系统同步" msgid "Clear my choice on the unsaved presets." -msgstr "" +msgstr "清除我对未保存的预置的选择。" msgid "Associate files to OrcaSlicer" msgstr "逆戟鲸文件关联" @@ -4500,26 +4521,26 @@ msgid "If enabled, sets OrcaSlicer as default application to open .step files" msgstr "开启后,将缺省使用逆戟鲸打开.step文件" msgid "Maximum recent projects" -msgstr "" +msgstr "近期项目的最大数量" msgid "Maximum count of recent projects" -msgstr "" +msgstr "近期项目的最大计数" msgid "Clear my choice on the unsaved projects." -msgstr "" +msgstr "清除我对未保存的项目的选择。" msgid "Auto-Backup" msgstr "自动备份" msgid "" "Backup your project periodically for restoring from the occasional crash." -msgstr "" +msgstr "定期备份你的项目,以便从偶尔的崩溃中恢复过来。" msgid "every" msgstr "" msgid "The peroid of backup in seconds." -msgstr "" +msgstr "备份的周期" msgid "Downloads" msgstr "下载" @@ -4573,25 +4594,25 @@ msgid "Dump video" msgstr "下载视频" msgid "Log Level" -msgstr "" +msgstr "日志级别" msgid "fatal" -msgstr "" +msgstr "致命" msgid "error" -msgstr "" +msgstr "错误" msgid "warning" -msgstr "" +msgstr "警告" msgid "info" -msgstr "" +msgstr "信息" msgid "debug" -msgstr "" +msgstr "调试" msgid "trace" -msgstr "" +msgstr "跟踪" msgid "Host Setting" msgstr "" @@ -4636,7 +4657,7 @@ msgid "Click to pick filament color" msgstr "点击设置材料颜色" msgid "Please choose the filament colour" -msgstr "" +msgstr "请选择材料颜色" msgid "Add/Remove presets" msgstr "添加/删除配置" @@ -4657,7 +4678,7 @@ msgid "Add/Remove printers" msgstr "添加/删除打印机" msgid "Same as Global Print Sequence" -msgstr "" +msgstr "跟随全局打印顺序" msgid "Print sequence" msgstr "打印顺序" @@ -4681,16 +4702,16 @@ msgid "Textured PEI Plate" msgstr "纹理PEI热床" msgid "By Layer" -msgstr "" +msgstr "逐层" msgid "By Object" -msgstr "" +msgstr "逐件" msgid "Accept" -msgstr "" +msgstr "接受" msgid "Log Out" -msgstr "" +msgstr "登出" msgid "Slice all plate to obtain time and filament estimation" msgstr "正在切片以获取切片信息和预估打印时间" @@ -4804,7 +4825,7 @@ msgid "Offline" msgstr "离线" msgid "(LAN)" -msgstr "" +msgstr "(局域网)" msgid "My Device" msgstr "我的设备" @@ -4935,17 +4956,19 @@ msgid "Errors" msgstr "错误" msgid "Please check the following:" -msgstr "" +msgstr "请检查以下内容:" msgid "" "The printer type selected when generating G-Code is not consistent with the " "currently selected printer. It is recommended that you use the same printer " "type for slicing." msgstr "" +"生成G代码时选择的打印机类型与当前选择的打印机不一致。建议您使用相同的打印机类" +"型进行切片。" #, c-format, boost-format msgid "%s is not supported by AMS." -msgstr "" +msgstr "%s 不受AMS支持。" msgid "" "There are some unknown filaments in the AMS mappings. Please check whether " @@ -4957,7 +4980,7 @@ msgstr "" msgid "" "Please click the confirm button if you still want to proceed with printing." -msgstr "" +msgstr "如果您仍然想继续打印,请单击“确定”按钮。" msgid "Preparing print job" msgstr "正在准备打印任务" @@ -5036,6 +5059,8 @@ msgid "" "support volume but weaker strength.\n" "We recommend using it with: 0 interface layers, 0 top distance, 2 walls." msgstr "" +"我们增加了一种实验性的风格 \"苗条树\",它的特点是支撑体积较小,但强度较弱。\n" +"因此我们推荐以下参数:接触层数为0,顶部Z距离为0,墙层数为2。" msgid "" "Change these settings automatically? \n" @@ -5051,6 +5076,8 @@ msgid "" "settings: at least 2 interface layers, at least 0.1mm top z distance or " "using support materials on interface." msgstr "" +"对于 \"强壮树 \"和 \"混合树 \"风格,我们推荐以下设置:至少2层界面层,至少0.1" +"毫米的顶部z距离或在界面上使用支撑材料。" msgid "" "When using support material for the support interface, We recommend the " @@ -5058,6 +5085,8 @@ msgid "" "0 top z distance, 0 interface spacing, concentric pattern and disable " "independent support layer height" msgstr "" +"当使用支持界面的支持材料时,我们推荐以下设置:\n" +"0顶层z距离,0接触层间距,同心图案,并且禁用独立支撑层高" msgid "" "When recording timelapse without toolhead, it is recommended to add a " @@ -5065,6 +5094,8 @@ msgid "" "by right-click the empty position of build plate and choose \"Add " "Primitive\"->\"Timelapse Wipe Tower\"." msgstr "" +"在录制无工具头延时摄影视频时,建议添加“延时摄影擦料塔”\n" +"右键单击打印板的空白位置,选择“添加标准模型”->“延时摄影擦料塔”。" msgid "Line width" msgstr "线宽" @@ -5108,7 +5139,7 @@ msgid "Acceleration" msgstr "加速度" msgid "Jerk(XY)" -msgstr "抖动(XY)" +msgstr "抖动(XY轴)" msgid "Raft" msgstr "筏层" @@ -5441,7 +5472,7 @@ msgid "Capabilities" msgstr "能力" msgid "Select presets to compare" -msgstr "" +msgstr "选择要比较的预设" msgid "Show all presets (including incompatible)" msgstr "显示所有预设(包括不兼容的)" @@ -5537,7 +5568,7 @@ msgstr "在两个耗材丝间切换所需的冲刷量(mm³)" #, c-format, boost-format msgid "Suggestion: Flushing Volume in range [%d, %d]" -msgstr "" +msgstr "建议:冲刷量设置在[%d, %d]范围内" #, c-format, boost-format msgid "The multiplier should be in range [%.2f, %.2f]." @@ -5574,7 +5605,7 @@ msgid "Objects list" msgstr "对象列表" msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" -msgstr "" +msgstr "从STL/STEP/3MF/OBJ/AMF文件中导入几何数据" msgid "⌘+Shift+G" msgstr "" @@ -5843,7 +5874,7 @@ msgid "Don't remind me of this version again" msgstr "此版本不再提示" msgid "Done" -msgstr "" +msgstr "完成" msgid "LAN Connection Failed (Sending print file)" msgstr "LAN连接失败 (发送打印文件)" @@ -6322,6 +6353,9 @@ msgid "" "name and password into the URL in the following format: https://username:" "password@your-octopi-address/" msgstr "" +"Slic3r可以将G-code文件上传到打印机主机。此字段应包含打印机主机实例的主机名、" +"IP地址或URL。启用基本身份验证的Print host可以通过将用户名和密码放入以下格式的" +"URL中来访问:https://username:password@your-octopi-address/" msgid "Device UI" msgstr "设备用户界面" @@ -6337,6 +6371,8 @@ msgid "" "Slic3r can upload G-code files to a printer host. This field should contain " "the API Key or the password required for authentication." msgstr "" +"Slic3r可以将G-code文件上传到打印机主机。此字段应包含用于身份验证的API密钥或密" +"码。" msgid "Name of the printer" msgstr "打印机名称" @@ -6349,6 +6385,8 @@ msgid "" "in crt/pem format. If left blank, the default OS CA certificate repository " "is used." msgstr "" +"可以为HTTPS OctoPrint连接指定自定义CA证书文件,格式为crt/pem。如果留空,则使" +"用默认的操作系统CA证书存储库。" msgid "User" msgstr "用户名" @@ -6357,19 +6395,21 @@ msgid "Password" msgstr "密码" msgid "Ignore HTTPS certificate revocation checks" -msgstr "" +msgstr "忽略HTTPS证书吊销检查" msgid "" "Ignore HTTPS certificate revocation checks in case of missing or offline " "distribution points. One may want to enable this option for self signed " "certificates if connection fails." msgstr "" +"在缺少或离线分发点的情况下忽略HTTPS证书吊销检查。如果连接失败,可以启用此选项" +"来处理自签名证书。" msgid "Names of presets related to the physical printer" -msgstr "" +msgstr "与物理打印机相关的预设名称" msgid "Authorization Type" -msgstr "" +msgstr "授权类型" msgid "API key" msgstr "" @@ -6540,7 +6580,7 @@ msgid "" msgstr "稍微减小这个数值(比如0.9)可以减小桥接的材料量,来改善下垂。" msgid "Top surface flow ratio" -msgstr "顶面流量" +msgstr "顶部表面流量比例" msgid "" "This factor affects the amount of material for top solid infill. You can " @@ -6548,7 +6588,7 @@ msgid "" msgstr "稍微减小这个数值(比如0.97)可以来改善顶面的光滑程度。" msgid "Bottom surface flow ratio" -msgstr "首层流量" +msgstr "底部表面流量比例" msgid "This factor affects the amount of material for bottom solid infill" msgstr "首层流量调整系数,默认为1.0" @@ -6570,7 +6610,7 @@ msgid "" msgstr "顶面只使用单层墙,从而更多的空间能够使用顶部填充图案" msgid "Only one wall on first layer" -msgstr "首层单层墙" +msgstr "首层仅单层墙" msgid "" "Use only one wall on first layer, to give more space to the bottom infill " @@ -6608,6 +6648,7 @@ msgid "" "This controls the generation of the brim at outer and/or inner side of " "models. Auto means the brim width is analysed and calculated automatically." msgstr "" +"该参数控制在模型的外侧和/或内侧生成brim。自动是指自动分析和计算边框的宽度。" msgid "outer_only" msgstr "仅外侧" @@ -6630,7 +6671,7 @@ msgid "Compatible machine" msgstr "兼容的机器" msgid "upward compatible machine" -msgstr "" +msgstr "向上兼容的机器" msgid "Compatible machine condition" msgstr "兼容的机器的条件" @@ -7187,13 +7228,13 @@ msgid "" msgstr "首层加速度。使用较低值可以改善和构建板的粘接。" msgid "Enable accel_to_decel" -msgstr "启用制动速度" +msgstr "" msgid "Klipper's max_accel_to_decel will be adjusted automatically" msgstr "" msgid "accel_to_decel" -msgstr "制动速度" +msgstr "" #, c-format, boost-format msgid "Klipper's max_accel_to_decel will be adjusted to this % of acceleration" @@ -7290,10 +7331,10 @@ msgid "None" msgstr "无" msgid "Contour" -msgstr "" +msgstr "轮廓" msgid "Contour and hole" -msgstr "" +msgstr "轮廓和孔" msgid "All walls" msgstr "所有墙" @@ -7706,12 +7747,12 @@ msgid "Diameter of nozzle" msgstr "喷嘴直径" msgid "Host Type" -msgstr "" +msgstr "主机类型" msgid "" "Slic3r can upload G-code files to a printer host. This field must contain " "the kind of the host." -msgstr "" +msgstr "Slic3r可以将G-code文件上传到打印机主机。此字段必须包含主机类型。" msgid "Nozzle volume" msgstr "喷嘴内腔体积" @@ -7720,10 +7761,10 @@ msgid "Volume of nozzle between the cutter and the end of nozzle" msgstr "从切刀位置到喷嘴尖端的内腔体积" msgid "Start end points" -msgstr "" +msgstr "起始终止点" msgid "The start and end points which is from cutter area to garbage can." -msgstr "" +msgstr "从切割区域到垃圾桶的起始和结束点。" msgid "Reduce infill retraction" msgstr "减小填充回抽" @@ -7932,7 +7973,7 @@ msgid "" msgstr "" msgid "Seam gap" -msgstr "接缝留空" +msgstr "接缝间隔" msgid "" "In order to reduce the visibility of the seam in a closed loop extrusion, " @@ -8224,7 +8265,7 @@ msgstr "" "图案为同心。" msgid "Rectilinear Interlaced" -msgstr "" +msgstr "交叠的直线" msgid "Base pattern spacing" msgstr "主体图案线距" @@ -8270,6 +8311,8 @@ msgid "" "support customizing z-gap and save print time.This option will be invalid " "when the prime tower is enabled." msgstr "" +"支撑层使用与对象层独立的层高。这是为了支持自定义z-gap并且节省打印时间。当擦料" +"塔被启用时,这个选项将无效。" msgid "Threshold angle" msgstr "阈值角度" @@ -8353,6 +8396,8 @@ msgid "" "layer for more than this threshold. Too low bed temperature of other layer " "may cause the model broken free from build plate" msgstr "" +"不建议其它层热床温度比首层的热床温度低于这个值。太低的其它层热床温度可能导致" +"打印过程中模型从打印板脱落。" msgid "Detect thin wall" msgstr "检查薄壁" @@ -8428,6 +8473,8 @@ msgid "" "stabilize the chamber pressure inside the nozzle, in order to avoid " "appearance defects when printing objects." msgstr "" +"擦拭塔可以用来清理喷嘴上的残留料和让喷嘴内部的腔压达到稳定状态,以避免打印物" +"体时出现外观瑕疵。" msgid "Purging volumes" msgstr "冲刷体积" @@ -8621,20 +8668,20 @@ msgstr "" "快打印速度。否则使用默认的直线填充。" msgid "invalid value " -msgstr "" +msgstr "非法的值 " #, c-format, boost-format msgid " doesn't work at 100%% density " -msgstr "" +msgstr " 填充图案不支持 100%% 密度" msgid "Invalid value when spiral vase mode is enabled: " -msgstr "" +msgstr "旋转花瓶模式下非法的值" msgid "too large line width " -msgstr "" +msgstr "线宽过大" msgid " not in range " -msgstr "" +msgstr " 不在合理的区间" msgid "Export 3MF" msgstr "导出3MF" @@ -8649,16 +8696,16 @@ msgid "Export slicing data to a folder." msgstr "导出切片数据到目录" msgid "Load slicing data" -msgstr "" +msgstr "导入切片数据" msgid "Load cached slicing data from directory" -msgstr "" +msgstr "从目录导入缓存的切片数据" msgid "Slice" msgstr "切片" msgid "Slice the plates: 0-all plates, i-plate i, others-invalid" -msgstr "" +msgstr "切片平台:0-所有平台,i-第i个平台,其他-无效" msgid "Show command help." msgstr "显示命令行帮助。" @@ -8667,31 +8714,31 @@ msgid "UpToDate" msgstr "" msgid "Update the configs values of 3mf to latest." -msgstr "" +msgstr "将3mf的配置值更新为最新值。" msgid "mtcpp" msgstr "" msgid "max triangle count per plate for slicing." -msgstr "" +msgstr "切片时每个盘的最大三角形数。" msgid "mstpp" msgstr "" msgid "max slicing time per plate in seconds." -msgstr "" +msgstr "每个盘的最大切片时间(秒)。" msgid "No check" -msgstr "" +msgstr "不要检查" msgid "Do not run any validity checks, such as gcode path conflicts check." -msgstr "" +msgstr "不要运行任何有效性检查,如gcode路径冲突检查。" msgid "Normative check" -msgstr "" +msgstr "规范性检查" msgid "Check the normative items." -msgstr "" +msgstr "检查规范性项目。" msgid "Output Model Info" msgstr "输出模型信息" @@ -8706,10 +8753,10 @@ msgid "Export settings to a file." msgstr "导出配置到文件。" msgid "Send progress to pipe" -msgstr "" +msgstr "将进度发送到管道" msgid "Send progress to pipe." -msgstr "" +msgstr "将进度发送到管道。" msgid "Arrange Options" msgstr "摆放选项" @@ -8742,10 +8789,10 @@ msgid "Load filament settings from the specified file list" msgstr "从指定文件加载耗材丝设置" msgid "Skip Objects" -msgstr "" +msgstr "零件跳过" msgid "Skip some objects in this print" -msgstr "" +msgstr "打印过程中跳过一些零件" msgid "Data directory" msgstr "" @@ -8785,7 +8832,7 @@ msgid "Generating infill toolpath" msgstr "正在生成填充走线" msgid "Detect overhangs for auto-lift" -msgstr "" +msgstr "探测悬空区域为自动抬升做准备" msgid "Generating support" msgstr "正在生成支撑" @@ -8794,19 +8841,19 @@ msgid "Checking support necessity" msgstr "正在检查支撑必要性" msgid "floating regions" -msgstr "" +msgstr "浮空区域" msgid "floating cantilever" -msgstr "" +msgstr "浮空悬臂" msgid "large overhangs" -msgstr "" +msgstr "大面积悬空" #, c-format, boost-format msgid "" "It seems object %s has %s. Please re-orient the object or enable support " "generation." -msgstr "" +msgstr "似乎对象%s有%s。请重新调整对象的方向或启用支持生成。" msgid "Optimizing toolpath" msgstr "正在优化走线" @@ -8824,12 +8871,15 @@ msgid "" "No layers were detected. You might want to repair your STL file(s) or check " "their size or thickness and retry.\n" msgstr "" +"没有检测到层。您可能需要修复STL文件,或检查模型尺寸、厚度等,之后再重试。\n" msgid "" "An object's XY size compensation will not be used because it is also color-" "painted.\n" "XY Size compensation can not be combined with color-painting." msgstr "" +"对象的XY尺寸补偿不会生效,因为在此对象上做过涂色操作。\n" +"XY尺寸补偿不能与涂色功能一起使用。" #, c-format, boost-format msgid "Support: generate toolpath at layer %d" @@ -8875,25 +8925,25 @@ msgid "Extruder type" msgstr "挤出机类型" msgid "PA Tower" -msgstr "PA塔" +msgstr "" msgid "PA Line" -msgstr "PA划线" +msgstr "" msgid "Method" -msgstr "测试方法" +msgstr "" msgid "Start PA: " -msgstr "起始PA值" +msgstr "" msgid "End PA: " -msgstr "结束PA值" +msgstr "" msgid "PA step: " -msgstr "PA步距" +msgstr "" msgid "Print numbers" -msgstr "打印数字" +msgstr "" msgid "" "Please input valid values:\n" @@ -8903,7 +8953,7 @@ msgid "" msgstr "" msgid "Temperature calibration" -msgstr "温度校准" +msgstr "" msgid "PLA" msgstr "" diff --git a/resources/i18n/zh_cn/OrcaSlicer.mo b/resources/i18n/zh_cn/OrcaSlicer.mo index 91965b514cdabbe02290e1901e4b4e266d5ffc78..e3660ffb1789f5a12d4e41ac72747a5040c7f819 100644 GIT binary patch delta 72138 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 delta 51333 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 NHp!`{MoxCZ{ttACXBz+j diff --git a/src/libslic3r/Utils.hpp b/src/libslic3r/Utils.hpp index f105983e60..c618786ca3 100644 --- a/src/libslic3r/Utils.hpp +++ b/src/libslic3r/Utils.hpp @@ -10,6 +10,9 @@ #include #include #include +#include +#include "boost/date_time/posix_time/ptime.hpp" + #include #include "libslic3r.h" @@ -548,6 +551,21 @@ inline std::string get_bbl_monitor_time_dhm(float time_in_secs) return buffer; } +inline std::string get_bbl_monitor_end_time_dhm(float time_in_secs) +{ + if (time_in_secs == 0.0f) + return {}; + + std::stringstream stream; + boost::posix_time::ptime now = boost::posix_time::second_clock::local_time(); + auto endTime = now + boost::posix_time::seconds(static_cast(time_in_secs)); + auto facet = new boost::posix_time::time_facet("%H:%M");//%Y-%m-%d %H:%M:%S + stream.imbue(std::locale(std::locale::classic(), facet)); + stream << endTime; + + return stream.str(); +} + inline std::string get_bbl_remain_time_dhms(float time_in_secs) { int days = (int) (time_in_secs / 86400.0f); diff --git a/src/slic3r/GUI/StatusPanel.cpp b/src/slic3r/GUI/StatusPanel.cpp index 73a61ebf16..02520cd72f 100644 --- a/src/slic3r/GUI/StatusPanel.cpp +++ b/src/slic3r/GUI/StatusPanel.cpp @@ -500,6 +500,11 @@ wxBoxSizer *StatusBasePanel::create_project_task_page(wxWindow *parent) m_staticText_progress_left->SetFont(wxFont(12, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxT("HarmonyOS Sans SC"))); m_staticText_progress_left->SetForegroundColour(wxColour(146, 146, 146)); + m_staticText_progress_end = new wxStaticText(penel_text, wxID_ANY, NA_STR, wxDefaultPosition, wxDefaultSize, 0); + m_staticText_progress_end->Wrap(-1); + m_staticText_progress_end->SetFont( + wxFont(12, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxT("HarmonyOS Sans SC"))); + m_staticText_progress_end->SetForegroundColour(wxColour(146, 146, 146)); //fgSizer_task->Add(bSizer_buttons, 0, wxEXPAND, 0); //fgSizer_task->Add(0, 0, 0, wxEXPAND, FromDIP(5)); @@ -521,6 +526,8 @@ wxBoxSizer *StatusBasePanel::create_project_task_page(wxWindow *parent) bSizer_text->Add(m_staticText_layers, 0, wxALIGN_CENTER | wxALL, 0); bSizer_text->Add(0, 0, 0, wxLEFT, FromDIP(20)); bSizer_text->Add(m_staticText_progress_left, 0, wxALIGN_CENTER | wxALL, 0); + bSizer_text->Add(0, 0, 0, wxLEFT, FromDIP(8)); + bSizer_text->Add(m_staticText_progress_end, 0, wxALIGN_CENTER | wxALL, 0); penel_text->SetMaxSize(wxSize(FromDIP(600), -1)); penel_text->SetSizer(bSizer_text); @@ -2226,6 +2233,19 @@ void StatusPanel::update_left_time(int mc_left_time) // update current subtask progress m_staticText_progress_left->SetLabelText(left_time_text); + + //Update end time + try { + left_time = get_bbl_monitor_end_time_dhm(mc_left_time); + } catch (...) { + ; + } + if (!left_time.empty()) + left_time_text = wxString::Format("%s", left_time); + else + left_time_text = NA_STR; + + m_staticText_progress_end->SetLabelText(left_time_text); } void StatusPanel::update_basic_print_data(bool def) @@ -2304,6 +2324,7 @@ void StatusPanel::update_subtask(MachineObject *obj) m_staticText_progress_percent->SetLabelText(NA_STR); m_staticText_progress_percent_icon->SetLabelText(wxEmptyString); m_staticText_progress_left->SetLabel(NA_STR); + m_staticText_progress_end->SetLabel(NA_STR); m_staticText_layers->SetLabelText(wxString::Format(_L("Layer: %s"), NA_STR)); wxString subtask_text = wxString::Format("%s", GUI::from_u8(obj->subtask_name)); m_staticText_subtask_value->SetLabelText(subtask_text); @@ -2421,6 +2442,7 @@ void StatusPanel::reset_printing_values() update_basic_print_data(false); m_printing_stage_value->SetLabelText(""); m_staticText_progress_left->SetLabelText(NA_STR); + m_staticText_progress_end->SetLabel(NA_STR); m_staticText_layers->SetLabelText(wxString::Format(_L("Layer: %s"), NA_STR)); m_staticText_progress_percent->SetLabelText(NA_STR); m_staticText_progress_percent_icon->SetLabelText(wxEmptyString); diff --git a/src/slic3r/GUI/StatusPanel.hpp b/src/slic3r/GUI/StatusPanel.hpp index 3bdcaa7f8a..4208bc2b32 100644 --- a/src/slic3r/GUI/StatusPanel.hpp +++ b/src/slic3r/GUI/StatusPanel.hpp @@ -138,6 +138,7 @@ protected: wxStaticText * m_staticText_progress_percent; wxStaticText * m_staticText_progress_percent_icon; wxStaticText * m_staticText_progress_left; + wxStaticText * m_staticText_progress_end; wxStaticText * m_staticText_layers; Button * m_button_report; ScalableButton *m_button_pause_resume;