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
浙公网安备 33010602011771号