CN111381913B - 前端多语言加载适配方法、装置、计算机设备及存储介质 - Google Patents

前端多语言加载适配方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN111381913B
CN111381913B CN201811638527.1A CN201811638527A CN111381913B CN 111381913 B CN111381913 B CN 111381913B CN 201811638527 A CN201811638527 A CN 201811638527A CN 111381913 B CN111381913 B CN 111381913B
Authority
CN
China
Prior art keywords
language
user
file
loading
browser
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
Application number
CN201811638527.1A
Other languages
English (en)
Other versions
CN111381913A (zh
Inventor
饶建兵
杜岗
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Baiguoyuan Information Technology Co Ltd
Original Assignee
Guangzhou Baiguoyuan Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangzhou Baiguoyuan Information Technology Co Ltd filed Critical Guangzhou Baiguoyuan Information Technology Co Ltd
Priority to CN201811638527.1A priority Critical patent/CN111381913B/zh
Publication of CN111381913A publication Critical patent/CN111381913A/zh
Application granted granted Critical
Publication of CN111381913B publication Critical patent/CN111381913B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/454Multi-language systems; Localisation; Internationalisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明实施例公开了一种前端多语言加载适配方法、装置、计算机设备及存储介质,包括下述步骤:获取目标浏览器的用户语言;加载与所述用户语言相对应的语言文件;根据所述语言文件更新页面显示,并将所述语言文件存储于浏览器的指定存储区域,用于更新同一域名网络页面的语言设置。通过这种方法实现的多语言加载,实现了对第三方的零依赖,即不依赖于特定的前端框架选型,可以方便地适用于各种前端框架。在加载语言文件或改变使用语言时,同域名下所有页面中的语言设置将统一更新,为用户提供全站统一的多语言显示。

Description

前端多语言加载适配方法、装置、计算机设备及存储介质
技术领域
本发明涉及计算机应用技术领域,特别是涉及一种前端多语言加载适配方法、装置、计算机设备及存储介质。
背景技术
目前,针对多语言显示问题,各大前端框架都有较为成熟的国际化解决方案,它们以插件的方式存在,可方便地接入当前开发环境,如:vue-i18n,angular-translate,react-intl,jQuery.i18n等,虽然用法不尽相同,但是它们解决的问题和实现方式比较类似,即都是把翻译好的多语言转化为map结构,然后根据当前语言获取当前语言key下的文案,替换填充至相应位置,从而实现不同用户语言下显示不同文案的需求。需要注意的是,如果多语言文案过多,一般的处理方式是将每种语言的文案单独做成一个语言文件,在确定用户语言之后,再去单独加载对应语言的语言文件。
但是,现有技术中的方案仍存在许多不足之处。首先,当前的主流方案并没有对外提供准确获取用户语言的方法,更多的是实现已知用户语言下的相应多语言展示。然而,在浏览器环境下如何获取用户的使用语言是前端多语言显示中的一个重要问题。其次,多语言的本地测试不够方便,即在开发模式下无法便捷地测试各种语言的展示情况。另外,目前的方案还存在无法记录用户的语言使用习惯、多页面之间无法及时响应用户语言改变等问题。
发明内容
本发明实施例能够提供一种准确获取用户语言、为用户提供快捷的多语言显示服务的前端多语言加载适配方法、装置、计算机设备及存储介质。
为解决上述技术问题,本发明创造的实施例采用的一个技术方案是:提供一种前端多语言加载适配方法,包括以下步骤:
获取目标浏览器的用户语言;
加载与所述用户语言相对应的语言文件;
根据所述语言文件更新页面显示,并将所述语言文件存储于浏览器的指定存储区域,用于更新同一域名网络页面的语言设置。
可选地,所述确定用户语言的步骤,包括以下步骤:
获取所述目标浏览器当前页面的统一资源定位符;
判断所述统一资源定位符中是否存在语言参数;
当所述统一资源定位符中存在语言参数时,定义所述语言参数为用户语言。
可选地,所述判断所述统一资源定位符中是否存在语言参数的步骤之后,包括以下步骤:
当所述统一资源定位符中不存在语言参数时,获取所述目标浏览器的本地存储;
在所述本地存储中查找语言使用记录;
当所述本地存储中存在语言使用记录时,定义所述使用记录中的语言为用户语言。
可选地,所述在所述本地存储中查找语言使用记录的步骤之后,包括以下步骤:
当所述本地存储中不存在语言使用记录时,获取所述目标浏览器的语言标识;
在预设的映射关系表中查找与所述语言标识具有映射关系的语言码;
定义所述语言码为用户语言。
可选地,所述加载与所述用户语言相对应的语言文件的步骤,包括下述步骤:
获取所述目标浏览器的本地存储;
在所述本地存储中查找所述用户语言对应的语言文件;
当所述本地存储中存在所述语言文件时,加载所述语言文件;
当本地存储中不存在所述语言文件时,根据所述用户语言请求对应文件,加载所述对应文件,并将所述对应文件存储到所述本地存储。
可选地,所述根据所述语言文件更新页面显示,并将所述语言文件存储于浏览器的指定存储区域,用于更新同一域名网络页面的语言设置的步骤之后,包括下述步骤:
获取所述存储区域内的语言信息;
将所述语言信息与预设的语言状态进行比对;
当所述语言信息与所述语言状态不一致时,确认所述存储区域存储的语言信息发生变化。
可选地,所述根据所述语言文件更新页面显示,并将所述语言文件存储于浏览器的指定存储区域,用于更新同一域名网络页面的语言设置的步骤之后,包括下述步骤:
获取所述存储区域内的语言变化信息;
根据预设的语言列表识别所述语言变化信息是否为预设的目标状态;
当所述语言变化信息表征的内容与所述目标状态的内容一致时,所述网络页面根据所述语言变化信息调整语言设置。
为解决上述技术问题,本发明实施例还提供一种前端多语言加载适配装置,包括:
获取模块,用于获取目标浏览器的用户语言;
处理模块,用于加载与所述用户语言相对应的语言文件;
执行模块,用于根据所述语言文件更新页面显示,并将所述语言文件存储于浏览器的指定存储区域,用于更新同一域名网络页面的语言设置。
为解决上述技术问题,本发明实施例还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行上述所述前端多语言加载适配方法的步骤。
为解决上述技术问题,本发明实施例还提供一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述所述前端多语言加载适配方法的步骤。
本发明实施例的有益效果是:相比于目前主流的需要已知用户的语言才进行多语言展示的方案,本发明实施例的技术方案根据浏览器中的特定数据准确获取用户使用的语言,可以更加灵活、高效地获取到用户的语言,根据用户语言加载对应的语言文件,并实现页面内容的更新,通过这种方法实现的多语言加载,实现了对第三方的零依赖,即不依赖于特定的前端框架选型,可以方便地适用于各种前端框架。在加载语言文件或改变使用语言时,同域名下的所有页签中的语言设置将统一更新,为用户提供全站统一的多语言显示。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例前端多语言加载适配方法的基本流程示意图;
图2为本发明实施例从统一资源定位符中获取用户语言的流程示意图;
图3为本发明实施例从本地存储中获取用户语言的流程示意图;
图4为本发明实施例从浏览器的语言标识中获取用户语言的流程示意图;
图5为本发明实施例加载语言文件的流程示意图;
图6为本发明实施例确定指定存储区域内容变化的流程示意图;
图7为本发明实施例调整网络页面语言设置的流程示意图;
图8为本发明实施例前端多语言加载适配装置的基本结构框图;
图9为本发明实施例计算机设备基本结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
在本发明的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本技术领域技术人员可以理解,这里所使用的“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,执行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;PCS(PersonalCommunicationsService,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;PDA(PersonalDigitalAssistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或GPS(GlobalPositioningSystem,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是PDA、MID(MobileInternetDevice,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
具体地请参阅图1,图1为本实施例前端多语言加载适配方法的基本流程示意图。
如图1所示,一种前端多语言加载适配方法,包括以下步骤:
S1100、获取目标浏览器的用户语言;
获取目标浏览器当前url(UniformResourceLocator,统一资源定位符),并将url中的search字段并解析为Json对象,查找其中是否存在key为“lang”的值,若其中存在key为“lang”的值,则将其作为用户语言,若不存在key为“lang”的值,则获取浏览器本地存储(LocalStorage),在本地存储中查找在先使用语言的记录,若本地存储有之前留下的使用语言的记录,则将在先使用过的语言作为用户语言,若本地存储中没有使用语言的记录,则根据浏览器下的BOM(BrowserObjectModel,浏览器对象模型)获取当前浏览器语言标识,并根据语言标识和语言码的映射关系表将语言标识映射为相应语言码,然后,将得到的语言码作为用户语言,并存储在本地存储的记录中,以备用户下次进入页面时使用。
S1200、加载与所述用户语言相对应的语言文件;
在浏览器本地存储中查找,是否含有与当前用户语言相应的语言文件。如果相应的语言文件存在,则加载语言文件,如果不存在相应的语言文件,根据当前的用户语言,使用Ajax技术异步获取与当前用户语言相应的语言文件,并将其记录在本地存储中。
S1300、根据所述语言文件更新页面显示,并将所述语言文件存储于浏览器的指定存储区域,用于更新同一域名网络页面的语言设置;
前端页面利用与当前用户语言相对应的语言文件进行视图渲染,呈现相应语言版本的界面显示。同时,在存储器中指定一块专属的存储区域,该存储区域接受当前页面的语言文件写入,同时,该存储区域受到网络页面的监听,当当前页面在该存储区域写入语言文件后,网络页面通过监听获取该存储区域内语言信息变化,若监听到语言信息变化后,根据当前页面写入的语言信息,对自身页面状态进行调整,以使其页面语言与当前页面一致。
通过上述方法,当多个不同页面之间需要进行相同语言更新时,浏览器只需要对当前页面进行语言更新并写入语言信息,其他页面通过监听该页面的语言信息变化,就能够实现语言的同步调整,能够有效地减轻对于服务器端的负担,也避免了对于网络资源的浪费。
如图2所示,步骤S1100具体包括以下步骤:
S1110、获取所述目标浏览器当前页面的统一资源定位符;
通过JS(JavaScript)或者PHP(PHP:HypertextPreprocessor,超文本预处理器)获取当前页面的url(UniformResourceLocator,统一资源定位符),基本URL包含模式(或称协议)、服务器名称(或IP地址)、路径和文件名,如“协议://授权/路径?查询”。完整的、带有授权部分的普通统一资源标志符语法看上去如下:协议://用户名:密码@子域名.域名.顶级域名:端口号/目录/文件名.文件后缀?参数=值#标志。以使用JS获取url相关参数为例,可以通过“window.location.href”设置或获取当前页面整个url为字符串,或通过“window.location.search”获取当前页面url传递的参数。
S1120、判断所述统一资源定位符中是否存在语言参数;
提取获取到的url中的search字段,并解析为Json对象,并获取Json对象中的key以及对应的value值,判断其中是否存在key为“lang”的值,其中,所述key为“lang”的值作为语言参数。获取Json对你中的key以及对应的value值可以是现有的方式,例如利用基于JavaScript的jQuery框架中的回调函数。
S1130、当所述统一资源定位符中存在语言参数时,定义所述语言参数为用户语言;
当判断url中存在lang参数时,将lang参数的值定义为当前用户的用户语言。
上述方案使用url中的lang参数作为当前用户语言,因此在开发环境下可以简单地通过改变url中的参数便捷地切换显示语言,使开发者能够方便地浏览各种语言下的页面情况,及时排查问题和定位bug,为开发者提供便利的多语言测试方法。
如图3所示,步骤S1120之后还包括以下步骤:
S1121、当所述统一资源定位符中不存在语言参数时,获取所述目标浏览器的本地存储;
当判断url中查找不到lang参数时,获取目标浏览器中的本地存储,其中,浏览器中的本地存储指LocalStorage,本地存储保存数据会一直保存没有过期时间,不会随浏览器发送给服务器。在一些实施方式中从本地存储中获取到的信息是字符串,通过“varstr=JSON.stringfy”将获取到的字符串转化为Json对象,以备下一步处理。
S1122、在所述本地存储中查找语言使用记录;
在获取到的本地存储信息中查找语言的使用记录,语言使用记录包括已设置的语言信息或者用户在先使用过的语言信息,例如用户根据自身需求在使用之前就在浏览器端设置好的语言选项,或用户在先通过请求等方式从服务器或其他存储中获取并应用的语言信息。从本地存储中查找语言使用记录的方式可以是根据记录的格式或字段筛选获取到的信息,或者通过查找特定位置的记录文件进行确定。
S1123、当所述本地存储中存在语言使用记录时,定义所述使用记录中的语言为用户语言;
当本地存储中查找到目标浏览器的语言使用记录时,提取出上述语言使用记录中所记录的语言设置,若语言使用记录中只有一种语言时,将获取到的语言使用记录所对应的语言作为用户语言;若语言使用记录中存在多种语言时,根据实际使用情况的不同,可以设置定义最近一次使用的语言作为用户语言,或者定义其中使用次数最多的语言作为用户语言。
如图4所示,步骤S1122之后还包括以下步骤:
S1124、当所述本地存储中不存在语言使用记录时,获取所述目标浏览器的语言标识;
若在本地存储中查找不到语言使用记录,则根据浏览器下的BOM(BrowserObjectModel)获取当前浏览器语言标识。具体地,浏览器下的BOM会提供语言标识,同一种语言不同地区的浏览器返回的语言标识不尽相同,例如浏览器使用的语言为简体中文,返回的语言标识可能是“cn”、“zh”、“zh-hans”、“zh-cn”或“zh-sg”等多种。
S1125、在预设的映射关系表中查找与所述语言标识具有映射关系的语言码;
在获取到语言标识之后,根据获取的语言标识在预设的映射关系表中查找对应的语言码。具体地,上述映射关系表中对于同一种语言设置与对应的多种语言标识具有映射关系,其中的语言标识涵盖了当前主流浏览器在各地区对于使用不同语言的语言标识,例如,语言标识“cn”、“zh”、“zh-hans”、“zh-cn”和“zh-sg”对应的语言为简体中文,在获取取浏览器的语言标识为“cn”时,通过映射关系表查找到该语言标识对应的简体中文的语言码。
S1126、定义所述语言码为用户语言;
获取到语言码之后,将语言码定义为目标浏览器的用户语言,并将定义后的用户语言存储在本地存储的语言使用记录中,以备用户的下一次使用。
上述方法维护了一份语言码与其可能存在的浏览器语言标识的映射关系表,在获取到浏览器语言标识后,可根据该关系表准确映射出当前用户的使用语言,同时充分利用本地存储,将获取到的用户语言记录在本地存储中,在用户下一次使用的时候可以直接根据本地存储的内容获取到用户语言,为用户更加快捷地提供多语言服务。
如图5所示,步骤S1200具体包括下述步骤:
S1210、获取所述目标浏览器的本地存储;
在获取到用户语言之后,获取目标浏览器中的本地存储,其中,浏览器中的本地存储指LocalStorage,本地存储保存数据会一直保存没有过期时间,不会随浏览器发送给服务器,也不会随着页签的关闭而释放。在一些实施方式中,用户在更新语言选项时,将语言的使用记录存储到本地存储中,以备下一步使用。本地存储中的语言文件可以是浏览器中针对于当前地区或版本预设的语言文件,可以是用户在更新使用语言时,通过服务器或其他存储端获取到对应的语言文件,并将语言文件添加到本地存储中。
S1220、在所述本地存储中查找所述用户语言对应的语言文件;
首先,在获取到的本地存储中查找相关的语言文件,语言文件可以是浏览器中针对于当前地区或版本预设的语言文件,可以是用户在更新使用语言时,通过服务器或其他存储端获取并添加到本地存储中的对应的语言文件。查找语言文件不具备针对性,即可以提取出目标浏览器本地存储中所有的语言文件。若在本地存储中查找不到语言文件,则判定本地存储中不存在与用户语言对应的语言文件;若在本地存储中查找到一个或多个语言文件,则根据获取到的用户语言,在上述一个或多个语言文件中查找与用户语言相对应的语言文件,若语言文件中不存在与用户语言相对应的语言文件,例如查找出来的语言文件分别对应英语和日语,而用户语言为简体中文,则判定本地存储中不存在与用户语言对应的语言文件。
S1230、当所述本地存储中存在所述语言文件时,加载所述语言文件;
在本地存储中查找到与用户语言对应的语言文件,当本地存储中存在语言文件,并与用户语言相对应时,判定本地存储中存在与用户语言相对应的语言文件,例如查找出的语言文件分别为简体中文和英语,用户语言为简体中文,则定义其中简单中文的语言文件为对应的语言文件,提取并加载对应的语言文件,以备下一步处理。
S1240、当本地存储中不存在所述语言文件时,根据所述用户语言请求对应文件,加载所述对应文件,并将所述对应文件存储到所述本地存储。
当本地存储中查找不到与用户语言相对就的语言文件时,根据用户语言使用Ajax技术异步请求与用户语言相对应的语言文件。具体地,请求时使用的url作为请求的地址,根据url的不同,请求获取的语言文件的地址可以在服务器中,或者在局域网或本地的其他存储之中。
根据Ajax技术异步请求后获取与用户语言相对应的文件,加载对应的语言文件,并将获取到的语言文件添加到本地存储中,在用户下一次使用同一域名的页面时可以直接通过本地存储获取到语言文件。
上述方法在用户浏览同域名下的页面时,优先使用和加载记录在本地存储中与用户语言相对应的语言文件,省去了根据用户语言请求语言文件的时间开销,在本地存储中不存在对应的语言文件时,利用Ajax请求语言文件,可以在不刷新整个页面的情况下进行语言文件的异步获取,同时,将获取到的语言文件存储到浏览器的本地存储之中,在用户下一次使用同一域名的页面时可以通过本地存储获取到语言文件,省去了再次请求语言文件的步骤和时间,有效提升了语言文件的获取速度,提升用户体验。
如图6所示,步骤S1300之后还包括下述步骤:
S1310、获取所述存储区域内的语言信息;
网络页面在一个采集比对时间节点到来时,读取指定的存储区域内的表征当前页面用户语言的语言信息。例如,网络页面每隔0.5s读取一次存储区域内的语言信息,但是网络页面读取语言信息的频率不限于此,根据具体应用场景的不同,网络页面能够以更小时间间隔或者更大时间间隔读取语言信息。
S1320、将所述语言信息与预设的语言状态进行比对;
将当前采集节点内采集的语言信息与语言状态进行比对,其中,语言状态为上一个采集结点采集的语言信息。即比对前后两个采集节点的语言信息是否一致。比对的方式包括文件命名比对和内容比对,文件命名比对即比对两个语言信息的命名是否一致,而内容比对比对则是通过比对两个语言信息的信息内容是否一致,比对的方式能够通过汉明距离或者海明距离进行比对。
S1330、当所述语言信息与所述语言状态不一致时,确认所述存储区域存储的语言信息发生变化。
当比对的结果语言信息与语言状态不一致时,即表明当前页面的用户语言发生了变化,网络页面通过比对结果确认当前页面的用户语言发生了变化,开启语言调整流程。
通过对存储区域进行监听,比对语言信息是否一致的方式,快速的确定存储区域内语言信息的变化,能够快速获知语言信息的变化,实现语言同步。
如图7所示,步骤S1330之后还包括下述步骤:
S1340、获取所述存储区域内的语言变化信息;
当确认存储区域内的语言信息发生变化后,定义该存储区域内更新后的语言信息为语言变化信息。读取该语言变化信息以识别该语言变化信息是否为设定的语言变化。
S1350、根据预设的语言列表识别所述语言变化信息是否为预设的目标状态;
根据设定的语言列表识别该语言变化信息是否为预设的目标状态。其中,语言列表是根据网络页面的语言变化需求设定的,记录网络页面语言变化类型形成的列表。目标状态即网络页面指定的需要进行同步变化的语言类型。通过将获取的语言变化信息与语言列表进行比对,就能够确定出该语言变化信息所表征的状态类型是否为网络页面的指定的语言变化类型。
S1360、当所述语言变化信息表征的内容与所述目标状态的内容一致时,所述网络页面根据所述语言变化信息调整语言设置。
当语言变化信息表征的内容与目标状态的内容一致时,即表明语言变化信息表征的状态类型与网络页面设定的变化类型一致,网络页面需要根据语言变化信息表征的状态类型进行语言同步,以达到跟随调整页面内容的目的。
通过设定选择性同步条件,使网络页面具有选择性的同步当前页面的语言变化,保证各个同域页面之间的个性化内容,减少数据交互频次,释放终端运行负担。
为解决上述技术问题,本发明实施例还提供一种前端多语言加载适配装置。具体请参阅图8,图8为本实施前端多语言加载适配装置的基本结构框图。
如图8所示,前端多语言加载适配装置,包括:获取模块2100、处理模块2200和执行模块2300。其中,获取模块用于获取目标浏览器的用户语言;处理模块用于加载与所述用户语言相对应的语言文件;执行模块用于根据所述语言文件更新页面显示,并将所述语言文件存储于浏览器的指定存储区域,用于更新同一域名网络页面的语言设置。
相比于目前主流的需要已知用户的语言才进行多语言展示的方案,本发明实施例的技术方案根据浏览器中的特定数据准确获取用户使用的语言,可以更加灵活、高效地获取到用户的语言,根据用户语言加载对应的语言文件,并实现页面内容的更新,通过这种方法实现的多语言加载,实现了对第三方的零依赖,即不依赖于特定的前端框架选型,可以方便地适用于各种前端框架。在加载语言文件或改变使用语言时,同域名下的所有其他页签中的语言设置将统一更新,为用户提供全站统一的多语言显示。
在一些实施方式中,前端多语言加载适配装置还包括:第一获取子模块、第一判断子模块、第一执行子模块。其中第一获取子模块用于获取所述目标浏览器当前页面的统一资源定位符;第一判断子模块用于判断所述统一资源定位符中是否存在语言参数;第一执行子模块用于当所述统一资源定位符中存在语言参数时,定义所述语言参数为用户语言。
在一些实施方式中,前端多语言加载适配装置还包括:第二执行子模块、第一查找子模块、第三执行子模块。其中,第二执行子模块用于当所述统一资源定位符中不存在语言参数时,获取所述目标浏览器的本地存储;第一查找子模块用于在所述本地存储中查找语言使用记录;第三执行子模块用于当所述本地存储中存在语言使用记录时,定义所述使用记录中的语言为用户语言。
在一些实施方式中,前端多语言加载适配装置还包括:第四执行子模块、第二查找子模块、第五执行子模块。其中,第四执行子模块用于当所述本地存储中不存在语言使用记录时,获取所述目标浏览器的语言标识;第二查找子模块用于在预设的映射关系表中查找与所述语言标识具有映射关系的语言码;第五执行子模块用于定义所述语言码为用户语言。
在一些实施方式中,前端多语言加载适配装置还包括:第二获取子模块、第三查找子模块、第一加载子模块、第六执行子模块。其中,第二获取子模块用于获取所述目标浏览器的本地存储;第三查找子模块在所述本地存储中查找所述用户语言对应的语言文件;第一加载子模块用于当所述本地存储中存在所述语言文件时,加载所述语言文件;第六执行子模块用于当本地存储中不存在所述语言文件时,根据所述用户语言请求对应文件,加载所述对应文件,并将所述对应文件存储到所述本地存储。
在一些实施方式中,前端多语言加载适配装置还包括:第三获取子模块、第一对比子模块、第七执行子模块。其中,第三获取子模块用于获取所述存储区域内的语言信息;第一对比子模块用于将所述语言信息与预设的语言状态进行比对;第七执行子模块用于当所述语言信息与所述语言状态不一致时,确认所述存储区域存储的语言信息发生变化。
在一些实施方式中,前端多语言加载适配装置还包括:第四获取子模块、第一识别子模块、第八执行子模块。其中,第四获取子模块用于获取所述存储区域内的语言变化信息;第一识别子模块用于根据预设的语言列表识别所述语言变化信息是否为预设的目标状态;第八执行子模块用于当所述语言变化信息表征的内容与所述目标状态的内容一致时,所述网络页面根据所述语言变化信息调整语言设置。
为解决上述技术问题,本发明实施例还提供一种计算机设备。具体请参阅图9,图9为本实施例计算机设备基本结构框图。
如图9所示,计算机设备的内部结构示意图。如图9所示,该计算机设备包括通过系统总线连接的处理器、非易失性存储介质、存储器和网络接口。其中,该计算机设备的非易失性存储介质存储有操作系统、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现一种前端多语言加载适配方法。该计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该计算机设备的存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种前端多语言加载适配方法。该计算机设备的网络接口用于与终端连接通信。本领域技术人员可以理解,图中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本实施方式中处理器用于执行图8中获取模块2100、处理模块2200和执行模块2300的具体功能,存储器存储有执行上述模块所需的程序代码和各类数据。网络接口用于向用户终端或服务器之间的数据传输。本实施方式中的存储器存储有前端多语言加载适配装置中执行所有子模块所需的程序代码及数据,服务器能够调用服务器的程序代码及数据执行所有子模块的功能。
本发明还提供一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述任一实施例所述前端多语言加载适配方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)等非易失性存储介质,或随机存储记忆体(RandomAccessMemory,RAM)等。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (6)

1.一种前端多语言加载适配方法,其特征在于,包括以下步骤:
获取目标浏览器的用户语言;
加载与所述用户语言相对应的语言文件,包括在浏览器本地存储中查找,是否含有与当前用户语言相应的语言文件,如果相应的语言文件存在,则加载相应的语言文件,如果不存在相应的语言文件,根据当前的用户语言,异步获取与当前用户语言相应的语言文件,并将其记录在本地存储中;
根据所述语言文件更新页面显示之后,将所述语言文件存储于浏览器的指定存储区域并受到网络页面的监听,当网络页面监听到该指定存储区域内的语言信息发生变化,根据变化后的语言信息更新同一域名网络页面的语言设置;
所述获取目标浏览器的用户语言通过以下方式确定:
获取所述目标浏览器当前页面的统一资源定位符;判断所述统一资源定位符中是否存在语言参数;当所述统一资源定位符中存在语言参数时,定义所述语言参数为用户语言;
当所述统一资源定位符中不存在语言参数时,获取所述目标浏览器的本地存储;在所述本地存储中查找语言使用记录;当所述本地存储中存在语言使用记录时,定义所述使用记录中的语言为用户语言;
当所述本地存储中不存在语言使用记录时,获取所述目标浏览器的语言标识;在预设的映射关系表中查找与所述语言标识具有映射关系的语言码;定义所述语言码为用户语言。
2.如权利要求1所述的前端多语言加载适配方法,其特征在于,所述根据所述语言文件更新页面显示,并将所述语言文件存储于浏览器的指定存储区域,用于更新同一域名网络页面的语言设置的步骤之后,包括下述步骤:
获取所述存储区域内的语言信息;
将所述语言信息与预设的语言状态进行比对;
当所述语言信息与所述语言状态不一致时,确认所述存储区域存储的语言信息发生变化。
3.如权利要求2所述的前端多语言加载适配方法,其特征在于,所述当所述语言信息与所述语言状态不一致时,确认所述存储区域存储的语言信息发生变化的步骤之后,包括下述步骤:
获取所述存储区域内的语言变化信息;
根据预设的语言列表识别所述语言变化信息是否为预设的目标状态;
当所述语言变化信息表征的内容与所述目标状态的内容一致时,所述网络页面根据所述语言变化信息调整语言设置。
4.一种前端多语言加载适配装置,其特征在于,包括:
获取模块,用于获取目标浏览器的用户语言;所述获取目标浏览器的用户语言通过以下方式确定:获取所述目标浏览器当前页面的统一资源定位符;判断所述统一资源定位符中是否存在语言参数;当所述统一资源定位符中存在语言参数时,定义所述语言参数为用户语言;当所述统一资源定位符中不存在语言参数时,获取所述目标浏览器的本地存储;在所述本地存储中查找语言使用记录;当所述本地存储中存在语言使用记录时,定义所述使用记录中的语言为用户语言;当所述本地存储中不存在语言使用记录时,获取所述目标浏览器的语言标识;在预设的映射关系表中查找与所述语言标识具有映射关系的语言码;定义所述语言码为用户语言;
处理模块,用于加载与所述用户语言相对应的语言文件,包括在浏览器本地存储中查找,是否含有与当前用户语言相应的语言文件,如果相应的语言文件存在,则加载相应的语言文件,如果不存在相应的语言文件,根据当前的用户语言,异步获取与当前用户语言相应的语言文件,并将其记录在本地存储中;
执行模块,用于根据所述语言文件更新页面显示之后,将所述语言文件存储于浏览器的指定存储区域并受到网络页面的监听,当网络页面监听到该指定存储区域内的语言信息发生变化,根据变化后的语言信息更新同一域名网络页面的语言设置。
5.一种前端多语言加载适配设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述权利要求1-3任意一项所述的前端多语言加载适配方法。
6.一种非临时性计算机可读存储介质,当所述存储介质中的指令由移动终端的处理器执行时,使得移动终端能够执行一种前端多语言加载适配方法,所述方法包括上述权利要求1-3任意一项所述的前端多语言加载适配方法。
CN201811638527.1A 2018-12-29 2018-12-29 前端多语言加载适配方法、装置、计算机设备及存储介质 Active CN111381913B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811638527.1A CN111381913B (zh) 2018-12-29 2018-12-29 前端多语言加载适配方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811638527.1A CN111381913B (zh) 2018-12-29 2018-12-29 前端多语言加载适配方法、装置、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN111381913A CN111381913A (zh) 2020-07-07
CN111381913B true CN111381913B (zh) 2024-04-19

Family

ID=71216617

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811638527.1A Active CN111381913B (zh) 2018-12-29 2018-12-29 前端多语言加载适配方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN111381913B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112667938A (zh) * 2020-12-31 2021-04-16 银盛通信有限公司 一种基于php实现页面多国语言切换的方法
CN114168246B (zh) * 2021-12-01 2023-07-21 北京联创新天科技有限公司 前后端分离架构下的多语言切换方法、组件、介质及设备
CN114489839B (zh) * 2022-01-12 2023-08-01 海南车智易通信息技术有限公司 针对页面加载配置数据的方法及装置、服务器
CN114548079B (zh) * 2022-01-26 2023-05-16 广东联想懂的通信有限公司 一种文本显示方法、装置及可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030024294A (ko) * 2001-09-17 2003-03-26 (주)넷피아닷컴 다국어를 이용한 웹 페이지 접속 시스템 및 그 방법
CN103034720A (zh) * 2012-12-13 2013-04-10 珠海赛纳打印科技股份有限公司 形成网页的方法、外围装置和系统
CN103970751A (zh) * 2013-01-28 2014-08-06 鸿富锦精密工业(深圳)有限公司 多国语言网页转换系统及方法
CN105138555A (zh) * 2015-07-20 2015-12-09 新浪网技术(中国)有限公司 一种网页多语言国际化的加载方法和装置
CN108984170A (zh) * 2017-06-02 2018-12-11 阿里巴巴集团控股有限公司 H5页面多语言渲染方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7685513B2 (en) * 2006-04-18 2010-03-23 Xerox Corporation Optimization of storage and delivery of markup language files

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030024294A (ko) * 2001-09-17 2003-03-26 (주)넷피아닷컴 다국어를 이용한 웹 페이지 접속 시스템 및 그 방법
CN103034720A (zh) * 2012-12-13 2013-04-10 珠海赛纳打印科技股份有限公司 形成网页的方法、外围装置和系统
CN103970751A (zh) * 2013-01-28 2014-08-06 鸿富锦精密工业(深圳)有限公司 多国语言网页转换系统及方法
CN105138555A (zh) * 2015-07-20 2015-12-09 新浪网技术(中国)有限公司 一种网页多语言国际化的加载方法和装置
CN108984170A (zh) * 2017-06-02 2018-12-11 阿里巴巴集团控股有限公司 H5页面多语言渲染方法及装置

Also Published As

Publication number Publication date
CN111381913A (zh) 2020-07-07

Similar Documents

Publication Publication Date Title
CN111381913B (zh) 前端多语言加载适配方法、装置、计算机设备及存储介质
WO2018077085A1 (zh) 应用程序处理方法、装置及存储介质
US8468145B2 (en) Indexing of URLs with fragments
CN110955428A (zh) 一种页面显示方法、装置、电子设备及介质
JP2018504727A (ja) 参考文書の推薦方法及び装置
CN112528595B (zh) 文档处理方法、装置和电子设备
US9607095B2 (en) Browser collection method, system and terminal device, and computer-readable storage medium
CA3061623C (en) File sending in instant messaging applications
US20190087397A1 (en) Human-computer interaction method and apparatus thereof
CN109710571B (zh) 一种文件解析方法、设备及存储介质
US20200233878A1 (en) Card-based information management method and system
CN110968314B (zh) 一种页面生成方法及装置
CN103455640A (zh) 一种文件管理界面的显示方法及装置
CN111666383A (zh) 信息处理方法、装置、电子设备及计算机可读存储介质
CN113051460A (zh) 基于Elasticsearch的数据检索方法、系统、电子设备及存储介质
WO2023092580A1 (zh) 页面显示方法、装置、存储介质及电子设备
CN113656737B (zh) 网页内容展示方法、装置、电子设备以及存储介质
TW201525740A (zh) 網頁顯示方法和裝置及電腦可讀取儲存介質
WO2014078449A2 (en) Intelligent information summarization and display
CN109614592B (zh) 文本的处理方法、装置、存储介质和电子设备
CN112486796B (zh) 一种采集车载智能终端信息的方法和装置
US20210217422A1 (en) Method for establishing link to display relevant data of keyword and electronic device employing the method
CN115017110A (zh) 信息处理方法、装置、终端和存储介质
US11153366B2 (en) Lightweight web font customization integrated with glyph demanding assessment
CN113094286A (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