首页> 中国专利> 在数据语言中管理多种语言

在数据语言中管理多种语言

摘要

描述了为多种资源类型提供变体以及通过使用公用变量和有组织的文件结构来高效率地管理这些资源的各种方法和装置。一文件结构由例如$lang变量等的公用变量来组织,并且包括资源引用,由此一旦定义了该公用变量,就可以使用相同的指令,通过利用修改该公用变量来引用相似的资源。可以使用在此所揭示的文件结构来管理多种资源类型,包括文本、图像以及其他资源类型。

著录项

  • 公开/公告号CN101213516A

    专利类型发明专利

  • 公开/公告日2008-07-02

    原文格式PDF

  • 申请/专利权人 高通股份有限公司;

    申请/专利号CN200680024301.1

  • 发明设计人 D·T·贝瑞;N·克莱瑞;R·沃尔玛;

    申请日2006-05-31

  • 分类号G06F9/44;

  • 代理机构上海专利商标事务所有限公司;

  • 代理人陈炜

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-17 20:23:48

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2011-10-19

    授权

    授权

  • 2008-08-27

    实质审查的生效

    实质审查的生效

  • 2008-07-02

    公开

    公开

说明书

相关申请的交叉引用

本申请要求在2005年5月31日提交的美国临时申请S/N.60/686,180的权益,由此其整体被援引纳入于此。

发明背景

发明领域

本发明一般涉及软件应用的变量处理。本发明尤其涉及以公用变量来创建文件结构以及进行资源处理。

相关技术说明

数据语言正成为一种越来越盛行的编程方法。数据语言包括标记语言,诸如基于XML的那些语言,包括HTML、TRIGML(由高通公司所有)。数据驱动语言被广泛地用在编程基于网页的应用中,但是并不限于此。基于XML的语言的例子还包括计帐和交易处理应用。

使用数据语言时在几种情况下会产生困难。例如,在开发用户界面(UI)时,根据在设备上运行的应用所需的语言来使该应用有多种语言可用将是合乎需要的。例如,在法国使用的无线设备与在英国使用的无线设备可能出于相同目的而分别想要使用词项“bonjour”和“Hello”。

但是,除了文本以外,可能还有其他的资源类型是应用想要基于文化、语言或其他变量来改变的。例如,应用可能会希望在语言被选为法语时显示艾菲尔铁塔作为背景,而对于英语则可能希望显示白金汉宫。类似地,较为开放的画面对于应用开发者相信是较为合适的那些语言/文化可能是合需的,而较为保守的图像对于软件开发者相信是较为保守的那些语言/文化可能是合需的。

当前用来解决这个问题的方法是使用语言包。例如,Microsoft Word可以安装语言包。该语言包仅仅是改变定义的词项的指针值。例如,安装的法语包将会把用于“edit”的菜单项替换为相应的法语单词,诸如“editer”。可以安装多个语言包,但是随着语言相关资源的数目变得越来越大,它们变得难以管理。并且,没有基于其他变体来管理资源的解决方案。

因此,本领域中需要的是一种允许为多种类型的资源管理语言变体的方法、装置和系统。此外,需要的是一种为多种资源类型提供变体并使用多个变体来管理资源的方法、装置和系统。

发明内容

与本发明相符的系统和方法通过创建为多种资源类型提供变体并通过使用公用变量和有组织的文件结构来高效率地管理这些资源的系统和方法。

在一个实施例中,一种在数据语言中利用变量来生成用于管理资源的结构的方法,该方法包括:接收由一变量区分的多个资源引用,并使用该变量和这多个资源引用来构建一结构,其中所述多个资源引用可以通过修改所述变量值来访问。

在另一个实施例中,一种生成用于访问由一公用变量区分的相似资源引用的文件结构的方法包括:利用该公用变量类型来划分该文件结构,将与这些相似资源引用中的每一个相关联的值放置于该文件结构内的相同的相对位置处。

