delphi多语言MultiLanguage支持,经搜索网上流传的使用教程如下,
1.创建一个工程MultiLanguage, 在Form上放一个Label和一个Button, 分 别把Caption赋值为“English Label”和“English Button”。 2.选择菜单Project|Languages|Add ..., Delphi显示Add Languages对话框, 选择Next。 3.从语言列表中选中“英语(美国)”和“中文(中国)”, 选择Next。 4.ITE会根据所选的语言创建子目录,目录名称是语言的缩写,选择Next。 5.第一次增加语言时, Update Mode固定为Create new, 选择Next。 6.选择Finish。 Delphi会自动创建支持不同语言的资源动态库。 Delphi还会自动创建一个工程组, 其中包括原有的MultiLanguages.EXE, 还包括新建 的两个资源动态库 (MultiLanguages.enu, MultiLanguages.chs)。保存工程组。 Delphi启动Translation Manager, ... 选择“中文(中国)”|Forms|Unit1, 填写翻译后的中文。保存并关闭。 打开Project Manager, 编译MultiLanguages.enu和MultiLanguages.chs, Delphi会在 相应的子目录生成资源动态库(我的目录下有三个文件 扩展名分别是 rc rcn res )
此教程不够全面、详细,工程创建完成,接下来要怎么修改呢?
本人研究delphi自带的demo(Demos\RichEdit)后,颇有心得,现在将Translation Manager使用方法共享。
1.打开工程组bpg文件,点击View Form(Shift + F12),会看到有exe对应的窗体和多语言chs、enu等对应的窗体。exe文件对应的窗体可以增加、删除、修改窗体上的控件,而多语言chs、enu等对应的窗体只能调整窗体上的控件的caption和位置。如果在多语言chs、enu等对应的窗体上增加、删除、修改窗体上的控件会报错Modification not allowed in a form resource.
2.打开exe对应的窗体,新增一个button。
3.exe对应的窗体增加了一个button,这里就需要更新到多语言chs、enu等对应的窗体上。怎么操作呢?首先保存修改后的exe对应的窗体,再点击菜单
Project|Languages|Update Resource DLLs,接着会出现确认对话框,点击YES。
4.编译。点击View|Project Manager,首先编译多语言chs、enu等工程,在工程上右键点击Compile,然后再便宜exe工程。
-----------------------------------------------------------------------------------------------------------------------------------
动态切换语言
uses reinit;
引用reinit单元,该单元在delphi自带的demo(Demos\RichEdit)项目文件夹下。
1.首先声明
const ENU = (SUBLANG_ENGLISH_US shl 10) or LANG_ENGLISH; CHS = (SUBLANG_CHINESE_SIMPLIFIED shl 10) or LANG_CHINESE; CHT = (SUBLANG_CHINESE_TRADITIONAL shl 10) or LANG_CHINESE;
2.使用
procedure TForm1.N2Click(Sender: TObject); begin if LoadNewResourceModule(CHS) <> 0 then begin ReInitializeForms(); end; end; procedure TForm1.N1Click(Sender: TObject); begin if LoadNewResourceModule(CHT) <> 0 then begin ReInitializeForms(); end; end; procedure TForm1.N3Click(Sender: TObject); begin if LoadNewResourceModule(ENU) <> 0 then begin ReInitializeForms(); end; end;