ASP.NET中多国语言的实现
2008-03-13 17:24
441 查看
现在的程序越来越要考虑国际化了,对于网站的开发也经常要考虑国际化的问题。
常见的国际化的需求主要就是两个方面:
1、不同的国家页面布局不同
2、不同的国家要显示当国的文字
在ASP.NET2.0中实现这两种需求的方法很多,我今天就总结其中一种方法的具体实现。
对应需求1我们可以使用母版页来实现,对于需求2可以使用资源文件的方式来实现。
在母版页中定义好页面布局和各种语言的转换链接,每种语言定义一个母版页,比如中文就叫Chinese.master,英文就叫English.master
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>首页</title>
</head>
<body>
<form id="form1" runat="server">
<a href="index.aspx?language=Chinese">中文</a>
<a href="index.aspx?language=English">English</a>
<a href="index.aspx?language=Japanese">日本語</a>
<div>
<table>
<tr>
<td>
<asp:contentplaceholder id="Top" runat="server">
</asp:contentplaceholder>
</td>
</tr>
<tr>
<td>bbbbb
</td>
</tr>
<tr>
<td>ccccc
</td>
</tr>
</table>
</div>
</form>
</body>
</html>
其他语言的母版页也是类似
然后可以在每个aspx的Page_PreInit事件中调用共通的方法来进行语言的动态转换
protected void Page_PreInit(object sender, EventArgs e)
public static void ChangeLanguage(HttpRequest Request, Page page)
void Session_Start(object sender, EventArgs e)
void Session_Start(object sender, EventArgs e)
<asp:Content ID="Content1" ContentPlaceHolderID="Top" Runat="Server">
<asp:Label ID="Label1" runat="server" Text="<%$ Resources:Resource,TestString %>"Width="76px">
</asp:Label><br />
<br />
</asp:Content>
也就是说以后出现文字或和区域有关的图片的时候都要在不同的资源文件中定义好,然后在页面中使用<%$ Resources:Resource,TestString %>的方式取值
虽然麻烦了一点,但还是比较方便的,有此需求的可以参考一下,如果有更好的实现方案也欢迎讨论。
常见的国际化的需求主要就是两个方面:
1、不同的国家页面布局不同
2、不同的国家要显示当国的文字
在ASP.NET2.0中实现这两种需求的方法很多,我今天就总结其中一种方法的具体实现。
对应需求1我们可以使用母版页来实现,对于需求2可以使用资源文件的方式来实现。
在母版页中定义好页面布局和各种语言的转换链接,每种语言定义一个母版页,比如中文就叫Chinese.master,英文就叫English.master
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>首页</title>
</head>
<body>
<form id="form1" runat="server">
<a href="index.aspx?language=Chinese">中文</a>
<a href="index.aspx?language=English">English</a>
<a href="index.aspx?language=Japanese">日本語</a>
<div>
<table>
<tr>
<td>
<asp:contentplaceholder id="Top" runat="server">
</asp:contentplaceholder>
</td>
</tr>
<tr>
<td>bbbbb
</td>
</tr>
<tr>
<td>ccccc
</td>
</tr>
</table>
</div>
</form>
</body>
</html>
其他语言的母版页也是类似
然后可以在每个aspx的Page_PreInit事件中调用共通的方法来进行语言的动态转换
protected void Page_PreInit(object sender, EventArgs e)
public static void ChangeLanguage(HttpRequest Request, Page page)
void Session_Start(object sender, EventArgs e)
void Session_Start(object sender, EventArgs e)
<asp:Content ID="Content1" ContentPlaceHolderID="Top" Runat="Server">
<asp:Label ID="Label1" runat="server" Text="<%$ Resources:Resource,TestString %>"Width="76px">
</asp:Label><br />
<br />
</asp:Content>
也就是说以后出现文字或和区域有关的图片的时候都要在不同的资源文件中定义好,然后在页面中使用<%$ Resources:Resource,TestString %>的方式取值
虽然麻烦了一点,但还是比较方便的,有此需求的可以参考一下,如果有更好的实现方案也欢迎讨论。
相关文章推荐
- ASP.NET中多国语言的实现
- asp.net 网站多国语言的实现
- 在ASP.NET 2.0中实现语言本地化(多国语言)
- ASP.NET中多国语言的实现
- asp.net WebForm 多语言的实现
- 在ASP.Net 2.0中实现多语言界面的方法
- 在ASP.Net 2.0中实现多语言界面的方法
- 在ASP.Net 2.0中实现多语言界面的方法
- asp.net 2.0实现多语言(二)
- 晚上无聊象征性收取了网友100元辛苦费,实现支持多语言功能的XML语言包版的C#的ASP.NET多语言支持例子程序
- asp.net 2.0实现语言和主题的切换
- ASP.NET MVC资源文件多语言实现方式
- Asp.Net中多语言的实现
- 跟我一起学如何在ASP.net 2.0中实现多语言支持
- ASP.NET的本地化和多语言实现
- 晚上无聊象征性收取了网友100元辛苦费,实现支持多语言功能的XML语言包版的C#的ASP.NET多语言支持例子程序
- 在ASP.NET MVC中通过URL路由实现对多语言的支持
- 实现多语言网站(Asp.Net 2.0)
- Asp.net中实现多语言的Page的扩展的基类
- 在ASP.Net 2.0中实现多语言界面的方法