在另一个实施例中,一种存储用于访问由一公用变量区分的相似资源引用的文件结构的设备包括:存储器,所述文件结构存储在该存储器中,其中所述文件结构是经由一公用变量来组织的,并且这些相似资源引用在该文件结构内被定位在不同公用变量值内相同的位置处;以及处理器,用于利用该公用变量值来检索这些资源引用。

在另一个实施例中,一种包含计算机可执行指令的计算机可读介质,所述计算机可执行指令在被执行时通过执行以下步骤来生成用于访问由一公用变量区分的相似资源引用的文件结构:利用该公用变量来划分所述文件结构,并将与这些相似资源引用中的每一个相关联的值放置该文件结构内被该公用变量引用的相同的相对位置中。

在又一个实施例中,一种在数据语言中管理资源的方法包括:利用一参数来接收对一资源的请求,修改该参数,并接收利用该参数修改了的对一相关资源的请求。

在又一个实施例中,一种接收对包含在利用一公用变量来组织的文件结构内的资源值的请求的方法包括:存储该公用变量的值,接收对一资源的请求,其中该请求包含该公用变量和资源引用,检索该公用变量的值,并且利用检索到的该公用值和该资源引用通过查找该文件结构中与该公用值和该资源引用相关联的位置来检索该资源值。本方法可以进一步包括修改公用变量的值,接收对于包含在利用该公用变量和该资源引用来组织的该文件结构内的第二资源值的请求,检索经修改的公用变量,利用经修改的该公用变量和该资源引用来检索第二资源值。

本发明的其他目的、优点和特征将在细阅此后阐述的附图简要说明、发明具体说明和权利要求书之后变得显而易见。

附图简要说明

关于其中相同的附图标记始终代表相似要素的附图:

图1是在本发明的一个实施例中设备可在其中操作的通信环境的功能图;

图2是一般化地图解本发明的一个实施例中的范例移动设备的组件的功能框图;

图3是一般化地图解本发明的一个实施例中的范例移动设备的组件的功能框图;

图4是图解本发明的一个实施例中的计算机平台的应用架构的框图;

图5是图解本发明的一个实施例中的更新用户界面组件的系统和描绘trigplayer(trig播放器)、actor(逻辑部分)和trig(UI元素)的架构的框图;

图6是图解本发明的一个实施例中的与管理由一公用语言变量来组织的相似资源引用相关联的一种文件结构的框图;

图7是本发明的一个实施例中的与管理由一公用语言变量来组织的多个相似资源引用相关联的更复杂的一种文件结构的图解;以及

图8图解在本发明的一个实施例中与管理由一公用语言变量来组织的多个相似资源引用和不同引用类型相关联的另一种更复杂的文件结构。

具体说明

现在将对附图中图解的本发明目前的示例性和优选实施例作详细参考,其中相同的附图标记在这数幅图面中始终表示相似或相应的部分。在结合附图考虑了以下的具体说明之后,本发明的本质、目的和优点对本领域技术人员而言将变得更加显而易见。

就术语的使用而言,在本说明中,术语“无线设备”、“无线电话”和“移动设备”被可互换地使用。在此所使用的术语“应用”旨在涵盖可执行的和不可执行的软件文件、原始数据、聚合数据、补丁、内容、用户界面和用户界面组件、以及其他代码段。此外,在这数个视图中,相同的附图标记始终表示相似的要素,且除非在本说明中另行指出,否则冠词“一”和“该”包括复数的引用。

以下说明涉及使用TrigML数据语言的用户界面资源管理方法、装置和系统。TrigML是在开发用户界面时很有用的数据语言。TrigML是由高通公司所有的产品。与在XML下定义的数据语言相似,TrigML代码包括标签的使用。本领域技术人员将会认识到,虽然上面的说明是采用UI、TrigML和管理语言的形式,但是其也可以适用于除UI以外的其他应用,可以用除TrigML以外的其他数据语言——包括其他基于XML的语言来实现,并可用于利用除语言以外的其他变体来管理其他资源类型。

