自动英文SLUG--BlogEngine的小插件
自动将中文标题翻译成英文后设置为slug.利用Google Language API,JSON数据处理用的JSON.NET.
1
using System;
2
using System.Data;
3
using System.Net;
4
using System.IO;
5
using System.Web;
6
using System.Text.RegularExpressions;
7
using BlogEngine.Core;
8
using BlogEngine.Core.Web.Controls;
9
using Newtonsoft.Json;
10
11
/// <summary>
12
/// Summary description for CnSlug
13
/// </summary>
14
[Extension("自动将中文标题转换为英文Slug", "1.0", "<a href=\"http://icyflash.blog.sohu.com\">Icyflash</a>")]
15
public class CnSlug
16
{
17
public CnSlug()
18
{
19
Post.Saving += new EventHandler<SavedEventArgs>(Post_Saving);
20
}
21
22
private void Post_Saving(object sender, SavedEventArgs e)
23
{
24
Post post = (Post)sender;
25
if (post.IsNew)
26
{
27
WebClient wb = new WebClient();
28
string url = "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&langpair=zh%7Cen&q=" + HttpUtility.UrlEncode(post.Title);
29
string jsonText = wb.DownloadString(url);
30
JsonSerializer serializer = new JsonSerializer();
31
JavaScriptObject jsObject = (JavaScriptObject)serializer.Deserialize(new JsonReader(new StringReader(jsonText)));
32
if (jsObject["responseStatus"].ToString() == "200")
33
{
34
JavaScriptObject jsObj = (JavaScriptObject)jsObject["responseData"];
35
post.Slug = Utils.RemoveIllegalCharacters(jsObj["translatedText"].ToString());
36
}
37
}
38
}
39
}
40
using System;2
using System.Data;3
using System.Net;4
using System.IO;5
using System.Web;6
using System.Text.RegularExpressions;7
using BlogEngine.Core;8
using BlogEngine.Core.Web.Controls;9
using Newtonsoft.Json;10

11
/// <summary>12
/// Summary description for CnSlug13
/// </summary>14
[Extension("自动将中文标题转换为英文Slug", "1.0", "<a href=\"http://icyflash.blog.sohu.com\">Icyflash</a>")]15
public class CnSlug16
{17
public CnSlug()18
{19
Post.Saving += new EventHandler<SavedEventArgs>(Post_Saving);20
}21

22
private void Post_Saving(object sender, SavedEventArgs e)23
{24
Post post = (Post)sender;25
if (post.IsNew)26
{27
WebClient wb = new WebClient();28
string url = "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&langpair=zh%7Cen&q=" + HttpUtility.UrlEncode(post.Title);29
string jsonText = wb.DownloadString(url);30
JsonSerializer serializer = new JsonSerializer();31
JavaScriptObject jsObject = (JavaScriptObject)serializer.Deserialize(new JsonReader(new StringReader(jsonText)));32
if (jsObject["responseStatus"].ToString() == "200")33
{34
JavaScriptObject jsObj = (JavaScriptObject)jsObject["responseData"];35
post.Slug = Utils.RemoveIllegalCharacters(jsObj["translatedText"].ToString());36
}37
}38
}39
}40




浙公网安备 33010602011771号