多语言支持的ActiveX控件使用指南

在全球化的今天,软件的多语言支持变得越来越重要。许多用户可能并不擅长英语,因此,为他们提供母语支持是提升用户体验的关键。为了解决这一问题,开发了一个ActiveX控件,它可以帮助程序员轻松地将程序的用户界面翻译成所需的语言。本文将详细介绍如何在VC++和VB程序中使用这个控件。

如何使用控件

在程序中使用这个控件非常简单,这里提供了两种方法:一种是用于VC++程序,另一种是用于VB程序。

对于VC++程序,控件提供了一个名为TranslateWindow的函数,用于翻译程序的用户界面。假设有两个菜单项:英语和越南语。英语菜单项用于将程序的用户界面翻译成英语,而越南语菜单项则翻译成越南语。只需要在程序中添加以下代码:

void CTestSDIView::OnLanguageEnglish() { int nIndex = m_IGMLCtrl.LanguageByName("English"); m_IGMLCtrl.SetActiveLanguage(nIndex); m_IGMLCtrl.TranslateWindow((LONG)AfxGetMainWnd()->GetSafeHwnd()); } void CTestSDIView::OnLanguageVietNamese() { int nIndex = m_IGMLCtrl.LanguageByName("VietNamese"); m_IGMLCtrl.SetActiveLanguage(nIndex); m_IGMLCtrl.TranslateWindow((LONG)AfxGetMainWnd()->GetSafeHwnd()); }

对于使用VB编写的程序,控件提供了一个名为TranslateWindow的函数来解决问题。由于几乎所有VB程序都基于COM技术,因此控件需要以不同的方式完成任务。在这种情况下,需要在项目中添加以下代码:

Private Sub MenuItem_Click0() IGMLCtrl.ActiveLanguage = IGMLCtrl.LanguageByName("English") bResult = IGMLCtrl.TranslateObject(Me) End Sub

重要事项

在使用控件之前,需要加载字典文件。加载指定的字典文件,可以这样做:

void CTestSDIView::OnInitialUpdate() { // your initial code here... if (m_IGMLCtrl.LoadDictionary("Dictionary.dic")) { // Translate Window into recently used language. m_IGMLCtrl.TranslateWindow((LONG)GetSafeHwnd()); m_IGMLCtrl.TranslateWindow((LONG)AfxGetMainWnd()->GetSafeHwnd()); } } Sub Form_Load(..) // your initial codes IGMLCtrl.LoadDictionary "Dictionary.dic" IGMLCtrl.TranslateObject(me) End Sub

在这个例子中,从程序启动的位置加载了名为Dictionary.dic的文件。

在运行时切换语言

如果希望在运行时切换语言,必须首先设置活动语言索引,然后调用TranslateWindow(...)TranslateObject(...)函数。

ActiveLanguageNativeLanguage属性是字典文件中语言的索引。可以直接设置它,或者通过LanguageByName(LPCTSTR lpszLanguageName)函数设置。

字典文件

字典文件对于确保控件正常工作非常重要。它通常是一个文本文件,因此对于程序员和最终用户来说都更容易。其结构如下所示:

[Configuration] Active Language=VietNamese Native Language=English [English] &File &New\tCtrl+N &Open &Save [VietNamese] Tập tin Tạo mới Mở file Lưu file Lưu file với tên mới

Active Language键指定程序当前使用的语言。Native Language键指定程序员在设计时使用的语言。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485