欢迎来到天天文库
浏览记录
ID:9223891
大小:447.36 KB
页数:8页
时间:2018-04-23
《[labview]边干边学界面本地化》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、LabVIEW开发技术丛书边干边学界面本地化gsdzone.net/community目目录录背景1实现2-5总结6背景LabVIEW功能越来越强大,用LabVIEW开发的程序也越来越复杂。很多国内的工程师用LabVIEW开发的程序也开始冲出亚洲,走向世界。但是为了让LabVIEW编写的程序可以进销海内外,大家遇到的一个棘手的问题就是本地化的问题。如何让界面上的文字能够按照我们的需要随时切换呢?实现本地化的方法有很多。我们姑且分为静态和动态的两种。所谓静态的实现,其实就是在开发完成乊后,根据我们需要
2、发布的语言种类,将源代码直接做本地化。比如我们开发好的VI前面板都是英文显示的,需要中文版本的时候,直接在源代码的前面板上把各种文字改成中文的再打包发布。这样做显然费时费力,而且很不灵活。动态的实现方法,也是很多高级编程语言所使用的方法。这种方法把程序的源代码和界面文字分开。界面文字保存在一个资源文件里面和程序一起发布。所有的界面文字都是从资源文件里面动态读取出来然后显示的。这样做的一个最大好处就是,很容易实现语言的本地化。即使程序已经发布成EXE了,也可以通过修改资源文件方便地实现界面语言的本地化
3、。以前在LabVIEW中要实现本地化,大都只能静态的实现。LabVIEW在生成安装包的时候也可以选择语言,但是那些也是针对一些系统自带的菜单和对话框。有一种动态实现本地化的方法是用ini文件来做资源文件。从而通过LabVIEW程序动态读取ini文件中事先设定好的各种语言的项目来正确显示对应的文字。这种方法是可行的,但是需要编写大量的VI来管理这些ini文件中的项目。许多LabVIEW的开发者都在为希望能够实现界面上的语言随时按需切换而呕心沥血,煞费苦心。现在,基于XML技术的本地化配置编辑器LCE出
4、现啦!有了它,我们就可以非常方便地实现随心所欲本地化的梦想。图1中是最终程序效果,用左边的下拉列表控件可以实现语言的动态切换。图1.最终效果(左)英文界面;(右)中文界面1实现(LCE的介绍请参见:http://zone.ni.com/devzone/cda/epd/p/id/6257)图2显示了基于LCE(LocalizationConfigurationEditor)来实现本地化的结构图。LCE是在NI的Devzone上新推出的一个可以免费下载使用的工具包。它有两个部分组成:LCE编辑器和LCE
5、函数。LCE编辑器:它其实是用LabVIEW2009开发出来的应用程序。可以创建并修改XML的资源文件。资源文件中包括控件和菜单在各种语言下的名称。LCE库文件:在LabVIEW中提供LCE的一系列VI来实现动态调用各种语言下的对应项目的字符。然后通过属性节点赋给各个菜单和控件。图2.LCE实现本地化的结构安装LCE解压并安装lce_installer_101.zip即可。由于LCE是LabVIEW2009编写的,所以需要LabVIEW2009的RTE(下载链接:http://joule.ni.co
6、m/nidu/cds/view/p/id/1383/lang/zhs)。然后安装lce_lib_installer_b.zip。这个是调用资源文件的那一系列VI。这套VI支持LabVIEW8.6.1以及以后版本。安装这些文件就会在LabVIEW的函数选版中的用户库里面添加LCE的VI。使用介绍创建资源文件从开始菜单»程序»LocalizationConfigurationEditorv1»LCE就可以打开LCE来创建资源文件了。2首先填入需要的语言然后在左边的树形结构下右键创建resource,每个
7、resource都有一个唯一的名称,用以以后在程序中调用。每个resource下都可以定义每种语言对应的字符串。按照这个方法创建需要本地化的resource列表。也可以把相关的resource创建在一个文件夹。最后点击保存即可。可以通过LCE打开文件夹中example目录下的Localization.xml来看我已经创建好的例子。从资源文件获取语言信息3在LabVIEW的函数选版»用户库»LCE里面可以找到LCE的几个VI。主要就是用下面2个VI就够了。在程序最开始,要通过LoadLCEResour
8、ceList.vi来指定资源文件的路径。图3.LoadLCEResourceList.vi然后通过LCE_GetResourceValue.vi指定resource的名称和语言的种类来得到需要显示的字符串。图4.LCE_GetResourceValue.vi例程LCE提供了一个创建和读取资源文件的方法来管理本地化的语言信息。那么如何通过程序将所有的菜单和控件的名称改变过来呢?为了帮助大家理解,我编写了一个简单的例程。运行效果请参考example目录下的local.v
此文档下载收益归作者所有