仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 670|回复: 8
打印 上一主题 下一主题

[学习教程] ASP.NET编程:怎样开辟一个多种言语版本的C#程序

[复制链接]
飘飘悠悠 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:36:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
前几天同学问我学习方向的问题。有点想法,不知道对不对,怕误导同学,现在“开源一下”。注:括号内是我现在整理的时填加上的。程序  在C#中有多种利用资本文件的办法,可以很便利地开辟环球通用的使用程序。本文经由过程一个复杂的小例子,来说解在C#中怎样使用资本文件,疾速开辟一个多种言语版本的程序。本例中只要一个窗体,三个控件,可以依据用户的设置以中文或英文界面运转。开辟情况是Windows2000Professional、MicrosoftVisualStudio.NET2002。详细开辟步骤以下:

  1、新建项目

  启动MicrosoftVisualStudio.NET,新建一个C#项目MyApp,本例工程寄存于F:CsharpMyApp。

  2、增加控件

  在Form1窗体上增加三个控件(见):主菜单MainMenu、标签Label1和按钮Button1。Label1和Button1控件的属性均接纳缺省设置。MainMenu控件中增加三个菜单项menuItem1、menuItem2、menuItem3。Text属性分离设为“言语”、“中文”和“English”。menuItem2、
menuItem3的RadioCheck属性设为True。



  3、创立设置文件 

  在项目中增加一个文本文件MyAppConfig.ini,保留以后程序的言语版本设置。该文件中只要一行内容。假如是“English”,则暗示程序为英文版;假如是“Chinese”则为中文版。这里临时保留为“English”。

  4、创立资本文件

  .NET中的资本文件有三种:文本(.txt)文件、XML格局的.Resx文件和.Resources文件。文本文件只能包括形如“称号=值”格局的字符串资本。.Resx文件和.Resources文件中不但能保留字符串资本,还能保留图象等可序列化的耐久工具资本。可是只要.resources文件格局的资本文件才干被嵌进到运转库可实行文件中,或被编译为从属程序集。使用VisualStudio.NET中自带的资本文件天生器
(Resgen.exe),能够将.txt文件和.Resx文件转换为.resources文件格局。本例中只用到了字符串资本,以是在项目中增加两个文本文件Resource_zh.txt和Reource_en.txt。

  Reource_en.txt文件中的内容:

menuItem1_Name=Language
button1_Name=Exit
label1_Text=ThisisEnglishversion!
  Resource_zh.txt文件中的内容:

menuItem1_Name=言语
button1_Name=加入
label1_Text=这是中文版!
  必要注重的是Resource_zh.txt文件中含有汉字,必需以UTF-8编码保留。在VisualStudio.NET集成开辟情况中,能够先点击“文件”菜单中的“初级保留选项”,选中UTF-8编码格局,再保留文件。

  然后,点击“程序”菜单中的“VisualStudio.NET命令提醒”菜单,进进DOS体例,输出以下两行命令,天生程序中可以会见的资本文件MyApp.resources和MyApp.zh-CN.resources。英文资本文件MyApp.resources作为默许的后备资本文件。MyApp.zh-CN.resources
是中文资本文件,文件名中的“MyApp”是资本文件的根称号,必需与后备资本文件的根称号不异,“zh-CN”指定资本文件的地区性。

F:CsharpMyApp>resgenResource_en.txt,MyApp.resources
F:CsharpMyApp>resgenResource_zh.txt,MyApp.zh-CN.
resources
<P>  5、修正代码

  1、在代码的开首增加需援用的定名空间。

usingSystem.Globalization;
usingSystem.Resources;
usingSystem.Threading;
usingSystem.IO;
  2、在Form1中界说两个字段ci和rm。CultureInfo工具ci用来指定读取资本文件时的地区性。ResourceManager工具rm用来在指定的资本文件中读取资本。

CultureInfoci=newCultureInfo("");
ResourceManagerrm=ResourceManager.CreateFileBasedResourceManager("MyAPP",".",null);
  3、在Form1中增加一个办法ReadResources,用来读取响应资本文件中的字符串资本,来修正界面菜单、标签和按钮上笔墨显现。

privatevoidReadResources(){
 this.menuItem1.Text=rm.GetString("menuItem1_Text",ci);
 this.button1.Text=rm.GetString("button1_Text",ci);
 this.label1.Text=rm.GetString("label1_Text",ci);
 this.Refresh();
}
  4、在Form1的Load事务处置过程当中,依据设置文件的内容,挪用ReadResources办法,读取资本,显现程序界面。

