关于多国语言的框架设计

laowai310 2009-02-26 08:48:28
加精
各路大虾们好!
由于业务的需要,我们准备将原有的系统调整为能支持多国语言,目前我们的系统只能支持中文。

首先我简要的介绍一下我们原有系统的架构:我们的系统共需要三台服务器,一台是运行web程序的(以下简称:web服务器),主要是用来展现页面的;一台是运行处理系统的业务逻辑的(以下简称:应用服务器),还有一台是运行数据库的(以下简称:数据库服务器)。web服务器大部分数据都是通过应用服务器对数据进行存储的。web程序采用struts框架、hibernate框架。

在调整过程中,我们主要碰到以下几个问题,希望大家能够帮帮忙,看有没有更为合理的解决方案:
1、页面上如果支持过程语言?
答:我们准备采用struts框架的国际化语言,通过配置文件的方式实现

2、web服务器和应用服务器之间数据的交互这部分如何实现,也就是web服务器向应用服务器发送请求,在返回信息中是有中文的,比如,返回的错误信息。对于这部分中文,我们如何实现国际化?
答:我们准备采取对于这部分数据进行统一调整,把这些数据都整理出来,然后对各个返回信息进行分类编码,这样在应用服务器上只返回消息的代码,不带有中文字幕;然后web服务器接口到返回信息之后,对消息的编码再进行解析,从配置文件中找到对应的错误信息显示在页面上。

3、数据库结构如何调整?原来的系统只有中文,系统部署时,系统有一些基础数据的,还有和业务相关的配置表,这些数据都是中文的,这对这部分,如何实现呢?
答:我们准备采用原有的表结构不做调整,我们再设计一张中文翻译表,有中文名称、语言种类、英文翻译后的名称、德文翻译后的名称、法文翻译后的名称,也就是说以后每增加一种语言,这种表就增加一个字段。

对于以上的问题大家可以一起讨论一下,有没有更好的解决方案?还有对于在多国语言的设计中,我们应该注意些什么,哪些还需要我们考虑的,希望大家不吝赐教!
...全文
1307 65 打赏 收藏 转发到动态 举报
写回复
用AI写文章
65 条回复
切换为时间正序
请发表友善的回复…
发表回复
Coolfatman 2009-03-12
  • 打赏
  • 举报
回复
楼主,别费事了,我还没有看到什么国际化比较好的项目。在欧洲语言环境还行,可是做中英文对照的实在是不太靠谱。
主要问题在于格式,中文和英文的转换后宽度会有很大的变化,只要使用了表格,很难保证显示正常。css的配置,输入的长度都会有问题。老老实实再做个英文版吧。做成中英文切换就行了。
lkw5657 2009-03-10
  • 打赏
  • 举报
回复
61楼 不错
liuliuqingfeng 2009-03-05
  • 打赏
  • 举报
回复
学无止境!
yinlei109 2009-03-03
  • 打赏
  • 举报
回复
回帖是一种美德!每天回帖即可获得 10 分可用分!
lkfdjg 2009-03-03
  • 打赏
  • 举报
回复
同意你做法
BEN254422571 2009-03-03
  • 打赏
  • 举报
回复
我也刚学完struts框架!!!
(1)对于多国语言我们都是用配置文件实现的!!!
(2)WEB和应用程序的交换可以通过WEB服务
WEB服务是在Internet上提供的服务,所以WEB也遵循WEB协议,如HTTP,TCP/IP,SMTP等,通过XML来传递数据,由于XML本
身是对语言无关和平台的无关性,所以可以为任何平台,任何语言服务调用它服务的方法,JAVA是使用XFire框架技术
,实现也很简单!!!XFire是免费的开源SOAP框架,你可以看看XFire框架相关资料。
(3)同意你做法!!
laowai310 2009-03-03
  • 打赏
  • 举报
回复
大家好,几天没过来,尽然有这么多人回复了,在此谢谢各位大虾的回复,我每条基本上都看了一遍。尽管没有我想要的答案,但是还是谢谢各位!
大家在思考,我们也没想着,为了尽量能让原系统保持不变,我们采取了以下的方案:
1、设计一个适配的类,通过这个类,传入中文消息,返回翻译好的消息;

2、设计一张表(key、chinese、english、japanese......),用于存放中文消息,翻译后的英文消息、日文消息....
key存什么呢?这个是关键

3、设计一个加密解密工具类,为每个中文消息进行加密,得到一个位数固定的key(比如:32位),我们也可以把这个
key解密成中文消息

