EdgeRouter全版本汉化工具

看到不少EdgeRouter的汉化模板,觉得太局限了,都是拿某个版本的模板改,然而固件一更新就出问题。
换个思路,抓取这些模板的标签,搞个字典直接替换就不受版本限制了,最多新版本出现的新词汇没得翻译,需要在字典里添加,也就是只剩下字典维护的工作,一般人都能做吧。
so,顺手写个替换脚本,外加一个初始字典,尝试另一个新路子。自已测试过,效果还不错。

小Q截图-20190502113405.png

使用方法:
下载翻译工具,一个脚本程序,再下载字典,都解压到同个目录下。进入到这个目录,执行:

sudo ./er-en2zh make

程序会把原来的备份,再从备份按字典一个个翻译存到新目录。字典改动或者固件升级,再执行一次就可以了。
翻译完后,输入:

sudo ./er-en2zh zh

几秒后去刷新浏览器就是中文界面了。重回原版的话输入:

sudo ./er-en2zh en

一样是几秒后刷新就可以,根本不需要重启路由器!!!

这种方法最大的特点:
1, 没有型号、版本依赖。升级固件后再运行一次就可以了,大不了新词汇找不到还是E文而已。
2, 安全。也就是一个简单的脚本,谁都能打开来看,不象其它编译的程序或是别人弄好的模板,要担心有没夹带私货。
3, 还是安全。原理只是替换E文标签,不改变原有的结构功能,升级固件什么的都不影响。
4, 切换语言无须重启。只需要一个命令,二三秒时间再刷新下浏览器就可以了。
5, 字典开放,任何人都可以参与维护,说不定UBNT到时候做i18n时会用到这个字典。

er-en2zh-0.99.ER.noarch.tar.gz (1.16 KB)

er-dict-190501.tar.gz (12.5 KB)

1赞

上面的字典er-dict-190501.tar.gz是diff其它人的模板输出的结果,界面完成度有90%以上吧,但还需要在实际使用中发现翻译不完全的地方不断补充。
由于本人并不用中文版,所以字典不会再更新,希望有在用的同学更新字典后把最新版在下面跟贴共享出来。在此也感谢前人的翻译贡献。
程序是觉得这个方法更好随手写的,试过没问题,但是有错漏的地方欢迎高手补充完善更新,也一并共享出来。

造福于民啊 大神 这个好啊 那个处理手法 有点像 gitlab的汉化

还是不太一样吧,gitlab汉化一般是用patch,还是有版本问题,不同版本要使用不同的patch文件,而且patch工具ER系统本身不自带,安装的话还有一大堆依赖。这个工具是直接用sed替换,sed这东东最小化安装都会有,会比较方便。

能不能出一个详细的教程啊,小白还是不会用

:dizzy: 一楼还不够详细啊?
二个附件,下载,同时传到路由任意目录下。怎么传文件,自已GG,太多方法。打开CLI

cd 你传的那个目录
tar zxvf er-*

然后就那三个命令,第一个翻译,第二个启用,第三个恢复。

这公司真的神奇,国内卖了那么久连个中文界面都懒的支持

定位不同吧,Unifi系列的,应该是属于家用序列,有中文版,Edge系列的,据说是运营商级别的,专业用途,没中文没关系,很多还要命令行操作。只是没想到中国人不差钱,也有某些“特别”的需求,卖得这么火。市场推动技术,中文化迟早的事。

楼主
我依葫芦画瓢 第一步 上传到 路由器 第二步 运行了 tar zxvf er-en2zh-0.99.ER.noarch.tar.gz 第三步运行了 sudo ./er-en2zh make 第三步运行 sudo ./er-en2zh zh 然后显示大概意思 正在转换中文 http重启 然后就没有然后了 浏览器打开管理地址也打不开了 必须断电重启才行 可是重启完还是英文 系统版本是1.10.9 请问是什么问题

正常的命令和输出应该这样:

~$ sudo ./er-en2zh make
Old Chinese templates exist, deleting... ok
Copy original templates... ok
Reading dictionary... ok
Translating... ok
Run "sudo ./er-en2zh zh" will change WebUI to Chinese, "sudo ./er-en2zh en" will restore to original version.
~$ sudo ./er-en2zh zh
WebUI change to Chinese. HTTP daemon restarting... ok

