1

我对 Delphi 比较陌生,所以请多多包涵。基本上,我需要根据我是在英语还是法语翻译环境中进行测试,将变量设置为不同的值。这些 TC 脚本中的所有菜单都通过它们的名称访问,在法语中它们是不同的。但是,我可以通过它们在菜单中的位置来访问它们——例如[4|2].

我有一个常量列表,并想设置一个数组以将 MenuItem1 设置为File|New[4|2]取决于tcDecimalSeparator <> '.'(设置为声明的常量)的值。

这有意义吗?什么是最简单/最好的方法?

我知道我可能可以通过数据驱动测试来设置这一切,但我不想在发布之前过多地修改脚本。

4

1 回答 1

2

不,您提出的解决方案没有意义。首先,基于当前小数分隔符的切换是不可靠的。其次,如果你已经知道菜单项的位置,而且不管程序是什么语言,它们总是有效的,那为什么还要乱用英文菜单标题呢?一直使用菜单位置。(或者,如果您已经设置了一些东西来根据语言选择菜单文本,为什么不也使用法语菜单文本而不是在英语文本和法语位置之间切换?)

要执行您的建议,您可以设置菜单标识符的二维数组:

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]);
于 2011-09-21T18:22:01.650 回答