使计算机应用中资源管理自动化的方法

文档序号:6553746阅读:162来源:国知局
专利名称:使计算机应用中资源管理自动化的方法
使计算机应用中资源管理自动化的方法技术领域本公开涉及计算机系统,并且更具体地涉及将命令从第一人类语 言翻译成第二人类语言。
背景技术
在传统技术中,计算机使用资源文件。资源通常对应于信息表达 的预定义途径,比如字体、计算机图标、或预定义格式。资源文件是基于在资源文件中定义的资源定义使应用能够改编应用的外观而不用 修改应用代码的方法。资源例如是下拉式菜单。可用于识别资源的资 源名称可以是"菜单"。资源可以具有对应的索引号。在一些现有技术系统中,资源文件 可包含索引号,但是不包含资源名称本身。相反,索引号对应于给定 的资源并因此对应于资源名称。例如,"总量,,的资源名称可以具有35的索引号,并且"shift"鍵的"shift"标志的资源名称可以具有 36的索引号。此外,每个索引号具有它自己的如在资源文件内定义的关联值。 一个值通常被定义为一个资源所使用的串或命令。例如,在编码应用 时,无论何时在应用中使用索引号"35",该应用都可以替换值(或 串)"总量"。但是,"总量"可以具有"总量"的值,并且shift 键的资源名称可以具有"shift"值。但是,当试图适应英文之外的说话者的应用时,索引的使用产生 了问题,因为英文通常是备选的源代码计算机语言。例如,如果一个 人试图编程法语接口,那么在资源文件内一个人如何将项"35"翻译 成适合于法语说话者的对应法语值?存在若干途径,每个途径具有它 自己的缺点。例如,如果在单个资源文件内为所有语言索引单词,则索引号可 能用尽。例如,假设1000被用作为英语资源的基地址,并且2000用于 法语资源,并且索引以一的计数递增。因此,槽i-iooo用于英语,并 且槽1001 - 2000用于法语。如果存在大于1000个感兴趣的资源,则资
源文件不能包含新的资源,因为英语或法语资源可能仅仅将一千个资 源定义为一片。本地化的资源文件可通常被定义为具有对应于本地条件的值的资 源文件,比如语言或文化。如果不是单个源文件内的基地址,应用已 经被编程为按照本地语言和文化来访问 一 系列单独本地化资源文件中 所选择的一个,通常存在单词的英语意思和外文翻译之间的差别。例如,对于索引36 (shift资源),索引36可能是指shift键,或者可替 换地是指在工厂中 一组雇员在 一个时间段期间工作。资源名称 "shift"的每个意思当被输入到本地化资源文件内的值时会具有不同 的翻译。因此,在现有技术中,不是需要应用中索引号,而是需要资源名 称。例如,在应用内要求"total, value"的资源名称。资源文件接着 会被用于定义对于该资源名称对应值是什么。接着,对应值可以被定 义为英文串"total, value"。但是替代地,对应值将是芬兰语的 "kokonaismaara",或它可以是外文语言的某个其它值。但是与索引 号相反,资源名称的使用使得它对于外文翻译者来说更容易跟上英文 项所表达的意思。但是,如果最终用户要求没有在所选资源文件内定义的资源名 称,则应用通常桂起、崩溃、异常中断、或以不期望的方式动作。此 外,对于某些种类的应用,比如数据驱动应用,在以通用方式开发独 立于客户的代码并且所有客户数据存储在应用数据库中的情况下,崩 溃的可能性尤其占优势。此外,在某些应用中,给定了资源的名称,比如在通用传感器显 示器中使用的传感器名称,在编写应用的时间期间是未知的。例如, 如果名为"moisture"的传感器被添加到应用数据库中,并且 "moisture"的资源名称没有在资源文件中定义,那么当应用试图访 问资源名称"moisture"时系统会以不期望的方式动作。这在资源具有英文之外的资源名称时进一步恶化。例如,资源被 添加到具有"iamp6tila"的资源名称的系统。但是,或许iamp6tila 没有在资源文件中定义。当试图为资源名称的对应值开发文化上等效 的类似物时这尤其困难,因为发现这个资源名称的意思是什么是困难 的。
此外,必须手工(即,不是实时的而是通过开发者)更新资源文 件是一个问题。 一部分问题在于,当资源名称被独立地输入到应用代 码中和资源文件中时,可能存在拼写错误。特别是在数据驱动应用中, 另一部分的问题在于,在已经释放应用后可以增加所要求资源名称的 数量。但是,可能不存在快速和方便的方式来将这些资源名称添加到 资源文件。为了支持短语和同音异义字的上下文敏感翻译,需要一种应用来 识别要在翻译中使用的上下文,比如显示名称或应用形式(换句话说, 值)。在用于生成与资源名称对应的本地语言的值的本地化处理中, 相同短语和同音异义字的翻译应当可并行处理以便降低本地化工作并 提高翻译的一致性。因此,存在对资源文件管理和本地化的资源文件 管理的需要。发明内容提供了一种计算机系统。应用生成具有资源名称和缺省值的调 用。资源管理器将第一资源文件中的条目与资源名称比较。如果第一 资源文件不包含该资源名称,则资源管理器包装将资源名称写到第二 资源文件。资源管理器包装将与所述资源名称关联的返回值传送到应 用。接口按照所述返回值来呈现信息。如果所述资源名称没有在所述 第一资源文件中找到,则返回值是缺省值。如果在第一资源文件中找 到了资源名称,则返回值是从第一资源文件读取的本地化值。数据库提供资源名称和缺省值给应用。所述调用包括应用编程接口 (API)调 用。缺省值对应于第一人类语言。第一人类语言可以从由英语、西班 牙语、芬兰语、中国国语和德语组成的组中选择。本地化工具生成本 地化值。本地化值对应于第二人类语言。本地化工具将所述本地化值 输入到所述第一资源文件。第一资源文件是本地化的文件。提供了一种方法。接收一个调用,该调用具有关联的资源名称和 关联的缺省值。确定资源名称是否在第一资源文件中被定义。如果资 源名称在第一资源文件中被定义,则接着获取来自所述第一资源文件 的对应资源值。如果资源名称没有在所述本地化文件中被定义,则在 第二资源文件中写入资源名称。在第二资源文件中写入缺省值以作为 与所述资源名称关联的值。传送与所述资源名称关联的返回值。如果
在所述第一资源文件中没有找到所述资源名称,则返回值是缺省值。 如果在所述第 一 资源文件中找到所述资源名称,则返回值是从第 一 资 源文件读取的本地化值。缺省值对应于第一人类语言。第一人类语言 对应于开发者的语言。本地化值对应于第二人类语言。第二人类语言对应于用户的语言。该调用是API调用。资源名称是动态资源名称。提供了一种计算机存储介质。接收一个调用,该调用具有关联的 资源名称和关联的缺省值。确定资源名称是否在第一资源文件中被定 义。如果资源名称在第一资源文件中被定义,则从所述第一资源文件 获取对应资源值。如果资源名称没有在第一资源文件中被定义,则在 第二资源文件中写入资源名称,并且在笫二资源文件中写入缺省值以 作为所述资源名称的对应缺省值。


