一种用于芯片内置代码快速切换语言的方法及系统技术方案

技术编号:38467136 阅读:12 留言:0更新日期:2023-08-11 14:44
本发明专利技术提供一种用于芯片内置代码快速切换语言的方法及系统,属于前端页面开发展示技术领域。本发明专利技术用于芯片内置代码快速切换语言的方法如下步骤:接受并校验用户输入的配置信息;校验通过,遍历源码根目录,保存配置信息;根据配置信息,读取并处理对应目录下的所有文件,然后写入指定输出地址;文件内容解析处理,提取关键词;根据关键词和词条的映射关系,匹配词条,进行源码替换;替换完毕,输出修改后的文件。本发明专利技术的有益效果为:用户可以在使用过程中,根据自己对各语言的掌握情况,使用自己熟悉的语言,使用户能很容易的使用软件,用户体验性更好。体验性更好。体验性更好。

【技术实现步骤摘要】
一种用于芯片内置代码快速切换语言的方法及系统


[0001]本专利技术涉及前端页面开发展示
,具体涉及一种用于芯片内置代码快速切换语言的方法及系统。

技术介绍

[0002]为快速满足客户的定制需求,快速占领市场,公司在开发定制产品时,常常会为了缩短开发周期,在原厂SDK源码上直接进行修改,以满足客户快速定制的需求。不同国家的客户对不同显示语言的需求应运而生。
[0003]而芯片方案出厂时产商的源码通常是默认自带英文,语言词条和页面代码通过占位符等特定的编码方式耦合在一起,且没有预留快速替换其它语种的方案,故无法快速的进行其它语种词条的替换。
[0004]当前存在的解决方案一种是是通过正则遍历源码中的词条,然后对语句进行解析,对变量进行“xml_”标记,以达到翻译替换的目的。这个过程中会产生很多词条相关变量,代码冗余,且变量使用处语义不明显,不利于后续代码维护。
[0005]该种技术存在以下缺陷:
[0006](1)变量过多,导致代码语义差,会出现很多词条相关的变量,不易维护;
[0007](2)对常量标记,可能会出现遗漏或处理出错的情况,没有对应的风险规避方案;
[0008](3)词条处理文件存储在多个文件中,且没进行处理,占用前端请求支援,文件太多不好维护;
[0009]另一种做法是投入较多人力,逐个页面进行手动查找替换,以达到快速交付的目的。逐个对页面中的显示词条进行替换,替换初期耗费的人力都比较大,且无法保证后续的交付质量能够满足要求,还需要投入大量测试人力去验证。
[0010]同时,现有技术方案通常出厂时就确定了语种,无法根据用户的需求去切换语种,也无法根据用户使用习惯切换显示语言。比如产品出厂为英文,只能通过英文界面查看,无法切换成中文,扩展性和用户使用体验不好。

技术实现思路

