首页 新闻 会员 周边

怎么样替换.net core默认的Resources.resx,让默认报错显示中文

0
悬赏园豆:20 [已解决问题] 解决于 2022-03-23 10:08

大佬们,请教个问题,.net core内部很多错误信息都是放到Resources.resx里面,然后通过ResourceManager来读取,我可以修改这个Resources.resx里面某些值的数据嘛?我想将某些错误信息显示成中文,但是又不想重写默认的类。非常感谢。

骑着蚊子去太阳的主页 骑着蚊子去太阳 | 初学一级 | 园豆:89
提问于:2022-03-23 09:22
< >
分享
最佳答案
1

可以基于 Localization 机制实现,以下是一个参考

ConfigureServices

services.Configure<RequestLocalizationOptions>(opts =>
    {
        var supportedCultures = new List<CultureInfo>
        {
            new CultureInfo("en-US"),
            new CultureInfo("zh-CN"),
            new CultureInfo("zh-TW"),
            new CultureInfo("zh-HK")
        };
        opts.DefaultRequestCulture = new RequestCulture("zh-CN", "zh-CN");
        opts.SupportedCultures = supportedCultures;
        opts.SupportedUICultures = supportedCultures;
    });

Configure

 var requestLocalizationOptions = app.ApplicationServices.GetService<IOptions<RequestLocalizationOptions>>().Value;
 app.UseRequestLocalization(requestLocalizationOptions);

Resources

收获园豆:20
dudu | 高人七级 |园豆:30994 | 2022-03-23 09:36

大佬,你好,我有一点没弄明白,就是假如我要替换 Microsoft.AspNetCore.Mvc 这个命名空间的Resources.resx,该怎么弄呢?创建一个Resources-zh-CN.resx,把这个文件放到与.net core 同样的目录结构下嘛?

骑着蚊子去太阳 | 园豆:89 (初学一级) | 2022-03-23 09:50

我大概知道怎么用了,我先研究下,多谢大佬了。

骑着蚊子去太阳 | 园豆:89 (初学一级) | 2022-03-23 10:07

大佬,我试了下,我自己创建的Resources.resx,然后使用IStringLocalizer的确是可以切换多语言,但是怎么替换asp.net core 默认的Resources.resx呢,比如我要Microsoft.AspNetCore.Mvc.Core这个程序集里面的Resources.resx,我应该怎么弄呢,它里面是用的ResourceManager来读取资源数据,我在我程序里面创建Microsoft.AspNetCore.Mvc.Core.Resources.zh-CN.resx,好像也没有生效。

骑着蚊子去太阳 | 园豆:89 (初学一级) | 2022-03-23 10:40

@骑着蚊子去太阳: 这个我们试过,可以参考以下 Troubleshoot ASP.NET Core Localization

dudu | 园豆:30994 (高人七级) | 2022-03-23 11:03

@dudu: 哎,大佬,我还是没整出来,Microsoft.AspNetCore.Mvc.Core.Resources.zh-CN.resx、Microsoft.AspNetCore.Mvc.Core.zh-CN.resx、Microsoft/AspNetCore/Mvc/Core/Resources/zh-CN.resx等等,这些都试了,还是不行,我还是先暂时直接重写他自带的类吧。

骑着蚊子去太阳 | 园豆:89 (初学一级) | 2022-03-23 11:39
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册