菜鸟学做多语言版程序
--------用MythLanguage 简化MFC程序的多语言版本开发。
友情提示:
开发平台 | VC6.0 |
作者 |
实例
以MDI程序为例,实现步骤如下:
一、初始工作
1、按照VC的向导建立一个MDI程序MultiLanDemo,语言为中文。
2、将MythMgr.h和MythLanguageD.lib复制到MultiLanDemo目录下
3、在stdafx.h中加入如下代码:
#include "mythMgr.h" #pragma comment(lib, "MythLanguageD.lib") |
二、设置菜单语言
4、在BOOL CMultiLanDemoApp::InitInstance()中加入初始化代码:
// create main MDI Frame window CMainFrame* pMainFrame = new CMainFrame; if (!pMainFrame->LoadFrame(IDR_MAINFRAME)) return FALSE; m_pMainWnd = pMainFrame; // 初始化 MythMgr::InitApp(AfxGetInstanceHandle()); // 设置主框架的菜单语言 MythMgr::SetMenuLanguage(m_pMainWnd->GetMenu(), IDR_MAINFRAME); // 设置子框架的菜单语言 MythMgr::SetMenuLanguage(CMenu::FromHandle(pDocTemplate->m_hMenuShared), IDR_MULTILATYPE); //......... |
三、设置对话框以及对话框上的控件的语言
在此,我们修改About Dialog对话框的语言。
5、映射About Dialog的WM_INITDIALOG消息,加入代码如下:
BOOL CAboutDlg::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add extra initialization here MythMgr::SetWindowLanguage(this, IDD); // 设置对话框的语言
return TRUE; } |
6、保存编译并运行。
打开程序MultiLanDemo.exe的关于对话框,察看是否是中文的。
关闭程序。
此时可以发现在MultiLanDemo.exe的目录下有一个Config.ini文件和Language文件夹,
在Language文件夹下有一个Default.ini文件。
说明:
Config.ini:保存了当前选择的语言。
Default.ini:存放的是程序的默认语言
四、生成多语言版本
7、在Language文件夹下复制Default.ini,生成它的一个副本。我们通过该这个副本,生成多国语言版本。在此,我们更改副本文件的名字为English.ini。
8、打开English.ini,修改内容。
原文件内容 | 修改后的内容 |
[Setting] Language=Default [Menu] IDR_D128I IDR_D128I IDR_D128I IDR_D128I IDR_D128I //..... | [Setting] Language=English [Menu] IDR_D128I IDR_D128I IDR_D128I IDR_D128I IDR_D128I //........ |
注意:Language=[语言名],语言名必须与文件名相同。例如,English.ini. Language=English
9、打开config.ini文件,修改为:
[Setting] Language=English |
10、大功告成。重新运行MultiLanDemo.exe。程序变成英文界面的了。
是不是很简单呢?