在 C# class 文件中使用资源文件 (CultureInfo)

Using resource files (CultureInfo) in C# class file

我需要有关在 C# class 文件中使用资源文件的帮助。

我的代码:

class errorMessages
{
    private static ResourceManager LocRM = new ResourceManager("Project1.languageFile", typeof(errorMessages).Assembly);

    public static void XMLParseError(String msg)
    {
        MessageBox.Show(LocRM.GetString("XMLParseError") + "\n" + msg, LocRM.GetString("error"), 
        MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
    }
}

+ 在主 Project1 文件夹中创建了 2 个名为 languageFile.en.resx 和 languageFile.pl-PL.resx 的 .resx 文件

现在我想在我的 class errorMessages 中使用 languageFile 中的字符串,指定为之前设置的本地化。我该怎么做?

我尝试将我的字符串添加到 WinForm .resx 文件,但是这会在对 WinForm 进行任何编辑时清除我的数据。

我自己找到了问题的答案,所以我会写下解决方案,希望它能帮助到别人。

默认资源文件位于 [projectName]/Properties。如果您想添加可手动本地化的资源文件,您需要这样做:

在解决方案资源管理器中右击项目 -> 添加新项 -> 资源文件

然后将文件名设置为 Resources.[language].resx - 在我的例子中是两个文件,Resources.pl-PL.resx 和 Resources.en.resx。创建文件后,将其移动到 Properties 目录。

现在您可以添加资源并以这种方式使用它:

MessageBox.Show(Project1.Properties.Resources.XMLParseError, Project1.Properties.Resources.information,
MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);

现在选择的字符串将使用 CultureInfo 中设置的语言,或者,如果没有该资源,将使用默认资源文件。

来源:MSDN - How to: Create a Localized Version of a Resource File