B/S或者C/S软件中都会涉及多语言版本的问题,那么如何在编程过程中尽量减少因为多语言而带来的程序复杂性呢?下面是我想到的一个解决方案,希望广大网友们各抒己见,我用asp.net(C#)语言抛砖引玉了.
软件语言版本就是软件界面上的文字.我将界面上的文字分为两种类型:1 直接放在界面上的文字(在asp.net中大部分这些文字都是控件上一个属性的值) 2 由程序控制动态生成的文字(大部分是生成的控件上一个属性的值) ,所以所谓多语言版本的对这些文字的控制.
下面是我的解决方案:
一 对直接放在界面上的文字的处理
主要是使用资源文件来处理:(方法引用自:http://singlepine.cnblogs.com/articles/253309.html)
1.建立工程,比如Document,配置webconfig
<appSettings>
<add key="DefaultCulture" value="zh-cn" />
<add key="CNCulture" value="zh-cn" />
<add key="ENCulture" value="en-us" />
</appSettings>
2.添加资源文件
右键添加新项目,选中Assembly Resource File,命名为strings.en-us.resx和strings.zh-cn.resx,然后配置如下
2.1 strings.en-us.resx
<?xml version="1.0" encoding="utf-8" ?>
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
asp.net(C#)软件中多语言解决方案
最新推荐文章于 2024-07-01 07:15:57 发布
本文介绍了如何在ASP.NET(C#)软件中实现多语言版本,包括使用资源文件处理静态界面文本,以及处理动态生成的文字的方法。通过设置不同语言的资源文件,结合Global.asax的配置和按钮事件,实现了用户切换语言的功能。同时,对于程序控制动态生成的文字,提出了数据库设计和语言类的处理方案。
摘要由CSDN通过智能技术生成