2008-09-18 41 views
4

我正在寫的應用程序幾乎完成,我希望講不同語言的人使用它。如何使我的.NET應用程序支持不同的語言

我不確定從哪裏開始,全球化和文化在編程方面有什麼區別?

一個人如何採取不同尋常的措辭,比如「這個應用程序是爲了做這個和那個」而不是文件,打開,保存等等,並將它們變成西班牙語?

非常感謝:-)

回答

0

對於一個非常簡單的系統,這樣的創建,它定義像GetSaveText()等方法的接口,並允許組件是插入您的應用程序。

0

這應該是一個很好的解決方案的任何地方從10-1000字符串:

有每個地區的資源文件。我不知道.NET,但我確信有一些常見的方法來做到這一點。然後,在資源獲取代碼中,根據用戶的瀏覽器區域設置加載相應的代碼。詢問此代碼以獲取某些密鑰的正確字符串。

示例文件內容,如果我是從頭開始實現它:

resources.en:

save=Save 
close=Close 
ok=OK 
areYouSure=Are you sure? 

resources.es:

save=I don't know how to say anything in Spanish, oops 
close=... 
ok=... 
areYouSure=... 
5

你有型動物事情要做,有一個「全球化」的應用推薦。

1)翻譯在你的窗體和控件每個標籤在應用程序

您需要的財產「本地化」設置爲true每個窗體和控件上。該屬性支持在每種語言和地區中創建資源文件。現在,通過「語言」屬性,您可以選擇您想要支持的語言。當您在組合框列表中選擇一種語言時,表單(或控件)將自動切換爲該語言。現在,翻譯控制中的每個單詞都是你的工作。只要您進行修改,Visual Studio就會爲特定語言創建一個資源文件。 (例如,法國 - 法國的MyForm.fr-FR.resx)。

2)在代碼中的每個硬編碼字符串導入到一個RESX文件

創建一個資源文件(personnally,我用StringTable.resx),並添加每個字符串在這個文件翻譯。之後,爲每個您想要支持的語言創建一個資源文件,並在每個文件中翻譯字符串。舉例來說,如果你想支持法語,你可以爲French-France創建StringTable.fr.resx或StringTable.fr-FR.resx。使用ResourceManager類,可以加載每個字符串。

注意:如果您使用的是Visual Studio 2005或2008,則您已經有一個默認創建的資源文件。

3)您需要詳細說明您的形式和明智地控制從微軟

指南:Microsoft Guidelines

4)日期和數字

處理如果您的應用程序創建的數據文件,這可以發送給其他地區的其他用戶,您需要在將數據保存到文件中時考慮它。因此,請始終以UTC來存儲您的日期時間,並且僅在加載信息時在本地進行轉換。同樣的事情適用於十進制數,特別是如果它們存儲在文本中。


當你編譯應用程序時,Visual Studion將在子文件夾FR創建像MyApplication.fr.dll衛星文件。要加載這個DLL,你需要在應用程序啓動時切換當前線程的語言。

下面的代碼:

CultureInfo ci = new CultureInfo("fr"); 
Thread.CurrentThread.CurrentUICulture = ci; 
相關問題