多语开发

在设计仪器仪表设备的软件时候,经常有多语的需求,也就是说允许通过设置,影响界面显示文字的内容

常规实现中,需要用软件通过固化的全局数据中的语种来决定按钮等界面的显示字符串,这样不仅软件实现复杂,而且大量使用字符串赋值,导致单片机RAM空间大量使用,从而导致资源紧张,影像数据处理;

因此我们针对这个需求,在内核增加了多语模块,主要实现:

具体实现:

一、编辑多语对应的字符串

上位机菜单:工程-->多语数据编辑:

二、使用语句切换语种

void x3.onclick()
{   //中文
  setlanguage(0);gopage(0); //切换到slang
}
void x4.onclick()
{ //英文   
setlanguage(1);gopage(0);   //切换到lang1
}

实际效果:

中文界面:

英文界面:

注意事项

由于是资源字符串的替换,因此请认为分别显示字符串和代码字符串,用于程序处理的代码字符串被多语系统替换后会影响程序的运行,比如下面语句:

str s="ABC";
setlanguage(1);
echo(s);

在正常的情况下,输出会输出ABC,但是在多语模式下,当设置:

slang lang1
ABC 123

此时上段代码会输出123,请注意。

备注