2009年7月23日 星期四

Visual Studio C# Winform 多國語言開發

這兩天研究這個的結果,整理一下筆記。

 

主要從下面兩篇文章得到的資訊:

這裡我參照上面的文章,寫了兩個範例:

範例1 | 範例2

Project使用的環境為 Windows 平台、.NET Framework 2.0,Visual Studio 2008 撰寫

範例1

這是從資源檔讀取介面文字的範例,我根據 .NET Magazine的一篇文章 所撰寫的。

範例2

我整理的步驟摘要:

  • 將Form的屬性Localizable設為true
  • 設定介面上所有Control的文字(Text)
  • 此時的介面Form屬性Language為Default時的設定,也就是沒特別指定對應的語言
  • 現在把Form屬性Language設為Chinese (Taiwan),然後去修改所有Control的Text,或是重新Layout
  • 如果有修改的話(沒修改不會產生,會用default),會產生對應的resource檔(如 Form1.zh-TW.resx)
  • 也可以同上建立Language為English (United States) 的文字及排版
  • 在 InitializeComponent 之前,就先決定要使用的語系 (沒決定的話,系統會幫你偵測,沒對應到的話就用Default,因為我有建立zh-TW,所以有對應到就會用這個)
用這個方法的優點是,直接在元件的Text屬性修改要顯示的文字,Visual Studio就會自動幫你產生對應的資源檔,不需要自己加,自己手寫一個一個讀進來。但是首先,還是得一個一個從IDE去改 :P
還有Layout的部份,不同語系的也可以不同排版(有動過排版才會儲存),但這點可是有好有壞 :P
其他可以看一下原始碼,基本上想要動態改變CultureInfo 來改變介面的話,還是要自己寫code去重讀介面。
CodeProject 有人寫好元件來做這件事,可以參考看看。

沒有留言:

張貼留言