多语言

Delphi程序实现多语言功能 在我们的产品需要适用于多种语言的用户时,多语言切换功能就非常重要了,今天又一朋友咨询多语言切换功能,下面我分享多年实践总结出来的经验及代码,希望对你有帮助,我这里是使用INI文件来存取,你也可以用XML或其他等,使用只时需要在基类Form(用于继承)的FORMSHOW中另一句代码 SwitchLanguage(self ,FLangID);// FLangID为你要切换的语言代码. 这样就实现多 阅读详情

程序运行效果图:

效果图



VC中实现多语菜单非常容易,下面以英汉对照菜单为例说明多语菜单实现的方法。

一、建立工程项目文件

选择语言为中文,其余采用默认,添加中英文切换菜单IDD_MENU_CHANGE

二、用文本形式打开资源文件,找到IDR_MAINFRAME的菜单文本内容如下:

IDR_MAINFRAME MENU PRELOAD DISCARDABLE
BEGIN
POPUP "文件(amp;F)"
BEGIN
MENUITEM "新建(amp;N)/tCtrl+N", ID_FILE_NEW
MENUITEM "打开(amp;O).../tCtrl+O", ID_FILE_OPEN
MENUITEM "保存(amp;S)/tCtrl+S", ID_FILE_SAVE
MENUITEM "另存为(amp;A)...", ID_FILE_SAVE_AS
MENUITEM SEPARATOR
MENUITEM "打印(amp;P).../tCtrl+P", ID_FILE_PRINT
MENUITEM "打印预览(amp;V)", ID_FILE_PRINT_PREVIEW
MENUITEM "打印设置(amp;R)...", ID_FILE_PRINT_SETUP
MENUITEM SEPARATOR
MENUITEM "最近文件", ID_FILE_MRU_FILE1, GRAYED
MENUITEM SEPARATOR
MENUITEM "退出(amp;X)", ID_APP_EXIT
END
POPUP "编辑(amp;E)"
BEGIN
MENUITEM "撤消(amp;U)/tCtrl+Z", ID_EDIT_UNDO
MENUITEM SEPARATOR
MENUITEM "剪切(amp;T)/tCtrl+X", ID_EDIT_CUT
MENUITEM "复制(amp;C)/tCtrl+C", ID_EDIT_COPY
MENUITEM "粘贴(amp;P)/tCtrl+V", ID_EDIT_PASTE
END
POPUP "查看(amp;V)"
BEGIN
MENUITEM "工具栏(amp;T)", ID_VIEW_TOOLBAR
MENUITEM "状态栏(amp;S)", ID_VIEW_STATUS_BAR
MENUITEM "弹出CD", ID_VIEW_FULLSCREEN
MENUITEM "英文", ID_MENU_CHANGE
END
POPUP "帮助(amp;H)"
BEGIN
MENUITEM "关于 FullScreen(amp;A)...", ID_APP_ABOUT
END
END

在此后加入英文菜单资源复制上述文本,把其中的中文改成英文,并作些改动IDR_MAINFRAME_ENGLISH MENU PRELOAD DISCARDABLE

BEGIN
POPUP "File(amp;F)"
BEGIN
MENUITEM "New(amp;N)/tCtrl+N", ID_FILE_NEW
MENUITEM "Open(amp;O).../tCtrl+O", ID_FILE_OPEN
MENUITEM "Save(amp;S)/tCtrl+S", ID_FILE_SAVE
MENUITEM "Save as(amp;A)...", ID_FILE_SAVE_AS
MENUITEM SEPARATOR
MENUITEM "Print(amp;P).../tCtrl+P", ID_FILE_PRINT
MENUITEM "Print Preview(amp;V)", ID_FILE_PRINT_PREVIEW
MENUITEM "Print Setting(amp;R)...", ID_FILE_PRINT_SETUP
MENUITEM SEPARATOR
MENUITEM "Recent Files", ID_FILE_MRU_FILE1, GRAYED
MENUITEM SEPARATOR
MENUITEM "Exit(amp;X)", ID_APP_EXIT
END
POPUP "Edit(amp;E)"
BEGIN
MENUITEM "Undo(amp;U)/tCtrl+Z", ID_EDIT_UNDO
MENUITEM SEPARATOR
MENUITEM "Cut(amp;T)/tCtrl+X", ID_EDIT_CUT
MENUITEM "Copy(amp;C)/tCtrl+C", ID_EDIT_COPY
MENUITEM "Paste(amp;P)/tCtrl+V", ID_EDIT_PASTE
END
POPUP "View(amp;V)"
BEGIN
MENUITEM "ToolBar(amp;T)", ID_VIEW_TOOLBAR
MENUITEM "StatusBar(amp;S)", ID_VIEW_STATUS_BAR
MENUITEM "Eject CD", ID_VIEW_FULLSCREEN
MENUITEM "Chinese", ID_MENU_CHANGE
END
POPUP "Help(amp;H)"
BEGIN
MENUITEM "About FullScreen(amp;A)...", ID_APP_ABOUT
END
END

