2009-08-05 54 views
2

所以我有要求在運行時更改網站集的區域設置。在運行時本地化SharePoint網站集?

我部署一個.resx文件到Web應用程序App_GlobalResources文件夾,然後我使用:

<asp:Literal runat="server" Text="<%$Resources:MyResource,MyLocalizedStringID%>" /> 

插入正確的本地化字符串。

這適用於默認資源文件,但我希望當用戶更改區域設置中的區域設置時更改網站的區域設置。即使用戶更改語言環境,它仍然會選取默認資源文件。

我知道ASP.Net我需要改變我以前完成的CurrentCulture,但我該如何做到這一點與SharePoint?以及如何讓我的網站集合加載正確的資源文件?

我可以在頁面上放置一個下拉菜單,並允許用戶選擇語言,然後更改CurrentCulture,我也可以創建另一個Site Settings條目來執行相同的操作。

但理想情況下,我想用開箱即用的區​​域設置來做到這一點。

任何想法?

回答

2

是的我知道,但是這並不因此改變運行ASP.Net線程的CurrentUICulture正確的.resx文件不會被加載。

我找到了解決方案,一旦您更改了區域設置語言環境,您需要將以下代碼添加到頁面佈局,以便在頁面加載時設置正確的UI文化。

<script runat="server"> 
    protected override void InitializeCulture() 
    { 
     System.Threading.Thread.CurrentThread.CurrentUICulture = Microsoft.SharePoint.SPContext.Current.Web.Locale; 
     base.InitializeCulture(); 
    } 
</script> 
-1

您可以更改中央管理的區域設置 - >應用程序管理 - > Web應用程序常規設置