【问题标题】:Accessing Resource File with Culture in WPF, C#在 WPF、C# 中使用文化访问资源文件
【发布时间】:2016-03-02 18:00:59
【问题描述】:

我正在编写一个应用程序,其中的文本块可以显示不同语言的 cmets。我正在尝试使用我真的不明白的“文化”。

我关注了一些视频,但仍然收到相同的错误消息:

这是我添加的命名空间:

    using System.Reflection;
    using System.Globalization;
    using System.Resources;

我只是在添加 switch 语句之前测试这个概念:

        CultureInfo cult = CultureInfo.CreateSpecificCulture("en");

        Assembly lingua = Assembly.Load("Bailing Calculator");

        ResourceManager rm = new ResourceManager("Bailing Calculator.Resources.Res", lingua);

        tbkPHDiameter.Text = rm.GetString("phDia", cult);

我只是没有给出 ResourceManager 的正确路径吗?感谢随之而来的教育攻势!

【问题讨论】:

    标签: c# wpf resources culture


    【解决方案1】:

    将您的代码更新为:

      CultureInfo cult = CultureInfo.CreateSpecificCulture("en-US");
    
      Assembly lingua = Assembly.Load("Bailing Calculator");
      ResourceManager rm = new ResourceManager(string.Format("Bailing_Calculator.Resources.{0}",cult.Name), lingua);
    tbkPHDiameter.Text = rm.GetString("phDia");
    

    并将资源文件名称更新为您的目标文化名称: 所以文件名看起来像:en-US

    【讨论】:

    • 我已经复制并粘贴了您的代码。我仍然收到同样的警报。
    • 您是否将解决方案资源管理器中的资源文件从 en.resx 重命名为 en-Us.resx?我也更新了答案,因为命名空间不支持空间。
    • 我做了调整。一样的报警。构建操作应该设置为什么?
    • 添加新项目时默认设置为嵌入式资源
    • 就是这样!在试图弄清楚这件事时,我已经使用了构建类型。感谢您的代码!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-04
    • 1970-01-01
    • 1970-01-01
    • 2015-02-09
    • 1970-01-01
    相关资源
    最近更新 更多