发新话题

国际化问题

现有一网站,中文版本已完成,webwork2+spring+ibatis结构,需要增加一英文版本。
页面国际化部分通过属性文件等就可以完成,现在重点是数据持久部分
目前想到两种方式:
一、在现有数据库表中增加对应英文字段(原来有10个字段,现在变成20个字段),需要重写数据持久层。
二、另建一数据库,和现有中文数据库的表名和表结构完全相同,用户选择语言时,读取不同的数据库连接配置文件,持久层其它部分不需要更改。此方法在数据更新时需要连接两个不同的数据库,是不是速度会很慢?
如果第二种方法可行,那么怎样读取数据库连接配置文件呢,ibatis下?

以上的两种方式只是想法,没有测试过,希望做过国际化的同志们能提出解决方案或者给些意见。拜谢!


A:
我提供一个可行的方案
在你的数据表里面增加列(locale)

然后你的所有数据,根据对应的local来显示,比如中文的,去读取local=zh_CN的数据就可以了!


这样只需要增加一个列就可以解决!SQL修改也简单!

A:
根据楼主的要求,个人认为:
1、对于网站的页面,建议采用资源文件的方式国际化,页面编码设置UTF-8,数据提交通过过滤器设置正确编码;
2、对于网站我认为,要分情况考虑:
1)如果网站内容是固定,那么建议采用多套不同数据库,理由是便于维护,并且以后再有别的语言需求也便于增加;
2)如果网站内容有使用者来维护,如blog,那么这些内容应该就不需要国际化,可以考虑保持用户输入的原来状态;
3)如果上面两种情况都存在,要考虑二者的比重:如果固定内容多,建议固定内容和用户维护内容的数据库分开,同时固定内容数据库按照不同语言划分;反之可以考虑在固定内容的数据表中加locale字段(本人不建议)。还有另外一种方式,就是把这些数据库内容相对应的翻译放到资源文件中,在页面上进行根据不同的语言显示(适应数据库不太的情况,在我当前的项目有应用)。

无论采用那种方法,首先应该考虑的应该以后是否便于维护。
快乐渡过每一天,减肥坚持每一天



编辑 回复 快速回复 TOP
我发的帖子,哈哈
长得跟包子似地,就别闲狗跟着。
编辑 回复 快速回复 TOP
咋没权限列...
编辑 回复 快速回复 TOP
发新话题