Actually,simplicity is not simple

SQLyog Ultimate 9.3.3 简体中文正式版

距上次汉化已经是一年多前的事了,本来我自己也使用着英文最新版的,感觉没必要更新了,就那么几个常用的鸟语,再者我用得也不多。

今天我的好友找我要汉化版的SQLyog,结果他说汉化版无法运行,但英文原版却可以打开,让我郁闷得不行,还是首次有人向我反映这问题。

去官网看了下SQLyog的信息,都9.3.3版了,去filestube.com搜索下载了正式版安装好后发现有语言选择框,这可是惊人发现,虽然只有英文和日本语,但充分说明SQLyog开始支持多语言了,看了下安装目录,多出了个L10n.db,感觉是个语言数据库,搜索后居然让我找到了SQLyog在google code中放出的写社区源码,我了个亲娘啊!

飘了几眼源码,发现有sqlite的操作代码,感觉这db文件应该是sqlite的数据库文件了,下载了个sqliteAdmin居然能正常打开,但编辑后有编码问题,改用SQLite Expert(30天试用版,木找到特别的版本,谁有记得Mail我一分)打开后可以正常编辑。

正好今天公司事不很多,用JS写了个小脚本将我以前汉化SQLyog时的中英文对照表转换并替换了下,发现还是80%未汉化的内容,汉化到现在还有50%的内容未汉化,果然是菜鸟一个啊!英文菜(初二开始考试未及格过)、汉化技术菜(这是有第四次做汉化)。

总的来说这次SQLyog汉化比前两次要轻松无数倍!夜深了,明天我还没得休息,这汉化工作就到此为止吧,有些不好意思了,说是汉化可每次都是个不完全版。

SQLyog Ultimate 9.3.3 简体中文正式版

如超期给我邮件,我上传的版本是删除了帮助文档的,那东西9M多,相信也没人会去看。

同时我也把语言包放到github中,希望有热心人能共同完善它。https://github.com/asins/SQLyog

使用方法

替换L10n.db文件后,运行SQLyog

依次选择 Tools -> Change Language -> 简体中文

然后重启下SQLyog就可以了。

在页面中加载jQuery

又是N久没更新过了,懒啊!

常要测试些代码,又或者要对页面中做些操作,但发现页面中没有引入jQuery,今天写了个简单的东西让页面方便快速的加载jQuery

方法很简单将下面的链接拖到你的收藏夹中就可以了,以后想要在当前页面加载jQuery,直接按一下就可以了,如果页面中已经加载了jquery则不会去加载并且显示当前jQuery的版本。

灵感来源由Firefox的一个插件fireQuery,但它只能在FF下使用。

代码也没什么,放这了,别见笑:

(function(window, document, undefined){
    var div = document.createElement('div')
        , body = document.getElementsByTagName('body')[0];
    if(window.jQuery === undefined){
        var ga=document.createElement('script');
        ga.type='text/javascript';
        ga.async=true;
        ga.src='https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js';
        body.insertBefore(ga, body.firstChild);
        if (ga.addEventListener) {
            ga.addEventListener('load', callback, false);
        } else { // for IE6-8
            ga.attachEvent('onreadystatechange', function() {
                var rs = ga.readyState;
                if (rs === 'loaded' || rs === 'complete') {
                    callback();
                }
            });
        }
    } else {
        callback();
    }

    function callback(){
        div.innerHTML = '<div style="font:700 40px/46px Arial,Verdana;position:fixed;padding:5px 10px;margin:0;z-index:1001;color:#444; background-color:#FFFB00;opacity:0.8;">This page already using jQuery v'+ jQuery.fn.jquery +'</div>';
        var el = div.firstChild;
        body.appendChild(el);
        el.style.left = Math.floor(((window.innerWidth || document.documentElement.clientWidth) - el.clientWidth) / 2) + 'px';
        el.style.top = Math.floor(((window.innerHeight || document.documentElement.clientHeight) - el.clientHeight) / 2) + 'px';
        setTimeout(function(){
            body.removeChild(el);
        },3000);
    }
})(window, document)

Directory Opus 简体中文版

Directory Opus 是相当不错的资源管理器替换软件,之所以去换替换explorer的软件是因为想要个能记住上次关机之前所打开了的目录。

喜欢上dOpus没有什么特别的原因,用着挺舒服的,想要的功能其实上都能满足,没有过多无用功能,也不会让人觉着烦。

dOpus让人烦的是这软件的盗版抓得很严,从v10.0.1开始软件自身不再带有简体中文语言包了。

中国人对软件的版权费用支付还是没有过度过来啊,就我而言同样是不想支付这版本费的,一个key 85美元舍不得啊!

