《基于Modern工具包的本地化方式》的重构

Posted 上将军

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《基于Modern工具包的本地化方式》的重构相关的知识,希望对你有一定的参考价值。

在前文,本地化是通过一堆判断语句去切换本地化文本,而且还要记录原文本,比较麻烦,执行起来逻辑比较多,也不畅顺。更重要的是,之前已经实现的表单字段标签的自动化和列标题的自动化很难去实现了,又要加一堆判断逻辑,这样的代码,有很重的异味,必须做改进。

要解决判断过多的问题,比较简单,根据对应的类重写相应的类就行了。余下就是要解决localized方法,这方法需要记录属性的原始值,然后做转换,再调用set方法输出,整个流程太麻烦了。现在的焦点就是哪个原始值,如果直接用另外一个属性如langText来记录按钮的原始值,然后在切换本地化的时候,重新使用setText方法输出不就行了?想到这,思路豁然开朗,几个关键的属性titletextlabelhtmlmessage都可以使用这种方式实现,而且要重写的属性也不多,确实是不错的办法。更重要的是,使用这种方式,可以很容易的就实现标签的自动化和列标题的自动化,真是一举多得。

经过一阵折腾,终于完整实现了整个功能,不过日期选择面板哪个暂时还没找到合适的方式去更新。

由于这次文件比较多,就不贴代码了,有兴趣的可以自己去看演示程序:演示程序

以上是关于《基于Modern工具包的本地化方式》的重构的主要内容,如果未能解决你的问题,请参考以下文章

基于Modern工具包的本地化方式(上)

基于Modern工具包的本地化方式(下)

从D2语言与框架专场到modern JavaScript

内置的HTTP服务器Modern PHP

解决Modern工具包中Ext.field.Date的提交值问题

配电网重构基于matlab yalmip求解含sop+二阶锥配电网重构问题含Matlab源码 2264期