我想要做到的是,如何在切换Language的时候能让程序中的提示信息也能切换语言?
比如说 后台程序中有 MessageBox.Show("欢迎光临!");
在切换到英语的时候,应该是弹出一个 “Welcome!” 的窗体,而不是“欢迎光临!”
我现在已经添加了两个资源文件,一个是中文的Language-CH.resx,一个是英文的Language-EN.resx,但是不知道如何在程序中判断是调用Language-CH.resx还是Language-EN.resx???
我可不想在每次有MessageBox.Show()的时候都判断一下Thread.CurrentThread.CurrentUICulture
最好是能有一个类似于工厂模式的办法,能根据Thread.CurrentThread.CurrentUICulture来判断是应该用Language-CH.resx还是Language-EN.resx
这样就只需要 MessageBox.show(CurLanguage.****)就可以了。
其中CurLanguage是根据Thread.CurrentThread.CurrentUICulture来决定是返回的Resource.Language-CH还是Resource.Language-EN
请问有高人知道怎么实现吗????
8 个解决方案
#1
这个是要卖钱的。。。
#2
做的时候做成多种语言的呗!!!
#3
public static Languages SystemLanguages
{
get
{
return (Languages)System.Reflection.Assembly.Load(".......").CreateInstance(string.Format("......."), true);
}
}
不可以吗?
{
get
{
return (Languages)System.Reflection.Assembly.Load(".......").CreateInstance(string.Format("......."), true);
}
}
不可以吗?
#4
你可以这样啊,自己写一个弹消息的类,然后在这个类里面进行判断,然后其他弹消息的调用你这个类的方法,不就可以了,写个静态方法,基本一样的啊
#5
public class MsgShow
{
//1是什么语,2是什么语
int language = 0;
public MsgShow()
{
//判断语言
language = ?;
}
public static void showMsg()
{
switch (switch_on)
{
MessageBox.Show();
default:
}
}
}
#6
不单单是 MessageBox.Show()
也可能是程序中对 界面元素的覆值啊。
比如说: button1.text="保存";button1.text="更新";
也可能是程序中对 界面元素的覆值啊。
比如说: button1.text="保存";button1.text="更新";
#7
经研究 已经解决..........
资源文件命名上采用:Language.zh-CH.resx和Language.en-EN.resx再默认一个Language.resx文件即可。
但是又发现一个新问题。。。。。。。
MessageBox.Show(Language.***,MessageBoxButtons.OK,MessageBoxIcon.Information);
这个时候 弹出来的 按钮 是“确定”而不是“OK”............
资源文件命名上采用:Language.zh-CH.resx和Language.en-EN.resx再默认一个Language.resx文件即可。
但是又发现一个新问题。。。。。。。
MessageBox.Show(Language.***,MessageBoxButtons.OK,MessageBoxIcon.Information);
这个时候 弹出来的 按钮 是“确定”而不是“OK”............
#8
资源文件
#1
这个是要卖钱的。。。
#2
做的时候做成多种语言的呗!!!
#3
public static Languages SystemLanguages
{
get
{
return (Languages)System.Reflection.Assembly.Load(".......").CreateInstance(string.Format("......."), true);
}
}
不可以吗?
{
get
{
return (Languages)System.Reflection.Assembly.Load(".......").CreateInstance(string.Format("......."), true);
}
}
不可以吗?
#4
你可以这样啊,自己写一个弹消息的类,然后在这个类里面进行判断,然后其他弹消息的调用你这个类的方法,不就可以了,写个静态方法,基本一样的啊
#5
public class MsgShow
{
//1是什么语,2是什么语
int language = 0;
public MsgShow()
{
//判断语言
language = ?;
}
public static void showMsg()
{
switch (switch_on)
{
MessageBox.Show();
default:
}
}
}
#6
不单单是 MessageBox.Show()
也可能是程序中对 界面元素的覆值啊。
比如说: button1.text="保存";button1.text="更新";
也可能是程序中对 界面元素的覆值啊。
比如说: button1.text="保存";button1.text="更新";
#7
经研究 已经解决..........
资源文件命名上采用:Language.zh-CH.resx和Language.en-EN.resx再默认一个Language.resx文件即可。
但是又发现一个新问题。。。。。。。
MessageBox.Show(Language.***,MessageBoxButtons.OK,MessageBoxIcon.Information);
这个时候 弹出来的 按钮 是“确定”而不是“OK”............
资源文件命名上采用:Language.zh-CH.resx和Language.en-EN.resx再默认一个Language.resx文件即可。
但是又发现一个新问题。。。。。。。
MessageBox.Show(Language.***,MessageBoxButtons.OK,MessageBoxIcon.Information);
这个时候 弹出来的 按钮 是“确定”而不是“OK”............
#8
资源文件