有没有办法不使用默认的resx文件进行国际化?

时间:2009-09-02 17:45:09

标签: c# asp.net internationalization resx

我们正在开发一个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?

谢谢!

1 个答案:

答案 0 :(得分:3)

不,我不这么认为 - 资源文件的基本假设是总是有一个回退策略:如果你寻找de-CH的“德国(瑞士)”并找到它,它将被使用。如果它丢失了,它会寻找“de”并使用它的“通用”德语,即使失败了,也总会有基本的标准resx文件可以依赖。

默认的resx(没有任何文化,如“de-CH”)将被编译到默认程序集中,这样即使没有语言和文化特定的附属程序集存在,您的应用程序也能正常工作。

这实际上是ASP.NET系统内部的基本设计假设,因此我不会尝试与该系统“斗争” - 采用它并习惯它。从长远来看,它会更容易。

马克