首页 / 专利库 / 专利权 / 第I章 / 国际申请 / 枚举类的国际化方法、装置、计算机设备及存储介质

枚举类的国际化方法、装置、计算机设备及存储介质

阅读:1026发布:2020-05-11

专利汇可以提供枚举类的国际化方法、装置、计算机设备及存储介质专利检索,专利查询,专利分析的服务。并且本 申请 涉及一种枚举类的国际化方法、装置、计算机设备及存储介质,其中该方法包括:获取枚举类的国际化 请求 ;根据所述枚举类的国际化请求调用 接口 的默认实现方法,所述默认实现方法用于处理枚举类的国际化过程;判断是否配置了对应的国际化文件;若配置了对应的国际化文件,则判断所述对应的国际化文件中是否存在匹配的Locale;若存在匹配的Locale,则判断所述对应的国际化文件中是否存在匹配的key;若存在匹配的key,则取出所述匹配的Locale的值。本 发明 针对现有的枚举常量如何高效的进行国际化,在不改变原枚举的使用方式的 基础 上,通过在底层 框架 中增加对枚举国际化的处理流程,以达到降低枚举的国际化的工作量、减少失误的目的。,下面是枚举类的国际化方法、装置、计算机设备及存储介质专利的具体信息内容。

1.一种枚举类的国际化方法,其特征在于,所述方法包括:
获取枚举类的国际化请求
根据所述枚举类的国际化请求调用接口的默认实现方法,所述默认实现方法用于处理枚举类的国际化过程;
判断是否配置了对应的国际化文件;
若配置了对应的国际化文件,则判断所述对应的国际化文件中是否存在匹配的Locale;
若存在匹配的Locale,则判断所述对应的国际化文件中是否存在匹配的key;
若存在匹配的key,则取出所述匹配的Locale的值。
2.根据权利要求1所述的枚举类的国际化方法,其特征在于,在所述判断是否配置了对应的国际化文件的步骤之后还包括:
若未配置对应的国际化文件,则取出枚举默认值并返回。
3.根据权利要求2所述的枚举类的国际化方法,其特征在于,在所述判断所述对应的国际化文件中是否存在匹配的Locale的步骤之后还包括:
若所述对应的国际化文件中不存在匹配的Locale,则取出枚举默认值并返回。
4.根据权利要求3所述的枚举类的国际化方法,其特征在于,在所述判断所述对应的国际化文件中是否存在匹配的key的步骤之后还包括:
若所述对应的国际化文件中不存在匹配的key,则取出枚举默认值并返回。
5.根据权利要求1-4任一项所述的枚举类的国际化方法,其特征在于,所述方法还包括:
通过工具类扫描枚举类所在包,并生成对应的key;
通过参考A.properties文件将中文翻译为指定Locale语言的文件。
6.一种枚举类的国际化装置,其特征在于,所述装置包括:
获取模,所述获取模块用于获取枚举类的国际化请求;
调用模块,所述调用模块用于根据所述枚举类的国际化请求调用接口的默认实现方法,所述默认实现方法用于处理枚举类的国际化过程;
第一判断模块,所述第一判断模块用于判断是否配置了对应的国际化文件;
第二判断模块,所述第二判断模块用于若配置了对应的国际化文件,则判断所述对应的国际化文件中是否存在匹配的Locale;
第三判断模块,所述第三判断模块用于若存在匹配的Locale,则判断所述对应的国际化文件中是否存在匹配的key;
第一返回模块,所述第一返回模块用于若存在匹配的key,则取出所述匹配的Locale的值并返回。
7.根据权利要求6所述的枚举类的国际化装置,其特征在于,所述装置还包括第二返回模块,所述第二返回模块用于:
若未配置对应的国际化文件,则取出枚举默认值并返回;
若所述对应的国际化文件中不存在匹配的Locale,则取出枚举默认值并返回;
若所述对应的国际化文件中不存在匹配的key,则取出枚举默认值并返回。
8.根据权利要求6或7所述的枚举类的国际化装置,其特征在于,所述装置还包括翻译模块,所述翻译模块用于:
通过工具类扫描枚举类所在包,并生成对应的key;
通过参考A.properties文件将中文翻译为指定Locale语言的文件。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。

说明书全文

枚举类的国际化方法、装置、计算机设备及存储介质

