发明内容
有鉴于此,本发明实施例提供了一种应用显示特定语言的方法和终端,用以解决现有技术中存在的应用不能显示特定语言的问题。
第一方面,提供了一种应用显示特定语言的方法,包括:
判断用户是否为应用设定了特定语言;
如果用户为应用设定了特定语言,显示所述应用对应的特定语言。
结合第一方面,在第一方面的第一种可能的实现方式中,所述判断用户是否为应用设定了特定语言之前,所述方法还包括:
获取所述应用支持的语言;
将所述应用支持的语言显示给用户,以便所述用户在所述应用支持的语言中为应用选择特定语言;
对应所述应用保存所述特定语言,以便判断用户是否为应用设定了特定语言。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述判断用户是否为应用设定了特定语言之前,所述方法还包括:
启动所述应用时,读取系统的配置信息;
所述如果用户为应用设定了特定语言,显示所述应用对应的特定语言,包括:
如果用户为应用设定了特定语言,将所述配置信息中的语言更改为所述特定语言;
将更改后的所述配置信息传输给所述应用,以便所述应用在启动后显示所述应用的语言为所述特定语言。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述判断用户是否为应用设定了特定语言之后,所述方法还包括:
如果用户没有为应用设定特定语言,将读取的所述配置信息传输给所述应用,以便所述应用在启动后显示所述应用的语言为系统语言。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第四种可能的实现方式中,所述判断用户是否为应用设定了特定语言之前,所述方法还包括:
更改系统语言;
所述如果用户为应用设定了特定语言,显示所述应用对应的特定语言,包括:
如果用户为应用设定了特定语言,不调用用于更改语言的函数,以保持所述应用的显示语言为所述特定语言。
结合第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述判断用户是否为应用设定了特定语言之后,所述方法还包括:
如果用户没有为应用设定特定语言,调用用于更改语言的函数,以便将所述应用的显示语言更新为更改后的系统语言。
第二方面,提供了一种终端,包括:
判断模块,用于判断用户是否为应用设定了特定语言;
显示模块,用于如果所述判断模块的判断结果是用户为应用设定了特定语言,显示所述应用对应的特定语言。
结合第二方面,在第二方面的第一种可能的实现方式中,还包括:
获取模块,用于获取所述应用支持的语言;
接口模块,用于将所述应用支持的语言显示给用户,以便所述用户在所述应用支持的语言中为应用选择特定语言;
存储模块,用于对应所述应用保存所述特定语言,以便判断用户是否为应用设定了特定语言。
结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,还包括:
读取模块,用于启动所述应用时,读取系统的配置信息;
所述显示模块具体用于:
如果所述判断模块的判断结果是用户为应用设定了特定语言,将所述配置信息中的语言更改为所述特定语言;将更改后的所述配置信息传输给所述应用,以便所述应用在启动后显示所述应用的语言为所述特定语言。
结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述显示模块还用于:
如果所述判断模块的判断结果是用户没有为应用设定特定语言,将读取的所述配置信息传输给所述应用,以便所述应用在启动后显示所述应用的语言为系统语言。
结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第四种可能的实现方式中,还包括:
更改模块,用于更改系统语言;
所述显示模块具体用于:
如果所述判断模块的判断结果是用户为应用设定了特定语言,不调用用于更改语言的函数,以保持所述应用的显示语言为所述特定语言。
结合第二方面的第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述显示模块还用于:
如果所述判断模块的判断结果是用户没有为应用设定特定语言,调用用于更改语言的函数,以便将所述应用的显示语言更新为更改后的系统语言。
通过上述技术方案,对于某个应用会判断该应用是否存在对应的特定语言,在存在特定语言时显示对应的特定语言,可以实现应用对特定语言的显示,而不是应用显示系统语言,由于应用可以显示特定语言,因此可以增强终端功能,增强用户体验,也增强终端竞争力。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的一种应用显示特定语言的方法的流程示意图,包括:
11:终端判断用户是否为应用设定了特定语言;
12:该终端在用户为应用设定了特定语言时,显示所述应用对应的特定语言。
可选的,当用户为应用设定了特定语言时,该特定语言与应用的对应关系可以保存在数据库中。之后终端可以读取该数据库,如果该数据库中存在与该应用对应的特定语言,那么就可以判断出用户为该应用设定了特定语言。
其中,该特定语言是指与系统语言独立的语言,也就是说,该特定语言可以与系统语言不同,并且不随着系统语言的改变而改变。可以理解的是,用户也可以设定该特定语言与系统语言相同,之后,当系统语言更改后,当用户不更改特定语言时,则特定语言不再与系统语言相同,或者,用户也可以更改特定语言,再次与系统语言相同。
另外,上述的终端可以是指移动终端,例如手机、电脑等,或者,该终端也可以是固定终端。
参见图2,提供了为应用设定特定语言的流程,包括:
21:终端获取应用支持的语言。
以终端系统为Android为例,Android提供了一套完整的本地化方案。开发者可以在资源文件夹res内建立不同国家语言的文件,这些国家语言的文件命名是有规定的,例如开发者需要开发的应用支持三种语言,分别是英文、中文和西班牙语,则可以定义如下的三种语言:
values/strings.xml 默认语言(英语)
values-es/strings.xml 西班牙语
values-zh-rCN/strings.xml 简体中文
要获取某个应用支持哪些语言,可以从该应用的res文件夹下读取应用共定义了哪些语言,再通过android关于国家语言文件的命名规定,可以读取该应用支持的所有语言。
可以理解的是,对于不同系统的终端可以根据相应系统进行上述应用支持的语言的读取,可以采用上述类似android系统的读取流程。例如,终端可以根据自身系统的配置读取存储各应用支持的语言文件,再根据自身的语言文件命名规则就可以获知各应用具体支持的语言。
22:该终端将所述应用支持的语言显示给用户,以便所述用户在所述应用支持的语言中为应用选择特定语言;
终端可以提供一个接口给用户,以便显示应用支持的语言并且用户可以通过该接口选择特定语言。
例如,该接口可以集成到现有的安装包中,例如集成在现有的设置(setting)项中,或者,该接口也可以是新增的安装包,如新增一个android安装包(androidpackage,apk)。该接口可以包括该终端上的所有应用以及每个应用对应的配置信息,该配置信息包括该应用支持的语言。此时,当用户点击某个应用之后,系统就可以读取该应用支持的语言,并列出来呈现给用户选择。例如,一个应用支持的语言为上述的三种语言(英文、中文和西班牙语)时,用户可以在上述的三种语言中选择一种作为特定语言,例如,选择中文作为该应用的特定语言,而此时的系统语言可以是英文。
23:该终端对应所述应用保存所述特定语言。
其中,应用与特定语言的对应关系可以保存在终端的数据库中,之后终端可以通过读取数据库来判断某一应用是否设定了特定语言。
该数据库中的数据可以在终端重启之后依然保存不会丢失,可以在恢复出厂设置之后这些数据才会丢失。
该数据库中的每一项可以对应一个应用的数据,用户没有设定的应用可以不需要存储。每个存储的应用对应的记录可以包括两个字段,即应用程序包名(package_name(key))和该应用对应的特定语言(language)。例如,该数据库中的保存的数据可以如表1所示:
表1
应用程序包名 |
用户设定的特定语言 |
com.andriod.email |
es |
com.rovio.angrubirds |
zh-rCN |
其中,com.andriod.email表示应用为email,com.rovio.angrubirds表示应用为愤怒的小鸟,es表示特定语言为西班牙语,zh-rCN表示特定语言为中文。因此,通过上述设定,用户在使用email时将显示西班牙语,用户在使用愤怒的小鸟这一游戏时将显示中文。
上述应用显示特定语言可以是启动应用时,也可以是应用运行时。
具体的,在启动应用时,
可选的,所述判断用户是否为应用设定了特定语言之前,所述方法还包括:启动所述应用时,读取系统的配置信息;
所述如果用户为应用设定了特定语言,显示所述应用对应的特定语言,包括:如果用户为应用设定了特定语言,将所述配置信息中的语言更改为所述特定语言;将更改后的所述配置信息传输给所述应用,以便所述应用在启动后显示所述应用的语言为所述特定语言。
可选的,所述判断用户是否为应用设定了特定语言之后,所述方法还包括:如果用户没有为应用设定特定语言,将读取的所述配置信息传输给所述应用,以便所述应用在启动后显示所述应用的语言为系统语言。
或者,在应用运行时,
可选的,所述判断用户是否为应用设定了特定语言之前,所述方法还包括:更改系统语言;
所述如果用户为应用设定了特定语言,显示所述应用对应的特定语言,包括:如果用户为应用设定了特定语言,不调用用于更改语言的函数,以保持所述应用的显示语言为所述特定语言。
可选的,所述判断用户是否为应用设定了特定语言之后,所述方法还包括:如果用户没有为应用设定特定语言,调用用于更改语言的函数,以便将所述应用的显示语言更新为更改后的系统语言。
本实施例通过使用应用时,判断该应用是否存在对应的特定语言,在存在特定语言时显示对应的特定语言,可以实现应用对特定语言的显示,而不是应用显示系统语言,由于应用可以显示特定语言,因此可以增强终端功能,增强用户体验,也增强终端竞争力。
图3为本发明实施例提供的另一种应用显示特定语言的方法的流程示意图,包括:
31:终端启动应用时,读取系统的配置信息;
其中,配置信息中可以存储当前的系统语言,例如,配置信息(configuration)中有一项为本地信息(locale),该本地信息中存储了当前的系统信息。
现有技术中,启动应用时,终端会读取配置信息并将该配置信息传输给该应用,之后该应用根据该配置信息中的系统语言作为该应用的显示语言。
而本实施例会首先判断用户是否为该应用设定了特定语言,即包括:
32:该终端判断用户是否为该应用设定了特定语言,若是,执行33,否则,执行34。
例如,终端可以读取上述的数据库,如果该数据库中记录该启动的应用以及对应的特定语言,那么就表明用户为该应用设定了特定语言,否则,如果该数据库中没有记录该启动的应用和/或该应用对应的特定语言,那么就表明用户没有为该应用设定特定语言。
33:该终端更改该配置信息中的语言。
也就是说,将配置信息中的系统语言更改为该应用对应的特定语言。例如,配置信息中的系统语言为英文,而终端通过读取数据库获知该应用对应的特定语言为中文,那么将配置信息中的语言由英文更改为中文。
34:该终端将配置信息传输给该应用。
当终端没有更改配置信息时,该传输给应用的配置信息是指包含系统语言的未经更改的配置信息。而当终端更改配置信息时,该传输给应用的配置信息是指语言由系统语言更改为特定语言的配置信息。
35:应用在启动后根据配置信息中的语言进行显示。
例如,当用户没有为该应用设定特定语言时,由于传输给应用的配置信息中包含的语言为系统语言,那么该应用显示系统语言;当用户为该应用设定特定语言时,由于传输给应用的配置信息中包含的语言为特定语言,那么该应用显示特定语言。
本实施例通过在应用启动时判断是否为该应用设定了特定语言,可以在设定特定语言时,将应用的语言显示为该特定语言,而不限于系统语言,可以丰富终端的功能,增强用户体验,增强终端的竞争力。
图4为本发明实施例提供的另一种应用显示特定语言的方法的流程示意图,包括:
41:终端的应用在运行时,系统语言发生了更改。
现有技术中,当系统语言更改后,系统会调用用于更改语言的函数,例如调用onConfigurationChanged函数,通过调用该onConfigurationChanged函数,正在运行的应用的显示语言会切换为更改后的系统语言。
而本实施例会首先判断用户是否为该应用设定了特定语言,即包括:
42:该终端判断用户是否为该应用设定了特定语言,若是,执行43,否则,执行44。
例如,终端可以读取上述的数据库,如果该数据库中记录该启动的应用以及对应的特定语言,那么就表明用户为该应用设定了特定语言,否则,如果该数据库中没有记录该启动的应用和/或该应用对应的特定语言,那么就表明用户没有为该应用设定特定语言。
43:终端不调用用于更改语言的函数,此时,可以保持所述应用的显示语言为所述特定语言不变。
44:终端调用用于更改语言的函数,此时,该应用的显示语言更新为更改后的系统语言。
本实施例通过判断是否为该应用设定了特定语言,可以在设定特定语言时,将应用的语言显示为该特定语言,并且该特定语言可以不随系统语言的改变而改变,可以丰富终端的功能,增强用户体验,增强终端的竞争力。
在具体实施例时,用户可以通过终端上的设置项(setting)获取应用支持的语言并在该支持的语言中为应用选择特定语言,之后该应用在启动后就可以显示该特定语言并不随着系统语言的改变而改变。
例如,用户A的系统语言为中文,但其需要经过通过email与韩国客户交流,因此,用户A可以将email设置特定语言为韩文,方便与韩国客户的交流并给客户留下好印象。
又例如,用户B的系统语言为英文,并喜欢玩游戏,但一些游戏对英文支持不够好,翻译的不合适,那么用户B就可以将这些对英文支持不够好的游戏的特定语言设置为中文,这样在使用这些游戏时就可以显示中文,而在使用其它应用时可以使用英文,方便用户使用。
图5为本发明实施例提供的一种终端的结构示意图,该终端50包括判断模块51和显示模块52;判断模块51用于判断用户是否为应用设定了特定语言;显示模块52用于如果所述判断模块的判断结果是用户为应用设定了特定语言,显示所述应用对应的特定语言。
可选的,还包括:
获取模块,用于获取所述应用支持的语言;
接口模块,用于将所述应用支持的语言显示给用户,以便所述用户在所述应用支持的语言中为应用选择特定语言;
存储模块,用于对应所述应用保存所述特定语言,以便判断用户是否为应用设定了特定语言。
可选的,还包括:
读取模块,用于启动所述应用时,读取系统的配置信息;
所述显示模块具体用于:
如果所述判断模块的判断结果是用户为应用设定了特定语言,将所述配置信息中的语言更改为所述特定语言;将更改后的所述配置信息传输给所述应用,以便所述应用在启动后显示所述应用的语言为所述特定语言。
可选的,所述显示模块还用于:
如果所述判断模块的判断结果是用户没有为应用设定特定语言,将读取的所述配置信息传输给所述应用,以便所述应用在启动后显示所述应用的语言为系统语言。
可选的,还包括:
更改模块,用于更改系统语言;
所述显示模块具体用于:
如果所述判断模块的判断结果是用户为应用设定了特定语言,不调用用于更改语言的函数,以保持所述应用的显示语言为所述特定语言。
可选的,所述显示模块还用于:
如果所述判断模块的判断结果是用户没有为应用设定特定语言,调用用于更改语言的函数,以便将所述应用的显示语言更新为更改后的系统语言。
参见图6,本发明实施例提供了另一种终端,该终端60包括处理器61和用户界面(user interface,UI)62;处理器61用于判断用户是否为应用设定了特定语言;用户界面62用于如果所述处理器的判断结果是用户为应用设定了特定语言,显示所述应用对应的特定语言。
可选的,处理器61还用于获取所述应用支持的语言;用户界面62还用于将所述处理器61确定的所述应用支持的语言显示给用户,以便所述用户在所述应用支持的语言中为应用选择特定语言;该终端还可以包括存储器,该存储器用于对应所述应用保存所述用户通过用户界面62设定的所述特定语言,以便判断用户是否为应用设定了特定语言。
可选的,处理器61还用于启动所述应用时,读取系统的配置信息;如果用户为应用设定了特定语言,将所述配置信息中的语言更改为所述特定语言;将更改后的所述配置信息传输给所述应用,以便所述应用在启动后通过用户界面62显示所述应用的语言为所述特定语言。
可选的,处理器61还用于如果用户没有为应用设定特定语言,将读取的所述配置信息传输给所述应用,以便所述应用在启动后通过用户界面62显示所述应用的语言为系统语言。
可选的,处理器61还用于更改系统语言;如果用户为应用设定了特定语言,不调用用于更改语言的函数,以保持所述应用通过用户界面62显示的语言为所述特定语言。
可选的,处理器61还用于如果用户没有为应用设定特定语言,调用用于更改语言的函数,以便将所述应用通过用户界面62显示的语言更新为更改后的系统语言。
本实施例通过使用应用时,判断该应用是否存在对应的特定语言,在存在特定语言时显示对应的特定语言,可以实现应用对特定语言的显示,而不是应用显示系统语言,由于应用可以显示特定语言,因此可以增强终端功能,增强用户体验,也增强终端竞争力。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。