本发明的实施例包括通过管理语言来管理诸如文本和图像等的资源。这些可以是包括但不限于文本、图像、页面排版、程序片段、对设备组件和功能的访问等的任何资源。

图1是在本发明的一个实施例中设备可在其中操作的通信环境100的功能图。在本例中,通信环境100包括无线网络122。无线网络122可以是由无线服务供应商运营以向移动设备提供数据或电信连接的通信网络。此外,无线网络122还可以包括有线网络、因特网、广域网、公共交换电话网(PSTN)及其他公共和/或专用网络,由此设备可以直接或间接地利用连接至这些网络的其他设备来通信。

在一个例子中,无线网络122可以包括蜂窝电话网。数个移动设备在与无线网络122通信,诸如有蜂窝电话112、膝上型计算机116、PDA 118、和移动消息接发设备120。这些设备仅是作为可以在无线网络122上通信的许多类型的设备的例示而示出的。

图1中图解了应用服务器124和用户界面服务器126。用户界面服务器126是供给用户界面组件130(在下面会更详细地描述)的计算设备。这些用户界面组件130可以被下载到连接至无线网络122的其他设备。用户界面组件包括用于呈递用户界面的代码和/或数据(例如功能调用、菜单、用于进行内容调用的代码、皮肤等)。注意,可以使用包括内容服务器在内的许多其他的服务器来连接至网络以传递信息。可用的信息类型是无限的,并且很多不同的示例对本领域技术人员来说将是显而易见的。用户界面服务器126包括配置成在无线网络122上向作出请求的设备提供用户界面组件130的服务器软件。

应用服务器124是与无线网络122耦合的使软件应用128可供移动设备下载的计算设备或系统。一般而言,应用128可以被诸如蜂窝电话112等的连接至无线网络122的设备下载以供在这些设备上执行。在此特定实现中,由应用下载服务器124供给的这些应用128中的至少一个是配置成可供在这些移动设备中的至少一个上执行的基于内容的应用。该基于内容的应用(客户机)被配置成从内容服务器(未示出)检索内容以供移动设备经由用户界面来呈现。

图2是一般化地图解本发明的一个实施例中的范例移动设备201的组件的功能框图。移动设备201可以是具有计算功能集的任何设备,诸如蜂窝电话、个人数字助理、手持式“掌上”设备、膝上型计算机、便携式音乐播放器、全球定位卫星(GPS)设备等。

移动设备201具有能够接收和执行软件应用和显示数据的计算机平台250。计算机平台250包括处理器252,诸如专用集成电路“ASIC”、数字信号处理器(“DSP”)、微处理器、微控制器、逻辑电路、状态机、或其他数据处理设备。处理器252执行与移动设备的存储器256中的任何驻留程序接口的应用程序编程接口(“API”)层254。存储器256可以包括随机存取或只读存储器(RAM或ROM)、EPROM、EEPROM、闪存、或各种计算机平台常用的任何存储器。计算机平台250还包括可以保存不是在存储器256中现用的软件应用、文件或数据——诸如从用户界面服务器126(图1)下载的软件应用或用户界面组件的本地存储258。本地存储258通常包括一个或多个闪存单元,但是也可以是本领域中已知的任何二级或三级存储设备,诸如磁介质、EPROM、EEPROM、光学介质、带、或是软盘或硬盘。

计算机平台250还包括可被软件应用使用以利用用户界面(未示出)来显示数据的显示器260。

图2中所示的组件是许多类型的移动设备的典型,但是应当认识到,也可以向移动设备201添加其他组件,并且在某些情形中,可以从移动设备201中省略掉图2中所示的一些组件。

图3是一般化地图解本发明的一个实施例中的范例计算设备301的核心组件的功能框图。计算设备301可以是任何固定计算设备,诸如台式计算机或服务器。