4、最后一步,就是把系统里出现的要显示在页面上的中文消息全部找出来,归类一下,包括四种:
1)页面文件上的中文
2)数据库中的基础数据
3)服务返回给web的消息
4)特殊业务表中的消息

好了,讲述完了,希望大家有所收获!
a174277 2009-03-03
  • 打赏
  • 举报
回复
学习拜模~~~~~~~~
xinxideyilian 2009-03-03
  • 打赏
  • 举报
回复
基础数据你可以在表里面加一个字段。比如name_en, name_ko,name等。
xinxideyilian 2009-03-03
  • 打赏
  • 举报
回复
对于原有系统里的javascript里alert("姓名不能为空") 信息,如何实现国际化呢?

在中文资源文件里面
null.name=姓名不能为空
在英文资源文件里面
null.name=name is not empty


alert("<bean:message key="null.name"/>");
mengde123 2009-03-02
  • 打赏
  • 举报
回复
学习学习了
又是违规昵称 2009-03-02
  • 打赏
  • 举报
回复
占楼
lansedeshuyue 2009-03-02
  • 打赏
  • 举报
回复
支持一下
havelock 2009-03-01
  • 打赏
  • 举报
回复
直接将所有配置些进properties文件,java本身的国际化支持很不错。完全
能够满足要求。鉴于struts的国际化已经足够强大,并没有什么值得讨论的,
你需要干的事情就是不停的按照struts的要求写文件就完了。。。

数据库使用英文,其他语言添加字段,或者新添加表都成,要看具体业务情况。

山巅 2009-03-01
  • 打赏
  • 举报
回复
尽然看到我同学,世界很小。
hbjingxing99 2009-03-01
  • 打赏
  • 举报
回复
学习!
冰岛男孩 2009-03-01
  • 打赏
  • 举报
回复
学习了……
shaobo139 2009-03-01
  • 打赏
  • 举报
回复
学习..
hahaha58 2009-03-01
  • 打赏
  • 举报
回复
支持
aimar401 2009-03-01
  • 打赏
  • 举报
回复
mark
加载更多回复(43)
目 录 一、 实现目标 4 二、 框架构思及概念图 4 三、 数据类(DataClass) 5 3.1、 系统对象信息(D_SYSOBJECTS) 5 3.2、 系统字段信息(D_SYSCOLUMNS) 6 3.3、 主外键关系(D_SYSFOREIGNKEYS) 6 四、 资源类(ResourceClass) 7 4.1、 框架参数(FrameworkParameter) 7 4.2、 数据元素字典D_DATAELEMENT(DataElement) 8 4.3、 字段属性表达式类(D_SYSCOLUMNS_ATTRIBUTES) 9 4.4、 系统参数字典(D_SYSPARMDICT) 9 五、 信息类(InformationClass) 10 六、 功能类(FunctionClass) 10 七、 组织类(OrganizeClass) 11 7.1、 角色(Role) 11 7.2、 操作员(Operator) 11 八、 框架设计结构图 11 8.1、 数据项属性表达式部分 11 九、 窗口基类设计 12 9.1、 带有提示栏的窗口 12 十、 数据窗口服务及相关对象 13 10.1、 框架参数对象(uo _FrameworkParameter) 13 10.2、 表达式替换 14 10.3、 操作员数据权限(my_n_cst_dwsrv_popedom_data) 15 10.4、 修改属性表达式(my_n_cst_dwsrv_ModifyDWExpression) 15 10.5、 修改字段显示标题(my_n_cst_dwsrv_ModifyColumnTitle) 16 10.6、 关联查询服务(my_n_cst_dwsrv_RelationSearch) 16 10.7、 GRID风格DW打印服务(my_n_cst_dwsrv_DWPrint) 18 10.8、 DW显示风格设置(my_n_cst_dwsrv_ViewStyle) 19 10.9、 系统字典维护工具 20 10.9.1、 数据结构字典定义 20 10.10、 允许用户进行自定义的参数(D_SYSCONFIG) 21 十一、 简单业务流程处理(Simple Business Flow) 22 11.1. 简单业务流程的定义 22 11.1.1. 业务流程中环节的定义 23 11.1.2. 业务流程的实例化 24 11.1.3. 任务数据的检索 26 11.1.4. 业务流程处理引擎(my_n_cst_workflowengine) 27 11.1.5. 界面设计 31

50,523

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