4

我们正在开发一个 ASP.NET 项目,我们正在使用 resx 文件来实现国际化。

虽然,它仅在我创建默认资源文件(例如 Page.ascx.resx)时编译。它不允许我们仅使用特定于文化的文件(如 Page.ascx.en-US.resx、Page.ascx.km-KH.resx、Page.ascx.pl-PL.resx 等)

我已经使用了以下程序集属性。它让我编译,但我得到一个运行时错误。

[assembly: NeutralResourcesLanguageAttribute("km-KH",UltimateResourceFallbackLocation.Satellite)]

有什么建议吗?

谢谢!

4

1 回答 1

3

不,我不这么认为 - 资源文件的基本假设是总是有一个后备策略:如果您查找 de-CH 的“German (Switzerland)”并找到它,它将被使用。如果它丢失了,它会寻找“de”的“通用”德语并使用它,即使这样也失败了,总是有基本的标准 resx 文件可以依靠。

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

这确实是 ASP.NET 系统深处的基本设计假设,因此我不会尝试与该系统“对抗”——采用它并习惯它。从长远来看,它会更容易。

马克

于 2009-09-02T18:27:51.293 回答