【问题标题】:Combine two resource key for single label .Net为单个标签.Net组合两个资源键
【发布时间】:2014-01-06 04:44:22
【问题描述】:

为了使现有网站成为多语言,我遵循全球化技术,我为不同的内容创建了 3 个资源文件,如标签和标题文本文件、网格标题文本文件等... 现在我在不同的资源文件中有两个键,即电子邮件和消息,在第三个地方我想同时显示这两个关键字,即电子邮件消息。我是否需要创建第三个密钥或者我可以连接已经存在的密钥。目前我正在使用以下两个代码

For showing directly on page:
HttpContext.GetGlobalResourceObject("ResourceLabelButton", "Email")

For showing as text of any control like Textbox, label:
Text ="<%$ Resources:ResourceContent, Email %>"

我可以在 .cs 页面上连接两个资源字符串,但它会增加时间线,所以请建议我只能在 .aspx 页面上更改。

提前致谢

【问题讨论】:

    标签: c# asp.net sql visual-studio-2010


    【解决方案1】:

    如果经常使用此值,请为其创建第三个键,否则在运行时连接

    【讨论】:

    • 如何在运行时拼接?
    • 如你所知,你可以在 .cs 中执行此操作,但我不知道如何在 aspx 页面中为全球资源执行此操作,不知道在哪里,但我有时在某处读到它是一个已知的全球化问题
    【解决方案2】:

    您应该为“Email Message”创建一个单独的资源条目,而不是连接“Email”和“Message”。要了解原因,请查看西班牙语:

    • 电子邮件 = Correo electronic
    • 消息 = Mensaje

    简单的串联为您提供Correo electronic Mensaje这是错误的。正确的翻译是:

    • 电子邮件消息 = Mensaje de correo electronic

    请注意,在翻译中,“Email”和“Message”的顺序颠倒了,在它们之间插入了一个新词(de,意思是“of”)。

    另一方面,查看“新消息”和“最后一条消息”的翻译:

    • 新消息 = Mensaje nuevo
    • 最后一条消息 = Último mensaje

    如您所见,有一些复杂的规则可以控制何时颠倒单词顺序以及何时插入 de。当然,这些规则在其他语言中是不同的。

    因此,一般来说,您永远不应该将本地化的单词或短语连接起来形成更长的短语。
    始终为每个短语提供单独的资源条目。

    【讨论】:

      【解决方案3】:

      使用 的 ASP.NET 标记属性值具有称为 ASP.NET Expressions 的特殊语法。将它们用作属性值几乎是全有或全无。无法将任何代码添加到 ASPX 文件中来操作这些表达式的计算结果。您必须在代码隐藏中执行此操作。

      【讨论】:

        【解决方案4】:

        我遇到了同样的问题,我通过使用此选项解决了它:

        <asp:Label id="lbl1" runat="server" Text="Email: <%= HttpContext.GetGlobalResourceObject("ResourceContent", "Email") %>">
        

        对于本地资源,使用GetLocalResourceObject 方法而不是GetGlobalResourceObject

        【讨论】:

          【解决方案5】:

          试试下面的代码

          <asp:Label ID="lblNameAndNos" runat="server">
          <%= ""+ Resources.Resources.Name + "/" + Resources.Resources.Nos %>  
          </asp:Label>
          

          使用上面的方式,而不是使用内部 Text 属性

          【讨论】:

            猜你喜欢
            • 2018-12-23
            • 2020-01-17
            • 1970-01-01
            • 2022-12-19
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-04-17
            • 1970-01-01
            相关资源
            最近更新 更多