CN107273136A - 支持多语言的方法及装置 - Google Patents
支持多语言的方法及装置 Download PDFInfo
- Publication number
- CN107273136A CN107273136A CN201710496186.8A CN201710496186A CN107273136A CN 107273136 A CN107273136 A CN 107273136A CN 201710496186 A CN201710496186 A CN 201710496186A CN 107273136 A CN107273136 A CN 107273136A
- Authority
- CN
- China
- Prior art keywords
- language
- file
- multilingual
- template file
- template
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Machine Translation (AREA)
Abstract
本发明公开了支持多语言的方法及装置,在进行支持多语言的开发过程中,通过运行预定义的第二模板文件,从第一模板文件中提取语言项,能够自动生成多语言中的每一种语言的资源文件,降低开发人员工作量并提升准确性。
Description
技术领域
本发明涉及多语言领域,特别支持多语言的方法及装置。
背景技术
在用户界面程序开发中,对多语言的支持需求越来越多。
其中,视窗介绍基础(WPF,Windows Presentation Foundation)是一种典型的用户界面框架,提供了统一的编程模型、语言和框架,提供全新的多媒体交互用户界面。
在使用WPF时,往往存在多语言的需求。目前在基于WPF开发支持多语言的解决方案时,需开发人员手动完成各个环节,不仅工作量巨大,而且准确性差。
发明内容
本发明实施例提供了支持多语言的方法及装置。为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。
根据本发明实施例的第一方面,提供一种支持多语言的方法,所述方法包括:
读取第一模板文件,所述第一模板文件中包含需要支持多语言的语言项,每个所述语言项包含对应的界面显示内容;
运行第二模板文件,从所述第一模板文件中提取所述语言项,生成对应所述多语言中的每一种语言的资源文件。
基于上述方法,作为可选的第一实施方式,所述方法还包括:
运行第二模板文件时,生成语言代码文件。
基于上述可选的第一实施方式,作为可选的第二实施方式,所述方法还包括:
在设计器和开发编码中使用所述语言代码文件的变量;所述变量的名称与当前所选择语言在开发编码界面中显示的文本的标志一致。
在上述方法基础上,作为可选的第三实施方式,所述方法还包括:
将对应所述多语言中的每一种语言的资源文件,封装成资源库,供上层调用。
在上述方法及可选的第一至第三实施方式基础上,所述语言项按照设定格式存储在所述第一模板文件中。
根据本发明实施例的第二方面,提供一种支持多语言的装置,所述装置包括:
读取模块,用于读取第一模板文件,所述第一模板文件中包含需要支持多语言的语言项,每个所述语言项包含对应的界面显示内容;
运行模块,用于运行第二模板文件,从所述第一模板文件中提取所述语言项,生成对应所述多语言中的每一种语言的资源文件。
在上述装置的基础上,作为可选的第一实施例,所述运行模块,还用于:运行第二模板文件时,生成语言代码文件。
在上述可选的第一实施例基础上,作为可选的第二实施例,所述装置还包括:
输入模块,用于在设计器和开发编码中使用所述语言代码文件的变量;所述变量的名称与当前所选择语言在开发编码界面中显示的文本的标志一致。
在上述装置的基础上,作为可选的第三实施例,所述装置还包括:
封装模块,用于将对应所述多语言中的每一种语言的资源文件,封装成资源库,供上层调用。
在上述装置及可选的第一至第三实施例基础上,所述语言项按照设定格式存储在所述第一模板文件中。
本发明实施例提供的技术方案可以包括以下有益效果:
在进行支持多语言的开发过程中,通过运行预定义的第二模板文件,能够自动生成多语言中的每一种语言的资源文件,降低开发人员工作量并提升准确性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是根据一示例性实施例示出的支持多语言的方法流程图;
图2是根据一示例性实施例示出的支持多语言的方法流程图;
图3是根据一示例性实施例示出的应用程序加载多语言的方法流程图;
图4是根据一示例性实施例示出的支持多语言的装置框图;
图5是根据一示例性实施例示出的支持多语言的装置框图;
图6是根据一示例性实施例示出的支持多语言的装置框图。
具体实施方式
以下描述和附图充分地示出本发明的具体实施方案,以使本领域的技术人员能够实践它们。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施方案的部分和特征可以被包括在或替换其他实施方案的部分和特征。本发明的实施方案的范围包括权利要求书的整个范围,以及权利要求书的所有可获得的等同物。在本文中,各实施方案可以被单独地或总地用术语“发明”来表示,这仅仅是为了方便,并且如果事实上公开了超过一个的发明,不是要自动地限制该应用的范围为任何单个发明或发明构思。本文中,诸如第一和第二等之类的关系术语仅仅用于将一个实体或者操作与另一个实体或操作区分开来,而不要求或者暗示这些实体或操作之间存在任何实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素。本文中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的结构、产品等而言,由于其与实施例公开的部分相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本发明实施例先对后文中将要用到的名词定义进行解释。
第一模板文件;包含有需要支持多语言的语言项,可以为每种语言设置单独一列。第一模板文件可以是字符分割(Comma Separated Values,英文缩写CSV)文件。各语言项可以按照格式存储在第一模板文件中,每个语言项包含对应的界面显示内容。
第二模板文件:在运行后具有解析第一模板文件的功能,从第一模板文件中提取语言项、并生成对应多语言中的每一种语言的资源文件,还可以生成语言代码文件。第二模板文件可以是T4模板文件。
资源文件:每种语言对应一个资源文件,存储该语言的必要信息。
语言代码文件:所有语言对应一个语言代码文件,语言代码文件中的每个内容项对应一个变量,在配置不同语言时被识别为不同的语言内容。
图1是根据一示例性实施例示出的支持多语言的方法流程图,该方法以应用于基于WPF的开发流程为例进行说明。该方法亦可应用于使用其他多语言的开发流程中,本发明对此不作任何限制。
在步骤11中,读取第一模板文件,第一模板文件中存储有需要支持多语言的语言项,每个语言项包含对应的界面显示内容。
在步骤12中,运行第二模板文件,从第一模板文件中提取语言项,生成对应多语言中的每一种语言的资源文件。
在基于WPF进行支持多语言的开发过程中,通过运行预定义的第二模板文件,能够自动生成多语言中的每一种语言的资源文件,降低开发人员工作量并提升准确性。
作为一种可选的实施方式,在图1所示流程的基础上,步骤12中在运行第二模板文件时,还可以生成语言代码文件,从而进一步降低工作人员工作量并提升准确性。
在上述可选的实施方式基础上,如图2所示,进一步还可以包括步骤13。
在步骤13中,在设计器和开发编码中使用语言代码文件的变量。
在开发编码的时候,需要在开发编码界面上显示一个文本,该文本根据当前所选择语言显示指定内容。在已有的一些开发设计流程中,调用系统的应用程序编程接口(Application Programming Interface,英文缩写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,用于将对应多语言中的每一种语言的资源文件,封装成资源库,供上层调用。
本发明实施例还提供一种支持多语言的装置,包括处理器和存储器。其中,存储器中存储有供处理器读取的指令;处理器被配置为从存储器中读取并执行指令,完成前文所述方法的各个实施例中的步骤。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的流程及结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (10)
1.一种支持多语言的方法,其特征在于,所述方法包括:
读取第一模板文件,所述第一模板文件中包含需要支持多语言的语言项,每个所述语言项包含对应的界面显示内容;
运行第二模板文件,从所述第一模板文件中提取所述语言项,生成对应所述多语言中的每一种语言的资源文件。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
运行第二模板文件时,生成语言代码文件。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:
在设计器和开发编码中使用所述语言代码文件的变量;所述变量的名称与当前所选择语言在开发编码界面中显示的文本的标志一致。
4.如权利要求1所述的方法,其特征在于,所述方法还包括:
将对应所述多语言中的每一种语言的资源文件,封装成资源库,供上层调用。
5.如权利要求1至4任一项所述的方法,其特征在于,所述语言项按照设定格式存储在所述第一模板文件中。
6.一种支持多语言的装置,其特征在于,所述装置包括:
读取模块,用于读取第一模板文件,所述第一模板文件中包含需要支持多语言的语言项,每个所述语言项包含对应的界面显示内容;
运行模块,用于运行第二模板文件,从所述第一模板文件中提取所述语言项,生成对应所述多语言中的每一种语言的资源文件。
7.如权利要求6所述的装置,其特征在于,所述运行模块,还用于:
运行第二模板文件时,生成语言代码文件。
8.如权利要求7所述的装置,其特征在于,所述装置还包括:
输入模块,用于在设计器和开发编码中使用所述语言代码文件的变量;
所述变量的名称与当前所选择语言在开发编码界面中显示的文本的标志一致。
9.如权利要求6所述的装置,其特征在于,所述装置还包括:
封装模块,用于将对应所述多语言中的每一种语言的资源文件,封装成资源库,供上层调用。
10.如权利要求6至9任一项所述的装置,其特征在于,所述语言项按照设定格式存储在所述第一模板文件中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710496186.8A CN107273136A (zh) | 2017-06-26 | 2017-06-26 | 支持多语言的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710496186.8A CN107273136A (zh) | 2017-06-26 | 2017-06-26 | 支持多语言的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107273136A true CN107273136A (zh) | 2017-10-20 |
Family
ID=60068310
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710496186.8A Pending CN107273136A (zh) | 2017-06-26 | 2017-06-26 | 支持多语言的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107273136A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109408176A (zh) * | 2018-09-28 | 2019-03-01 | 广州虎牙信息科技有限公司 | 应用程序资源文件编包的方法、装置、设备及存储介质 |
CN109947525A (zh) * | 2019-03-28 | 2019-06-28 | 北京金山安全软件有限公司 | 一种多语言应用名的配置方法、装置及电子设备 |
CN109960528A (zh) * | 2019-03-28 | 2019-07-02 | 北京金山安全软件有限公司 | 一种多语言应用名的配置方法、装置及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101916192A (zh) * | 2010-09-14 | 2010-12-15 | 深圳市华力特电气股份有限公司 | 用户界面的多语言切换方法和装置 |
CN102981851A (zh) * | 2012-11-15 | 2013-03-20 | 深圳市共进电子股份有限公司 | 一种嵌入式网络设备界面语言的快速开发维护系统及方法 |
CN106155652A (zh) * | 2015-04-02 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 一种多语言数据文件的生成方法和系统 |
-
2017
- 2017-06-26 CN CN201710496186.8A patent/CN107273136A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101916192A (zh) * | 2010-09-14 | 2010-12-15 | 深圳市华力特电气股份有限公司 | 用户界面的多语言切换方法和装置 |
CN102981851A (zh) * | 2012-11-15 | 2013-03-20 | 深圳市共进电子股份有限公司 | 一种嵌入式网络设备界面语言的快速开发维护系统及方法 |
CN106155652A (zh) * | 2015-04-02 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 一种多语言数据文件的生成方法和系统 |
Non-Patent Citations (1)
Title |
---|
PETTERLIU: ""使用T4模板读取XML文件"", 《HTTPS://WWW.CNBLOGS.COM/WINTERSUN/ARCHIVE/2010/06/02/1750099.HTML》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109408176A (zh) * | 2018-09-28 | 2019-03-01 | 广州虎牙信息科技有限公司 | 应用程序资源文件编包的方法、装置、设备及存储介质 |
CN109947525A (zh) * | 2019-03-28 | 2019-06-28 | 北京金山安全软件有限公司 | 一种多语言应用名的配置方法、装置及电子设备 |
CN109960528A (zh) * | 2019-03-28 | 2019-07-02 | 北京金山安全软件有限公司 | 一种多语言应用名的配置方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Paterno et al. | One model, many interfaces | |
CN102346797B (zh) | 核电支吊架三维设计方法和系统 | |
US10831453B2 (en) | Connectors framework | |
CN109240661B (zh) | 一种代码生成方法及装置 | |
US8458648B2 (en) | Graphical modelization of user interfaces for data intensive applications | |
EP2629210A1 (en) | Method of providing data included in building information modeling data file, computer readable medium therefor, system using the method, and method of providing data using building information modeling server | |
CN111488145A (zh) | 一种基于业务域数据模型库的微服务代码生成系统及方法 | |
CN107273136A (zh) | 支持多语言的方法及装置 | |
US11714625B2 (en) | Generating applications for versatile platform deployment | |
CN104077133A (zh) | 一种配置式菜单的生成方法 | |
US20120124550A1 (en) | Facilitating database application code translation from a first application language to a second application language | |
CN104156199B (zh) | 一种软件自动持续集成方法及系统 | |
JP2016048471A (ja) | アプリケーション開発支援装置、そのデータ処理方法、およびプログラム | |
CN104199662A (zh) | 一种适用于flex项目的多语言支持技术 | |
CN104750606A (zh) | 一种基于反射的自动化测试方法 | |
CN105630563A (zh) | 基于xml的继电保护装置规约的动态模型配置方法 | |
KR101350798B1 (ko) | 오프로스 플랫폼에 기반하여 제어되는 로봇 시스템 및 그 로봇 제어방법 | |
CN106789200A (zh) | 一种云平台自定义自动部署的方法 | |
JP5426938B2 (ja) | 情報処理装置、情報処理方法 | |
CN104484156A (zh) | 多语言公式的编辑方法、编辑系统和多语言公式编辑器 | |
CN115469849B (zh) | 一种业务处理系统、方法、电子设备和存储介质 | |
CN103186388B (zh) | 软件安装方法及装置 | |
JP5657183B2 (ja) | 第1のコンピュータ・プログラムが第2のコンピュータ・プログラムのアプリケーション・ロジックを実行することを可能にするための方法および装置、第1のコンピュータ・プログラムと第2のコンピュータ・プログラムとのインターフェースをとるためのコンピュータ・プログラム・コードを生成するための方法および装置、コンピュータ・プログラム、ならびに第1のコンピュータ・プログラムが第2のコンピュータ・プログラムのアプリケーション・ロジックを実行することを可能にするためのソフトウェア・インターフェースを提供するための方法(コンピュータ・プログラム・インターフェース) | |
US8805674B2 (en) | Electronic device and method for supporting multiple languages in image measurement programs | |
CN113342399B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171020 |