【问题标题】:Can you localize a .HTML file using .RESX files?您可以使用 .RESX 文件本地化 .HTML 文件吗?
【发布时间】:2014-01-15 18:15:52
【问题描述】:

背景

我有一个 ASP.NET Web 窗体应用程序,我想使用 .RESX 文件进行本地化。我已经知道如何使用 .ASPX 文件来做到这一点。但是,我的应用程序使用了一些 .ASPX 文件...以及一些普通的 .HTML 文件。

(我正在做很多 KnockoutJs,应用程序会在其中检索可重用的 HTML 模板并根据需要将它们注入到 DOM 中。)

我不能在 HTML 文件中采用以下方法,因为不会执行

<%$ Resources:Main, WelcomeMessage %>

问题

是否可以使用 C# 代码针对 RESX 文件处理纯 HTML 文件以生成已本地化的 HTML 文件?

(我需要一个不使用 .ASPX 文件的解决方案)

如果可能,那么我可以创建一个 Web 服务,将 RESX 文件应用于 HTML 文件并返回生成的 HTML 字符串。

【问题讨论】:

    标签: asp.net .net localization internationalization resx


    【解决方案1】:

    回答

    我认为答案....是否定的。

    似乎没有一种简单的方法可以使用 ASP.NET Web 窗体来做到这一点。所以我改为使用 ASP.NET MVC.... 这个问题更容易解决。

    如果您有兴趣...这是我在 MVC 中所做的:

    我将 HTML 文件更改为 .cshtml 文件(支持适用于 .RESX 文件的语法)。我创建了一个控制器,我用 GetHtml 操作调用 HtmlController。 GetHtml 方法将 URL 作为参数,并呈现请求的 .cshtml 文件的内容,该文件作为 PartialView 返回。

    现在,在我的页面加载之后,我可以通过在 HtmlController 上调用 GetHtml 操作来触发 Ajax 请求以检索一些共享的 HTML 模板。我请求的 .cshtml 文件的 HTML 内容针对我的 .RESX 文件进行了本地化,然后作为我的 Ajax 调用的结果返回。然后我可以在页面上绑定它。

    这对于我在各个页面中重复使用的共享 HTML 模板特别有效,但我仍然需要将它们本地化为当前选择的文化。

    回顾

    我仍然觉得转向 MVC 是正确的决定。

    但是......我想在切换到 MVC 之后......在需要访问它们的每个页面上直接呈现部分视图(对于每个共享模板)可能会更简单。

    然后我可以避免在页面加载时进行单独的 Ajax 调用来下拉这些内容。

    [掌心]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-06
      • 2013-06-17
      相关资源
      最近更新 更多