一种国际化同名资源文件部署更新的实现方法与流程

文档序号:11154330阅读:204来源:国知局
一种国际化同名资源文件部署更新的实现方法与制造工艺

本发明涉及软件国际化领域,具体地说是一种国际化同名资源文件部署更新的实现方法。



背景技术:

在国际化的背景下,为适应国际化业务,企业应用软件也需进行国际化,为不同地区分支机构或用户提供多语种的用户界面。很多开发语言都提供对国际化的支持,为软件国际化开发提供了基础,但是,不同开发语言采用的国际化机制也不相同。比如Java的资源文件为.Properties格式,而.NET Framework采用.Resources。而这些资源文件在不同语言之间进行切换过程中所需要的资源信息又往往都是文件名相同的,这就给更新过程中的文件下载和文件的部署造成不小的麻烦。

如何能够实现不同语言的国际化资源配置下载项和下载单元信息,对国际化资源进行统一的描述是目前现有技术中急需解决的技术问题。

专利号为CN 101719073 B的专利文献公开了一种基于智能客户端的按需下载实现方法,旨在解决低速网络下的智能客户端程序更新问题,并且通过可配置的方式以功能为单位进行程序的更新。提供了可配置和可扩展的下载定义配置,应用程序可以根据实际情况灵活配置。客户端的下载更新过程完全自动化,无需人工干预。部署环节中加强了对异常的处理,发生异常之后,程序在下载启动时会自动更新。下载项可以在使用时下载,变相的降低了网络的流量,降低了新补丁对客户端的影响范围。但是该技术方案不能实现不同语言的国际化资源配置下载项和下载单元信息,对国际化资源进行统一的描述。



技术实现要素:

本发明的技术任务是针对以上不足之处,提供一种国际化同名资源文件部署更新的实现方法,来解决如何能够实现不同语言的国际化资源配置下载项和下载单元信息,对国际化资源进行统一的描述的问题。

本发明解决其技术问题所采用的技术方案是:一种国际化同名资源文件部署更新的实现方法,该实现方法包括如下步骤:

(1)、资源类型定义:设计时,为需要部署的国际化同名资源文件定义统一的描述规则,不同语言的所有国际化资源均按照该描述规则进行预置;

(2)、资源文件搜索:运行时,根据描述规则描述文件类型,搜索查询文件,并根据描述规则描述信息生成不同语言文件的部署包;

(3)、客户端获取更新文件列表:客户端在更新时能够获取更新文件的描述信息,并根据描述信息判断出文件的路径和语言,计算出文件部署位置;

(4)、本地文件部署:将需要更新的文件放置到客户端路径下所对应语言文件夹下,完成同名文件的部署更新。

作为优选,所述步骤(1)中描述规则是通过配置的方式对资源和文件的基本属性信息以及文件之间的层次引用关系进行描述;

其中,资源文件的基本属性信息包括下载项的唯一标识、资源文件名、文件在客户端相对路径、文件在服务端相对路径、部署包文件名(服务端压缩文件包名称,改名成为生成压缩文件包的文件名称;对于国际化资源文件,在生成过程中自动添加语言标识后缀)、部署方式和文件类型;

文件之间的层次引用关系包括下载单元的唯一标识(触发时机)、下载单元引用的下载项列表和下载单元引用的其他下载单元列表;其中,下载项描述的是文件的基本属性内容,下载单元描述的是下载文件之间的引用关系。

更优地,所述文件类型包括资源卫星程序集、资源文件和非国际化普通文件(包含程序文件,配置文件等国际化不相关文件)。

更优地,所述步骤(2)中资源文件搜索是根据文件类型的加载规则进行搜索,对于不同类型的文件的搜索具体如下:

对于同名的资源卫星程序集只需要配置程序文件即可,因为对于单独的资源卫星程序集而言,它并没有单独存在的价值,所以这里需要通过程序文件去关联资源卫星程序集;是通过下载项配置中的服务端路径获取文件所在路径并根据路径父文件夹下的语言文件夹中去搜索程序文件相关联的资源卫星程序集,再根据卫星程序集所属的语言和名称自动构造卫星程序集的下载项,生成相应的部署文件包;

对于同名的资源文件仅仅只需要配置其中一个资源文件,在进行资源文件的搜索过程中,通过下载项配置中的服务端路径以及文件名计算出文件所在的服务端路径,获取文件所在的位置;再搜索资源所在的文件夹下的语言标识为名称的文件夹,搜索的文件名为下载项配置文件中的文件名称,并根据下载项配置信息中的部署包名称生成服务端的部署包;

对于非国际化普通文件,由于不存在同名的问题,只需要获取文件所在路径,生成部署文件包即可。

作为优选,所述步骤(3)中当客户端触发更新事件时,会根据下载单元的引用关系,计算出该次更新事件相关联的下载项信息,并对获取到的下载项信息,对客户端和服务端的相关文件进行比较,客户端和服务端存在差异的内容,为需要更新的内容;根据需要更新的文件下载项信息,客户端从服务端下载获取文件。

