【问题标题】:How to better organize resx files in an ASP.net MVC6 application如何在 ASP.net MVC6 应用程序中更好地组织 resx 文件
【发布时间】:2016-01-29 06:33:53
【问题描述】:

我已经能够成功运行一个 asp.net mvc6 本地化示例应用程序,但是所有 .resx 文件都放在一个“资源”文件夹中。

如果你看看这个sample application你会注意到所有的资源都放在根目录文件夹中:“Resources”,它在 Startup.cs 文件中被引用,如下所示:

 services
            .AddMvc()
            .AddViewLocalization(options => options.ResourcesPath = "Resources")
            .AddDataAnnotationsLocalization();

我正在处理的当前应用程序有多个区域,理想情况下我希望更好地组织这些 .resx 文件。否则会变得非常混乱。

这在 MVC6 中是否可行?

【问题讨论】:

    标签: asp.net-mvc localization resources asp.net-core


    【解决方案1】:

    您可以做的一个可能的事情是在资源路径文件夹中为每个区域创建单独的文件夹。在这些“区域文件夹”中,您可以创建几个特定的​​资源文件。

    对我来说似乎很容易管理。

    例如

    资源

    • 目录区域
      • ProductTranslations.resx
      • CategoryTranslations.resx
    • 支持区
      • KnowledgeBaseTranslations.resx

    【讨论】:

    • 是的,这将是理想的,但我如何让它真正发挥作用?即这里有一行: .AddViewLocalization(options => options.ResourcesPath = "Resources")
    • 您在问题中添加的代码不是开箱即用的吗?
    • 我不这么认为。
    【解决方案2】:

    您可以将资源(而不仅仅是资源文件 - 例如我将翻译存储在 json 文件中)存储在您想要的任何位置。 你只需要覆盖:

    • IStringLocalizer
    • IStringLocalizerFactory

    【讨论】:

    • 感谢您的贡献。但是你有一个小例子吗?或将我指向一个有示例的页面?
    • 看看这里:leonardlabat.com/2015/11/28/…。您会在那里找到编写自定义本地化所需的所有信息。
    • 看起来不错,我会在其他时间研究这些。然而,这似乎有点矫枉过正。它曾经在 asp.net MVC5 中如此简单。 MVC6 中肯定有等价物吗?
    猜你喜欢
    • 2012-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多