程序实现多国语言的动态切换解决方案

原创 2005年03月03日 09:24:00

程序实现多国语言的动态切换解决方案
作者:耿海增

下载示例源代码(VC知识库的下载链接)

实现思想:

传统的做法是把所有的资源都放到动态库中,一种语言一个动态库,程序运行的时候通过加载不同的动态库来实现多语言功能。这样做的缺点是不能动态切换语言,如果更换语言后必须重新启动软件。当然,没有人会需要经常的切换语言玩儿,但是采用动态库的方法,如果程序需要修改资源的话,就要更新所有的动态库,这是一个非常枯燥而且容易出现疏漏的工作。

我的方法是把所有用到的字符串都放到文件中,一种语言一个文件,根据选择的语言到对应的文件中去加载字符串。这样不但可以动态切换语言,而且用户可以根据需要自己添加新的语言。

具体实现:

1、程序启动时检查所选择的语言,确定该语言文件,保存该文件路径

2、提供一个全局函数,如 g_LoadString(CString szID),根据提供的字符串ID返回
其内容,具体是哪个语言的在函数中判断,这样在程序中只要提供一个字符串ID就可以自动
加载不同语言的文字了。

3、如何在程序中使用:
原来代码:

CString str;
str = "语言";
改动后:
CString str;
str = g_LoadString("IDS_LANGUAGE");
4、对话框中如何实现

如果像在程序中使用一样,每一个字符串都要去加载一次的话,如果对话框比较多,工作量可就太大了。
所以我提供了一个函数g_SetDialogStrings(CDialog *pDlg,UINT uDlgID),每个对话框在初始化的时候调 用该函数,传递对话框的指针,我在函数中循环枚举所有的子控件,逐个设置文字。这样就可以省去很多工作

注意:由于静态文本(CStatic)默认的ID是IDC_STATIC,值都是65535,无法区分,所以在需要改变其文字的CStatic的ID要改一改,不能用默认的

5、语言文件样例:

中文版:

[Setting]
Language=Chinese

[String]
IDS_MENU_FILE=文件
IDS_MENU_FILE_NEW=新建(&N)
IDS_MENU_FILE_OPEN=打开(&O)
IDS_MENU_FILE_CLOSE=关闭(&C)
IDS_MENU_FILE_EXIT=退出(&E)
英文版:
[Setting]
Language=English

[String]
IDS_MENU_FILE=File
IDS_MENU_FILE_NEW=&New
IDS_MENU_FILE_OPEN=&Open
IDS_MENU_FILE_CLOSE=&Close
IDS_MENU_FILE_EXIT=&Exit
版权声明:本文为博主原创文章,欢迎转载

程序实现多国语言的动态切换解决方案

 程序实现多国语言的动态切换解决方案作者:耿海增下载示例源代码实现思想:传统的做法是把所有的资源都放到动态库中,一种语言一个动态库,程序运行的时候通过加载不同的动态库来实现多语言功能。这样做的缺点是不...
  • immcss
  • immcss
  • 2009年03月31日 16:30
  • 921

C#开源音乐播放器MetroPlayer3.0发布

MetroPlayer3.0程序文档   一、说明 MetroPlayer3.0是在MetroMusic1.05及2.0版本的基础之上,进行重构和改进的软件产品。从3.0开始,本软件正式更名为Metr...

程序实现多国语言的动态切换解决方案

下载示例源代码(VC知识库的下载链接) 实现思想: 传统的做法是把所有的资源都放到动态库中,一种语言一个动态库,程序运行的时候通过加载不同的动态库来实现多语言功能。这样做的缺点是不能动态切...
  • lzkIT
  • lzkIT
  • 2012年10月15日 22:50
  • 1139

程序实现多国语言包的动态切换

  • 2009年08月04日 22:47
  • 46KB
  • 下载

终极实现WPF应用程序支持多国语言解决方案的源码下载

猛击这里下载源代码 或者点击这里下载代码,代码需要使用.NET 4.0 促使程序赢得更多客户的最好、最经济的方法是使之支持多国语言,而不是将潜在的客户群限制为全球近70亿人口中的一小部...
  • hustypf
  • hustypf
  • 2012年06月20日 09:30
  • 5366

WPF应用程序支持多国语言解决方案

促使程序赢得更多客户的最好、最经济的方法是使之支持多国语言,而不是将潜在的客户群限制为全球近70亿人口中的一小部分。本文介绍四种实现WPF应用程序支持多国语言的解决方案。 效果如下图: ...

WPF应用程序支持多国语言解决方案

促使程序赢得更多客户的最好、最经济的方法是使之支持多国语言,而不是将潜在的客户群限制为全球近70亿人口中的一小部分。本文介绍四种实现WPF应用程序支持多国语言的解决方案。 效果如下图: Lan...

怎样在程序中利用C++支持多国语言(一种解决方案)

  本文以emule为例,探讨一下多国语言支持的实现。选择emule,因为它的多国语言支持实现的相当好,可以支持动态切换。而且最关键,它是开源的,可以直接通过源码来研究它的实现技术。  emule是利...
  • lltaoyy
  • lltaoyy
  • 2011年01月24日 09:27
  • 835

QT实现多国语言的动态切换

摘要:本文论述了如何使用QT实现程序的多语系支持以及多语系的动态切换。 前沿 我们生活中用到的程序大多都是支持单一语言的,比如在中国我们用到的软件大多是汉语的,也有很少部分使用的是英语的,但是很少...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:程序实现多国语言的动态切换解决方案
举报原因:
原因补充:

(最多只允许输入30个字)