更优地,所述服务端部署的步骤如下:

(Ⅰ)、启动服务端部署工具;

(Ⅱ)、判断资源文件是否是国际化资源:

①、若是,则执行步骤(Ⅵ)和步骤(Ⅶ);

②、若不是,则执行步骤(Ⅲ);

(Ⅲ)、判断部署的资源文件是否具有国际化资源:

①、若是,则执行步骤(Ⅳ);

②、若不是,则正常部署;

(Ⅳ)、判断资源文件对应的国际化语言是否存在:

①、若是,则执行步骤(Ⅴ);

②、若不是,则抛错;

(Ⅴ)、根据不同的语言生成相应的版本信息和压缩包文件,下一步执行步骤(Ⅹ);

(Ⅵ)、根据文件夹路径识别出该资源语言编号,下一步执行步骤(Ⅶ);

(Ⅶ)、根据语言编号生成相应的版本信息,下一步执行步骤(Ⅹ);

(Ⅷ)、根据文件夹名称找出对应的程序文件,下一步执行步骤(Ⅸ);

(Ⅸ)、根据程序文件的引用关系修改下载单元的版本信息,下一步执行步骤(Ⅹ);

(Ⅹ)、服务端部署结束。

更优地,所述客户端更新的步骤如下:

(ⅰ)、客户端开始更新;

(ⅱ)、将下载单元信息上传至服务端;

(ⅲ)、判断下载单元版本是否改变:

①、若是,则执行步骤(ⅳ);

②、若不是,则直接返回;

(ⅳ)、判断下载项是否具有国际化资源:

①、若是,则执行步骤(ⅴ);

②、若不是,则直接将下载项信息添加并返回;

(ⅴ)、将国际化资源信息添加到列表并返回。

作为优选,所述步骤(4)中当客户端下载完需要更新的文件后,根据下载项信息中的客户端位置以及文件类型,将下载的文件直接解压放置到对应目录下;对于同名的国际化资源文件会将文件放置到客户端路径下所对应语言文件夹下,最终完成同名文件的部署更新。

本发明的国际化同名资源文件部署更新的实现方法和现有技术相比,具有以下有益效果:

1、本发明旨在解决软件国际化过程中不同语言下对国际化同名资源文件部署更新的问题,该部署更新方式通过配置的方式对资源和文件的基本属性信息以及文件之间的层次引用关系进行描述,具有语言无关性、结构简单、实现方式统一的特点;

2、本发明客户端获取更新文件列表在配置规范中,下载单元描述了文件之间的引用关系以及文件更新的触发时机;当某一个下载单元的更新被触发时,客户端会将触发的下载单元信息传递到服务端,服务端会拿着记录了该下载单元版本信息的参数,跟服务端记录最新的版本信息进行比较,如果不同则认为该下载单元所引用的文件中有内容被更新,这时服务端会根据引用关系获取这个下载单元所有的引用文件,然后将引用文件的携带有文件版本信息的下载项列表返回到客户端,然后客户端根据该列表与本地版本信息的比较,计算出那些文件需要更新,更新文件的下载项信息,将文件下载到客户端本地,简单易实现。

故本发明具有设计合理、使用方便、一物多用等特点,因而,具有很好的推广使用价值。

附图说明

下面结合附图对本发明进一步说明。

附图1为服务端部署的流程框图;

附图2为客户端更新的流程框图。

具体实施方式

下面结合附图和具体实施例对本发明作进一步说明。

实施例1

本发明的国际化同名资源文件部署更新的实现方法,该实现方法包括如下步骤:

(1)、资源类型定义:设计时,为需要部署的国际化同名资源文件定义统一的描述规则,不同语言的所有国际化资源均按照该描述规则进行预置;

(2)、资源文件搜索:在运行时,根据描述规则描述文件类型,搜索查询文件,并根据描述规则描述信息生成不同语言文件的部署包;

(3)、客户端获取更新文件列表:客户端在更新时能够获取更新文件的描述信息,并根据描述信息判断出文件的路径和语言,计算出文件部署位置;

(4)、本地文件部署:将需要更新的文件放置到客户端路径下所对应语言文件夹下,完成同名文件的部署更新。

步骤(1)中描述规则是通过配置的方式对资源和文件的基本属性信息以及文件之间的层次引用关系进行描述;

其中,资源文件的基本属性信息包括下载项的唯一标识、资源文件名、文件在客户端相对路径、文件在服务端相对路径、部署包文件名(服务端压缩文件包名称,改名成为生成压缩文件包的文件名称;对于国际化资源文件,在生成过程中自动添加语言标识后缀)、部署方式和文件类型;

文件之间的层次引用关系包括下载单元的唯一标识(触发时机)、下载单元引用的下载项列表和下载单元引用的其他下载单元列表;其中,下载项描述的是文件的基本属性内容,下载单元描述的是下载文件之间的引用关系。文件类型包括资源卫星程序集、资源文件和非国际化普通文件(包含程序文件,配置文件等国际化不相关文件)。针对以上不同的文件类型以及文件运行时加载规则搜索相互关联的文件,并根据不同文件的下载项信息,生成相应的压缩部署包。