技术领域

[0001] 本发明涉及计算机技术领域,特别是涉及一种枚举类的国际化方法、装置、计算机设备及存储介质。

背景技术

[0002] 在实际开发中,一个web应用可能要在多个地区使用,面对不同地区的不同语言,为了适应不同的用户,可以尝试在前端页面实现多语言的支持,那么同样对于后端返回的一些提示信息,异常信息等,后端也可以根据不同的语言环境来进行国际化处理,返回相应的信息。
[0003] 目前,在Spring项目开发过程中,往往会使用大量的枚举类映射数据库中类型为tinyint的字段,及使用枚举维护异常的Message。当需要国际化时,如果将中文按照key=value形式存放在i18n/*.properties文件中,然后使用Spring的MessageSource调用key,从而获取对应Locale的值。虽然这样操作可以解决国际化问题,但是容易出现遗漏,且改动的工作量比较大。

发明内容

[0004] 基于此,有必要针对上述技术问题,提供一种可以降低枚举类的国际化的工作量,减少失误的枚举类的国际化方法、装置、计算机设备及存储介质。
[0005] 一种枚举类的国际化方法,所述方法包括:
[0006] 获取枚举类的国际化请求
[0007] 根据所述枚举类的国际化请求调用接口的默认实现方法,所述默认实现方法用于处理枚举类的国际化过程;
[0008] 判断是否配置了对应的国际化文件;
[0009] 若配置了对应的国际化文件,则判断所述对应的国际化文件中是否存在匹配的Locale;
[0010] 若存在匹配的Locale,则判断所述对应的国际化文件中是否存在匹配的key;
[0011] 若存在匹配的key,则取出所述匹配的Locale的值。
[0012] 在其中一个实施例中,在所述判断是否配置了对应的国际化文件的步骤之后还包括:
[0013] 若未配置对应的国际化文件,则取出枚举默认值并返回。
[0014] 在其中一个实施例中,在所述判断所述对应的国际化文件中是否存在匹配的Locale的步骤之后还包括:
[0015] 若所述对应的国际化文件中不存在匹配的Locale,则取出枚举默认值并返回。
[0016] 在其中一个实施例中,在所述判断所述对应的国际化文件中是否存在匹配的key的步骤之后还包括:
[0017] 若所述对应的国际化文件中不存在匹配的key,则取出枚举默认值并返回。
[0018] 在其中一个实施例中,所述方法还包括:
[0019] 通过工具类扫描枚举类所在包,并生成对应的key;
[0020] 通过参考A.properties文件将中文翻译为指定Locale语言的文件。
[0021] 一种枚举类的国际化装置,所述装置包括:
[0022] 获取模,所述获取模块用于获取枚举类的国际化请求;
[0023] 调用模块,所述调用模块用于根据所述枚举类的国际化请求调用接口的默认实现方法,所述默认实现方法用于处理枚举类的国际化过程;
[0024] 第一判断模块,所述第一判断模块用于判断是否配置了对应的国际化文件;
[0025] 第二判断模块,所述第二判断模块用于若配置了对应的国际化文件,则判断所述对应的国际化文件中是否存在匹配的Locale;
[0026] 第三判断模块,所述第三判断模块用于若存在匹配的Locale,则判断所述对应的国际化文件中是否存在匹配的key;
[0027] 第一返回模块,所述第一返回模块用于若存在匹配的key,则取出所述匹配的Locale的值并返回。
[0028] 在其中一个实施例中,所述装置还包括第二返回模块,所述第二返回模块用于:
[0029] 若未配置对应的国际化文件,则取出枚举默认值并返回;
[0030] 若所述对应的国际化文件中不存在匹配的Locale,则取出枚举默认值并返回;
[0031] 若所述对应的国际化文件中不存在匹配的key,则取出枚举默认值并返回。
[0032] 在其中一个实施例中,所述装置还包括翻译模块,所述翻译模块用于:
[0033] 通过工具类扫描枚举类所在包,并生成对应的key;
[0034] 通过参考A.properties文件将中文翻译为指定Locale语言的文件。
[0035] 一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意一项方法的步骤。
[0036] 一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项方法的步骤。
[0037] 上述枚举类的国际化方法、装置、计算机设备及存储介质,通过获取枚举类的国际化请求;根据所述枚举类的国际化请求调用接口的默认实现方法,所述默认实现方法用于处理枚举类的国际化过程;判断是否配置了对应的国际化文件;若配置了对应的国际化文件,则判断所述对应的国际化文件中是否存在匹配的Locale;若存在匹配的Locale,则判断所述对应的国际化文件中是否存在匹配的key;若存在匹配的key,则取出所述匹配的Locale的值。本发明针对现有的枚举常量如何高效的进行国际化,在不改变原枚举的使用方式的基础上,通过在底层框架中增加对枚举国际化的处理流程,以达到降低枚举的国际化的工作量、减少失误的目的。附图说明
[0038] 图1为一个实施例中枚举类的国际化方法的流程示意图;
[0039] 图2为另一个实施例中枚举类的国际化方法的流程示意图;
[0040] 图3为再一个实施例中枚举类的国际化方法的流程示意图;
[0041] 图4为一个实施例中枚举类的国际化装置的结构框图
[0042] 图5为另一个实施例中枚举类的国际化装置的结构框图;
[0043] 图6为另一个实施例中枚举类的国际化装置的结构框图;
[0044] 图7为一个实施例中计算机设备的内部结构图。

具体实施方式

[0045] 为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
[0046] 在Spring项目开发过程中,往往会使用大量的枚举类映射数据库中类型为tinyint的字段,例如源代码1所示,及使用枚举维护异常的Message,例如源代码2所示。
[0047] 源代码1:
[0048]
[0049]
[0050] 源代码2:
[0051]
[0052]
[0053] 当需要国际化时,如果将中文按照key=value形式存放在i18n/*.properties文件中,然后使用Spring的MessageSource调用key,从而获取对应Locale的值。虽然这样操作可以解决国际化问题,但是容易出现遗漏,且改动的工作量比较大。基于此,本发明提供了一种快捷处理枚举类国际化的技术方案。
[0054] 在一个实施例中,如图1所示,提供了一种枚举类的国际化方法,该方法包括:
[0055] 步骤102,获取枚举类的国际化请求;
[0056] 步骤104,根据枚举类的国际化请求调用接口的默认实现方法,默认实现方法用于处理枚举类的国际化过程;
[0057] 步骤106,判断是否配置了对应的国际化文件;
[0058] 步骤108,若配置了对应的国际化文件,则判断对应的国际化文件中是否存在匹配的Locale;
[0059] 步骤110,若存在匹配的Locale,则判断对应的国际化文件中是否存在匹配的key;
[0060] 步骤112,若存在匹配的key,则取出匹配的Locale的值。
[0061] 具体地,在本实施例中主要使用了SpringBoot的自动加载和Spring Bean的懒加载技术,同时结合枚举的特点形成一套快捷,少失误的技术方案,具体的实现过程以及原理如下:
[0062] 首先,提供一个工具类,扫描枚举类所在包,生成key,value为中文值的A.properties文件;可以参考此文件将中文翻译为指定Locale语言的文件。
[0063] 接着,在枚举实现的接口类,例如:源代码1的BaseEnum,源代码2的I18nErrorEnum,在增加默认实现方法,由默认方法处理国际化的过程,在需要国际化处理的字段进行调用,处理流程如图3所示。
[0064] 具体地,先判断是否配置了对应的国际化文件;若配置了对应的国际化文件,则判断对应的国际化文件中是否存在匹配的Locale;若存在匹配的Locale,则判断对应的国际化文件中是否存在匹配的key;若存在匹配的key,则取出匹配的Locale的值并返回结束。
[0065] 在本实施例中,通过获取枚举类的国际化请求;根据枚举类的国际化请求调用接口的默认实现方法,默认实现方法用于处理枚举类的国际化过程;判断是否配置了对应的国际化文件;若配置了对应的国际化文件,则判断对应的国际化文件中是否存在匹配的Locale;若存在匹配的Locale,则判断对应的国际化文件中是否存在匹配的key;若存在匹配的key,则取出匹配的Locale的值。本实施例针对现有的枚举常量如何高效的进行国际化,在不改变原枚举的使用方式的基础上,通过在底层框架中增加对枚举国际化的处理流程,以达到降低枚举的国际化的工作量、减少失误的目的。此外,本实施例中枚举类的国际化修改工作,由于改动在实现的接口的默认方法处,故无需改动。
[0066] 在一个实施例中,如图2所示,提供了一种枚举类的国际化方法,该方法还包括:
[0067] 步骤202,通过工具类扫描枚举类所在包,并生成对应的key;
[0068] 步骤204,通过参考A.properties文件将中文翻译为指定Locale语言的文件。
[0069] 具体地,在本实施例中,通过提供一个工具类,扫描枚举类所在包,生成key为Class.getSimpleName()+”.”+Enum.name(),value为中文值的A.properties文件;可以参考此文件将中文翻译为指定Locale语言的文件。
[0070] 例如:参考源代码1中所示的key为DisEnableEnum.N,DisEnableEnum.Y,DisEnableEnum.H。
[0071] 在本实施例中,国际化文件使用了工具类进行处理,只需要对原中文进行翻译,避免出现遗漏。
[0072] 在一个实施例中,在判断是否配置了对应的国际化文件的步骤之后还包括:若未配置对应的国际化文件,则取出枚举默认值并返回;
[0073] 在判断所述对应的国际化文件中是否存在匹配的Locale的步骤之后还包括:若对应的国际化文件中不存在匹配的Locale,则取出枚举默认值并返回;
[0074] 在判断对应的国际化文件中是否存在匹配的key的步骤之后还包括:若对应的国际化文件中不存在匹配的key,则取出枚举默认值并返回。
[0075] 在本实施例中,若未配置对应的国际化文件,或者对应的国际化文件中不存在匹配的Locale,又或者对应的国际化文件中不存在匹配的key,则直接取出枚举默认值并返回结束。
[0076] 具体地,以源代码2中的ApplyUserExceptionEnum为例阐述底层框架的处理过程,在未进行国际化时,ApplyUserExceptionEnum.e(args)返回的是ErrorMsg的信息,在IErrorEnum增加获取国际化的方法getI18nEnumMsg(args),在调用ApplyUserExceptionEnum.e(args)时,由getI18nEnumMsg根据配置返回与系统Locale匹配的ErrorMsg信息,如果未找到匹配的Locale的ErrorMsg,则返回枚举内ErrorMsg内容。
[0077] IErrorEnum的关键实现代码包括:
[0078]
[0079]
[0080] 应该理解的是,虽然图1-3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0081] 在一个实施例中,如图4所示,提供了一种枚举类的国际化装置400,包括:
[0082] 获取模块401,用于获取枚举类的国际化请求;
[0083] 调用模块402,用于根据枚举类的国际化请求调用接口的默认实现方法,默认实现方法用于处理枚举类的国际化过程;
[0084] 第一判断模块403,用于判断是否配置了对应的国际化文件;
[0085] 第二判断模块404,用于若配置了对应的国际化文件,则判断对应的国际化文件中是否存在匹配的Locale;
[0086] 第三判断模块405,用于若存在匹配的Locale,则判断对应的国际化文件中是否存在匹配的key;
[0087] 第一返回模块406,用于若存在匹配的key,则取出匹配的Locale的值并返回。
[0088] 在一个实施例中,如图5所示,提供了一种枚举类的国际化装置400,该装置还包括第二返回模块407,用于:
[0089] 若未配置对应的国际化文件,则取出枚举默认值并返回;
[0090] 若对应的国际化文件中不存在匹配的Locale,则取出枚举默认值并返回;
[0091] 若对应的国际化文件中不存在匹配的key,则取出枚举默认值并返回。
[0092] 在一个实施例中,如图6所示,提供了一种枚举类的国际化装置400,该装置还包括翻译模块408,用于:
[0093] 通过工具类扫描枚举类所在包,并生成对应的key;
[0094] 通过参考A.properties文件将中文翻译为指定Locale语言的文件。
[0095] 关于枚举类的国际化装置的具体限定可以参见上文中对于枚举类的国际化方法的限定,在此不再赘述。
[0096] 在一个实施例中,提供了一种计算机设备,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器以及网络接口。其中,该计算机设备的处理器用于提供计算和控制能。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种枚举类的国际化方法。
[0097] 本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0098] 在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以上各个方法实施例中的步骤。
[0099] 在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上各个方法实施例中的步骤。
[0100] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
[0101] 以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0102] 以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