ASP.net2.0利用皮肤实现多国语言版
KeyWord:asp.net,theme,skin,主题,皮肤,多国语言,切换皮肤,皮肤与语言,theme的使用,skin的使用
前一段时间一个朋友问我,能不能用主题来实现网站的多国语言功能,但是对主题和皮肤并没有多少研究所以只能回答他"这个不太清楚".
最近于何(我们公司的技术老大,我一直很敬佩的人物之一)感觉我们以前的项目只用css表来控制样式与外观,这样样式与程序的耦合性很大,对程序和工作的分工很不利.于是就想在下个项目中改善这种传统的做法.我也有幸的参与了进来.主要负责样式与主题的研究与设计.
近两天的摸索,虽然不能说掌握的如何,但是对skin这个asp.net2.0新引进的东西多少有点自己的经验于总结吧.放出与大家共享.
如果大家对skin这个东西感兴趣,可以找点资料自己来看看,其实很简单的.我推荐的教程就是苏鹏老师的asp.net2.0的系列教程中关于skin的部分,以及轰穿天的vs2005基础教程中关于skin部分的教程.(最近对轰穿天大哥比较感兴趣,因为我正少个放网站的网络空间,呵呵~)他们关于skin部分的讲解都比较浅显易懂,推荐对skin不熟悉的朋友看一下.
ok,进入正题,利用皮肤实现网站多国语言的切换.首先让我们来看一段skin文件的代码:
<asp:Button SkinID="skSRB1000" runat="server" Text="見積依頼登録" CssClass="MenuButton" />
<asp:Button SkinID="skbtnEstConfirm" runat="server" CssClass="MenuButton" Text="見積依頼承認" />
<asp:Button SkinID="skSRB2100on" runat="server" Text="発注依頼登録(オンライン)" CssClass="MenuButton" />
<asp:Button SkinID="skSRB2100off" runat="server" Text="発注依頼登録(オフライン)" CssClass="MenuButton" />
<asp:Button SkinID="skSRB3110" runat="server" Text="確定納品日登録" CssClass="MenuButton" />
<asp:Button SkinID="skSRB4110" runat="server" Text="ベンダー請求確認" CssClass="MenuButton" />
<asp:HyperLink SkinID="skhplEnter" ImageUrl="~/yangzy/Image/home.gif" ToolTip="入口" runat="server"></asp:HyperLink>
<asp:HyperLink SkinID="skhplLogout" ImageUrl="~/yangzy/Image/exit.gif" ToolTip="ログアウト" runat="server"></asp:HyperLink>
因为skinID不能和前台控件的ID重复所以我的skinID都加上了sk前缀.其实大家看到这个代码就应该立刻明白了问题的解决方案.我们正是利用在skin文件里面可以对控件的Text和ToolTip属性进行设置的特性进行语言版本的切换.建立多个skin文件,将控件的text和tooltip进行多国语言的设计,这样当用户切换使用皮肤的时候,就能够进行语言的切换了.