我们正在开发一个ASP.NET项目,我们正在使用resx文件来实现国际化。
虽然,它只在我创建默认资源文件时编译(例如,Page.ascx.resx)。它不允许我们只使用特定于文化的文件(如Page.ascx.en-US.resx,Page.ascx.km-KH.resx,Page.ascx.pl-PL.resx等)。 p>
我已经使用了以下程序集属性。它让我编译,但我得到一个运行时错误。
[assembly: NeutralResourcesLanguageAttribute("km-KH",UltimateResourceFallbackLocation.Satellite)]
任何sugestions?
谢谢!
答案 0 :(得分:3)
不,我不这么认为 - 资源文件的基本假设是总是有一个回退策略:如果你寻找de-CH的“德国(瑞士)”并找到它,它将被使用。如果它丢失了,它会寻找“de”并使用它的“通用”德语,即使失败了,也总会有基本的标准resx文件可以依赖。
默认的resx(没有任何文化,如“de-CH”)将被编译到默认程序集中,这样即使没有语言和文化特定的附属程序集存在,您的应用程序也能正常工作。
这实际上是ASP.NET系统内部的基本设计假设,因此我不会尝试与该系统“斗争” - 采用它并习惯它。从长远来看,它会更容易。
马克