2回发需要改变语言在多语言网站使用imagebutton

本文关键字:语言 网站 imagebutton 改变 2回 | 更新日期: 2023-09-27 18:04:19

我已经成功实现了一个多语言网站,用户可以通过点击其中一个imagebutton来更改语言。我使用Hiddenfield来存储用户选择的语言代码(在Imagebutton单击事件上)。我的InitializeCulture方法如下所示:

     protected override void InitializeCulture()
    {
    string culture = "Auto";
    string selectedValue = Request.Form["ctl00$HiddenFieldLang"];
    switch (selectedValue)
    {
        case "1": culture = "Auto";
            break;
        case "2": culture = "zh-HK";
            break;
        default: break;
    }
    if (culture != "Auto")
    {
        System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo(culture);
        //ci = System.Globalization.CultureInfo.CreateSpecificCulture(culture);
        System.Threading.Thread.CurrentThread.CurrentCulture = ci;
        System.Threading.Thread.CurrentThread.CurrentUICulture = ci;
    }
    base.InitializeCulture();
    }

这很好。但是改变页面语言需要2次回发。我猜,在一次回发(没有改变什么)中,设置了hiddenfield的值。在第二次回发时,进行实际的翻译。

我如何实现它,以便在只需单击imagebutton的页面翻译?

谢谢! !

2回发需要改变语言在多语言网站使用imagebutton

您可以为imagebutton的单击事件添加客户端处理程序,并在其上设置HiddenFieldLang的值。或者您可以在InitializeCulture方法中获得引起回发的控件,如果它是用于切换语言的按钮之一,则应用适当的区域性。

我认为第一个选项是首选,因为您不需要每次检查哪个控件导致回发。

我已经在ASP中实现了多语言站点。NET和曾经有过一些问题…你可以找到所需的代码在一个问题的解决方案关于我自己的答案超链接的问题。这里应该是Image控件而不是HiddenField控件

感谢大家的回复。在这个链接的帮助下,我设法解决了这个问题。

但是我现在有另一个问题。我有一个母版,我把Hiddenfield和Javascript函数设置在我的母版中Hiddenfield的值。在我所有页面的URL中,我有一个带有语言id的查询字符串。所以,当语言改变时,我也想改变querystring。

是否有任何方法,我可以从主页获取当前内容页的URL,并做一个响应。重定向或服务器。从SetHiddenValue(val)函数本身转移,并确保文本翻译?