BPM多语言选择

1,  LanguageHelper类

public class LanguageHelper
{
    public static string Language
    {
        get
        {
        string language = "zh-CN";
        if (HttpContext.Current.Session["bpm_language"] != null)
            {
                language = HttpContext.Current.Session["bpm_language"].ToString();
            }
            return language;
        }
        set
        {
            HttpContext.Current.Session["bpm_language"] = value;
        }
    }
}

2,在App_GlobalResources\YZSoft\YZStrings.resx、YZStrings.zh-CHS.resx、YZStrings.zh-CHT.resx添加Key为Language_Select_Tip的String


3,在登陆页面加入如下代码:
2,在App_GlobalResources\YZSoft\YZStrings.resx、YZStrings.zh-CHS.resx、YZStrings.zh-CHT.resx添加Key为Language_Select_Tip的String

<asp:Literal ID="Literal1" runat="server"></asp:Literal>:
    <select id="languageSelect" onchange="changeLanguage(this)">
    <option value="zh-CN" 
        <asp:Literal ID="Literal2" runat="server"></asp:Literal>>简体中文</option>
    <option value="zh-TW"
         <asp:Literal ID="Literal3" runat="server"></asp:Literal>>繁体中文</option>
    <option value="en-US"
        <asp:Literal ID="Literal4" runat="server"></asp:Literal>>English</option>
    </select>

  

在登陆页后台代码中加入如下代码:

if (Request.Params["language"] != null)
        {
            LanguageHelper.Language = Request.Params["language"].ToString();

            string language = Request.Params["language"];

            if (language.Equals("zh-CN"))
            {
                Literal2.Text = "selected='selected'";
            }
            else if (language.Equals("zh-TW"))
            {
                Literal3.Text = "selected='selected'";
            }
            else if (language.Equals("en-US"))
            {
                Literal4.Text = "selected='selected'";
            }
        }

        Page.Culture = LanguageHelper.Language;
        Page.UICulture = LanguageHelper.Language;

4,由于语言设置存放在Session中,所以,Handler需要实现接口,示例如下:

<%@ WebHandler Language="C#" Class="BPMApp.BPMModuleTree" %>

using System;
using System.Web;
using System.Text;
using System.Web.SessionState;

