我对德尔福比较新,所以请耐心等待。基本上,我需要根据我是否在英语或法语翻译环境中进行测试,将变量设置为不同的值。这些TC脚本中的所有菜单都以其名称访问,而在法语中则不同。但是,我可以通过菜单中的位置访问它们,例如[4|2]
。
我有一个常量列表,并希望设置一个数组,将MenuItem1设置为File|New
或[4|2]
,具体取决于tcDecimalSeparator <> '.'
的值(设置为声明的常量) 。
这有意义吗?最简单/最好的方法是什么?
我知道我可以通过数据驱动测试来设置这一切,但我不想在发布之前重新编写脚本。
答案 0 :(得分:2)
不,你提出的解决方案没有意义。首先,基于当前小数分隔符的切换是不可靠的。其次,如果您已经知道菜单项的位置,并且它们始终有效,无论程序的语言如何,那么为什么要乱用英文菜单字幕呢?只需一直使用菜单位置。 (或者,如果您已经设置了基于语言选择菜单文本的内容,为什么不使用法语菜单文本而不是在英语 text 和法语位置之间切换?)
要执行您的建议,您可以设置二维菜单标识符数组:
const
TLanguage = (lEnglish, lFrench);
TUIElement = (uiFileNew, uiFileOpen, ...);
MenuIDs = array[TUIElement] of array[TLanguage] of string = (
('File|New', '[4|2]'),
('File|Open', '[4|3]')
);
然后,当您需要字符串时,选择与您的UI元素对应的项目,然后选择当前语言的字符串:
if tcDecimalSeparator = '.' then
CurrentLang := lEnglish
else
CurrentLang := lFrench;
UseMenuItem(MenuIDs[uiFileNew, CurrentLang]);