2011-04-22 48 views
4

在多語言應用程序中,預期以下事物/行爲。在ASP.NET應用程序中實現多語言的最佳方式

  1. 拿起正確的資源,爲登錄用戶的語言
  2. 串排序應根據用戶的語言發生(例如:在瑞典用戶的情況下,瑞典字母應該來以Z後) 。
  3. 日期時間格式驗證應根據用戶的語言進行。 (例如:fr-FR用戶可以輸入dd/mm/yyyy,en-US用戶可以輸入mm/dd/yyyy)
  4. 再次根據用戶的語言進行十進制驗證(例如:12,5有效在法國,而12.5是無效的)

現在問題是什麼是處理這個問題的最好方法。

方法1:

  1. 設置頁面文化和頁面的UICulture - 這樣的App_GlobalResources文件被拾起,並在網格十進制值的格式是否正確。
  2. 編寫自定義的方法來驗證火爲以下
    • 日期時間
    • 十進制
  3. 編寫自定義的方法來處理字符串排序。

方法2:

  1. 設置當前線程的文化,讓這個處理以下{是否web應用程序的每個用戶都有自己的文化在這種情況下設置是否正確?}

方法3:

  1. 初始化web.config中的全球化屬性並讓應用程序挑根據用戶的瀏覽器文化文化

    <globalization uiculture="auto" culture="auto" enableClientBasedCulture =」true」/> 
    

請讓我知道,如果有更好的選擇,我們應該怎樣的方式解決這樣的問題或上述方法的利弊。

+2

對此有外觀以及HTTP://計算器。com/questions/5564354/unable-to-change-culture-of-aspx-page/5564451#5564451 – 2011-04-22 11:11:47

回答

2

重載InitializeCulture()頁面事件。使用基於身份驗證用戶的會話變量,該變量存儲當前選定的文化,並在事件處理程序中重置Thread.Culture和UICulture。

據我所知,這些轉換問題或ToString()格式問題應該不存在。當前的線程文化將爲您處理所有問題。

一些資源:
Walkthrough: Using Resources for Localization with ASP.NET
How to: Set the Culture and UI Culture for ASP.NET Web Page Globalization

+0

設置currentThread.Culture會影響其他用戶嗎?考慮到Web服務器可以用來處理用戶請求的線程數量有限制的事實。 – 2011-04-22 11:09:30

+0

否。該設置是線程特定的。每個請求都在它自己的線程中處理。 – user492238 2011-04-22 11:15:44

+0

謝謝,這清除了我的疑惑。 – 2011-04-22 11:29:16

相關問題