2009-04-29 113 views
4

Visual Studio 2008本地化在ASP.NET MVC

我想帶來一些本地化到我的ASP.NET MVC網站。

有人建議建立一個資源文件「Strings.resx」作爲公開強類型的資源,很好地工作,讓我寫

<title><%= Strings.MyView_Title %></title> 

我再繼續添加文件「Strings.da.resx 」。該文件在第一個旁邊創建,默認爲「Access Modifier:No Compilation」,而第一個(沒有語言修飾符的)缺省爲「Interal」。

我可以在bin目錄中看到使用resource.dll創建了一個目錄(「da」),但是,在我的網站上看不到任何已翻譯的文本。

我已經使用瀏覽器檢查過,唯一首選的語言是丹麥語(da-DK),但我只看到英文文本。

問題: 1)我是否需要在web.config中啓用某些功能? 2)我是否創建了正確的文件,使用正確的類型(即#2應爲「無編譯」)?

回答

6

在您的觀點中,您是否有頁面指令? 如果是這樣,你有UICulture =「自動」和文化=「自動」?

例如...

<%@ Page Language="C#" Inherits="..." 
    culture="auto" uiculture="auto" %> 

這將確保Accept-Language頭,在請求的瀏覽器通過,被用來設置線程的文化。 UICulture影響選擇哪個資源文件。

更多關於ASP.NET國際化這本書非常好...

http://www.amazon.co.uk/NET-Internationalization-Developers-Guide-Building/dp/0321341384/ref=sr_1_1?ie=UTF8&s=books&qid=1241010151&sr=8-1

它不包括MVC,而是涵蓋了ASP.NET和,正因爲如此,很多事情繼續相關。

+0

謝謝,這個伎倆。 – Soraz 2009-04-29 13:07:46

+0

其實,事實證明,我可以設置 <全球化uiCulture =「auto」culture =「auto」/> 在部分的web.config文件 – Soraz 2009-04-29 13:13:36

+0

是的,你也可以這樣做。我傾向於在頁面級別執行此操作,以避免配置中出現新的開發人員不期望的任何「特殊魔力」。 – 2009-04-29 13:19:03

2

首先,您必須創建將切換請求線程的文化的操作篩選器。 OR 設置你globalization元素的UICulture =「自動」和文化=「自動」

檢查這個screencast,這是俄羅斯人,但代碼樣本中是可以理解的。