在本例中,计算设备301包括处理器单元304、存储器306、存储介质313、和音频单元331。处理器单元304有利地包括微处理器或诸如数字信号处理器(DSP)等的专用处理器,但是在替换方案中也可以是任何常规形式的处理器、控制器、微处理器或状态机。处理器单元304被耦合至存储器306,存储器306有利地被实现为保存由处理器单元304执行的软件指令的RAM存储器。在替换实施例中,存储器306可以由固件或闪存组成。在本实施例中,存储在存储器306中的软件指令包括操作系统310以及一个或多个其它应用312,诸如采用用户界面的应用(未示出)。

移动设备301还包括使得计算设备301与诸如移动设备等的一个或多个其他计算设备之间得以双向通信的通信模块321。通信模块321可以包括使得RF或其他无线通信——诸如蜂窝电话网络、蓝牙连接、无线局域网、或可能还有无线广域网等得以实现的组件。替换地,通信模块321可以包括用于使得陆线或硬布线网络通信——诸如以太网连接、RJ-11连接、通用串行总线连接、IEEE 1394(火线)连接等得以实现的组件。以上是非穷尽的列表,并且许多其他替换方案也是可能的。音频单元331是移动设备301中配置成在模拟与数字格式之间转换信号的组件。音频单元331被移动设备301使用以利用扬声器332来输出声音并从麦克风333接收输入信号。

图3仅表示了在许多常规计算设备中一般找得到的某些组件。非常多的其他组件也在特定实现中例行地找得到,并且在某些情形中,图3中所示的一些组件可以被省略掉。但是,图3中所示的计算设备301是当前常见的计算设备的典型。

图4图解了本发明的一个实施例中的一种设备的应用结构。该设备将包括“计算机平台”。计算机平台可以指包括硬件、软件、或其两者的设备组件。例如,其可以包括操作系统、包括芯片在内的底层硬件组件、用户界面硬件(例如,显示器、输入和输出设备)、库、支持API、对操作系统的附加扩展等。

在一个实施例中,无线设备的应用架构400包括设备API 405、BREW API 410、BREW扩展415、Trigplayer 420、Actor 425和Trig 430。设备API 405可以包括被软件平台用来寻址专门与该设备相关联的功能——诸如专用处理器或ASIC功能、专用设备硬件功能集等的那些API。

BREW API 410是由高通公司开发的软件平台。BREW API 410为应用提供调用不需专门为该设备编写的设备API 405和其他功能的能力。换句话说,其从应用中抽象出了硬件的具体方面,藉此允许为许多个设备编写应用而无需定制或仅需为该应用在其上运行的每种具体设备稍作定制。

BREW扩展415提供了向BREW平台添加附加扩展能力——诸如提供MP3播放器、Java虚拟机等的能力。

Trigplayer 420、Trig 430和Actor 425是高通公司开发的uiOneTM架构的组件。这些组件通常涉及设备400的用户界面方面。在一个实施例中,Trig 430是已编译的TrigML代码、以及被应用软件用来在设备400上呈递用户界面的其他资源(其可以包括元数据、文本文件及图像)。多个Trig和被称作Triglet(未示出)的Trig更新可以被用于用户界面。

由高通公司所有的TrigML代码是基于XML的数据语言,并且可以用作用于创作Trig 430的用户界面呈现语言,并且包括以移动设备为目标的功能集、交式互用户界面事件模型、象素定位的优势以及其他优势。

Actor 425包括用于将Trig连接至底层设备API 405和/或BREW API 410的底层C代码。Actor 425还可以起到用于输入/输出的可执行件的作用。并且,由于Actor连接至底层设备和BREW API,因此其可对计算机平台功能进行访问。

Trigplayer 420可以被实现为BREW扩展415,即便其在图4中被分立出来。Trigplayer用于通过利用Trig和actor来呈递用户界面。

应当认识到,尽管图4的讨论是采用高通公司的uiOne架构(包括已编译的TrigML、Trigplayer、BREW API等)的形式,但是这是为了描述的目的,并且本发明包括其他数据语言、计算机和软件平台以及设备架构。