修改完成后保存资源。

  三、在 CMainFrame中加入变量CMenu m_englistmenu 和m_chinesemenu保存中英文菜单资源
加入变量enum Enum{e,c}m_current 保存当前菜单

  四、由于默认为中文菜单在 CMainFrame::CMainFrame()中设置m_current=c;表示当前为中文菜单,在CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)中装入英文菜单资源 m_englistmenu.LoadMenu("IDR_MAINFRAME_ENGLISH");
HMENU m_hMenu=::GetMenu(this->m_hWnd); // 保存中文菜单
m_chinesemenu.Attach(m_hMenu);

  五、加入菜单函数 void CMainFrame::OnMenuChange()
{
if(m_current==e)
{
SetMenu(amp;m_chinesemenu);
m_current=c;
}
else
{
SetMenu(amp;m_englistmenu);
m_current=e;
}

}
  编译运行程序您就可以获得一个具有英汉对照菜单的应用程序。

系统多语言实践(一) 应用系统支持多语言,在有跨国业务的公司中,是个很常见的需求。一般涉及到的语言有中简、中繁、英文、日语等。本文就.Net Web平台下实现该需求做一些初步探讨。 在Asp.Net Web Form时代,微软就给出了一个解决方案。简单来讲,就是将多语言资料维护到*.{Culture Code}.resx文件中,绑定的工具根据该文件自动生成静态的多语言访问类。 这个方案,简单实用。对于一般的小项目也 阅读详情

相关推荐

LVGL 多语言

lvgl 一种多语言切换实现方案

不咸不要钱 2423

多语言网站的设计的探索——安企CMS多语言功能的实现记录

通过支持多种多语言实现方式,安企CMS为用户提供了灵活的多语言站点解决方案。无论是路径分段、子域名还是查询参数,用户都可以根据需求选择适合自己的实现方式。同时,文档自动同步与翻译功能的加入,让国际化内容的维护更加高效。未来,安企CMS将持续优化多语言功能,探索更多创新的多语言实现策略。

no_reg的博客 1563

03 Aras Innovator二次开发-服务端方法(二)

Aras Innovator二次开发-服务端方法书写

企业信息化(PLM,ERP.MES) 2017

前端多语言的实现

前言 多语言的重要性相信不需要多言,但是,对于使用ExtJS之类的前端框架做开发,很多时候要使用一些多语言消息,难道都写在动态页面里?这样,就会对动态页面有依赖。如果说页面是访问量非常大的,比如:首页,那么静态化是非常有必要的。那问题就来了,怎么做多语言的静态化?事实上,使用一些模板语言,是能做到多语言的静态化,即根据不同语言,生成不同的静态页面。但是,这样一来,静态页面就非常多了,而且很多地方

深伤老农 8554

三菱CNC数据采集实战:从SDK安装到C#代码调试全流程(附完整资源包)

本文为C#开发者提供了三菱CNC数据采集的完整实战指南。详细介绍了从获取并安装核心A2协议SDK、配置Visual Studio开发环境,到理解COM接口文档、封装C#通信类,并构建具备多设备连接与定时采集功能的WinForms应用程序的全流程。文章重点分享了网络调试、异常处理及性能优化等关键实战经验,帮助开发者高效打通工业自动化数据采集链路。

oauth7security的博客 707

Pikachu靶场环境搭建(Windows环境下安装详细教程)

