网站中英文切换

在程序启动时把en与cn的资源文件都加载进来,然后页面加载时候根据session/cookie选择加载en或者cn资源文件。

1.程序启动加载资源文件(en.xml,cn.xml)

protected void Application_Start(object sender, EventArgs e)
  {
    Local.LoadLanguage(GetAppSettings("Language_Name").Split(new char[] { '|' })[0].Split(new char[] { ',' }), GetAppSettings("Language_XML"));          
  }
把xml内容加载到
Dictionary[lang][key];以备后面调用做准备
 

2.页面选择语言样式

<select class="language" name="language" id="language" onchange="change(this.options[this.options.selectedIndex].value);">
                    <option value="cn"><%=Local.Get("language") %></option>
                    <option value="en"><%=Local.Get("language_en") %></option>
                    <option value="cn"><%=Local.Get("language_cn") %></option>
                </select>

3.js代码(通过ajax无刷新发送请求)

<script type="text/javascript">
        function change(value) {

            var str = value;
            ajaxHelp.ProcessGet("/language.aspx?flag=" + str, function (data) {
                window.location.reload();
            });
        }
    </script>

4.接收请求,处理逻辑(cookie)

protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                string flag = Request.GetQueryString("flag");
                if (flag=="cn")
                {
                    WriteCookie1("local", "cn", 60);
                }
                else if(flag=="en")
                {
                    WriteCookie1("local", "en", 60);
                }
                Response.End();
            }
        }

5.页面刷新时候调用的过程

<option value="cn"><%=Local.Get("language") %></option>
local.cs

public static string Get(string key) => 
            Get(GetLang(), key);

public static string GetLang()
        {
            string str = "";
            if (GetCookie("local") != null)
            {
                str = GetCookie("local").Value;
            }

            return str;
        }
public static string Get(string lang, string key) => 
            Dictionary[lang][key];
原文地址:https://www.cnblogs.com/uftwkb24/p/9242398.html