精华帖 (9) :: 良好帖 (19) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-12-26
最后修改:2008-12-26
没发现acts_as_slugable有多大用处,给表增加一列记录url_slug?
既然用google翻译这样就可以了 <%=link_to article.title, {:action => 'show', :id => "#{article.id}-#{article.title}"},:class => "show" %> <script type="text/javascript" src="http://www.google.com/jsapi"></script> <script type="text/javascript"> google.load("language", "1"); function initialize() { $(".show").each(function(){ var link = $(this); google.language.translate(link.text(), "zh", "en", function(result) { if (!result.error) { var id = link.attr("href").split("-")[0]; link.attr("href",id+"-"+slugify(result.translation)); } }); }); } function slugify(str) { return str.toLowerCase().replace(/[^a-z0-9-_]+/g, '-').replace(/^-|-$/g, ''); } google.setOnLoadCallback(initialize); </script> 把标题翻译过来就好了. |
|
返回顶楼 | |
发表时间:2008-12-26
pure 写道 没发现acts_as_slugable有多大用处,给表增加一列记录url_slug?
既然用google翻译这样就可以了 <%=link_to article.title, {:action => 'show', :id => "#{article.id}-#{article.title}"},:class => "show" %> <script type="text/javascript" src="http://www.google.com/jsapi"></script> <script type="text/javascript"> google.load("language", "1"); function initialize() { $(".show").each(function(){ var link = $(this); google.language.translate(link.text(), "zh", "en", function(result) { if (!result.error) { var id = link.attr("href").split("-")[0]; link.attr("href",id+"-"+slugify(result.translation)); } }); }); } function slugify(str) { return str.toLowerCase().replace(/[^a-z0-9-_]+/g, '-').replace(/^-|-$/g, ''); } google.setOnLoadCallback(initialize); </script> 把标题翻译过来就好了. 看一下 http://www.iteye.com/news 页面,有多少个新闻的链接,如果用你这种做法,完全由客户端更改这些链接的地址,是多大的负担,而且根本没有 SEO 的作用了。 |
|
返回顶楼 | |
发表时间:2008-12-26
hozaka 写道 pure 写道 没发现acts_as_slugable有多大用处,给表增加一列记录url_slug?
既然用google翻译这样就可以了 <%=link_to article.title, {:action => 'show', :id => "#{article.id}-#{article.title}"},:class => "show" %> <script type="text/javascript" src="http://www.google.com/jsapi"></script> <script type="text/javascript"> google.load("language", "1"); function initialize() { $(".show").each(function(){ var link = $(this); google.language.translate(link.text(), "zh", "en", function(result) { if (!result.error) { var id = link.attr("href").split("-")[0]; link.attr("href",id+"-"+slugify(result.translation)); } }); }); } function slugify(str) { return str.toLowerCase().replace(/[^a-z0-9-_]+/g, '-').replace(/^-|-$/g, ''); } google.setOnLoadCallback(initialize); </script> 把标题翻译过来就好了. 看一下 http://www.iteye.com/news 页面,有多少个新闻的链接,如果用你这种做法,完全由客户端更改这些链接的地址,是多大的负担,而且根本没有 SEO 的作用了。 明白了,那这个址在新增/修改这条数据时就已经生成放在url_slug字段了是吧? |
|
返回顶楼 | |
发表时间:2008-12-26
To: pure
Quake Wang 写道 用ajax调用是因为这个优化url只是辅助作用,对于翻译结果不满意的,用户还能手工修改。
放到后台的话,确实可以更加自动化,但是也有了潜在的风险:创建数据的操作依赖于google所提供的服务(考虑到网络和GFW),还需要加上一些超时判断,比较麻烦。 Quack Wang 既然说了,对结果不满意可以修改,那么很明显就只能在new的时候使用 |
|
返回顶楼 | |
发表时间:2008-12-27
hozaka 写道 To: pure
Quake Wang 写道 用ajax调用是因为这个优化url只是辅助作用,对于翻译结果不满意的,用户还能手工修改。
放到后台的话,确实可以更加自动化,但是也有了潜在的风险:创建数据的操作依赖于google所提供的服务(考虑到网络和GFW),还需要加上一些超时判断,比较麻烦。 Quack Wang 既然说了,对结果不满意可以修改,那么很明显就只能在new的时候使用 嗯~是的,多谢提醒! |
|
返回顶楼 | |
发表时间:2008-12-27
how about translate to pingyin?
|
|
返回顶楼 | |
发表时间:2009-01-04
中文网站转拼音才是出路
|
|
返回顶楼 | |
发表时间:2009-01-07
原来Javaeye也是这么弄的呀 哈哈 发个python 实现 用到了BeautifulSoup 直接去网页爪..
__all__ = ('source_languages', 'target_languages', 'translate') import sys import urllib from google.appengine.api import urlfetch from BeautifulSoup import BeautifulSoup def translate(sl, tl, text): assert type(text) == type(u''), "Expects input to be unicode." # Do a POST to google # I suspect "ie" to be Input Encoding. # I have no idea what "hl" is. translated_page = urlfetch.fetch( url="http://translate.google.com/translate_t?" + urllib.urlencode({'sl': sl, 'tl': tl}), payload=urllib.urlencode({'hl': 'en', 'ie': 'UTF8', 'text': text.encode('utf-8'), 'sl': sl, 'tl': tl}), method=urlfetch.POST, headers={'Content-Type': 'application/x-www-form-urlencoded'} ) if translated_page.status_code == 200: translated_soup = BeautifulSoup(translated_page.content) return translated_soup('div', id='result_box')[0].string else: return "" |
|
返回顶楼 | |
发表时间:2009-01-09
以前用过google的chartAPI,不过我们公司做的系统一向不参与外网的连接,所以无奈的退出google在线的API。
|
|
返回顶楼 | |
发表时间:2009-01-12
我也觉得拼音比较好,如果是拼音+分词就比较实用了。毕竟中国人也被习惯去看一长串连续的拼音。
|
|
返回顶楼 | |