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

网站上怎么做弹目提醒wordpress 所有页面空白

网站上怎么做弹目提醒,wordpress 所有页面空白,开发网站建设公司,陕西建设官方网站asp.net core 实现支持多语言Intro最近有一个外国友人通过邮件联系我#xff0c;想用我的活动室预约#xff0c;但是还没支持多语言#xff0c;基本上都是写死的中文#xff0c;所以最近想支持一下更多语言#xff0c;于是有了多语言方面的一些实践国际化/本地化介绍国际化… asp.net core 实现支持多语言Intro最近有一个外国友人通过邮件联系我想用我的活动室预约但是还没支持多语言基本上都是写死的中文所以最近想支持一下更多语言于是有了多语言方面的一些实践国际化/本地化介绍国际化Globalization和本地化Localization是要实现的多语言支持的基础Globalization is the process of designing and developing applications that function for multiple cultures.Localization is the process of customizing your application for a given culture and locale.国际化是要支持处理多种文化而本地化是要根据某一个文化和区域的来展示相应的处理。更多关于国际化与本地化的不同可以参考 Stack Overflow 上的讨论 https://stackoverflow.com/questions/2074869/globalization-vs-localizationLocalization In Asp.NET Core微软官方的 Localization 的实现是基于资源文件实现的 ( *.resx)我们也可以扩展支持更多方式如 JSON/数据库 都是可以的社区已经有实现的示例只要是可以提供一个文本源的都是可以的我们先使用默认的基于资源文件的下一篇再讲一个自定义实现一个 Localization Provider。.NET Core Localization 的 核心是 IStringLocalizerasp.net core 里扩展定义了 IViewLocalizer 和 IHtmlLocalizer IViewLocalizer 和 IHtmlLocalizer 主要是为了处理包含 html 的资源他们不会对资源进行 html encode相当于 Html.Raw 的效果而 IStringLocalizer 则会被 html encode除此之外 IViewLocalizer 还会根据当前视图的路径寻找资源文件来看一个示例Razor 页面浏览器效果查看网页源代码实际案例服务注册注册 Localization 相关服务var supportedCultures new[] {new CultureInfo(zh),new CultureInfo(en), }; services.ConfigureRequestLocalizationOptions(options {options.DefaultRequestCulture new RequestCulture(zh);// Formatting numbers, dates, etc.options.SupportedCultures supportedCultures;// UI strings that we have localized.options.SupportedUICultures supportedCultures; }); services.AddLocalization(options options.ResourcesPath Configuration.GetAppSetting(ResourcesPath)); 配置视图 Localization根据需要如果是 WebAPI 就不需要了services.AddControllersWithViews().AddNewtonsoftJson(options {options.SerializerSettings.ContractResolver new DefaultContractResolver();options.SerializerSettings.DateTimeZoneHandling DateTimeZoneHandling.Utc; // 设置时区为 UTCoptions.SerializerSettings.NullValueHandling NullValueHandling.Ignore;options.SerializerSettings.ReferenceLoopHandling ReferenceLoopHandling.Ignore;}).AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix,opts { opts.ResourcesPath Configuration.GetAppSetting(ResourcesPath); }).AddDataAnnotationsLocalization().SetCompatibilityVersion(CompatibilityVersion.Latest); 中间件配置app.UseRequestLocalization(); 逻辑代码中使用示例IStringLocalizer 和 IHtmlLocalizer / IViewLocalizer 都可以直接从依赖注入服务中获取 IStringLocalizer 和 IHtmlLocalizer 推荐使用强类型的方式也就是下面示例的使用方式使用方式和 ILogger 类似public async TaskActionResult MakeReservation([FromBody]ReservationViewModel model,[FromHeader]string captcha,[FromHeader]string captchaType,[FromServices]IStringLocalizerHomeController localizer) {var result new ResultModelbool();var isCodeValid await HttpContext.RequestServices.GetServiceCaptchaVerifyHelper().ValidateVerifyCodeAsync(captchaType, captcha);if (!isCodeValid){result.Status ResultStatus.RequestError;result.ErrorMsg localizer[InvalidCaptchaInfo];return Json(result);} 在视图中使用示例localizer[data] 返回的是一个 LocalizedString实现了隐式转换为 string 有的时候可能需要强制转一下string 或者使用 Value 属性inject IViewLocalizer viewLocalizer viewLocalizer[About] Html.ActionLink((string)viewLocalizer[About], About, Home) Html.ActionLink(viewLocalizer[About].Value, About, Home) 资源文件配置资源文件的配置和文件的结构类似下面是一个示例准备的来说是和类型的 FullName 有关系一般的项目名称就是程序集名称就是根命名空间文件名称就是类型名称所以一般情况下资源文件的位置和类型的位置是一致的但是如果文件和类型名称不符合那就要按照类型的 FullName 来找视图也是类似的如果根命名空间不是程序集名称也是可以配置的具体的参考文档Controllers.HomeController Controllers/HomeController.zh.resx/ Controllers/HomeController.en.resxResource nameDot or path namingResources/Controllers.HomeController.fr.resxDotResources/Controllers/HomeController.fr.resxPathResources/Views/Home/About.fr.resxResources/Views.Home.About.fr.resx实际项目中的资源文件示例实际访问效果https://reservation.weihanli.xyz/默认的中文界面英文界面只是做了几个前台的示例还有很多地方没改Docker 部署现在的项目是基于 docker k8s 部署的所以支持 docker 部署很重要要支持多语言需要安装 ICU 相关的包这个可不是 996.icu 的 icu 哈如果不装真的有可能导致 996.icuRUN apk add --no-cache icu-libs # 安装 icu-libs ENV DOTNET_SYSTEM_GLOBALIZATION_INVARIANT false # 配置 Globalization 完整的 dockerfile 可以参考https://github.com/dotnet/dotnet-docker/blob/cb7a9c35dacf6d34fcf7bab7995e60faef55f61f/samples/dotnetapp/Dockerfile.alpine-x64-globalizationMore.net core 的设计真的是很灵活很优美基于资源文件的本地化感觉不太方便使用资源文件的化可能就只能使用 VS 编辑了虽然也是纯文本的基于 xml 但是编辑起来不如界面看着编辑舒服如果使用 json 之类的就比较简单明了编辑起来也比较方便所以想把资源文件替换成 JSON 文件下次分享一篇基于 JSON 的 Localization Provider 的实现Referencehttps://docs.microsoft.com/en-us/aspnet/core/fundamentals/localization?viewaspnetcore-3.1https://github.com/dotnet/extensions/tree/master/src/Localizationhttps://github.com/dotnet/aspnetcore/tree/master/src/Middleware/Localizationhttps://stackoverflow.com/questions/2074869/globalization-vs-localizationhttps://github.com/WeihanLi/ActivityReservation
http://www.yutouwan.com/news/321549/

