2012-05-09 132 views
2

我正在開發雙語ASP.NET應用程序,我想知道帽子是在應用程序中存儲UICulture和Culture值的最佳方式嗎?在ASP.NET中保存UICulture的最佳方式是什麼?

  • 餅乾。
  • 會議。
  • QueryString。
  • 或其他東西。

更新: 我要做出同樣的ASPX形式是雙語網頁,我已經有了一個答案,到現在是讓一個單獨的頁面,並使其通過訪問子域名,我我現在真正在做的是使用會話,但我想現在什麼是用戶資源文件的最佳做法,使頁面雙語而不創建它的副本。

+0

各地看到這種做法你怎麼設置的區域性,根據用戶的喜好,選擇現場語言還是閱讀瀏覽器語言? –

+0

沒有用戶的喜好 –

回答

3

通常情況下,這取決於您的特定用例。

最常見的,但是你會可能要爲每個頁面和語言不同URL爲了擁有它被搜索引擎正確索引。例如網址,如:

我喜歡第2個選項。

或者,你可以重定向基於瀏覽器的語言時,他們第一上您的網站後,用戶(但請確保用戶還可以瀏覽其他語言)。


更新:這並不意味着你必須爲你的語言,使您的網站儘可能多的版本。

如果您對每種語言的子域:

  • 點的每個子域到您的網站
  • 在你的頁面的代碼隱藏,你重寫了InitializeCulture方法(你可以使用一個基類所有爲了網頁,以保持乾燥)
  • 設置適當的文化在覆蓋InitializeCulture方法
  • 創建資源文件
  • 使用您網頁中的資源 - 根據文化背景顯示正確的翻譯。

如果您決定不使用子域名,但請在網址的文化名稱,你可以使用URL重寫指向每個URL相同的頁面。

一些代碼來讓你開始:

protected override void InitializeCulture() { 
    // Identify the culture and replace the hardcoded values below 
    // (Use Request.Url.xxx for example) 
    Thread.CurrentThread.CurrentUICulture = new CultureInfo("en", false); 
    Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US", false); 
    base.InitializeCulture(); 
} 
-1

您始終可以使用URL重寫來存儲用戶所選的文化偏好。不太確定ASP.Net是如何實現的,但在MVC中使用路由表很容易。

爲了闡明,您的網址將是這個樣子:http://example.org/en-gb/Action 作爲一個解決方案,這將刪除會話的開銷,可能有人已經轉向了cookies在瀏覽器中,並獲取生成難看的查詢字符串。

我會試着拿回一個如何做網址重寫的例子。

+0

downvote的解釋會很好。 – pms1969

+1

我沒有投票,但我可以提供解釋。我得出的結論是,對於那些沒有更好的事情的人,擁有大自我的人,以及最後工作不好的人來說,計算器已經成爲一種在線治療方式。你可以告訴他們是誰。它們通常有數千個點,除非您爲stackoverflow工作,或者您符合上述配置文件之一,否則無法積累。無論哪種方式不用擔心。你在1420點的時候意味着你知道你在說什麼。這也意味着你不是其中之一..... –

+0

是的。很高興知道什麼被認爲是不正確的或者不同意的。它讓你有機會得出答案,或者做得更好。它也給未來的讀者一點知識,否則他們不會有。沒什麼大不了的。從我+1。 :-) – pms1969

-1

最好的做法是創建子域\用它自己單獨的IIS網站各語言的網站。對於需要雙字節的亞洲語言,情況尤其如此。

您將在雅虎,谷歌等:

+0

說真的,'雙字節'?子域名與網站的內部表示無關。 –

相關問題