CN114168246A - 前后端分离架构下的多语言切换方法、组件、介质及设备 - Google Patents
前后端分离架构下的多语言切换方法、组件、介质及设备 Download PDFInfo
- Publication number
- CN114168246A CN114168246A CN202111461212.6A CN202111461212A CN114168246A CN 114168246 A CN114168246 A CN 114168246A CN 202111461212 A CN202111461212 A CN 202111461212A CN 114168246 A CN114168246 A CN 114168246A
- Authority
- CN
- China
- Prior art keywords
- language
- background
- information
- resource file
- multilingual
- 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.)
- Granted
Links
Images
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
-
- 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
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
- Machine Translation (AREA)
Abstract
本申请公开了一种前后端分离架构下的多语言切换方法、组件、介质及设备,属于软件开发领域。该方法主要包括前端多语言处理流程和后台多语言处理流程,后台通用面向切面编程技术,拦截前端请求的后台应用程序接口,获取包含目标语种对应本地化信息的自定义多语言数据头,后台根据自定义多语言数据头中的语言信息标识,获取目标语种对应的后台多语言资源文件中的国际化信息,并将国际化信息返回前端。本方案中前端通过请求自定义多语言数据头加上目标语种对应的前端多语言资源文件中的本地化信息,保持前端和后台的本地化信息的一致性;自主封装前后端分离模式下的前端多语言处理流程和后台多语言处理流程保证了本方案的完整性、自主性和标准性。
Description
技术领域
本申请涉及软件开发领域,特别涉及一种前后端分离架构下的多语言切换方法、组件、介质及设备。
背景技术
当前软件开发中,跨境的交流、业务、合作越来越多。一个应用系统,面向的使用用户涉及多个国家的情况也越来越多,应用国际化展示的需求也应用更广泛。虽然主流的开发语言,都提供有国际化的实现方案,但主要都是前后端不分离的实现方案,主要不足在于当前主流开发语言国际化实现,都是前后端整合一起的实现方案,不能满足前后端分离模式的实现;现在前后端分离模式已经是软件开发主流,需要在前后台分离模式下实现多语言切换,多语言切换在前端能按选择切换语言,后台的信息不能同样可以按所选语言切换。
前后端分离开发模式,前后端分离并不只是开发模式,而是web应用的一种架构模式。在开发阶段,前后端工程师约定好数据交互接口,实现并行开发和测试;在运行阶段前后端分离模式需要对web应用进行分离部署,前后端之前使用HTTP或者其他协议进行交互请求。
JavaEE国际化i18n特性,i18n是指应用程序能够以多种不同语言为用户提供服务的能力。Java已经内置了对国际化的支持。Java还提供了数据格式的格式化,以及相应的日期和时间调整。Java国际化有助于使Java应用程序处理不同的语言,数字格式,货币,地区特定的时间格式。
Ant design of vue,Ant Design作为一门设计语言面世,经历过多年的迭代和积累,它对UI的设计思想已经成为一套事实标准,ant-design-vue是Ant Design的Vue实现,组件的风格与Ant Design保持同步,组件的html结构和css样式以及组件API也保持一致,ant-design-vue封装了前端对应多语言切换的国际化支持。
常见的国际化实现方案,但有些仅适用于前后端不分离情况,部分只有前端的国际化实现,或者需要商务引入第三方解决方法会产生额外的成本。
发明内容
针对现有技术存在国际化方案中没有完整的前后端分离架构下的多语言切换方案的问题,本申请主要提供一种前后端分离架构下的多语言切换方法、组件、介质及设备。
为了解决上述问题,本申请采用的一个技术方案是:提供一种前后端分离架构下的多语言切换方法,其包括:
前端多语言处理流程,其包括:前端根据系统应用支持的语言环境,加载前端多语言资源文件集,并将其存储在缓存内存中;前端利用国际化特性,在前端多语言资源文件集中,根据前台用户切换的目标语种选择对应的前端多语言资源文件,并将前端多语言资源文件中的固定展示信息展示给前台用户,其中国际化特性为Vue的i18n特性,固定展示信息包括用户操作页面中的标签内容信息、按键内容信息以及表头内容信息;后台多语言处理流程,其包括:后台通过面向切面编程技术,拦截前端请求的后台应用程序接口,获取包含目标语种对应本地化信息的自定义多语言数据头,并将其保存到线程局部变量中;后台根据线程局部变量中自定义多语言数据头中的语言信息标识,通过多语言资源工具读取后台自动加载的后台多语言资源文件集中目标语种对应后台多语言资源文件内容中的国际化信息,并将国际化信息返回前端,并展示给前台用户,其中国际化信息包括不做本地化转换的数据库数据以及本地化自动转换的消息、动态搜索提示和、或格式化数据。
本申请采用的另一个技术方案是:提供一种前后端分离架构下的多语言切换组件,其包括:前端多语言处理模块,其用于前端根据系统应用支持的语言环境,加载前端多语言资源文件集,并将其存储在缓存内存中;其用于前端利用国际化特性,在前端多语言资源文件集中,根据前台用户切换的目标语种选择对应的前端多语言资源文件,并将前端多语言资源文件中的固定展示信息展示给前台用户,其中国际化特性为Vue的i18n特性,固定展示信息包括用户操作页面中的标签内容信息、按键内容信息以及表头内容信息;后台多语言处理模块,其用于后台通过面向切面编程技术,拦截前端请求的后台应用程序接口,获取包含目标语种对应本地化信息的自定义多语言数据头,并将其保存到线程局部变量中;其用于后台根据线程局部变量中自定义多语言数据头中的语言信息标识,通过多语言资源工具读取后台自动加载的后台多语言资源文件集中目标语种对应后台多语言资源文件内容中的国际化信息,并将国际化信息返回前端,并展示给前台用户,其中国际化信息包括不做本地化转换的数据库数据以及本地化自动转换的消息、动态搜索提示和/或格式化数据。
本申请采用的另一个技术方案是:提供一种计算机可读存储介质,其存储有计算机指令,该计算机指令被操作以执行方案一中的前后端分离架构下的多语言切换方法。
本申请采用的另一个技术方案是:提供一种计算机设备,其包括处理器和存储器,存储器存储有计算机指令,该计算机指令被操作以执行方案一中的前后端分离架构下的多语言切换方法。
本申请的技术方案可以达到的有益效果是:本申请设计了一种前后端分离架构下的多语言切换方法、组件、介质及设备。本申请前端通过请求自定义多语言数据头加上目标语种对应的前端多语言资源文件中的本地化信息,保持前端和后台的本地化信息的一致性;前端采用集成的vue-i18n国际化实现,后台采用的是Java的国际化实现,兼容集成Vue和Java的国际化实现使得本方案与第三方对接时更加便利,保证了本方案的标准性;自主封装的前后端分离国际化实现,不涉及第三方产品、框架和组件,在进行扩展修改和应用时有一定的自主性,无需第三方同意或产生额外成本。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一种前后端分离架构下的多语言切换方法的一个具体实施方式的示意图;
图2是本申请一种前后端分离架构下的多语言切换方法的前端多语言处理流程图;
图3是本申请一种前后端分离架构下的多语言切换方法的架构图;
图4是本申请一种前后端分离架构下的多语言切换方法的后台多语言处理流程图;
图5是本申请一种前后端分离架构下的多语言切换组件的一个具体实施方式的示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
下面结合附图对本申请的较佳实施例进行详细阐述,以使本申请的优点和特征能更易于被本领域技术人员理解,从而对本申请的保护范围做出更为清楚明确的界定。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
当前市面上的国际化解决方案有Java国际化实现、XBoot前后端分离框架等。其中Java的国际化实现主要依托国际化、本地化的支持完成实现,对日期、时间、数字格式、货币格式、测量单位、邮政地址等日常信息对应不同地区、时区的本地化自适应转换。Java国际化主要应用在后台对以上信息的自适应。XBoot是一个一站式前后端分离快速开发平台,是基于Spring Boot和Vue开发,整合Activiti工作流、Elasticsearch、Redis等,提供配套跨全端APP,来帮助中小型企业及个人实现敏捷化的应用交付和运营管理,该开发框架集成有多语言国际化支持。以上常见的国际化实现方案,但有些仅适用于前后端不分离情况,部分只有前端的国际化实现,或者需要商务引入第三方解决方法会产生额外的成本。
针对实际开发应用中,前后端分离模式下的国际化需求,本申请研究实现一套前后端分离模式下的国际化多语言切换方法和组件,满足国际化功能并具有以下特性,一是支持前后端分离的实现模式,分有前端实现部分和后台实现部分,切实满足前后端分离时的多语言切换功能;二是前端模块的多语言配置,记录在前端js文件中,加载一次后常驻内存,多语言切换响应及时流畅;三是后台的多语言国际化配置,与javaEE的国际化实现兼容,保证了以后的国际化扩展性与标准性,在需要时可以快速的扩展或与其他应用集成;四是国际化多语言切换在前端、后台切换的一致性,用户在前台操作选择对应的语言,通过改变自动设置的多语言数据头,后台自动按选择对应返回的相关信息同样做对应的语言切换。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图1示出了本申请一种前后端分离架构下的多语言切换方法的一个具体实施方式。
在图1所示的具体实施方式中,前后端分离架构下的多语言切换方法主要包括:步骤S101,前端多语言处理流程,前端根据系统应用支持的语言环境,加载前端多语言资源文件集,并将其存储在缓存内存中;前端利用国际化特性,在前端多语言资源文件集中,根据前台用户切换的目标语种选择对应的前端多语言资源文件,并将前端多语言资源文件中的固定展示信息展示给前台用户,其中国际化特性为Vue的i18n特性,固定展示信息包括用户操作页面中的标签内容信息、按键内容信息以及表头内容信息。
在该具体实施方式中,国际化特性指的是前端Vue的i18n特性,i18n是“国际化”的简称,其来源于internationalization的首末字符i和n,18为中间的字符数。在资讯领域,国际化(i18n)指让产品(如出版物,软件,硬件等)无需做大的改变就能够适应不同的语言和地区的需要,其中$i18n.locale=locale指的是利用前端Vue的i18n特性转换多语言信息。前端多语言资源文件集包含国际上各个国家的语言文件,将中文切换成英文时,需要将中文对应的前端多语言资源文件转换为英文对应的前端多语言资源文件;前端多语言资源文件为javascript文件,前端多语言资源文件集加载在缓存内存中,方便随时转换前台页面中的固定展示信息;在前台用户操作页面中,前台用户点击“语言切换”按钮,在动态下拉菜单中选择目标语种,前端在缓存内存中及时动态加载目标语种对应的前端多语言资源文件,使得多语言切换响应及时流畅。
在本申请的一个具体实例中,前端可以利用国际化特性中的vue-i18n特性处理多语言问题,但前端的多语言处理有局限性,一般只限于处理固定展示信息内容如:标签、按键、表头等内容(标签显示“订单号”和“order number”,按钮显示“提交”和“submit”间切换)。
在本申请的一个具体实例中,前端初始化时,加载多个前端多语言资源文件。翻译是多个前端多语言资源文件中的一个动作实现。比如“订单号”默认中文时显示中文订单号,准备英文对应的前端多语言资源文件时,对应翻译转化记录成“order number”,显示英文订单号。
图2是本申请一种前后端分离架构下的多语言切换方法的前端多语言处理流程图。
在图2所示的具体实例中,前端多语言处理流程包括:前端按系统应用支持的语言环境,配置准备好的多个前端多语言资源文件,即js文件;前端初始化时,自动加载所有的前端多语言资源文件,常驻缓存内存,使得切换的前端多语言资源文件能够及时生效。用户在前台用户操作页面上选择多语言时,前端环境按照用户所选的多语言切换对应前端多语言资源文件展示即可完成国际化展示。
在图1所示的具体实施方式中,前后端分离架构下的多语言切换方法,还包括:步骤S102,后台多语言处理流程,后台通过面向切面编程技术,拦截前端请求的后台应用程序接口,获取包含目标语种对应本地化信息的自定义多语言数据头,并将其保存到线程局部变量中;后台根据线程局部变量中自定义多语言数据头中的语言信息标识,通过多语言资源工具读取后台自动加载的后台多语言资源文件集中目标语种对应后台多语言资源文件内容中的国际化信息,并将国际化信息返回前端,并展示给前台用户,其中国际化信息包括不做本地化转换的数据库数据以及本地化自动转换的消息、动态搜索提示和、或格式化数据。
在该具体实施方式中,后台自动加载后台多语言资源文件集到多语言资源工具中,方便直接使用,提高运行效率;后台多语言资源文件的内容为一种国家语言翻译为另一种国家语言,譬如汉译英、英译汉等等;语言信息标识,具体指代表语言-国家的代码,如en_US对应美国英语,zh_CN对应中国简体中文,ja_JP代表日本日语;根据不同的语言-国家代码,可以确定不同的本地化信息(locale);获取目标语种对应的本地化信息(locale)包括按不同多语言资源文件获取不同的动态展示信息,和按不同的本地化信息(locale)对数字格式、货币、地区特定的时间格式等的格式转换。
在本申请的一个具体实施例中,在后台多语言处理流程中,还包括,前端通过后台应用程序接口,请求自定义多语言数据头;前端通过自定义多语言数据头向后台传递在前端多语言资源文件中目标语种对应的本地化信息。
在该具体实施例中,通过请求自定义多语言数据头带上本地化信息,保持前后端的本地化信息一致,实现分离模式下的国际化。
在本申请的一个具体实施例中,不做本地化转换的数据库数据包括不需要进行语言切换的业务数据,业务数据包括国际通用字母、国际通用数字;本地化自动转换的消息包括动态菜单,动态搜索提示包括动态提示信息,格式化数据包括格式化数据特殊处理信息,格式化数据特殊处理信息包括数字格式、货币格式和、或时间格式。
在该具体实施例中,后台返回的多语言国际化的信息给前端显示反馈给用户,一般需要处理的数据为动态的提示信息,动态菜单,格式化数据的特殊处理(数字格式、货币格式、时间格式等),譬如动态提示用户“当前有6个订单需要处理”和“there arecurrently 6orders to process”间的多语言切换展示。出于安全性、准确性、处理效率的考虑,数字格式、货币格式和、或时间格式等的特殊处理一般也是放在后台对应处理。
在本申请的一个具体实施例中,后台根据线程局部变量中自定义多语言数据头中的语言信息标识,通过多语言资源工具读取后台自动加载的后台多语言资源文件集中目标语种对应后台多语言资源文件内容中的国际化信息的过程具体包括,后台自动加载后台多语言资源文件集中的多语言资源文件;后台根据语言信息标识,通过多语言资源工具读取后台多语言资源文件集中的后台多语言资源文件的本地化信息;根据后台多语言资源文件的本地化信息匹配系统的国别语言信息,获取目标语种对应后台多语言资源文件内容中的国际化信息。
在该具体实施例中,多语言资源工具可以为与后台多语言资源文件配套使用的资源工具ResourceBundle,ResourceBundle bundle=ResourceBundle.getBundle("TestBundle",Locale.US)此代码代表得到加载好的对应美国的本地化信息的资源信息对象。使用ResourceBundle类既可以轻松地实现本地化或翻译成不同的语言,还可以一次处理多个语言环境,以后可以轻松进行修改,以便支持更多的语言环境。
在本申请的一个具体实施例中,当后台应用程序接口运行结束时,删除对线程局部变量中的自定义多语言数据头的记录。
在该具体实施例中,删除对线程局部变量中的自定义多语言数据头的记录,方便下一次的对线程局部变量的使用。
在本申请的一个具体实施例中,在后台多语言处理流程中,还包括,在后台增设主动调用接口,并通过主动调用接口,动态加载后台多语言资源文件集,使得切换后的后台多语言资源文件及时生效。
在该具体实施例中,Java国际化的实现,原理就是准备好记录不同本地化信息的后台多语言资源文件,系统启动时加载所有的后台多语言资源文件,使用后台多语言资源文件时按不同的本地化信息(locale)获取对应信息。但是系统仅在启动才会加载一次后台多语言资源文件,当后续后台多语言资源文件需要改动时,切换的多语言资源文件是不能生效的。本方案中,后台通过增加主动调用接口,调用后系统重新加载后台多语言资源文件,即可实现动态加载,实现动态加载的目的为在后台多语言资源文件有变动时,文件内容可以立刻生效。
在本申请的一个具体实施例中,将国际化信息返回前端,并展示给前台用户,具体包括,后台通过后台应用程序接口将国际化信息返回前端,并展示给前台用户。
在该具体实施例中,通过应用程序接口(API)实现前端和后台的数据交互,使得数据传输过程中接口质量和稳定性良好。
图3是本申请一种前后端分离架构下的多语言切换方法的架构图。
在图3所示的具体实例中,前后端分离模式下的国际化实现,实际包括了前端的国际化和后台返回信息的国际化,同时通过请求自定义多语言数据头(header)带上本地化信息(locale),保持前后端的本地化信息(locale)一致,实现分离模式下的国际化。首先前端通过加装不同的前端多语言资源文件,通过“$i18n.locale=locale”,利用前端Vue的i18n特性转换多语言信息,实现前端展示的多语言切换。然后Java后台根据国际化的实现,做了增加主动调用接口的扩展,以便能对多语言配置,实现动态加载。前端和后台间,前端请求通过自定义的X-Language头,即自定义多语言数据头,传递前台用户选择的对应切换语言信息标识,后台根据语言信息标识,获取对应本地化信息内容返回。后台通过面向切面编程技术(AOP),获取到请求的多语言数据头(header),保存在线程局部变量(ThreadLocal)中,请求应用程序接口(API)运行结束时,删除线程局部变量(ThreadLocal)中的多语言记录。
在该具体实例中,在前后端分离的架构模式下,前端展示的99%内容都是请求后台应用程序接口(API)获取的。不做locale转换的数据库数据主要就是不需要做多语言处理的业务数据,因为业务数据量都很大,无特别需求,一般不做处理。出于支持多语言转化的性能消耗、时间成本、技术实现以及工作量成本等考虑,一般只是对关键信息进行多语言支持。为了方便不同地区的用户看懂业务数据字段是什么内容,方便用户理解,不对表格中的业务数据是不做翻译处理,譬如袋牌号为“WX210729A096”,引号中的内容不需要翻译,但是为了用户理解引号中的内容是什么,需要将袋牌号进行翻译处理,这样能在应用支持国际化和性能响应时效以及开发成本之间达成最优化平衡。
图4是本申请一种前后端分离架构下的多语言切换方法的后台多语言处理流程图。
在图4所示的具体实例中,后台多语言处理,同样需要准备好支持的语言ResourceBundle,后台启动时自动加载。前端请求后台应用程序接口时,默认带上当前的多语言locale值,随着用户选择的展示语言变化而变化。后台使用AOP技术,拦截所有接口方法,获取请求的X-Language头,并保存到线程局部变量ThreadLocal,本次请求都可以获取到当前请求的语言locale。返回消息、提示时按请求的语言locale获取对应展示信息、提示,返回前端展示。
在本申请的一个具体实例中,采用前后端分离模式下国际化实现对于公司开展跨境电商、跨境物流、清关申报等涉及多国家用户的业务工作的应用系统开发有着非常明显的帮助。
在本申请的一个具体实例中,用户选择中文语言时,进行装袋操作,包袋已封包时的提示信息为:“当前包袋已封包,无法继续装袋”,选择英文时提示信息为:“The currentbag has been packed,unable to continue bagging”。
满足前后端分离模式下的多语言国际化实现,通过默认请求添加X-language头,来保证前后端的locale一致;前端通过ant-design-of-vue集成了vue-i18n国际化实现,与Vue的多语言实现方式兼容、一致;后台采用Java的国际化实现,通过设置、加载不同的语言配置文件ResourceBundle,实现多语言的支持;自主实现封装集成的前后端分离国际化实现,与第三方无关,不会产生额外成本。
图5示出了本申请一种前后端分离架构下的多语言切换组件的具体实施方式。
在该具体实施方式中,前后端分离架构下的多语言切换组件主要包括:模块501,前端多语言处理模块,其用于前端根据系统应用支持的语言环境,加载前端多语言资源文件集,并将其存储在缓存内存中;其用于前端利用国际化特性,在前端多语言资源文件集中,根据前台用户切换的目标语种选择对应的前端多语言资源文件,并将前端多语言资源文件中的固定展示信息展示给前台用户,其中国际化特性为Vue的i18n特性,固定展示信息包括用户操作页面中的标签内容信息、按键内容信息以及表头内容信息;模块502,后台多语言处理模块,其用于后台通过面向切面编程技术,拦截前端请求的后台应用程序接口,获取包含目标语种对应本地化信息的自定义多语言数据头,并将其保存到线程局部变量中;其用于后台根据线程局部变量中自定义多语言数据头中的语言信息标识,通过多语言资源工具读取后台自动加载的后台多语言资源文件集中目标语种对应后台多语言资源文件内容中的国际化信息,并将国际化信息返回前端,并展示给前台用户,其中国际化信息包括不做本地化转换的数据库数据以及本地化自动转换的消息、动态搜索提示和、或格式化数据。
在该具体实施方式中,前端多语言处理模块和后台多语言处理模块分别进行多语言处理,前端多语言处理模块将简单的固定展示信息进行多语言转换;后台多语言处理模块,根据前端传递过来的自定义多语言数据头中的语言信息标识,在后台多语言资源文件中进行切换,将对应的需要展示的信息返回前端,在用户操作页面进行展示。该方案既保证了语言切换的完整性,又不需要引入第三方,增加额外成本。
当前市面上有的国际化实现方案,一般仅支持后台解析方案,或是仅支持前端的实现方案,本申请为前后端分离模式下的完整国际化方案,具有完整性;前端采用集成的是vue-i18n国际化实现,后台采用的是Java国际化实现,这都是前后台主流的开发语言,也是当前应用开发前端、后台的事实标准,兼容集成Vue和Java的国际化,更具有标准性,实现以后在与第三方对接时更便利;自主封装的前后端分离国际化实现,不涉及第三方产品、框架、组件,在进行扩展修改和应用时有一定的自主性,无需第三方同意或产生额外成本。
本申请提供的前后端分离架构下的多语言切换组件,可用于执行上述任一实施例描述的前后端分离架构下的多语言切换方法,其实现原理和技术效果类似,在此不再赘述。
在本申请的一个具体实施例中,本申请一种前后端分离架构下的多语言切换组件中各功能模块可直接在硬件中、在由处理器执行的软件模块中或在两者的组合中。
软件模块可驻留在RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可装卸盘、CD-ROM或此项技术中已知的任何其它形式的存储介质中。示范性存储介质耦合到处理器,使得处理器可从存储介质读取信息和向存储介质写入信息。
处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC)、现场可编程门阵列(英文:Field Programmable Gate Array,简称:FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其任何组合等。通用处理器可以是微处理器,但在替代方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合,例如DSP与微处理器的组合、多个微处理器、结合DSP核心的一个或一个以上微处理器或任何其它此类配置。在替代方案中,存储介质可与处理器成一体式。处理器和存储介质可驻留在ASIC中。ASIC可驻留在用户终端中。在替代方案中,处理器和存储介质可作为离散组件驻留在用户终端中。
在本申请的另一个具体实施方式中,一种计算机可读存储介质,其存储有计算机指令,计算机指令被操作以执行任一实施例中的前后端分离架构下的多语言切换方法。
在本申请的另一个具体实施方式中,一种计算机设备,其包括处理器和存储器,存储器存储有计算机指令,该计算机指令被操作以执行任一实施例中的前后端分离架构下的多语言切换方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的组件和方法,可以通过其它的方式实现。例如,以上所描述的组件实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,组件或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述仅为本申请的实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种前后端分离架构下的多语言切换方法,其特征在于,包括:
前端多语言处理流程,其包括:
前端根据系统应用支持的语言环境,加载前端多语言资源文件集,并将其存储在缓存内存中;
所述前端利用国际化特性,在所述前端多语言资源文件集中,根据前台用户切换的目标语种选择对应的前端多语言资源文件,并将所述前端多语言资源文件中的固定展示信息展示给所述前台用户,其中国际化特性为Vue的i18n特性,所述固定展示信息包括用户操作页面中的标签内容信息、按键内容信息以及表头内容信息;
后台多语言处理流程,其包括:
后台通过面向切面编程技术,拦截所述前端请求的后台应用程序接口,获取包含所述目标语种对应本地化信息的自定义多语言数据头,并将其保存到线程局部变量中;
所述后台根据所述线程局部变量中所述自定义多语言数据头中的语言信息标识,通过多语言资源工具读取所述后台自动加载的后台多语言资源文件集中所述目标语种对应后台多语言资源文件内容中的国际化信息,并将所述国际化信息返回所述前端,并展示给所述前台用户,其中所述国际化信息包括不做本地化转换的数据库数据以及本地化自动转换的消息、动态搜索提示和/或格式化数据。
2.如权利要求1所述的前后端分离架构下的多语言切换方法,其特征在于,
所述不做本地化转换的数据库数据包括不需要进行语言切换的业务数据,所述业务数据包括国际通用字母、国际通用数字;
所述本地化自动转换的消息包括动态菜单,所述动态搜索提示包括动态提示信息,所述格式化数据包括格式化数据特殊处理信息,所述格式化数据特殊处理信息包括数字格式、货币格式和/或时间格式。
3.如权利要求1所述的前后端分离架构下的多语言切换方法,其特征在于,当所述后台应用程序接口运行结束时,删除对所述线程局部变量中的所述自定义多语言数据头的记录。
4.如权利要求1所述的前后端分离架构下的多语言切换方法,其特征在于,在所述后台多语言处理流程中,还包括:
在所述后台增设主动调用接口,并通过所述主动调用接口,动态加载所述后台多语言资源文件集,使得切换后的所述后台多语言资源文件及时生效。
5.如权利要求1所述的前后端分离架构下的多语言切换方法,其特征在于,在所述后台多语言处理流程中,还包括:
所述前端通过所述后台应用程序接口,请求所述自定义多语言数据头;
所述前端通过所述自定义多语言数据头向所述后台传递在所述前端多语言资源文件中所述目标语种对应的本地化信息。
6.如权利要求1所述的前后端分离架构下的多语言切换方法,其特征在于,所述将所述国际化信息返回所述前端,并展示给所述前台用户,包括:
所述后台通过所述后台应用程序接口将所述国际化信息返回所述前端,并展示给所述前台用户。
7.如权利要求1所述的前后端分离架构下的多语言切换方法,其特征在于,所述后台根据所述线程局部变量中所述自定义多语言数据头中的语言信息标识,通过多语言资源工具读取所述后台自动加载的后台多语言资源文件集中所述目标语种对应后台多语言资源文件内容中的国际化信息,包括:
所述后台自动加载后台多语言资源文件集中的所述多语言资源文件;
所述后台根据所述语言信息标识,通过多语言资源工具读取后台多语言资源文件集中的所述后台多语言资源文件的本地化信息;
根据所述后台多语言资源文件的本地化信息匹配所述系统的国别语言信息,获取所述目标语种对应后台多语言资源文件内容中的国际化信息。
8.一种前后端分离架构下的多语言切换组件,其特征在于,包括:
前端多语言处理模块,
其用于前端根据系统应用支持的语言环境,加载前端多语言资源文件集,并将其存储在缓存内存中;
其用于所述前端利用国际化特性,在所述前端多语言资源文件集中,根据前台用户切换的目标语种选择对应的前端多语言资源文件,并将所述前端多语言资源文件中的固定展示信息展示给所述前台用户,其中国际化特性为Vue的i18n特性,所述固定展示信息包括用户操作页面中的标签内容信息、按键内容信息以及表头内容信息;
后台多语言处理模块,
其用于后台通过面向切面编程技术,拦截所述前端请求的后台应用程序接口,获取包含所述目标语种对应本地化信息的自定义多语言数据头,并将其保存到线程局部变量中;
其用于所述后台根据所述线程局部变量中所述自定义多语言数据头中的语言信息标识,通过多语言资源工具读取所述后台自动加载的后台多语言资源文件集中所述目标语种对应后台多语言资源文件内容中的国际化信息,并将所述国际化信息返回所述前端,并展示给所述前台用户,其中所述国际化信息包括不做本地化转换的数据库数据以及本地化自动转换的消息、动态搜索提示和/或格式化数据。
9.一种计算机可读存储介质,其存储有计算机指令,其特征在于,所述计算机指令被操作以执行权利要求1-7中任一项所述的前后端分离架构下的多语言切换方法。
10.一种计算机设备,其包括处理器和存储器,所述存储器存储有计算机指令,其中所述处理器操作所述计算机指令以执行权利要求1-7中任一项所述的前后端分离架构下的多语言切换方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111461212.6A CN114168246B (zh) | 2021-12-01 | 2021-12-01 | 前后端分离架构下的多语言切换方法、组件、介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111461212.6A CN114168246B (zh) | 2021-12-01 | 2021-12-01 | 前后端分离架构下的多语言切换方法、组件、介质及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114168246A true CN114168246A (zh) | 2022-03-11 |
CN114168246B CN114168246B (zh) | 2023-07-21 |
Family
ID=80482418
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111461212.6A Active CN114168246B (zh) | 2021-12-01 | 2021-12-01 | 前后端分离架构下的多语言切换方法、组件、介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114168246B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114896005A (zh) * | 2022-04-26 | 2022-08-12 | 平安普惠企业管理有限公司 | 基于人工智能的应用程序语言配置方法及相关设备 |
CN116319950A (zh) * | 2022-09-07 | 2023-06-23 | 中国人民财产保险股份有限公司 | 架构前后端分离的实现方法、架构系统以及请求处理方法 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5982448A (en) * | 1997-10-30 | 1999-11-09 | Reyes; Frances S. | Multi-language closed captioning system |
CN103377206A (zh) * | 2012-04-18 | 2013-10-30 | 腾讯科技(深圳)有限公司 | 显示页面内容的方法及浏览器 |
US20140081618A1 (en) * | 2012-09-17 | 2014-03-20 | Salesforce.Com, Inc. | Designing a website to be displayed in multiple languages |
CN104199812A (zh) * | 2014-08-18 | 2014-12-10 | 中国建设银行股份有限公司 | 一种支持多语言的数据系统和方法 |
CN110427181A (zh) * | 2019-08-13 | 2019-11-08 | 山东浪潮商用系统有限公司 | 一种Web系统前后端分离方法 |
CN111061533A (zh) * | 2019-12-18 | 2020-04-24 | 深圳前海环融联易信息科技服务有限公司 | 页面多语言展示方法、其装置、电子设备及计算机存储介质 |
CN111061525A (zh) * | 2018-10-16 | 2020-04-24 | 福建天泉教育科技有限公司 | 国际化界面切换方法、存储介质 |
CN111381913A (zh) * | 2018-12-29 | 2020-07-07 | 广州市百果园信息技术有限公司 | 前端多语言加载适配方法、装置、计算机设备及存储介质 |
CN112965770A (zh) * | 2021-03-02 | 2021-06-15 | 杭州和利时自动化有限公司 | 多语言资源管理方法、模块、设备、系统及可读存储介质 |
CN113157354A (zh) * | 2020-01-07 | 2021-07-23 | 北京京东振世信息技术有限公司 | 处理数据的方法、装置、设备和计算机可读介质 |
-
2021
- 2021-12-01 CN CN202111461212.6A patent/CN114168246B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5982448A (en) * | 1997-10-30 | 1999-11-09 | Reyes; Frances S. | Multi-language closed captioning system |
CN103377206A (zh) * | 2012-04-18 | 2013-10-30 | 腾讯科技(深圳)有限公司 | 显示页面内容的方法及浏览器 |
US20140081618A1 (en) * | 2012-09-17 | 2014-03-20 | Salesforce.Com, Inc. | Designing a website to be displayed in multiple languages |
CN104199812A (zh) * | 2014-08-18 | 2014-12-10 | 中国建设银行股份有限公司 | 一种支持多语言的数据系统和方法 |
CN111061525A (zh) * | 2018-10-16 | 2020-04-24 | 福建天泉教育科技有限公司 | 国际化界面切换方法、存储介质 |
CN111381913A (zh) * | 2018-12-29 | 2020-07-07 | 广州市百果园信息技术有限公司 | 前端多语言加载适配方法、装置、计算机设备及存储介质 |
CN110427181A (zh) * | 2019-08-13 | 2019-11-08 | 山东浪潮商用系统有限公司 | 一种Web系统前后端分离方法 |
CN111061533A (zh) * | 2019-12-18 | 2020-04-24 | 深圳前海环融联易信息科技服务有限公司 | 页面多语言展示方法、其装置、电子设备及计算机存储介质 |
CN113157354A (zh) * | 2020-01-07 | 2021-07-23 | 北京京东振世信息技术有限公司 | 处理数据的方法、装置、设备和计算机可读介质 |
CN112965770A (zh) * | 2021-03-02 | 2021-06-15 | 杭州和利时自动化有限公司 | 多语言资源管理方法、模块、设备、系统及可读存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114896005A (zh) * | 2022-04-26 | 2022-08-12 | 平安普惠企业管理有限公司 | 基于人工智能的应用程序语言配置方法及相关设备 |
CN116319950A (zh) * | 2022-09-07 | 2023-06-23 | 中国人民财产保险股份有限公司 | 架构前后端分离的实现方法、架构系统以及请求处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114168246B (zh) | 2023-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9928038B2 (en) | Dynamically building locale objects or subsections of locale objects based on historical data | |
US7234110B2 (en) | Apparatus and method for providing dynamic multilingual web pages | |
KR100431169B1 (ko) | 소프트웨어 프로그램의 텍스트 데이터 편집방법, 컴퓨터시스템 및 컴퓨터 프로그램 제품 | |
CN114168246B (zh) | 前后端分离架构下的多语言切换方法、组件、介质及设备 | |
US20090132232A1 (en) | Methods and apparatus for implementing multilingual software applications | |
CN101154157A (zh) | 为JavaScript应用提供全球化功能的系统和方法 | |
CN108572818A (zh) | 一种用户界面渲染方法及装置 | |
US11003835B2 (en) | System and method to convert a webpage built on a legacy framework to a webpage compatible with a target framework | |
CN111381920B (zh) | 弹窗组件的显示方法、装置以及电子终端 | |
US20090112574A1 (en) | Multi-language interfaces switch system and method therefor | |
US20190236229A1 (en) | Just-in-time hardware for field programmable gate arrays | |
CN111026931A (zh) | 一种数据查询方法、装置、设备及介质 | |
CN111831384A (zh) | 语言切换方法和装置、设备及存储介质 | |
CN111523065B (zh) | 富文本数据处理方法、装置、电子设备及计算机存储介质 | |
CN112799760B (zh) | 一种表单渲染方法及其装置 | |
CN110727429A (zh) | 一种前端页面的生成方法、装置及设备 | |
EP1909170A1 (en) | Method and system for automatically generating a communication interface | |
CN116049114A (zh) | 用于国际化日志的处理方法、处理器及存储介质 | |
CN115065945A (zh) | 短信链接生成方法、装置、电子设备及存储介质 | |
CN113961279A (zh) | 页面渲染方法、装置、服务器和存储介质 | |
CN111767111A (zh) | 页面数据处理方法及装置、电子设备和存储介质 | |
CN111651696A (zh) | 产品标签的定制方法及装置、计算机存储介质、电子设备 | |
CN111399932A (zh) | 调用dll的方法、系统、浏览器的处理方法和浏览器 | |
CN114201253B (zh) | 标签页调用方法、装置、电子设备及计算机可读存储介质 | |
CN115390835A (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 | ||
GR01 | Patent grant |