图l说明了用于为接口生成返回值的软件系统。图2说明了用于动态更新资源文件的方法。图3说明了用于动态更新资源文件的计算机系统。
具体实施方式
术语"模块"在这里用于区别在集成配件中可以体现为单独组件 或多个组件之一 的功能操作。在图1中,示意性说明计算机软件系统("system" )100。系统 100具有应用120。应用120访问关联的客户数据库,其结果显示在用户 接口上,尽管系统100作为软件模块被说明。在系统100中,在应用120的源代码中嵌入在不同语言格式等上没有差别的静态资源名称,即非本地化的名称。关联的客户数据库已经在其中存储动态资源名称以用于在用户接口和静态资源名称上的本地 化呈现。动态资源名称可以被定义为在创建应用120的时候不知道的那些资源名称。动态资源名称可以来自客户数据库或另一个类似的外部 源。静态资源名称可以通常被定义为在创建应用120时程序员已知的资源名称。尽管静态定义可以在资源文件中被处理,但因为静态名称它 们是在应用12O开发时间期间被定义的,所以还应当呈现适于通过用户 接口向最终用户呈现数据或图形的动态资源名称。 用户接口请求资源以使其能够显示或呈现感兴趣的项。应用120 可获得来自客户数据库的动态资源名称或来自应用102的源代码的静 态资源名称,或两者。尽管在最终用户数据库或应用120的内部定义了 静态和动态的资源名称,但是,比如动态名称的资源名称可能在资源 文件内没有被更新。但是,资源名称,无论是动态或静态,都应当被 放到适于用户接口的文化或语言学格式中。因此,应用120生成应用编程接口 ( API )调用140以确定是否存在 更适合的值来用于向用户接口130呈现资源。API调用140源自应用120 并且调用了资源管理器包装150,如连接API调用140和资源管理器包装 150的双箭头所指示的。资源管理器包装150通常可以被定义为可能使 资源管理器160运行的模块、程序或脚本,如将在下面描述的。API调用140还具有返回值180。返回值180是当通过用户接口呈现 资源时所使用的值。例如,如果资源名称是"total, value",并且返 回值是"kokonaismaara",这就是将在用户接口上呈现与 "total, value"对应的资源名称时使用的值。API调用140的缺省值用于两个目的。第一,当在本地化资源文件 175中没有找到资源名称的情况下,资源管理器包装150将缺省值复制 到返回值180。例如,如果资源名称是"poisonous liquid" , API调 用140内的缺省值可以是"day-glow green"的颜色。因此,"day-glow green"是在缺乏带有本地化资源文件175的本地化值的情况下 用于选择用户接口中颜色的值。第二,如果先前没有在资源文件170 中记录资源名称,则在资源文件170中连同API调用140的资源名称来记 录API调用140内的缺省值。资源管理器包装150从API调用140接收信息。根据面向对象程序设 计,资源管理器包装150可以是一个类并且API调用140可以是一个类中 的方法。资源管理器160询问本地化资源文件175关于在本地化资源文 件175内是否定义了资源名称。资源管理器160通常可以定义为分类、 索引、组织的模块、脚本或代码,并可以执行对本地化资源文件175 的访问请求。通常,本地化资源文件175包含各种资源名称和与资源名 称对应的本地化(即,非缺省)的值。下面将讨论非缺省值输入到本 地化资源文件175的方式。如果本地化资源文件175在其中存储有资源名称,则本地化资源文 件175将因此指向资源管理器160。此外,本地化资源文件175将把关联 的本地化值传送回资源管理器160。但是,如果在本地化资源文件175内没有找到资源名称,则资源管 理器包装150将把资源名称和所接收的缺省值写入到资源文件170中。 换句话说,系统100可动态地更新其资源文件170。例如,如果本地化 资源文件175不具有"stress overload"的资源名称,则资源管理器 包装150将把"stress overload"的资源名称写入到资源文件170中。 此外,资源管理器包装150将把对应的缺省值写入到资源文件170中。把值写入到资源文件170中有助于避免计算机崩溃,因为资源文件 170用于收集还没有本地化的资源名称和缺省值。资源名称的自动保存 覆盖了在应用120代码中嵌入的静态资源名称和在客户数据库或在客户数据库表示的外部世界中嵌入的动态名称。崩溃发生的可能性通过 发送返回值180到应用120而被降低。通过自动化资源名称收集而校正了资源名称的拼写错误。外部世界的一个例子是来自第三方厂商系统的英文警报消息。通 过捕获资源文件17 0中的警报消息,它就可以被翻译成本地化资源文件 175中的本地语言,并且接着用于在用户接口上呈现。但是,缺省值不 能直接从资源文件170到本地化资源文件175。要求人类介入以完成实 际翻译和其它本地化动作。可以借助本地化工具172来查看资源文件170,并且可以在本地化 资源文件175中复制、修改和存储内容。借助本地化工具l72,操作员 或程序员就可以确定资源文件170内的资源名称具有不适当的如从API 调用140接收的对应缺省值以及资源名称应当具有对应值,该对应值对 于用户接口的最终用户在被翻译语言中更正确。本地化工具172复制来自资源文件170的资源名称和缺省值。本地 化工具172接着用于生成适当的本地化值以对应于资源名称。通常,本 地化值是用于以文学和语言学上适当的方式来在用户接口130中呈现 资源的值。例如,对于"poisonous liquid"的资源名称,而不是 "day-glow green"的缺省值,可以生成"burnt umber"的对应本 地化值。接着在本地化资源175中存储本地化值和资源值。换句话说, 资源文件170用于只捕获还没有包括在本地化资源文件175中的那些资 源。
本地化资源175内的本地化资源文件可以由两个标准来组织l) 通过语言和2)通过应用区域。语言可以是特定于文化、地理区域或本 地实践。应用区域可以是应用的一部分,特定于应用或由多个应用共 享。应用区域通常可以被定义为具有独立部分,比如显示器或报告的 应用。计算机可以支持基本上独立的应用,该应用需要共享相同的翻 译。语言/文化的选择可以独立于应用区域。如果没有在本地化资源文件175内定义的资源名称,则来自API调 用140的缺省值变为返回值180。如果在本地化资源文件175中找到资 源,则对应的本地化值变为返回值180。 API调用140接着返回资源名称 和返回值180到应用120。应用120解释返回值180并将它应用于用户接 口130中以呈现给最终用户。本地化工具172用于生成本地化值以存储在本地化资源文件175 内。例如,在为芬兰说话者创建的本地化资源文件175中,本地化工具 172将写入资源名称"stress overload",其具有对应的本地化值 "ylipaine" ( "stress overload"的芬兰语)。在资源名称的芬 兰本地化值被写到本地化资源文件175之前,用户接口130将示出缺省 值串"stress overload" 。 "stress overload"这个值将是返回值 180。当芬兰语翻译在本地化资源文件175对于芬兰语说话者可用作本 地化值之后,"ylipaine"的返回值180将在用户接口 130中示出。在 本地化资源文件175内使用的可替换语言例如可以是英语、西班牙语、 芬兰语、中国国语或德语。值不限于是单词、短语和文本,但可以用 于所有文化和语言特定的用户接口项,比如颜色、图标、图片、音频 和视频。在本例中,资源名称"stress overload"还i皮用作为应用代码中的"缺省值"。在本地化资源文件175内,存在用于语言和地理区域的分层结构。 用于地理区域的分层结构是一种降低翻译工作以支持类似环境上的相 同语言的实践方式。这是一个由资源管理器160支持的概念,比如微软 资源管理器。例如,存在用于通常德语和专门在瑞士说的德语的翻译。如果没 有在本地化资源文件175内找到德语的专门瑞士方言,则使用通常的德 语翻译。如果德语翻译丟失,则使用在应用120中规定的缺省值。当应用120生成API调用140时,它使其初始化对应于应用区域和目
标语言和/或指明使用的文化区域。在API调用140初始化之后,语言可 以例如从英语变化到芬兰语,以支持中间的语言变化而不用重新启动 应用120。这将通过选择本地化资源文件175内的不同文件而发生,每 个文件对于各个语言具有适当的本地化值。应用120可通过在初始化期间指明目标语言来使用API调用140。在 该情况下,语言选择是静态的。如果语言没有被指明,则使用在操作 系统或应用管理中当前选择的语言。资源管理器包装150可以检测操作 系统或应用管理中的语言变化。在变化之后,资源管理器包装150将明 确地改变资源管理器160中的语言选择。利用该特征,应用120的开发 者不需要写入任何代码以支持动态语言变化。图2说明了用于使用和更新资源文件的流程图200。在进入步骤205 之后,在步骤210,资源管理器包装150由API调用140激活。API调用 140具有资源名称和对应的缺省值。在步骤220,确定资源名称是否在 本地化资源文件175内定义。如果是,则从本地化资源文件175内返回 对应的本地化值。在步骤250,通过使用返回值180将本地化值复制到 应用120,并且方法200在步骤270中退出。但是,如果在步骤220中确定了资源名称没有在本地化资源文件 175内,则资源管理器包装150添加资源名称和缺省值到资源文件170。 在步骤260中,缺省值的副本通过返回值180被返回到应用120,并且方 法200在步骤270中退出。参考图3,在这里说明了适于根据方法200动态更新资源文件170 的计算机系统300的框图。计算机系统300包括与用户接口 305耦合的用 户计算机310、存储器330、存储介质340、网络350、开发者计算机351、 和翻译者计算机352 。存储器330用于在用户计算机310上运行应用 120。存储器330包含应用120、资源管理器包装150和资源管理器160。 应用120、资源管理器包装150和资源管理器160都原始地在开发者计算 机351中被编码。所使用的资源名称可嵌入在应用代码120中,或者应 用120从客户数据库110或另一个外部位置获取资源名称。存储介质340包含客户数据库110、资源文件170和本地化资源 175。当执行应用120时,存储介质340中的项可以部分或全部地加载到 存储器330中。客户数据库110原始地被编码并且具有从开发者计算机 351输入的数据,并且可以在用户计算机310中被修改和更新。应用120使用资源管理器包装150来为文化上下文和/或所选语言 确定本地化值是否匹配资源名称。资源管理器包装150使用资源管理器 160以便基于存储在本地化资源175中的信息来进行实际获取。如果找 到本地化值,则该值由资源管理器150返回给应用120以作为返回值 180。返回值180接着由应用120用来在用户接口130上呈现。资源名称:(即不存在资源;称的对应本地化值),则由应用120的API存储在资源文件170中。返回值180接着由应用120用来在用户接口130 上呈现。在开发、测试、生产或其它周期期间执行应用120之后,所有新资 源的名称及其缺省值存储在资源文件170中。接着,新的资源名称和缺 省值被下载到翻译者计算机352。本地化工具172由翻译者计算机352 用来为在资源文件170中找到的新资源生成各种语言和文化的本地化 值。为结合用户接口130使用的所有语言和文化,将这些本地化值和对 应的资源名称输入到本地化资源文件175中。用户接口130示出了在监 视器屏幕321和报告打印机3U或其它人机输出设备,比如扬声器上的 窗口上获取的本地值。应当理解,这里描述的教导的各种替换、组合和修改可以由本领 域技术人员想到。本发明旨在包含落入所附权利要求范围内的所有这 样的替换、修改和变型。
权利要求
1. 一种具有软件的计算机系统(100, 300 ),包括应用(120),该应用生成具有资源名称和缺省值的调用(140);资源管理器(160),该资源管理器将本地化资源文件(175)中 的条目与所述资源名称比较;和资源管理器包装(150),如果所述本地化资源文件(175)不包 含所述资源名称,则该资源管理器包装将所述资源名称写到资源文件 (170)。
2. 权利要求l的计算机系统(100, 300 ),其中所述资源管理器 包装(150)将与所述资源名称关联的返回值(180)传送到所述应用(120)。
3. 权利要求2的计算机系统(100, 300 ),还包括接口 ( 350 ), 该接口按照所述返回值来呈现信息。
4. 权利要求2的计算机系统(100, 300 ),其中如果所述资源名 称没有在所述本地化资源文件(175)中找到,则所述返回值(180) 是所述缺省值。
5. 权利要求3的计算机系统(100, 300 ),其中如果在所述本地 化资源文件(175)中找到所述资源名称,则所述返回值(180)是从 所述本地化资源文件(175)读取的本地化值。
6. 权利要求1的计算机系统(100, 300 ),还包括数据库(311),该数据库提供所述资源名称和缺省值给所述应用(uo)。
7. 权利要求6的计算机系统(100, 300 ),其中所述调用(140) 包括应用编程接口 (API)调用。
8. —种方法(200 ),包括接收(210) —个调用(140),该调用具有关联的资源名称和关 联的缺省值;和确定(220 )资源名称是否在本地化资源文件(175)中被定义;如果所述资源名称在所述本地化资源文件U75)中被定义,则从 所述本地化资源文件(175)获取(230 )对应资源值;并且如果所述资源名称没有在所述本地化资源文件(l")中被定义, 则在资源文件(170)中添加(240 )所述资源名称,在所述资源文件 (170)中添加(240 )所述缺省值以作为与所述资源名称关联的值。
9. 权利要求8的方法,还包括传送(250, 260 )与所述资源关联 的返回值(180)。
10. 权利要求9的方法,其中如果在所述本地化资源文件(175 ) 中没有找到所述资源名称,则所述返回值(180)是所述缺省值。
全文摘要
提供了一种包括应用的计算机,该应用生成具有资源名称和缺省值的调用。资源管理器将本地化资源文件中的条目与资源名称比较。如果本地化资源文件不包含该资源名称,则资源管理器包装将所述资源名称添加到资源文件。资源管理器包装接着将返回值传送到应用以便用来呈现给最终用户。
文档编号G06F9/44GK101147128SQ200580049204
公开日2008年3月19日 申请日期2005年12月19日 优先权日2005年1月25日
发明者O·A·坎帕里 申请人:霍尼韦尔国际公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1