想做一个可以在多种语言变化的软件,用户可以选择自己熟悉的语言。不简单的只判断当前系统的地域语言。我今天实验的代码是,首先定义了资源文件
放到了一个文件夹内,文件夹比如叫做LangRes
在这个文件夹内定义了三个资源文件 名称叫做LangRes.EN
LangRes.ja-JP
LangRes.zh-CHS定义之后,定义了新的culture = new CultureInfo("EN");
然后初始化ResourceManager类实例, = new Res~~~("NameSpace名称.LangRes",assmbly);但是无法定位想要的en那个资源文件上面:???
为什么呢?
后来我把文件夹LangRes删掉,直接一级目录,后来只可以找到系统对应的地域特征语言,日语的~~~~别的都找不到,弄了很久也不好用
我在设置中也设置了embed编译。
大家帮帮忙~~
放到了一个文件夹内,文件夹比如叫做LangRes
在这个文件夹内定义了三个资源文件 名称叫做LangRes.EN
LangRes.ja-JP
LangRes.zh-CHS定义之后,定义了新的culture = new CultureInfo("EN");
然后初始化ResourceManager类实例, = new Res~~~("NameSpace名称.LangRes",assmbly);但是无法定位想要的en那个资源文件上面:???
为什么呢?
后来我把文件夹LangRes删掉,直接一级目录,后来只可以找到系统对应的地域特征语言,日语的~~~~别的都找不到,弄了很久也不好用
我在设置中也设置了embed编译。
大家帮帮忙~~
解决方案 »
- dataset 绑定bindingsource,再由bindingsource绑定datagridview,数据为null,新增行问题
- 问一下vs中窗口透明的问题
- C#中计算2个工作日之间的的天数
- 多表集合保存的问题
- objectdatasource 与 gridview的问题
- 能不能把用C#写的ActiveX控件安装到IE工具栏,就像Google的工具栏控件一样,在地址栏下方显示?
- VS的安装项目如何将多个安装文件做成一个安装文件?
- 如何用c#来处理word文档?
- 关于公开字段和属性的选择,有个疑问
- 请帮我看以下的语句是哪里错啦?
- C#中没有像Java中的内置的Observer类或Observer接口?在线,知道后立即结分。
- 泛型接口问题
ResourceManager rm = ResourceManager.CreateFileBasedResourceManager(资源名称, 目录, null);
下面是一个获取字符串资源的函数,指定一个culture就可以了
/// <summary>
/// 根据指定的关键字获取字符串资源
/// </summary>
/// <param name="szKeyName">字符串名字</param>
/// <returns></returns>
public static string GetString(string szKeyName)
{
string szValue = null;
try
{
szValue = resourceManager.GetString(szKeyName, cultureInfo);
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
if (szValue == null)
return szKeyName;
return szValue;
}其中,resourceManager就是用上面创建方法创建的
ResLib.Text.Strings.en.resources
ResLib.Text.Strings.zh-CN.resources然后,下面语句获取的中英文字符串资源都是正确的
cultureInfo = new CultureInfo("en");
szValue = resourceManager.GetString(szKeyName, cultureInfo);cultureInfo = new CultureInfo("zh-cn");
szValue = resourceManager.GetString(szKeyName, cultureInfo);
ResLib.Text.Strings.en.resources
ResLib.Text.Strings.zh-CN.resources然后,下面语句获取的中英文字符串资源都是正确的
cultureInfo = new CultureInfo("en");
szValue = resourceManager.GetString(szKeyName, cultureInfo);cultureInfo = new CultureInfo("zh-cn");
szValue = resourceManager.GetString(szKeyName, cultureInfo);