http://chs.gotdotnet.com/quickstart/aspplus/doc/cultureencoding.aspx
http://chs.gotdotnet.com/quickstart/aspplus/doc/internationalization.aspx
http://chs.gotdotnet.com/quickstart/aspplus/doc/internationalization.aspx
解决方案 »
- asp.net 2个账号,下载功能
- 页面中,不知为什么,突然现在单击按钮一点动静都没有,我进入断点调试,调试是pageload可以进入,但是,按钮的单击事件弄死都没反应,以前遇到过,不了了之,
- 跳出frame 打开新窗体?
- gridview 在添加一行直接显示 EditItemTemplate 就是怎样直接添加行就在编辑模式 里有代码 有望高首指点
- 请问下大家,一般怎么分析网站现在运营情况和硬件,网络,数据库的负载情况呢
- FileUpLoad上传文件的大小问题
- 在三层中业务层需要设计接口吗
- GridView嵌套DropDownList+SqlDataSource,请高人帮忙解决一下
- XP 支持 SQL2000 不?
- 关于上传文件
- 时钟代码,求助
- asp与asp.net两个项目互相访问?
你把各个显示的地方取个名字,然后根据这些名字,将内容写到一个XML中,然后将XML解析后放到cache中,然后在要显示内容的地方,使用变量,就可以了嘛!
比如你解析后分配给一个hashtable,其中有个是login_title的内容是“用户登陆”你在显示的时候就调用hashtable["login_title"]来做显示就可以了
至于为什么要用cache那是为了高效率:)
2 .NET中提供的多语言处理很强大。.NET IDE2003自身就是个好的例子。
(修改你的FORM的LANGUAGE就能得到多个语言版本的窗体资源,当应用程序主线程得到不同地区的信息。系统也会自动访问不同的资源)当然你还得有公共的资源
3 当然SYSTEM.RESOURCE命名空间多了解了解才行。
ResourceManager LocRM = new ResourceManager("WinApp.Form1",typeof(Form1).Assembly);
this.textBox1.Text =LocRM.GetString("textBox1.Text");
this.textBox2.Text =LocRM.GetString("name") + " " + LocRM.GetString("team") + " " + LocRM.GetString("work");
this.richTextBox1.Text =this.textBox2.Text;
listBox1.Items.Clear();
listBox1.Items.Add(LocRM.GetString("name")) ;
listBox1.Items.Add(LocRM.GetString("team")) ;
listBox1.Items.Add(LocRM.GetString("work")) ;
this.pictureBox1.Image =(System.Drawing.Image)LocRM.GetObject("imagesfile");
iResult = 1;
(最好给一个例子,例如一个标签的多语言化)
这个用资源文件是很方便的
对于界面,你可以设置它的localzible为true,然后选择不同的language,不同的语言分别设置一次。
对于动态的提示信息,你可以放到资源文件里面
给我你的Email
我这里正好有一个小例子,很简单
http://www.lostinet.com/files/MultiLang.rar
2. .NET Framework对全球化有完全的支持。.可根据最终用户的地区,使用不同的语言、图像,甚至是窗体布局。还可根据最终用户的地区规则,使用代码来处理日期、时间、货币、以及大的数字。
3. ISO 639-1标准对100多种语言和地区指定了命名,语言(小写字母)-地区(大写字母)标志符以W3C RFC 1766为基础。例如
地区标志符 语言-国家
zh-HK 汉语-香港
zh-CN 汉语-中国
Zh-TW 汉语-台湾
en-GB 英语-英国
en-US 英语-美国
en-CA 英语-加拿大
ja-JP 日语-日本
ja 日语
4.用程序实现改变地区。
using System.Threading;
using System.Globalization;
try
{
Thread.CurrentThread.CurrentUICulture=new CultureInfo("ja-JP");
}
catch(ArgumentException e)
{
MessageBox.Show("Invalid local:Setting local to Chinese-China");
// Thread.CurrentThread.CurrentUICulture=new CultureInfo("zh-CN");
}
此代码中如果使用了无效的字符串来设置地区,就会使用默认的地区。
显示当前系统的本地化名称:
String a=Thread.CurrentThread.CurrentUICulture.ToString();
MessageBox.Show(this,a);
5.资源文件的本地化
本地化是指:为组件需要支持的地区生成资源文件的过程。本地化需要将所有的UI文本转化为想要支持的各种语言。还需要特定地区的图像以及存储于特定地区的文件中。.NET Framework的全球化基础机构根据最终用户的地区,在运行时自动加载正确的资源。
在.NET全球化Framework中使用两类资源文件:
.resx文件:可容纳二进制和XML数据。该文件还可以用于存储组件中使用的字符串的本地化版本
.resource文件:文件包含可描述字符串和可序化的对象的基于XML的文本。在编译和链接项目时,VS.NET将窗体的,resx文件编译成,resource文件,并将后者包含在附属的集合中。6.窗体本地化
对于Localizable属性为“true”的每个窗体,都拥有.resx文件来容纳本地化项,如文本和图像。该文件包含窗体的所有UI特性,包括布局信息。每个地区与其自己的.resx文件相关联,不仅可用于不同的语言,还可用于不同的布局。在为文本是垂直书写而不是水平书写的地区创建组件的本地化版本时,改变UI元素的布局以匹配文本的书写,通常来说是必要的。
.resx文件包含了描述每个窗体的可本地化特性的XML代码,VS,NET有个内嵌的工具可编辑.resx文件。7.字符串的本地化
增加Assembly Resource File模板即.resx资源文件,加入需要使用的字符串。Name为字符串名,value为字符串文本,comment为注释。访问的方法:(都需要使用Resources类)
using System.Resources;
第一种方法,是加载包含在资源文件中的所有资源名,但直到需要时再加载资源值。
ResourceManager rm=new ResourceManager("WindowsApplication5.MyStrings",this.GetType().Assembly);
String s=rm.GetString("ThankYou");
MessageBox.Show(this,s);
ResourceManeger提供了重要的回退(fallback)的性能。如果对于寻找的某资源,其名称不存在于特定的地区中,改类将在父地区查找该资源。比如在it-CH找不到,则将在其父类it中寻找,如果还没找到,就在默认地区的资源文件中查找。
第二种方法,对于并发的快速访问,使用ResourceSet类立即加载所有的本地化名和值。
ResourceManager rm=new ResourceManager("WindowsApplication5.MyStrings",this.GetType().Assembly);
ResourceSet rs=rm.GetResourceSet(Thread.CurrentThread.CurrentUICulture,true,true);
String s=rm.GetString("ThankYou");
MessageBox.Show(this,s);
如果在指定的资源文件中没有找到资源,查找将返回“null”。8.带有参数置换的短语
String s=string.Format(“The {0},{1} has been sold”,color,typeOfVehicle); VehicleSold=the {0} {1} has been sold
Private ResourceManager rm;
Rm=new ResourceManager(“MyStrings”,this.GetType().Assembly)
String format=rm.GetString(“VehicleSold”);
String s=string.Format(format,color,typeOfVehicle);9.图像的本地化
9.1使用ResEditor
.NET Framework SDK中的小工具:
D:\Program Files\Microsoft Visual Studio .NET\FrameworkSDK\Samples\Tutorials\resourcesandlocalization\reseditor
执行build.bat文件来建立可执行文件
9.2使用ResxGen
命令格式:
resxgen /i:en-US.jpg /o:Images.resx /n:flag
resxgen /i:it_IT.jpg /o:Images.it-IT.resx /n:flag把.resx文件编译成.resource文件:
resgen <input filename> <output filename>
regeen it-IT\images.it-IT.resx it-IT\images.resources
9.3运行时访问本地化的图像 using System.Drawing;
ResourceManager rm=new ResourceManager(“Images”,this.GetType().Assembly);
Image myFlag.Image=(Image)rm.GetObject(“flag”);