2011-11-17 130 views
3

我正在開發支持兩​​種語言阿拉伯語和英語的Windows應用程序。我想在運行時更改表單的UI(標籤)。應該用該語言顯示用戶最初選擇哪種語言。對於這一點,如果用戶選擇了英語多語言窗體形式

Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-GB");" 

如果用戶選擇了阿拉伯語

Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-Ar"); 

當我運行在Visual Studio中的應用程序能正常工作,我已經設置以下關鍵

。所有表格都根據當前選定的UI文化進行。

但是,在機器上安裝此應用程序的MSI後,它不會根據CurrentUICulture資源文件顯示錶單的標籤值。即使選擇的語言是阿拉伯語,它也始終只顯示英文標籤。

+0

您可能需要發佈一些代碼。 – mydogisbox

+3

您的msi是否正確安裝衛星組件?如果您的應用程序名爲test.exe,則應該有一個目錄en-GB/test.resources.dll和一個目錄en-Ar/test.resource.dll。 – Francis

+0

當你說選定的語言是阿拉伯語時,該語言是如何選擇的?通過區域設置或語言欄或其他方式? –

回答

0

我通過執行以下步驟找到了此查詢的解決方案。 - 實際上,在創建應用程序的安裝程序時,它映射資源dll文件夾,因此只有在部署項目中添加「project.resources.dll」是不夠的。 - 在應用程序文件夾下添加一個文件夾(名稱與bin-> dubug下包含resource.dll的文件夾名稱相同),然後在其下添加「project.resources.dll」。 - 它將解決問題 - >如果所選語言是阿拉伯語,則所有標籤都將以阿拉伯語顯示