论坛首页 Java企业应用论坛

一个i18n的方案请人拍砖

浏览 13077 次
精华帖 (0) :: 良好帖 (2) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-11-03  
我认为这个问题已经脱离I18N的范畴了。

用户输入一个英文,你先将其翻译成中文,然后返回给他搜索结果。

这显然是属于机器翻译的范畴了。

两个方案,1 使用现有的翻译api或者字典
         2 人工建立一个翻译词库

你现在的方式其实就是方案2。

这个翻译的问题解决了,问题还没完---你还得给他返回搜索结果。

这个问题同样也有两个方案:
1 对用户输入进行翻译
2 在索引的数据上,添加对应的英文关键词。

你在用的是1 ,1修改了用户的输入,有时显得很笨拙。
其实2也很简单,你为luccnce的索引加上一个keyword字段,然后将中文英文都填进去即可。
0 请登录后投票
   发表时间:2008-11-03  
这是个比较复杂的需求,compiere(一个开源的erp)中是使用专门一个表存多语言数据的,取数据的时候根据需要的语言用sql取出相应的数据,osCommerce中也有类似的实现
用hibernate的话,hmmm,可能就不能直接简单的load,get,saveOrUpdate了
0 请登录后投票
   发表时间:2008-11-04  
    楼主你的需求想通过国际化来实现,思路似乎不对。国际化,并不适用搜索。国际化更加适应这样的场景:根据用户的使用环境中来决定显示的文本,这种映射关系是程序预先定义好的,并且这种关系只能是单向的(key-->value)。

    如果要实现你的需求,使用lucene或者其他的映射方式还是比较实际一点。
0 请登录后投票
   发表时间:2008-11-22  
做i18居然用数据库,明显的把问题复杂化嘛。影响服务器的性能姑且不说,“笔”的事例我觉得跟业务逻辑的细分有关。
0 请登录后投票
   发表时间:2008-11-25   最后修改:2008-11-25
jacklondon 写道
jacktom 写道
做i18居然用数据库,明显的把问题复杂化嘛。影响服务器的性能姑且不说,“笔”的事例我觉得跟业务逻辑的细分有关。

那么请大侠回答上面的问题:如果你的系统正式运行一段时间后,增加新产品,或者产品更改名称,当你把产品名称放在 resource 文件中,怎么处理?



产品名称有必要放在resource文件中吗。。真的是简单问题复杂化。。。
0 请登录后投票
   发表时间:2009-02-13   最后修改:2009-02-13
明显是个应用问题,非要套上I18N的枷锁。
I18N的概念的初衷是为了解决,相同的功能在不同地区及语言环境的显示问题。
非要使用这个思路解决产品本身功能性问题,就不是特别合适。既不方便,也很难优化提高效率。
有个朋友说的很对,东方和西方在很多思想上是不一致的。 只有却定功能的前提下,用另一种语言让特定的用户使用而已,而非解决软件的操作方法和查询结果的多寡问题。 就算你费劲的让他输入特定语言查到了特定解决,但他使用软件的操作方法和思维习惯你能兼顾的了吗?
如果你的方案没办法解决根本问题,就不要在一个“就和”的方案上走下去。走的越远,一旦碰壁,就需要退的更远。

总之,I18N很难承受内容管理之重。
0 请登录后投票
   发表时间:2009-08-31   最后修改:2009-08-31
呵呵,居然想起这个帖子了, 先把应用场景说清楚,这样比较好讨论:

比如我的站点是电器公司的,客户关心冰箱,除了品牌,价格外,最注重的就是它的功能,有许多条款确实不需要做i18n,比如电耗、容积、这些是每台冰箱都有的东西,可以用一个个field来表示,但是以后的产品可能有新的功能,这个就没办法通过增加field来是实现了,因此留了个descript来容纳这些东西:

比如 冰箱A:  WLAN 下载 菜谱 光合 保鲜
比如 冰箱B:  臭氧 异味清除 光合 保鲜
     冰箱C:  真空保存 臭氧杀菌

这里这些关键词是我人为抽取出来的,这个设计是为了 对这些description做一个i18n的搜索用的:

比如输入“臭氧", 冰箱B和C应该被显示出来,而英国人输入ozone,得到是一致的结果,这里利用了hibernate search,来自动为description分词,索引。


简单一句话,这个方案是针对输入无法预测的string字段的一个解决办法。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics