本申请涉及软件应用开发领域,特别是涉及基于界面自动支持多语言的开发方法、系统、电子设备。
背景技术:
:在软件应用开发领域,用户界面多语言是非常普遍的需求,多语言用户界面指的是一个应用的用户交互界面(ui),可以根据用户的语言环境或用户的设置,自动显示对应语言文字。用户界面多语言是软件开发中比较常见的范畴,一般来说,通过编写代码,在资源库中添加对应的资源项,产生资源id,然后在使用资源id来编写程序代码,这样做的缺点是会造成大量额外的工作量。目前针对相关技术中工作量巨大的问题,尚未提出有效的解决方案。技术实现要素:本申请实施例提供了一种基于界面自动支持多语言的开发方法、系统和电子设备,通过代码转化以至少解决相关技术中大工作量的问题,着重于简化,自动化开发一个多语言应用的工作流程,减少工作量,大幅提高开发效率。第一方面,本申请实施例提供了一种基于界面自动支持多语言的开发方法,包括以下步骤:中文字符串获取步骤,扫描一界面文件所在目录,获取对应界面的中文字符串;代码转化步骤,判断所述中文字符串是否存在于一资源库内,若存在,则返回对应的资源id,并通过t函数进行代码转化;若不存在,基于所述中文字符串生成新资源id并写入所述资源库,根据一外部资源库,补充所述中文字符串的对应文本项至所述资源库,并通过所述t函数进行代码转化。在其中一些实施例中,所述t函数包括第一参数和第二参数,所述第一参数指代所述中文字符串,所述第二参数指代资源id,所述t函数从所述资源库中查找所述资源id对应语言的字符串并返回。在其中一些实施例中,所述中文字符串获取步骤和所述代码转化步骤之间还包括一例外情况判断步骤:根据预先设定的代码形式,判断并自动忽略符合所述代码形式的所述中文字符串。在其中一些实施例中,所述代码转化步骤中当所述中文字符串不存在于所述资源库时,csv文件生成步骤,搜索所述外部资源库,获取新添加的资源项,并生成csv文件;自动翻译步骤,通过一翻译接口自动翻译所述资源项,并将翻译结果写回所述csv文件;资源库更新步骤,人工审核翻译结果后,将确认后的所述csv文件更新至所述资源库。在其中一些实施例中,所述代码转化步骤中所述生成新资源id的过程中,根据所述中文字符串利用一预设规则自动生成所述新资源id,并更新至所述资源库;所述预设规则包括界面文件目录名 界面文件名 中文拼音首字母 序号。在其中一些实施例中,所述中文字符串获取步骤包括:通过一正则表达式和一抽象语法树处理所述界面文件所在目录的源代码,并输出所有所述中文字符串。第二方面,本申请实施例提供了一种基于界面自动支持多语言的开发系统,应用上述第一方面所述的基于界面自动支持多语言的开发系统,包括:中文字符串获取模块,扫描一界面文件所在目录,获取对应界面的中文字符串;代码转化模块,判断所述中文字符串是否存在于一资源库内,若存在,则返回对应的资源id,并通过t函数进行代码转化;若不存在,基于所述中文字符串生成新资源id并写入所述资源库,根据一外部资源库,补充所述中文字符串的对应文本项至所述资源库,并通过所述t函数进行代码转化。在其中一些实施例中,所述中文字符串获取模块和所述代码转化模块之间还连接有一例外情况判断模块,所述例外情况判断模块根据预先设定的代码形式,判断并自动忽略符合所述代码形式的所述中文字符串。在其中一些实施例中,所述代码转化模块包括:csv文件生成单元,搜索所述外部资源库,获取新添加的资源项,并生成csv文件;自动翻译单元,通过一翻译接口自动翻译所述资源项,并将翻译结果写回所述csv文件;资源库更新单元,人工审核翻译结果后,将确认后的所述csv文件更新至所述资源库;资源id生成单元,根据所述中文字符串利用一预设规则自动生成所述新资源id,并更新至所述资源库,所述预设规则为界面文件目录名 界面文件名 中文拼音首字母 序号。第三方面,本申请实施例提供了一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的基于界面自动支持多语言的开发方法。相比于相关技术,本申请实施例提供的基于界面自动支持多语言的开发方法、系统和电子设备,通过代码转化,解决了现有技术中巨大工作量的问题,实现了多语言的自动查找及替换。本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。附图说明此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1是根据本申请实施例的基于界面自动支持多语言的开发方法的流程图;图2是根据本申请实施例的代码转化步骤的流程图;图3是根据本申请优选实施例的基于界面自动支持多语言的开发方法的流程图;图4是根据本申请实施例的基于界面自动支持多语言的开发系统的结构框图;图5为根据本申请实施例的电子设备的硬件结构示意图。附图说明:1、中文字符串获取模块;2、代码转化模块;21、csv文件生成单元;22、自动翻译单元;23、资源库更新单元;24、资源id生成单元;81、处理器;82、存储器;83、通信接口;80、总线。具体实施方式为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属
技术领域:
内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。本发明的目标是最小化多语言界面开发的工作量,使得开发多语言界面的工作和开发单一语言界面的工作量接近。对于一个从未安装多语言考量开发的应用界面可以自动转换或最小改动,来支持多语言。基于上述目的,本实施例提供了一种基于界面自动支持多语言的开发方法。图1是根据本申请实施例的基于界面自动支持多语言的开发方法的流程图,如图1所示,该流程包括如下步骤:中文字符串获取步骤s1,扫描一界面文件所在目录,获取对应界面的中文字符串;代码转化步骤s2,判断中文字符串是否存在于一资源库内,若存在,则返回对应的资源id,并通过t函数进行代码转化;若不存在,基于中文字符串生成新资源id并写入资源库,根据一外部资源库补充中文字符串的对应文本项至资源库,并通过t函数进行代码转化。通过上述步骤,扫描界面文件所在目录而非整个项目,配合将中文字符串转化为t函数,即,代码转化,自动支持多语言的同时可以减少多语言开发的工作量;还支持陈旧项目,具有灵活性,对于已有单一语言开发应用也能实现转化。代码转化是把所有中文字符串替换成一个t函数。当在代码里有一个中文字符串,经检测该字符串是用于显示,那么在多语言环境应该显示不同的文字。则我们用t函数来代替这个字符串。这个字符串作为t函数的一个输入参数。当是中文环境,t函数直接返回输入的字符串。如果是英语环境,则t函数查找语言资源包里面对应语言的字符串返回。当然代码转化不仅包括t函数的应用,还包括语言资源库的自动添加,翻译,更新。需要说明的是,本方法虽然专注于web应用界面的开发,但是,实际上其原理可应用到任何主流平台的界面开发,也支持其他非英语言界面自动多语言(英语界面应用由于不容易分辨界面文字和程序代码)。在实际的应用中,界面文件可以是web应用界面文件,web应用界面文件一般有固有的保存形式,如aspx、jsp、react、jsx、uve模板文件和小程序wxml,代码在组织上也是存放在一起的,所以不必扫描整个项目,扫描界面文件所在目录可缩小处理范围,进而减少整体的运算量。上述资源库可能以文件或数据库的形式存放,大致有如下结构:idzhenjpmould.esource_id项目project...abc姓名name...123年龄age...其中id必须是唯一的,id在代码中被使用表示某个文字项,之后的每一列表示该文字在某种语言中的文本。在用户界面的程序代码中,使用的都是“资源id”而不是对应的文字,例如:在中文界面程序(伪代码)中显示“姓名”,对应多语言的写法为显示“abc”,在代码运行时,会使用“abc”去资源库中查找对应语言的文字,并返回显示,从而达到多语言支持的效果。在其中一些实施例中,t函数包括第一参数和第二参数,第一参数指代中文字符串,第二参数指代资源id,t函数从资源库中查找资源id对应语言的字符串并返回。在实际的应用中,t函数用于返回需要显示的文本,接收两个参数,第一参数指代中文字符串(或其他需要转换的非英文文本),第一参数是必须设置的,不可缺的,第二参数指代资源id,第二参数为可选设置的。t函数中,当只有第一参数时,返回第一参数的内容,当存在第二参数时,从资源库中查找对应语言的文本项返回。t函数的内部可以获得当前显示的语言环境,当代码分离不彻底导致t函数无法获取当前的语言环境的时候,可以根据需要增设第三参数,表示当前语言。还可以在编写代码的过程中直接用t函数,在代码扫描流程中自动添加第二参数。在其中一些实施例中,中文字符串获取步骤和代码转化步骤之间还包括一例外情况判断步骤:根据预先设定的代码形式,判断中文字符串,并自动忽略符合代码形式的中文字符串。在实际的应用中,某些情况下代码里的中文字符是参与到计算中或其他情况下,该中文字符串不应该被处理,可以约定一些规则令扫描程序忽略这些情况,例如,在代码中增加某种形式的注释://skip_varsvar1var2当扫描到的中文字符串属于变量var1或var2则忽略该中文字符串。且,之前已经处理过的文本项(已经替换成t函数的),也不会被处理。图2是根据本申请实施例的代码转化步骤的流程图,如图2所示,在其中一些实施例中,代码转化步骤s2中当中文字符串不存在于资源库时,包括以下步骤:csv文件生成步骤s21,搜索外部资源库,获取新添加的资源项,并生成一个csv文件;自动翻译步骤s22,通过一翻译接口自动翻译所述资源项,并将翻译结果写回所述csv文件;资源库更新步骤s23,人工审核翻译结果后,并将确认后的csv文件更新至资源库。在实际的应用中,生成csv文件的目的是为了方便人工介入,通过检查提高翻译的准确性。csv文件的结构包括:id,zh,en,jp,...,其中,非中文列是空白,表示还没有找到对应的翻译项。通过设置上述步骤,使得本方法存在足够的灵活性,提供额外情况支持,人工干预的可能,避免了由于资源库内容不足所导致的无法转化的情况,通过加入人工干预,提高了转化的准确率。在其中一些实施例中,代码转化步骤中生成新资源id的过程中,根据中文字符串利用预设规则自动生成新资源id,并更新至资源库;预设规则为界面文件目录名 界面文件名 中文拼音首字母 序号。在实际的应用中,将查找出的所有中文字符串与已有的资源库进行对比。如果中文字符串已经在资源库中,则获得资源id,并通过t函数返回对应语言的文本项;如果不在资源库中,代表此中文字符串为新的字眼,生成新的资源id,以保证资源id的唯一,使用预设的规则自动生成,规则设置的格式为:界面文件目录名、界面文件名、中文拼音首字母和序号,生成后更新至资源库中国。在其中一些实施例中,中文字符串获取步骤包括:通过一正则表达式和一抽象语法树处理界面文件所在目录的源代码,并输出所有中文字符串。正则表达式,又称规则表达式。(英语:regularexpression,在代码中常简写为regex、regexp或re),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个"规则字符串",这个"规则字符串"用来表达对字符串的一种过滤逻辑。正则表达式是一种文本模式,该模式描述在搜索文本时要匹配的一个或多个字符串。抽象语法树(abstractsyntaxtree,ast),或简称语法树(syntaxtree),是源代码语法结构的一种抽象表示。它以树状的形式表现编程语言的语法结构,树上的每个节点都表示源代码中的一种结构。之所以说语法是"抽象"的,是因为这里的语法并不会表示出真实语法中出现的每个细节。比如,嵌套括号被隐含在树的结构中,并没有以节点的形式呈现;而类似于if-condition-then这样的条件跳转语句,可以使用带有两个分支的节点来表示。语法分析(英语:syntacticanalysis,也叫parsing)是根据某种给定的形式文法对由单词序列(如英语单词序列)构成的输入文本进行分析并确定其语法结构的一种过程。下面通过优选实施例对本申请实施例进行描述和说明。图3是根据本申请优选实施例的基于界面自动支持多语言的开发方法的流程图。s301,扫描界面代码文件扫描界面文件所在目录。s302,找出所有的中文字符串,并进行例外情况剔除利用正则表达式和抽象语法树(ast)处理源代码找出所有的中文字符串。定义一些规则让扫描程序忽略不应该被处理的中文字符串,如在代码里增加某种形式注释://skip_varsvar1var2预定扫描到中文字符串属于变量var1或var2则忽略。之前已经处理过的文本项(已经替换成t函数,后述),也不应该被处理。s303,匹配资源库把这些中文字符串,去对比已有资源库:如已经在资源库,则获得资源id:如不在资源库,生成新的资源id,使用文件目录名 文件名 中文拼音首字母 序号的规则自动生成,生成后,添加更新到资源库。s304,把文本替换为t函数依然使用正则表达式和抽象语法树把中文字符串替换为一个t函数,返回对应的文本项。如,文本是“年龄”则替换为t(“年龄”,”资源id”),返回资源id对应的文本项。上述步骤可以批量处理很多代码文件。该步骤执行完后,web应用界面的表现形式跟未处理的状况是一致的,即在外语环境没有变化。因为新增多语言资源库条目没有翻译。s305,更新资源库当发现一个中文字符串在资源库中不存在时,执行本步骤,添加一个条目,该条目只有中文形式。s3051,生成新资源csv搜索外部资源库,找出新添加的资源项(没有多语言翻译),生成一个csv文件;s3052,自动翻译通过翻译接口调用翻译引擎,如百度翻译,必应翻译或其他专业翻译引擎,把缺失的语言项填充;s3053,人工审核人工查看csv文件,通过人工介入,查看翻译结果,并修改存在问题的翻译结果;s3054,导入资源库把翻译后的csv文件,更新入资源库。设置s3051-s3054的主要目的是翻译资源库中未被翻译的条目,通过找出未翻译条目->导出成csv文件->用翻译接口自动翻译,写回csv文件->人工审核翻译结果->导入回资源库,该流程执行后,web应用界面在外语环境就会显示对应的外语文字。需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。本实施例还提供了一种基于界面自动支持多语言的开发系统,该系统用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图4是根据本申请实施例的基于界面自动支持多语言的开发系统的结构框图,如图4所示,该系统包括:中文字符串获取模块1,扫描一界面文件所在目录,获取对应界面的中文字符串;代码转化模块2,判断中文字符串是否存在于一资源库内,若存在,则返回对应的资源id,并通过t函数进行代码转化;若不存在,基于中文字符串生成新资源id并写入资源库,根据一外部资源库补充中文字符串的对应文本项至资源库,并通过t函数进行代码转化。在实际的应用中,中文字符串获取模型通过一正则表达式和一抽象语法树处理界面文件所在目录的源代码,并输出所有中文字符串。上述t函数包括第一参数和第二参数,第一参数指代中文字符串,第二参数指代资源id,通过t函数从资源库中查找资源id对应语言的字符串并返回。在其中一些实施例中,中文字符串获取模块和代码转化模块之间还连接有一例外情况判断模块,例外情况判断模块根据预先设定的代码形式,判断中文字符串,并自动忽略符合代码形式的中文字符串。在其中一些实施例中,代码转化模块2包括:csv文件生成单元21,搜索外部资源库,获取新添加的资源项,并生成一个csv文件;自动翻译单元22,通过一翻译接口自动翻译所述资源项,并将翻译结果写回所述csv文件;资源库更新单元23,人工审核翻译结果后,并将确认后的csv文件更新至资源库;资源id生成单元24,根据中文字符串利用预设规则自动生成新资源id,并更新至资源库,预设规则为界面文件目录名 界面文件名 中文拼音首字母 序号。需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。另外,结合图1描述的本申请实施例基于界面自动支持多语言的开发方法可以由电子设备来实现。图5为根据本申请实施例的电子设备的硬件结构示意图。电子设备可以包括处理器81以及存储有计算机程序指令的存储器82。具体地,上述处理器81可以包括中央处理器(cpu),或者特定集成电路(applicationspecificintegratedcircuit,简称为asic),或者可以被配置成实施本申请实施例的一个或多个集成电路。其中,存储器82可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器82可包括硬盘驱动器(harddiskdrive,简称为hdd)、软盘驱动器、固态驱动器(solidstatedrive,简称为ssd)、闪存、光盘、磁光盘、磁带或通用串行总线(universalserialbus,简称为usb)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器82可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器82可在数据处理装置的内部或外部。在特定实施例中,存储器82是非易失性(non-volatile)存储器。在特定实施例中,存储器82包括只读存储器(read-onlymemory,简称为rom)和随机存取存储器(randomaccessmemory,简称为ram)。在合适的情况下,该rom可以是掩模编程的rom、可编程rom(programmableread-onlymemory,简称为prom)、可擦除prom(erasableprogrammableread-onlymemory,简称为eprom)、电可擦除prom(electricallyerasableprogrammableread-onlymemory,简称为eeprom)、电可改写rom(electricallyalterableread-onlymemory,简称为earom)或闪存(flash)或者两个或更多个以上这些的组合。在合适的情况下,该ram可以是静态随机存取存储器(staticrandom-accessmemory,简称为sram)或动态随机存取存储器(dynamicrandomaccessmemory,简称为dram),其中,dram可以是快速页模式动态随机存取存储器(fastpagemodedynamicrandomaccessmemory,简称为fpmdram)、扩展数据输出动态随机存取存储器(extendeddateoutdynamicrandomaccessmemory,简称为edodram)、同步动态随机存取内存(synchronousdynamicrandom-accessmemory,简称sdram)等。存储器82可以用来存储或者缓存需要处理和/或通信使用的各种数据文件,以及处理器81所执行的可能的计算机程序指令。处理器81通过读取并执行存储器82中存储的计算机程序指令,以实现上述实施例中的任意一种基于界面自动支持多语言的开发方法。在其中一些实施例中,电子设备还可包括通信接口83和总线80。其中,如图5所示,处理器81、存储器82、通信接口83通过总线80连接并完成相互间的通信。通信接口83用于实现本申请实施例中各模块、装置、单元和/或设备之间的通信。通信端口83还可以实现与其他部件例如:外接设备、图像/数据采集设备、数据库、外部存储以及图像/数据处理工作站等之间进行数据通信。总线80包括硬件、软件或两者,将电子设备的部件彼此耦接在一起。总线80包括但不限于以下至少之一:数据总线(databus)、地址总线(addressbus)、控制总线(controlbus)、扩展总线(expansionbus)、局部总线(localbus)。举例来说而非限制,总线80可包括图形加速接口(acceleratedgraphicsport,简称为agp)或其他图形总线、增强工业标准架构(extendedindustrystandardarchitecture,简称为eisa)总线、前端总线(frontsidebus,简称为fsb)、超传输(hypertransport,简称为ht)互连、工业标准架构(industrystandardarchitecture,简称为isa)总线、无线带宽(infiniband)互连、低引脚数(lowpincount,简称为lpc)总线、存储器总线、微信道架构(microchannelarchitecture,简称为mca)总线、外围组件互连(peripheralcomponentinterconnect,简称为pci)总线、pci-express(pci-x)总线、串行高级技术附件(serialadvancedtechnologyattachment,简称为sata)总线、视频电子标准协会局部(videoelectronicsstandardsassociationlocalbus,简称为vlb)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线80可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。该电子设备可以基于获取到的中文字符串,执行本申请实施例中的基于界面自动支持多语言的开发方法,从而实现结合图1描述的基于界面自动支持多语言的开发方法。另外,结合上述实施例中的基于界面自动支持多语言的开发方法,本申请实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种基于界面自动支持多语言的开发方法。以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。当前第1页1 2 3 
技术特征:1.一种基于界面自动支持多语言的开发方法,其特征在于,包括以下步骤:
中文字符串获取步骤,扫描一界面文件所在目录,获取对应界面的中文字符串;
代码转化步骤,判断所述中文字符串是否存在于一资源库内,若存在,则返回对应的资源id,并通过t函数进行代码转化;若不存在,基于所述中文字符串生成新资源id并写入所述资源库,根据一外部资源库补充所述中文字符串的对应文本项至所述资源库,并通过所述t函数进行代码转化。
2.根据权利要求1所述的基于界面自动支持多语言的开发方法,其特征在于,所述t函数包括第一参数和第二参数,所述第一参数指代所述中文字符串,所述第二参数指代资源id,所述t函数从所述资源库中查找所述资源id对应语言的字符串并返回。
3.根据权利要求1所述的基于界面自动支持多语言的开发方法,其特征在于,所述中文字符串获取步骤和所述代码转化步骤之间还包括一例外情况判断步骤:
根据预先设定的代码形式,判断并自动忽略符合所述代码形式的所述中文字符串。
4.根据权利要求1所述的基于界面自动支持多语言的开发方法,其特征在于,所述代码转化步骤中当所述中文字符串不存在于所述资源库时,包括以下步骤:
csv文件生成步骤,搜索所述外部资源库,获取新添加的资源项,并生成csv文件;
自动翻译步骤,通过一翻译接口自动翻译所述资源项,并将翻译结果写回所述csv文件;
资源库更新步骤,人工审核翻译结果后,将确认后的所述csv文件更新至所述资源库。
5.根据权利要求1所述的基于界面自动支持多语言的开发方法,其特征在于,所述代码转化步骤中所述生成新资源id的过程中,根据所述中文字符串利用一预设规则自动生成所述新资源id,并更新至所述资源库;
所述预设规则为界面文件目录名 界面文件名 中文拼音首字母 序号。
6.根据权利要求1所述的基于界面自动支持多语言的开发方法,其特征在于,所述中文字符串获取步骤包括:
通过一正则表达式和一抽象语法树处理所述界面文件所在目录的源代码,并输出所有所述中文字符串。
7.一种基于界面自动支持多语言的开发系统,应用上述权利要求1-5任意一项所述的基于界面自动支持多语言的开发系统,其特征在于,包括:
中文字符串获取模块,扫描一界面文件所在目录,获取对应界面的中文字符串;
代码转化模块,判断所述中文字符串是否存在于一资源库内,若存在,则返回对应的资源id,并通过t函数进行代码转化;若不存在,基于所述中文字符串生成新资源id并写入所述资源库,根据一外部资源库补充所述中文字符串的对应文本项至所述资源库,并通过所述t函数进行代码转化。
8.根据权利要求7所述的基于界面自动支持多语言的开发系统,其特征在于,所述中文字符串获取模块和所述代码转化模块之间还连接有一例外情况判断模块,所述例外情况判断模块根据预先设定的代码形式,判断并自动忽略符合所述代码形式的所述中文字符串。
9.根据权利要求7所述的基于界面自动支持多语言的开发系统,其特征在于,所述代码转化模块包括:
csv文件生成单元,搜索所述外部资源库,获取新添加的资源项,并生成csv文件;
自动翻译单元,通过一翻译接口自动翻译所述资源项,并将翻译结果写回所述csv文件;
资源库更新单元,人工审核翻译结果后,将确认后的所述csv文件更新至所述资源库;
资源id生成单元,根据所述中文字符串利用一预设规则自动生成所述新资源id,并更新至所述资源库,所述预设规则为界面文件目录名 界面文件名 中文拼音首字母 序号。
10.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6中任一项所述的基于界面自动支持多语言的开发方法。
技术总结本申请涉及一种基于界面自动支持多语言的开发方法、系统和电子设备,其中,该包括:中文字符串获取步骤,扫描一界面文件所在目录,获取对应界面的中文字符串;代码转化步骤,判断中文字符串是否存在于一资源库内,若存在,则返回对应的资源id,并通过t函数进行代码转化;若不存在,基于中文字符串生成新资源id并写入资源库,基于一外部资源库,补充中文字符串的对应文本至资源库,通过t函数进行代码转化。本申请通过代码转化,解决了现有技术中巨大工作量的问题,实现了多语言的自动查找及替换。
技术研发人员:朱炜峰
受保护的技术使用者:恩亿科(北京)数据科技有限公司
技术研发日:2020.12.16
技术公布日:2021.03.12