首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.net本地化:旧学校.resx和新学校wpf .baml共存

.net本地化:旧学校.resx和新学校wpf .baml共存
EN

Stack Overflow用户
提问于 2011-04-02 14:54:33
回答 2查看 1.6K关注 0票数 7

我知道一种古老的方法:使用一个具有.resx扩展名的资源文件,提供一个NeutralResourcesLanguage属性,在程序集中编译中立资源,您可以从其他本地化资源(blahblh.de-DE.resx)编译附属程序集。Visual还会从资源中生成强类型的(Properties.Resources.Default.WhateverStringResource).,因此很容易从代码.cs中使用

我刚刚学习了新的WPF方法:将资源放在.xaml文件中,使用.csproj中的UICulture标记将.baml资源放入卫星程序集中,或者不使用,并将.baml资源放在主程序集中。这些资源在.xaml内部很容易使用,但是AFAIK不是来自代码,因为没有.cs文件是自动生成的。

所以也许我搞错了,但我有几个问题。“说真的,现在怎么回事?”成为第一个。要使我的ranting有效,只需在Visual 2010中创建一个新的WPF应用程序:您将获得.xaml文件,它还将在其中放置一个空的Properties\Resources.resx。你有它,所以它们需要共存。

首先,我需要新的和旧的学校吗?我看不到从代码隐藏中使用强类型.xaml资源的简单方法。为什么不行?也许有一种方法可以将它们生成到.cs文件中,而我只是不知道。

现在更大的问题是,我也不能使用来自.xaml的.xaml资源。为什么?!Visual 2010的设计师肯定没有看到他们,但同样,这可能是我的错。

MSDN建议使用UICulture标记。它确实将.baml资源放置在附属程序集中,因此程序集甚至不包含中性程序集。但是它不适用于旧的中立资源AFAIK,一个非本地化的.resx需要进入主程序集。因此,如果我想在同一个项目中使用新的和旧的学派,我不能使用UICulture标记,我需要主程序集中的所有中立资源。我是唯一一个被这事困扰的人吗?

所以问题:

  • 我可以像使用.resx文件那样在代码中使用来自.xaml的资源吗?
  • 是否有一种方法可以在.xaml中使用.resx资源,而这种方式不会与我不同,或者.baml本地化比.resx本地化要复杂得多?(dll解析、重新编译、csv编辑,而不是只编辑.resx文件)
  • 可以将中立的.resx编译成附属程序集,就像wpf?

中的UICulture一样。

EN

回答 2

Stack Overflow用户

发布于 2011-04-02 15:12:57

实际上,在WPF中可以很容易地处理RESX文件,对于本地化来说,这是可行的方法。

看看:http://www.codeproject.com/KB/WPF/WPF_Resx_Localization.aspxGet values from *.resx files in XAML

票数 2
EN

Stack Overflow用户

发布于 2011-04-03 21:05:13

您可以轻松地在SL中处理资源文件。

每次更改资源文件时,都必须将默认构造函数可见性从内部更改为public。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5523863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档