各步骤的结果应当都是ok。程序对各种错误的捕获应该已经比较充分,中间有问题会自动停止,不会对原有系统和功能产生影响。

看你描述的情况,先确认是不是连同字典文件一起上传了。能到“Translating…”就是模板目录是设置好了,字典也能读取,最后应该出现“Translating… ok”并提示语言切换命令;如果翻译过程有出错信息,最多翻译不完全,或者仍是E文界面,看你描述的情况还是E文可能是这一步的问题,字典没找到或是读不了,不过应该在读字典的时候就提示错误并停止才对。最后执行sudo ./er-en2zh zh,应该出现结果“WebUI … ok”,没有ok就意味着中间出错,看描述打不开地址有可能是系统gui启动程序没找到。

能否说下路由器是什么型号?我自已的ER4是OK的,EdgeRouter系统固件很多型号都通用,所以路径什么的应该都一样,所以程序和方法按道理都是通用的。
能否列下环境,我看看是不是要根据不同型号做识别:先 ls -l /var/www/python/edgeos_gui/ | grep templates
~$ ls -l /var/www/python/edgeos_gui/ | grep templates
lrwxrwxrwx 1 root root 39 May 7 15:06 templates -> /var/www/python/edgeos_gui/templates-zh
drwxr-xr-x 5 root root 4096 Apr 28 07:50 templates-en
drwxr-xr-x 5 root root 4096 May 7 15:05 templates-zh

看看是不是已处理好模板目录。然后输入 sudo which start-stop-daemon ubnt-service-gui-start.sh

~$ sudo which start-stop-daemon ubnt-service-gui-start.sh
/sbin/start-stop-daemon
/usr/sbin/ubnt-service-gui-start.sh

如果只是路径不一样,删了绝对路径就没问题;如果有的版本不带这二个系统程序,再考虑其它方式重启gui。

多谢楼主解答 我的是er-x 现在前面几部都好了 原因是 字典没解压 跟您分析的一样 字典问题 解压完就完美过去了
ubnt@ubnt:~/CHN$ tar zxvf er-dict-190501.tar.gz
er-dict.txt
ubnt@ubnt:~/CHN$ sudo ./er-en2zh make
Old Chinese templates exist, deleting… ok
Copy original templates… ok
Reading dictionary… ok
Translating… ok
Run “sudo ./er-en2zh zh” will change WebUI to Chinese, “sudo ./er-en2zh en” will
restore to original version.
ubnt@ubnt:~/CHN$ sudo ./er-en2zh zh
WebUI change to Chinese. HTTP daemon restarting…

最后再次感谢楼主 我自己英文实在是差 有了这个中文 好多了 呵呵

不客气,能用就好。
不过还没搞明白出错的状况,找不到字典应该提示:
Reading dictionary… not found!
然后就停止了,不应该有翻译过程。即使没翻译,sudo ./er-en2zh zh 后也应该仍旧能访问到界面,只是还是E文,也没明白为什么服务没启动,有没字典不影响httpd的重启才对。下次有人也有问题的话希望贴出整个过程和所有提示,以便下个版本改进。

应该是有您说这个信息 因为昨天弄时候 确实不是全ok 就傻了吧唧的一股脑的不管上一步对不对一直往下输命令 然后 确实web管理页面失去连接了 页面就在也打不开了 但是ssh登录没问题 PPPoE拨号什么的也没断其他一切正常 就是不能打开web管理页面 我琢磨着肯定是web页面那个服务重启没起来 但是又不会命令开启服务 就拔电重启就好了

型号ER-12,碰到和9楼一样的问题。
路径什么都一样。
拔电重启后解决。
感谢楼主。:smiley:

收藏待用,感谢楼主热心分享

楼主可以直接做成 wizard 包吗?小白用就省心了。

mostone 发表于 2019-5-15 09:10
楼主可以直接做成 wizard 包吗?小白用就省心了。

同意,搜了下,至今没找到传文件到路由器的办法

很多小白,没有 linux 使用经验,确实有点难为了。

谢谢理解:)
希望在各位大神的研究之下通过wizard向导添加各种功能,让erx的功能设置和tplink,梅林固件一样简单易操作
当时买这个erx的目的是在于此设备全千兆,性能强悍,体积很小适合放弱电箱

哈哈,和我的选择理由一样。这是我第一次接触这个牌子。