日期:2014-05-19  浏览次数:20713 次

c#做多语言支持该如何实现
想做成点击combolist直接换程序的语言,但是看了下,实现方法都是
改了CurrentUICulture属性后还要手动再一个控件一个控件地改text,
.net有没有封装什么方法直接刷新就可以把控件的text刷新的????

------解决方案--------------------
如果用户可以手动更改,可以作成资源文件。
摘录:《程序员秘书》--源代码--用户界面--多种语言版本的程序
关键代码如下:
10、在Form1.cs的视图设计器中,选中radioButton1,在属性框中选中事件,双击Click,在Form1.cs的代码设计器中,添加修改如下代码
private void radioButton1_Click(object sender, EventArgs e)
{
this.SaveConfig( "Chinese ");
ci = new CultureInfo( "zh-CN ");
this.ReadResources();//读取资源文件
}
11、在Form1.cs的视图设计器中,选中radioButton2,在属性框中选中事件,双击Click,在Form1.cs的代码设计器中,添加修改如下代码
private void radioButton2_Click(object sender, EventArgs e)
{
this.SaveConfig( "English ");
ci = new CultureInfo( "en ");
this.ReadResources();//读取资源文件
}
12、在Form1.cs的代码设计器中,添加如下代码
CultureInfo ci = new CultureInfo( " ");//定义区域性。本实例可以不用,但其它与区域性有关的应用会用,如时间
ResourceManager rm = ResourceManager.CreateFileBasedResourceManager(Application.StartupPath + "\\MyAPP ", ". ", null);//读取资源文件

private void SaveConfig(string p_Language)//保存配置文件
{
StreamWriter sw = File.CreateText(Application.StartupPath + "\\MyAppConfig.ini ");
sw.WriteLine(p_Language);
sw.Close();
}
private void ReadResources()//读取资源文件
{
this.button1.Text = rm.GetString( "button1_Text ", ci);//设置命令按钮文本
this.label1.Text = rm.GetString( "label1_Text ", ci);//设置标签文本
}


立即成为编程经验丰富的程序员,详见:http://www.psec.net.cn