1

私は Delphi に比較的慣れていないので、ご容赦ください。基本的に、英語またはフランス語に翻訳された環境でテストしているかどうかに基づいて、変数を異なる値として設定する必要があります。これらの TC スクリプトのすべてのメニューは、名前によってアクセスされ、フランス語では同じではありません。ただし、メニュー内の位置によってアクセスできます[4|2]

定数のリストがあり、MenuItem1 を設定する配列を設定したいと思いFile|Newます。 [4|2]tcDecimalSeparator <> '.'

これは理にかなっていますか?これを行うための最も簡単な/最良の方法は何ですか?

おそらくデータ駆動型のテストでこれをすべて設定できることはわかっていますが、リリース前にスクリプトをそれほどやり直したくありません。

4

1 に答える 1

2

いいえ、提案されたソリューションは意味がありません。まず、現在の小数点記号に基づく切り替えは信頼できません。次に、メニュー項目の位置をすでに知っていて、プログラムの言語に関係なく常に機能する場合は、なぜ英語のメニューキャプションをいじくりまわすのでしょうか。メニューの位置を常に使用するだけです。(または、言語に基づいてメニューテキストを選択するようにすでに設定している場合は、英語のテキストとフランス語の位置を切り替える代わりに、フランス語のメニューテキストも使用してみませんか?)

提案したことを実行するために、メニュー識別子の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 に答える