Devexpress汉化工具机翻网络版,老板再也不用花钱买汉化啦

原创| 开发动态| 一个月前| 阅读 446 次 | 13赞同 0反对

概述:板砖跨专业推荐,Devexpress汉化工具你值得拥有!Devexpress是.NET开发中全球顶级UI插件,用于美化项目,它不仅效果出众而且价格昂贵,购买一套或者自己汉化一套都要花费不少时间金钱,板砖于是乎自己做了一个在线版本的汉化工具!

板砖曾经写过3年的.NET程序,对Devexpress有点好感,目前因为板砖转移阵地到PHP上面啦,所以今天板砖就用PHP语言教大家如何汉化Devexpress插件

本次devexpress汉化仅针对Devextreme,不过汉化思路贯穿全局,有需要自己做其他插件汉化的同学可以加板砖QQ好友。

Devextreme的汉化文件是json文件,那就是太方便啦,板砖的汉化思路如下:

1. 采集需要汉化的词条

2. 存数据库

3. 翻译

4. 下载到本地

这个思路是不是很清晰,虽然如此,有很多同学要说了,无图无真相,于是乎不如直接上代码吧

第一步:采集词条保存到数据库,这个是思路啊,有关键步骤板砖阉割过了,没有体验怎么会记得住呢,汉化机翻工作千万不要边翻译边保存啊,几千条一次性的保存、翻译工作必然卡死服务器,不管是本地还是远程体验都不是很好,所以朋友们自行脑补如何分解保存。


        $file = './devexpress/jsonresources/dx-analytics-core.zh-Hans.json';

        $json_string = file_get_contents($file);
        
        $data = json_decode($json_string, true);
                
        $rows = Db::name('op_devexpress')->insertAll($data);
        
        echo '翻译完毕';
        exit();
第二步就是翻译啦,翻译就很简单,我用的百度的翻译API,免费的,但是翻译速度很慢,这时候板砖又要出一个小题:几千页的翻译如何无人值守,要么自动任务,要么···看你的想法啦



        $db = Db::name('op_devexpress');
        
        $list = $db->where('mwords', '')
            ->where('dvwords', '<>', '')
            ->where('LENGTH(dvwords)>10')
            ->limit(10)
            ->select();
        
        if ($list == null) {
            echo '翻译完了';
            exit();
        }
        
        foreach ($list as $d) {
            $trans = translate($d['dvwords'], 'en', 'zh');
            if ($trans && array_key_exists('trans_result', $trans)) {
                $vtrans = $trans['trans_result'][0]['dst'];
                $db->where('id', $d['id'])->update([
                    'mwords' => $vtrans,
                    'translateid' => 0,
                    'translate_time' => time()
                ]);
            }
        }
        echo '这一页翻译完了';
关键的步骤都完了,剩下的就是保存汉化文件到本地了,这一步我认为没有什么难度,不过还是贴出我的方法吧,老规矩:板砖不会给你完整的代码,这就是一个找茬游戏!


如果你直接运行下方代码,恭喜你中招了,你不会得到你想要的结果,为什么呢?因为板砖阉割了最严格的程序基础原理部分,如果你能补充那一行代码,恭喜你,devextreme的汉化工作你可以在30分内完成了,而且正确率高达75%呢。


        $file = './devexpress/jsonresources/dx-analytics-core.zh-Hans.json';
      
        $list = Db::name('op_devexpress')->where('dirpath', $file)
            ->select();
                    
        $txt = '';
        
        $jsons=[];
        foreach ($list as $l) {
            $json[$l['dvid']] = $l['translate_time'] <=0 ? $l['dvwords'] : $l['mwords']; array_push($jsons, $json); } $txt = json_encode($jsons,JSON_UNESCAPED_UNICODE); file_put_contents(str_replace('jsonresources', 'json resources', $file), $txt); echo '生成完了'.$file;
当然,很多朋友看完这一篇都是一脸懵逼的,板砖在讲啥,怎么devextreme就被汉化啦?


如果你想知道更多,或者就像简单的拿到devextreme汉化的文件,请加QQ554035954. 关于Devexpress Winforms汉化和Devexpress VCL汉化,请看下图···

Devexpress汉化工具网络版


DMAKE

本频道需要登陆后才能评论,请登录


暂无评论...