Pikachu靶场是一个漏洞测试练习平台。其中包含了常见的web安全漏洞,如果你是一个渗透测试学习者没有靶场的练手,那么pikachu是一个很好的测试平台。

weixin_42857656的博客 1825

静态html 多语言,前端多语言的实现

前言多语言的重要性相信不需要多言,但是,对于使用ExtJS之类的前端框架做开发,很多时候要使用一些多语言消息,难道都写在动态页面里?这样,就会对动态页面有依赖。如果说页面是访问量非常大的,比如:首页,那么静态化是非常有必要的。那问题就来了,怎么做多语言的静态化?事实上,使用一些模板语言,是能做到多语言的静态化,即根据不同语言,生成不同的静态页面。但是,这样一来,静态页面就非常多了,而且很多地方是完...

weixin_39968309的博客 2026

无人机核心部件解析:从机架到飞控的全面指南

本文全面解析无人机的核心部件,从机架材质选择到飞控系统调参,提供专业指南。重点介绍碳纤维机架、无刷电机搭配、锂聚合物电池管理及飞控传感器配置,帮助读者掌握无人机组装与优化的关键技术,适用于航拍、测绘、农业植保等多种应用场景。

weixin_30872499的博客 468

多语言支持:如何使用SpringBoot实现多语言支持

1.背景介绍 多语言支持是现代应用程序中的一个重要特性,它允许应用程序根据用户的语言偏好提供本地化内容。在本文中,我们将探讨如何使用Spring Boot实现多语言支持。 1. 背景介绍 多语言支持是一个复杂的主题,涉及到国际化(I18N)和本地化(L10N)。国际化是指应用程序在不同的语言环境下运行,而本地化是指将应用程序的内容翻译成不同的语言。这使得应用程序能够更好地服务于全球用户。 ...

AI天才研究院 3375

巨正则蒙特卡洛—甲烷和二氧化碳的竞争吸附GCMC

巨正则蒙特卡洛—甲烷和二氧化碳的竞争吸附GCMC

Rockyoung 8021

SpringBoot整合JWT实战:从零构建无状态认证系统,详解Token生成、验证与安全最佳实践

JWT在SpringBoot中的实现与应用 摘要:本文介绍了JWT(JSON Web Token)的基本概念、与Session机制的对比,以及SpringBoot项目中JWT的整合实现。JWT由Header、Payload和Signature三部分组成,具有无状态、跨域支持等优势。文章详细展示了如何在SpringBoot项目中配置JWT环境,封装JWT工具类来实现Token的生成、解析和验证功能,包括密钥管理、自定义声明、签名验证等核心操作。通过对比表格和生活化比喻,帮助读者理解JWT与传统Session的

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 1775

nsis 多语言的使用

一 载入默认的界面文本和语言属性 NSIS有两种引入多语言的方法,其中: 使用缺省模式,引入代码如下 LoadLanguageFile "${NSISDIR}\Contrib\Language files\Czech.nlf" LoadLanguageFile "${NSISDIR}\Contrib\Language files\Dutch.nlf" LoadLanguageFile "${NSISDIR}\Contrib\Language files\French.nlf" LoadLan...

weixin_41619400的博客 1829

【异常】DeepSeek API HTTP 401 认证失败错误完整排查与解决方案

摘要:本文针对DeepSeek API开发中的HTTP 401认证失败错误进行深度解析,指出该错误属于不可重试的认证类问题。文章首先拆解错误日志关键字段,区分401与其他API错误的本质差异。随后提供优先级排序的全链路解决方案:1)检查API密钥有效性;2)规范请求头认证格式;3)排查账户权限状态;4)验证请求环境配置。最后建议通过新建测试密钥、使用官方示例代码或联系技术支持进行兜底处理。全文采用技术脱敏处理,为开发者提供系统性的401错误排查指南。(149字)

奶爸的编程之路,也就一周冷个三天 1531

CocosCreator多语言包的处理

test

大猪的博客 2174

生信分析进阶14 - 从GTF文件提取基因、转录本、TSS和TSE

从GTF文件提取基因、转录本、TSS和TSE

LittleComputerRobot的博客 678

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

React 中多语言的配置