目前我所使用的版本依然是10.0.1,而且是有key的,10.0.2版本虽然已经出来了,但我还没有找到可用的Key,所以还没打算升级。不多说了,我这里有些东西分享给大家吧!

软件下载

  • 官方 下载
  • Directory Opus 10.0.1 安装文件下载地址 x86 x64
  • Directory Opus 10.0.2 安装文件下载地址 x64

简单中文语言包

语言包来自neoland的blog,万分的感谢!

  • Directory Opus 10.0.1 中文语言包 x86 x64
  • Directory Opus 10.0.2 中文语言包 x86 x64

软件信息清除工具

如果软件已经过了试用期时,可以用这软件清除下软件信息,又可以使用30天了,当然也可以去申请个60天的试用Key

注:这软件的升级功能是一定要禁止的,不然在上网的情况下软件很快会在版本号不变的情况下让Key失效,这里删除软件目录下的所有文件后再安装一次,再用这清除工具清除下软件信息,再导入你以前用的Key就又可以通过了。

  • DopusTR.Setup.BBs 这是我在10.0.1版下用的
  • DopusTR 刚在一国外分享网站上下下来的10.0.2版的,但有没有用没有去试,和10.0.1的版本文件不一样,所以就分开上传了

Key

分享下我在国外软件下载网站中找到的10.0.1版本可用的Key

10.0.2版本我还没有找到可用的正式Key,不过找到个60天试用Key

配置文件

最后放一个我的配置文件吧!对界面布局做了些修改,也加入了些功能,比如基于命令行的SVN/Git更新功能。

在一个列表窗中同时显示两个文件夹窗口按钮的命令改进了下,让它能记住上次切换时的标签。

Set DUAL=Toggle,Remember

每个人的使用方式都不一样,放在这里一是为分离交流,二是当成准备了,呵呵!

innerHTML操作的改进

function asyncInnerHTML(HTML, callback) {
    var temp = document.createElement('div'),
        frag = document.createDocumentFragment();
    temp.innerHTML = HTML;
    (function(){
        if(temp.firstChild){
            frag.appendChild(temp.firstChild);
            setTimeout(arguments.callee, 0);
        } else {
            callback(frag);
        }
    })();
}

看看上面的代码,对平常我们用的innerHTML做了些许改进,不管在用处上还是浏览器呈现上都有所进化。

  • 使用setTimeout防止出现浏览器堵塞现象(及长时间没反应,突然一下子呈现的现象)
  • 使用DocumentFragment提升效率

再来看下它的作用吧

var htmlStr = '<div><p>...</p><p>...</p><div><div>...</div>';
asyncInnerHTML(htmlStr, function(fragment){
    // You can treat 'fragment' as a regular node.
    document.body.appendChild(fragment);
});

我想这已经很明了了,这函数强于 string 转 DOM 并得到转化后的DOM对象,做点记录方便以后使用吧!

这函数的出处看这里

用JS动态监听CSS加载

周五时有个工作时需求等CSS加载完后后再执行些JS代码,但发现使用onload在Firefox chrome下不行但IE8下却可以。

第一次发现IE也有让我省心的时候啊!

问谷大叔得知研究这问题的人还挺多的:

  • 在射雕的lab中发现有两个测试 load js css css preload,讲得挺多的,而且在其seajs中已经运用上了,拜之~~
  • 在国外一相当大的专业问答网站中找到相同问题,也有不少人给出了解答 javascript capturing load event on link。主要讲到两种方案:
    1. 使用settimeout循环判断不同浏览器中当CSS加载完或失败时的特性,射雕使用的方案也是这种,但特性有所不同;
    2. 方案挺有意思的,同时创建link、img标签并将CSS的URL同时赋于两个标签,用img标签的onerror事件做为加载监听器,但这种方案会产生两个请求,并且img标签所发出的请求会标注不支持gzip。
  • Cross Browser Stylesheet Preloading中也提供了一解决方案,但代码是基于mootools写的,最重要的一点是延时判断link标签的ownerNode或owningElement属性,没用过这两个属性,不懂!!!

继续问谷大叔找到关于ownerNode(返回节点与此相关联的样式表文件的。)以及owningElement(返回附加到元素节点上的属性)的定义。

this.link.id = this.getID(); // 创建link标签时给标签加上了ID属性
// 注意 这里的file = document.styleSheets[0]; 或 document.getElementsByTagName('link')[0].sheet;
var owner = file.ownerNode ? file.ownerNode : file.owningElement;
if(owner && owner.id == this.getID()) {
    this._onready();
    return;
}

并且看到了对link标签事件支持情况:

IE6-IE9、opera  都支持link标签的 onload  onerror事件
firefox chrome  safari 都不支持link标签的 onload  onerror事件