CN110275712B - 一种文本替换方法、装置及设备 - Google Patents

一种文本替换方法、装置及设备 Download PDF

Info

Publication number
CN110275712B
CN110275712B CN201910569872.2A CN201910569872A CN110275712B CN 110275712 B CN110275712 B CN 110275712B CN 201910569872 A CN201910569872 A CN 201910569872A CN 110275712 B CN110275712 B CN 110275712B
Authority
CN
China
Prior art keywords
source code
code file
processed
sub
target text
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910569872.2A
Other languages
English (en)
Other versions
CN110275712A (zh
Inventor
张勇
莫林林
朱红燕
伦秉力
喻光达
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
WeBank Co Ltd
Original Assignee
WeBank Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by WeBank Co Ltd filed Critical WeBank Co Ltd
Priority to CN201910569872.2A priority Critical patent/CN110275712B/zh
Publication of CN110275712A publication Critical patent/CN110275712A/zh
Application granted granted Critical
Publication of CN110275712B publication Critical patent/CN110275712B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/72Code refactoring
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Document Processing Apparatus (AREA)
  • Machine Translation (AREA)

Abstract

本发明涉及金融科技技术领域,特别涉及一种文本替换方法、装置及设备,用以解决现有技术中人工寻找需要进行多语言化展示的语句费时费力的问题。本发明实施例在待处理的源代码文件的文件类型为预设类型后,从所述源代码文件中确定需要处理的目标文本;所述目标文本中包含需要进行多语言展示的预设语言;使用所述待处理的源代码文件的文件类型对应的替换规则对所述目标文本进行替换处理。通过本发明实施例中的方法、装置及设备,可实现快速且准确的从大量的源代码文件中确定出需要进行多语言化展示的文本。

Description

一种文本替换方法、装置及设备
技术领域
本发明涉及金融科技(Fintech)技术领域,尤其涉及一种文本替换方法、装置及设备。
背景技术
随着计算机技术的发展,越来越多的技术(互联网,大数据、分布式、区块链Blockchain、人工智能等)应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变,在互联网行业,Web(World Wide Web,万维网)前端开发的编程语言以及编程框架越来越丰富,为了满足不同用户的需求,在Web前端页面展示时需要进行多语言展示。
目前,Web前端页面的多语言化展示时,需要人工从源代码上下文中寻找需要多语言化展示的语句,并人工将需要多语言化展示的语句进行多语言替换。例如,多语言化展示可以为中文展示、日文展示、英文展示等;在从源代码上下文中寻找的多语言化展示的语句为中文语句时,可以人工将该中文语句替换为英文语句。一个大型Web应用的源代码往往涉及几百个源代码文件,涉及几千项需要多语言化展示的语句,采用人工从源代码文件中寻找需要多语言化展示的语句并进行替换的方式需要耗费大量的人力,并且周期较长。
发明内容
本发明提供一种文本替换方法,用以解决现有技术中人工寻找需要进行多语言化展示的语句费时费力的问题。
第一方面,提供一种文本替换方法,该方法包括:
在待处理的源代码文件的文件类型为预设类型后,从所述源代码文件中确定需要处理的目标文本;所述目标文本中包含需要进行多语言展示的预设语言;使用所述待处理的源代码文件的文件类型对应的替换规则对所述目标文本进行替换处理。
由于本发明实施例在确定待处理的源代码文件的文件类型为预设类型之后,再找出源代码文件中需要处理的目标文本,且从源代码文件中确定出的目标文本中包含要进行多语言展示的预设语言,并使用文件类型对应的替换规则对确定出的目标文本进行替换。能够快速且准确的从大量的源代码文件中确定出目标文本,相比现有技术中采用人工方式从源代码文件中寻找需要多语言化展示的文本,能够缩短寻找并替换需要多语言化展示文本的周期。
在一种可能的实施方式中,所述从所述源代码文件中确定需要处理的目标文本,包括:
通过预设的正则表达式对所述源代码文件的内容进行匹配,确定备选的字符串;将所述备选的字符串中包含所述预设语言的字符串作为所述需要处理的目标文本。
由于本发明实施例通过正则表达式对源代码文件的内容进行匹配,确定被选字符串,并将备选字符串中包含预设语言的字符串作为需要处理的目标文本,能够自动从大量源代码文件中确定出目标文本,批量处理,快速准确。
在一种可能的实施方式中,所述从所述源代码文件中确定需要处理的目标文本,包括:
遍历所述源代码文件中的子节点,得到子节点的属性和/或内容;通过预设的正则表达式确定包含所述预设语言的子节点的属性和/或内容,并将确定出的包含所述预设语言的子节点的属性和/或内容作为所述需要处理的目标文本。
由于本发明实施例通过解析工具对待处理的源代码文件的内容进行解析,遍历并得到子节点的属性和内容,能够通过正则表达式自动从大量源代码文件中找到包含预设语言的子节点的属性和内容,从而快速准确的确定出需要处理的目标文本。
在一种可能的实施方式中,所述待处理的源代码文件的文件类型对应的替换规则中包含不同子节点类型对应的子替换规则;所述使用所述待处理的源代码文件的文件类型对应的替换规则对所述目标文本进行替换处理,包括:根据预先设定的子节点类型和子替换规则的对应关系,确定所述源代码文件中的子节点对应的子替换规则;使用所述子节点对应的子替换规则对所述目标文本进行替换处理。
由于本发明实施例通过预先设置不同源代码文件对应不同的替换规则以及不同子节点类型对应不同的子替换规则,在对子节点的内容或属性进行替换处理时,针对不同类型的子节点使用不同的子替换规则,从而能够保证文本替换的准确性。
在一种可能的实施方式中,所述子节点为脚本节点时,所述脚本节点对应的子替换规则与javascript源代码文件对应的替换规则相同。
由于本发明实施通过相同的替换规则处理javascript源代码文件和脚本节点,简化替换规则集,并且能够实现准确的将源代码文件需要处理的目标文本进行替换处理。
第二方面,提供一种文本替换装置,该装置包括:
确定模块,用于在待处理的源代码文件的文件类型为预设类型后,从所述源代码文件中确定需要处理的目标文本;所述目标文本中包含需要进行多语言展示的预设语言;
处理模块,用于使用所述待处理的源代码文件的文件类型对应的替换规则对所述目标文本进行替换处理。
关于确定模块以及处理模块的具体功能,可参见上述第一方面的记载,在此不再说明。
第三方面,提供一种文本替换设备,该设备包括:存储器以及处理器;
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述第一方面或第一方面任一种可能设计中的方法。
第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行上述第一方面或第一方面任一种可能设计中的方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例所提供的文本替换方法的流程示意图;
图2为本发明实施例所提供的第一种文本替换方法的整体流程示意图;
图3为本发明实施例所提供的第二种文本替换方法的整体流程示意图;
图4为本发明实施例所提供的文本替换装置的一种结构示意图;
图5为本发明实施例所提供的文本替换装置的另一种结构示意图。
具体实施方式
为了使本领域普通人员更好地理解本发明的技术方案,下面将结合附图,对本发明实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
以下,对本发明实施例中的部分用语进行解释说明,以便于本领域技术人员理解。
(1)本发明实施例中术语“多个”是指两个或两个以上,其它量词与之类似。
(2)“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
本发明实施例Web前端页面需要满足不同语言用户的需求,则需要Web前端页面进行多语言化展示。Web前端开发的编程语言以及编程框架有很多,常见的Web开发模板格式包括JavaScript(直译式脚本语言)源代码、HTML(Hyper Text Markup Language,超文本标记语言)、JSP(Java Server Pages,java服务器页面)、Vue。其中,上述用JavaScript编程语言编写的文件后缀名为.js,上述三种常见的Web开发模板对应的文件后缀名分别为.html、.jsp、.vue。
在Web前端页面需要进行多语言化展示时,Web前端页面对应的源代码文件中包含多个需要进行多语言展示的文本,本发明实施例给出一种从源代码文件中标记进行多语言展示的文本的方案。
一种可选的实施方式为,在源代码文件中将需要进行多语言展示的文本添加翻译标识;例如,翻译标识可以为_t()。
在本发明实施例中,可以将源代码文件中需要进行多语言展示的文本替换为包含翻译标识的文本。例如,源代码文件中需要进行多语言展示的文本对应的语言为中文,假设需要进行多语言展示的文本为‘中文语句’,则替换后的包含翻译标识的文本为_t(‘中文语句’)。
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种文本替换方法,包括:
步骤S101:在待处理的源代码文件的文件类型为预设类型后,从所述源代码文件中确定需要处理的目标文本;所述目标文本中包含需要进行多语言展示的预设语言。
步骤S102:使用所述待处理的源代码文件的文件类型对应的替换规则对所述目标文本进行替换处理。
其中,本发明实施例源代码文件的预设类型包括但不限于:
JavaScript源代码文件、Html源代码文件、jsp源代码文件、vue源代码文件。
预设语言可以是非拉丁字符的语言,比如中文简体,中文繁体,日语,韩语等。
由上可见,在本发明实施例中,在确定待处理的源代码文件的文件类型为预设类型之后,再找出源代码文件中需要处理的目标文本,且从源代码文件中确定出的目标文本中包含要进行多语言展示的预设语言,并使用文件类型对应的替换规则对确定出的目标文本进行替换。本发明实施例提供了一种从源代码文件中确定包含需要进行多语言展示的预设语言的目标文本的方案,能够快速且准确的从大量的源代码文件中确定出目标文本,相比现有技术中采用人工方式从源代码文件中寻找需要多语言化展示的文本,能够缩短寻找并替换需要多语言化展示文本的周期。使得银行等金融机构的Web应用的开发运维更加高效,保证了银行各种业务运维平台正常使用,从而实现各种业务(如贷款业务、存款业务等)的正常开展。
本发明实施例在待处理的源代码文件的文件类型不同时,从源代码文件中确定目标文本的方式也不相同,下面针对不同类型的源代码文件分别进行说明。
一、待处理的源代码文件为JavaScript源代码文件。
在待处理的源代码文件为JavaScript源代码文件时,根据下列方式从源代码文件中确定需要处理的目标文本:
通过预设的正则表达式对所述源代码文件的内容进行匹配,确定备选的字符串;将所述备选的字符串中包含所述预设语言的字符串作为所述需要处理的目标文本。
实施中,在待处理的源代码文件的文件名的后缀为.js时,确定待处理的源代码文件为JavaScript源代码文件;然后,通过预设的正则表达式对待处理的源代码文件的内容进行匹配,例如,预设的正则表达式可以是:
new RegExp('\\/\\*[\\s\\S]*?\\*\\/|([^:]|^)\\/\\/.*','gm')
该正则表达式可以匹配.js文件里的单行注释和多行注释,各个注释块前后的代码块可视为独立的代码块,在各个独立的代码块中,用正则表达式匹配行内成对出现的单引号、双引号,得到单引号或双引号为起止的字符串,该字符串即为备选的字符串。
在确定出备选的字符串之后,可以采用预设的正则表达式判断备选的字符串中是否包含预设语言,例如,在预设语言为中文简体时,用正则表达式判断备选字符串内是否包含中文简体的字符串。在确定备选的字符串中包含预设语言时,确定该备选字符串为需要处理的目标文本。
需要说明的是,在从待处理的源代码文件中确定备选的字符串使用的预设的正则表达式、与判断备选的字符串中是否包含预设语言使用的预设的正则表达式为不同的正则表达式。
另外,本发明实施例从待处理的源代码文件中可以确定出一个或多个需要处理的目标文本。
从待处理的源代码文件中确定出目标文本后,使用JavaScript源代码文件对应的替换规则对目标文本进行替换处理。
一种可选的实施方式为,替换规则为将目标文本替换为包含翻译标识的文本。
需要说明的是,在确定备选字符串中包含预设语言之后,还需要判断备选字符串的上下文中是否包含翻译标识或保留标识,在确定不包含翻译标识和保留标识之后,将备选字符串替换为包含翻译标识的文本;在确定包含翻译标识或保留标识之后,则保留该备选字符串。
例如,预先设置翻译标识为_t(),预先设置保留标识为_r();
示例的,.js文件对应的替换规则如下:
以单引号或双引号为起止的字符串如‘张三’,则替换规则为添加_t()翻译标识,替换结果为_t(‘张三’);
若字符串的上下文中包含了翻译标识的字符串,如_t(‘李四’),则该字符串;
若字符串的上下文中包含了保留标识的字符串,如_r(‘王五’),则保留该字符串。
如图2所示,本发明实施例在待处理的源代码文件为JavaScript源代码文件时文本替换的完整流程图。
步骤S201:读入待处理的源代码文件;
步骤S202:确定待处理的源代码文件的文件类型为预设类型后,通过预设的正则表达式对源代码文件的内容进行匹配,确定备选的字符串;
其中,预设类型包括JavaScript源代码文件、Html源代码文件、jsp源代码文件、vue源代码文件;
步骤S203:将备选的字符串中包含预设语言的字符串作为需要处理的目标文本;
步骤S204:确定待处理的源代码文件的文件类型对应的替换规则;
步骤S205:使用确定的替换规则对目标文本进行替换处理。
二、待处理的源代码文件为Html源代码文件。
在待处理的源代码文件为Html源代码文件时,根据下列方式从源代码文件中确定需要处理的目标文本:
遍历所述源代码文件中的子节点,得到子节点的属性和/或内容;通过预设的正则表达式确定包含所述预设语言的子节点的属性和/或内容,并将确定出的包含所述预设语言的子节点的属性和/或内容作为所述需要处理的目标文本。
实施中,在待处理的源代码文件的文件名的后缀为.html时,确定待处理的源代码文件为Html源代码文件;然后,通过htmlparser对待处理的源代码文件的内容进行解析,遍历并得到子节点的属性和内容;然后,通过预设的正则表达式找到子节点的属性和内容中包含预设语言的子节点的属性和内容,在确定子节点的属性和内容中包含预设语言时,确定该子节点的属性和内容为需要处理的目标文本。
从待处理的源代码文件中确定出目标文本后,使用Html源代码文件对应的替换规则对目标文本进行替换处理。
由于待处理源代码文件中包含不同类型的子节点,本发明实施例中不同类型的子节点对应的替换规则可能不同;Html源代码文件对应的替换规则中包含不同子节点类型对应的子替换规则。
例如,Html源代码文件对应的替换规则中包含第一子替换规则、第二子替换规则和第三子替换规则;其中常规节点对应的子替换规则为第一子替换规则,style节点和注释节点对应子替换规则为第二子替换规则,脚本节点对应的子替换规则为第三子替换规则。
需要说明的是,本发明实施例的常规节点为Html树中除了style节点、注释节点和脚本节点之外的节点。
在待处理的源代码文件为Html源代码文件时,根据下列方式对目标文本进行替换处理:
根据预先设定的子节点类型和子替换规则的对应关系,确定所述源代码文件中的子节点对应的子替换规则;使用所述子节点对应的子替换规则对所述目标文本进行替换处理。
例如,常规节点对应的第一子替换规则包括但不限于:
1、若目标文本为子节点的内容,则使用{{}}变量表达式以及使用翻译标识(其中,翻译标识可以为_t()标识);
假设目标文本为<i>张三</i>,则替换结果为<i>{{_t('张三')}}</i>。
2、若目标文本为子节点的属性,则使用{{}}变量表达式以及使用_t()标识;
假设目标文本为<i attr="李四"></i>,则替换结果为<i attr="{{_t('李四')}}"></i>。
3、若目标文本为子节点的内容,且子节点的内容中含有预设语言和Html保留字,则按保留字断句之后,每一段按目标文本为子节点的内容的规则处理;
假设目标文本为<i>王五&nbsp;包含保留字</i>,预设语言为中文简体,则替换结果为<i>{{_t('王五')}}&nbsp;{{_t('保留字')}}。
4、若目标文本为子节点的内容,且子节点的内容中含有变量表达式,则将原变量替换为{n},并将变量表达式作为_t的参数传入;
假设目标文本为<i>赵六{{msg}}包含变量</i>,则替换结果为<i>{{_t('赵六{0}包含变量',msg)}}</i>。
5、若目标文本为子节点的属性,且子节点的属性中含有变量表达式,则将原变量替换为{n},并将变量表达式作为_t的参数传入;
假设目标文本为<i prop="属性{{msg}}包含变量"></i>,则替换结果为<iprop="{{_t('属性{0}包含变量',msg)}}"></i>。
6、若目标文本为子节点的属性,且子节点的属性中含有带单引号的字符串,则使用{{}}变量表达式且使用_t()标识;
假设<i prop="'字符串属性'"></i>,则替换结果为<i prop="{{_t('字符串属性')}}"></i>。
style节点和注释节点均对应第二子替换规则,针对style节点和注释节点中遍历得到的内容和属性,保持style节点和注释节点中的内容和属性不变。
脚本节点对应第三子替换规则,第三子替换规则与JavaScript源代码文件对应的替换规则相同。
三、待处理的源代码文件为jsp源代码文件。
在待处理的源代码文件为jsp源代码文件时,根据下列方式从源代码文件中确定需要处理的目标文本:
遍历所述源代码文件中的子节点,得到子节点的属性和/或内容;通过预设的正则表达式确定包含所述预设语言的子节点的属性和/或内容,并将确定出的包含所述预设语言的子节点的属性和/或内容作为所述需要处理的目标文本。
实施中,在待处理的源代码文件的文件名的后缀为.jsp时,确定待处理的源代码文件为jsp源代码文件;然后将jsp源代码文件视为Html树来进行遍历,通过htmlparser对待处理的源代码文件的内容进行解析,遍历并得到子节点的属性和内容;然后,通过预设的正则表达式找到子节点的属性和内容中包含预设语言的子节点的属性和内容,在确定子节点的属性和内容中包含预设语言时,确定该子节点的属性和内容为需要处理的目标文本。
从待处理的源代码文件中确定出目标文本后,使用jsp源代码文件对应的替换规则对目标文本进行替换处理。
由于待处理源代码文件中包含不同类型的子节点,本发明实施例中不同类型的子节点对应的替换规则可能不同;jsp源代码文件对应的替换规则中包含不同子节点类型对应的子替换规则。
例如,jsp源代码文件对应的替换规则中包含第一子替换规则、第二子替换规则和第三子替换规则;其中常规节点对应的子替换规则为第一子替换规则,style节点和注释节点对应子替换规则为第二子替换规则,脚本节点对应的子替换规则为第三子替换规则。
需要说明的是,本发明实施例的常规节点为Html树中除了style节点、注释节点和脚本节点之外的节点。
在待处理的源代码文件为jsp源代码文件时,根据下列方式对目标文本进行替换处理:
根据预先设定的子节点类型和子替换规则的对应关系,确定所述源代码文件中的子节点对应的子替换规则;使用所述子节点对应的子替换规则对所述目标文本进行替换处理。
待处理的源代码文件为jsp源代码文件时,预先设定的子节点类型和子替换规则的对应关系与源代码文件为Html源代码文件时的子节点类型和子替换规则的对应关系相同,在此不再赘述。
四、待处理的源代码文件为vue源代码文件。
在待处理的源代码文件为vue源代码文件时,根据下列方式从源代码文件中确定需要处理的目标文本:
遍历所述源代码文件中的子节点,得到子节点的属性和/或内容;通过预设的正则表达式确定包含所述预设语言的子节点的属性和/或内容,并将确定出的包含所述预设语言的子节点的属性和/或内容作为所述需要处理的目标文本。
实施中,在待处理的源代码文件的文件名的后缀为.vue时,确定待处理的源代码文件为vue源代码文件;然后将vue源代码文件视为Html树来进行遍历,通过htmlparser对待处理的源代码文件的内容进行解析,遍历并得到子节点的属性和内容;然后,通过预设的正则表达式找到子节点的属性和内容中包含预设语言的子节点的属性和内容,在确定子节点的属性和内容中包含预设语言时,确定该子节点的属性和内容为需要处理的目标文本。
从待处理的源代码文件中确定出目标文本后,使用vue源代码文件对应的替换规则对目标文本进行替换处理。
由于待处理源代码文件中包含不同类型的子节点,本发明实施例中不同类型的子节点对应的替换规则可能不同;vue源代码文件对应的替换规则中包含不同子节点类型对应的子替换规则。
例如,vue源代码文件对应的替换规则中包含第一子替换规则、第二子替换规则和第三子替换规则;其中常规节点对应的子替换规则为第一子替换规则,style节点和注释节点对应子替换规则为第二子替换规则,脚本节点对应的子替换规则为第三子替换规则。
需要说明的是,本发明实施例的常规节点为Html树中除了style节点、注释节点和脚本节点之外的节点。
在待处理的源代码文件为vue源代码文件时,根据下列方式对目标文本进行替换处理:
根据预先设定的子节点类型和子替换规则的对应关系,确定所述源代码文件中的子节点对应的子替换规则;使用所述子节点对应的子替换规则对所述目标文本进行替换处理。
例如,常规节点对应的第一子替换规则包括但不限于:
1、若目标文本为子节点的内容,则使用{{}}变量表达式以及使用翻译标识(其中,翻译标识可以为_t()标识);
假设目标文本为<i>张三</i>,则替换结果为<i>{{_t('张三')}}</i>。
2、若目标文本为子节点的属性,则使用{{}}变量表达式以及使用_t()标识;
假设目标文本为<i attr="李四"></i>,则替换结果为<i attr="{{_t('李四')}}"></i>。
3、若目标文本为子节点的属性,且子节点的属性以冒号开始,则使用_t()标识;
假设目标文本为<i:attr="'王五'"></i>,则替换结果为<i:attr="_t('王五')"></i>。
4、若目标文本为子节点的属性,且子节点的属性以v-开始,则使用_t()标识;
假设目标文本为<i v-if="'赵六'"></i>,则替换结果为<i v-if="_t('赵六')"></i>。
5、若目标文本为子节点的内容,且子节点的内容中含有预设语言和Html保留字,则按保留字断句之后,每一段按目标文本为子节点的内容的规则处理;
假设目标文本为<i>钱七&nbsp;包含保留字</i>,预设语言为中文简体,则替换结果为<i>{{_t('钱七')}}&nbsp;{{_t('保留字')}}。
6、若目标文本为子节点的内容,且子节点的内容中含有变量表达式,则将原变量替换为{n},并将变量表达式作为_t的参数传入;
假设目标文本为<i>张三{{msg}}包含变量</i>,则替换结果为<i>{{_t('张三{0}包含变量',msg)}}</i>。
style节点和注释节点均对应第二子替换规则,针对style节点和注释节点中遍历得到的内容和属性,保持style节点和注释节点中的内容和属性不变。
脚本节点对应第三子替换规则,第三子替换规则与JavaScript源代码文件对应的替换规则相同。
如图3所示,本发明实施例在待处理的源代码文件为Html源代码文件、jsp源代码文件或vue源代码文件时文本替换的完整流程图。
步骤S301:读入待处理的源代码文件;
步骤S302:确定待处理的源代码文件的文件类型为预设类型后,遍历源代码文件中的子节点,得到子节点的属性和/或内容;
其中,预设类型包括JavaScript源代码文件、Html源代码文件、jsp源代码文件、vue源代码文件;
步骤S303:通过预设的正则表达式确定包含所述预设语言的子节点的属性和/或内容;
步骤S304:将确定出的包含预设语言的子节点的属性和/或内容作为需要处理的目标文本;
步骤S305:根据预先设定的子节点类型和子替换规则的对应关系,确定待处理的源代码文件中的子节点对应的子替换规则;
步骤S306:使用确定的子替换规则对目标文本进行替换处理。
基于同一发明构思,本发明实施例中还提供了一种文本替换装置,由于该装置对应的是本发明实施例文本替换方法对应的装置,并且该装置解决问题的原理与该方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。
如图4所示,为本发明实施例提供的一种文本替换装置结构示意图,该装置包括:确定模块401和处理模块402;
确定模块401,用于在待处理的源代码文件的文件类型为预设类型后,从所述源代码文件中确定需要处理的目标文本;所述目标文本中包含需要进行多语言展示的预设语言;
处理模块402,用于使用所述待处理的源代码文件的文件类型对应的替换规则对所述目标文本进行替换处理。
可选地,所述确定模块401还用于:
通过预设的正则表达式对所述源代码文件的内容进行匹配,确定备选的字符串;将所述备选的字符串中包含所述预设语言的字符串作为所述需要处理的目标文本。
可选地,所述确定模块401还用于:
遍历所述源代码文件中的子节点,得到子节点的属性和/或内容;通过预设的正则表达式确定包含所述预设语言的子节点的属性和/或内容,并将确定出的包含所述预设语言的子节点的属性和/或内容作为所述需要处理的目标文本。
可选地,所述处理模块402还用于:
根据预先设定的子节点类型和子替换规则的对应关系,确定所述源代码文件中的子节点对应的子替换规则;使用所述子节点对应的子替换规则对所述目标文本进行替换处理。
可选地,所述子节点为脚本节点时,所述脚本节点对应的子替换规则与javascript源代码文件对应的替换规则相同。
如图5所示,为本发明实施例提供的一种文本替换设备结构示意图,该设备500包括:存储器501以及处理器502,所述处理器502,用于调用所述存储器501中存储的程序指令,执行上述文本替换的方法。
比如,示例的,所述处理器502可以从待处理的源代码文件中确定需要处理的目标文本,然后使用所述待处理的源代码文件的文件类型对应的替换规则对所述目标文本进行替换处理。
在本发明实施例中,处理器可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
在本发明实施例中,存储器可以是非易失性存储器,比如硬盘(hard diskdrive,HDD)或固态硬盘(solid-state drive,SSD)等,还可以是易失性存储器(volatilememory),例如随机存取存储器(random-access memory,RAM)。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本发明实施例中的存储器还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。本发明实施例中不限定上述存储器以及处理器之间的具体连接介质,比如总线,总线可以分为地址总线、数据总线、控制总线等。
进一步地,本发明实施例还提供一种文本替换的可读存储介质,包括程序代码,当所述程序代码在计算设备上运行时,所述程序代码用于使所述计算设备执行文本替换方法的步骤。
以上参照示出根据本发明实施例的方法、装置(系统)和/或计算机程序产品的框图和/或流程图描述本发明。应理解,可以通过计算机程序指令来实现框图和/或流程图示图的一个块以及框图和/或流程图示图的块的组合。可以将这些计算机程序指令提供给通用计算机、专用计算机的处理器和/或其它可编程数据处理装置,以产生机器,使得经由计算机处理器和/或其它可编程数据处理装置执行的指令创建用于实现框图和/或流程图块中所指定的功能/动作的方法。
相应地,还可以用硬件和/或软件(包括固件、驻留软件、微码等)来实施本发明。更进一步地,本发明可以采取计算机可使用或计算机可读存储介质上的计算机程序产品的形式,其具有在介质中实现的计算机可使用或计算机可读程序代码,以由指令执行系统来使用或结合指令执行系统而使用。在本发明上下文中,计算机可使用或计算机可读介质可以是任意介质,其可以包含、存储、通信、传输、或传送程序,以由指令执行系统、装置或设备使用,或结合指令执行系统、装置或设备使用。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (6)

1.一种文本替换方法,其特征在于,该方法包括:
在待处理的源代码文件的文件类型为预设类型后,从所述源代码文件中确定需要处理的目标文本;所述目标文本中包含需要进行多语言展示的预设语言;
使用所述待处理的源代码文件的文件类型对应的替换规则对所述目标文本进行替换处理;
若所述待处理的源代码文件为JavaScript源代码文件,则所述从所述源代码文件中确定需要处理的目标文本,包括:
通过预设的正则表达式对所述源代码文件的内容进行匹配,确定备选的字符串;
将所述备选的字符串中包含所述预设语言的字符串作为所述需要处理的目标文本;
若所述源代码文件为Html源代码文件、jsp源代码文件或者vue源代码文件,则所述从所述源代码文件中确定需要处理的目标文本,包括:
遍历所述源代码文件中的子节点,得到子节点的属性和/或内容;
通过预设的正则表达式确定包含所述预设语言的子节点的属性和/或内容,并将确定出的包含所述预设语言的子节点的属性和/或内容作为所述需要处理的目标文本;
若所述待处理的源代码文件为JavaScript源代码文件,则所述待处理的源代码文件的文件类型对应的替换规则为将所述目标文本替换为包含翻译标识的文本;
若所述源代码文件为Html源代码文件、jsp源代码文件或者vue源代码文件,则所述待处理的源代码文件的文件类型对应的替换规则中包含不同子节点类型对应的子替换规则;
所述使用所述待处理的源代码文件的文件类型对应的替换规则对所述目标文本进行替换处理,包括:
根据预先设定的子节点类型和子替换规则的对应关系,确定所述源代码文件中的子节点对应的子替换规则;使用所述子节点对应的子替换规则对所述目标文本进行替换处理。
2.如权利要求1所述的方法,其特征在于,所述子节点为脚本节点时,所述脚本节点对应的子替换规则与javascript源代码文件对应的替换规则相同。
3.一种文本替换装置,其特征在于,该装置包括:
确定模块,用于在待处理的源代码文件的文件类型为预设类型后,从所述源代码文件中确定需要处理的目标文本;所述目标文本中包含需要进行多语言展示的预设语言;
处理模块,用于使用所述待处理的源代码文件的文件类型对应的替换规则对所述目标文本进行替换处理;
若所述待处理的源代码文件为JavaScript源代码文件,则所述确定模块具体用于:
通过预设的正则表达式对所述源代码文件的内容进行匹配,确定备选的字符串;将所述备选的字符串中包含所述预设语言的字符串作为所述需要处理的目标文本;
若所述源代码文件为Html源代码文件、jsp源代码文件或者vue源代码文件,则所述确定模块具体用于:
遍历所述源代码文件中的子节点,得到子节点的属性和/或内容;通过预设的正则表达式确定包含所述预设语言的子节点的属性和/或内容,并将确定出的包含所述预设语言的子节点的属性和/或内容作为所述需要处理的目标文本;
若所述待处理的源代码文件为JavaScript源代码文件,则所述待处理的源代码文件的文件类型对应的替换规则为将所述目标文本替换为包含翻译标识的文本;
若所述源代码文件为Html源代码文件、jsp源代码文件或者vue源代码文件,则所述待处理的源代码文件的文件类型对应的替换规则中包含不同子节点类型对应的子替换规则;
所述处理模块具体用于:
根据预先设定的子节点类型和子替换规则的对应关系,确定所述源代码文件中的子节点对应的子替换规则;使用所述子节点对应的子替换规则对所述目标文本进行替换处理。
4.如权利要求3所述的装置,其特征在于,所述子节点为脚本节点时,所述脚本节点对应的子替换规则与javascript源代码文件对应的替换规则相同。
5.一种文本替换设备,其特征在于,该设备包括:
存储器以及处理器;
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行权利要求1~2任一项所述的方法。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行权利要求1~2中任一项所述的方法。
CN201910569872.2A 2019-06-27 2019-06-27 一种文本替换方法、装置及设备 Active CN110275712B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910569872.2A CN110275712B (zh) 2019-06-27 2019-06-27 一种文本替换方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910569872.2A CN110275712B (zh) 2019-06-27 2019-06-27 一种文本替换方法、装置及设备

Publications (2)

Publication Number Publication Date
CN110275712A CN110275712A (zh) 2019-09-24
CN110275712B true CN110275712B (zh) 2023-05-12

Family

ID=67963555

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910569872.2A Active CN110275712B (zh) 2019-06-27 2019-06-27 一种文本替换方法、装置及设备

Country Status (1)

Country Link
CN (1) CN110275712B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111638907A (zh) * 2020-04-20 2020-09-08 北京达佳互联信息技术有限公司 第三方代码片段的替换方法、装置、终端及存储介质
CN112199962A (zh) * 2020-09-30 2021-01-08 京东数字科技控股股份有限公司 代码处理方法、装置、计算机设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1510569A (zh) * 2002-12-23 2004-07-07 华为技术有限公司 一种源代码中硬编码字符串的提取和集中方法
CN104391730A (zh) * 2014-08-03 2015-03-04 浙江网新恒天软件有限公司 一种软件源码语言翻译系统及方法
CN104899010A (zh) * 2014-03-04 2015-09-09 北京金山云网络技术有限公司 源代码的多语言化方法及系统
CN105094941A (zh) * 2015-09-24 2015-11-25 深圳市捷顺科技实业股份有限公司 一种实现多语言的方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6986101B2 (en) * 1999-05-06 2006-01-10 International Business Machines Corporation Method and apparatus for converting programs and source code files written in a programming language to equivalent markup language files

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1510569A (zh) * 2002-12-23 2004-07-07 华为技术有限公司 一种源代码中硬编码字符串的提取和集中方法
CN104899010A (zh) * 2014-03-04 2015-09-09 北京金山云网络技术有限公司 源代码的多语言化方法及系统
CN104391730A (zh) * 2014-08-03 2015-03-04 浙江网新恒天软件有限公司 一种软件源码语言翻译系统及方法
CN105094941A (zh) * 2015-09-24 2015-11-25 深圳市捷顺科技实业股份有限公司 一种实现多语言的方法及装置

Also Published As

Publication number Publication date
CN110275712A (zh) 2019-09-24

Similar Documents

Publication Publication Date Title
JP7223785B2 (ja) 時系列ナレッジグラフ生成方法、装置、デバイス及び媒体
US9767095B2 (en) Apparatus, system, and method for computer aided translation
US9594788B2 (en) Displaying logical statement relationships between diverse documents in a research domain
WO2022218186A1 (zh) 个性化知识图谱的生成方法、装置及计算机设备
US10922614B2 (en) Converting procedural text to an actionable knowledge form
CN108595171B (zh) 对象的模型生成方法、装置、设备及存储介质
CN111831384B (zh) 语言切换方法和装置、设备及存储介质
US9817887B2 (en) Universal text representation with import/export support for various document formats
WO2021174864A1 (zh) 基于少量训练样本的信息抽取方法及装置
Way et al. On the Role of Translations in State‐of‐the‐Art Statistical Machine Translation
CN111656453A (zh) 用于信息提取的层次实体识别和语义建模框架
CN110275712B (zh) 一种文本替换方法、装置及设备
CN112527291A (zh) 网页生成方法、装置、电子设备及存储介质
US9158748B2 (en) Correction of quotations copied from electronic documents
Pinnis et al. Tilde MT platform for developing client specific MT solutions
Rakhimova et al. Complex technology of machine translation resources extension for the Kazakh language
US20180011833A1 (en) Syntax analyzing device, learning device, machine translation device and storage medium
CN111443979B (zh) 文档处理方法、装置、计算机设备及存储介质
CN114154092B (zh) 用于对网页进行翻译的方法及其相关产品
CN110618809B (zh) 一种前端网页输入约束提取方法和装置
CN113792557A (zh) 语言文件的生成方法和装置
CN113778594A (zh) 一种多语言应用程序包生成方法及系统
CN114168189A (zh) 一种Vue项目代码的翻译方法、设备及介质
JP2020118891A (ja) 学習システム
Tu et al. Using bitext mining to identify translated material: practical assessment and new applications

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant