`
swimmer2000
  • 浏览: 37995 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

程序的多语言支持

阅读更多


经常会遇到这样的问题,程序要支持多种语言的操作系统。下面就说说VC6下怎样实现。

一、使用字符列表文件
这种方法算是比较好的。说白了就是配置文件,把所有需要显示的字符串都放在一个文件里,每种语言对应一个文件。如Simplified Chinese.ini、Traditional Chinese.ini、English.ini。文件内容示例如下:
// In Simplified Chinese.ini
ID_APP_CAPTION = 我的程序
……

// In English.ini
ID_APP_CAPTION = MyProgram

采用这种方法,程序中通常会创建一个类(如CLanguageManager)用来专门管理这些琐事。需要显示字符串,就通过调用CLanguageManager的方法(如GetAppCaption())来取得。

这方法的好处是你可以在程序运行时改变语言。缺点是需要仔仔细细的撰写这些配置文件。顺便提一下,早期版本的Skype用的就是这方法,不过它的配置文件是xml格式。

二、使用资源DLL

上面是每种语言对应一个配置文件,资源DLL类似,不过是每种语言对应一个资源DLL,类似的就会有Simplified Chinese.DLL、Traditional Chinese.DLL、English.DLL这样的DLL。资源DLL是一种特殊的数据,不能用上面的简单读取文件的方法来初始化内容,而会用到LoadLibrary和AfxSetResourceHandle两个函数。示例代码如下:

BOOL CMultilanguageApp::InitInstance()
{
 AfxEnableControlContainer();

 if (m_bChinese)
 {
  m_hLangDLL=::LoadLibrary("Chinese.dll");
 }
 else
 {
  m_hLangDLL=::LoadLibrary("English.dll");
 }

 AfxSetResourceHandle(m_hLangDLL);
 ……
}

与第一种方法比,资源DLL由于都是在VC6的集成环境中编辑,优点是比较直观,缺点是需要维护多份资源代码,且每次修改资源,都要重新编译和链接。第一种方法则只需要修改配置文件则可。同时,资源DLL的方法也做不到程序运行时切换语言。

三、包含多份资源

这种方法和第二种“使用资源DLL”的方法类似,不同之处是你可以在一个工程中管理多份资源,而不需要创建资源DLL。奥妙在于,资源编辑时,VC6 IDE提供了Insert Copy这个选项。在Insert新Copy时你可以指定与原资源不一样的语言。假设你的资源文件中有语言为“简体中文”和“繁体中文”的两份,那程序运行在简体下时,它便会显示简体中文,在繁体中文下时便会显示繁体中文的界面。在语言选择列表的最上面有个“Neutral”项,如果你创建了这样的资源,那么在每个操作系统中都将显示“Neutral”的资源,就是独立于操作系统代码页的意思。这种方法同样做不到动态切换语言,与第二种方法比,好处是不用管理资源DLL,程序启动时,会自动匹配相同代码页的资源。



分享到:
评论

相关推荐

    Golang多语言支持实现:构建国际化应用程序

    通过本文的介绍和示例,你应该能够了解如何在Go语言中构建多语言支持的应用程序。记住,多语言支持不仅仅是翻译文本,还包括对日期、时间、货币和数字的适当格式化。随着Go语言的不断发展,我们可以期待更多的工具和...

    使应用程序支持多语言demo

    首先,我们要理解多语言支持的基本原理。这通常涉及到资源文件的使用,这些文件存储了应用程序中的所有文本字符串,每种语言都有一个对应的资源文件。在Android中,这些资源文件位于res/values目录下,用不同的语言...

    vc程序多语言

    "vc程序多语言"这个主题主要涉及如何使Visual C++(VC)编写的程序能够适应不同国家和地区用户的需求,支持英语、中文、法语等多国语言。下面将详细解释实现这一功能的方法和步骤。 首先,我们需要理解多语言支持的...

    VC实现多语言程序版本

    多语言支持首先从资源文件开始。在VC中,资源文件(如.rc)用于存储应用程序的各种非代码元素,如对话框、菜单、字符串等。为实现多语言,你需要为每种语言创建一个对应的资源文件,每个文件包含特定语言的资源。...

    为应用程序添加多语言支持

    在开发跨地域、多文化背景的应用程序时,提供多语言支持是至关重要的。这不仅可以提升用户体验,也能扩大应用的潜在用户群体。以下是一份详细指南,涵盖了为应用程序添加多语言支持的关键步骤和技术。 1. **理解...

    winform已写好的程序支持多语言

    在C# WinForm开发中,实现应用程序的多语言支持是一项常见的需求。这使得软件能够适应不同国家和地区的用户,提供更友好的用户体验。标题提到的"winform已写好的程序支持多语言",意味着该程序已经实现了这一功能,...

    多语言切换forVB

    标题中的“多语言切换forVB”指的是在Visual Basic (VB)编程环境中实现应用程序多语言支持的功能。这通常涉及到国际化的概念,使得软件可以根据用户的语言设置显示相应的界面文本。多语言切换能够提高软件的全球适用...

    C# WinForm 程序的界面多语言切换

    * 添加了 ComponentResourceManager resources = 语句,以便支持多语言切换。 * 在 InitializeComponent 方法中,添加了资源管理器来管理多语言资源。 * 使用 resources.ApplyResources 方法来设置控件的多语言文本...

    winform多语言,vb.net,vb.net多语言程序,多语言切换,.net多语言实现

    在.NET框架中,开发Windows Forms(WinForm)应用程序时,我们常常需要实现多语言支持,以便用户可以根据他们的语言偏好来使用软件。VB.NET是.NET框架下的一种编程语言,完全支持多语言应用程序的开发。本篇文章将...

    wpf 多语言 支持demo

    首先,理解WPF中的资源管理是实现多语言支持的关键。WPF提供了一个强大的资源系统,可以用来存储UI元素的属性值,如文本、颜色等。通过使用ResourceDictionary,我们可以定义不同语言的资源文件,每种语言对应一个...

    多语言支持模块示例 VB源码

    标题中的“多语言支持模块示例 VB源码”指的是一个使用Visual Basic (VB)编程语言编写的代码示例,该示例着重展示了如何在应用程序中实现多语言支持。多语言支持是让软件能够适应不同地区用户的需求,显示不同的语言...

    VC开发多语言界面支持的简单方法

    visual c++制作多国语言版程序 i18n

    多语言支持程序经典实例

    本实例"多语言支持程序经典实例"旨在展示如何有效地实现这一功能,帮助开发者理解并掌握多语言编程的核心概念。下面我们将深入探讨相关知识点。 1. **国际化(Internationalization, i18n)与本地化(Localization,...

    基于微信小程序与多语言支持的菜谱爬虫设计源码

    本项目为基于微信小程序与多语言支持的菜谱爬虫设计源码,包含94个文件,涵盖24个Java类、16个PNG图片、12个JSON数据文件、11个JavaScript脚本、9个WXSS样式表、9个WXML模板文件,以及少量XML、MD、SQL、gitignore等...

    C++实现多语言程序Demo

    首先,理解C++中的多语言支持机制是至关重要的。C++本身并不直接支持多语言,但它提供了一些基础结构,如字符串和文件操作,开发者可以利用这些功能构建多语言系统。通常,我们会使用资源文件(如`.rc`文件)来存储...

    C++编程系列之为应用程序添加多语言菜单

    在C++编程中,为应用程序添加多语言支持是一项重要的任务,尤其对于面向国际市场的软件来说。本教程将针对初学者,逐步讲解如何实现这一功能。我们将主要关注如何设计和实现多语言菜单,使得用户可以根据自己的偏好...

    VB程序多语言包生成工具

    VB程序多语言包生成工具是一种专门用于Visual Basic (VB)应用程序的工具,它极大地简化了为软件添加多语言支持的过程。在开发跨地区、跨国度的应用时,提供多语言界面是必不可少的,以便不同国家和地区的用户都能...

    Winform实现多语言支持

    在开发Windows Forms应用程序时,为了让软件能够适应不同国家和地区的用户,实现多语言支持是非常重要的。"Winform实现多语言支持"这个主题涉及到Winform应用的国际化和本地化设计,主要利用.NET Framework提供的...

    vc实现多语言界面程序

    3. **设置多语言支持** - 在主程序中,我们需要链接到这个DLL,并提供一种机制让用户选择或自动检测系统语言。 - 使用`LoadLibrary`和`FindResource`函数加载和查找DLL中的资源,然后使用`LoadString`来获取相应的...

    Delphi多语言控件

    1. **多语言支持**:TsiLang 提供了一个统一的接口,允许开发者添加、管理和切换应用程序中的多种语言。这不仅包括常见的英文、中文、法文等,还可以扩展到更小众的语言。 2. **资源翻译**:控件可以自动处理字符串...

Global site tag (gtag.js) - Google Analytics