【软件多国语言】一个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 }

 

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

 

  

 

 

 

你可能感兴趣的:(【软件多国语言】一个demo)