privatevoidForm1_Load(...){
 StreamReadersr=File.OpenText("MyAppConfig.ini");
 if(sr.ReadLine()=="Chinese"){
  ci=newCultureInfo("zh-CN");
  menuItem2.Checked=true;}
 else{
  ci=newCultureInfo("en");
  menuItem3.Checked=true;
 }
 sr.Close();
 this.ReadResources();
}
  5、在Form1中增加一个办法SaveConfig,用来修正设置文件。在menuItem2和menuItem3的Click事务过程当中挪用SaveConfig办法,分离将字符串“Chinese”、“English”写进设置文件,并挪用ReadResources办法,来更新界面。

privatevoidSaveConfig(stringp_Language){
 StreamWritersw=File.CreateText("MyAppConfig.ini");
 sw.WriteLine(p_Language);
 sw.Close();
}
privatevoidmenuItem2_Click(...){
 this.SaveConfig("Chinese");ci=newCultureInfo("zh-CN");
 menuItem2.Checked=true;menuItem3.Checked=false;
 this.ReadResources();
}
privatevoidmenuItem3_Click(...){
 this.SaveConfig("English");
 ci=newCultureInfo("en");
 menuItem2.Checked=false;
 menuItem3.Checked=true;
 this.ReadResources();
}
  6、在按钮button1的Click事务过程当中,封闭窗体,停止运转程序。

privatevoidbutton1_Click(...)
{
 this.Close();
}
  6、编译并运转程序

  假如手工编译源程序,只需点击“VisualStudio.NET命令提醒”菜单,进进DOS体例,输出上面命令,便可天生二进制的可实行文件MyApp.exe,然后输出MyApp,就可以运转程序。

F:CsharpMyApp>csc/out:MyApp.exeform1.cs

  假如是在MicrosoftVisualStudio.NET集成开辟情况中运转程序,将主动举行编译,并将编译的二进制可实行文件放到binDebug子目次下。此时,必要注重的是要将MyAppConfig.ini、MyApp.resources和MyApp.zh-CN.resources这三个文件也复制到binDebug子目次下,程序才干一般运转。

  程序第一次运转时,是英文界面(见),点击菜单“中文”,将酿成中文界面(见)。单击按钮“Exit”,加入程序后,再次运转程序时,间接显现中文界面。




你觉得数据库怎么样?
小女巫 该用户已被删除
沙发
发表于 2015-1-19 18:03:18 | 只看该作者
asp.net最主要特性包括:◆编程代码更简洁◆网站可实现的功能更强大◆运行效率高◆节省服务器的动作资源
蒙在股里 该用户已被删除
板凳
发表于 2015-1-24 17:39:00 | 只看该作者
是指转换后的Servlet程序代码的行数。这给调试代码带来一定困难。所以,在排除错误时,可以采取分段排除的方法(在可能出错的代码前后输出一些字符串,用字符串是否被输出来确定代码段从哪里开始出错)。
地板
发表于 2015-2-2 11:25:05 | 只看该作者
我觉得什么语言,精通就好,你要做的就是比其他80%的人都厉害,你就能得到只有20%的人才能得到的高薪。
山那边是海 该用户已被删除
5#
发表于 2015-2-7 19:02:15 | 只看该作者
ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码。
若相依 该用户已被删除
6#
发表于 2015-2-23 00:25:51 | 只看该作者
ASP在执行的时候,是由IIS调用程序引擎,解释执行嵌在HTML中的ASP代码,最终将结果和原来的HTML一同送往客户端。
只想知道 该用户已被删除
7#
发表于 2015-3-7 04:34:27 | 只看该作者
网页从开始简单的hmtl到复杂的服务语言,走过了10多个年头,各种技术层出不穷,单个的主流技术也在不断翻新的版本,现在分析下各种语言的区别、优势、劣势、开发注意事项!
分手快乐 该用户已被删除
8#
发表于 2015-3-14 10:28:50 | 只看该作者
平台无关性是PHP的最大优点,但是在优点的背后,还是有一些小小的缺点的。如果在PHP中不使用ODBC,而用其自带的数据库函数(这样的效率要比使用ODBC高)来连接数据库的话,使用不同的数据库,PHP的函数名不能统一。这样,使得程序的移植变得有些麻烦。不过,作为目前应用最为广泛的一种后台语言,PHP的优点还是异常明显的。
飘灵儿 该用户已被删除
9#
发表于 2015-3-21 03:10:33 | 只看该作者
ASP.net1.1和2.0在程序上的语法也有很大不同,现在2.0属于新出来的,不知道半年后会不会有3.0(说笑一下)。Windows2003系统自动支持ASP和ASP.net环境,不用安装任何程序。Asp.net属于编译语言。ASP的最大不同(ASP属于解释语言)。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2025-2-23 10:24

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表