|
本地化 ASP.NET 应用程序
复制并翻译
本地化 Web 页的最简单方法通常是创建副本并将其翻译为目标语言。此方法非常适合不需要大量维护的静态内容。若要为 ASP.NET
页支持此模型,可以使用 Page 指令设置 Culture 属性。所有与区域设置相关的方法都获取 Culture
属性值。
下面的示例说明如何为页的三个独立的本地化版本实现此方法。在每页上都设置了 Culture 属性以确定日期格式:
<%@Page Culture="de-DE"
Language="VB" %>
...
<%=DateTime.Now.ToString("f", Nothing)%> |
| |
VB news-en-us.aspx
[运行示例] | [查看源代码] |
|
VB news-de.aspx
[运行示例] | [查看源代码] |
|
VB news-ja.aspx
[运行示例] | [查看源代码] |
本地化和控件
在简单的"复制并翻译"方法上的一个改进是使用控件获取主要网页的区域性。在下面的示例中,标志图像和搜索条是控件。根据宿主网页的区域性,它们呈现不同的内容。为支持这一点,在每页中还添加了
UICulture 属性:
| <%@Page Culture="de-DE"
UICulture="de-DE" Language="VB" %> |
例如,标志控件 (Flag.ascx) 仅使用区域性名称生成 <img> 标记的 Src 属性:
| <%@Import Namespace="System.Globalization"%>
<script runat="Server"
Language="VB">
Overrides Protected Sub Render(writer As HtmlTextWriter)
FlagImage.Src = "../../flags/" & CultureInfo.CurrentCulture.Name
& ".jpg"
FlagImage.Alt = CultureInfo.CurrentCulture.NativeName
MyBase.Render(writer)
End Sub
</script>
<img runat="server" id="FlagImage"
/>
|
搜索控件 (Search.ascx) 使用 switch 语句初始化标签和文本框的值,而区域性名称也可以是数据库查询的参数:
Sub LocalizeSearchText()
Select Case String.Intern(CultureInfo.CurrentUICulture.Name))
Case "en-US"
SearchText.Text = "Clinton"
SearchButton.Text = "Search"
Case "de-DE"
...
Case "ja-JP"
...
Case Else
SearchButton.Text = "Search"
End Select
End Sub
|
| |
VB news-en-us.aspx
[运行示例] | [查看源代码] |
|
VB news-de.aspx
[运行示例] | [查看源代码] |
|
VB news-ja.aspx
[运行示例] | [查看源代码] |
本节小结
1.ASP.NET 页支持 Culture 和 UICulture 属性以支持独立的本地化页。
2.页上的控件可以获取页的区域性,并且可以呈现与区域性相关的内容。
感谢2001 Microsoft Corporation教材提供 |
|