HowTo:握着你的手本地化Sociable插件
写下这么温馨的一个标题是因为突然想起了03年某Hacker杂志上的一篇文章。当时老独说,多么温馨… 咳,真恶心
好了,Sociable是一个Wordpress插件。效果就是我的Blog每篇文章末尾的“ 喜欢这篇文章?点下面的按钮分享到:Google/豆瓣/鲜果/校内/饭否…”的图标条。方便我的读者们在看完我的文章后淫荡一笑,然后推荐到他们使用的社会化网络中去。
很好是不是?是啊,问题是Sociable一点都不了解我国的国情,所以我们常用的国内社会化网络服务站点都没有加入到Sociable里面去。很明显这是一个问题哈,因为我的读者大多数都是在中国的中国人种。
不过还好,Sociable提供了添加自定义站点的方法,下面我将以添加对豆瓣网的支持为例子,演示如何打造一个中国版的Sociable。
1. 提取豆瓣的推荐API
好了,现在我们打开这个页面。根据你的浏览器的类型,豆瓣会展示不同内容。它会提示你将一个按钮拖动到工具栏/收藏夹。这是豆瓣提供的“推荐到豆瓣”的方式,本质上就是为浏览器添加一个javascript伪协议书签。我的浏览器是Firefox,我得到的内容就像这样:
javascript:void(function(){var%20d=document,e=encodeURIComponent,s1=window.getSelection,s2=d.getSelection,s3=d.selection,s=s1?s1():s2?s2():s3?s3.createRange().text:”,r=’http://www.douban.com/recommend/?url=’+e(d.location.href)+’&title=’+e(d.title)+’&sel=’+e(s)+’&v=1′,x=function(){if(!window.open(r,’douban’,'toolbar=0,resizable=1,scrollbars=yes,status=1,width=450,height=330′))location.href=r+’&r=1′};if(/Firefox/.test(navigator.userAgent)){setTimeout(x,0)}else{x()}})()
一团糟。不过还好,Shellex已经具备了阅读Javascript的基本能力,所以我翻译出了这段代码的内容就是把当前页面的URL和标题组合进豆瓣的推荐页面地址,然后打开这个地址:
http://www.douban.com/recommend/?url={你的文章地址}&title={标题}&sel={选择的文字,用作摘要}&v=1
好了,现在让我们先把这个地址记下来。
2. 编辑Sociable插件
现在的Wordpress版本已经支持直接编辑插件源文件。如果不支持也不要紧,我只需要你用任何一个文本编辑器打开sociable.php这个文件。搜索“$sociable_known_sites = Array(”,找到$sociable_known_sites这个数组。好了,这个数组就存放着所有支持的站点信息。
数组的每个元素由下面的域构成:
{站点名称} => Array(
‘favicon’ => ‘图标文件名’,
‘url’ => ‘推荐文章地址’,
),
(注意!上面的”>”代表的是”>”,因为Wordpress的白痴语法插件没能防止它被转义)
非常简单对不对?好了,现在我们把第一步中得到的豆瓣推荐地址放进去。比如我是这么添加的:
‘douban’ => Array(
‘favicon’ => ‘douban.png’,
[...]