引言
经常遇到有客户提出希望能把TestStand用户界面进行本地化。由于用户界面中采用了很多的TestStand UI控件,这些控件的标题文本是随着TestStand的状态变化而自动更新的,因此无法在用户界面编辑状态下像普通控件一样直接进行修改。而如果需要通过编程动态的去更新,这又显得有些复杂了。下面我们来讲一讲,如何本地化它。
1,ini文件的组织特点就是节和键,每一个键有特定的标签,TestStand给每一个标签都赋了常量值,因此如果要增加一种语言的支持,只要找到该标签并修改它的值就可以了。
2.不过在修改之前,应该先将整个English目录拷贝一份至<TestStandPublic>\Components\Language\目录,并重命名如Chinese,这为添加新的语言包做准备。之后对Chinese目录下的ini文件进行修改,比如经常被修改的文件UIControlString.ini、ModelString.ini。修改完成之后,在序列编辑器的菜单Configure»Station Options»Language中,就发现多了Chinese选项,选择它后重启序列编辑器或用户界面就可以看到本地化的效果。放在<TestStand Public>目录主要目的是为了系统维护、部署方便,因为<TestStand Public>目录下的数据不会因为TestStand重装或其它原因导致丢失。
以前面多执行用户界面为例,如果要本地化界面中的命令按钮,只需要在新创建的Chinese目录下,完成如下的修改后,就可以看到汉化的效果了。
1. 使用记事本打开ModelStrings.ini;
2. 搜索Test UUTs,将TEST_UUTS = "Test UUTs"替换为TEST_UUTS = "连续测试";
3. 搜索Single Pass,将SINGLE_PASS= "Single Pass"替换为SINGLE_PASS= "单次执行";
4. 保存并关闭文件。
5. 使用记事本打开UIControlStrings.ini,
6. 搜索Open Sequence File,将FILE_OPEN = "&Open Sequence File..."替换为FILE_OPEN = "打开序列文件";
7. 搜索Close &Sequence File,将FILE_CLOSE_SEQUENCE_FILE="Close &Sequence File"替换为FILE_CLOSE_SEQUENCE_FILE = "关闭序列文件";
8. 搜索Terminate All,将DEBUG_TERM_ALL = "Terminate All"替换为DEBUG_TERM_ALL="终止所有";
9. 搜索Lo&gin,将FILE_LOGIN = "Lo&gin..."替换为FILE_LOGIN = "登陆";
10. 搜索Logo&ut,将FILE_LOGOUT = "Logo&ut"替换为" FILE_LOGOUT = "注销";
11. 搜索&Run,将EXECUTE_RUN_SELECTED = "&Run %1"替换EXECUTE_RUN_SELECTED = "运行 %1";
12. 保存并关闭文件。
本地化,该方法一次性对所有TestStand UI控件进行本地化,不过它只针对TestStand UI控件,对其它非TestStand UI控件的用户界面元素,则需要借助于TSUtil库,下方表格中列举了在不同开发环境中TSUtil库所提供的本地化函数。在TestStand自带全功能用户界面中,都提供了本地化的示例代码,大家可以参考。