这种优化的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,可控性比较好。