加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 访问本地化资源字符串而不创建“ResourceManager”实例?

发布时间:2020-12-15 23:57:45 所属栏目:百科 来源:网络整理
导读:我创建了一些资源文件来保存字符串.我通过直接将其指向名为TestLocalResource的资源文件和名为ThisIsMyTest的资源字符串来显示MessageBox,只需引用资源字符串,如下所示: TestLocalResource.ThisIsMyTest 现在这看起来确实有效.但是这让我想知道通过这种方式
我创建了一些资源文件来保存字符串.我通过直接将其指向名为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);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读