本发明涉及多语言领域,特别支持多语言的方法及装置。
背景技术:
在用户界面程序开发中,对多语言的支持需求越来越多。
其中,视窗介绍基础(wpf,windowspresentationfoundation)是一种典型的用户界面框架,提供了统一的编程模型、语言和框架,提供全新的多媒体交互用户界面。
在使用wpf时,往往存在多语言的需求。目前在基于wpf开发支持多语言的解决方案时,需开发人员手动完成各个环节,不仅工作量巨大,而且准确性差。
技术实现要素:
本发明实施例提供了支持多语言的方法及装置。为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。
根据本发明实施例的第一方面,提供一种支持多语言的方法,所述方法包括:
读取第一模板文件,所述第一模板文件中包含需要支持多语言的语言项,每个所述语言项包含对应的界面显示内容;
运行第二模板文件,从所述第一模板文件中提取所述语言项,生成对应所述多语言中的每一种语言的资源文件。
基于上述方法,作为可选的第一实施方式,所述方法还包括:
运行第二模板文件时,生成语言代码文件。
基于上述可选的第一实施方式,作为可选的第二实施方式,所述方法还包括:
在设计器和开发编码中使用所述语言代码文件的变量;所述变量的名称与当前所选择语言在开发编码界面中显示的文本的标志一致。
在上述方法基础上,作为可选的第三实施方式,所述方法还包括:
将对应所述多语言中的每一种语言的资源文件,封装成资源库,供上层调用。
在上述方法及可选的第一至第三实施方式基础上,所述语言项按照设定格式存储在所述第一模板文件中。
根据本发明实施例的第二方面,提供一种支持多语言的装置,所述装置包括:
读取模块,用于读取第一模板文件,所述第一模板文件中包含需要支持多语言的语言项,每个所述语言项包含对应的界面显示内容;
运行模块,用于运行第二模板文件,从所述第一模板文件中提取所述语言项,生成对应所述多语言中的每一种语言的资源文件。
在上述装置的基础上,作为可选的第一实施例,所述运行模块,还用于:运行第二模板文件时,生成语言代码文件。
在上述可选的第一实施例基础上,作为可选的第二实施例,所述装置还包括:
输入模块,用于在设计器和开发编码中使用所述语言代码文件的变量;所述变量的名称与当前所选择语言在开发编码界面中显示的文本的标志一致。
在上述装置的基础上,作为可选的第三实施例,所述装置还包括:
封装模块,用于将对应所述多语言中的每一种语言的资源文件,封装成资源库,供上层调用。
在上述装置及可选的第一至第三实施例基础上,所述语言项按照设定格式存储在所述第一模板文件中。
本发明实施例提供的技术方案可以包括以下有益效果:
在进行支持多语言的开发过程中,通过运行预定义的第二模板文件,能够自动生成多语言中的每一种语言的资源文件,降低开发人员工作量并提升准确性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是根据一示例性实施例示出的支持多语言的方法流程图;
图2是根据一示例性实施例示出的支持多语言的方法流程图;
图3是根据一示例性实施例示出的应用程序加载多语言的方法流程图;
图4是根据一示例性实施例示出的支持多语言的装置框图;
图5是根据一示例性实施例示出的支持多语言的装置框图;
图6是根据一示例性实施例示出的支持多语言的装置框图。
具体实施方式
以下描述和附图充分地示出本发明的具体实施方案,以使本领域的技术人员能够实践它们。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施方案的部分和特征可以被包括在或替换其他实施方案的部分和特征。本发明的实施方案的范围包括权利要求书的整个范围,以及权利要求书的所有可获得的等同物。在本文中,各实施方案可以被单独地或总地用术语“发明”来表示,这仅仅是为了方便,并且如果事实上公开了超过一个的发明,不是要自动地限制该应用的范围为任何单个发明或发明构思。本文中,诸如第一和第二等之类的关系术语仅仅用于将一个实体或者操作与另一个实体或操作区分开来,而不要求或者暗示这些实体或操作之间存在任何实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素。本文中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的结构、产品等而言,由于其与实施例公开的部分相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本发明实施例先对后文中将要用到的名词定义进行解释。
第一模板文件;包含有需要支持多语言的语言项,可以为每种语言设置单独一列。第一模板文件可以是字符分割(commaseparatedvalues,英文缩写csv)文件。各语言项可以按照格式存储在第一模板文件中,每个语言项包含对应的界面显示内容。
第二模板文件:在运行后具有解析第一模板文件的功能,从第一模板文件中提取语言项、并生成对应多语言中的每一种语言的资源文件,还可以生成语言代码文件。第二模板文件可以是t4模板文件。
资源文件:每种语言对应一个资源文件,存储该语言的必要信息。
语言代码文件:所有语言对应一个语言代码文件,语言代码文件中的每个内容项对应一个变量,在配置不同语言时被识别为不同的语言内容。
图1是根据一示例性实施例示出的支持多语言的方法流程图,该方法以应用于基于wpf的开发流程为例进行说明。该方法亦可应用于使用其他多语言的开发流程中,本发明对此不作任何限制。
在步骤11中,读取第一模板文件,第一模板文件中存储有需要支持多语言的语言项,每个语言项包含对应的界面显示内容。
在步骤12中,运行第二模板文件,从第一模板文件中提取语言项,生成对应多语言中的每一种语言的资源文件。
在基于wpf进行支持多语言的开发过程中,通过运行预定义的第二模板文件,能够自动生成多语言中的每一种语言的资源文件,降低开发人员工作量并提升准确性。
作为一种可选的实施方式,在图1所示流程的基础上,步骤12中在运行第二模板文件时,还可以生成语言代码文件,从而进一步降低工作人员工作量并提升准确性。
在上述可选的实施方式基础上,如图2所示,进一步还可以包括步骤13。
在步骤13中,在设计器和开发编码中使用语言代码文件的变量。
在开发编码的时候,需要在开发编码界面上显示一个文本,该文本根据当前所选择语言显示指定内容。在已有的一些开发设计流程中,调用系统的应用程序编程接口(applicationprogramminginterface,英文缩写api)去传输上述文本的标志以获取所选择语言对应的指定内容,但是文本的标志作为参数传入是无法采用开发环境的代码检查和自动补全的,只能人工检查输入是否正确。
在本实施方式中,直接输入语言代码文件中的变量,该变量名称和上述文本的标志一致,支持开发环境的代码检查、自动补全,还会提示实际显示的内容。
作为一种可选的实施方式,图1所示的方法还可以包括如下步骤。将对应多语言中的每一种语言的资源文件,封装成资源库,供上层调用。由此实现高内聚、低耦合的规范,具有高扩展性,使用的用户无需了解底层技术。
在本发明实施例的开发设计流程结束之后,基于wpf开发的应用程序发布,该应用程序可以根据用户的设置加载多语言。
用户在设置多语言时,可以通过编辑第一模板文件来添加要加载的其他语言,可以将每种其他语言作为第一模板文件中单独的一列。打开第一模板文件进行转换操作,将生成包含各种语言的xaml格式的资源文件。然后将资源文件放入应用程序安装目录的存放资源文件的文件夹下。应用程序重启后将加载用户设置的多语言。图3是根据一示例性实施例示出的应用程序加载多语言的方法流程图,包括如下步骤。
在步骤31中,获取当前设定的语言。
在步骤32中,判断获取当前设定的语言是否成功,如果是,加载设定语言并执行步骤33,否则加载默认语言并执行步骤33。
在步骤33中,获取安装目录下语言的资源文件。
在步骤34中,判断获取安装目录下语言的资源文件是否成功,如果是,执行步骤35,否则执行步骤39。
在步骤35中,生成支持多语言的列表。
在步骤36中,匹配设定的语言。
在步骤37中,判断匹配设定的语言是否成功,如果是,执行步骤38,否则执行步骤39。
在步骤38中,将匹配的语言资源记载到动态资源中。
作为一种可选的实施方式,可以将匹配的语言资源放入动态资源的第一项,将第一项作为指定的语言资源,结束流程。
在步骤39中,使用默认语言资源,结束流程。
可以看出,本发明实施例中基于wpf开发的应用程序发布后,用户可以针对语言内容进行增删和修正等编辑操作,无需专业工具,使用普通电脑即可完成,方便用户使用。
图4是根据一示例性实施例示出的支持多语言的装置框图,该装置包括:读取模块41和运行模块42。
读取模块41,用于读取第一模板文件。上述第一模板文件中包含需要支持多语言的语言项,每个语言项包含对应的界面显示内容。
运行模块42,用于从第一模板文件中提取语言项,生成对应多语言中的每一种语言的资源文件。
在基于wpf进行支持多语言的开发过程中,通过运行预定义的第二模板文件,能够自动生成多语言中的每一种语言的资源文件,降低开发人员工作量并提升准确性。
在图4所示框图基础上,作为一种可选的实施方式,运行模块42还可以在运行第二模板文件时,生成语言代码文件。
在上述可选的实施方式基础上,如图5所示,支持多语言的装置中还可以包括:输入模块43,用于在设计器和开发编码中使用语言代码文件的变量;变量的名称与当前所选择语言在开发编码界面中显示的文本的标志一致。
在图4所示框图基础上,如图6所示,支持多语言的装置还可以包括:封装模块44,用于将对应多语言中的每一种语言的资源文件,封装成资源库,供上层调用。
本发明实施例还提供一种支持多语言的装置,包括处理器和存储器。其中,存储器中存储有供处理器读取的指令;处理器被配置为从存储器中读取并执行指令,完成前文所述方法的各个实施例中的步骤。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的流程及结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。