1
URLに言語がない場合、デフォルトのウェブサイト言語に言語を変更するコードを追加しました。だから私はdansihウェブサイト上にある場合:http://mywebsite/da
私は言語コード "ダ"を削除した、私は英語のデフォルトのウェブサイトの言語に切り替える。 Cookie言語が正しく変更されていても、言語をデフォルトのウェブサイト言語に設定するには、2ページ目の更新が必要なページがあります。これは私のコードです:言語をデフォルトの言語にリセットするには
web.configファイルで私はsystem.webServer/modules
の下で最後のintこれを追加しましたので、私は、そのためのモジュールを作成しました:
<add name="ResetLanguageModule" type="MyWebsite.Modules.ResetLanguageModule, MyWebsite.Web" />
マイコード:
public void Init(HttpApplication app)
{
app.BeginRequest += Application_BeginRequest;
}
private static void Application_BeginRequest(object sender, EventArgs e)
{
// if user is on the root or the url does not contians language in url
if (HttpContext.Current.Request.RawUrl == "/" || !HttpContext.Current.Request.RawUrl.Contains(string.Format("/{0}/", Sitecore.Context.Language.Name)))
{
ResetLanguage();
}
}
private static void ResetLanguage()
{
// change language to default one if the comming request is a page.
if (Sitecore.Context.Page != null &&
Sitecore.Context.Site != null &&
Sitecore.Context.Language.Name != Sitecore.Context.Site.Language)
{
Language currentSiteLanugage;
if (Language.TryParse(Sitecore.Context.Site.Language, out currentSiteLanugage))
{
Sitecore.Context.SetLanguage(currentSiteLanugage, true);
}
}
}
あなたのコードを 'httpRequestBegin'パイプラインに移動しようとしましたか?デフォルト 'LanguageResolver'の前に? –
私はsitecore LanguageResolverの前に移動しましたが、今は正常に動作しています。Thanks @MarekMusielak –