图5是图解了在本发明的一个实施例中的更新用户界面组件的系统和描绘了trigplayer 420、actor 425和trig 430的架构的框图。设备500包括trigplayer 420、actor 425和Trig 430。Trig可以包括TrigML代码505、文本串510、图像515和更新通道520(更新通道可以定义用于取回Triglet 530的URL和定时方案)。可以空中更新Trig,由此允许用户界面在设备已经离开制造商之后也能够被更新。服务器525可以被用于下载新的Trig和/或Trig的更新组件(例如Triglet 530),从而允许设备所用的用户界面能够被自定义。

图6是图解本发明的一个实施例中的与管理由一公用语言变量来组织的相似资源引用相关联的文件结构600的框图。一个实施例包括使用软件开发工具来创建文件结构600的用法以及用于访问该结构的执行过程。软件开发工具的一个例子包括由高通公司所有的trigbuilder(trig构建器)和trigpublisher(trig发布器)。用于访问该结构的执行过程的一个例子包括trigplayer。在构建用户界面元素时,trigbuilder从开发者接收定义该元素的各方面的属性。该用户界面元素和该文件结构可以驻留在关于图4和5所描述的Trig中。一个属性可以包括$lang属性。一文件结构由诸如$lang变量等的公用变量来组织,并且包括资源引用,由此一旦定义了该公用变量,就可以使用相同的指令通过利用修改该公用变量来引用相似的资源值。

在构建允许管理多种语言的系统时,开发者创建了诸如以下的TrigML元素:

<text res=”text/$lang/a”>

构建器还将从开发者接收该开发者希望支持的语言。例如,开发者可以选择英语和法语。在上面的例子中,文本资源“a”已被创建并具有相关联的英语和法语值。

一个实施例基于资源“a”和开发者所选择的语言来创建一文件结构。图6描绘了此文件结构600的示例。在此例中,文本资源引用“a”在英语版本中具有“hello”605的值,而对于该文本资源“a”的法语版本中则具有“bonjour”610。

图7是本发明的一个实施例中的与管理由一公用语言变量组织的多个相似资源引用相关联的一种更加复杂的文件结构700。以使得资源之间有相关性方式来构建文件结构700简化了资源的管理。例如在图7中,文本资源引用“a”表示“hello”的两种不同的表示705、710,而文本资源“b”表示“Goodbye”的两种不同的表示715、720。

继续参考图7,这些不同的资源是使用$lang变量来访问的,诸如:

text/$lang/a

如果将“$lang”定义为“英语”,则以上表达式预解为“hello”。如果$lang被定义为“法语”,则以上表达式预解为“bonjour”。注意,是使用相同的资源引用“a”来访问相关文本资源的两种表示,即“hello”和“bonjour”。

图8图解了本发明一个实施例中的与管理由一公用语言变量来组织的管理多个相似资源引用和不同的引用类型(例如,包括文本和图像)相关联的另一种更复杂的文件结构800。如上文和下文所描述地,任何资源类型皆可利用对变量范式的管理而不仅仅是利用语言变量来操纵文本资源来实现。

预解$lang变量

在一个实施例中,可以使用trigplayer来在已编译代码中预解$lang变量。但是,本领域技术人员将可认识到,可以使用任何解析器或其他代码分析器。并且,该代码并非必需是已编译的。

$lang变量可以由设备、开发者、应用或是其他能够访问这些变量的实体来设置或改变。在一个范式中,$lang具有缺省值,例如“英语”,并且可以由设备在之后的时刻改变。

如果$lang值改变,则trigplayer在确定要访问哪个资源时将试图使用该值。如果该语言资源不存在,则trigplayer会返回到上一个有效的$lang值。例如,如果$lang先前的值是英语,之后变为德语,并且遇到了以下表达式:

text/$lang/a

trigplayer将会试图寻找“text/German/a”。但是,如果不存在“德语”,则trigplayer将会回归至先前的有效$lang值。因此,如果英语的$lang的值先前被成功使用过,则当遇到以上表达式时,trigplayer将在之后试着寻找“text/English/a”。

