利用google翻译解决URL可读性
题目有点乱,大家别介意,之前在做友通人才网(hr.it2500.com)的时候就一直在想URL的可读性不怎么好,我们习惯做WEB程序时用ID来检索内容,一直是将ID直接放在URL里的,这样不是太好。 可这个的可读性比较差,不仅是网站的访问者读不懂URL,也不利SEO,今天早上上班的时候就在想,下面要做CMS的时候,要解决这个问题,想要解决这个问题我第一个想到了google ajax language api。有的朋友会问似乎这个谷歌翻译和URL的可读没有多的关系吧,先别急,接下来我们先来看一段google language 例子:
<html> <head> <script type="text/javascript" src="http://www.google.com/jsapi"></script> <script type="text/javascript"> google.load("language", "1"); function initialize() { var text = document.getElementById("text").innerHTML; google.language.detect(text, function(result) { if (!result.error && result.language) { google.language.translate(text, result.language, "en", function(result) { var translated = document.getElementById("translation"); if (result.translation) { translated.innerHTML = result.translation; } }); } }); } google.setOnLoadCallback(initialize); </script> </head> <body> <div id="text">你好,很高興見到你。</div> <div id="translation"></div> </body> </html>
大家可以试一下这段代码,我可很好将它翻译过来!如图
下面我们来说一下如何在ASP.NET MVC中应用。
比如说我们常做的新闻列表,现在大多网站,显示在URL里,要么是ID,要么是日期
如:localhost/new/1.aspx,localhost/new/2010-11-15.aspx
而ASP.NET MVC 就可以样写localhost/new/1
就不用带扩展名了,可是可读性还是不好。
其实我们可以在添加新闻的时候多一个字段,那就是标题的英文名。这个英文名我们用google ajax language api来翻译,就可以得到了英文,不过里面会有空格和标点符号,
这个没关系 我们用JS来过滤了它就可以了。
有的人说,不要自动翻译也可以啊,我用自己翻译的原因是更方便用户的体验,不过在自己翻译的同时也可以人工的输入。
最后只要在检索新闻时用英文名来检索就可以了,不过要保证它的唯一性。
这个代码我就不写出来了。日后有时候再放进来。ASP.NET 可以这样做,ROR,JAVA,PHP都可以这样做。同理!