AJAX页面的EpiServer本地化

时间:2014-02-11 10:06:30

标签: c# asp.net episerver episerver-7

我有一个使用EpiServer CMS 7的网站。

我遇到ajax调用后返回的内容语言问题。例如,在某些页面上我有一个链接,在点击它之后,AJAX请求将被发送到服务器,内容将被返回并插入特殊容器中。 我有关于AJAX请求的以下网址:

var urlStr= "/Folder1/Ajax/AddSomething.aspx?id=53&epslanguage=en&";

此链接始终包含“epslanguage”参数中的CORRECT语言。但是,在ajax调用之后返回的内容始终使用默认语言(瑞典语)。

我试过调试,发现在AddSomething.aspx页面上我有以下全球化设置:

System.Globalization.CultureInfo.CurrentUICulture == "sv";
System.Threading.Thread.CurrentThread.CurrentUICulture == "sv";
EPiServer.Globalization.ContentLanguage.PreferredCulture == "en";

问题:我们如何为页面内容设置正确的语言?据我所知,EpiServer知道正确的语言,但在调用方法

时仍然使用“sv”
EPiServer.Core.LanguageManager.Instance.Translate(string str);

先谢谢大家的帮助。

1 个答案:

答案 0 :(得分:3)

我找到了可能的solution

我已经在基类中重写了InitializeCulture()方法(对于ajax页面)并使用了以下代码:

protected override void InitializeCulture() 
{
    base.InitializeCulture();

    Thread.CurrentThread.CurrentUICulture = EPiServer.Globalization.ContentLanguage.PreferredCulture;
    Thread.CurrentThread.CurrentCulture = EPiServer.Globalization.ContentLanguage.PreferredCulture;
}