当前位置: 首页 > news >正文

建设网站要多少钱做擦边球视频网站

建设网站要多少钱,做擦边球视频网站,seo 费用,wordpress文章页面500前言最近的新型冠状病毒流行让很多人主动在家隔离#xff0c;希望疫情能快点消退。武汉加油#xff0c;中国必胜#xff01;Asp.Net Core 提供了内置的网站国际化#xff08;全球化与本地化#xff09;支持#xff0c;微软还内置了基于 resx 资源字符串的国际化服务组件。… 前言       最近的新型冠状病毒流行让很多人主动在家隔离希望疫情能快点消退。武汉加油中国必胜       Asp.Net Core 提供了内置的网站国际化全球化与本地化支持微软还内置了基于 resx 资源字符串的国际化服务组件。可以在入门教程中找到相关内容。       但是内置实现方式有一个明显缺陷resx 资源是要静态编译到程序集中的无法在网站运行中临时编辑灵活性较差。幸好我找到了一个基于数据库资源存储的组件这个组件完美解决了 resx 资源不灵活的缺陷经过适当的设置可以在第一次查找资源时顺便创建数据库记录而我们要做的就是访问一次相应的网页让组件创建好记录然后我们去编辑相应的翻译字段并刷新缓存即可。       但是又是但是经过一段时间的使用发现基于数据库的方式依然存在缺陷开发中难免有需要删除并重建数据库初始化环境。这时之前辛辛苦苦编辑的翻译就会一起灰飞烟灭 (╯‵□′)╯︵┻━┻ 。而 resx 资源却完美避开了这个问题这时我就在想能不能让他们同时工作兼顾灵活性与稳定性鱼与熊掌兼得。       经过一番摸索终于得以成功在此开贴记录分享。正文设置并启用国际化服务组件       安装 Nuget 包 Localization.SqlLocalizer这个包依赖 EF Core 进行数据库操作。然后在 Startup 的 ConfigureServices 方法中加入以下代码注册  EF Core 上下文1 services.AddDbContextLocalizationModelContext(options 2 { 3 options.UseSqlServer(connectionString); 4 }, 5 ServiceLifetime.Singleton, 6 ServiceLifetime.Singleton);       注册自制的混合国际化服务services.AddMixedLocalization(opts { opts.ResourcesPath Resources; }, options options.UseSettings(true, false, true, true));       注册请求本地化配置 1 services.ConfigureRequestLocalizationOptions(2 options 3 {4 var cultures Configuration.GetSection(Internationalization).GetSection(Cultures)5 .GetListstring()6 .Select(x new CultureInfo(x)).ToList();7 var supportedCultures cultures;8 9 var defaultRequestCulture cultures.FirstOrDefault() ?? new CultureInfo(zh-CN); 10 options.DefaultRequestCulture new RequestCulture(culture: defaultRequestCulture, uiCulture: defaultRequestCulture); 11 options.SupportedCultures supportedCultures; 12 options.SupportedUICultures supportedCultures; 13 });       注册 MVC 本地化服务复制代码1 services.AddMvc() 2 //注册视图本地化服务 3 .AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix, opts { opts.ResourcesPath Resources; }) 4 //注册数据注解本地化服务 5 .AddDataAnnotationsLocalization();       在 appsettings.json 的根对象节点添加属性复制代码Internationalization: {Cultures: [zh-CN,en-US] }       在某个控制器加入以下动作 1 public IActionResult SetLanguage(string lang)2 {3 var returnUrl HttpContext.RequestReferer() ?? /Home;4 5 Response.Cookies.Append(6 CookieRequestCultureProvider.DefaultCookieName,7 CookieRequestCultureProvider.MakeCookieValue(new RequestCulture(lang)),8 new CookieOptions { Expires DateTimeOffset.UtcNow.AddYears(1) }9 ); 10 11 return Redirect(returnUrl); 12 }       准备一个页面调用这个动作切换语言。然后大功告成       这个自制服务遵循以下规则优先查找基于 resx 资源的翻译数据如果找到则直接使用如果没有找到再去基于数据库的资源中查找如果找到则正常使用如果没有找到则按照对服务的配置决定是否在数据库中生成记录并使用。自制混合国际化服务组件的实现       本体       注册辅助扩展       原理简介       服务组件利用了 DI 中可以为同一个服务类型注册多个实现类型的特性并在构造方法中注入服务集合便可以将注册的所有实现注入组件同时使用。要注意主控服务和工作服务不能注册为同一个服务类型不然会导致循环依赖。内置的国际化框架已经指明了依赖 IStringLocalizerFatory 必须将主控服务注册为 IStringLocalizerFatory工作服只能注册为其他类型不过依然要实现 IStringLocalizerFatory所以最方便的办法就是定义一个新服务类型作为工作服务类型并继承 IStringLocalizerFatory。       想直接体验效果的可以到文章底部访问我的 Github 下载项目并运行。结语       这个组件是在计划集成 IdentityServer4 管理面板时发现那个组件使用了 resx 的翻译而我的现存项目已经使用了数据库翻译存储两者又不相互兼容的情况下产生的想法。       当时 Localization.SqlLocalizer 旧版本2.0.4还存在无法在视图本地化时正常创建数据库记录的问题也是我调试修复了 bug 并向原作者提交了拉取请求原作者也在合并了我的修复后发布了新版本。       这次在集成 IdentityServer4 管理面板时又发现了 bug正准备联系原作者看怎么处理。
http://www.pierceye.com/news/109736/

相关文章:

  • 个人网站备案名称填写货运网站建设公司
  • 有网页源码 怎么做网站外链发布软件
  • 医疗网站建设基本流程wordpress速度加快
  • 网站建设优化开发公司哪家好泰州东方医院男科
  • 怎么自己做歌曲网站大连网站制作公司费用多少
  • 网站专题设计稿用vue做商城网站常用的js
  • 怎么在免费空间里面做网站深圳英文站seo
  • 学风建设网站版块如何用visual studio做网站
  • 山东响应式网站设置字体颜色的网站
  • 美容院网站建设西安有关做网站的公司有哪些
  • 湛江做网站设计公司网络推广网站培训班
  • 大型网站建立萝岗微信网站建设
  • 门户网站建设发展趋势官网网站怎么创建
  • 企业网站如何做自然搜索phpcms 网站转移
  • 站内优化怎么做建设设计网站
  • 如何建设机器人教育网站上海有名的网络公司
  • 网站二级目录做网站淄博网站建设 很乱
  • 常州做网站企业海口网站开发建设
  • 做php网站用什么软件开发wordpress页面图片轮播图
  • 做网站页面大小多大8上的信息课做网站作业
  • 自己做微网站创欧科技 网站建设
  • 网站设计师大学学什么专业北京燕华工程建设有限公司网站
  • 广州专业网站建设企业wordpress 数据库修改
  • 淮南装饰公司网站建设seo 网站树
  • 设计素材下载网站网络营销课程设计报告
  • 安庆公司做网站搜索引擎收录提交入口
  • 城固网站建设wordpress主题谁的最好
  • 国外建站企业北京鑫创网站建设
  • 网站做视频wordpress插件手动升级
  • wordpress收不到网站没有收款接口网站怎么做收款