CN116943232B - 一种应用程序的全球化处理方法及设备 - Google Patents
一种应用程序的全球化处理方法及设备 Download PDFInfo
- Publication number
- CN116943232B CN116943232B CN202310763335.8A CN202310763335A CN116943232B CN 116943232 B CN116943232 B CN 116943232B CN 202310763335 A CN202310763335 A CN 202310763335A CN 116943232 B CN116943232 B CN 116943232B
- Authority
- CN
- China
- Prior art keywords
- language
- text
- language text
- file
- resources
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 15
- 238000012545 processing Methods 0.000 title abstract description 17
- 238000000034 method Methods 0.000 claims abstract description 51
- 238000013519 translation Methods 0.000 claims abstract description 40
- 230000000694 effects Effects 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 14
- 230000008569 process Effects 0.000 abstract description 12
- 238000011161 development Methods 0.000 abstract description 10
- 238000006243 chemical reaction Methods 0.000 abstract description 3
- 238000013461 design Methods 0.000 abstract description 2
- 238000001514 detection method Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000011160 research Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000004888 barrier function Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000009795 derivation Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000004321 preservation Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 208000001491 myopia Diseases 0.000 description 1
- 230000004379 myopia Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/77—Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/263—Language identification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/40—Processing or translation of natural language
- G06F40/58—Use of machine translation, e.g. for multi-lingual retrieval, for server-side translation for client devices or for real-time translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/454—Multi-language systems; Localisation; Internationalisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Multimedia (AREA)
- Human Computer Interaction (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- General Business, Economics & Management (AREA)
- Document Processing Apparatus (AREA)
Abstract
本发明涉及游戏设计开发技术领域,尤其涉及一种应用程序的全球化处理方法及设备,所述方法包括自动识别第一语种获得第一语言文本将第一语言文本替换为字段标识表中的字段标识,且记录该第一语言文本和对应的字段标识;获取第一语言文本对应的各国翻译语言文本,以该第一语言文本、第一语言文本对应的字段标识和各国翻译文本生成language表;根据目标翻译语种和第一语言文本对应的字段标识确定加载应用程序时从language表中加载的目标语言文本,从而实现将应用程序中的文件中的第一语种的语言文本自动化转换为目标语种的语言文本,便于高效地助力应用程序的全球化处理过程。
Description
技术领域
本发明涉及游戏人工智能技术领域,尤其涉及一种应用程序的文字语言处理方法、游戏开发框架、设备及介质。
背景技术
随着海外游戏市场的快速发展,海外游戏产业链的逐渐成熟,自研游戏发布海外已经屡见不鲜,下载量与海外收入齐头并进。此时,自研游戏迅速全球化的技术成为了争夺海外市场的关键技术。
游戏全球化,需要将游戏中的文字转化为英文、韩语、俄语等多国语言,游戏场景、人物展示、界面特效等也生成不同地域的多版本。进入游戏时便可以通过玩家ip为其选择对应的语言版本,玩家就可以无障碍开始游戏之旅。然而,全球化涉及到多种文件中的语言需要翻译调整,这些处理工作需要占用大量的人力资源和时间,效率低下,影响海外发布速度。
发明内容
本发明的目的在于提供一种应用程序的全球化处理方法及设备,该方法通过自动化操作实现语种切换,以解决上述现有问题的至少之一。
本发明提供了一种应用程序的全球化处理方法,所述方法具体包括:
识别应用程序中的文件中的第一语种,得到第一语言文本;
将所述第一语言文本替换为字段标识表中的字段标识,并记录所述第一语言文本以及所述第一语言文本对应的字段标识;
获取所述第一语言文本对应的各国翻译语言文本,以所述第一语言文本、所述第一语言文本对应的字段标识以及所述各国翻译语言文本生成language表;
确定所述第一语种的目标翻译语种,基于所述目标翻译语种和所述第一语言文本对应的字段标识,确定加载所述应用程序时从所述language表加载的目标语言文本。
可选地,所述应用程序中的文件包括UI文件,所述方法还包括:
识别UI文件中所述第一语言文本对应的显示界面的空间为第一空间;
获取第二语言文本的显示设置,并根据所述显示设置确定第二空间,所述第二空间为显示所述第二语言文本所需空间,所述第二语言文本为与所述第一语言文本具有相同字段标识的目标语言文本;
根据所述第一空间和第二空间的大小关系确定所述第二语言文本的显示方式。
可选地,所述根据所述第一空间和第二空间的大小关系确定所述第二语言文本的显示方式,包括:
当所述第一空间大于等于所述第二空间,则在显示界面的第一空间显示所述第二语言文本;
当所述第一空间小于所述第二空间,则采用走马灯方式显示所述第二语言文本,或者采用滑动显示方式显示所述第二语言文本,或者调整所述显示界面的宽度以适应所述第二语言文本的长度。
可选地,所述采用走马灯方式显示所述第二语言文本,包括:
在设置有第一容器和第一text的Label组件中增加第二容器和第二text;
将所述第二语言文本分别存储在第一text和第二text;
将所述第一text和所述第二text均放置于所述第一容器和所述第二容器中;
每帧均调整所述第一text和所述第二text向左移动。
可选地,所述采用调整所述显示界面的宽度以适应所述第二语言文本的长度,包括:
将所述第二语言文本和显示界面的背景绑定在AutoBox组件;
AutoBox组件监听所述第二语言文本和所述显示界面的背景,根据所述第二语言文本的宽度调整所述显示界面的背景的宽度。
可选地,所述方法还包括:
设置HBox组件的子节点的纵坐标;
将所述UI文件中的图片、第二语言文本的子节点按照预设顺序依次添加在HBox组件中;
根据各个子节点之间预设的相隔宽度计算各个子节点的横坐标;
根据各个子节点的坐标显示所述UI文件中的图片和所述第二语言文本。
可选地,所述方法还包括:
配置需要识别的文件路径和关键字名单,所述关键字名单包括预设文件类型后缀;
根据所述文件路径和所述关键字名单,识别所述应用程序中的文件的所述第一语种。
可选地,所述方法还包括:遍历工程资源目录下的所有美术资源,根据所述美术资源的texture信息计算MD5码并保存,以保存路径和资源名称为key、MD5码为value值保存到字典,将遍历完成后的字典保存到第一json文件中,所述工程资源目录下的美术资源用于所述应用程序运行时加载显示,所述美术资源包括图片资源和特效资源;
遍历第一语种资源目录下的所有美术资源,根据所述美术资源的texture信息计算MD5码并保存,以保存路径和资源名称为value、MD5码为key保存到字典,将遍历完成后的字典保存到第二json文件中,所述第一语种资源目录在所述应用程序开发前建立,所述美术资源包括图片资源和特效资源;
比较所述第一json文件和第二json文件,获取并保存所述工程资源目录下的美术资源与所述第一语种资源目录下的美术资源的唯一匹配路径,以便所述工程资源目录从所述第一语种资源目录中获取待加载的美术资源。
可选地,所述方法还包括:
构建全球化资源目录,所述全球化资源目录包括多个目标语种子目录,所述目标语种子目录包括多个资源,所述多个资源的子路径与所述第一语种资源目录下的资源的子路径相同。
本发明还提供了一种计算机设备,包括:存储器和处理器及存储在存储器上的计算机程序,当所述计算机程序在处理器上被执行时,实现如上述方法中任一项所述的应用程序的文字语言处理方法。
本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时,实现如上述方法中任一项所述的应用程序的文字语言处理方法。
与现有技术相比,本发明具有以下技术效果的至少之一:
本发明提供的应用程序的全球化处理方法,包括自动识别第一语种获得第一语言文本将第一语言文本替换为字段标识表中的字段标识,且记录该第一语言文本和对应的字段标识;获取第一语言文本对应的各国翻译语言文本,以该第一语言文本、第一语言文本对应的字段标识和各国翻译文本生成language表;根据目标翻译语种和第一语言文本对应的字段标识确定加载应用程序时从language表中加载的目标语言文本,从而实现将应用程序中的文件中的第一语种的语言文本自动化转换为目标语种的语言文本,便于高效地助力应用程序的全球化处理过程。
附图说明
是为了更清楚地说明本申请实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种应用程序的全球化处理方法的流程图;
图2是本发明实施例中关于显示界面的示意图;
图3是本发明实施例中关于第一语种识别的流程图;
图4是本发明实施例提供的一种计算机设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
随着海外游戏市场的快速发展,海外游戏产业链的逐渐成熟,自研游戏发布海外已经屡见不鲜,下载量与海外收入齐头并进。此时,自研游戏迅速全球化的技术成为了争夺海外市场的关键技术。
游戏全球化,需要将游戏中的文字转化为英文、韩语、俄语等多国语言,游戏场景、人物展示、界面特效等也生成不同地域的多版本。进入游戏时便可以通过玩家ip为其选择对应的语言版本,玩家就可以无障碍开始游戏之旅。然而,全球化涉及到多种文件中的语言需要翻译调整,这些处理工作需要占用大量的人力资源和时间,效率低下,影响海外发布速度。另外,全球化还涉及到语种翻译后的显示等多种调整问题,比如UI界面在不同地域需要切换不同的语种,语种切换后如何进行显示,比如如何完整合理地显示均是需要处理地问题,这些处理工作需要占用大量的人力资源和时间。
参照图1,本发明实施例提供了一种应用程序的全球化处理方法,实施该方法是为了能够高效地助推全球化进程,减少人力研发工作,降低间成本。所述方法具体包括:
S110,识别应用程序中的UI文件中的第一语种,得到第一语言文本;
S120,将所述第一语言文本替换为字段标识表中的字段标识,并记录所述第一语言文本以及所述第一语言文本对应的字段标识;
S130,获取所述第一语言文本对应的各国翻译语言文本,以所述第一语言文本、所述第一语言文本对应的字段标识以及所述各国翻译语言文本生成language表;
S140,确定所述第一语种的目标翻译语种,基于所述目标翻译语种和所述第一语言文本对应的字段标识,确定加载所述应用程序时从所述language表加载的目标语言文本。
在游戏开发的过程中,一般都会包含本地语言,也就是本实施例中的第一语言,比如,中文。一般情况下,在工程代码、UI文件、excel表中都会涉及中文。但是这是不利于全球化的,因此需要利用中文识别工具处理开发的应用程序中的中文。
本实施例需要处理应用程序中各种文件的语种翻译问题。首先,需要识别应用程序中的文件中的第一语种,从而获得第一语言文本。可以理解,该第一语言文本可能是一段语句,或者一个词语。在识别出第一语言文本后,将所述第一语言文本替换为字段标识表中的字段标识,并记录所述第一语言文本以及所述第一语言文本对应的字段标识;获取所述第一语言文本对应的各国翻译语言文本,以所述第一语言文本、所述第一语言文本对应的字段标识以及所述各国翻译语言文本生成language表。Language表中记录第一语言文本及其他所有语言的翻译文本。字段标识表包括多个字段标识、以及与每一字段标识一一对应的各国翻译语言文本。字段标识为用于唯一标识一个字段的ID,字段标识和字段的各国翻译语言文本一一对应。通过该字段标识表可以确定该第一语言本文的字段标识。
以第一语种为中文为例,一般的项目中UI文件外、代码、表格和txt、json等文本文件中可能会出现中文文本,通过本实施例的方法,先将所有的中文文本识别出来。识别后,根据所述字段标识表确定字段标识,并利用该字段标识代所述各文件中的中文文本,可以为全球化的实现提供更加方便的方案,在需要适应不同语种时,仅需要根据该字段标识确认到该目标语种的语言文本即可。
接下来,需要确定所述第一语种的目标翻译语种,基于所述目标翻译语种和所述第一语言文本对应的字段标识,确定加载所述应用程序时从所述language表加载的目标语言文本。比如,应用程序的海外目标发行地为日本,则可以确定目标翻译语种为日语,基于该目标翻译语种和第一语言文本对应的字段标识,确定加载所述应用程序时需要从language表加载的目标语言文本为对应于该字段标识的日语文本。
本实施例提供的应用程序的全球化处理方法,包括自动识别第一语种获得第一语言文本将第一语言文本替换为字段标识表中的字段标识,且记录该第一语言文本和对应的字段标识;获取第一语言文本对应的各国翻译语言文本,以该第一语言文本、第一语言文本对应的字段标识和各国翻译文本生成language表;根据目标翻译语种和第一语言文本对应的字段标识确定加载应用程序时从language表中加载的目标语言文本,从而实现将应用程序中的文件中的第一语种的语言文本自动化转换为目标语种的语言文本,便于高效地助力应用程序的全球化处理过程。
在一些实施例中,所述应用程序中的文件包括UI文件,所述方法还包括:
识别UI文件中所述第一语言文本对应的显示界面的空间为第一空间;
获取第二语言文本的显示设置,并根据所述显示设置确定第二空间,所述第二空间为显示所述第二语言文本所需空间,所述第二语言文本为与所述第一语言文本具有相同字段标识的目标语言文本;
根据所述第一空间和第二空间的大小关系确定所述第二语言文本的显示方式。
在游戏开发的过程中,一般都会包含本地语言,也就是本实施例中的第一语言,比如,中文。一般情况下,在工程代码、UI文件、excel表中都会涉及中文。但是这是不利于全球化的,因此需要利用中文识别工具处理开发的应用程序中的中文。
本实施例需要处理的是UI文件中的第一语种的替换显示问题。首先需要识别UI文件中显示界面的空间大小,一般来说,可以识别显示界面框的宽度。在第二语言文本的内容确定后,第二语言的字体、大小等均会影响第二语言显示的长度,因此,需要获取该第二语言文本的显示设置,根据该显示设置确定显示该第二语言文本所需要的宽度,即本实施例中的第二空间。最后,需要根据第一空间和第二空间的差异来确定第二语言文本的显示方式。如图2所示,UI文件中不同的文本对应具有一定的显示空间,可以先对各个文本的显示空间的大小进行识别。
本实施例的处理方法,包括自动识别第一语种获得第一语言文本,确定对应于第二语种的第二语言文本,并根据第二语言文本和UI文件的显示界面的空间来确定显示方式,从而能够实现自动获取第二语种的UI文件,便于高效地助力应用程序的全球化处理过程。
在一些实施例中,所述根据所述第一空间和第二空间的大小关系确定所述第二语言文本的显示方式,包括:
当所述第一空间大于等于所述第二空间,则在显示界面的第一空间显示所述第二语言文本;
当所述第一空间小于所述第二空间,则采用走马灯方式显示所述第二语言文本,或者采用滑动显示方式显示所述第二语言文本,或者调整所述显示界面的宽度以适应所述第二语言文本的长度。
在该些实施例中,当显示界面的宽度大于等于显示第二语言文本所需的宽度,则可以直接在显示界面内显示该第二语言文本。当显示界面的宽度小于显示第二语言文本所需的宽度,则需要采用走马灯或者采用滑动显示方式显示所述第二语言文本,或者调整所述显示界面的宽度以适应所述第二语言文本的长度。通过这样的设置,可以实现自动显示,不需要人工处理,也可以实现完整合理的显示输出。
具体地,在一些实施例中,所述采用走马灯方式显示所述第二语言文本,包括:
在设置有第一容器和第一text的Label组件中增加第二容器和第二text;
将所述第二语言文本分别存储在第一text和第二text;
将所述第一text和所述第二text均放置于所述第一容器和所述第二容器中;
每帧均调整所述第一text和所述第二text向左移动。
在该些实施例中,当显示界面的宽度小于显示第二语言文本所需的宽度时,第二语言文本就会显示不全。如果采用更小的字体,会造成显示效果不佳。若采用走马灯的方式显示就需要利用相关组件来实现。本实施例中,UI编辑器采用Label文字组件,走马灯的实现方式是将原来的Label组件中增加一个容器,原来用于显示文字的text再生成一个,将两个text依次放于容器内,然后每帧都调整两个text的位置向左移,这样就是可以交替显示两个text,效果上实现了走马灯的效果。
上下或者左右滑动的效果类似,也是使用容器将原来的text放入其中,然后容器再监听触摸事件,根据触摸滑动或者鼠标滑动的坐标计算出text应该向上或者向左移动的距离,达到滑动的效果。
在一些实施例中,所述采用调整所述显示界面的宽度以适应所述第二语言文本的长度,包括:
将所述第二语言文本和显示界面的背景绑定在AutoBox组件;
AutoBox组件监听所述第二语言文本和所述显示界面的背景,根据所述第二语言文本的宽度调整所述显示界面的背景的宽度。
在该些实施例中,采用增加显示界面的背景的宽度的方式来完整地显示第二语言文本。本实施例中的背景也可以是某个显示框内的背景,该显示框可以具有明确的边界线。也可以没有明确的边界线,而近视利用该背景来限定显示区域。当第二语言文本过长,其需要的显示背景的宽度就需要增加。本实施例采用了AutoBox组件,用于处理这种情况,将文字和背景两个组件绑定到AutoBox上,AutoBox会根据文字Label组件的宽度,动态计算背景(一般是Image组件)的宽度。将文字和背景添加到AutoBox组件之后,AutoBox会监听两个子节点变化的消息,从而做到实时变化。需要注意的是,如果文字相对背景居中显示的,在计算位置的时候还可以考虑到左右的预留宽度。
在一些实施例中,所述方法还包括:
设置HBox组件的子节点的纵坐标;
将所述UI文件中的图片、第二语言文本的子节点按照预设顺序依次添加在HBox组件中;
根据各个子节点之间预设的相隔宽度计算各个子节点的横坐标;
根据各个子节点的坐标显示所述UI文件中的图片和所述第二语言文本。
还有一些情况,显示界面除了文字外,还包括图片。如图3所示,显示界面的上方和下方均有文字,其中,上方除了中部具有文字外,两侧还具有图形。上方的图像和文字位置是固定的,对于全球化版本,中间文字翻译成各国语言后长度是不可控的,相比中文可能会变长,也可能变短,所以也是需要一个容器将文字及其两侧的图片加入其中,动态计算位置。本实施例使用的组件是HBox,HBox会重置子节点的锚点、横坐标宽度等,使用时只需要设定子节点的纵坐标,并且按照显示的排版顺序,依次将子节点添加至HBox中,设置好每个子节点的相隔宽度即可。如果翻译后的文字很长,子节点挨个并排显示会超出屏幕显示,这时也需要将其中的文字节点设置为跑马灯,控制宽度,以防出现显示不全的情况。
HBox子节点位置的计算方式和AutoBox组件不同,HBox的子节点可以是多个。HBox的实现原理是将子节点位置依次放置,并动态监听其变化,根据设置的子节点间隔宽度,依次计算各子节点横坐标,可以很好地适应图文并排显示的情况。
在一些实施例中,还可以进一步,做如下设置,所述识别应用程序中的工程代码、表格文件和文本文件中的第一语种,得到第三语言文本,包括:
识别应用程序中的工程代码、表格文件和文本文件中的第一语种,得到第五语言文本,
排除所述第五语言文本中的注释和log文字,得到第三语言文本。
该具体实施例中,将不需要识别的注释和log文字的排除,留下需要适应全球化开发的字段作为第三语言文本。
在图1所示实施例中,识别中文时所涉及的文件量是非常大、文件类型也比较多,本申请的一些实施例还提供了一种第一语种(中文)导出工具,可以实现一键处理,无需其他人工操作。具体地,如图3所示,在一些实施例中,所述方法还包括:
S310,配置需要识别的文件路径和关键字名单,所述关键字名单包括预设文件类型后缀;
S320,根据所述文件路径和所述关键字名单,识别所述应用程序中的文件的所述第一语种。
需要说明的是,该导出工具可适用于本发明实施例所有需要用到语种识别的步骤中。
导出工具主要功能就是检测和导出项目中的第一语种(中文)文字。比如,处理代码中的文字,在代码中依然存在除去注释和log的第一语种文字的情况,可以使用导出工具来进行识别。
使用工具,首先配置需要检测的代码等文件的文件路径和一份关键字名单,关键字txt一方面可以配置路径下代码文件的后缀,如.as,配置后工具只会处理此后缀的文件类型;一方面配置工程中打印log的方法名字,如consol.log。工具根据配置遍历路径下所有代码文件,检测出其中的非注释文字,然后根据log的关键字排除其中作为打印的文字,最后先将其中的所有的文字导出到字段标识表中,并将代码等文件中该处的文字改为字段标识表对应的语段标识ID,再将文字导出到Language表中。
通过前述的识别过程和识别后的替代过程的处理,项目代码中除了注释和log不存在其他第一语种(中文),经过使用字段标识表(表中每一个ID对应一段文字)中的ID替代代码中的文字,对于开发和维护期文字的改动就十分方便,对于全球化的生成更是节省了一大部分时间。
以第一语种为中文进行示例,导出工具为中文导出工具,其核心在于使用正则匹配的方式,对于UTF-8编码的文件,匹配[u4e00-u9fa5]可以先查找到代码中的中文,然后借助关键字名单、通过关键字检测这段文字是否是在log输出的方法中,是则忽略,不是则加入到Language表中。检测的难点在于判断是否是注释中文,因为注释的方式有很多种://、/**/等,还有多行注释、括号的处理,本发明实施例通过一个栈来处理数据,在有/、/*和左括号的情况下,将符号和符号后面的文字push入栈,在找到/、*/和右括号的时候再将数据pop出栈,用字典保存其中的数据,作为需要排除的注释文字,通过这种逻辑来处理复杂的嵌套情况。
在一些实施例中,所述方法还包括:
遍历工程资源目录下的所有美术资源,根据所述美术资源的texture信息计算MD5码并保存,以保存路径和资源名称为key、MD5码为value值保存到字典,将遍历完成后的字典保存到第一json文件中,所述工程资源目录下的美术资源用于所述应用程序运行时加载显示,所述美术资源包括图片资源和特效资源;
遍历第一语种资源目录下的所有美术资源,根据所述美术资源的texture信息计算MD5码并保存,以保存路径和资源名称为value、MD5码为key保存到字典,将遍历完成后的字典保存到第二json文件中,所述第一语种资源目录在所述应用程序开发前建立,所述美术资源包括图片资源和特效资源;
比较所述第一json文件和第二json文件,获取并保存所述工程资源目录下的美术资源与所述第一语种资源目录下的美术资源的唯一匹配路径,以便所述工程资源目录从所述第一语种资源目录中获取待加载的美术资源。
在该些实施例中,涉及到工程资源目录(工程dir)、第一语种(中文)资源目录(中文dir)。工程资源目录(工程dir)和、第一语种(中文)资源目录(中文dir)是已经存在的目录,是在项目的开发期就存在的,以下示例中,利用第一语种资源为中文dir为例来进行说明。
工程dir中的资源是项目真正用到的资源,其命名与中文dir可能是不同的,因为中文dir中的资源命名可能是由美术人员临时命名的。然后使用工程资源导出工具将工程dir的资源导出,工具首先会遍历工程dir下所有的美术资源(图片资源和特效资源),根据图片和特效的texture信息计算MD5码并保存,以路径+资源名字为key,MD5码为value值保存到字典中,最后遍历完成后会保存到MD5-1.json文件中,以便迭代时使用。然后再遍历中文dir目录中的所有美术资源,计算MD5码,并且读取工程dir保存的MD5-1.json,以MD5码为key,路径+资源名字为value保存到一个字典中,通过对比,找到工程dir下的资源一一对应到中文dir中的唯一路径,遍历结束后保存工程dir各资源路径+对应的中文dir路径。如果该过程中发现工程dir中的某些美术资源在中文dir中不存在,需要将该资源补到中文dir中。即通过哈希值作为匹配条件,将工程资源中存放美术资源的路径和第一语种资源存放相应美术资源的路径匹配起来,即找到工程资源中所使用的美术资源在第一语种资源中的存放位置。
在一些实施例中,所述方法还包括:构建全球化资源目录,所述全球化资源目录包括多个目标语种子目录,所述目标语种子目录包括多个资源,所述多个资源的子路径与所述第一语种资源目录下的资源的子路径相同。
全球化资源目录包含了多个目录:英文、泰文、日语等,以英文目录举例,简称英文dir。英文dir是全球化版本新增的目录,需要将全球化的资源放到该目录。
使用图片文字识别工具遍历第一语种(中文)资源目录(中文dir),将带有文字的图片和特效资源查找出来,并新建一个表格“全球化资源表格”保存图片和特效。下文以中文dir为示例进行说明。将图片和特效的中文dir资源(第一语种资源,即第一语种资源目录下的资源)和从其上识别出的中文文字(第一语种文字,可定义为第六语言文本)一起粘贴在图片一侧。遍历完成后得到包含中文文字(第一语种文字)的图片和特效资源、对应于图片和特效资源的中文文字的(第一语种文字,可定义为第六语言文本)的美术资源文字表格,该表格中还包括与每个美术资源一一对应的保存路径,该保存路径为工程资源目录下的资源与所述第一语种资源目录下对应的美术资源的路径一致。将这个图片文字表格发给相关美术人员,由美术人员重新做出英文dir的图片资源和特效资源,新出的资源按照表格上对应的路径放置到英文dir(全球化资源目录下的对应目标语种的子目录)中。
通过工程dir找到中文dir中对应的资源文件,与中文dir同子路径下英文dir中存放全球化所需的资源,找到其对应的工程dir的存放目录,重命名为工程dir中的资源名后存放到工程目录下hwRes下,子目录路径与对应的工程dir相同。这样工程中不但拥有中文工程中的全部资源,并在工程目录下hwRes中存放着各个语言的资源目录。
第一次全球化版本的资源整理就完成了,而后续版本的迭代也可以通过相同的处理,只需要加上版本号的管理,比如,采用svn版本管理,可通过svn的版本号和版本升级的svnLog实现,如果是用git等其他项目版本管理工具也是一样。第一次生成全球化版本的时候,记录工程dir、中文dir的svn版本号,第二次版本迭代的时候,可以找出上次版本号到这次版本之间所有的svnLog,找出这次版本升级中所有增删改的资源文件,将改动同步到工程dir、中文dir,并将新增的美术资源导出到“全球化资源表格”中。
在一些实施例中,所述方法还需要进行代码重构,全球化的显示处理需要在底层加载的时候进行替换,文字和资源的替换都需要重构加载部分代码。文字的替换需要在游戏加载的时候同时加载Language表,因为这个表的体积过于庞大,在加载的时候需要判断当前的语种,加载对应的翻译bin文件,即如果语言是英语,那么Language表上的韩文、泰文、日语等翻译bin文件不再加载,不然不但会浪费玩家游戏登录时的加载时间,也会造成内存的浪费。文字显示相关的代码上的重构主要在于文字加载显示内容时,判断如果是全球化版本,需要找到此时对应的翻译bin文件解析的字典,然后根据显示内容找到对应的翻译,再显示到界面上。
资源的显示相关的代码上的重构分为两部分,因为两部分的资源用处不同,一部分是不做版本号记录的资源文件,一般用于登录页,这部分加载的时候需要在加载之前确定是否为全球化版本,如果是则替换加载的路径;另一部分是以版本号维护的大部分游戏资源,重构的逻辑类似,只是加载这部分资源时需要对图片、特效等相关代码都需要进行重构。
参照图4,本发明实施例还提供了一种计算机设备4,包括:存储器402和处理器401及存储在存储器402上的计算机程序403,当所述计算机程序403在处理器401上被执行时,实现如上述方法中任一项所述的应用程序的全球化处理方法。
所述计算机设备4可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。该计算机设备4可包括,但不仅限于,处理器401、存储器402。本领域技术人员可以理解,图4仅仅是计算机设备4的举例,并不构成对计算机设备4的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
所称处理器401可以是中央处理单元(Central Processing Unit,CPU),该处理器401还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器402在一些实施例中可以是所述计算机设备4的内部存储单元,例如计算机设备4的硬盘或内存。所述存储器402在另一些实施例中也可以是所述计算机设备4的外部存储设备,例如所述计算机设备4上配备的插接式硬盘,智能存储卡(Smart MediaCard,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器402还可以既包括所述计算机设备4的内部存储单元也包括外部存储设备。所述存储器402用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器402还可以用于暂时地存储已经输出或者将要输出的数据。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时,实现如上述方法中任一项所述的应用程的全球化处理方法。
该实施例中,所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所公开的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
Claims (9)
1.一种应用程序的全球化处理方法,其特征在于,所述方法包括:
识别应用程序中的文件中的第一语种,得到第一语言文本;
将所述第一语言文本替换为字段标识表中的字段标识,并记录所述第一语言文本以及所述第一语言文本对应的字段标识;
获取所述第一语言文本对应的各国翻译语言文本,以所述第一语言文本、所述第一语言文本对应的字段标识以及所述各国翻译语言文本生成language表;
确定所述第一语种的目标翻译语种,基于所述目标翻译语种和所述第一语言文本对应的字段标识,确定加载所述应用程序时从所述language表加载的目标语言文本;
遍历工程资源目录下的所有美术资源,根据所述美术资源的texture信息计算MD5码并保存,以保存路径和资源名称为key、MD5码为value值保存到字典,将遍历完成后的字典保存到第一json文件中,所述工程资源目录下的美术资源用于所述应用程序运行时加载显示,所述美术资源包括图片资源和特效资源;
遍历第一语种资源目录下的所有美术资源,根据所述美术资源的texture信息计算MD5码并保存,以保存路径和资源名称为value、MD5码为key保存到字典,将遍历完成后的字典保存到第二json文件中,所述第一语种资源目录在所述应用程序开发前建立,所述美术资源包括图片资源和特效资源;
比较所述第一json文件和第二json文件,获取并保存所述工程资源目录下的美术资源与所述第一语种资源目录下的美术资源的唯一匹配路径,以便所述工程资源目录从所述第一语种资源目录中获取待加载的美术资源。
2.根据权利要求1所述的方法,其特征在于,所述应用程序中的文件包括UI文件,所述方法还包括:
识别UI文件中所述第一语言文本对应的显示界面的空间为第一空间;
获取第二语言文本的显示设置,并根据所述显示设置确定第二空间,所述第二空间为显示所述第二语言文本所需空间,所述第二语言文本为与所述第一语言文本具有相同字段标识的目标语言文本;
根据所述第一空间和第二空间的大小关系确定所述第二语言文本的显示方式。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一空间和第二空间的大小关系确定所述第二语言文本的显示方式,包括:
当所述第一空间大于等于所述第二空间,则在显示界面的第一空间显示所述第二语言文本;
当所述第一空间小于所述第二空间,则采用走马灯方式显示所述第二语言文本,或者采用滑动显示方式显示所述第二语言文本,或者采用调整所述显示界面的宽度以适应所述第二语言文本的长度。
4.根据权利要求3所述的方法,其特征在于,所述采用走马灯方式显示所述第二语言文本,包括:
在设置有第一容器和第一text的Label组件中增加第二容器和第二text;
将所述第二语言文本分别存储在第一text和第二text;
将所述第一text和所述第二text均放置于所述第一容器和所述第二容器中;
每帧均调整所述第一text和所述第二text向左移动。
5.根据权利要求3所述的方法,其特征在于,所述采用调整所述显示界面的宽度以适应所述第二语言文本的长度,包括:
将所述第二语言文本和显示界面的背景绑定在AutoBox组件;
AutoBox组件监听所述第二语言文本和所述显示界面的背景,根据所述第二语言文本的宽度调整所述显示界面的背景的宽度。
6.根据权利要求2-3任一项所述的方法,其特征在于,所述方法还包括:
设置HBox组件的子节点的纵坐标;
将所述UI文件中的图片、第二语言文本的子节点按照预设顺序依次添加在HBox组件中;
根据各个子节点之间预设的相隔宽度计算各个子节点的横坐标;
根据各个子节点的坐标显示所述UI文件中的图片和所述第二语言文本。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
配置需要识别的文件路径和关键字名单,所述关键字名单包括预设文件类型后缀;
根据所述文件路径和所述关键字名单,识别所述应用程序中的文件中的所述第一语种。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:构建全球化资源目录,所述全球化资源目录包括多个目标语种子目录,所述目标语种子目录包括多个资源,所述多个资源的子路径与所述第一语种资源目录下的资源的子路径相同。
9.一种计算机设备,其特征在于,包括:存储器和处理器及存储在存储器上的计算机程序,当所述计算机程序在处理器上被执行时,实现如权利要求1至8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310763335.8A CN116943232B (zh) | 2023-06-26 | 2023-06-26 | 一种应用程序的全球化处理方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310763335.8A CN116943232B (zh) | 2023-06-26 | 2023-06-26 | 一种应用程序的全球化处理方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116943232A CN116943232A (zh) | 2023-10-27 |
CN116943232B true CN116943232B (zh) | 2024-06-21 |
Family
ID=88461088
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310763335.8A Active CN116943232B (zh) | 2023-06-26 | 2023-06-26 | 一种应用程序的全球化处理方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116943232B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021056782A1 (zh) * | 2019-09-25 | 2021-04-01 | 深圳传音控股股份有限公司 | 一种图片识别翻译方法、装置、终端及介质 |
CN114675798A (zh) * | 2022-02-25 | 2022-06-28 | 珠海读书郎软件科技有限公司 | 一种电子设备的翻译显示方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7113904B2 (en) * | 2001-03-30 | 2006-09-26 | Park City Group | System and method for providing dynamic multiple language support for application programs |
AR051014A1 (es) * | 2004-08-24 | 2006-12-13 | Geneva Software Technologies Ltd | Sistema y metodo para la migracion de un producto en varios idiomas |
US20070244691A1 (en) * | 2006-04-17 | 2007-10-18 | Microsoft Corporation | Translation of user interface text strings |
US20080059877A1 (en) * | 2006-08-29 | 2008-03-06 | David Brookler | Method for automatically adjusting the components of a screen region to maintain layout integrity in multiple languages |
US8484562B2 (en) * | 2010-06-25 | 2013-07-09 | Apple Inc. | Dynamic text adjustment in a user interface element |
EP2783300A4 (en) * | 2011-11-25 | 2015-12-23 | Google Inc | PROVISION OF TRANSLATION SUPPORT IN THE LOCALIZATION OF APPLICATIONS |
US20130138421A1 (en) * | 2011-11-28 | 2013-05-30 | Micromass Uk Limited | Automatic Human Language Translation |
CN104346153B (zh) * | 2013-07-31 | 2018-04-17 | 国际商业机器公司 | 用于翻译应用程序的文本信息的方法和系统 |
CN106228191A (zh) * | 2016-07-28 | 2016-12-14 | 努比亚技术有限公司 | 一种控件文本超长检测装置及方法 |
CN107273366A (zh) * | 2017-05-25 | 2017-10-20 | 深圳市比邻软件有限公司 | 一种翻译物理设备程序界面的方法及系统 |
KR102606287B1 (ko) * | 2018-09-19 | 2023-11-27 | 삼성전자주식회사 | 애플리케이션의 번역 정보를 제공하는 디바이스 및 방법 |
CN110618797B (zh) * | 2019-08-08 | 2023-07-11 | 深圳赛安特技术服务有限公司 | 生成文字走马灯的方法、装置及终端设备 |
-
2023
- 2023-06-26 CN CN202310763335.8A patent/CN116943232B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021056782A1 (zh) * | 2019-09-25 | 2021-04-01 | 深圳传音控股股份有限公司 | 一种图片识别翻译方法、装置、终端及介质 |
CN114675798A (zh) * | 2022-02-25 | 2022-06-28 | 珠海读书郎软件科技有限公司 | 一种电子设备的翻译显示方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116943232A (zh) | 2023-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110968325B (zh) | 一种小程序转换方法及装置 | |
CN109299446B (zh) | 报告生成方法及装置 | |
US7254593B2 (en) | System and method for tracking annotations of data sources | |
CN111160045B (zh) | 一种游戏资源文件翻译方法、装置及设备 | |
CN108334609B (zh) | Oracle中实现JSON格式数据存取的方法、装置、设备及存储介质 | |
WO2011085562A1 (en) | System and method for automatically extracting metadata from unstructured electronic documents | |
CN111611788B (zh) | 一种数据处理的方法及装置、电子设备、存储介质 | |
CN112800949A (zh) | 基于人工智能的纸质档案的数字化处理方法、系统及设备 | |
US9063949B2 (en) | Inferring a sequence of editing operations to facilitate merging versions of a shared document | |
CN113779235A (zh) | 一种Word文档大纲识别处理方法及装置 | |
CN116943232B (zh) | 一种应用程序的全球化处理方法及设备 | |
CN112965772A (zh) | web页面显示方法、装置和电子设备 | |
US9817913B2 (en) | Method and apparatus for collecting, merging and presenting content | |
CN111651531B (zh) | 数据导入方法、装置、设备及计算机存储介质 | |
CN110795915A (zh) | xml文件批量修改方法、系统、设备和计算机可读存储介质 | |
CN111221777B (zh) | 一种数据记录的匹配方法及装置 | |
CN110750960A (zh) | 一种配置文件的解析方法、存储介质、电子设备及系统 | |
CN112752165A (zh) | 字幕处理方法、装置、服务器及计算机可读存储介质 | |
CN112966198A (zh) | 级联样式表数据生成方法、系统、计算机设备及存储介质 | |
CN110543622A (zh) | 文本相似度检测方法、装置、电子设备及可读存储介质 | |
CN111813474A (zh) | 多语言显示方法、装置及电子设备 | |
WO2024041358A1 (zh) | 配置文件更新方法、装置、电子设备及可读存储介质 | |
US11288063B2 (en) | Method and apparatus for assisting in open source usage | |
CN117539837B (zh) | 模型文件的存储方法、装置、电子设备及可读存储介质 | |
CN113033832B (zh) | 一种汽修数据录入方法、装置、终端设备及可读存储介质 |
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 |