一半君的总结纸

听话只听一半君

tomato shibby v140 AIO 或 其他版本的汉化思路

之前经常看到恩山有人分享汉化包,但是有个问题,根据你使用的tomato shibby版本不同(大小不同),固件的组件也会不同,从而造成了菜单也会不一样

看到有人分享集成了汉化菜单的固件,估计这是从/www里复制出所有需要修改的文件,改好以后再用tomatoedit加回去,可是这样每种不同版本的固件你都要重来一次

也看到有人分享所谓”外挂”汉化包,其实就是使用tomato自带的自定义gui files的功能

tomato directory with gui

当然这样也会因为固件版本不同造成菜单的不同,所以4mb 8mb的会不”通用”(其实也就是因为8mb的组件多一些,会多一些菜单),这和第一种方法遇到的问题是一样的,而且可以想象的是如果你把文件改错了,可能会导致进入不了路由器的web管理页面

那么有没有一劳永逸的方法呢?经观测其实在源码的www目录下,所有菜单都存在,是对应AIO版本的,而Makefile里只是根据配置文件,留下编译了的那些模块,删掉没有编译的模块而已

当然还有其他一些处理,比如删除代码注释,删除js文件中的空格等等,Makefile里的主要操作就是sed搜索替换而已,

所以lz觉得应该可以从前人”手动汉化”过的文件中截取出所有的中文字符,通过比对该字符附近的其他字符,和英文菜单名建立映射关系,从而带到自动汉化的目的,至于编译时激活的模块,应该可以从about.asp关于页面中获得(纯属脑残想法,正经方法应该是使用asp的资源文件)

tomato-cn

lz暂时没想到什么好方法可以保持与新版tomato更新,也许可以

firmware-mod-kit解压AIO v137, 和网上能下到的v137对比,手动汉化最新版v140 AIO的源文件,然后parse路由器上的关于页面,得到组件列表,通过设置已有组件,单独运行Makefile,“编译”出中文的gui文件们,放进jffs即可

然后将www独立出来,放到一个repo里,然后新建个branch,换成中文,之后如果tomato有更新,就根据上游repo更新master branch,然后merge进中文branch里。

shibby大神自己不是有波兰语和英语两种固件么,google tomato localization后得到

Tomato Multilanguage

似乎早已有此功能,我不信他是一个个手敲的,而且tomato-arm似乎早已经有多语言支持了

Update blink and add Multilanguage support to chinese

借用一张shibby大神的配图(2011年)

tomato_name

K26USB – kernel version with/without USB support
1.28 – tomato based version
5x – branch base version. 52 = build52, 54 = build54, 5x = current git source
ML – language: ML = multilanguage, PL = Polish, EN = English
MIPSR1 – CPU model: MIPS R1 or R2
070V – my version number (V – VLAN support, H – httpd modified for polish users – unused at the moment)
Mega-VPN – build type

而且在repo里可以搜到曾经是加过多语言支持的 translate module, some fixes, move tomato.js to asp, selectable language option, Polish and English dictionary update

原repo中的commit在这里

update: 搜到为啥了,原来是因为老板不同意

i probably will not integrade Multilanguage module with my tomato – at least for now. I did Tomato-ML once few years ago and it was a bad idea. After 2 or 3 releases i reverted patches and back to English version only.

If it will be a good idea then i will not leave this project few years ago.

Why it is a bad idea IMO? Well:
1) If i will include ML module to ARM then i will have to do the same with Mipsel

2) each dictionary will take ~30KB. Include in near furure 10 languages and we have image larger of 300KB. For MIPSELs router with only 8MB flash its really big.

3) When i made Multilanguage feature only 3 languages was available: PL, EN and CH. Nobody wanted translate any other language.

4) Lot of dictionary required lot of translators which will take care of update translation – impossible to do.

5) Some Polish translations sound funny and silly. Probably in others translations will sound funny and silly too.

6) Tomato has very intuitional GUI. IMO there is no needed to translate it. If someone not know basic words of English then he can install and use “translate” module in Google Chrome.

在移除前,最后一个字典文件在 en_EN.dict 有1260行

对于空间紧张的路由器如q3(8mb flash),就算是刷入lz自编译的max版本之后,也只剩下约1mb用来存放ss和perp了,如果汉化之后势必进一步减小可用空间。如果flash空间足够大,建议使用AdvancedTomato,因为曾经有人汉化过,虽然还没有更新到v140,但是作者如果想更新一下的话工作量不大(工作量最大的时候应该是首次输入所有中文字符的时候)

真正正确的汉化方法应该是这样,可惜被shibby老板毙了

待续…

参考:

[2016-8-2]Tomato by Shibby v138-4M-8M固件-汉化版+语言包

BCM5356A 中文件tomato固件

Tomato Firmware 1.28.0000 MIPSR2-137 K26AC USB AIO-64K最新版独立汉化

tomato固件汉化教程,小白专用贴

Tomato RAF mod by Shibby – 20110908编译+pupie简体中文翻译更新

tomato-arm全系中英双语版1.4发布(基于132)

Tomato RAF 中文版下载–MOD by shibby

Advertisements

12 responses to “tomato shibby v140 AIO 或 其他版本的汉化思路

  1. ek66 七月 17, 2017 @ 9:45 上午

    原来那么麻烦,这样,谢谢 !

  2. zhaopeng 七月 28, 2017 @ 11:20 上午

    请问大神有没有qq号,请教一些问题

  3. wozhenshizp 七月 30, 2017 @ 3:10 下午

    但我给你发了信息?是个感叹号?被限制了?

  4. wozhenshizp我 七月 30, 2017 @ 3:18 下午

    https://github.com/openexr/openexr/issues/162 我遇到这个问题.不知怎么解决了

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s

%d 博主赞过: