1

我有一些旧的 sitecore asp net 应用程序。而且我发现在布局(aspx)上我有应该改变网站语言的 ImageButton 控件。

    protected void btnLanguage_Click(object sender, EventArgs e)
    {
        ImageButton flag = (ImageButton)sender;
        if (string.IsNullOrEmpty("") == false)
        {
           UserContext.CurrentCulture = LanguageManager.GetLanguage(flag.CommandArgument);                     
        }
        else
        {
            SC.Context.Language = LanguageManager.GetLanguage(flag.CommandArgument);
        }
    }

但是我有很多控件应该在调用此事件后进行翻译。通过 asp 网页生活方式过程,这不是好的行为,但无论如何我需要用它做点什么。在我的情况下,最好的方法是什么?应该如何以正确的方式完成?

4

2 回答 2

2

Alistair Deneys 记录了如何使用事件来允许组件相互通信。值得了解这种机制,请查看 Alistair 的帖子Decoupling Through the Sitecore Event Pool

于 2013-02-17T10:30:04.113 回答
1

如果这是一个 Sitecore 应用程序,那么只需让 Sitecore 处理它,将您的图像按钮更改为带有超链接的常规图像并传入语言参数(使用 LinkManager):

/en-CA/some-folder/some-page.aspx

/some-folder/some-page.aspx?sc_lang=en-CA

然后,您可以根据以下内容设置系统文化Sitecore.Context.Lanaguge

这篇文章中的一些有用信息,也请参阅评论。

于 2013-02-15T14:54:21.577 回答