gpt4 book ai didi

asp.net-mvc - 使用基于 SQL 的本地化提供程序时,您如何本地化/国际化 MVC Controller ?

转载 作者:行者123 更新时间:2023-12-04 06:56:52 25 4
gpt4 key购买 nike

希望这不是一个太愚蠢的问题。在 MVC 中, View 中似乎有很多本地化支持。然而,一旦我到达 Controller ,它就会变得模糊。

  • 使用 meta:resourcekey="blah"已过时,与 <%$ Resources:PageTitle.Text%> 相同。
  • ASP.NET MVC - Localization Helpers -- Html 辅助类的建议扩展,如 Resource(this Controller controller, string expression, params object[] args) .同样,Localize your MVC with ease建议使用稍微不同的扩展名,如 Localize(this System.Web.UI.UserControl control, string resourceKey, params object[] args)

  • 这些方法在 Controller 中都不起作用。我把下面的函数放在一起,我使用 Controller 的完整类名作为我的 VirtualPath。但我是 MVC 的新手,并认为有更好的方法。
        public static string Localize (System.Type theType, string resourceKey, params object[] args) {
    string resource = (HttpContext.GetLocalResourceObject(theType.FullName, resourceKey) ?? string.Empty).ToString();
    return mergeTokens(resource, args);
    }

    想法?注释?

    最佳答案

    我有同样的 question .这篇博文展示了解决问题的不同方法:http://carrarini.blogspot.com/2010/08/localize-aspnet-mvc-2-dataannotations.html

    最后我使用了一个T4模板来生成一个资源类。我还有一个 HtmlHelper 方法来访问我的资源:

    public static string TextFor(this HtmlHelper html, string resourceName, string globalResourceName, params object [] args)
    {
    object text = HttpContext.GetGlobalResourceObject(globalResourceName, resourceName);
    return text != null ? string.Format(text.ToString(), args) : resourceName;
    }

    另一个版本从 Controller 和 View 生成本地化版本:
    public static string LocalTextFor(this HtmlHelper html, string resourceName, params object [] args)
    {
    string localResourceName = string.Format("{0}.{1}", html.ViewContext.RouteData.Values["controller"],
    html.ViewContext.RouteData.Values["action"]);
    object text = HttpContext.GetGlobalResourceObject(localResourceName, resourceName);
    return text != null ? string.Format(text.ToString(), args) : langName;
    }

    关于asp.net-mvc - 使用基于 SQL 的本地化提供程序时,您如何本地化/国际化 MVC Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2458615/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com