2014-10-11 61 views
1

我在asp.net中有一個巨大的web應用程序,它是爲美國客戶開發的。如何更改基於區域的環境設置

  1. 現在我想用英國客戶相同的應用程序,但這裏的問題是日期格式對於我們將是MM/dd/yyyy格式,其中在英國,它會dd/MM/yyyy
  2. 同樣的標籤將從國家不同而不同,例如在我們的客戶會參考如「檢查」,但在英國,同樣會「檢查」

我怎樣才能從這些兼容性問題解決。

而這些標籤具有需要更改而不更改任何代碼的內聯值。

我看到了關於資源文件的事情,但是我不知道如何爲不同地區的日期,貨幣格式實現此操作。或者如何使用這些資源執行日期轉換...?或者我們有其他格式做這些..?

請任何人都建議我做這件事的方式..

+0

是的,您可以使用資源文件,但您應該對代碼進行一些更改。這不會是很大的一部分。只需進行有條件的檢查,併爲Resource文件中的控件提供適當的值。 – 2014-10-13 10:34:09

回答

1
  1. 對於不同的日期格式,可以使用CultureInfo類在.NET

http://msdn.microsoft.com/en-us/library/5hh873ya%28v=vs.90%29.aspx

它應該很容易

  1. 按鈕上的不同文字 - 我想你會需要一些東西e翻譯資源,即使語言(我們和en)幾乎相同。

http://msdn.microsoft.com/en-us/library/vstudio/ms247246%28v=vs.100%29.aspx

+0

:如果客戶端瀏覽我們的相同應用程序,以及英國將如何執行..? – ShaQue 2014-10-13 12:08:25

+0

第一個由Windows語言和區域設置解決,第二個由應用程序設置解決,如Web應用程序頂部的語言選擇器。 – WholeLifeLearner 2014-10-14 09:05:40

+0

:我試過這些方法,但iam無法從數據庫的值更新資源文件。 – ShaQue 2014-10-14 09:37:16

1
  1. 在大多數情況下,日期和數值可在不使用的web.config任何代碼進行格式化。

    如果您需要設置唯一一個(默認)文化(EN-US或EN-GB)使用

    <globalization culture="en-GB" /> 
    

    如果你有在同一地點的所有用戶,它應該根據用戶的設置進行更改(瀏覽器客戶端的語言,read more here),那麼你可以嘗試

    <globalization culture="auto:en-US" /> 
    

    如果文化應該通過代碼改變,使用

    Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-GB"); 
    
  2. 標籤的翻譯不能自動完成。有很多不同,see some of them here,沒有像上面那樣的配置可以將「檢查」更改爲「檢查」。

    如果當前文本存儲在數據庫中,請考慮添加文化列,併爲兩種文化都設置一個版本,或者在en-GB中存儲所有en-US和異常(如果未找到異常,請使用en-美國作爲默認)

    current account en-US 
    cheque account  en-GB 
    

    這意味着所有的sql查詢需要改變,以根據當前的文化來選擇文本。

    如果文本在aspx中硬編碼考慮使用資源文件。請參閱localization in asp.net web forms with one global resource