发明内容
本发明的目的是提供一种动态电子信息国际化的方法,克服现有技术采用静态技术,使用过程中所输入信息的难题及使用过程中软件系统资源更改的不足。
本发明的目的是通过以下技术方案来实现:一种动态电子信息国际化的方法,包括以下步骤:1)设定系统资源,将产生的资源编号、资源语言编码、程序编号、资源值存到信息资源数据库中;2)用户在客户端通过浏览器获取相关网页和相应的资源编号,同时系统根据浏览器的设置或用户选定的语言获取用户语言编码;3)根据步骤2)中所述的资源编号和所述的用户语言编码在信息资源数据库中搜索出所述资源的国际化值;4)将步骤3)中搜索到的国际化值返回至客户端并显示到用户界面;5)用户输入信息资源,服务器端接收所述信息资源,在信息资源数据库中产生相应的信息资源编号,根据所述的信息资源编号和步骤2)中所述的用户语言编码在信息资源数据库中产生所述信息资源的国际化值。
所述信息资源数据库中设有系统资源表模式和用户资源表模式,其中系统资源表模式中存储系统设计开发时的固有的信息资源;用户资源表模式中存储系统使用过程中用户所输入的信息资源。
所述固有的信息资源和用户输入的信息资源存储时,使用不同语言的信息资源产生同一个资源编号。
所述信息资源数据库为可扩展的信息资源数据库。
所述信息资源数据库中的资源值可随时更改。
本发明的有益效果为:资源数据库分成两个表模式可以提高软件运行速度;信息资源数据库为可扩展的信息资源数据库,在任何时候,对所支持的语言种类可添加或减少,并且对任何语言资源的更改可在动态过程中完成,不需要升级的过程,也不需要系统重新启动的过程。
具体实施方式
如图1所示,本发明实施例所述的一种动态电子信息国际化的方法,包括以下步骤:设定系统资源,将产生的资源编号、资源语言编码、程序编号、资源值存到信息资源数据库中101;用户在客户端通过浏览器获取相关网页和相应的资源编号,同时系统根据浏览器的设置或用户选定的语言获取用户语言编码102;根据步骤2)中所述的资源编号和所述的用户语言编码在信息资源数据库中搜索出所述资源的国际化值103;将步骤3)中搜索到的国际化值返回至客户端并显示到用户界面104;用户输入信息资源,服务器端接收所述信息资源,在信息资源数据库中产生相应的信息资源编号,根据所述的信息资源编号和步骤2)中所述的用户语言编码在信息资源数据库中产生所述信息资源的国际化值105。
如图2所示,所述信息资源数据库中设有系统资源表模式(glstaticresource,glstaticresourcevalue Table)和用户资源表模式(gldynamicresource,gldynamicresourcevalueTable),其中系统资源表模式中存储系统设计开发时的固有的信息资源;用户资源表模式中存储系统使用过程中用户所输入的信息资源。
所述固有的信息资源和用户输入的信息资源存储时,使用不同语言的信息资源产生同一个资源编号。例如:资源“产品名”(res_product_name):针对中文环境的界面,信息资源数据库会有下面的资源生成:一个资源编号(GUID):″84be050a-d4af-4048-b837-6dc9bf706a70″,语言种类:zh_CN,资源值:产品名。
针对英文环境的界面,资源数据库会有下面的资源生成:资源编号(GUID):″84be050a-d4af-4048-b837-6dc9bf706a70″,语言种类:en_US,资源值:product name。
可以看出中文环境与英文环境下的资源编号相同。对用户输入的《产品名》的值,例如“桌子”,此时系统将在资源数据库中生成下面的资源:资源编号(GUID):″65bf2b04-43fb-4201-b470-2f49d60d0da6″,语言种类:zh_CN,资源值:桌子。
经过资源翻译的界面,系统将在信息资源数据库中生成下面的资源:资源编号(GUID):″65bf2b04-43fb-4201-b470-2f49d60d0da6″,语言种类:en_US,资源值:desk。
当软件在英文环境里运行的时候,用户所看到的将是product name:desk。也就是软件使用过程中所输入的信息被国际化。
所述信息资源数据库为可扩展的信息资源数据库,任何时候都可以添加软件所支持的语言,本发明通过一个翻译界面有效地管理资源,用户可以选择系统资源或用户资源,上述界面提供支持语言的添加或减少,提供自动翻译的功能。软件系统在使用过程中,通过翻译界面,可设定支持的语言,根据支持的语言,把系统资源翻译成所有支持的语言。
所述信息资源数据库也可随时更改资源值。例如,经过资源翻译的界面,可以把资源值作以下的更改:资源编号(GUID):″84be050a-d4af-4048-b837-6dc9bf706a70″,语言种类:zh_CN,资源值:医药名。
针对英文,同一个资源编号,资源数据库会有下面的资源生成:资源编号(GUID):″84be050a-d4af-4048-b837-6dc9bf706a70″,语言种类:en_US,资源值:medicine name。
这样,用户就可以用《医药名》来提示,不需要一个研发、测试,升级安装的过程。
实施例1:针对用户输入的语言信息产生用户资源的流程如图3所示,首先设定系统资源,将产生的资源编号、资源语言编码、程序编号、资源值存到信息资源数据库中301;然后,用户在客户端通过浏览器获取相关网页并生成相应的程序编号302;当用户输入语言信息值时,例如:“桌子”,系统将产生以下资源并存到用户资源表中:信息资源编号(随机GUID),用户语言编码(zh_CN),资源值=桌子303;产生以下信息元素存到信息资源数据库(或文件)中:信息元素(系统资源编号),信息值(用户资源编号)304。
实施例2:针对系统语言信息产生系统资源的流程如图4所示,设定系统资源时,可以使用系统资源常数来定义系统的语言信息(例如:界面字符,操作,提示信息等)401;在产生系统语言信息资源的时候,可以通过类似JAVAreflection的方法,对每一个变量产生系统资源:资源编号(随机GUID)、资源语言编码(系统资源常数上所用语言编码,通常为英文)、程序编号(系统资源常数上变量名,例如productName)、资源值(系统资源常数上变量值例如“Product Name)402;将产生上述系统资源存到信息资源数据库中,根据用户使用的语言环境决定用户语言编码,再根据资源常数定义的值,产生相应的信息资源403。
上述过程涉及到的部分程序如下:final public class LocalizedResourceConstants{public String productName=“Product Name”:public String Color=″Color″;public String Size=″Size″;public String Brand=″Brand″;public String Price=″Price″;public String OrderTotal=″Order Total″;实施例3:索取用户信息资源值的流程如图5所示,首先设定系统资源,将产生的资源编号、资源语言编码、程序编号、资源值存到信息资源数据库中501;然后,用户在客户端通过浏览器获取相关网页并生成相应的程序编号(系统资源常数上变量名,如productName),同时系统根据浏览器的设置或用户选定的语言获取用户语言编码502;系统根据用户语言编码及需要表达的信息资源编号,搜寻用户资源数据库表模式,得到其国际化值(如“产品名”)503;系统将搜索信息资源数据库,根据用户语言编码及信息要求(如,产品),搜索出一至多个产品信息(信息元素及信息值的资源编号)504;对于上一步每一个产品信息,根据用户语言编码和信息值的资源编号,搜索用户资源表,其结果为产品的国际化名称(如桌子)505;服务器端将搜索出的所有国际化值显示到用户界面,用户将看到一个他所选定语言的用户界面(产品名:桌子;产品名:桌子……)506。
实施例4:用户获取系统资源值的流程系统信息资源通常是研发时已经定好的资源,通常可以通过程序编号来搜寻。如图6所示,用户在客户端通过浏览器获取相关网页并生成相应的程序编号(系统资源常数上变量名,如productName),同时系统根据浏览器的设置或用户选定的语言获取用户语言编码601;系统根据程序编号(或信息资源编号)和用户语言编码在信息资源数据库的系统资源数据库表模式中搜索出所述信息资源的国际化值(如“产品名”)并返回至客户端602;用户将看到一个他所选定语言的用户界面(如“产品名:”)603。
本发明所述的方法应用于政府部门,使政府能更多,更有效的参与国际交流,及时公布国际化政府信息;应用于高校及教育系统使用本发明的技术,可以开拓新的教育方式,加强与国际学生的接触与了解;应用于商业,可以在国际市场上,通过互联网技术推销自己的产品;应用于多民族居住的区域,如美国,欧洲,中国少数民族区将促进各民族之间的交流,促进社会安定;同时本发明也促进各种跨国的信息记录,信息交流,信息发表等。