dotNet繁体解决方案
1.转载的文章
重写Filter类就可以了。
重写Filter类就可以了。
用法:
if(Session["big5"].ToString()=="2"){Response.Filter = new DreamZone.Core.CG2BFilter(Response.Filter);}
CG2BFilter.cs文件如下:
1
using System;
2
using System.Text;
3
using System.Text.RegularExpressions;
4
using System.IO;
5
using System.Web;
6
namespace DreamZone.Core
7
{
8
/// <summary>
9
/// CG2BFilter 的摘要说明。
10
/// </summary>
11
12
public class CG2BFilter : Stream
13
{
14
Stream responseStream;
15
long position;
16
StringBuilder responseHtml;
17
18
public CG2BFilter (Stream inputStream)
19
{
20
responseStream = inputStream;
21
responseHtml = new StringBuilder ();
22
}
23
24
Filter overrides
76
77
转换任务
88
自定义函数
100
}
101
}
102
103
using System;2
using System.Text;3
using System.Text.RegularExpressions;4
using System.IO;5
using System.Web;6
namespace DreamZone.Core7
{8
/// <summary>9
/// CG2BFilter 的摘要说明。10
/// </summary> 11
12
public class CG2BFilter : Stream13
{14
Stream responseStream;15
long position;16
StringBuilder responseHtml;17

18
public CG2BFilter (Stream inputStream)19
{20
responseStream = inputStream;21
responseHtml = new StringBuilder ();22
}23

24
Filter overrides76

77
转换任务88
自定义函数100
}101
}102

103

2.新转换类CG2BFilter(要引用Microsoft.VisualBasic.dll)
1
using System;
2
using System.Text;
3
using System.Text.RegularExpressions;
4
using System.IO;
5
using System.Web;
6
7
/// <summary>
8
/// CG2BFilter 的摘要说明。
9
/// </summary>
10
public class CG2BFilter : Stream
11
{
12
Stream responseStream;
13
long position;
14
StringBuilder responseHtml;
15
16
public CG2BFilter()
17
{
18
//后期添加,以便可以对文本直接转换
19
}
20
21
public CG2BFilter(Stream inputStream)
22
{
23
responseStream = inputStream;
24
responseHtml = new StringBuilder();
25
}
26
27
Filter overrides
79
80
转换任务
91
自定义函数
103
}
104
using System;2
using System.Text;3
using System.Text.RegularExpressions;4
using System.IO;5
using System.Web;6

7
/// <summary>8
/// CG2BFilter 的摘要说明。9
/// </summary> 10
public class CG2BFilter : Stream11
{12
Stream responseStream;13
long position;14
StringBuilder responseHtml;15

16
public CG2BFilter()17
{18
//后期添加,以便可以对文本直接转换19
}20

21
public CG2BFilter(Stream inputStream)22
{23
responseStream = inputStream;24
responseHtml = new StringBuilder();25
}26

27
Filter overrides79

80
转换任务91
自定义函数103
}104

3.页面基类BasePage
1
using System;
2
using System.Data;
3
using System.Configuration;
4
using System.Web;
5
using System.Web.Security;
6
using System.Web.UI;
7
using System.Web.UI.WebControls;
8
using System.Web.UI.WebControls.WebParts;
9
using System.Web.UI.HtmlControls;
10
11
/// <summary>
12
/// BasePage 的摘要说明
13
/// </summary>
14
public class BasePage : System.Web.UI.Page
15
{
16
public BasePage()
17
{
18
//
19
// TODO: 在此处添加构造函数逻辑
20
//
21
}
22
23
protected override void OnInit(EventArgs e)
24
{
25
//if (!String.IsNullOrEmpty(Request.QueryString["lan"]) && Request.QueryString["lan"].ToLower() == "big5")
26
//{
27
// Response.Filter = new CG2BFilter(Response.Filter);
28
//}
29
if (Session["SiteLanguage"] == "Big5")
30
{
31
Response.Filter = new CG2BFilter(Response.Filter);
32
}
33
34
}
35
}
36
using System;2
using System.Data;3
using System.Configuration;4
using System.Web;5
using System.Web.Security;6
using System.Web.UI;7
using System.Web.UI.WebControls;8
using System.Web.UI.WebControls.WebParts;9
using System.Web.UI.HtmlControls;10

