-
目的
RobotWare6.10添加一个新特性,该特性允许用户交互的教学指令如UIMessageBox支持Unicode字符,我们知道,在此之前,使用快速编程语言,如果你需要使用UIMessageBox命令和用户交互,如只使用iso8859-1字符集是西文字符显示给用户,运营商掌握英语不是很好,这就增加了困难操作机器人系统。然而,从RW6.10开始,工程师或开发人员在开发该系统时可以在UIMessageBox和其他指令中添加中文字符,这大大简化了操作人员在需要与用户交互时使用该系统的难度。
重要的是要注意,函数不仅支持汉字,它支持多语言切换,也就是说,开发人员需要提供字符支持系统支持的所有语言,如果一种语言不提供数据文件,则系统将自动使用英语,所以英语格式字符串必须提供数据文档。
2.使用方法
2.1.编制多语言字符数据文档
2.1.1.英语XML数据文档
如前所述,英语是默认格式,因此在为所有其他语言创建数据文档之前,首先创建一个标准的英语格式字符数据文档。数据文档以XML格式保存,这里是名为“holiday”的英文XML数据文档的内容。XML”:
数据文档作为资源导入到机器人系统中,需要注意的是,数据的资源名称在系统中必须是***的,不能与其他名称冲突。上面文档中的资源称为Holiday。所有字符串都有一个数字格式的ID,通常从1开始,按顺序递增,不重复。
2.1.2.中文XML数据文档
使用默认的英文字符串XML数据文档,我们可以编译相同格式的中文字符串XML数据文档。下面也是一个名为“holiday”的中文XML数据文档的内容。XML”
除了语言和字符串值不同之外,要保持一致。如果您还需要支持其他类型的语言,如日语、俄语等,那么您可以通过逐个创建相应的语言数据XML文档来实现同样的功能。也可以对它进行非编程,以便当教程切换到其他语言(如日语或俄语)时,UIMessageBox仍将以英语显示。
2.2.文档结构
创建一个文件夹,文件夹名为“WACDemoCfg”,在里面再创建一个子文件夹“language”,然后在文件夹“language”里创建两个语言文件夹“en”和“zh”,语言文件夹命名需符合ISO 639标准。把前面创建的两个“holiday.xml”放到对应的语言文件夹中。目录和文件结构如下所示:
WACDemoCfg
│ install.cmd
│
└─language
├─en
│ holiday.xml
│
└─zh
holiday.xml
2.3.Install.cmd
上面显示的文件结构还有一个名称为“install.cmd”没有说明,它的内容如下:
setstr -strvar $TMP_ARC -value $BOOTPATH
setstr -strvar $BOOTPATH -value "$HOME/WACDemoCfg"
register -type rapid_text -resource holiday -min 1 -max 6 -prepath$BOOTPATH/language/ -postpath /holiday.xml
setstr -strvar $BOOTPATH -value "$TMP_ARC"
该段指令的目的就是把刚刚创建的多语言资源文件加载到机器人系统中,资源名为“holiday”,多语言字符串ID从1到6。
2.4.Home文件夹
为了让系统自动加载语言文件包,我们需要把前面创建好的“WACDemoCfg”文件夹复制到机器人系统Home目录下,并新建一个“ext_install.cmd”命令文件,该文件的内容如下:
#
include -path $HOME/WACDemoCfg/install.cmd
整个加载文件的目录结构如下:
Home
│ ext_install.cmd
│
└─WACDemoCfg
│ install.cmd
│
└─language
├─en
│ holiday.xml
│
└─zh
holiday.xml
当所有文件准备好并放到对应的目录位置后,我们需要重置系统,只有在系统重置后,多语言字符资源文件才会导入到机器人系统中,供程序使用。
2.5.Rapid程序
系统重启后,我们就可以在程序中自由使用资源文件中字符串了,示例代码如下:
PROC HolidayRoutine()
VAR string strHeader;
VAR string strMessage1;
VAR string strMessage2;
VAR string strMessage3;
VAR string strMessage4;
VAR string strMessage5;
strHeader:="{{holiday:1}}";
strMessage1:="{{holiday:2}}";
strMessage2:="{{holiday:3}}";
strMessage3:="{{holiday:4}}";
strMessage4:="{{holiday:5}}";
strMessage5:="{{holiday:6}}";
UIMsgBox\Header:=strHeader,strMessage1\MsgLine2:=strMessage2\MsgLine3:=strMessage3\MsgLine4:=strMessage4\MsgLine5:=strMessage5\Buttons:=btnOKCancel\Icon:=iconInfo;
ENDPROC
从上面代码我们可以看到,如果需要调用资源文件中的字符串,需要使用"{{holiday:1}}"格式,其中hodilay为资源名,1为对应的字符串ID。下面两张图是系统切换到中文和英语两种语言模式时对应的程序运行截图:
2.6.总结
到目前为止,我们已经取得了我们在快速的添加多语言支持用户交互界面弹出窗口过程函数,熟练的使用功能,并在开发过程中合理使用,可以大大方便国内客户使用ABB机器人系统,克服学习的困难造成的语言障碍,使ABB机器人更用户友好的一个阶段。
转载于:机器人在线
更多:ABB机器人