在运行时本地化SharePoint网站集?

时间:2009-08-05 16:07:00

标签: .net asp.net sharepoint localization

所以我需要在运行时更改网站集的区域设置。

我正在将.resx文件部署到Web应用程序App_GlobalResources文件夹中,然后我正在使用:

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

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

这适用于默认资源文件但我希望在用户更改区域设置中的区域设置时更改站点的区域设置。即使用户更改了语言环境,它仍然会选择默认的资源文件。

我知道使用ASP.Net我需要更改之前完成的CurrentCulture,但是如何使用SharePoint执行此操作?以及如何使我的网站集加载正确的资源文件?

我可以在页面上放置一个下拉列表,并允许用户选择语言然后更改CurrentCulture,我还可以创建另一个站点设置条目,它可以执行相同的操作。

但理想情况下,我希望通过开箱即用的区​​域设置来完成此操作。

有什么想法吗?

3 个答案:

答案 0 :(得分: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 :(得分:0)

我刚发布了一篇关于此解决方案的博文,题为“使用ASP.Net资源文件本地化SharePoint UI”

http://leedale.wordpress.com/2009/08/05/localizing-a-sharepoint-ui-using-asp-net-resource-files/

答案 2 :(得分:-1)

您可以在中央管理员 - >中更改区域设置。应用程序管理 - &gt; Web应用程序常规设置