您的位置:首页 > 编程语言 > ASP

ASP.NET中多国语言的实现

2008-03-13 19:53 351 查看
现在的程序越来越要考虑国际化了,对于网站的开发也经常要考虑国际化的问题。

常见的国际化的需求主要就是两个方面:

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 %>的方式取值
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: