3

EpiServer CMS 7 を使用するサイトがあります。

ajax 呼び出し後に返されるコンテンツの言語に問題があります。たとえば、あるページにリンクがあり、それをクリックすると、AJAX 要求がサーバーに送信され、コンテンツが返されて特別なコンテナーに挿入されます。AJAX リクエストの次の URL があります。

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

このリンクには、「epslanguage」パラメーターに正しい言語が常に含まれています。ただし、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);

助けてくれてありがとう。

4

1 に答える 1

3

可能な解決策を見つけました。

基本クラス(ajaxページ用)で InitializeCulture() メソッドをオーバーライドし、次のコードを使用しました:

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

    Thread.CurrentThread.CurrentUICulture = EPiServer.Globalization.ContentLanguage.PreferredCulture;
    Thread.CurrentThread.CurrentCulture = EPiServer.Globalization.ContentLanguage.PreferredCulture;
}
于 2014-02-11T13:38:31.540 に答える