c# - 在不创建 'ResourceManager' 实例的情况下访问本地化资源字符串?

标签 c# .net resources localization resourcemanager

我已经创建了一些资源文件来保存字符串。我通过直接将其指向名为 TestLocalResource 的资源文件和名为 ThisIsMyTest 的资源字符串来显示 MessageBox,只需像这样简单地引用资源字符串:

TestLocalResource.ThisIsMyTest

现在这似乎确实有效。但这让我想知道,通过这种方式引用资源字符串,我是否会始终访问默认资源文件(例如,TestLocalResource.resx)而不是它的德语版本(例如,TestLocalResource.de-DE.resx)?

那么,我是否必须使用 ResourceManager?如果是这样,ResourceManager 如何知道当前的语言(文化)?我需要明确设置吗?

这就是我认为我需要使用 ResourceManager 的方式:

ResourceManager resmgr =
    new ResourceManager("MyApplication.MyResource", Assembly.GetExecutingAssembly()); 

但我希望有一种方法可以更方便地访问本地化资源字符串。

最佳答案

您不需要显式使用 ResourceManager。
在这里看看:http://geekswithblogs.net/mapfel/archive/2008/11/01/126465.aspx
要了解如何更改要在运行时使用的区域性,请参阅 second comment在链接中:

switch (comboBox1.Text)
{
    case "neutral":
        Thread.CurrentThread.CurrentUICulture = new CultureInfo("");
        break;
    case "en-GB":
        Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-GB");
        break;
    case "de-DE":
        Thread.CurrentThread.CurrentUICulture = new CultureInfo("de-DE");
        break;
}

string messageText = Messages.MsgSampleText;
MessageBox.Show(messageText); 

关于c# - 在不创建 'ResourceManager' 实例的情况下访问本地化资源字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5246631/

相关文章:

c# - 处理 Excel 互操作中的大选择范围

.net - 如何将 Windows DateTimePicker 添加到 c++ 中的 win32 应用程序

.net - 多层/多层系统等于紧耦合系统吗?

Android - colors.xml 资源到 int 值

c++ - 从资源中加载图像并转换为内存中的位图

c# - 用于查找最近的前一个兄弟的 XPath 语句

c# - 使用 switch 语句的最佳实践是什么?嵌套?具体的?

c# - 如何以编程方式从 datagridview 中的一个单元格移动到另一个单元格?

c# - 在 Visual Studio 中以编程方式应用/停用断点

c# - 在 ASP.NET 中以编程方式设置用户控件的文化