热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

3D打印切片软件cura的二次开发(2)(界面分析与汉化)(修改版增加图片)

在上次把CUR软件从github网站clone下来并在windows8系统,python2.7下调通以后,cura界面是完全可以运行了。但是存在几点问

在上次把CUR软件从github网站clone下来并在windows8系统,python2.7下调通以后,cura界面是完全可以运行了。

但是存在几点问题:第一,界面为英文界面;

                                第二,项目文件很多,分类识别也是很大工作量;


基于上边两个问题,开始今天的讲解;


首先解决第二次问题,在这里我会为大家讲解一下重要的几个文件;

我先说两个位置,第一位置是你现在电脑用户的位置:


我是这个,可能你的跟我不一样,但是一定会有.cura\dev这个文件夹。在这个文件夹下边的这三个文件你不一定全有,这是cura的一些配置文件,当然你也可以全部删除掉,重新启动你的cura,就会再次看到这几个文件。

说完第一个位置再来看第二个位置:


这个位置是你把CURA界面源码clone下来的位置,在这个下边有两个重要的文件及文件夹,已经用箭头标出。其实经过第一课的同学肯定对cura.py不陌生,这里我们主要去gui文件夹下去看看。


gui负责的是cura的大部分界面布局,但是这里只说是大体上的布局,因为cura界面的具体布局其实并也不在这个gui文件夹里,当然有些还是有的。上图:



其实这些.py文件看字面意思也知道是什么文件,还有一个重要文件是在\Cura\util下的profile.py文件,这个文件里写好了所有界面的哪些初始值;

到此其实是已经把cura界面的整个,哦,差不多多半个界面代码位置说了,下一步就是自己打开代码去读了。对了,在运行时你会发现在cura图形界面中根本不能出现中文,一有中文就给你报错,针对这个问题,我也是费了很长时间才破解,那就是在你需要中文的那个界面源码的第一行写上:#coding=GBK  



现在说一说第二个问题,汉化的问题;

同样的,汉化软件的方法我就不说了,我也是第一次搞,不过这里我还是带大家看两个位置:

第一个位置,上图:


看见没,如果你第一次用你cura的话都没有zh这个文件夹的,这个文件夹就是负责把界面上的所有英文置换成汉字。那个en文件夹就是cura默认的启用文件夹,不用说大家也知道,en就表示是english,我英文不好,好像没有拼错吧?那么问题来了,这个zh文件夹是哪里来的呢?实话说吧,这个不是我自己写的,是我偷来的,哦,不对,是复制来的。因为我现在做的这版cura是15.04版本的,我电脑上已经安装了这个版本汉化好的cura了,所以我直接在我安装的cura安装路径下找到汉化包直接搞过来,运行以后完美汉化。老规矩上图:


如果你说你也已经把这个zh文件夹找到了,并放在了合适的位置,但是运行后发现怎么还是英文?呵呵,这么做肯定还是不够的嘛,还得相应的修改下代码,这里需要修改代码的地方:


打开resources.py,修改代码如下:                   


好的,修改好以后,重新启动你的cura,怎么样?是不是变成中文了?

当然你会发现还有一些没有汉化过来对不对?不用急,我们进行下一步工作,继续汉化;

其实进行到这里我们就知道其实汉化也就是调取了我们资源文件夹里边的汉化包,但是汉化具体是怎么工作的?里边是什么文件?我们进一步进行分析;

我们以zh这个文件夹为例来讲解吧,好吧,还是上图:


打到底你会发现就只有这两个文件夹,没错,就是这两个文件在汉化;这里你先停一下百度一下.po和.mo的差别,怎么说吧.mo是.po编译过的执行文件,哦,这个.po你可用记事本或是notepad++打开来看也可以进行编辑(要汉化工作就在这里),一会我会分析,那么我们用什么软件来编译.po文件呢?问的好,我们用 poedit 软件来让.po文件生成.mo文件。好了,说了这么多我们到里边看看.po文件怎么写?


好了,到现在你是不是觉得汉化也就不这回事?so easy!哈哈,其实还有一个问题,那就是源码中怎么指定这个字符串要汉化的?好吧,看样子还的回到源码中;

这里以mainWindow.py为例给大家讲吧,为什么?因为这家伙需要汉化的比较多,所以我们就拿它开刀,枪打出头鸟么。哈哈,扯远了哈,言归正传;


为什么我会指定这三个呢?呵呵,如果你真正做了你就知道了。源码在这里前两个是汉化不了的,我这里是改过以后的,所以跟我这样的话就可以汉化了!什么?要汉化的图?好吧,老规矩,上图:


这三个汉化的分别就是:基本、高级和插件;


