【软件多国语言】一个demo

之前上学的时候做过一个东西,需要中英文软件界面,并且需要随时可以切换,当时是师妹来做的,用的最直接也是最笨的办法, 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 }

如果是中文则类似,不再赘述。

 

  

原文地址:https://www.cnblogs.com/cuish/p/3159010.html