最近给单位做了一个业务下单系统,由于在全球几个国家都有业务办事处,所以下单系统做的是多语言界面的我实现多语言是利用了ASP.NET2.0的资源文件,其实据我所知除了资源文件的方式,在数据库里面建多个表中进行一个区域文化映射,也是解决国际化的一种方式(关于这种方式感兴趣的朋友可以自己试试)
现在我把实现国际化用到的相关知识总结如下:
在总结全球化知识前,先来了解一个名词:表达式语法表达式语法格式:<%$ …… %>它是ASP.NET2.0新增了一种声明性表达式语法,可在分析页之前将值替换到页中。
ASP.NET表达式是基于运行时计算的信息设置控件属性的一种声明性方式。
ASP.NET表达式主要应用在:连接字符串,应用程序设置,资源文件等地方。
ASP.NET 表达式的基本语法如下:<%$ expressionPrefix: expressionValue %>
下面演示表达式语法在连接字符串和应用程序设置的应用:
a.表达式语法在连接字符串的应用将存储在Web.config文件中的连接字符串的值设置为控件的连接字符串属性
<asp:SqlDataSource ID="SqlDataSource1" Runat="server"
SelectCommand="SELECT * FROM Employees"
ConnectionString="<%$ ConnectionStrings:NorthwindCon %>">
</asp:SqlDataSource>
<configuration>
<connectionStrings>
<add name="NorthwindCon"
connectionString="Data Source=yanfa0;Integrated Security=SSPI;Initial Ctalog=Northwind;"
providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
b.表达式语法在应用程序设置的应用使用表达式来
引用在Web.config配置文件中定义的应用程序设置
<asp:Label ID="Label1" runat="server" Text="<%$ AppSettings:Txt %>"></asp:Label>
<appSettings>
<add key="Txt" value="Abc"/>
</appSettings>
其实表达式语法还有一个重要的应用,就是在资源文件中的使用,而资源文件正是我实现本地化的基础。
ASP.NET2.0提供了三项关于网站国际化的特性:
(1)自动侦测浏览器的语言通过确定发出请求的浏览器的语言,可以方便地根据用户的区域性调整应用程序的行为
(2)声明本地化的表达式声明性资源表达式可使您的应用程序使用多种语言,而不必手动编写代码来检索资源并在页中进行替换只需使用ASP.NET2.0中新提供的表达式语法即可对资源替换进行定义
(3)生成本地资源ASP.NET2.0支持标准的resx文件格式自动进行运行时资源检索。
Vs2005也提供了相应的支持,可方便地生成资源
A.区域性的格式设置
区域性名称和标识符名称遵循RFC 1766标准,具体请查看msdn
请看下图,我抓取的部分区域性图片: