.NetCore MVC全球化,实现中英文翻译
参照:[@ASP.NET Core 全球化和本地化](https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/localization?view=aspnetcore-2.1)

**1、Startup.cs中注册服务并制定Resources文件的位置**

```

```csharp
//    在Startup.cs的ConfigureServices方法下添加一下内容
services.AddLocalization(options => options.ResourcesPath = "Resources");//资源文件路径
            services.AddMvc()
            .AddDataAnnotationsLocalization(options =>
            {
                options.DataAnnotationLocalizerProvider = (type, factory) =>
                    factory.Create(typeof(SharedResource));
            }).AddMvcLocalization()
            .AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix);
            services.AddSingleton<IStringLocalizer>((sp) =>
            {
                var sharedLocalizer = sp.GetRequiredService<IStringLocalizer<SharedResource>>();
                return sharedLocalizer;
            });
```
//在Configure方法下加入以下

var supportedCultures = new[] { "zh-Hans", "en-US" };
            app.UseRequestLocalization(cultureOptions =>
            {
                cultureOptions.AddSupportedCultures(supportedCultures)
                .AddSupportedUICultures(supportedCultures)
                .SetDefaultCulture(supportedCultures[0]);
                cultureOptions.FallBackToParentCultures = true;
            });
```

在程序中添加一个文件夹并命名Resources 并在Resources文件夹下新建一个冗余的SharedResource.cs类,该类用于公共资源文件,不再使用各自的资源文件。
然后注意坑来了,坑来了,坑来了
错误示例:直接在Resources文件夹下新建资源文件并命名SharedResource.zh-Hans.resx和SharedResource.en-US.resx ,结果三个文件自动整合成一个文件夹了在这里插入代码片 如下图:

调用:在_viewimports页面添加

@using Microsoft.AspNetCore.Mvc.Localization
@inject Microsoft.Extensions.Localization.IStringLocalizer Localizer

在.cshtml调用:@Localizer["projectName"]/// projectName是资源文件中的名称

结果运行后直接显示出来的是projectName,而不是资源文件中的值

正确解决方法:

在Resources文件夹下新建资源文件并命名Resources.SharedResource.zh-Hans.resx和Resources.SharedResource.en-US.resx ,这时候这三个文件就在Resources文件夹下同一级了

调用:在_viewimports页面添加

@using Microsoft.AspNetCore.Mvc.Localization
@inject Microsoft.Extensions.Localization.IStringLocalizer Localizer

在.cshtml调用:@Localizer["projectName"]/// projectName是资源文件中的名称

在control调用

public class CommonController : Controller
    {
        private readonly IStringLocalizer<CommonController> _localizer;

public CommonController(IStringLocalizer<CommonController> localizer)
        {
            _localizer = localizer;
        }

[HttpGet]
        public string Get()
        {
            return _localizer["CommonTitle"];
        }
    }

.NetCore MVC国球化多语言,实现中英文翻译相关推荐

  1. ASP.netcore MVC钉钉H5微应用(一)准备工作

    本文是我在做ASP.netcore MVC钉钉H5微应用的第一章,准备工作 首先,进入钉钉开发平台,需要自己在钉钉上创建一个工作室,然后申请成为开发者,并创建一个H5微应用 在H5微应用里填写需要的信 ...

  2. Asp.NetCore MVC Web 应用

    Asp.NetCore MVC 与 普通的MVC 基本一致, 只是代码结构稍有改动 一.创建项目 1. 2. 3. 项目结构 二. 构建数据模型 1. Startup类中配置EF Core MySql ...

  3. c语言中英文翻译 毕业设计,c语言中英文翻译资料 本科毕业论文设计.doc

    c语言中英文翻译资料 本科毕业论文设计 The C Programming Language C is a high-level programming language developed by D ...

  4. 国嵌c语言深度,国嵌C语言3部全

    课程目录: 国嵌 C语言深度剖析班: 1课-基本数据类型分析 2 auto,register,static分析 3 if,switch,do,while,for分析 4 goto,void,exter ...

  5. 国嵌c语言深度,国嵌C语言深度剖析班(第一期)-国嵌

    国嵌C语言深度剖析班(第一期)共20个课程,包含源码及教程,主要讲了基本数据类型分析.auto,register,static分析.if,switch,do,while,for分析等,本教程提供1-5 ...

  6. c语言规范标准中英文,C语言中英文翻译资料.doc

    C语言中英文翻译资料.doc The C Programming LanguageC is a high-level programming language developed by Dennis ...

  7. ASP.NET MVC下使用AngularJs语言(一):Hello your name

    新春节后,分享第一个教程. 是教一位新朋友全新学习ASP.NET MVC下使用AngularJs语言. 一,新建一个空的Web项目.使用NuGet下载AngularJs和jQuery. 二,配置Bun ...

  8. .netcore mvc docker环境jenkins一键部署(DevOps)

    [前言] DevOps方面的文章很早之前就想分享了,挤出一点时间把前段时间搭建的一些提高开发效率的东西给大家分享一下吧. 本文介绍了一个.netcore mvc web项目,从项目push到githu ...

  9. C语言中文字符索引,C语言关键字中英文对照索引

    C语言关键字中英文对照索引 一. C语言关键字对照 关键字,又称保留字,是C语言中已预先定义.具有特定含义的标识符. 注:C语言中共有32个关键字,所有关键字都用小写字母表示,且这些关键字不能用作用户 ...

  10. c语言中英文翻译 毕业设计,c语言中英文翻译资料 本科毕业论文.doc

    c语言中英文翻译资料 本科毕业论文 The C Programming Language C is a high-level programming language developed by Den ...

最新文章

  1. Master PDF Editor中文版
  2. CocosPods 引入项目,哪些文件需要上传到服务器呢?
  3. Shell记录-Shell命令(其他)
  4. Qt文档阅读笔记-Transformations解析及例子
  5. 面试官 | Java转List三种方式,你说说吧。我。。懵逼。啥时候有三种了
  6. 用 Python 爬取了《雪中悍刀行》数据,终于知道它为什么这么火了
  7. 全中!七大初学者易踩的坑!
  8. verilog实现多周期处理器之——(二)第一条指令ori的实现
  9. 如何用微观数据分析玩家流失
  10. 2.啊哈!算法 --- 一大波数正在靠近——栈、队列、链表
  11. Selenium爬虫 -- 使用Selenium爬取数据时,网页切换之后原先获取的元素变量失效的问题
  12. qnap威联通作文件服务器,QNAP 威联通 TS-453A NAS存储服务器 开箱初体验
  13. BAT批处理脚本实例学习(三)清理系统垃圾
  14. 流体力学专业常用网站集合
  15. 稳定同位素(stable isotope)标记氨基酸,聚氨基酸,PEI,聚合物,抑制剂,离子液体,石墨烯,黑磷,透明质酸,荧光材料,脂质体复合物
  16. 动态图相册 android,动态图相册app|动态图相册下载_v1.36_9ht苹果下载
  17. python操作excel表格【自定义表格样式基础】
  18. 【极简教程】Linux Shell 脚本编程
  19. WPF - 简单的UI框架
  20. WebRequest 和 HttpWebRequest 区别

热门文章

  1. 【个人回顾】C语言程序设计-第三版-何钦铭主编-1
  2. Golang defer小结
  3. 从学术角度论Uber的人工智能预测醉酒专利
  4. 国内32位MCU在电机控制上的应用方案
  5. (附源码)计算机毕业设计SSM课题申报系统
  6. 更高效、更精确的预测性维护方案是如何实现的?
  7. EXCEL根据某列利用VLOOKUP函数获取另外一列相应的值
  8. redis 配置文件设置密码不生效的问题
  9. * MongoDB vs Redis vs Tokyo Tyrant
  10. Cron表达式记录【应用场景】