简体转多语言程序开发的语言版本处理

      项目过程 2006-2-17 15:24

简体转多语言程序开发

 

 

第一、概述

单语言的简体中文版程序要转成多语言版本的程序在酷派WinCE手机上运行,需要改造程序代码,并且需要相关手机硬件支持。

可转成的语言版本有:英文、繁体中文、简体中文。

 

 

第二、升级手机

普通的7**CE手机暂不支持多语言版本,普通的8**CE手机也暂不支持多语言版本,只有7**G2手机支持多语言版本。

普通7**手机升级成7**g2手机步骤如下:

17**手机送硬件部门升级BIOS

2、运行引导程序

3、运行728g2_nk.bin(注意名字不是NK.bin

4、运行728g2专门的Install.exe (注意不要用728普通版的Install安装程序)

如果是支持多语言版本的机器,则直接从第2步开始。

 

第三、          改造编写程序

改造成支持英文版的程序,步骤如下:

步骤一:改造程序源码

程序源码中出现有汉字的地方,全部用字符串资源实现。(如果程序中没有汉字,则原应用

程序可以不用修改!),经过改造后,编译生成的执行文件就是多语言版本的执行程序。

 

范例:

如代码中出现了

::MessageBox(NULL, TEXT("请选择文件"), TEXT("提示"), MB_OK);

则需要把“选择文件”和“提示”汉字在ResourceàString TableàString TableàNew String

里加入字符串资源。

然后改造代码为:

TCHAR SZ1[80];

TCHAR SZ2[80];

LoadString(AfxGetInstanceHandle(),MESSAGE_CHOOSE_FILE,SZ1,sizeof(SZ1)/sizeof(TCHAR));

LoadString(AfxGetInstanceHandle(),MESSAGE_HINT,SZ2,sizeof(SZ2)/sizeof(TCHAR));

::MessageBox(NULL, SZ1, SZ2), MB_OK);

以上为伪码。

步骤二:创建英文资源动态库

1、用EVC新建一个纯资源DLL(不要使用MFCDLL)。具体为:NewàWCE Dynamic-Link Library àa simple Window CE DLL Projectàfinish

 

2、把原有简体程序中的*.rcresource.hnewres.h拷贝到资源DLL的工程目录,为了区分两个资源文件,可以把*.rc文件重命名为*_ENU.rc

 

3、把*_ENU.rcresource.hnewres.h加入到这个DLL工程中。具体为:FileViewà右键*.filesàAdd Files to Projectà然后依次选择三个文件

 

4、编译动态连接库。一开始编译会报错误,这个时候需要删除如下地方:

//#include "res\App_Sync728.rc2"  // non-Microsoft eMbedded Visual C++ edited resources

 

// Bitmap

//IDR_MAINFRAME           BITMAP  MOVEABLE PURE   "res\\Cmdbar.bmp"

//IDB_TAB_NORMAL          BITMAP  DISCARDABLE     "res\\TabN.bmp"

//IDB_TAB_SELECT          BITMAP  DISCARDABLE     "res\\TabS.bmp"

//IDB_TAB_REPEAT_NORMAL   BITMAP  DISCARDABLE     "res\\RepeatTabN.bmp"

//IDB_TAB_REPEAT_SELECT   BITMAP  DISCARDABLE     "res\\RepeatTabS.bmp"

总之一个原则,哪里提示报错就把哪里的代码注释掉再继续编译,直到最后编译通过。

 

步骤三:中文转英文资源

在动态库源程序中,编辑*_ENU.rc文件,将所有出现中文的地方翻译成英文,最后保存。

注意:

英文一般都是首字母大写。

如果是Button按纽等控件,可能出现英文太长,则直接修改*_ENU.rc中改控件的属性。不要从简体中文版将资源改过来了。Button的属性描述为:Left Top Width Height

步骤四:编译DLL*.exe.0409.mui

编译资源DLL,修改资源DLL生成文件的名字为*.exe.0409.mui。如果是原简体版本是动态库则为*.dll.0409.mui

APP_Address.exe的资源DLL名为APP_Address.exe.0409.mui

 

第三、上载程序

1、上载多语言程序,

将“第二”中改造编译后的多语言版本程序,上载到手机目录。

 

2、上载动态库资源文件

*.exe.0409.mui放到SystemData\app目录下或把*.dll.0409.mui放到

SystemData\Dll目录下。

 

注意:

这个时候如果出现目录不可写,则将“使手机目录可写”下的程序上载到手机并运行,从而开启目录可写。

 

第四、执行程序

在桌面直接点击执行程序或者在文件浏览下执行程序。如需选择语言则:

在手机的桌面:本机设置à本机设置à区域设定 ,选择所需语言。然后重新开启手机。

第五、说明

1、繁体的做法和英文做法一样,0409改为0404

2、“使手机目录可写”下的程序上载到手机并运行,可以开启目录可写。

3、英文版本下控件长度位置属性,直接在英文Dll资源文件里面调整,不必修改中文简体资源。

标签集:TAGS:
回复Comments() 点击Count()

回复Comments

{commenttime}{commentauthor}

{CommentUrl}
{commentcontent}