【问题标题】:Is there a way not to use the default resx file for internationalization?有没有办法不使用默认的 resx 文件进行国际化?
【发布时间】:2009-09-02 17:45:09
【问题描述】:

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

有什么建议吗?

谢谢!

【问题讨论】:

    标签: c# asp.net internationalization resx


    【解决方案1】:

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

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

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

    马克

    【讨论】:

    • 我一直在努力寻找一个不使用回退的方法。我有非常具体的功能。应该有某种控制方式,他们只是强制执行此功能而不允许参数化或覆盖,这似乎很愚蠢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-09
    • 2018-07-23
    • 2016-05-09
    • 2010-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多