菜鸟学做多语言版程序
Posted 力为
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了菜鸟学做多语言版程序相关的知识,希望对你有一定的参考价值。
菜鸟学做多语言版程序
--------用MythLanguage 简化MFC程序的多语言版本开发。
[DownLoad the Demo]
[DownLoad the Demo]
友情提示:
开发平台 | 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 0M-1_=文件(&F) IDR_D128I 0M57600__=新建(&N) Ctrl+N IDR_D128I 1M57601__=打开(&O)... Ctrl+O IDR_D128I 3M57616__=最近文件 IDR_D128I 5M57665__=退出(&X) //..... | [Setting] Language=English [Menu] IDR_D128I 0M-1_=&File IDR_D128I 0M57600__=&New Ctrl+N IDR_D128I 1M57601__=&Open... Ctrl+O IDR_D128I 3M57616__=Rencent Files IDR_D128I 5M57665__=E&xit //........ |
注意:Language=[语言名],语言名必须与文件名相同。例如,English.ini. Language=English
9、打开config.ini文件,修改为:
[Setting] Language=English |
10、大功告成。重新运行MultiLanDemo.exe。程序变成英文界面的了。
是不是很简单呢?
以上是关于菜鸟学做多语言版程序的主要内容,如果未能解决你的问题,请参考以下文章
.NET Core工作流引擎(RoadFlow)多语言版发布
更新 | FCPX 10.3.4苹果视频剪辑软件Final Cut Pro X 10.3.4 MacOSX中文/英文/多语言版
QML程序实现动态切换多语言(ListModel/ListElement中的文本的多语言处理)