CN115454514A - 一种应用程序的多语言支持方法及其相关组件 - Google Patents
一种应用程序的多语言支持方法及其相关组件 Download PDFInfo
- Publication number
- CN115454514A CN115454514A CN202211164689.2A CN202211164689A CN115454514A CN 115454514 A CN115454514 A CN 115454514A CN 202211164689 A CN202211164689 A CN 202211164689A CN 115454514 A CN115454514 A CN 115454514A
- Authority
- CN
- China
- Prior art keywords
- font
- application program
- language
- font file
- file
- 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
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000013507 mapping Methods 0.000 claims description 54
- 238000004590 computer program Methods 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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/4401—Bootstrapping
- G06F9/4406—Loading of operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/103—Formatting, i.e. changing of presentation of documents
- G06F40/109—Font handling; Temporal or kinetic typography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/126—Character encoding
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种应用程序的多语言支持方法及其相关组件,涉及文本显示领域,当检测到应用程序在预设程序中的启动指令时,确定应用程序的语言环境,判断预设字体库中的各个字体文件中是否存在字体文件与语言环境之间有映射关系,若存在字体文件与语言环境之间有映射关系,则调用与语言环境之间有映射关系的字体文件启动应用程序。在应用程序启动时,先根据应用程序的语言环境在预设字体库中找出对应的字体文件,再利用该字体文件来继续启动该应用程序,由于该字体文件与语言环境之间有映射关系,因此能够使应用程序在启动后正常显示所有的字符,能够避免因为字体文件不一致而导致的文字乱码以及字符显示不全等问题。
Description
技术领域
本发明涉及文本显示领域,特别是涉及一种应用程序的多语言支持方法及其相关组件。
背景技术
由于Windows程序是封闭源代码的,工作人员在编辑和修改Windows程序时只能从最底层开始设计,若需要让Windows程序在Linux系统中运行,则需要耗费较多的时间和工作量修改该Windows程序的底层代码以使得该Windows程序在Linux系统中运行。为了节省时间以及工作量,现有技术通常使用Wine运行Windows程序,Wine是一种应用于Linux系统的程序,通过在Wine中运行Windows程序以实现Windows程序在Linux系统中运行的目的。但是,Linux系统本身的字体文件可能与Windows程序所需要的字体文件不一致,导致Wine在运行Windows程序时可能会出现文字乱码以及字符显示不全等问题。
发明内容
本发明的目的是提供一种应用程序的多语言支持方法及其相关组件,能够使应用程序在启动后正常显示所有的字符,能够避免因为字体文件不一致而导致的文字乱码以及字符显示不全等问题。
为解决上述技术问题,本发明提供了一种应用程序的多语言支持方法,包括:
当检测到应用程序在预设程序中的启动指令时,确定所述应用程序的语言环境;
判断预设字体库中的各个字体文件中是否存在所述字体文件与所述语言环境之间有映射关系;
若存在所述字体文件与所述语言环境之间有映射关系,则调用与所述语言环境之间有映射关系的所述字体文件启动所述应用程序。
优选的,在判断预设字体库中的各个字体文件中是否存在所述字体文件与所述语言环境之间有映射关系之前,还包括:
确定所述预设字体库的文件路径;
建立所述预设程序与所述文件路径之间的软连接,并进入判断预设字体库中的各个字体文件中是否存在所述字体文件与所述语言环境之间有映射关系的步骤。
优选的,在确定所述应用程序的语言环境之前,还包括:
当接收到待存储字体文件时,判断预设字体库中的各个字体文件中是否存在所述字体文件与所述待存储字体文件一致;
若不存在,则将所述待存储字体文件存储至所述预设字体库中;
若存在,则不将所述待存储字体文件存储至所述预设字体库中。
优选的,确定所述应用程序的语言环境,包括:
获取所述应用程序的配置文件中的语言标识符;
根据所述语言标识符确定所述应用程序的语言环境。
优选的,在判断预设字体库中的各个字体文件中是否存在所述字体文件与所述语言环境之间有映射关系之后,还包括:
若不存在所述字体文件与所述语言环境之间有映射关系,则生成包含所述语言环境的提示信号,并将所述提示信号发送给所述提示模块,以便所述提示模块发出提示。
优选的,当有N个所述字体文件与所述语言环境之间有映射关系时,N为不小于2的整数,调用与所述语言环境之间有映射关系的所述字体文件启动所述应用程序,包括:
判断在N个所述字体文件中是否存在所述语言环境对应的预先指定的字体文件;
若存在,则调用所述预先指定的字体文件启动所述应用程序;
若不存在,则调用任一个所述字体文件启动所述应用程序。
优选的,在调用与所述语言环境之间有映射关系的所述字体文件启动所述应用程序之后,还包括:
当接收到字体选择指令时,根据所述字体选择指令在N个所述字体文件中确定对应的字体文件;
根据所述字体选择指令对应的字体文件修改所述应用程序中的文本字体。
本申请还提供一种应用程序的多语言支持装置,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述的应用程序的多语言支持方法的步骤。
本申请还提供一种应用程序的多语言支持系统,包括:
语言环境确定单元,用于当检测到应用程序在预设程序中的启动指令时,确定所述应用程序的语言环境;
判断单元,用于判断预设字体库中的各个字体文件中是否存在所述字体文件与所述语言环境之间有映射关系;若存在所述字体文件与所述语言环境之间有映射关系,则触发调用单元;
所述调用单元,用于调用与所述语言环境之间有映射关系的所述字体文件启动所述应用程序。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的应用程序的多语言支持方法的步骤。
本发明提供了一种应用程序的多语言支持方法及其相关组件,涉及文本显示领域,当检测到应用程序在预设程序中的启动指令时,确定应用程序的语言环境,判断预设字体库中的各个字体文件中是否存在字体文件与语言环境之间有映射关系,若存在字体文件与语言环境之间有映射关系,则调用与语言环境之间有映射关系的字体文件启动应用程序。在应用程序启动时,先根据应用程序的语言环境在预设字体库中找出对应的字体文件,再利用该字体文件来继续启动该应用程序,由于该字体文件与语言环境之间有映射关系,因此能够使应用程序在启动后正常显示所有的字符,能够避免因为字体文件不一致而导致的文字乱码以及字符显示不全等问题。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请提供的一种应用程序的多语言支持方法的流程图;
图2为本申请提供的一种应用程序的多语言支持装置的结构示意图;
图3为本申请提供的一种应用程序的多语言支持系统的结构示意图。
具体实施方式
本发明的核心是提供一种应用程序的多语言支持方法及其相关组件,能够使应用程序在启动后正常显示所有的字符,能够避免因为字体文件不一致而导致的文字乱码以及字符显示不全等问题。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参照图1,图1为本申请提供的一种应用程序的多语言支持方法的流程图,包括:
S1:当检测到应用程序在预设程序中的启动指令时,确定应用程序的语言环境;
随着用户对于程序兼容性的需求日渐增大,需要让程序能够在多种操作系统中启动和执行,对于Windows系统中的程序而言,由于Windows的DLLs(Dynamic LinkLibraries,动态链接库)是封闭源代码的,因此,若想让Windows程序能够在其他操作系统,如Linux系统中执行,需要工作人员从Windows程序的最底层代码开始设计,这需要耗费大量的时间来设计代码以及测试该Windows程序是否能够在Linux系统中正常运行;而且设计代码还对工作人员的技术水平有一定的要求,设计代码的过程还可能出现人为错误,如输错字符或者产生bug等问题。基于此,目前通常使用Wine程序来实现Windows程序在其他操作系统中执行的目的,Wine是一种能够在Linux、Mac以及FreeBSD等操作系统中均能够正常启动和运行的程序,在Wine中又能够启动并运行Windows程序,可见,通过在Linux系统中启动Wine并在Wine中启动Windows程序,则实现了Windows程序在Linux系统中正常运行的目的,而且不需要对Windows程序进行设计。但是,由于其他系统中的字体库以及字体库中的字体文件的编码格式以及文本配置等基础架构与Windows的字体不同,Wine在运行Windows程序时,常常会出现字符乱码或者字符显示不全等情况。目前有两种解决该问题的方法:一种是更新Wine的版本,因为更高版本的Wine对于语言环境的优化以及文字支持功能更好;另一种是人工修改Wine程序的注册表以更新Wine的文字支持功能。但是,更新Wine版本的方法需要等待Wine程序的设计人员进行更新,其更新频率和更新内容的丰富度是不稳定的,若最新版的Wine仍不能解决文字显示问题,则可能会在很长的一段时间内都无法解决现在的文字显示问题;人工修改注册表的方法则需要用户有一定的技术水平,不能适合广泛使用。
为了解决上述技术问题,本申请中,建立一个新的预设字体库以存放各种字体文件,在Wine中启动Windows程序时,也即在预设程序中启动应用程序时,则调用预设字体库中的字体文件来启动Window程序,从而避免出现Windows程序在启动后出现文字显示错误的问题。具体的,当用户在Wine中启动Windows程序时,也即检测到应用程序在预设程序中的启动指令时,不会直接启动该应用程序,而是首先确定该应用程序所在的语言环境,语言环境可以根据应用程序的语言标识符、语言配置文件、文字语法或者字符格式等参数来确定。例如,可以根据语言配置文件和文字语法来确定应用程序的语言环境,若检测到该应用程序中的语言配置文件是英文配置,则说明该应用程序中显示的字符均为英文字母,其次再根据文字语法,则可以确定该应用程序中具体显示的是英式英语或者美式英语或者其他形式的英语;或者可以根据语言标识符来确定应用程序的语言环境,若该应用程序的语言标识符为CN,则说明该应用程序中的文字是中文,若该应用程序的语言标识符为EN,则说明该应用程序中的文字是英文;可见,如同简体中文或英式英语等这些名词可以称作是该应用程序的语言环境,也即一种主要语言中的每种语言分支均称作是一种语言环境。可以理解的是,应用程序中通常不止只有一种语言,其语言环境可能是多种语言的结合,例如简体中文加上美式英语作为其语言环境,所以在确定其语言环境时,需要根据该应用程序中的所有文本文字来确定,不能仅根据一部分文本文字来确定。
S2:判断预设字体库中的各个字体文件中是否存在字体文件与语言环境之间有映射关系;
在确定了应用程序的语言环境后,则需要找出适用于该种语言环境的字体文件。具体的,由于不同操作系统中的字体文件的编码格式以及文本配置等基础架构不同,为了避免因为基础架构不同而导致应用程序无法正常显示文字的情况,可以在操作系统中建立一个预设字体库,该预设字体库与操作系统本身自带的字体库之间相互独立,这两个字符库中存储的字体文件之间也互不相同且相互独立,在预设字体库中,可以存储该应用程序所在的操作系统中的字体文件,例如,若应用程序是Windows程序,可以在Linux操作系统中建立一个专门用于存储Windows字体文件的预设字体库,将Windows系统下的simsun.ttc字体文件或者其他的后缀为ttc或ttf等Windows系统的字体文件存储到预设字体库中,相当于可以把Windows操作系统的字体库搬到Linux系统中存储,预设字体库中存储的都是Windows系统使用的字体文件,虽然Linux系统本身不能使用这些Windows字体文件,但是因为Wine程序可以正常执行Windows系统中的各种文件和程序,所以可以建立预设字体库来为Wine提供字体文件。在实际应用时,在确定了语言环境后,则可以根据语言环境找出有映射关系的字体文件,具体的,每个字体文件都有其对应的元数据,元数据指的是包含了字体文件的字符格式、编码格式以及属性等信息的数据,元数据相当于是描述字体文件基本信息的一种信息,根据字体文件的元数据可以确定字体文件是应用在哪种语言环境中的,所以当确定了应用程序的语言环境后,应用在该种语言环境中的字体文件则是与语言环境之间有映射关系的字体文件。此外,除了字体文件的元数据之外,还可以根据字体文件的语言标识符来确定其应用在哪种语言环境中,例如语言标识符CN标识该字体文件应用在中文环境中,在确定了语言环境是中文后,在预设字体库中找出应用在中文环境下的字体文件,即为与中文环境之间有映射关系的字体文件。本申请对如何确定字体文件和语言环境之间的映射关系不做限定。
S3:若存在字体文件与语言环境之间有映射关系,则调用与语言环境之间有映射关系的字体文件启动应用程序。
在找到与应用程序的语言环境之间有映射关系的字体文件之后,则可以利用该字体文件来启动应用程序,由于该字体文件本来就是应用在该种语言环境中的,因此,应用程序在启动之后,则可以正常显示所有的字符。进一步的,考虑到应用程序可能会有多种语言同时存在,因此,在确定映射关系时,需要针对应用程序中的每种语言都确定其对应的字体文件,在启动应用程序时则需要根据所有的有映射关系的字体文件一并启动。例如,当应用程序包括简体中文和美式英语两种语言时,则分别需要确定这两种语言对应的字体文件,得到应用在简体中文环境中的字体文件以及应用在美式英语环境中的字体文件,最后调用这两种字体文件来启动应用程序,应用程序在启动之后,应用程序中的不同语言的文本则根据该语言对应的字体文件进行显示。
综上,当检测到应用程序在预设程序中的启动指令时,确定应用程序的语言环境,判断预设字体库中的各个字体文件中是否存在字体文件与语言环境之间有映射关系,若存在字体文件与语言环境之间有映射关系,则调用与语言环境之间有映射关系的字体文件启动应用程序。在应用程序启动时,先根据应用程序的语言环境在预设字体库中找出对应的字体文件,再利用该字体文件来继续启动该应用程序,由于该字体文件与语言环境之间有映射关系,因此能够使应用程序在启动后正常显示所有的字符,能够避免因为字体文件不一致而导致的文字乱码以及字符显示不全等问题。
在上述实施例的基础上:
作为一种优选的实施例,在判断预设字体库中的各个字体文件中是否存在字体文件与语言环境之间有映射关系之前,还包括:
确定预设字体库的文件路径;
建立预设程序与文件路径之间的软连接,并进入判断预设字体库中的各个字体文件中是否存在字体文件与语言环境之间有映射关系的步骤。
为了保证字体文件的正常调用,本申请中,考虑到Wine程序属于应用在Linux系统中的程序,Wine在启动后也会使用Linux系统本身自带的字体库,为了避免在Wine中启动Windows程序时错误的使用了Linux系统本身自带的字体库中的字体文件而非预设字体库中的字体文件,需要建立起Wine程序和预设字体库之间的连接关系。具体的,由于软连接可以跨文件系统进行连接,而且可以根据文件路径来对目录进行连接,相比于硬连接而言具有更灵活和更应用广泛的优点,因此,可以首先找出预设字体库在Linux系统中的文件路径,然后建立起Wine和该文件路径之间的软连接,相当于建立起Wine和预设字体库之间的连接,在执行后续步骤时,可以根据软连接来确定需要使用的字体库,以避免错误使用Linux系统本身自带的字体库。进一步的,为了避免操作系统中的其他程序的正常字体文件调用,可以将预设字体库设置在Wine程序的隔离路径中,如设置在[/.wine/drive_c/windows/fonts/]目录中,以隔离预设字体库和操作系统中的其他程序,使得其他程序只能使用操作系统本身自带的字体库,从而实现其他程序的正常字体调用。基于此,能够保证字体文件的正常调用。
作为一种优选的实施例,在确定应用程序的语言环境之前,还包括:
当接收到待存储字体文件时,判断预设字体库中的各个字体文件中是否存在字体文件与待存储字体文件一致;
若不存在,则将待存储字体文件存储至预设字体库中;
若存在,则不将待存储字体文件存储至预设字体库中。
为了节省存储空间,本申请中,考虑到用户在日常交流中所使用的文字、语言和字符等文本越来越丰富,需要持续地更新字体文件以支持用户对于文本多样性的需求,因此,可以向预设字体库中添加新的字体文件或者更新预设字体库中存储的字体文件,以提高预设字体库中存储的字体文件的丰富度。具体的,可以是用户手动往预设字体库发送字体文件,也可以是检测在线的字体库中是否有新增的或者更新的字体文件,并将新增或更新的字体文件从在线字体库下载到预设字体库中,这些发送或下载到预设字体库中的字体文件在落到预设字体库之前,可以称作是待存储字体文件。在存储待存储字体文件之前,首先需要判断预设字体库中是否已经存储有与该待存储字体文件一致的字体文件,若存在,考虑到重复存储相同的字体文件对于实际调用的意义不大,因此可以不存储待存储字体文件到预设字体库中,这可能是因为系统在将在线字体库中的新的字体文件下载到预设字体库之后,用户又手动往预设字体库中发送该新的字体文件而导致的;若不存在,则说明待存储字体文件属于新增的字体文件或者是现有的字体文件的更新版本,若待存储字体文件属于现有的字体文件的更新版本,则可以在存储了待存储字体文件之后,将之前存储的旧版本的字体文件删除。基于此,能够节省预设文件库的存储空间。
作为一种优选的实施例,确定应用程序的语言环境,包括:
获取应用程序的配置文件中的语言标识符;
根据语言标识符确定应用程序的语言环境。
为了简单地确定应用程序的语言环境,本申请中,可以通过语言标识符来确定。具体的,每个应用程序都有其对应的配置文件,配置文件具体中包含有应用程序在正常运行时的配置参数以及默认设置等,例如应用程序的窗口大小、字体大小、字体样式和语言环境等,配置文件中通常设定有一个语言标识符作为应用程序的语言环境的配置参数,由于语言标识符与语言环境之间是一一对应的,所以可以根据语言标识符来确定应用程序的语言环境。例如,语言标识符CN_S表示语言环境为简体中文,语言标识符EN_US表示语言环境为美式英语,当获取到应用程序的语言标识符为CN_S时,则可以确定应用程序的语言环境是简体中文。基于此,通过语言标识符可以简单地确定应用程序的语言环境。
作为一种优选的实施例,在判断预设字体库中的各个字体文件中是否存在字体文件与语言环境之间有映射关系之后,还包括:
若不存在字体文件与语言环境之间有映射关系,则生成包含语言环境的提示信号,并将提示信号发送给提示模块,以便提示模块发出提示。
为了及时提示用户,本申请中,在确定了应用程序的语言环境后,若在预设字体库中找不到应用在该语言环境中的字体文件,则说明该应用程序在运行时可能会因为没有合适的字体文件的支持而出现字符乱码或字符显示不全的情况,为了及时往预设字体库中添加应用在该种语言环境中的字体文件,可以在确定了预设字体库中没有应用在该语言环境中的字体文件之后,为用户发出提示,以便用户添加字体文件。具体的,在生成提示信号时,可以将该应用程序所对应的语言环境相关的信息包含进提示信号中,例如,假设该应用程序的语言环境包括简体中文、美式英语和法语这三种语言,若预设字体库中没有美式英语和法语这两种语言,则可以将美式英语和法语这两种语言对应的语言标识符添加到提示信号中。而提示模块可以是Wine程序中的一个弹窗窗口,在生成提示信号后,通过弹窗窗口的方式提示用户,并在弹窗窗口中显示哪些语言环境没有其对应的字体文件,以便用户根据窗口所展示的信息确定缺少的字体文件。基于此,能够及时提示用户。
作为一种优选的实施例,当有N个字体文件与语言环境之间有映射关系时,N为不小于2的整数,调用与语言环境之间有映射关系的字体文件启动应用程序,包括:
判断在N个字体文件中是否存在语言环境对应的预先指定的字体文件;
若存在,则调用预先指定的字体文件启动应用程序;
若不存在,则调用任一个字体文件启动应用程序。
为了保证应用程序的正常字符显示,本申请中,考虑到预设字体库中可能存储有一种语言环境的多种字体文件,若同时调用多种字体文件启动应用程序,则可能会导致应用程序在正常运行时文本显示样式不统一,因此,在调用字体文件启动应用程序时需要选取其中的一种字体文件来启动。具体的,在存储字体文件到预设字体库中时,对于一种语言环境中的多个字体文件而言,可以指定其中的某一个字体文件作为该种语言环境默认使用的字体文件,在每次启动该种语言环境的应用程序时,都默认使用该种字体文件来启动该应用程序;若该种语言环境没有指定的字体文件,则可以在每次启动时随机选择该种语言环境的字体文件来启动。例如,若预设字体库中存储有简体中文环境中的宋体字体文件、楷体字体文件和黑体字体文件,可以将其中的宋体字体文件作为默认使用的字体文件,在启动简体中文环境的应用程序时则可以使用宋体字体文件来启动该应用程序。基于此,能够保证应用程序的正常字符显示。
作为一种优选的实施例,在调用与语言环境之间有映射关系的字体文件启动应用程序之后,还包括:
当接收到字体选择指令时,根据字体选择指令在N个字体文件中确定对应的字体文件;
根据字体选择指令对应的字体文件修改应用程序中的文本字体。
为了改变文本的字体样式,本申请中,考虑到不同的用户所喜好的字体样式不同,需要在应用程序正常运行时能够根据用户需求改变其显示的文本的字体样式。具体的,在应用程序正常运行时,若用户需要修改应用程序当前显示的文本的字体样式,用户会在Wine程序的字体选择设置中选中用户所需要的字体样式,在确定需要修改字体样式时则会生成该字体样式对应的字体选择指令,此时根据该字体选择指令在该语言环境所对应的N个字体文件中找出该字体选择指令所对应的字体文件,并根据该字体文件来修改应用程序显示的文本的字体样式。例如,若应用程序属于简体中文环境,应用程序当前显示的文本的字体样式为宋体,而用户需要将字体样式修改为楷体,则会在预设文件库中存储的对应于简体中文环境的N种字体文件中找出楷体字体文件,并利用楷体字体文件来修改应用程序显示的文本的字体样式,使得应用程序实际显示的字体样式从宋体变成楷体。基于此,能够在应用程序正常运行时改变文本的字体样式。
请参照图2,图2为本申请提供的一种应用程序的多语言支持装置的结构示意图,包括:
存储器21,用于存储计算机程序;
处理器22,用于执行计算机程序时实现如上述的应用程序的多语言支持方法的步骤。
对于本申请提供的一种应用程序的多语言支持装置的详细介绍,请参照上述应用程序的多语言支持方法的实施例,本申请在此不再赘述。
请参照图3,图3为本申请提供的一种应用程序的多语言支持系统的结构示意图,包括:
语言环境确定单元31,用于当检测到应用程序在预设程序中的启动指令时,确定应用程序的语言环境;
判断单元32,用于判断预设字体库中的各个字体文件中是否存在字体文件与语言环境之间有映射关系;若存在字体文件与语言环境之间有映射关系,则触发调用单元;
调用单元33,用于调用与语言环境之间有映射关系的字体文件启动应用程序。
具体的,可以创建系统服务单元systemd unit作为语言环境确定单元31,并将其命名为language_distinguish.service,通过language_distinguish.service识别应用程序的语言环境。创建另一个系统服务单元systemd unit作为判断单元32和调用单元33的组合,将其命名为language_change.service,负责根据应用程序的语言环境找出对应的字体文件,并根据该字体文件更改应用程序的语言。
对于本申请提供的一种应用程序的多语言支持系统的详细介绍,请参照上述应用程序的多语言支持方法的实施例,本申请在此不再赘述。
在上述实施例的基础上:
作为一种优选的实施例,还包括:
路径确定单元,用于在判断预设字体库中的各个字体文件中是否存在字体文件与语言环境之间有映射关系之前,确定预设字体库的文件路径;
软连接建立单元,用于建立预设程序与文件路径之间的软连接,并触发判断单元。
作为一种优选的实施例,还包括:
一致性判断单元,用于在确定应用程序的语言环境之前,当接收到待存储字体文件时,判断预设字体库中的各个字体文件中是否存在字体文件与待存储字体文件一致;若不存在,则触发存储单元;若存在,则触发拒绝单元;
存储单元用于将待存储字体文件存储至预设字体库中;
拒绝单元用于不将待存储字体文件存储至预设字体库中。
作为一种优选的实施例,语言环境确定单元31包括:
标识符获取单元,用于获取应用程序的配置文件中的语言标识符;
确定单元,用于根据语言标识符确定应用程序的语言环境。
作为一种优选的实施例,还包括:
提示信号生成单元,用于在判断预设字体库中的各个字体文件中是否存在字体文件与语言环境之间有映射关系之后,若不存在字体文件与语言环境之间有映射关系,则生成包含语言环境的提示信号,并将提示信号发送给提示模块,以便提示模块发出提示。
作为一种优选的实施例,当有N个字体文件与语言环境之间有映射关系时,N为不小于2的整数,调用单元33包括:
指定文件判断单元,判断在N个字体文件中是否存在语言环境对应的预先指定的字体文件;若存在,则触发第一调用单元;若不存在,则触发第二调用单元;
第一调用单元用于调用预先指定的字体文件启动应用程序;
第二调用单元用于调用任一个字体文件启动应用程序。
作为一种优选的实施例,还包括:
多文件确定单元,用于在调用与语言环境之间有映射关系的字体文件启动应用程序之后,当接收到字体选择指令时,根据字体选择指令在N个字体文件中确定对应的字体文件;
字体修改单元,用于根据字体选择指令对应的字体文件修改应用程序中的文本字体。
本申请还提供一种计算机可读存储介质,其特征在于,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述的应用程序的多语言支持方法的步骤。
对于本申请提供的一种计算机可读存储介质的详细介绍,请参照上述应用程序的多语言支持方法的实施例,本申请在此不再赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种应用程序的多语言支持方法,其特征在于,包括:
当检测到应用程序在预设程序中的启动指令时,确定所述应用程序的语言环境;
判断预设字体库中的各个字体文件中是否存在所述字体文件与所述语言环境之间有映射关系;
若存在所述字体文件与所述语言环境之间有映射关系,则调用与所述语言环境之间有映射关系的所述字体文件启动所述应用程序。
2.如权利要求1所述的应用程序的多语言支持方法,其特征在于,在判断预设字体库中的各个字体文件中是否存在所述字体文件与所述语言环境之间有映射关系之前,还包括:
确定所述预设字体库的文件路径;
建立所述预设程序与所述文件路径之间的软连接,并进入判断预设字体库中的各个字体文件中是否存在所述字体文件与所述语言环境之间有映射关系的步骤。
3.如权利要求1所述的应用程序的多语言支持方法,其特征在于,在确定所述应用程序的语言环境之前,还包括:
当接收到待存储字体文件时,判断预设字体库中的各个字体文件中是否存在所述字体文件与所述待存储字体文件一致;
若不存在,则将所述待存储字体文件存储至所述预设字体库中;
若存在,则不将所述待存储字体文件存储至所述预设字体库中。
4.如权利要求1所述的应用程序的多语言支持方法,其特征在于,确定所述应用程序的语言环境,包括:
获取所述应用程序的配置文件中的语言标识符;
根据所述语言标识符确定所述应用程序的语言环境。
5.如权利要求1所述的应用程序的多语言支持方法,其特征在于,在判断预设字体库中的各个字体文件中是否存在所述字体文件与所述语言环境之间有映射关系之后,还包括:
若不存在所述字体文件与所述语言环境之间有映射关系,则生成包含所述语言环境的提示信号,并将所述提示信号发送给所述提示模块,以便所述提示模块发出提示。
6.如权利要求1至5任一项所述的应用程序的多语言支持方法,其特征在于,当有N个所述字体文件与所述语言环境之间有映射关系时,N为不小于2的整数,调用与所述语言环境之间有映射关系的所述字体文件启动所述应用程序,包括:
判断在N个所述字体文件中是否存在所述语言环境对应的预先指定的字体文件;
若存在,则调用所述预先指定的字体文件启动所述应用程序;
若不存在,则调用任一个所述字体文件启动所述应用程序。
7.如权利要求6所述的应用程序的多语言支持方法,其特征在于,在调用与所述语言环境之间有映射关系的所述字体文件启动所述应用程序之后,还包括:
当接收到字体选择指令时,根据所述字体选择指令在N个所述字体文件中确定对应的字体文件;
根据所述字体选择指令对应的字体文件修改所述应用程序中的文本字体。
8.一种应用程序的多语言支持装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述的应用程序的多语言支持方法的步骤。
9.一种应用程序的多语言支持系统,其特征在于,包括:
语言环境确定单元,用于当检测到应用程序在预设程序中的启动指令时,确定所述应用程序的语言环境;
判断单元,用于判断预设字体库中的各个字体文件中是否存在所述字体文件与所述语言环境之间有映射关系;若存在所述字体文件与所述语言环境之间有映射关系,则触发调用单元;
所述调用单元,用于调用与所述语言环境之间有映射关系的所述字体文件启动所述应用程序。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的应用程序的多语言支持方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211164689.2A CN115454514A (zh) | 2022-09-23 | 2022-09-23 | 一种应用程序的多语言支持方法及其相关组件 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211164689.2A CN115454514A (zh) | 2022-09-23 | 2022-09-23 | 一种应用程序的多语言支持方法及其相关组件 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115454514A true CN115454514A (zh) | 2022-12-09 |
Family
ID=84307469
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211164689.2A Pending CN115454514A (zh) | 2022-09-23 | 2022-09-23 | 一种应用程序的多语言支持方法及其相关组件 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115454514A (zh) |
-
2022
- 2022-09-23 CN CN202211164689.2A patent/CN115454514A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11016785B2 (en) | Method and system for mirror image package preparation and application operation | |
US7246224B2 (en) | System and method to enable platform personality migration | |
CN111740948B (zh) | 数据包发布方法、动态更新方法、装置、设备及介质 | |
EP0640913A2 (en) | Multilingual standard resources | |
US9342275B2 (en) | System and method for automatically declaring variables | |
CN104951364A (zh) | 一种基于Android平台的语言切换方法及系统 | |
CN111061525A (zh) | 国际化界面切换方法、存储介质 | |
CN107404669B (zh) | 电视系统界面显示方法、设备及计算机可读存储介质 | |
CN109271157B (zh) | 软件开发方法、设备及计算机可读存储介质 | |
CN112363845A (zh) | 系统集成中台的数据同步方法及集成中台系统 | |
US7610297B2 (en) | Method to automate resource management in computer applications | |
CN108153533B (zh) | 制作安装程序的方法和装置、程序的安装方法和装置 | |
CN112783494A (zh) | 一种骨架屏自动生成方法、应用程序页面更新方法及装置 | |
CN116339736A (zh) | Tcl交互界面的配置方法、装置、设备及存储介质 | |
CN114706616A (zh) | 小程序构建方法和装置 | |
CN105786568B (zh) | 一种升级内容显示方法、装置及智能终端 | |
US7657897B2 (en) | Methods and apparatus for communicating between multiple levels of software components | |
US20040117382A1 (en) | Method and apparatus for customizing the output of a user command | |
US6405325B1 (en) | Method and tool for restoring crashed operation system of computer | |
CN115454514A (zh) | 一种应用程序的多语言支持方法及其相关组件 | |
CN113986385A (zh) | 项目字体库加载方法、装置、电子设备及存储介质 | |
CN113282328A (zh) | 应用程序更新方法、计算机设备及计算机存储介质 | |
CN110989876B (zh) | 一种应用程序适配方法、移动终端及存储介质 | |
CN112286546A (zh) | 应用程序更新方法、装置、设备 | |
US20040216140A1 (en) | Method and system for accessing system operations through an interface layer |
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 |