11
/// <summary>12
/// BasePage 的摘要说明13
/// </summary>14
public class BasePage : System.Web.UI.Page15
{16
public BasePage()17
{18
//19
// TODO: 在此处添加构造函数逻辑20
//21
}22

23
protected override void OnInit(EventArgs e)24
{25
//if (!String.IsNullOrEmpty(Request.QueryString["lan"]) && Request.QueryString["lan"].ToLower() == "big5")26
//{27
// Response.Filter = new CG2BFilter(Response.Filter);28
//}29
if (Session["SiteLanguage"] == "Big5")30
{31
Response.Filter = new CG2BFilter(Response.Filter);32
}33

34
}35
}36

4.切换控件Header.ascx
1
<asp:ImageButton
2
ID="SiteLanguage" runat="server" ImageUrl="~/Images/big5.gif" OnClick="SiteLanguage_Click" CausesValidation="false" /></li>
3
4
5
6
using System;
7
using System.Data;
8
using System.Configuration;
9
using System.Collections;
10
using System.Web;
11
using System.Web.Security;
12
using System.Web.UI;
13
using System.Web.UI.WebControls;
14
using System.Web.UI.WebControls.WebParts;
15
using System.Web.UI.HtmlControls;
16
17
public partial class Controls_Header : System.Web.UI.UserControl
18
{
19
protected bool _isindex;
20
public bool IsIndex
21
{
22
get { return _isindex; }
23
set { _isindex = value; }
24
}
25
protected void Page_Load(object sender, EventArgs e)
26
{
27
ShowLanguage();
28
}
29
30
protected void SiteLanguage_Click(object sender, ImageClickEventArgs e)
31
{
32
switchLanguage();
33
Response.Redirect(Request.RawUrl);
34
//ShowLanguage();
35
}
36
37
38
private void switchLanguage()
39
{
40
if (Session["SiteLanguage"] == "Big5")
41
{
42
Session["SiteLanguage"] = "GB";
43
}
44
else
45
{
46
Session["SiteLanguage"] = "Big5";
47
}
48
}
49
50
private void ShowLanguage()
51
{
52
//string url = Request.RawUrl.ToLower();
53
//if (url.IndexOf("lan=gb") > 0 || url.IndexOf("lan=big5")>0)
54
//{
55
// url = url.Replace("lan=gb", "lan={t}").Replace("lan=big5", "lan={t}");
56
//}
57
//else
58
//{
59
// if (url.IndexOf("?") > 0)
60
// {
61
// url = url + "&lan={t}";
62
// }
63
// else
64
// {
65
// url = url + "?lan={t}";
66
// }
67
//}
68
//if (String.IsNullOrEmpty(Request.QueryString["lan"]) || Request.QueryString["lan"].ToLower()=="gb")
69
//{
70
// url = url.Replace("lan={t}", "lan=big5");
71
// navurl.Text = "<a href='" + url + "'><img src='/images/big5.gif' border='0' /></a>";
72
//}
73
//else
74
//{
75
// url = url.Replace("lan={t}", "lan=gb");
76
// navurl.Text = "<a href='" + url + "'><img src='/images/gb.gif' border='0' /></a>";
77
//}
78
if (Session["SiteLanguage"] == "Big5")
79
{
80
SiteLanguage.ImageUrl = "~/Images/gb.gif";
81
SiteLanguage.ToolTip = "简体版本";
82
}
83
else
84
{
85
SiteLanguage.ImageUrl = "~/Images/big5.gif";
86
SiteLanguage.ToolTip = "繁体版本";
87
}
88
89
}
90
91
}
92
<asp:ImageButton2
ID="SiteLanguage" runat="server" ImageUrl="~/Images/big5.gif" OnClick="SiteLanguage_Click" CausesValidation="false" /></li>3

4

5

6
using System;7
using System.Data;8
using System.Configuration;9
using System.Collections;10
using System.Web;11
using System.Web.Security;12
using System.Web.UI;13
using System.Web.UI.WebControls;14
using System.Web.UI.WebControls.WebParts;15
using System.Web.UI.HtmlControls;16

