部分在OPM中获取接口获取到属性的DisplayLabel和属性类别的DisplayLabel和OPM界面上显示的不一致。
在OPM界面上显示的是label经过了本地化,而通过接口获取的数据却没有本地化。
在显示时在同一类别的四条属性,通过接口获取有两条得到的类别显示标签是没有本地化的数据。
同时四条数据的显示标签都没有本地化。
本地化还得调用专门的本地化接口才行。但我不确定这类接口是否公开了。需要给我一些时间研究后才能准确答复您
好的,谢谢老师回复。
我用的如下测试代码,在中文版MS中就能显示出中文的名称来。
for (ECPropertyP ecProp : elemInst->GetClass().GetProperties()) { WString valStr{ L"" }, customValStr{ L"" }; elemInst->GetValueAsString(valStr, ecProp->GetName().GetWCharCP(), false, 0); WPrintfString outStr2(L"\t%s[%s] = %s (categoryName=%s), Hide=%s", ecProp->GetDisplayLabel().GetWCharCP(), ecProp->GetTypeName().GetWCharCP(), valStr.GetWCharCP(), getCategoryName(ecProp), getHideStatus(ecProp)); mdlDialog_dmsgsPrint(outStr2); } }
老师,我获取MSCE和OBD的属性大多也是本地化之后的数据。
在OPM中也能获取到部分本地化之后的数据,像基础的“常规”、“原始数据”类别下的属性基本都是本地化之后的数据。
而OPM的一些专业属性就大部分没有本地化。
那估计OPM中还有另外的本地化的机制。