2013-12-22 19 views
0

我正在處理用戶必須進入他/她所屬的國家/地區的應用程序。參數化ASP.NET應用程序中web.config中的全球化標記

我們希望這可以在用戶每次進入他/她的國家時實施文化特定的數字格式。 我們可以將國家參數傳遞給web.config中的全球化標籤,以使應用程序按照用戶選擇的國家行事嗎?

<globalization uiCulture="CountryParam" culture="CountryParam" /> 

任何幫助深表謝意。

+0

看看[這裏](http://msdn.microsoft.com/en-us/library/bz9tc508%28v=VS.100%29.aspx)歸結爲設置'Thread.CurrentThread。 CurrentCulture'和'CurrentUICulture' ... – rene

+0

我試圖在「InitializeCulture.cs」中應用開關盒,但仍然是因爲Thread.CurrentThread.InstalledCulture =「en-US」 – Shivam657

+0

向我們展示您的代碼,將它添加到問題中。 – rene

回答

1

IN Asp.Net和/或MVC,你只需要設置Thread.CurrentThread.CurrentCultureThread.CurrentThread.CurrentUICulture用戶

如果這樣做,所有的格式應根據每個默認這種文化做文化。

否則你就必須與你在你做字符串格式化所有地方提供的特定文化運行的String.format,使用this overload ...

如你的String.Format的文檔中看到,沒有定義特定的文化,它會使用Thread.CurrentThread.CurrentCulture

Taken from here

一般而言,參數列表對象轉換爲他們的字符串表示使用當前的約定文化,由CultureInfo.CurrentCulture屬性返回。您可以通過調用Format(IFormatProvider,String,Object [])重載來控制此行爲。此重載的提供程序參數是一個IFormatProvider實現,它提供用於調整格式化過程的自定義和區域性格式信息。

+0

將很難使用String.Format每個地方作爲應用程序有整數和小數在計算中使用。是否我們沒有辦法可以添加參數到全球化標記並完全覆蓋已安裝的美國文化。 – Shivam657

+0

@ Shivam657這正是'Thread.CurrentThread.CurrentCulture'/UICulture的意義所在;)只需設置它,你不必將它設置在所有地方...... 但是當然你必須格式化你的輸出,所以如果你在頁面的某個地方輸出你的小數點,你必須使用一些格式化權限?通常這是自動完成的。如果你只是輸出一個小數,最有可能的ToString方法將在內部調用......而這其中也使用的CurrentCulture當前線程中的默認設置... – MichaC

+0

雅會嘗試做that.But是可以參數web.config中的全球化標記? – Shivam657