17
public partial class Controls_Header : System.Web.UI.UserControl18
{19
protected bool _isindex;20
public bool IsIndex21
{22
get { return _isindex; }23
set { _isindex = value; }24
}25
protected void Page_Load(object sender, EventArgs e)26
{27
ShowLanguage();28
}29

30
protected void SiteLanguage_Click(object sender, ImageClickEventArgs e)31
{32
switchLanguage();33
Response.Redirect(Request.RawUrl);34
//ShowLanguage();35
}36

37

38
private void switchLanguage()39
{40
if (Session["SiteLanguage"] == "Big5")41
{42
Session["SiteLanguage"] = "GB";43
}44
else45
{46
Session["SiteLanguage"] = "Big5";47
}48
}49

50
private void ShowLanguage()51
{52
//string url = Request.RawUrl.ToLower();53
//if (url.IndexOf("lan=gb") > 0 || url.IndexOf("lan=big5")>0)54
//{55
// url = url.Replace("lan=gb", "lan={t}").Replace("lan=big5", "lan={t}");56
//}57
//else58
//{59
// if (url.IndexOf("?") > 0)60
// {61
// url = url + "&lan={t}";62
// }63
// else64
// {65
// url = url + "?lan={t}";66
// }67
//}68
//if (String.IsNullOrEmpty(Request.QueryString["lan"]) || Request.QueryString["lan"].ToLower()=="gb")69
//{70
// url = url.Replace("lan={t}", "lan=big5");71
// navurl.Text = "<a href='" + url + "'><img src='/images/big5.gif' border='0' /></a>";72
//}73
//else74
//{75
// url = url.Replace("lan={t}", "lan=gb");76
// navurl.Text = "<a href='" + url + "'><img src='/images/gb.gif' border='0' /></a>";77
//}78
if (Session["SiteLanguage"] == "Big5")79
{80
SiteLanguage.ImageUrl = "~/Images/gb.gif";81
SiteLanguage.ToolTip = "简体版本";82
}83
else84
{85
SiteLanguage.ImageUrl = "~/Images/big5.gif";86
SiteLanguage.ToolTip = "繁体版本";87
}88

89
}90

91
}92

5.WebService转换
1
/// <summary>
2
/// 品牌下类别
3
/// </summary>
4
/// <param name="knownCategoryValues"></param>
5
/// <param name="category"></param>
6
/// <returns></returns>
7
[WebMethod(EnableSession = true)]
8
public AjaxControlToolkit.CascadingDropDownNameValue[] QueryCategoriesByBrand(string knownCategoryValues,
9
string category)
10
{
11
StringDictionary kv = CascadingDropDown.ParseKnownCategoryValuesString(knownCategoryValues);
12
13
if (!kv.ContainsKey("Brand") || String.IsNullOrEmpty(kv["Brand"]))
14
return null;
15
string _brand = kv["Brand"];
16
DataSet ds = SqlHelper.ExecuteDataset(SqlHelper.ConnectionString, "SP_QueryCategoriesByBrand", _brand);
17
List<CascadingDropDownNameValue> values = new List<CascadingDropDownNameValue>();
18
foreach (DataRow dr in ds.Tables[0].Rows)
19
{
20
string tmpStr = dr["CategoryName"].ToString();
21
if (Session["SiteLanguage"] == "Big5")
22
{
23
CG2BFilter switchLanguage = new CG2BFilter();
24
tmpStr = switchLanguage.Simplified2Traditional(tmpStr);
25
}
26
values.Add(new CascadingDropDownNameValue(tmpStr, dr["CategoryID"].ToString()));
27
}
28
return values.ToArray();
29
}
/// <summary>2
/// 品牌下类别3
/// </summary>4
/// <param name="knownCategoryValues"></param>5
/// <param name="category"></param>6
/// <returns></returns>7
[WebMethod(EnableSession = true)]8
public AjaxControlToolkit.CascadingDropDownNameValue[] QueryCategoriesByBrand(string knownCategoryValues,9
string category)10
{11
StringDictionary kv = CascadingDropDown.ParseKnownCategoryValuesString(knownCategoryValues);12

13
if (!kv.ContainsKey("Brand") || String.IsNullOrEmpty(kv["Brand"]))14
return null;15
string _brand = kv["Brand"];16
DataSet ds = SqlHelper.ExecuteDataset(SqlHelper.ConnectionString, "SP_QueryCategoriesByBrand", _brand);17
List<CascadingDropDownNameValue> values = new List<CascadingDropDownNameValue>();18
foreach (DataRow dr in ds.Tables[0].Rows)19
{20
string tmpStr = dr["CategoryName"].ToString();21
if (Session["SiteLanguage"] == "Big5")22
{23
CG2BFilter switchLanguage = new CG2BFilter();24
tmpStr = switchLanguage.Simplified2Traditional(tmpStr);25
}26
values.Add(new CascadingDropDownNameValue(tmpStr, dr["CategoryID"].ToString()));27
}28
return values.ToArray();29
}6.页面继承BasePage


浙公网安备 33010602011771号