【问题标题】:Apparent breaking change for .net core 3.1 localization resx naming?.net core 3.1 本地化 resx 命名的明显重大变化?
【发布时间】:2020-10-09 04:23:10
【问题描述】:

我处理过许多 .net Core 2.2 应用程序的本地化。

我现在正在开发一个 .net Core 3.1 本地化应用程序

在 Startup.cs ConfigureServices 我有

services.AddLocalization(o =>
        {
            // We will put our translations in a folder called Resources
            o.ResourcesPath = "Resources";
        });

        services.AddControllersWithViews()
            .AddViewLocalization(LanguageViewLocationExpanderFormat.SubFolder)
            .AddDataAnnotationsLocalization()
            .AddNewtonsoftJson(); 

在配置方法中,我定义了我的文化等并包括

app.UseRequestLocalization(localizationOptions);

我的资源的文件夹结构如下所示:

我的观点都是完美的本地化。然而,即使模型/数据注释或控制器被正确命名并放置在模型或控制器文件夹中,它们也不会本地化。

在之前的 2.2 中,使用文件夹结构对我来说完美无缺。我是否错过了 3.1 下的新内容,应该告诉它以不同的方式查看文件夹?该文件夹不应该命名为 Models 而是其他名称吗?

我查看了所有的文档,在网上搜索过,但都不够用。

更新 请参阅下面的答案

【问题讨论】:

    标签: c# .net visual-studio asp.net-core asp.net-core-mvc


    【解决方案1】:

    目前的工作答案:

    看来我可以通过将控制器和模型移出子文件夹并更改每个 resx 的名称以包含模型的 NameSpace.Models.Modelname 和 来本地化控制器和模型>NameSpace.Controllers.Controllername 用于控制器。这是我目前可以让他们工作的唯一方法。

    那么显然只有视图会使用文件夹/子文件夹方法?除非我完全错过了这一点,否则我认为这要么是一个巨大的问题,要么是我在任何地方都没有清楚记录的重大变化。

    我没有从 MS 那里得到确认这是一个重大变化,但在这一点上对我来说确实是这样。如果您要从早期的 .net 核心本地化迁移,这将是一个惊喜,或者它对我来说确实如此。希望这对其他人有帮助。

    【讨论】:

    • 这不是答案
    • 要使其成为答案,请将您在问题中输入的内容放入您的答案中。 Stackoverflow 不是一个讨论论坛,它就像一个包含高质量问题和答案的维基百科。
    • 完成。查看更改。
    【解决方案2】:

    我已经使用这个 github 包进行本地化。效果很好,并且相当容易实现。我知道这并不能直接回答您的问题,但它是一种潜在的解决方法。

    https://github.com/LazZiya/ExpressLocalization/wiki

    【讨论】:

    • 感谢您的指点,但我真的在努力让它按设计和 MS 记录的那样工作。似乎有一个没有明确传达的重大变化......至少这是我的跑步理论。
    • SO 不接受仅链接的答案,要么在答案中提供详细信息,然后提供链接作为参考,要么只是添加评论。答案应该是独立的并且对于链接失效的鲁棒
    【解决方案3】:

    创建最简单的应用程序,本地化模型/数据注释并使用 2.2 并在 3.1 中失败 这可能有助于发现问题。如果没有,请在 loc doc 上打开一个 issue 并提供一个指向 repo 的链接。

    转到loc page底部并选择此页面

    您打算从AddNewtonsoftJson 迁移吗?见Newtonsoft.Json (Json.NET)支持

    【讨论】:

    • 是的,最终我会迁移。还没有。你说“在 loc doc 上打开一个问题”?什么意思?
    • 这应该是评论而不是答案
    • 添加页面链接
    猜你喜欢
    • 1970-01-01
    • 2017-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多