React 中多语言的配置 使用React-intl 插件来实现全局的多语言控制。 通过配置JSON key value键值对的形式来实现适应多语言需求。 第一步安装多语言插件: react-intl npm i react-intl react-intl 文档地址:链接 第二步,准备配置工作。 安装完成以后可以在项目的根目录中建立一个locales文件夹来存放对应的语言包(其实就是一些key value键值对。) 然后建立两个文件夹:分别放置导出的语言配置:我本人的目录结构如下:

YS182118的博客 2435

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Vuepress多语言支持

多语言支持 站点多语言配置 要启用 VuePress 的多语言支持,首先需要使用如下的文件结构: study ├─ README.md ├─ foo.md ├─ nested │  └─ README.md └─ zh ├─ README.md ├─ foo.md └─ nested    └─ README.md 然后,在 .vu...

雷佳佳的博客 3486

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

C#多语言

C#实现多语言方法有很多种。这里只介绍两种,一种是修改对应每种语言的资源文件;另外一种是通过XML自动加载某语言的xml文件,同时动态读取对应的自动值并显示。   一、修改资源文件 1、要在项目稳定以后,再做多语言本地化。 2、做语言主要注意一下几点 2.1控件(包括窗体)的多语言支持,可以在vs2008的命令提示中输入winres。采用可视化的操作界面进行设

nma_123456的专栏 1924

HTML多语言切换Demo及JS多语言插件:实现流畅的语言切换

HTML多语言切换Demo及JS多语言插件:实现流畅的语言切换 【下载地址】HTML多语言切换Demo及JS多语言插件 本仓库提供一款高效便捷的HTML多语言切换Demo,内置JS多语言翻译插件,帮助开发者轻松实现流畅的语言切换功能。Demo具备快速响应、操作简单、易于理解的特点,双击屏幕即可切换语言,无需复杂配置。内置...

gitblog_06708的博客 831

多语言网站开发

转自:http://www.phpwind.net/simple/t84546.html前言:   多语言网站开发,重点的还是在解决语言之间的问题。   那如何解决这个问题呢?大概就分三步走:   1.页面多语言   2.数据库多语言   3.用户访问语言统一   1.页面多语言 需要考虑的问题: A.用户登陆时候,自动识别字符,调用不同的语言包? B.用户切换不同语言时候,调用不同的语言包?

卢恪 2065

springboot多语言国际化

#springboot多语言国际化 ##配置 实现LocalResolve接口,定义MessageService bean @Configuration public class MyLocalResolve implements LocaleResolver { @Override public Locale resolveLocale(HttpServletRequest h...

xueshanfeihu555的博客 2098

golang多语言支持

beego中设置全局变量如下: Translation i18n.IL Lang string //设置语言包,zh、en LangPath string //设置语言包所在位置 初始化多语言函数: func InitLang(){ beego.Translation:=i18n.NewLocale() beego.Translation.LoadPath(beego.LangPath) beego.Translation.SetLocale(

4270

Backend - Django 多语言

知识量决定了未来能走多远

是萝卜干呀的博客 1655

如何处理前端多语言支持?

如何处理前端多语言支持?

商务合作欢迎私信我 1万+

ThinkPHP 多语言

ThinkPHP支持多语言,采用的是语言文件的方式。如果你的应用涉及到多个语言版本和国际化的支持,那么可以定义相关的语言包文件。任何字符串形式的输出,都可以定义语言常量。 启用多语言 要启用多语言功能,首先要下载多语言行为扩展(http://www.thinkphp.cn/extend/186.html),或者下载官方的完整扩展包(http://www.thinkphp.cn/down

dianas 1197

多语言网站

多语言网站,顾名思义就是能够以多种语言(而不是单种语言)为用户提供信息服务,让使用不同语言的用户都能够从同个网站获得内容相同的信息。多语言网站实现方案1,静态:就是为每种语言分别准备一套页面文件,要么通过文件后缀名来区分不同语言,要么通过子目录来区分不同语言。例如对于首页文件index_en.htm提供英语界面,index_gb.htm提供简体中文界面,index_big.htm提供繁体中文界面,

卢恪 1167
上一篇: HGE 游戏引擎
下一篇: SelectObject和DeleteObject函数
dadalan
博客等级 码龄20年 428粉丝 770原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值