用数据库表来实现多语言

    要实现多语言,大多数人是使用properties文件来的,比如struts,每种语言建一属性文件,
命名一般是message.zh_cn.properties,message.en_us.properties,但这有三个我讨厌的点在:
1):如果语言很多,我查找key很麻烦
2):如果语言修改了,需要重启服务。
3):不能在软件界面上修改
    当然,上面三点还是可以通过编程来实现的,但做起来没有用数据库来的熟悉和方便,改用
数据库来实现多语言,首先要设计数据库表,我建议是采用主明细,
主表langs字段为:编号(code)|名称(name)
明细表langsdtl字段为:编号(code)|关键字(messagekey)|值(value)
其中code为关联字段.
    1):首先开发一个模块,多语言管理,将系统中的涉及到语言信息通过界面填入到表中
    2):仿struts写一个资源管理器,作用是加载语言信息到缓存,可以是预加载,也可以是象
struts一样,第一次用到某个语言的时候,加载该语言。这里唯一有个注意点,messageKey的取
值,messageKey=code+"."+messagekey(其中code,messagekey都是langsdt表中l的值)
    3):登录的时候,加一个语言的下拉框,登记该用户要用什么语言显示系统.登记的值放入
session中.
    4):仿struts写一个语言的taglib,通过用户登记的语言+界面传过来的messagekey取到真正
要对应的语言。
    整个的做法都是参考struts的,不难,关键要懂原理.比如资源管理器和taglib可以通过看看struts

源码就清楚了,struts是读文件,现在改为读数据库而已。  

转载于:https://www.cnblogs.com/mzhanker/archive/2011/06/21/2086243.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值