专业编程教程与实战项目分享平台

网站首页 > 技术文章 正文

国际化03:提取中文#前端八股文 前端八股文是什么

ins518 2024-10-04 23:51:56 技术文章 11 ℃ 0 评论

来看实现,整个工程是用vivo CRI创建的,vivo点configer里面直接使用了本地的Pluge,配置肯定是有问题的,需要把它改成build的时候再使用。直接看具体的实现,实现的方式比较简单,用的是原声的方式,不需要过解析器,直接执行就行。主要是根据上一章聊的技术解析往上面去填内容,左边有一堆handle,这个就是上一期提到的处理模式里面的内容,一会儿再聊。

先看入口页的代码,首先是RT,RT就是之前说的输出,ca RET return date都可以,当然用语义更准确的名称也没问题。第一个问题,为什么放到最上面?放到下面其他的模块就会找不到,这个大家应该都知道。

接下来就是一个非常基础的iPad plugin,又是一个国内挂载下来的整个比较重要的功能点,这里都打上了注释,使用的生命周期話,根据chunks获取到这些fail,将这些fail交给策略类进行使用,并且还有一个特殊的文件,需要通过size的方式来进行获取,就是index html。

最后根据RT来判断是否包含中文进行提示,或者是直接进行序列化操作,非常基础的内容。直接看under,在获取函段时有一个小技巧,空对象获取一个没有副作用的函数,这样就可以在使用策略的时候不需要判断获取的内容是否为空。这个操作后端用的比较多,设计模式主要是解决for循环过多或者是if过多这两种情况的。

接下来看具体的操作,先从上往下看,首先是CSS焊段里面的技术细节,包括什么是中文匹配,实现跟以前的实现方式肯定是不一样的,有兴趣可以了解一下。进来,先判断整个south当中是否包含中文,但是这段内容不要这样翻译,逼格高一点,它叫御姐西。

比如html,在解析时在html解析前会进行预解析,获取额外的外部引用,然后提前进行加载。这里的思路跟它是一样的,要判断里面的内容是否需要去进行详细的解析,有兴趣可以都打上这个时间,让我们去判断一下时间,看一下说哪一个解析的方式时间是更长的。

然后是下面具体的实线,这种实线就比较无所谓了,打个debug,去疯狂的调试就可以了。但是提醒一下,地理应该用地规的方式,不应该用错区环这种方式来去实现。因为浏览器是支持CSS签套的,这种写法肯定是有问题的,但这里就不处理了,交给大家了。

还有一些CSS里面的内存中的结构,这些就不用管,在底bug中看到什么有什么,然后就用什么,有机会再详聊CSS在内存中的结构。

接下来看hml焊点,它跟CSS其实也是一样的,这里判断的是文本节点中是否包含中文,当然如果要严格一点也需要判断属性,这个节点中是否包含中文依然教给大家,它是水墨功夫,真的是一点难度都没有。

最后是DS的处理,区别就是它有一个设计模式,visit paper里自带了设计模式,就不需要主动的去递归,用起来会比较舒服的一种方式。

最后补充一下在实现时可能遇见的一些技术上的细节,比如expose,它导出的时候需要放到最前面,比如chunks文件可能需要进行一些忽略,因为它可能有自己的国际化的方式,有一个空对象的设计模式,有一个预解析,在真正的解析前还有一个Pre pass,它的效率更高,来判断解析是否有必要进行执行。

有一个中文获取的正则,这个跟新的规范有关,以前的方案跟现在的方案是不一样的,里面包含了很多地规的方式,全部通过复循环写在一个函数里面肯定是不行的,因为里面的节点全部都是可以嵌套的,HTML是可以互相嵌套的,CSS也是可以互相嵌套的,必须使用地规的方式来进行处理。

有一个visit的设计模式,这个是解析处理地规最好的一种设计模式,能够提供就直接用上。最后一定会包括NODE下进行debug的操作,要说写这个东西没有在NODE中进行debug应该是不可能的。

最后给大家留点作业,我写的东西是非常简单的,直接用是不可能的,在组里边简单的使用是没问题的,推广给别人的组别人会怼死你,他们一定需要提供一个非常详细的文档,还会提供各种稀奇古怪的需求,所以需要在里面反复的去进行折腾,折腾出更多的API。

主要就是抽出更多可配置的内容,比如是否要读取CSS的内容,是否要将内容输出格式转换成CSV或者是Excel,包括题写的语言,需要飘红,需要重点强调,需要展示出来的内容更加的漂亮,更加的好看,甚至有可能必须得是用TS的版本都可以。

这些内容就直接交给大家了,就不去处理了,顺便补一下它运行的情况。刚才忘了提这一块,比如现在index的APP里面,这里面包含了一些奇怪的中文,这里面dat里面包含了中文,它是GS里面,template最终也是转换成GS,其实也是一样的,这是属性也没问题,这些全部都是GS里面的内容。

下面这个是CSS中的中文,接下来还有一个是htm苗的中文,比如在生成的public的模板里面,一不小心写上了一些奇怪的中文。

现在看一下整个Plugin的直写的效果。整个脚本已经执行完了,GS当中包含了刚才看到的单个DS,CSS里面包含了CSS的内容,html就是HM的中文。这个文件最终产生输出在半圆点log里面,文件名肯定可以自定义,随便去改。用参数、用配置的方式来去进行调整和修改都是没问题的。

这个结构也没有太大问题,它是可拓展的,CSS、HMR还有GS里面的内容不一样也是没问题的。当然想把里面的内容提取在一起,只要里面的中文也没问题。已经有了这些数据,再教数据如何进行清洗、如何进行转换,无非就是额外再写几个函数的问题。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表