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

 

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

 

  

 

 

 

posted on   崔好好  阅读(275)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示