namespace BPMApp
{
    public class BPMModuleTree : IHttpHandler, IRequiresSessionState 
    {
        public void ProcessRequest(HttpContext context)
        {
            JsonItemCollection rootItems = new JsonItemCollection();
            JsonItem item;
            JsonItemCollection children;
            JsonItemCollection tabs;
            JsonItem config;

            System.Globalization.CultureInfo newCulture = new System.Globalization.CultureInfo(LanguageHelper.Language);
            System.Threading.Thread.CurrentThread.CurrentCulture = newCulture;
            System.Threading.Thread.CurrentThread.CurrentUICulture = newCulture;

            item = new JsonItem();
            rootItems.Add(item);
            item.Attributes["text"] = Resources.YZStrings.BPMModules_BPM_Task;
            item.Attributes["expanded"] = true;
            children = new JsonItemCollection();
            item.Attributes.Add("children", children);

            item = new JsonItem();
            children.Add(item);
            item.Attributes["id"] = "PostRequest";
            item.Attributes["text"] = Resources.YZStrings.BPMModules_BPM_Task_Post;
            item.Attributes["moduleUrl"] = "YZSoft/BPM/Modules/PostPanel.js";

            item = new JsonItem();
            children.Add(item);
            item.Attributes["id"] = "Worklist";
            item.Attributes["text"] = Resources.YZStrings.BPMModules_BPM_Task_Cur;
            item.Attributes["activeTab"] = "MyTask";
            tabs = new JsonItemCollection();
            item.Attributes.Add("tabs", tabs);

            item = new JsonItem();
            tabs.Add(item);
            item.Attributes["id"] = "MyTask";
            item.Attributes["text"] = Resources.YZStrings.BPMModules_BPM_Task_Cur_Worklist;
            item.Attributes["moduleUrl"] = "YZSoft/BPM/Modules/MyTaskPanel.js";

            item = new JsonItem();
            tabs.Add(item);
            item.Attributes["id"] = "ShareTask";
            item.Attributes["text"] = Resources.YZStrings.BPMModules_BPM_Task_Cur_Share;
            item.Attributes["moduleUrl"] = "YZSoft/BPM/Modules/ShareTaskPanel.js";
            
            item = new JsonItem();
            children.Add(item);
            item.Attributes["id"] = "HistoryTask";
            item.Attributes["text"] = Resources.YZStrings.BPMModules_BPM_Task_His;
            item.Attributes["moduleUrl"] = "";
            tabs = new JsonItemCollection();
            item.Attributes.Add("tabs", tabs);

            item = new JsonItem();
            tabs.Add(item);
            item.Attributes["id"] = "HistoryTaskMyRequest";
            item.Attributes["text"] = Resources.YZStrings.BPMModules_BPM_Task_His_MyRequest;
            item.Attributes["moduleUrl"] = "YZSoft/BPM/Modules/HistoryTaskMyPostedPanel.js";

            item = new JsonItem();
            tabs.Add(item);
            item.Attributes["id"] = "HistoryTaskDelegationRequest";
            item.Attributes["text"] = Resources.YZStrings.BPMModules_BPM_Task_His_DelegationRequest;
            item.Attributes["moduleUrl"] = "YZSoft/BPM/Modules/HistoryTaskMyDelegationPanel.js";

            item = new JsonItem();
            tabs.Add(item);
            item.Attributes["id"] = "HistoryTaskMyProcessed";
            item.Attributes["text"] = Resources.YZStrings.BPMModules_BPM_Task_His_MyProcessed;
            item.Attributes["moduleUrl"] = "YZSoft/BPM/Modules/HistoryTaskMyProcessedPanel.js";

            item = new JsonItem();
            tabs.Add(item);
            item.Attributes["id"] = "HistoryTaskAllAccessable";
            item.Attributes["text"] = Resources.YZStrings.BPMModules_BPM_Task_His_All;
            item.Attributes["moduleUrl"] = "YZSoft/BPM/Modules/HistoryTaskAllAccessablePanel.js";

            /*
            item = new JsonItem();
            tabs.Add(item);
            item.Attributes["id"] = "SpecProcessHistoryTaskMyPosted";
            item.Attributes["text"] = Resources.YZStrings.BPMModules_BPM_Task_His_MyPosted;
            item.Attributes["moduleUrl"] = "YZSoft/BPM/Modules/HistoryTaskMyPostedPanel.js";
            config = new JsonItem();
            item.Attributes["config"] = config;
            config.Attributes["SpecProcessName"] = "PR005";

            item = new JsonItem();
            tabs.Add(item);
            item.Attributes["id"] = "SpecHistoryTaskMyProcessed";
            item.Attributes["text"] = Resources.YZStrings.BPMModules_BPM_Task_His_MyProcessed;
            item.Attributes["moduleUrl"] = "YZSoft/BPM/Modules/HistoryTaskMyProcessedPanel.js";
            config = new JsonItem();
            item.Attributes["config"] = config;
            config.Attributes["SpecProcessName"] = "PR005";

            item = new JsonItem();
            tabs.Add(item);
            item.Attributes["id"] = "SpecProcessHistoryTaskAllAccessable";
            item.Attributes["text"] = Resources.YZStrings.BPMModules_BPM_Task_His_All;
            item.Attributes["moduleUrl"] = "YZSoft/BPM/Modules/HistoryTaskAllAccessablePanel.js";
            config = new JsonItem();
            item.Attributes["config"] = config;
            config.Attributes["SpecProcessName"] = "PR005";
            */

            item = new JsonItem();
            children.Add(item);
            item.Attributes["id"] = "FormTemplate";
            item.Attributes["text"] = Resources.YZStrings.BPMModules_BPM_Task_FormTemplate;
            item.Attributes["moduleUrl"] = "YZSoft/BPM/Modules/FormTemplatePanel.js";
                        
            item = new JsonItem();
            children.Add(item);
            item.Attributes["id"] = "Drafts";
            item.Attributes["text"] = Resources.YZStrings.BPMModules_BPM_Task_Drafts;
            item.Attributes["moduleUrl"] = "YZSoft/BPM/Modules/DraftsPanel.js";

            item = new JsonItem();
            rootItems.Add(item);
            item.Attributes["id"] = "Personal";
            item.Attributes["text"] = Resources.YZStrings.BPMModules_Personal;
            tabs = new JsonItemCollection();
            item.Attributes.Add("tabs", tabs);

            item = new JsonItem();
            tabs.Add(item);
            item.Attributes["id"] = "TaskRule";
            item.Attributes["text"] = Resources.YZStrings.BPMModules_Personal_TaskRule;
            item.Attributes["moduleUrl"] = "YZSoft/Personal/Modules/TaskRulePanel.js";

            item = new JsonItem();
            tabs.Add(item);
            item.Attributes["id"] = "NotifyRecp";
            item.Attributes["text"] = Resources.YZStrings.BPMModules_Personal_Notify;
            item.Attributes["moduleUrl"] = "YZSoft/Personal/Modules/NotifySettingPanel.js";

            item = new JsonItem();
            tabs.Add(item);
            item.Attributes["id"] = "ChgPwd";
            item.Attributes["text"] = Resources.YZStrings.BPMModules_Personal_Password;
            item.Attributes["moduleUrl"] = "YZSoft/Personal/Modules/ChangePwdPanel.js";

            item = new JsonItem();
            tabs.Add(item);
            item.Attributes["id"] = "UserInfo";
            item.Attributes["text"] = Resources.YZStrings.BPMModules_Personal_UserInfo;
            item.Attributes["moduleUrl"] = "YZSoft/Personal/Modules/ChangeUserInfoPanel.js";

            item = new JsonItem();
            tabs.Add(item);
            item.Attributes["id"] = "Leave";
            item.Attributes["text"] = Resources.YZStrings.BPMModules_Personal_Leave;
            item.Attributes["moduleUrl"] = "YZSoft/Personal/Modules/Leave.js";

            context.Response.Write(rootItems.ToString());
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}

  

 效果如下:

 

 

 posted on 2015-12-22 15:25  jerryshakalaka  阅读(632)  评论(0)    收藏  举报