使用 C# 的资源全球化 - 标签和错误消息
Resource Globalization using C# - Label and Error message
我已经使用 .NET C# 4.7.2 框架在我的 winform 项目中使用 RESX 文件实现了全球化。当前的 RESX 文件用于标签,现在我需要另一个资源文件来显示错误消息。
我不确定如何在同一项目中创建不同的资源文件“ABC.Error.Resources.cs-CZ.resx”和“ABC.Label.Resources.cs-CZ.resx”,因为仅为各自的语言标签创建资源 DLL。
我的解决方案结构是:
--Solution.sln
---Project.proj
----Resources(folder containing label resource files)
-----ABC.Label.Resources.cs-CZ.resx
感谢任何帮助
找到解决上述问题的两种方法。
- 方法 1
使用 .NET 框架的“ResourceManager”class 中的“CreateFileBasedResourceManager”
第 1 步:使用“resgen.exe”将“.RESX”文件转换为“.resources”文件。 NET 框架。
第二步:使用下面的方法从资源文件中获取数据
static string ReadResourceValue(string file, string key)
{
string resourceValue = string.Empty;
try
{
string resourceFile = file;
string filePath = "ConsoleApp1.en-GB.resources";
ResourceManager resourceManager = ResourceManager.CreateFileBasedResourceManager(resourceFile, filePath, null);
// retrieve the value of the specified key
CultureInfo ci = new CultureInfo("en-IN");
resourceValue = resourceManager.GetString(key, ci);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
resourceValue = string.Empty;
}
return resourceValue;
}
- 方法 2
使用 .NET 框架的 System.Resources class 中的“ResXResourceSet”。
static string ReadResourceFromFile()
{
string resxFile = "Resources\ConsoleApp1.en-GB.resx";
string retValue = string.Empty;
using (ResXResourceSet resxSet = new ResXResourceSet(resxFile))
{
// Retrieve the string resource for the title.
retValue = resxSet.GetString("Test1");
}
return retValue;
}
希望这对以后的人有所帮助。
我已经使用 .NET C# 4.7.2 框架在我的 winform 项目中使用 RESX 文件实现了全球化。当前的 RESX 文件用于标签,现在我需要另一个资源文件来显示错误消息。
我不确定如何在同一项目中创建不同的资源文件“ABC.Error.Resources.cs-CZ.resx”和“ABC.Label.Resources.cs-CZ.resx”,因为仅为各自的语言标签创建资源 DLL。
我的解决方案结构是:
--Solution.sln
---Project.proj
----Resources(folder containing label resource files)
-----ABC.Label.Resources.cs-CZ.resx
感谢任何帮助
找到解决上述问题的两种方法。
- 方法 1
使用 .NET 框架的“ResourceManager”class 中的“CreateFileBasedResourceManager”
第 1 步:使用“resgen.exe”将“.RESX”文件转换为“.resources”文件。 NET 框架。
第二步:使用下面的方法从资源文件中获取数据
static string ReadResourceValue(string file, string key)
{
string resourceValue = string.Empty;
try
{
string resourceFile = file;
string filePath = "ConsoleApp1.en-GB.resources";
ResourceManager resourceManager = ResourceManager.CreateFileBasedResourceManager(resourceFile, filePath, null);
// retrieve the value of the specified key
CultureInfo ci = new CultureInfo("en-IN");
resourceValue = resourceManager.GetString(key, ci);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
resourceValue = string.Empty;
}
return resourceValue;
}
- 方法 2
使用 .NET 框架的 System.Resources class 中的“ResXResourceSet”。
static string ReadResourceFromFile()
{
string resxFile = "Resources\ConsoleApp1.en-GB.resx";
string retValue = string.Empty;
using (ResXResourceSet resxSet = new ResXResourceSet(resxFile))
{
// Retrieve the string resource for the title.
retValue = resxSet.GetString("Test1");
}
return retValue;
}
希望这对以后的人有所帮助。