番外篇客户端开发(Electron)无源码如何做汉化

Posted 前端小鑫同学

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了番外篇客户端开发(Electron)无源码如何做汉化相关的知识,希望对你有一定的参考价值。


Dear,大家好,我是“前端小鑫同学”,长期从事前端开发,安卓开发,热衷技术,在编程路上越走越远~


背景说明:

     最近在看Electron的开发也在写点笔记,期间下载一些依赖的时候总是网络不给力,不科学的方式上网就是不好使,现在的一些上网小工具的客户端就通常会采用Electron来做开发,如果你遇到一款体验效果还不错但是界面是全英文的就莫名的。。。,今天来尝试将别的开发的Electron应用做一次汉化吧!

如何汉化?

     因为我们没有客户端软件的源码,所以我们就需要将被汉化的客户端进行一次反编译,因为我们只是汉化所以不涉及到功能的使用,也不需要将被压缩的代码进行还原,只要找到需要替换的关键字进行替换就可以,替换完后再进行二次打包就完成了整体的工作,将我们二次打包的内容替换到原客户端对应的文件(注意备份)即可。【番外篇】客户端开发(Electron)无源码如何做汉化_客户端

如何解包?

  • 那我们需要解开哪个包呢?总不能一个一个去试吧?下图是在网上可以搜索到的汉化包的使用流程,需要我们替换名为app.asar的文件。那好吧,我们就把这个文件解开来看看。

【番外篇】客户端开发(Electron)无源码如何做汉化_前端开发_02

  • 第一步:​将app.asar拷贝到一个新建的空白目录;
  • 第二步:​我们需要使用到​​asar​​​的一个​​Node​​包,我们这里就不用再进行安装了使用npx执行运行即可;
  • 解包命令:​​npx asar extract ./app.asar ./output​

【番外篇】客户端开发(Electron)无源码如何做汉化_Electron_03

  • 下图是我们解压后得到的目录:

【番外篇】客户端开发(Electron)无源码如何做汉化_客户端_04

关键字替换:

  • 被选中做今天汉化的软件是这一款,因为单词不多,都是一些通用名称,所以作者并没有考虑要使用中文。

【番外篇】客户端开发(Electron)无源码如何做汉化_解包_05

  • 第一步:​我们还是通过使用​​uTools​​里面的文字识别插件来帮助我们提取页面的关键字,这里我们先把左侧的菜单做一次汉化,我们就简单的列举一下:
  • General
  • Proxies
  • Profiles
  • Logs
  • Connections
  • Settings
  • 第二步:​这一步的操作就简单很多了,我们只需要将关键字进行替换就可以了,那就使用我们的必备技能(CV大法)吧,因为毕竟没有源码通过脚本还是不太方便。

如何二次打包?

  • 通过执行​​asar​​​的命令来进行打包:​​npx asar pack ./output ./app1.asar​​,将打包后的内容按如何解包那一节的方法操作即可,下图就是我们汉化完的菜单:

【番外篇】客户端开发(Electron)无源码如何做汉化_前端_06

总结:

     此次番外篇我们只是简单的介绍了无源码汉化的大致流程和如何对Electron打包后的产品中的​​app.asar​​文件进行解包和二次打包,不涉及源码逻辑更改和源码还原,也没有遇到加密等问题。网上也能找到此客户端的汉化包,但是我们作为技术人也要了解怎么实现。


欢迎关注我的公众号“前端小鑫同学”,原创技术文章第一时间推送。

以上是关于番外篇客户端开发(Electron)无源码如何做汉化的主要内容,如果未能解决你的问题,请参考以下文章

我要写整个中文互联网界最牛逼的JVM系列教程 | 番外篇:教你如何在自己的电脑上去安装一些专门解读字节码文件的工具

秒杀系统番外篇 | 阿里开源MySQL中间件Canal快速入门

Unity3D开发《我的世界》之七番外篇

Java微信公众平台开发(十四)番外篇--微信web开发者工具使用

Mosquitto搭建Android推送服务番外篇一:各种报错解决

重学springboot系列番外篇之RestTemplate