替换地,trigplayer可以使$lang具有其总是回归的默认值。又一个替换方案是可以返回一错误,例如资源没有找到的错误。

以上是采用语言和$lang变量的形式对各实施例进行了说明。但是,可以用相同的方式来使用除语言以外的其他变量来控制变量值。例如,可以使用一变量来管理所支持的多个设备、诸如屏幕尺寸、功能等的其他设备资源、等等。将可认识到,任何资源皆可以使用在此所描述的方法和装置来管理。

本发明实施例的进一步说明

如果Trig或Triglet(UI元素)中一资源的路径包含$lang,并且你为多种语言进行编译,则用于每种语言的每一资源数据将以该路径的$lang部分被以两个字母的国别代码代替的方式来被包括。(注意,在本文中,除非特别指出,否则使用“Trig”始终是指Trig或Triglet)。

例如,一包含三种语言的文本资源的路径是text/$lang/greeting,

en=hello

de=guten tag

fr=bonjour

这些路径得以扩展为

text/en/gree

text/de/greeting

text/fr/greeting。

为了在TrigML中引用该路径,$lang变量被保持在该路径中,并且Trigplayer查找手机的语言并从存在的多个值中选择正确的要包括的资源。

<?xml version=”1.0”encoding=”UTF-8”?>

<trigml>

      <layer>

           <group>

                <text res=”text/$lang/mlang”/>

           </group>

      </layer>

</trigml>

默认语言

默认语言是用于携带在Trig属性中以使得trig被编译时默认语言是在语言的/config/supportedLangs数据列表中的第一个语言的额外信息。

在一个实施例中,编译器可以假定其为传递给编译器的数组中的第一个语言。

Trigplayer

Trigplayer当前读取定位于包含Trig支持的语言的由换行符分隔的列表/config/supportedLangs处的文本资源。该列表中的第一个语言是“默认”语言,即如果在该手机上选择的语言不被支持时播放器将撤退到的语言。

如果上述资源不存在,则$lang将返回NULL串。

行为的例子包括:

·尝试当前手机语言

·如果trig不支持,则撤退到上一次成功使用的语言

·如果没有上一次成功使用的语言(例如,首次开机),则撤退到第一次支持的语言

Parcel改变

在另一个实施例中,Parcelforce代码的使用藉由资源对象上的方法is_multilang来抽象出资源是否为多语言的意义。该方法测试在该资源对象的资源路径中是否存在串$lang。

当一对象的资源路径是一新变量lang时,如果该自变量被传入,则将用传入的语言来替代$lang的存在。此代码然后在TrigCompiler正在生成进入条形文件的资源路径时由TrigCompiler调用。get_resoure_path的所有其他用法都将返回路径而不替换$lang以供在例如TrigBuilder中使用。

还有一种统一检查来查看Trig是否为多语言的调用。Trig对象上的方法is_multilang检查所有其包含的资源是多语言。该公用代码在多处使用,并且遵循良好的编程实践将公用代码放在一处。

通过以这种方式来对其进行抽象,我们可以更容易地移至未来多语言处理的不同实现。

上述方法和软件设计描述也可以在装置中实现、作为指令存储在RAM中或其他存储设备中。尽管已经按特定次序顺序地图解并描述了本文中给出的过程,但是在其他实施例中,这些过程的步骤可以按不同的次序、多次、和/或并行地来执行。此外,在一些实施例中,在这数个过程中描述的一个或多个步骤可以作为单独的步骤、组合成更少的步骤来执行,或可能被完全省略掉。

虽然前面的公开示出了本发明的示例性实施例,但是应当注意,可以对所描述的实施例进行各种变化和修改,而不会脱离由所附权利要求定义的本发明的精神和范围。此外,尽管本发明的要素可能是以单数来描述或作权利要求的,但是复数也是已构想了的,除非显性地陈述限定为单数。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号