2009-11-15 114 views
1

我需要製作一個必須支持兩種語言(現在)的表單。 兩種語言沒有相同的外觀,也有一半的形式不是一個像,但它仍然有一些相似的甜頭。 在兩種不同語言及以上的情況下,處理此問題的最佳方法是什麼?順便說一句,我使用的程序語言是C#。本地化問題

10X

回答

3

首先,配置你的項目的默認語言,你在項目屬性做到這一點,在大會信息對話框,有一個「中性語言」在底部設置。

將此設置爲您的「默認」語言,如果您願意,可以使用「主要」語言。

然後,確保現在的表單使用該語言。

要開始翻譯和更改表單以符合不同的語言,首先將表單的「Localizable」屬性設置爲true,然後將Language屬性更改爲第二個(或第三個,第四個等)語言。

修改完成後,即可開始進行更改。請確保您不要刪除上的項目,而只是將它們設置爲不可見。刪除是爲所有語言完成的,但不可見將僅針對當前語言進行設置。

繼續在語言之間來回切換以進行調整。

要在特定的語言測試程序,在您的Main方法開始執行此:

Thread.CurrentThread.CurrentCulture = new CultureInfo("code of that other language"); 
Thread.CurrentThread.CurrentUICulture = new CultureInfo("code of that other language"); 

例如,與「挪威的,挪威語」的語言,這是我的主要語言測試,你會使用的代碼是「nb-NO」。要找到需要使用的代碼,一旦將表單的語言更改爲要本地化的語言並保存,就會以正確的名稱將新文件添加到解決方案資源管理器中。

例如,爲Form1,下列文件將出現:

Form1.cs 
    Form1.designer.cs 
    Form1.nb-NO.resx  <-- here's the localized content 
    Form1.resx 

現在,已經做到了這一點,有足夠的,你需要知道做一個本地化的應用程序時,其他的事情,我建議你去閱讀SO和更多的信息在網絡上的其他問題,像這樣的:

0

我想爲每種語言一個單一的全球資源文件是不必爲每個表單爲每種語言資源文件更好。
我最近通過以下鏈接"Globalization of Windows Applications in 20 Minutes"完成了winforms應用程序的全球化。這裏是簡單的步驟:

  1. 創建一個文本文件說「data.en-US。TXT 「在下面的格式在溶液(<文件名> <培養字符串> .txt的):

    你好=你好
    歡迎=歡迎

    此文件」 data.en-US.txt 「是英語中的一個資源的文本文件。 在您需要的語言創建一個類似的文件說德語,所以它的文件名會data.de-DE.txt

    你好=暈
    歡迎= Willikomen

    第一列是將用作引用文本的鍵的標籤。

  2. 通過使用命令「resgen.exe data.en-US.txt」, 這樣做對所有語言文件創建一個「數據烯US.resource」文件出來的文本文件。現在在您的解決方案中,您有2個(或更多,取決於您要支持的語言)
    數據。 <文化字符串>。資源文件

  3. 點擊所有.resource文件並將「Build Action」屬性設置爲「Content」。
  4. 單擊所有.resource文件並將「複製到輸出目錄」屬性設置爲「始終複製/複製如果新建」。
  5. 在任何形式使用下面的代碼獲取本地化字符串:
string label = "Hello"; 
string cultureString = "de-DE" // [or "en-US"] 
string strResourcesPath = Application.StartupPath; 
CultureInfo ci = new CultureInfo(cultureString); ['cultureString' represents your desired language] 
ResourceManager rm = ResourceManager.CreateFileBasedResourceManager("data", strResourcesPath , null); ["data" is the first part of the filename] 
var answer = rm.GetString(label, ci); // here ans="Halo" as we selected de-DE