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

网站建设与企业发展怎么学做电商然后自己创业

网站建设与企业发展,怎么学做电商然后自己创业,画册设计赏析,外贸平台有哪些电商概览随着我们的应用程序越来越受欢迎#xff0c;我们的下一步将要开发多语言功能。方便越来越多的国家使用我们中国的应用程序#xff0c;基于 WPF 本地化#xff0c;我们很多时候使用的是系统资源文件#xff0c;可是动态切换本地化#xff0c;就比较麻烦了。实现思路现在… 概览随着我们的应用程序越来越受欢迎我们的下一步将要开发多语言功能。方便越来越多的国家使用我们中国的应用程序基于 WPF 本地化我们很多时候使用的是系统资源文件可是动态切换本地化就比较麻烦了。实现思路现在我们将要实现的是基于 DotNetCore 3.0 以上版本 and WPF 桌面应用程序模块化的多语言功能。动态切换多语言思路把所有模块的资源文件添加到字典集合。将资源文件里的key绑定到前台。通过通知更改 CurrentCulture 多语言来使用改变的语言文件里的key。通过绑定 Binding 拼接Path 在输出。动态切换我们先来看实现结果第一行是我们的主程序的数据展示用于业务中的本地化第二行是我们业务模块A的数据展示第三行是我们业务模块B的数据展示来看一下xaml展示通过ComboBox选择来切换语言搭建模拟业务项目创建一个WPF App(.NET Core)应用程序创建完成后我们需要引入业务A模块及业务B模块和业务帮助模块使用ResX资源文件在各个模块里添加Strings 文件夹用来包含 各个国家和地区的语言文件。多语言可以参考https://github.com/UnRunDeaD/WPF---Localization/blob/master/ComboListLanguages.txt资源文件可以放在任意模块内比如业务模块A 主程序底层业务控件工具集等创建各个业务模块资源文件Strings文件夹可以任意命名帮助类封装到底层供各个模块调用 public class TranslationSource : INotifyPropertyChanged{public static TranslationSource Instance { get; } new TranslationSource();private readonly Dictionarylt;string, ResourceManagergt; resourceManagerDictionary new Dictionarylt;string, ResourceManagergt;();public string this[string key]{get{Tuplelt;string, stringgt; tuple SplitName(key);string translation null;if (resourceManagerDictionary.ContainsKey(tuple.Item1))translation resourceManagerDictionary[tuple.Item1].GetString(tuple.Item2, currentCulture);return translation ?? key;}}private CultureInfo currentCulture CultureInfo.InstalledUICulture;public CultureInfo CurrentCulture{get { return currentCulture; }set{if (currentCulture ! value){currentCulture value;PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(string.Empty));}}}public event PropertyChangedEventHandler PropertyChanged;public void AddResourceManager(ResourceManager resourceManager){if (!resourceManagerDictionary.ContainsKey(resourceManager.BaseName)){resourceManagerDictionary.Add(resourceManager.BaseName, resourceManager);}}public static Tuplelt;string, stringgt; SplitName(string local){int idx local.ToString().LastIndexOf(.);var tuple new Tuplelt;string, stringgt;(local.Substring(0, idx), local.Substring(idx 1));return tuple;}}public class Translation : DependencyObject{public static readonly DependencyProperty ResourceManagerProperty DependencyProperty.RegisterAttached(ResourceManager, typeof(ResourceManager), typeof(Translation));public static ResourceManager GetResourceManager(DependencyObject dependencyObject){return (ResourceManager)dependencyObject.GetValue(ResourceManagerProperty);}public static void SetResourceManager(DependencyObject dependencyObject, ResourceManager value){dependencyObject.SetValue(ResourceManagerProperty, value);}}public class LocExtension : MarkupExtension{public string StringName { get; }public LocExtension(string stringName){StringName stringName;}private ResourceManager GetResourceManager(object control){if (control is DependencyObject dependencyObject){object localValue dependencyObject.ReadLocalValue(Translation.ResourceManagerProperty);if (localValue ! DependencyProperty.UnsetValue){if (localValue is ResourceManager resourceManager){TranslationSource.Instance.AddResourceManager(resourceManager);return resourceManager;}}}return null;}public override object ProvideValue(IServiceProvider serviceProvider){object targetObject (serviceProvider as IProvideValueTarget)?.TargetObject;if (targetObject?.GetType().Name SharedDp)return targetObject;string baseName GetResourceManager(targetObject)?.BaseName ?? string.Empty;if (string.IsNullOrEmpty(baseName)){object rootObject (serviceProvider as IRootObjectProvider)?.RootObject;baseName GetResourceManager(rootObject)?.BaseName ?? string.Empty;}if (string.IsNullOrEmpty(baseName)){if (targetObject is FrameworkElement frameworkElement){baseName GetResourceManager(frameworkElement.TemplatedParent)?.BaseName ?? string.Empty;}}Binding binding new Binding{Mode BindingMode.OneWay,Path new PropertyPath($[{baseName}.{StringName}]),Source TranslationSource.Instance,FallbackValue StringName};return binding.ProvideValue(serviceProvider);}} 前台绑定 xmlns:extclr-namespace:WpfUtil.Extension;assemblyWpfUtilxmlns:resxclr-namespace:ModuleA.Stringsext:Translation.ResourceManager{x:Static resx:SR.ResourceManager}显示文字lt;Label Content{ext:Loc Test} FontSize21 /gt;后台实现根据业务的需要我们在界面上无法适用静态文字显示的一般通过后台代码来完成对于 code-behind 的变量使用同样可以应用于资源字典。PS: 欢迎各位大佬慷慨指点有不足之处请指出有疑问请指出喜欢它请支持下载地址https://github.com/androllen/WpfNetCoreLocalization相关链接https://github.com/Jinjinov/wpf-localization-multiple-resource-resx-one-language/blob/master/README.md
http://www.huolong8.cn/news/159720/

相关文章:

  • 天津免费建站wordpress微信公众号关注
  • 建设创意网站常见的网站空间服务商
  • 网站开发方面知识开家网站建设培训
  • 网站建设还能赚钱吗国家信息公示网
  • 好商网的网站可以做中英文切换吗凡科建站免费版可以做什么
  • 网站建设与设计实验报告中国建设银行网站密码是什么意思
  • 网站多语言 设计网站搜索功能怎么做
  • 太原seo网站建设上海公司网站备案
  • 学院门户网站建设汕头人口
  • 电子商务网站的主题及建设目标微网站设计制作
  • 四川省城乡与建设厅网站首页淘宝直通车推广怎么收费
  • 中国建设银行演示网站外贸网站建设外
  • 看一个网站是用什么语言做的群晖 wordpress是什么
  • 网站功能模块有哪些深圳电商页面设计那家好
  • 站酷设计官方网站网站开发宝典
  • 安徽省建设监理有限公司网站自己制作app的应用程序
  • 重庆网站建设网站建设建立一个公司
  • 浏阳网站建设tvshown国外h5建站
  • linux建立网站南京网站开发选南京乐识赞
  • 织梦建设网站全过程三河建设厅公示网站
  • 做宣传图片用什么网站宣传片拍摄流程
  • 自己开发网站需要多少钱简易手机app制作教程
  • wordpress注册页岳阳优化营商环境
  • 宁波市网站建设专做展厅设计网站
  • 网站空间 虚拟主机谷歌seo优化怎么做
  • 广东网站推广策略哈尔滨证件制作
  • ip域名找网站直播app开发价格
  • wordpress自建电商网站网站注销申请
  • 基于c 的网站开发家具营销型网站模板
  • 中国做的比较好的网站包头市建设工程安全监督站网站