2014-07-25 76 views
0

我們有一個基本的MSI安裝程序項目。在某個對話框中,我們對用戶提供的數據進行驗證,然後使用MessageBox()引發適當的消息。在InstallShield的MessageBox中更改OK按鈕的語言環境

現在當MessageBox出現時,它會出現我們想要的消息和一個OK按鈕。

我們有一個問題w.r.t這個OK按鈕的語言環境。當在英語,法語windows 2008機器上測試時,我們可以得到確定按鈕,其中OK是英語。當我們在西班牙語的Windows機器上使用相同的安裝程序時,同樣的OK按鈕在西班牙語中出現OK。

我無法弄清楚這是什麼原因造成的。任何提示/幫助都會有很大的幫助。

/Avadhut。

回答

0

從你的問題中,你不清楚你調用的是什麼API,以及在哪種情況下。請注意,對於幾乎所有人而言,以機器的「本機」語言顯示確定按鈕不會造成混淆,因此只會在質量檢查過程中導致問題。

Windows的MessageBox API本地化爲與Windows本身相同的語言環境。相比之下,MessageBoxEx is documented採取語言參數,雖然當我看,一個評論者說,它並不總是改變默認本地化。 (我的猜測是,所要求的語言是不具備的評論者的機器上。)

如果你正在展示從MSI DLL自定義操作中的消息,這是更好地使用MsiProcessMessageMessageBoxMsiProcessMessage意志父的窗口正確。我懷疑你正在使用ControlEvent,在無提示安裝中隱式避免了這種情況,但MsiProcessMessage在靜默安裝期間也不會顯示它的消息,而不需要任何額外的工作;如果在執行順序動作中使用MessageBox,則必須手動檢查UILevel。但是從文檔中不清楚MsiProcessMessage消息框中的按鈕是否將被本地化。

+0

我使用InstallShield的MessageBox()API。是的,我同意你的說法,以本國語言顯示「OK」按鈕是最好的,但是我的問題是,在所有其他支持的語言環境(法語/德語)中,它會以英語顯示(即「OK」)。所以仍然存在的問題是,爲什麼只有在西班牙語的西班牙語操作系統上。 – user3876575