大型程序多语言的两种实现思路

在国际化的程序中,经常要使用到语言切换的功能
以目前我正在做的planet为例,此程序有7种语言的切换功能
如此多的语言,为每一种语言单独设计一个对话框显然在大型程序中是不合适的
一般的,这会或多或少的利用dll.每个dll就是是个语言包。
为此,我所见的有两种设计思路:
1.语言包自带对话框资源
其实,其准确的说法是语言包自带对话框模版,因为这些dll工程中所引用的对话框都是完全相同的文件.
在写这些对话框时,他们的文本都只是一个宏名。对每一个宏名,不同的dll中对它有不同的define。
2.语言包只带自符串资源,对话框资源存在于主工程
在这种机制中,对话框资源中的文本显示的是什么已经不重要了,因为我们在加载对话框的时候可以分为两步。第一步:加载对话框资源,第二步,通过LoadString,将对话框中的字符串更新至合适语言。

另外,提示一点,即使工程浩大,字符串资源的ID也只有65536个(0 - 65535)(至于为什么是这么多,还有个典故可以去查),所以得珍惜着用。不要奇怪有时define的值超过了 65535,如果LoadString的参数超了的话,会自动减去65536.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值