|
|
这种优化的URL叫做slugs url,听说有很多的好处。
没有真正去实践过,不过大家都说有好处就实现试试。
首先得到googla translation api,编写翻译程序
具体可参考:http://www.java1995.com/blog/item/41
其次就是怎么与现有的URL进行结合。
如果使用了url rewrite 这时就很好办了,只要把规则重新规定一下就可以。
比如javaeye wiki使用的,就可以通过正则表达式 [\d]+[-]?\w* 来跳转,既不会使用过去的URL失效,新的url又能很好的工作。
最后就是怎么集成现有系统。
第一种方法就是使用客户端来完成这个功能,使用google的js api来实现,这样就增加了客户端的负担。
程序:
<script type="text/javascript" src="http://www.google.com/jsapi"></script> //载入Google的jsapi <script type="text/javascript"> function slugify(str) { //这个方法应该是将字符转为小写,并把一些特殊字符转为"-" return str.toLowerCase().replace(/[^a-z0-9-_]+/g, '-').replace(/^-|-$/g, ''); } google.load("language", "1"); //载入Google的language Ajax库 function translate_title() { //这里就是翻译文章标题了,里面的方法需要jQuery支持,之前要引入jQuery的包,这里就省略了 if($F("news_title").blank()) { alert("请先填写标题"); return; } $("news_slug_url").value = "正在翻译中..."; google.language.translate($F("news_title"), "zh", "en", function(result) { if (!result.error) { $("news_slug_url").value = slugify(result.translation); } }); } </script>第二种方法就是服务器端来完翻译工作,然后直接在页面。
为了增加灵活性,可以在数据库中增加一个字段,这样可以使用可以让用户自定义URL,没有输入时可使用google翻译得到URL,可控性比较好。
|
|