[0011]为解决现有技术中的问题,本专利技术提供一种用于芯片内置代码快速切换语言的方法及系统。
[0012]本专利技术用于芯片内置代码快速切换语言的方法,包括如下步骤:
[0013]S1:接受并校验用户输入的配置信息;
[0014]S2:校验通过,遍历源码根目录,保存配置信息;
[0015]S3:根据配置信息,读取并处理对应目录下的所有文件,然后写入指定输出地址;
[0016]S4:文件内容解析处理,提取关键词;
[0017]S5:根据关键词和词条的映射关系,匹配词条,进行源码替换;
[0018]S6:替换完毕,输出修改后的文件。
[0019]进一步地,步骤S1中,所述配置信息包括:源码路径、输出路径、关键字正则、主词条路径和普通词条路径。
[0020]进一步地,步骤S3中,根据配置信息的源码路径,读取对应目录下的所有文件,遍历每个文件,所有文件分为三种情况处理:
[0021]如果为html文件,则推入html任务队列;
[0022]如果为JavaScript类型文件,则推入JS任务队列;
[0023]剩余类型文件,直接复制输出到制定目录下;
[0024]文件遍历完成后,依次逐个执行html任务队列和JS任务队列中的任务,提取文件内容,并转码输出。
[0025]进一步地,步骤S4中,文件内容解析处理,提取关键词的处理过程为:
[0026]S401:接收输出的转码后文件,放入解析任务队列;
[0027]所述解析任务队列包括解析html队列和解析JS队列,当步骤S3中输出的为转码后的html文件时,匹配html文件中的script标签,提取内部字符串,添加到JavaScript的解析JS队列中,将html文件推入解析html队列,当步骤S3中输出的为转码后的JavaScript类型文件时,将其放入解析JS队列;
[0028]S402:并发解析两条队列中的队头html文件及队头JavaScript类型文件;
[0029]S403:提取关键字。
[0030]进一步地,步骤S5执行前,建立哈希表步骤:根据源码中关键词和词条的对应关系,建立关键词和词条的映射关系哈希表。
[0031]进一步地,步骤S5中,获取提取的关键词,如果关键词类型为关键字,则去除首尾空格,匹配词条,判断是否匹配成功,如果成功,则输出词条,如果未匹配成功,则将对应的关键字记录在日志文件,输出原关键字。
[0032]进一步地,如果获取提取的关键词的类型为字符串,则直接匹配词条替换。
[0033]进一步地,在所述JavaScript类型文件替换处理过程中,还包括翻译处理步骤,将替换后的JavaScript类型文件中的词条翻译为指定语言。
[0034]本专利技术还提供一种用于芯片内置代码快速切换语言的系统,实现所述的用于芯片内置代码快速切换语言的方法,其特征在于,包括:
[0035]用户交互模块:用于接受并校验用户输入的配置信息,校验通过,遍历源码根目录,保存配置信息;
[0036]文件读写模块:用于根据配置信息,读取并处理对应目录下的所有文件,然后写入指定输出地址;
[0037]文件内容解析处理模块:用于对文件内容解析处理,提取关键词;
[0038]词条业务处理模块:用于根据关键词和词条的映射关系,匹配词条,进行源码替换;
[0039]输出模块:用于输出修改后的文件。
[0040]进一步地,所述词条业务处理模块还用于根据源码中关键字和词条的对应关系,解析词条存储的文件,得到关键字和词条的映射关系哈希表,
[0041]关键词与词条匹配失败时,写入日志文件,所述输出模块还用于输出日志文件。
[0042]与现有技术相比,本专利技术的有益效果是:
[0043](1)现有技术中采用占位符的方式,代码不够易读,无法通过占位符明确知道代码本身的含义,本专利技术改为具体的语言词条,可读性更高。同时占位符在出厂编译后已经确定了只能以那种语言显示,用户无法更换显示语言,扩展性很差。修改后,显示何种语言不再受出厂的限制,用户可以在使用过程中,根据自己对各语言的掌握情况,使用自己熟悉的语言,使用户能很容易的使用本软件,用户体验性更好。
[0044](2)人工替换修改的方式效率不高,需要人工逐个的去确认修改,工作量大且繁琐,维护成本较高。同时在维护占位符和词条对应关系时,对工程师的仔细程度要求较高,使得整体开发的风险增大,不可控因素增多。本专利技术修改方案后,通过自动化的方式,将繁琐重复的工作交给机器去执行,只要设定的规则没有问题,最终的输出结果就不会有问题,在节省人力的同时,还提升了工作效率的,同时也降低了项目的风险和维护成本,属于一劳永益,后续相关的需求都可以通过该专利技术去完成。
[0045](3)现有技术通过定义变量的方式达到语言替换的目的,这就意味着需要改变源码的逻辑,有多少词条就要定义多少变量,不仅增加代码的冗余度,也让业务逻辑的代码不易读,不利于后续的代码维护。本方案是直接在源码提取的地方直接进行替换本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于芯片内置代码快速切换语言的方法,其特征在于,包括如下步骤:S1:接收并校验用户输入的配置信息;S2:校验通过,遍历源码根目录,保存配置信息;S3:根据配置信息,读取并处理对应目录下的所有文件,然后写入指定输出地址;S4:文件内容解析处理,提取关键词;S5:根据关键词和词条的映射关系,匹配词条,进行源码替换;S6:替换完毕,输出修改后的文件。2.根据权利要求1所述的用于芯片内置代码快速切换语言的方法,其特征在于:步骤S1中,所述配置信息包括:源码路径、输出路径、关键字正则、主词条路径和普通词条路径。3.根据权利要求2所述的用于芯片内置代码快速切换语言的方法,其特征在于:步骤S3中,根据配置信息的源码路径,读取对应目录下的所有文件,遍历每个文件,所有文件分为三种情况处理:如果为html文件,则推入html任务队列;如果为JavaScript类型文件,则推入JS任务队列;剩余类型文件,直接复制输出到制定目录下;文件遍历完成后,依次逐个执行html任务队列和JS任务队列中的任务,提取文件内容,并转码输出。4.根据权利要求3所述的用于芯片内置代码快速切换语言的方法,其特征在于:步骤S4中,文件内容解析处理,提取关键词的处理过程为:S401:接收输出的转码后文件,放入解析任务队列;所述解析任务队列包括解析html队列和解析JS队列,当步骤S3中输出的为转码后的html文件时,匹配html文件中的script标签,提取内部字符串,添加到JavaScript的解析JS队列中,将html文件推入解析html队列,当步骤S3中输出的为转码后的JavaScript类型文件时,将其放入解析JS队列;S402:并发解析两条队列中的队头html文件及队头JavaScript类型文件;S403:提取关键...

【专利技术属性】
技术研发人员:谢昌匡道珍杨春梅彭紫琳潘文敏胡小锋
申请(专利权)人:深圳市吉祥腾达科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1