CN117707673A - 多语言化处理方法、装置、设备及存储介质 - Google Patents
多语言化处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117707673A CN117707673A CN202311713277.4A CN202311713277A CN117707673A CN 117707673 A CN117707673 A CN 117707673A CN 202311713277 A CN202311713277 A CN 202311713277A CN 117707673 A CN117707673 A CN 117707673A
- Authority
- CN
- China
- Prior art keywords
- document
- engineering
- preset
- text
- unique identifier
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title abstract description 15
- 238000013519 translation Methods 0.000 claims abstract description 140
- 239000000463 material Substances 0.000 claims abstract description 113
- 238000012545 processing Methods 0.000 claims abstract description 46
- 238000000034 method Methods 0.000 claims abstract description 42
- 238000012216 screening Methods 0.000 claims description 25
- 230000014509 gene expression Effects 0.000 claims description 19
- 238000001914 filtration Methods 0.000 claims description 7
- 238000002347 injection Methods 0.000 claims description 5
- 239000007924 injection Substances 0.000 claims description 5
- 230000003068 static effect Effects 0.000 claims description 4
- 238000011161 development Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 230000002085 persistent effect Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000013507 mapping Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000004807 localization Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 239000002355 dual-layer Substances 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000011835 investigation Methods 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
- 238000007781 pre-processing Methods 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Machine Translation (AREA)
Abstract
本申请涉及一种多语言化处理方法、装置、设备及存储介质。该方法包括:对目标应用程序的工程数据中的目标文件进行文案扫描,得到工程文案扫描结果;将工程文案扫描结果中与预设翻译物料成功匹配的文案,配置唯一标识符;其中,预设翻译物料包括对应不同实际内容的多个文案集,每个文案集包括对应同一个实际内容的多个语种语言文案;通过唯一标识符读取工程文案扫描结果中所对应的文案,并替换为预设翻译物料中对应的目标语种语言文案;配置目标语种语言文案的唯一标识符。本申请提供的方案,能够提升应用程序实现多语言化的处理效率,降低人力资源成本。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种多语言化处理方法、装置、设备及存储介质。
背景技术
iOS(iPhoneOperating System,苹果操作***)工程多语言化,也称为iOS应用程序的国际化,是指根据用户操作***的语言设置,自动将应用程序的语言设置为和用户操作***语言一致的语言。通过对iOS工程执行多语言化处理,可以实现iOS工程的国际化(本国语转换为外国语)/本地化(外国语转换为本国语),满足不同国家的用户的使用需求。
然而,针对应用程序的多语言化处理,相关技术中并没有可以快捷处理硬编码文案的方案,iOS工程在开发过程中如果用了硬编码的文案,需要对所有代码里的文案进行收集,并替换成对应的外语文案。而且,为了在后期开发迭代中支持多种语言拓展和新功能多语言落地,需要大量的人力进行核对排错和编辑。
发明内容
为解决或部分解决相关技术中存在的问题,本申请提供一种多语言化处理方法、装置、设备及存储介质,能够提升应用程序实现多语言化的处理效率,降低人力资源成本。
本申请第一方面提供一种多语言化处理方法,包括:
对目标应用程序的工程数据中的目标文件进行文案扫描,得到工程文案扫描结果;
将所述工程文案扫描结果中与预设翻译物料成功匹配的文案,配置唯一标识符;其中,所述预设翻译物料包括对应不同实际内容的多个文案集,每个文案集包括对应同一个实际内容的多个语种语言文案;
通过所述唯一标识符读取所述工程文案扫描结果中所对应的文案,并替换为所述预设翻译物料中对应的目标语种语言文案;
配置所述目标语种语言文案的唯一标识符。
在一种实施方式中,所述对目标应用程序的工程数据中的目标文件进行文案扫描,得到工程文案扫描结果之前,还包括:
获取目标应用程序的工程数据;
根据预设文件筛选规则,对所述目标应用程序的工程数据的进行筛选,得到目标文件。
在一种实施方式中,所述根据预设文件筛选规则,对所述目标应用程序的工程数据的进行筛选,得到目标文件,包括:
在所述目标应用程序的工程数据中,指定代码目录,并在所述代码目录剔除无效文件目录后,通过白名单文件剔除无效文件,得到目标文件。
在一种实施方式中,所述对目标应用程序的工程数据中的目标文件进行文案扫描,得到工程文案扫描结果,包括:
依据预设正则表达式,对目标应用程序的工程数据中的目标文件进行文案扫描,得到工程文案扫描结果;
其中,所述预设正则表达式根据编程语言的语法规则进行构建,用于剔除代码行中的无效代码格式。
在一种实施方式中,所述预设正则表达式所剔除的代码格式,至少包括以下部分或全部内容:
字典糖语法的key字符串、宏定义、静态变量声明;
历史遗留的localized本地化字符串、bundle资源包的包名以及通知的名称声明与使用、错误对象的domain、动态语法中的类名、图片名、对象键名、空字符串、常见特殊字符串、字符串比较、url及域名前缀、前缀后缀判定、json名、日志代码、字体名、纯数字、特殊转义符号、debug相关文案及业务场景文案。
在一种实施方式中,所述将所述工程文案扫描结果中与预设翻译物料成功匹配的文案,配置唯一标识符,包括:
遍历所述工程文案扫描结果中的各个文案,与预设翻译物料中的文案进行匹配;
在所述工程文案扫描结果中的文案存在于所述预设翻译物料中的情况下,确定文案匹配成功,将匹配成功的文案配置唯一标识符。
在一种实施方式中,所述多语言化处理方法还包括:
在所述工程文案扫描结果中的文案不存在于所述预设翻译物料中的情况下,确定文案匹配失败,将匹配失败的文案输出至预设翻译服务;
根据所述预设翻译服务的翻译结果,更新所述预设翻译物料,以添加所述匹配失败的文案中实际内容所对应的多个语种语言文案;
在所述预设翻译物料更新后,再次对所述匹配失败的文案进行匹配,并在确定所述匹配失败的文案匹配成功后,将所述匹配失败的文案配置唯一标识符。
在一种实施方式中,所述配置唯一标识符,包括:
对于已存在标识符的文案,更新所述标识符,并使更新后的所述标识符为所述预设翻译物料中的唯一标识符;
对于不存在标识符的文案,分配唯一标识符。
在一种实施方式中,所述预设翻译物料根据现有终端所产生的翻译物料预先构建得到。
本申请第二方面提供一种多语言化处理装置,包括:
筛查模块,用于对目标应用程序的工程数据中的目标文件进行文案扫描,得到工程文案扫描结果;
对齐模块,用于将所述筛查模块得到的工程文案扫描结果中与预设翻译物料成功匹配的文案,配置唯一标识符;其中,所述预设翻译物料包括对应不同实际内容的多个文案集,每个文案集包括对应同一个实际内容的多个语种语言文案;
替换模块,用于通过所述对齐模块配置的唯一标识符读取所述工程文案扫描结果中所对应的文案,并替换为所述预设翻译物料中对应的目标语种语言文案;
注入模块,用于配置所述替换模块替换的目标语种语言文案的唯一标识符。
本申请第三方面提供一种电子设备,包括:
处理器;以及
存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如上所述的方法。
本申请第四方面提供一种计算机可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如上所述的方法。
本申请提供的技术方案可以包括以下有益效果:
本申请提供的方法,通过对目标应用程序的工程数据中的目标文件进行文案扫描,得到工程文案扫描结果,将工程文案扫描结果中与预设翻译物料成功匹配的文案,配置唯一标识符,再通过唯一标识符读取工程文案扫描结果中所对应的文案,并替换为预设翻译物料中对应的目标语种语言文案,配置目标语种语言文案的唯一标识符,以使文案生效。这样,通过利用预设翻译物料来实现对应用程序的多语言化处理,提高了正确率及可靠性,提升了多语言化处理效率,降低了人力资源成本。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
通过结合附图对本申请示例性实施方式进行更详细地描述,本申请的上述以及其它目的、特征和优势将变得更加明显,其中,在本申请示例性实施方式中,相同的参考标号通常代表相同部件。
图1是本申请实施例示出的多语言化处理方法的流程示意图;
图2是本申请实施例示出的多语言化处理方法的另一流程示意图;
图3是本申请实施例示出的多语言化处理方法的又一流程示意图;
图4是本申请实施例示出的多语言化处理装置的结构示意图;
图5是本申请实施例示出的多语言化处理装置的另一结构示意图;
图6是本申请实施例示出的电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本申请的实施方式。虽然附图中显示了本申请的实施方式,然而应该理解,可以以各种形式实现本申请而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本申请更加透彻和完整,并且能够将本申请的范围完整地传达给本领域的技术人员。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语“第一”、“第二”、“第三”等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
针对应用程序的多语言化处理,相关技术中并没有可以快捷处理硬编码文案的方案,iOS工程在开发过程中如果用了硬编码的文案,需要对所有代码里的文案进行收集,并替换成对应的外语文案。而且,为了在后期开发迭代中支持多种语言拓展和新功能多语言落地,需要大量的人力进行核对排错和编辑。
针对上述问题,本申请实施例提供一种多语言化处理方法,能够提升应用程序实现多语言化的处理效率,降低人力资源成本。
以下结合附图详细描述本申请实施例的技术方案。
图1是本申请实施例示出的多语言化处理方法的流程示意图。
参见图1,该方法包括:
S101、对目标应用程序的工程数据中的目标文件进行文案扫描,得到工程文案扫描结果。
其中,目标应用程序的工程数据可以是iOS应用程序的工程数据,即iOS工程数据。iOS工程是用于开发和构建iOS应用程序的工程,iOS工程数据是指在iOS应用程序开发过程中,用于构建和运行应用程序的各种文件和资源。这些数据通常包括源代码、资源文件、配置文件、图片和其他相关文件。
其中,文案可以是指与iOS项目相关的文本或文案,例如应用名称、描述、关键词等。
在该步骤中,可以依据预设正则表达式,对目标应用程序的工程数据中的目标文件进行文案扫描,得到工程文案扫描结果。
其中,预设正则表达式根据编程语言的语法规则进行构建,用于剔除代码行中的无效代码格式。
S102、将工程文案扫描结果中与预设翻译物料成功匹配的文案,配置唯一标识符,其中,预设翻译物料包括对应不同实际内容的多个文案集,每个文案集包括对应同一个实际内容的多个语种语言文案。
在该步骤中,可以遍历工程文案扫描结果中的各个文案,与预设翻译物料中的文案进行匹配。在工程文案扫描结果中的文案存在于预设翻译物料中的情况下,确定文案匹配成功,将匹配成功的文案配置唯一标识符。
进一步的,在工程文案扫描结果中的文案不存在于预设翻译物料中的情况下,确定文案匹配失败,将匹配失败的文案输出至预设翻译服务。根据预设翻译服务的翻译结果,更新预设翻译物料,以添加匹配失败的文案中实际内容所对应的多个语种语言文案。在预设翻译物料更新后,再次对匹配失败的文案进行匹配,并在确定匹配失败的文案匹配成功后,将匹配失败的文案配置唯一标识符。
其中,预设翻译物料可以根据现有终端所产生的翻译物料预先构建得到。
S103、通过唯一标识符读取工程文案扫描结果中所对应的文案,并替换为预设翻译物料中对应的目标语种语言文案。
在该步骤中,目标语种语言文案用于替换工程文案扫描结果中原先的文案,以实现文案的多语言化。
S104、配置目标语种语言文案的唯一标识符。
在该步骤中,配置目标语种语言文案的唯一标识符,即填充了目标语种语言文案的映射,以使得文案可以生效。
从该实施例可以看出,本申请实施例提供的方法,通过对目标应用程序的工程数据中的目标文件进行文案扫描,得到工程文案扫描结果,将工程文案扫描结果中与预设翻译物料成功匹配的文案,配置唯一标识符,再通过唯一标识符读取工程文案扫描结果中所对应的文案,并替换为预设翻译物料中对应的目标语种语言文案,配置目标语种语言文案的唯一标识符,以使文案生效。这样,通过利用预设翻译物料来实现对应用程序的多语言化处理,提高了正确率及可靠性,提升了多语言化处理效率,降低了人力资源成本。
图2是本申请实施例的多语言化处理方法的另一流程示意图。图2相对图1更详细描述了本申请的方案。
参见图2,该方法包括:
S201、获取目标应用程序的工程数据。
其中,目标应用程序的工程数据可以是iOS应用程序的工程数据,即iOS工程数据。iOS工程是用于开发和构建iOS应用程序的工程,iOS工程数据是指在iOS应用程序开发过程中,用于构建和运行应用程序的各种文件和资源。iOS工程数据可以包括源代码、资源文件、配置文件、图片和其他相关文件。
需要说明的是,目标应用程序可以是iOS平台的应用程序,也可以是其他平台(例如安卓)的应用程序。本申请实施例以iOS平台中的目标应用程序为例进行详细说明但不限于,在其他实施例中,目标应用程序可以是安卓或其他平台的应用程序。可以理解,目标应用程序为需要进行多语言化处理的目标对象。
S202、根据预设文件筛选规则,对目标应用程序的工程数据的进行筛选,得到目标文件。
在其中一种实施方式中,该步骤可以包括:在目标应用程序的工程数据中,指定代码目录,并在代码目录剔除无效文件目录后,通过白名单文件剔除无效文件,得到目标文件。可以理解,对于iOS平台,目标文件可以是.h和.m文件(.h和.m文件是Objective-C程序中的头文件和源代码文件)。该步骤通过对目标应用程序的工程数据进行筛选,以剔除无效文件,可以提升多语言化处理的效率。
S203、对目标应用程序的工程数据中的目标文件进行文案扫描,得到工程文案扫描结果。
在其中一种实施方式中,该步骤可以包括:依据预设正则表达式,对目标应用程序的工程数据中的目标文件进行文案扫描,得到工程文案扫描结果。
可以理解,在iOS工程里面,文案一般以@""双引号的格式体现。在得到目标应用程序的工程数据中的目标文件(例如.h和.m文件)后,如果直接对目标文件进行正则表达式匹配,将会得到许多无效的代码段。本申请通过预先构建的预设正则表达式进行按行扫描匹配,以避免得到无效的代码段。
其中,预设正则表达式根据编程语言的语法规则进行构建,用于剔除代码行中的无效代码格式。对于iOS平台,预设正则表达式根据Objective-C语言的语法规则进行构建,基于编程语言的语法筛选目标文件的代码行。
需要说明的是,针对目标文件的代码行的筛选可以划分为三级。第一级属于可信度最高的代码行,可以直接归入扫描有效结果。第二级是可信度存疑的代码行,可能同时包含了文案和非文案,需要另外分析。第三级是可信度最低的代码行,只包含程序运行的关键字字符串,不包含文案。基于此,需要通过预先构建的预设正则表达式剔除第二级与第三级中的无效代码格式。
在其中一种实施方式中,预先构建的预设正则表达式所剔除的代码格式,可以至少包括如下11)与12)两类中的部分或全部内容:
11)字典糖语法的key字符串(需要剔除分号前后的空格)、宏定义(#define)、静态变量声明(NSString const*)。可以理解的是,11)是针对上述第二级代码行筛选所进行的剔除工作。
12)历史遗留的localized本地化字符串、bundle资源包的包名以及通知的名称声明与使用、错误对象的domain、动态语法中的类名(例如targetClass、StringForClass、NSClassFromString)、图片名(例如[UIImage ImageNamed:])、对象键名(例如forKeyPath)、空字符串、常见特殊字符串、字符串比较(isEqualToString)、url及域名前缀、前缀后缀判定、json名、日志代码、字体名、纯数字、特殊转义符号、debug相关文案及业务场景文案(例如车型代号D13、km/h)。可以理解的是,12)是针对上述第三级代码行筛选所进行的剔除工作。
可以理解,筛选完成后的格式是输出文件路径和文案,得到工程文案扫描结果。对于iOS工程后期迭代开发的功能,也可以复用这上述预设正则表达式进行筛查,以避免缺漏。
S204、遍历工程文案扫描结果中的各个文案,与预设翻译物料中的文案进行匹配,其中,预设翻译物料包括对应不同实际内容的多个文案集,每个文案集包括对应同一个实际内容的多个语种语言文案。
在该步骤中,通过遍历工程文案扫描结果中的每个文案,以使工程文案扫描结果与预设翻译物料进行对齐处理。
需要说明是,预设翻译物料包括对应不同实际内容的多个文案集,每个文案集包括对应同一个实际内容的多个语种语言文案。
举例来说,对于实际内容为“车辆”,则对应一个文案集;对于实际内容为“电池”,则对应另一个文案集。例如,对于实际内容为“车辆”的文案集,该文案集包含多个语种语言文案(例如中文文案1、英语文案2、法语文案3),中文文案1对应“车辆”这个文案,英语文案2对应“vehicle”这个文案,法语文案3对应“véhicule”这个文案。也就是说,对于含义相同的语句,基于不同的语种语言,将被划分成多个不同的文案。
S205、在工程文案扫描结果中的文案存在于预设翻译物料中的情况下,确定文案匹配成功,将匹配成功的文案配置唯一标识符。
在该步骤中,对于工程文案扫描结果中的某个文案,如果在文案同样存在于预设翻译物料中,则该文案匹配成功。例如,对于工程文案扫描结果中“车辆”这个文案,预设翻译物料中也存在“车辆”这个文案,则该文案匹配成功。
其中,唯一标识符key,该字段用于标识一条唯一的文案语义。
对于匹配成功的文案,对其配置唯一标识符key。在其中一种实施方式中,配置唯一标识符,包括:
(一)对于已存在标识符的文案,更新标识符,并使更新后的标识符为预设翻译物料中的唯一标识符。在其中一种实施方式中,对于已存在标识符的文案,更新该文案的标识符的方式可以包括:针对英语文案,提取前4个单词(相邻单词之间的空格用下横杠替换),若不足4个时则提取全部,并且在预设翻译物料中已有的标识符中遍历对比,如果该标识符已经存在,通过加数字后缀进行区分,在加数字后缀后再次遍历对比,依次递增,直到该标识符为唯一的,则配置完成该文案的唯一标识符key。进一步的,配置好的唯一标识符key可以***存储于预设翻译物料中。
(二)对于不存在标识符的文案,分配唯一标识符。可以理解,若匹配成功的文案没有标识符,则对其分配唯一标识符key,所分配的唯一标识符key也是预设翻译物料中唯一的。进一步的,分配的唯一标识符key可以***存储于预设翻译物料中。
S206、在工程文案扫描结果中的文案不存在于预设翻译物料中的情况下,确定文案匹配失败,将匹配失败的文案输出至预设翻译服务。
可以理解,工程文案扫描结果与预设翻译物料可能存在交集和差集,在该步骤中,对于工程文案扫描结果中的某个文案,如果在文案不存在于预设翻译物料中,则该文案匹配失败。例如,对于工程文案扫描结果中“车辆”这个文案,预设翻译物料中不存在“车辆”这个文案,则该文案匹配失败。
对于匹配失败的文案,将其输出至预设翻译服务。其中,预设翻译服务可以是指预设翻译软件服务器,为供应商所提供的翻译服务。预设翻译服务将输出针对匹配失败的文案的翻译结果,翻译结果包括该匹配失败的文案的多语言化处理结果,例如针对“车辆”这个文案,翻译结果可以包括中文文案“车辆”,英语文案“vehicle”,法语文案“véhicule”。
S207、根据预设翻译服务的翻译结果,更新预设翻译物料,以添加匹配失败的文案中实际内容所对应的多个语种语言文案。
在该步骤中,预设翻译物料添加了增量文案,完成了预设翻译物料的更新完善。
S208、在预设翻译物料更新后,再次对匹配失败的文案进行匹配,并在确定匹配失败的文案匹配成功后,将匹配失败的文案配置唯一标识符。
可以理解,在预设翻译物料更新后,预设翻译物料将存在原先匹配失败的文案,再次对原先匹配失败的文案进行匹配,能够确定原先匹配失败的文案可以与预设翻译物料成功匹配,将原先匹配失败的文案配置唯一标识符key。
由此可见,通过S204~S208的处理,目标应用程序的工程数据中所有需要用到的文案都已经配置了唯一标识符key,唯一标识符key可以实现目标应用程序的工程数据与预设翻译物料的关联,即通过唯一标识符key可以把代码、物料和配置全部串起来。
需要说明的是,在本申请实施例中,预设翻译物料可以根据现有终端所产生的翻译物料预先构建得到。也就是说,预设翻译物料可以是利用其他终端产生的翻译物料所构建得到的。这样,可以实现对存量翻译物料的有效再利用,从而能够降低目标应用程序的多语言处理的难度,提升了处理效率,增强了正确性及可靠性。
在执行完S205或S208之后,执行S209。
S209、通过唯一标识符读取工程文案扫描结果中所对应的文案,并替换为预设翻译物料中对应的目标语种语言文案。
需要说明的是,对应iOS平台,Xcode工程里面,文案存储于.string文件中。可以理解,.string文件是指一种文本文件,用于存储多语言本地化的字符串。在iOS开发中,.string文件用于存储应用程序中需要本地化的文本,以便根据用户的语言偏好自动选择适当的字符串。也就是说,.string文件包含一系列的键值对,每个键(即唯一标识符key)对应一个字符串的标识符,每个值(即文案)对应一个字符串的实际内容。这些键和值都被包含在双引号(")中。
还需要说明的是,不同语言的文案通过建立多个.string文件存储。也就是说,多个.string文件对应不同语种语言文案。
在该步骤中,通过唯一标识符key读取工程文案扫描结果中所对应的文案,并将其替换为预设翻译物料中对应的目标语种语言文案。其中,目标语种语言文案用于替换工程文案扫描结果中原先的文案,以实现文案的多语言化。例如,将中文转换为英文,举列来说,针对某个.string文件(例如命名为.xpString),@"车辆"会被替换成@"vehicle".xpString。
进一步的,可以遍历工程文案扫描结果,读取每个文案和它所在的文件,在预设翻译物料中里面查找该文案的唯一标识符key,然后在目标文件里面全局把文案替换。
在其中一种实施方式中,利用执行预设代码,读取当前所需语言的.string文件的唯一标识符key所对应的文案,以使得可以通过执行代码来实现应用程序的多语言化处理,提升多语言化处理效率。可见,唯一标识符key是实现用一句代码支持多语言本地化的关键。
S210、配置目标语种语言文案的唯一标识符。
在该步骤中,配置目标语种语言文案的唯一标识符,即填充了目标语种语言文案的映射,以使得文案可以生效。例如,"vehicle"="vehicle",前者为唯一标识符key,后者为界面最终要显示的文案。
需要说明的是,在该步骤中,可以针对每一种语种语言,遍历预设翻译物料里面中的文案,如果存储文案的.string文件已经包含该文案的标识符,则更新标识符,并使其为预设翻译物料中的唯一标识符key。如果存储文案的.string文件不包含该文案的标识符,则新增该文案的映射,为其分配唯一标识符key。可以理解,在iOS工程中,唯一标识符key能够用于唯一标识某个文案,以便在程序中对其进行处理和引用。
进一步的,iOS工程在后期的维护中一键导入所有新语言和新功能的多语言文案,也可以复用此逻辑。需要注意的是,在填充映射时,需要处理预设翻译物料中表格文件格式转化可能存在的问题,例如针对换行转义、安卓转义符替换等问题,可一并处理替换,以避免APP(Application,应用程序)界面显示文案错乱的问题。
从该实施例可以看出,本申请实施例提供的方法,通过执行对目标文件的筛选,并执行基于编程语言的语法规则所构建的预设正则表示式匹配,提升了对文案扫描匹配结果的有效性,避免了文案的无效扫描匹配,避免了资源无效浪费,提升了工程文案扫描结果的可靠性及准确性。本申请的多语言化处理方法能够利用预设翻译物料来实现对应用程序的多语言化处理,并通过唯一标识符实现目标应用程序的工程数据与预设翻译物料之间关于文案的关联,即实现了目标应用程序的工程数据与预设翻译物料的自动绑定,避免了人工核对成本,降低搬运出错率至零。利用预设翻译物料为目标应用程序执行多语言化处理的过程中,通过添加增量文案的方式实现了预设翻译物料的完善更新,并且预设翻译物料还可以被再用于为其他应用程序执行多语言化处理。由此可见,本申请的多语言化处理方法是一套高效、可持续的技术方案,实现了对文案的语义排查和检索,能够有效提高正确率及可靠性,提升多语言化处理效率,较少校对成本,降低人力资源成本。
可以理解,基于预设翻译物料根据现有终端所产生的翻译物料预先构建得到,并且预设翻译物料中的文案与目标应用程序的工程数据有交集和差集,使得需要执行关于配置唯一标识符key的相关处理。若从iOS工程开始时统一规划好所有终端(例如车载屏幕***、安卓***、iOS***、鸿蒙***等)的文案的唯一标识符key,则可以避免关于预设翻译物料中唯一标识符key的配置处理,也就是说,使得唯一标识符key能够被直接录入,从而提升多语言化处理的效率。
图3是本申请实施例的多语言化处理方法的又一流程示意图。
参见图3,该方法包括:
S301、工程数据内筛选、排重。
在该步骤中,实现了对目标应用程序的工程数据的筛选,得到了目标文件,并且执行了对目标文件的文案扫描,得到了工程文案扫描结果。
S302、对齐预设翻译物料。
在该步骤中,通过遍历工程文案扫描结果中的各个文案,与预设翻译物料中的文案进行匹配。
S303、判断文案是否一致。
在该步骤中,判断文案是否一致,若是则表示文案匹配成功,进而执行S306;若否则表示文案匹配失败,进而执行S304。
S304、添加增量文案。
在该步骤中,在工程文案扫描结果中的文案不存在于预设翻译物料中的情况下,确定文案匹配失败,因此需要将匹配失败的文案添加入预设翻译物料中。
S305、预设翻译服务输出翻译结果。
在该步骤中,匹配失败的文案被预设翻译服务处理,预设翻译服务将输出针对匹配失败的文案的翻译结果,翻译结果包括该匹配失败的文案的多语言化处理结果,从而使得该匹配失败的文案能够再被匹配成功。
S306、判断是否有唯一标识符。
在该步骤中,判断文案是否有唯一标识符,若是则执行S308,否则执行S307。
S307、根据语义自动生成唯一标识符。
在该步骤中,为文案配置唯一标识符。
S308、导入预设翻译物料。
在该步骤中,将配置完成的唯一标识符导入至预设翻译物料中。
S309、预处理。
在该步骤中,利用配置完成的唯一标识符读取目标文案,并实现了目标应用程序的工程数据与预设翻译物料的绑定。
S310、工程替换。
在该步骤中,将工程文案扫描结果中的文案替换为预设翻译物料中对应的目标语种语言文案。
S311、多语言导入。
在该步骤中,填充了目标语种语言文案的映射,以使得文案可以生效。
关于图3实施例中的方法,其中各个步骤执行操作的具体方式已经在图2的实施例中进行了详细描述,图3实施例不再做详细阐述说明。
与前述应用功能实现方法实施例相对应,本申请还提供了一种多语言化处理装置、电子设备及相应的实施例。
图4是本申请实施例示出的多语言化处理装置的结构示意图。
参见图4,一种多语言化处理装置40,其特征在于,包括:筛查模块410、对齐模块420、替换模块430、注入模块440。
筛查模块410,用于对目标应用程序的工程数据中的目标文件进行文案扫描,得到工程文案扫描结果。
对齐模块420,用于将筛查模块410得到的工程文案扫描结果中与预设翻译物料成功匹配的文案,配置唯一标识符,其中,预设翻译物料包括对应不同实际内容的多个文案集,每个文案集包括对应同一个实际内容的多个语种语言文案。
替换模块430,用于通过对齐模块420配置的唯一标识符读取工程文案扫描结果中所对应的文案,并替换为预设翻译物料中对应的目标语种语言文案。
注入模块440,用于配置替换模块430替换的目标语种语言文案的唯一标识符。
从该示例可以看出,本申请提供的装置,通过利用预设翻译物料来实现对应用程序的多语言化处理,提高了正确率及可靠性,提升了多语言化处理效率,降低了人力资源成本。
图5是本申请示出的多语言化处理装置的另一结构示意图;
参见图5,一种多语言化处理装置50,包括:筛查模块410、对齐模块420、替换模块430、注入模块440。
其中,筛查模块410包括第一筛选子模块411和第二筛选子模块412。
第一筛选子模块411,用于获取目标应用程序的工程数据,根据预设文件筛选规则,对目标应用程序的工程数据的进行筛选,得到目标文件。
第二筛选子模块412,用于依据预设正则表达式,对目标应用程序的工程数据中的目标文件进行文案扫描,得到工程文案扫描结果。其中,预设正则表达式根据编程语言的语法规则进行构建,用于剔除代码行中的无效代码格式。
其中,对齐模块420包括第一匹配子模块421和第二匹配子模块422。
第一匹配子模块421,用于遍历工程文案扫描结果中的各个文案,与预设翻译物料中的文案进行匹配,在工程文案扫描结果中的文案存在于预设翻译物料中的情况下,确定文案匹配成功,将匹配成功的文案配置唯一标识符。
第二匹配子模块422,用于遍历工程文案扫描结果中的各个文案,与预设翻译物料中的文案进行匹配,在工程文案扫描结果中的文案不存在于预设翻译物料中的情况下,确定文案匹配失败,将匹配失败的文案输出至预设翻译服务,根据预设翻译服务的翻译结果,更新预设翻译物料,以添加匹配失败的文案中实际内容所对应的多个语种语言文案,在预设翻译物料更新后,再次对匹配失败的文案进行匹配,并在确定匹配失败的文案匹配成功后,将匹配失败的文案配置唯一标识符。
其中,替换模块430、注入模块440的功能可以参见图4中的描述,此处不再赘述。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不再做详细阐述说明。
图6是本申请实施例示出的电子设备的结构示意图。
参见图6,电子设备600包括存储器610和处理器620。
处理器620可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器610可以包括各种类型的存储单元,例如***内存、只读存储器(ROM)和永久存储装置。其中,ROM可以存储处理器620或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。***内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。***内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器610可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(例如DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器610可以包括可读和/或写的可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD-ROM,双层DVD-ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如SD卡、min SD卡、Micro-SD卡等)、磁性软盘等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
存储器610上存储有可执行代码,当可执行代码被处理器620处理时,可以使处理器620执行上文述及的方法中的部分或全部。
此外,根据本申请的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本申请的上述方法中部分或全部步骤的计算机程序代码指令。
或者,本申请还可以实施为一种计算机可读存储介质(或非暂时性机器可读存储介质或机器可读存储介质),其上存储有可执行代码(或计算机程序或计算机指令代码),当可执行代码(或计算机程序或计算机指令代码)被电子设备(或服务器等)的处理器执行时,使处理器执行根据本申请的上述方法的各个步骤的部分或全部。
以上已经描述了本申请的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文披露的各实施例。
Claims (12)
1.一种多语言化处理方法,其特征在于,包括:
对目标应用程序的工程数据中的目标文件进行文案扫描,得到工程文案扫描结果;
将所述工程文案扫描结果中与预设翻译物料成功匹配的文案,配置唯一标识符;其中,所述预设翻译物料包括对应不同实际内容的多个文案集,每个文案集包括对应同一个实际内容的多个语种语言文案;
通过所述唯一标识符读取所述工程文案扫描结果中所对应的文案,并替换为所述预设翻译物料中对应的目标语种语言文案;
配置所述目标语种语言文案的唯一标识符。
2.根据权利要求1所述的方法,其特征在于,所述对目标应用程序的工程数据中的目标文件进行文案扫描,得到工程文案扫描结果之前,还包括:
获取目标应用程序的工程数据;
根据预设文件筛选规则,对所述目标应用程序的工程数据的进行筛选,得到目标文件。
3.根据权利要求2所述的方法,其特征在于,所述根据预设文件筛选规则,对所述目标应用程序的工程数据的进行筛选,得到目标文件,包括:
在所述目标应用程序的工程数据中,指定代码目录,并在所述代码目录剔除无效文件目录后,通过白名单文件剔除无效文件,得到目标文件。
4.根据权利要求1所述的方法,其特征在于,所述对目标应用程序的工程数据中的目标文件进行文案扫描,得到工程文案扫描结果,包括:
依据预设正则表达式,对目标应用程序的工程数据中的目标文件进行文案扫描,得到工程文案扫描结果;
其中,所述预设正则表达式根据编程语言的语法规则进行构建,用于剔除代码行中的无效代码格式。
5.根据权利要求4所述的方法,其特征在于,所述预设正则表达式所剔除的代码格式,至少包括以下部分或全部内容:
字典糖语法的key字符串、宏定义、静态变量声明;
历史遗留的localized本地化字符串、bundle资源包的包名以及通知的名称声明与使用、错误对象的domain、动态语法中的类名、图片名、对象键名、空字符串、常见特殊字符串、字符串比较、url及域名前缀、前缀后缀判定、json名、日志代码、字体名、纯数字、特殊转义符号、debug相关文案及业务场景文案。
6.根据权利要求1所述的方法,其特征在于,所述将所述工程文案扫描结果中与预设翻译物料成功匹配的文案,配置唯一标识符,包括:
遍历所述工程文案扫描结果中的各个文案,与预设翻译物料中的文案进行匹配;
在所述工程文案扫描结果中的文案存在于所述预设翻译物料中的情况下,确定文案匹配成功,将匹配成功的文案配置唯一标识符。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
在所述工程文案扫描结果中的文案不存在于所述预设翻译物料中的情况下,确定文案匹配失败,将匹配失败的文案输出至预设翻译服务;
根据所述预设翻译服务的翻译结果,更新所述预设翻译物料,以添加所述匹配失败的文案中实际内容所对应的多个语种语言文案;
在所述预设翻译物料更新后,再次对所述匹配失败的文案进行匹配,并在确定所述匹配失败的文案匹配成功后,将所述匹配失败的文案配置唯一标识符。
8.根据权利要求1所述的方法,其特征在于,所述配置唯一标识符,包括:
对于已存在标识符的文案,更新所述标识符,并使更新后的所述标识符为所述预设翻译物料中的唯一标识符;
对于不存在标识符的文案,分配唯一标识符。
9.根据权利要求1所述的方法,其特征在于:
所述预设翻译物料根据现有终端所产生的翻译物料预先构建得到。
10.一种多语言化处理装置,其特征在于,包括:
筛查模块,用于对目标应用程序的工程数据中的目标文件进行文案扫描,得到工程文案扫描结果;
对齐模块,用于将所述筛查模块得到的工程文案扫描结果中与预设翻译物料成功匹配的文案,配置唯一标识符;其中,所述预设翻译物料包括对应不同实际内容的多个文案集,每个文案集包括对应同一个实际内容的多个语种语言文案;
替换模块,用于通过所述对齐模块配置的唯一标识符读取所述工程文案扫描结果中所对应的文案,并替换为所述预设翻译物料中对应的目标语种语言文案;
注入模块,用于配置所述替换模块替换的目标语种语言文案的唯一标识符。
11.一种电子设备,其特征在于,包括:
处理器;以及
存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1-9中任一项所述的方法。
12.一种计算机可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1-9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311713277.4A CN117707673A (zh) | 2023-12-13 | 2023-12-13 | 多语言化处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311713277.4A CN117707673A (zh) | 2023-12-13 | 2023-12-13 | 多语言化处理方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117707673A true CN117707673A (zh) | 2024-03-15 |
Family
ID=90161795
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311713277.4A Pending CN117707673A (zh) | 2023-12-13 | 2023-12-13 | 多语言化处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117707673A (zh) |
-
2023
- 2023-12-13 CN CN202311713277.4A patent/CN117707673A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104317788B (zh) | Android多国语言翻译方法和装置 | |
CN103593406A (zh) | 一种静态资源标识处理方法及装置 | |
CN116226170A (zh) | 一种数据库语句转换方法、装置、电子设备及存储介质 | |
US8874426B2 (en) | Method for translating computer generated log files | |
CN109947711B (zh) | 一种对ios项目开发过程中的多语言文件自动化管理方法 | |
Cacho et al. | Using the *** web 1t 5-gram corpus for ocr error correction | |
CN112965772A (zh) | web页面显示方法、装置和电子设备 | |
CN112667208A (zh) | 翻译错误识别方法、装置、计算机设备及可读存储介质 | |
CN111638930A (zh) | 基于shell配置iOS多语言脚本方法及*** | |
CN117707673A (zh) | 多语言化处理方法、装置、设备及存储介质 | |
US20220269706A1 (en) | Methods and systems to parse a software component search query to enable multi entity search | |
CN115688690A (zh) | 将Word文档内容转换成符合S1000D标准XML片段的动态转换方法 | |
CN111581950B (zh) | 同义名称词的确定方法和同义名称词的知识库的建立方法 | |
CN111443979B (zh) | 文档处理方法、装置、计算机设备及存储介质 | |
CA3148074A1 (en) | Text information extracting method, device, computer equipment and storage medium | |
CN111444456B (zh) | 一种样式编辑方法、装置及电子设备 | |
CN114385167A (zh) | 前端页面生成方法、装置、设备及介质 | |
US20230186022A1 (en) | Method and system for finding associations between natural language and computer language | |
CN114692651A (zh) | 文本翻译方法、装置及计算机可读介质 | |
US10268674B2 (en) | Linguistic intelligence using language validator | |
CN110618809B (zh) | 一种前端网页输入约束提取方法和装置 | |
CN114168189A (zh) | 一种Vue项目代码的翻译方法、设备及介质 | |
CN117407102A (zh) | 软件项目国际化的方法、工具、存储介质及服务器 | |
CN118095298A (zh) | 应用的翻译检测方法、装置和计算机可读存储介质 | |
CN115952806A (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 |