[c#] 在C#/ WinForms中創建多語言應用程序的最佳實踐?


Answers

我最近編寫了一個既有德語又有英語支持的程序。 我驚訝地發現,如果我簡單地命名我的英語資源LanguageResources.resx和我的德語資源LanguageResources.de.resx,它會自動選擇正確的語言。 ResXFileCodeGenerator為我完成了一切。

請注意,這兩個文件中的字段是相同的,並且任何尚未輸入的德語字段都將顯示在應用程序中,因為英語與最不具體的文件語言明智的是默認文件。 查找字符串時,它會從最具體的(例如.de-​​DE.resx)到最不具體的(例如.resx)。

要獲取字符串,請使用ResourceManager.GetString或ResourceManager.GetObject調用。 應用程序應該免費給你ResourceManager。

Question

我一直在考慮在C#中使用適合多種語言的應用程序,因為我需要在這種情況下處理一個小項目。 我發現基本上有兩種方法可以做到這一點:

將表單的Localizable屬性設置為true,設置Language屬性,填充所有標籤等,然後您就完成了。 我在這裡看到的主要缺點是:如何製作不屬於表單的多種語言(例如,彈出式窗口,日誌文件或窗口等)的其他內容。

創建一個資源文件,例如'Lang.en-us.resx',每種語言一個,例如'Lang.nl-nl.resx',並用字符串填充。 IDE似乎為我自動生成一個類,所以在代碼中我可以使用Lang.SomeText。 我在這裡看到的最大缺點是:對於每一個我需要在代碼中自己設置所有標籤和其他標題的表單(並且它似乎沒有與這些資源進行數據綁定)。

不過,我確定還有其他方法可以做到這一點。

那麼,最佳做法是什麼? 對於小型應用程序(幾種形式,數據庫連接等)最簡單的東西是什麼,以及對於大型應用程序最適合什麼?




Related