如何从多个构建中选择一个.resx文件(取决于解决方案配置)?

时间:2014-04-26 08:47:08

标签: c# wpf localization

我有一个C#WPF解决方案,它有两个.resx文件,一个用于韩语(Resource.resx),另一个用于英语(Resource.en-us.resx)。如果我构建解决方案,我会获得主要的可执行文件以及一个包含en-us文化资源的附加dll文件。如果我运行可执行文件,它会根据运行的文化自动选择语言。

但是,我想为每种语言构建单独的可执行文件(只包含一种语言数据,因此只显示一种固定语言,无论它运行的是什么文化),具体取决于我选择的解决方案配置。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:0)

我想当你要构建应用程序时。 选择要排除的资源文件,并从属性集“构建操作”中选择 价值为无。 希望这能解决你的问题。 ^ _ ^

答案 1 :(得分:0)

我认为制作单独的EXE并不是一个好主意。您可以在app.config中添加设置,您可以在其中设置文化。如果您真的想要2个EXE,只需在解决方案中创建另一个类型为WPF Application的项目。在每个项目中,您可以将启动时的当前文化设置为所需的文化。

要设置文化,您可以使用以下代码:

Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en");
Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en");

FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement), 
    new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(
        CultureInfo.CurrentCulture.IetfLanguageTag)));