好了,今天就讲到这里吧。然后再研究研究其他的,给大家贴出来。如果这里有什么不对的,也希望大家能够给指正出来,谢谢。





推荐阅读
  • window下的python安装插件,Go语言社区,Golang程序员人脉社 ... [详细]
  • 利用python爬取豆瓣电影Top250的相关信息,包括电影详情链接,图片链接,影片中文名,影片外国名,评分,评价数,概况,导演,主演,年份,地区,类别这12项内容,然后将爬取的信息写入Exce ... [详细]
  • 解决Only fullscreen opaque activities can request orientation错误的方法
    本文介绍了在使用PictureSelectorLight第三方框架时遇到的Only fullscreen opaque activities can request orientation错误,并提供了一种有效的解决方案。 ... [详细]
  • Halcon之图像梯度、图像边缘、USM锐化
    图像梯度、图像边缘、USM锐化图像梯度、图像边缘、USM锐化图像梯度、图像边缘、USM锐化图像卷积:1.模糊2.梯度3.边缘4.锐化1.视频教程:B站、 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 命令模式是一种行为设计模式,它将请求封装成一个独立的对象,从而允许你参数化不同的请求、队列请求或者记录请求日志。本文将详细介绍命令模式的基本概念、组件及其在实际场景中的应用。 ... [详细]
  • 利用REM实现移动端布局的高效适配技巧
    在移动设备上实现高效布局适配时,使用rem单位已成为一种流行且有效的技术。本文将分享过去一年中使用rem进行布局适配的经验和心得。rem作为一种相对单位,能够根据根元素的字体大小动态调整,从而确保不同屏幕尺寸下的布局一致性。通过合理设置根元素的字体大小,开发者可以轻松实现响应式设计,提高用户体验。此外,文章还将探讨一些常见的问题和解决方案,帮助开发者更好地掌握这一技术。 ... [详细]
  • Git命令基础应用指南
    本指南详细介绍了Git命令的基础应用,包括如何使用`git clone`从远程服务器克隆仓库(例如:`git clone [url/path/repository]`)以及如何克隆本地仓库(例如:`git clone [local/path/repository]`)。此外,还提供了常见的Git操作技巧,帮助开发者高效管理代码版本。 ... [详细]
  • 本文详细解析了使用C++实现的键盘输入记录程序的源代码,该程序在Windows应用程序开发中具有很高的实用价值。键盘记录功能不仅在远程控制软件中广泛应用,还为开发者提供了强大的调试和监控工具。通过具体实例,本文深入探讨了C++键盘记录程序的设计与实现,适合需要相关技术的开发者参考。 ... [详细]
  • Python 程序转换为 EXE 文件:详细解析 .py 脚本打包成独立可执行文件的方法与技巧
    在开发了几个简单的爬虫 Python 程序后,我决定将其封装成独立的可执行文件以便于分发和使用。为了实现这一目标,首先需要解决的是如何将 Python 脚本转换为 EXE 文件。在这个过程中,我选择了 Qt 作为 GUI 框架,因为之前对此并不熟悉,希望通过这个项目进一步学习和掌握 Qt 的基本用法。本文将详细介绍从 .py 脚本到 EXE 文件的整个过程,包括所需工具、具体步骤以及常见问题的解决方案。 ... [详细]
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • JComponentJLabel的setBorder前言用例2205262241前言setBorder(Border边框)实现自JComponentjava.awt.Insets ... [详细]
  • Cisco OSI 软件更新指南:详细步骤与最佳实践
    Cisco OSI软件更新指南提供了详细的步骤和最佳实践,帮助用户高效、安全地完成软件升级。本文不仅涵盖了更新前的准备工作,还详细介绍了更新过程中的关键步骤和注意事项,确保系统稳定性和安全性。此外,还提供了故障排除和验证方法,以确保更新后的系统运行正常。 ... [详细]
  • 本文探讨了如何利用Java代码获取当前本地操作系统中正在运行的进程列表及其详细信息。通过引入必要的包和类,开发者可以轻松地实现这一功能,为系统监控和管理提供有力支持。示例代码展示了具体实现方法,适用于需要了解系统进程状态的开发人员。 ... [详细]
  • QT框架中事件循环机制及事件分发类详解
    在QT框架中,QCoreApplication类作为事件循环的核心组件,为应用程序提供了基础的事件处理机制。该类继承自QObject,负责管理和调度各种事件,确保程序能够响应用户操作和其他系统事件。通过事件循环,QCoreApplication实现了高效的事件分发和处理,使得应用程序能够保持流畅的运行状态。此外,QCoreApplication还提供了多种方法和信号槽机制,方便开发者进行事件的定制和扩展。 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有