之前上学的时候做过一个东西,需要中英文软件界面,并且需要随时可以切换,当时是师妹来做的,用的最直接也是最笨的办法, what?
if(中文)
{
button1.Text = "花姑娘";
}
else
{
button1.Text = "flower girl";
}
网上的解决方案一般是用资源DLL,即写一个控制台项目--DLL,在里面添加stringTable资源,做中英文两个DLL,其中的IDS_XX是相同的,每个IDS_XX对应一个词的中英文版,
例如英文版的IDS_BTN_PLAY-----101-----“PLAY”,
中文版的IDS_BTN_PLAY-----101-----"播放",
依此类推
用的时候用一个标记来表示当前的语言,然后如下:
1 //英文
2 if(TRUE != m_bIsEnglish)
3 {
4 if(m_hLanguage != NULL)
5 {
6 FreeLibrary(m_hLanguage);
7 }
8
9 m_hLanguage = LoadLibrary(_T("English.dll"));
10
11 const int MAX = 100;
12 LPTSTR lpBuffer = new TCHAR[MAX];
13 ZeroMemory(lpBuffer, MAX * sizeof(TCHAR));
14
15 LoadString(m_hLanguage, IDS_BTN_PLAY, lpBuffer, MAX);
//使用时需要按照DLL资源定义该IDS_XX
16 17 SetDlgItemText(IDC_BTN_PLAY, lpBuffer); 18 19 m_bIsEnglish = TRUE; 20 21 delete[] lpBuffer; 22 23 lpBuffer = NULL; 24 25 }
如果是中文则类似,不再赘述。