相关文章:

  • 大学生做兼职的网站有哪些做网站的公司创业
  • 洛阳网站建设电话网站验证码怎么做的
  • 淄博网站排名简单做网站需要学什么
  • 电商网站建设实施方案太原网站建设开发
  • 特网站建设购物网站开发软件
  • 成都市建设厅网站wordpress rewrite
  • 自适应网站一般做几个尺寸网络推广seo培训班
  • 怎么做淘宝客手机网站重庆seo公司
  • 餐饮系统网站建设同一网站能否同时运行php和asp
  • 网站建设电商板块广告公司起名如何起
  • 怎么样用ppt做网站wordpress通知搜索引擎收录
  • 提供龙岗网站建设商务咨询公司经营范围
  • 网站建设中 显示房天下fangcom
  • 唐山地区网站开发公司开发什么网站
  • 做网站有兼职吗吴忠市建设局官方网站
  • 中国知名设计网站网站二次开发教程
  • 免费论坛申请网站房地产活动策划网站
  • 编辑网站绑定 主机名暗网做网站
  • 网站模块制作现在都用什么做网站
  • 做网站的技术要求高吗建设部监理工程师报名网站
  • 网站建设需要什么功能网站目录程序
  • 做图有什么网站网络游戏投诉找哪个部门
  • wordpress sql优化河南网站推广优化
  • 怎样弄一个网站创建全国文明城市的宗旨是
  • 做水果网站弄个什么名字seo博客网站
  • 营销型网站的定位建企业网站的步骤
  • 集团网站建设多少钱云南楚雄旅游必去的景点
  • 海原县建设局网站wordpress博客广告代码
  • 住房和城乡建设部网站监理工程师做外贸网站有什么用
  • html的制作网站的优点什么是网站降权处理