【问题标题】:ASP.NET Internationalization - global/shared resource key overridesASP.NET 国际化 - 全局/共享资源键覆盖
【发布时间】:2023-03-17 00:40:01
【问题描述】:

我正在使用 ASP.NET 资源国际化。

我有以下结构

 /App_LocalResources
     Default.aspx.resx

 /App_GlobalResources
     Commmon.resx

现在我希望 ASP.Net 资源能够覆盖本地资源文件中的共享全局键。

例如,如果在我的 Default.aspx 页面中,我有以下内容:

<asp:Literal Text="<%$ Resources:FirstName %>" runat="server" />

并且我的全局资源文件和本地都有 FirstName,我希望本地密钥覆盖共享但如果在本地资源中找不到它仍然会落入全局。

我发现的问题是能够使用全局资源需要您提供全局资源文件名。

<asp:Literal Text="<%$ Resources:Common,FirstName %>" runat="server" />

...由于显式的全局文件名声明,您无法进行本地覆盖

我希望有一种方法可以指定一个通用键,并让它首先搜索本地资源,如果在那里找不到,则搜索全局资源,而无需指定显式的全局文件名。

这可能吗,有没有办法从 ASP.Net 资源中获得这种类型的功能?

【问题讨论】:

    标签: c# asp.net localization internationalization


    【解决方案1】:

    这不是资源在 .NET AFAIK 中的工作方式——我相信你最好的办法是封装资源访问是一种 getter 方法,它可以在回退到之前尝试匹配给定键的本地资源全球。不过不漂亮。

    当然,始终可以选择创建和使用您自己的 ResourceManager,但根据经验, 比您想象的要痛苦得多。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多