步骤(2)中资源文件搜索是根据文件类型的加载规则进行搜索,对于不同类型的文件的搜索具体如下:

对于同名的资源卫星程序集只需要配置程序文件即可,因为对于单独的资源卫星程序集而言,它并没有单独存在的价值,所以这里需要通过程序文件去关联资源卫星程序集;是通过下载项配置中的服务端路径获取文件所在路径并根据路径父文件夹下的语言文件夹中去搜索程序文件相关联的资源卫星程序集,再根据卫星程序集所属的语言和名称自动构造卫星程序集的下载项,生成相应的部署文件包;

对于同名的资源文件仅仅只需要配置其中一个资源文件,在进行资源文件的搜索过程中,通过下载项配置中的服务端路径以及文件名计算出文件所在的服务端路径,获取文件所在的位置;再搜索资源所在的文件夹下的语言标识为名称的文件夹,搜索的文件名为下载项配置文件中的文件名称,并根据下载项配置信息中的部署包名称生成服务端的部署包;

对于非国际化普通文件,由于不存在同名的问题,只需要获取文件所在路径,生成部署文件包即可。

步骤(3)中当客户端触发更新事件时,会根据下载单元的引用关系,计算出该次更新事件相关联的下载项信息,并对获取到的下载项信息,对客户端和服务端的相关文件进行比较,客户端和服务端存在差异的内容,为需要更新的内容;根据需要更新的文件下载项信息,客户端从服务端下载获取文件。

如附图1所示,服务端部署的步骤如下:

(Ⅰ)、启动服务端部署工具;

(Ⅱ)、判断资源文件是否是国际化资源:

①、若是,则执行步骤(Ⅵ)和步骤(Ⅶ);

②、若不是,则执行步骤(Ⅲ);

(Ⅲ)、判断部署的资源文件是否具有国际化资源:

①、若是,则执行步骤(Ⅳ);

②、若不是,则正常部署;

(Ⅳ)、判断资源文件对应的国际化语言是否存在:

①、若是,则执行步骤(Ⅴ);

②、若不是,则抛错;

(Ⅴ)、根据不同的语言生成相应的版本信息和压缩包文件,下一步执行步骤(Ⅹ);

(Ⅵ)、根据文件夹路径识别出该资源语言编号,下一步执行步骤(Ⅶ);

(Ⅶ)、根据语言编号生成相应的版本信息,下一步执行步骤(Ⅹ);

(Ⅷ)、根据文件夹名称找出对应的程序文件,下一步执行步骤(Ⅸ);

(Ⅸ)、根据程序文件的引用关系修改下载单元的版本信息,下一步执行步骤(Ⅹ);

(Ⅹ)、服务端部署结束。

如附图2所示,客户端更新的步骤如下:

(ⅰ)、客户端开始更新;

(ⅱ)、将下载单元信息上传至服务端;

(ⅲ)、判断下载单元版本是否改变:

③、若是,则执行步骤(ⅳ);

④、若不是,则直接返回;

(ⅳ)、判断下载项是否具有国际化资源:

③、若是,则执行步骤(ⅴ);

④、若不是,则直接将下载项信息添加并返回;

(ⅴ)、将国际化资源信息添加到列表并返回。

步骤(4)中当客户端下载完需要更新的文件后,根据下载项信息中的客户端位置以及文件类型,将下载的文件直接解压放置到对应目录下;对于同名的国际化资源文件会将文件放置到客户端路径下所对应语言文件夹下,最终完成同名文件的部署更新。

实施例2

场景:某基于.net开发的ERP管理系统支持两种不同的语言:简体中文和英文。需要在桌面智能客户端登录时,获取到更新的对应语言的资源文件。

步骤一、定义资源的下载项

定义Test.dll示例文件,该文件含有卫星程序集

<DownloadFileInfo>

<ID>Test.dll</ID>

<ServerPath>pub</ServerPath>

<ClientPath />

<FileName>Test.dll</FileName>

<DownloadFileName>Test.zip</DownloadFileName>

<ActionModes>

<Modes />

</ActionModes>

<Feature>Satelite</Feature>

</DownloadFileInfo>

步骤二、资源文件的查找搜索

在定义好下载项之后,根据文件名称以及文件在服务端的路径,可以定位出文件的路径,然后根据路径父目录查找zh-CHS和EN两个文件夹查找相应路径下的Test.resources.dll文件并生成文件的版本信息,将文件压缩然后放置到下载路径上。

步骤三、客户端资源文件更新

客户端根据触发时机获取了需要更新的文件Test.dll的下载项信息,根据下载项信息判定文件为带资源卫星程序集的程序文件,并根据服务器地址和生成的部署包名称将程序文件以及程序文件所关联的资源卫星程序集从服务端更新到本地。然后根据客户端路径将文件解压到对应的目录下面,并更新客户端记录Test.dll文件的版本信息。

通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的两种具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。

除说明书所述的技术特征外,均为本专业技术人员的已知技术。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1