Abstract: The present invention provides a system for processinq data.
RESOURCE AUTHORING WITH RE-USABILITY SCORE AND SUGGESTED RE-USABLE DATA
BACKGROUND OF THE .INVENTION
The present. invention deal £3 with data processing.
Localization is a process of modifying
products or services Lo account for differences in
distinct markets. A very common example of
localization occurs when an application is authored
in a source language and is introduced into a market
that uses a target language different from the
original one. For instance, if an application were
authored in the Kngl i.sh language and then introduced
into China, it: would be localized by translating the
various English language strings and UI elements
(menus, icons, etc.), software components and user
assistance ;n the application into Chinese. The UI
layout, and style (including font type, size, control
positions, etc.) will also likely be changed to suit
the target language. Of course, the concept of
local 1/atton is broader than simply modifying
•uriqjaue. Ma.rkets that use the same language may be
d : st iri.:t ror other reasons. for instance, a software
application may be "localized" for different age
groups. It. ma/ have one set; of language and
appearance for adults and another for children or
teens. Thus, local i zat ion :..: lust: rativel y
aceomtnoda1 es for a w.i de variety of differences in
dist ;net markets.
Aithougn, as described above, localization
involves many more things that just translating
strings; to facilitate the read:mg of the document we
wr 1 l concent rate the description on that scenario. In
a. SIITV; i a r way, most of the examples are taken from
the solLware localization field but the invention is
not limited to software; localization. Similarly,
while much of the present discussion focuses on
localizing a product, the invention is not so limited
and is just as applicable to services, arid thus the
term "product" includes "service's" for the sake of
this description. In the past, there has not been a
system-level attempt to provide localization but
instead, localization has been performed using
ind 1 v ;.duc t 1 components to sol ve iridi v i dual probl ems .
For instance, a localizer may be augmented with
certain rriach , rie translation techniques to .improve
localization speed, accuracy and consistency.
However, a different locala.zer may use just.
translation memories in order to increase the recycle
rate by reusing previous translations, hence
providing a more consistent result at a higher speed
than she would without tools.
Also, this has all been done, conventionally, in an offline way. In other words, the author creates an err., ire application or a large portion ot a component, and that component or appi i cat. ion is provided to a localizer for local i/.at ion. The usual. process is such that the local 1/er's interaction, with the original author is
mirmnal or non-existent. This makes it hard to introduce-' changes in the original content that would ease ;ts localisation. In. fact, in. many cases, local ;'/at ion 'S not. perlormod until we'll after the entire product: has been developed and a strategic marketing decision has been made to expand that product into a d:i f.fererit market that uses a different 1 anqu.'icje or" i f-' d i st i r'.ct. in another way. In a'.! 1 of these .-ases, i hen- ' viability of the product may depend on the abi 1 i ' y >-.o local *. ze that product into languages used in larger market's This requires the manufacturers to spend an inordinately high amount of resources on localization. This often detracts from the resources ava.i ,i abl c • t or deve ! opmorit; .
Another problem associated with prior local i /at ion of forts is that there has not been a good way to draw on the work of a variety of other localisation sources. For instance, a wide variety of vendors localize their products for various market.s. Similar applications, developed by different vendors may .likely be localizing the same, or very similar, strings or software for the same markets. However, there is currently no expedient way tor the two ::...> draw on, or share, the ei forts of one ..inc:t her. '''nerof ;).rc, there is a Great deal of dupl i'-ati'd >:.f rcrt in localising products.
i-'art hermore, there are many different p roqramrn:., no mode-.:'! s (such as Win32, CI,K and WEB scripting) with different types of resource managers, ros::>u:_ :•*.• ( orTiat.s and data stores. They require differen! parsers and tool sets to handle 30 localization, which results .in complex and costly
processes, and inconsistencies in localization qua11t y.
SUMMARY OF THE INVENTION
The present invent ion provides a system for processing data.
BRIEF DESCRIPTION OF THE DRAWINGS
FI'G. 1 is one illustrative embodiment of an environment, in which the present invention can be used.
FIG. 2 is a more detailed block diagram of a rurir. line environment deploying aspects of the present invention.
FIG. 3 is a flow diagram illustrating the overall operation of the piatform (or system) shown in FK'i. '< in which a translation is unavailable.
FIG. 4 is a flow diagram il lust rat ing the ope cat .101. or a matching component shown an FIG. 2.
FIG. 5 is a more detailed block diagram of the ioca i. i /.at i on platform (or system) shown in FIG. 2, as used daring development, of an application or other content. .
FI'G. 6 is a flow diagram illustrating how a product, can be developed implementing techniques that aid in Later localization, in accordance with one embf >d.i meet of the present invention.
DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS
The present invention pj.rcvi.des an operating system with an integrated localization platform, or a ioca i. i zat 1 on piatform which has components closely operabie with i.ne operating system, although not
fully integrated. The present: .localization platform can also be provided as a service that is requested by the operating system. The present invention ut. i .1 i y.es mo 1 oral :i '/.at ion platform to localize com,en' and software. The present invention can also be used during the development of products or services, .implementing practices which enable quicker-arid more efficient localization of the product or service. The present discussion wilJ proceed prirnai i.ly with respect to translation during the localization process, but the invention .is not so limited and localization includes a wade variety of other accommodations for distinct markets as wel i . Prior to describing the present invention in more detail, one embodiment of an environment in which the present invention can be used will be described.
FIG!. . illustrates an example of a suitable computing system environment 100 on which the invention may be implemented. The comput ing system eriv.i ronrne:it 100 is only one example of a suitable computing environment and is not intended to suggest any limitation as to the scope: of use or functionality ol the invention. Neither should the comnut i nq onv : roruneni. 100 be interpreted as having any d< -p« i ac-i ; ••/ .-• t. t oqi- i re-men t re'la', ing to caiy ore or combination ol components .illustrated 'in the exemplary operat. ing environment 100.
The .'invention is operational with numerous other general purpose or special purpose computing system <'i vi r onrnenr n or configurations. Kxamples of
wei1 - known computing systems, environments, and/or conf. .i qurat ions that may be suitable for use with the invent! 01 include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set. top boxes, programmable consumer elect ron LCS, network PCs, mini computers, mainframe computer.;, telephony systems, d i str i buted computing eriv ir onmorr y that include- any of' the above systems or devices, and the like.
The invention may be described in the general context of computer-executable instructions, such a£ program modules, being executed by a computer. Gener al'l y, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implemen'. particular abstract data types. The invem .10:1 is designed to be practiced in distributed comput ::i] i >n v:i. r<'! imont s where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules are located in both local and remote computer storage media including memory storage devices.
Witn .reference to FIG. 3, an exemplary system for implementing the invention includes a genera 1. - purpose computing device in the form of a computer 110. Component, s of computer 110 may i:ic i u::':e , but ^ir- not limitod to, a processing unit " ;,: i , i ;'\'i-'\ er* rr'.'.-1 mory 13(', and a sy5-;'_ em bus 12] that
couples various system components inc.ludi.nq the
bus i.-. ' may be. air/ ol several types oi bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. By way of example, and not: ! • mi tat ion, such architectures include Industry Standdtcl Architecture (ISA! bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCD bus also known as Mezzanine bus.
Compute; 110 typically includes a variety oi computer readable media. Computer readable media can be any available media that can be accessed by computer 110 and includes both volatile and nonvol at i ! e mod i a , removable and rioii- removable medi a . By way nf example, and not. limitation, computer reaaah'..- media may comprise computer storage1 media arid communication media. Computer storage media includes both volatile and nonvolatile, removable arid non- removabJ e media implemented .in any method or i eoh'.io! - >q\ for -,; orago of information such as oomp Jt-r roadab!' i re* ruct ions, dat. a struct ures, program nodules o:r o: he.) data. Computer storage media includes, but is not limited t.o, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, cngica! versatile disks (UVD) or other optical disk sroiage, magnetic cassettes, magnetic tape, magnetic di.sk storage 01: other magnetic storage
devices, or any other' medium which can be used to
store the desired informal ion and which can be
accessed by computer .110. Communication media
typica; !y embodi.es computer readable instructions,
data structures, program modules or other data in a
modulated data signal such as a carrier wave or other
transport mechanism and includes any information
del iv>. ; y media. 'The term "modulated data signal"
meaiis i sig:u-i.l \ "ia:. iias one or more.- of its
character ist ics sot or changed in such a manner as to
encode Information in the signal. By way of example,
arid not limitation, communication media includes
wired rneaia such as a wired network or direct-wired
connec* ion, and wireless media such as acoustic, RF,
infrared and other wire.lesu media. Combinations of
any or trie above should also be included within the
scope of computer readable media.
The system memory 130 includes computer
storage rneaia j n the form of volatile and/or
norivo,a? i !e memory such a::-; read only memory ''ROM) 131
and rariGom access memory (RAM) 132. A basic
input/out, put system 1>3 (BIOS), containing the basic
routines that help to transfer information between
elements wit.fr. n computer 110, such as during start.-
up, is typically stored an ROM 131. RAM 132
typically contains data arid/or program modules that
are irnrneolate.l y accessible to arid/or presseritly being
operated on by processing unit 120. By way of
example, and not limitation, P'IG. 1 illustrates
ope rat : ML; system 1 J,'-\ , application progiarns 13 b, other progr.ut! [i.ociuU ::; i U>, ana program data I'M.
The computer 110 may also include; other removable/non-removable volatile/nonvolatile? computer storage media. By way of example only, FIG. I illustrates a hard disk drive 141 that reads from or writes to non rornovab'. o, nonvolatile maqnet.ic media, a magnet; ...c disk drive 151 that, reads from or writes to a removable, nonvo] at i .1 e magnetic disk 1 '^'2 , and an optical disk drive 155. that: reads from or writes to a removable, nonvolatile optical disk 156 such as a CD ROM or other optical media. Other removable/nonremovable , volarlie/nonvolatile computer storage media that can be used in the exemplary operating environment include, but are; not limited to, magnetic tape cassettes, flash memory cards, digital versatile disks, digital video tape, solid state RAM, solid state ROM, and the like. The hard disk drive 141 is typically connected to the system bus 121 through a non-removable memory interface such as interface 140, and magnetic disk drive lb'1 and optical disk drive 1 v-> are typically connected to the system Pus 121 by a removable memory interface;, such as interface 150.
The drives and their associated computer storage media discussed above arid illustrated i.n FIG. 1, prcvicie storage of computer readable instructions, data st ruct. ures, program modules arid other data for the computer 110, In KJG. 1, for example, hard disk drive 14_ is illustrated as storing operating system 144, apo icaticri programs 145, other program modules
146, arid program data 147. Note that these components can either be the same as or different from operating system 134, application programs 135, other program modules 136, and program data 137. Opera:: ,.ng system 144, application programs 145, other program nodules i46, and program data 147 are given different numbers here to illustrate that, at a m i n urn mi, they a re d i f f erent copi es .
A user' may enter commands and information
into i tie computer .110 through input devices such as a
keyboard 162, a microphone 163, and a pointing device
161, such as a mouse, trackball or touch pad. Other
input devices (not shown) may include a joystick,
game pad, satel iite dish, scanner, or the like.
These and other input devices are often connected to
the processing unit l.rO through a user input
interface 160 that is coupled to the system bus, but
may be connected by other interface and bus
structures, such as a parallel port, game port or a
universal serial bus (USB) . A monitor 191 or other
type of display devii ce is also connected to the
system bus KM via an interface, such as a video
interface1 190. In addition to the monitor, computers
may also Include other pc> r i phe ra 1 output devices such
as speakers \y> and printer 196, which may be
oonnee'f-d through an ou* pu: peripheral interface 195.
The computer 110 is opera.ted in a networked environment using Logical connections to one or more remote computers, such as a remote computer 180. The remote- computer 1.80 may be a personal computer, a
hand 'ielo device, a server, a router, a network PC, a pee.i device or other common network node, and typ i Cd i. i v includes many or all of the elements described above relative to the computer 110. The logical connections depicted in FIG. 1 include a local area network (LAN) 171 and a wide area network (WAN) 17".-, out may also include other networks. Such network! rig environments are commonplace in offices, enterpr.ise-w.ide computer networks, intranets and the Internet.
When used in a LAN net, work ing environment,
the computer 1'IC is connected to the LAN 171 through
a r.etwork interi.cice or adapt, er 170. When used in a
WAN networking environment, the computer 110
typically includes a modern 172 or other means for
establ ishirig communications over the WAN 173, such as
the Internet::. The modem 172, which may be internal
or external, may be connected to the system bus 121
via :.he user input interface 160, or other
appropriate mechanism. in a networked, environment,
program modules depicted relative to the computer
110, or portions thereof, may be stored in the remote
memory .storage device. By way of example, arid not
1 UMt.f1: ;i n, r !<;,;. i i : ; u s t .1: ,-j! es remote application
programs IB'j as residing on remote compur.er 180. It
will be appreciated that the network connections
shown are; exemplary arid other means of establishing a
commuii-Co-1 i ons link between the computers may be
used .
FLG. 2 i1lust ratOB a localization platform (or "iysterrO 200 whic;i .is J riteq rated into operating system 134 shown in FIG. 1. Localization platform 200 is shown with a number of different memory stores, and it will be appreciated that those memory stores car; be embod:i od in any of the variety of storaqi- de-vices shown in ]•'.!(;. ], or in different storaqes devices. System 200 :s snown interactively arranqed with ari application 202 that wi i. "I undergo localisation and a variety of input sources 204 that input various translations into the data stores iri system 2(0 throuqn data gathering component 20b.
System 200, itself, includes resource manager 206, layout engine 20H, translation memory ('I'M) matcher 210, download manager 212, translation memory (TM) data service 2] 4, machine translation (MT> .-••system 216, ti.lt.ers 2 1 8 , certificate system 220 and a pi jrai ity oi d.i i fe r XMI; dut.a stores. The data stores shown .. n I'Id. 2 inejude application rules data store 222, local arid private stores 224 and 226, respectively, term base data store 228 and term base translation data store 230, ontology store 232, trans, at ion memory 2.34 and common U.I elements data store 2 .i (.: . In general, application rules are used in the resources to specify application-rel at.ed rich data, whale fiIters are used to ensure that entities (or input, sources 204) contributing to data are only ab.1'-- '.' •'• modify • h.o dat.a they contributed, and that all data added are filtered based on certain rules. Of course, the- dat.a stores can be grouped, merged or
split d..i ;-f erent iy, in any desired way. The detailed operation of system 200 is described later in the specification with respect to FIGS. 2-6. However, a brief discussion of the operation of system 200 arid the items shown in KTG. 2 will now be undertaken.
During runtime, resource manager 206 Loads the resources associated with application 202 into cache memory 207 (similar scenarios can be found for content and other- type of Iooalixab1e data) . Resou i' v''--' manager 2 C 6 also ; eceives ca.ils from appj. j(\j' .on 2'.i2 {or. re-sou rces . Resource manager 206, in response, first loads a string in a language that is associated with the; locale currently selected by platform 200. Resource manager 206 decides which version of r.he resource to load based on a variety of criteria such as availability, confidence level, user settings etc. Resource manager 206 may decide to invoke TM matcher 210. To do so, resource manager 206 Ceil is TM matcher' 210 to obtain a translation (or localization) of a specified resource. TM matcher 210 may also have- pre populated resource data to prevent, run-time delays in resource loading; the pre-popui. a t ed information w:i i 1 be tagged wrth relevant informat.on such as whether it came from MT system 2!6 or I'M matcher 2 !1 0 , its confidence source, etc. Th.is ... s discussed in greater detail, below. If TM matcher 210 does not return a match for uhe resource, resource manager 206 cascades through resource iaJlbaok:; so that translation can be provided in a a : I L (..•!••:-r.'. , ral/. back language. This :. s a . so described
i.n great, or detail be .1 ow. Also, in one embodiment, both resource manager 206 and TM matcher 210 have fallbacks. They can be different from one another and although the results of TM matcher 2.10 can influence resource manager 206, resource manager 206 can decide to fallback without call'ing TM matcher 210 .
It is not uncommon that changes made by localization on strings forces changes on the display items containing those strings. Common examples include the need for more space (longer strings), changes jn the flow of a dialog (right to left languages vs. .left to right languages) , etc. The adjustment process can happen! at localization time, at rendering time or both. The most common case is thai. re a rrangement. and resizang of the "items in a dialoo is needed, and the process is referred to as auto layout. The amount and correctness of the i n forma t.j on provided during the authoring process wi1 a influence the results produced at runtime.
TM matcher 210 is situated between various sources, oi t ranslations and resource manager 206, which requests content: to be matched (or translated into -another language or otherwise localized) . TM marcher 210 searcnes the available sources (and those seur^r-r; '*hv::h arc.- trusted by r. he application 202) to linn a translation which hat; trie highest, confidence scoro ass x::.i at ed wi th • '. .
Again, a more detaJJed discussion of the operation of. TM matcher 210 is set out below with
respect to K.IG. 4. Briefly, however, TM matcher 210 accesses rules associated w.i th application o:r content 202 in application rules data store 222 to ensure that whatever localization is provided back to resource? manager 206 does not. cause application 202 to malfunction. TM matcher 210 first, searches local data store 224 and private data store 2,26 to see if a localization already exists. Local data store 224 holds translations or other localizations of resources which have already been localized, in case the request, being made by resource manager 2.06 is one wh.ch has been made before.
TM mat crier 210 also invokes TM data service 214. TM data service 214 accesses translation memory 234 which contains translations or other local i /.at ions of a wide variety of different things, such as common user interface (in) elements stored in st.ore 235, as we-'l I as defined terms stored in term base 22. b, arid ontology store 232 provides context information for application 202 arid an associated dotna i r .
if no local inations already exist either 1 ••••-.:i! I v <~ri r.r ; r<. 224 or 2/:6, or remotely on store 2.34, TM matcher 2,0 can access an optionally available machine translation (MT) system 216 (or one of a plurality of available MT systems) to perform machine translation on the content to be? localized. The decision by TM matcher 210 to .invoke MT system 216 car: be based on user" preferences, trie avail abi i-ity of a ;rran.sl ation, the quality of
available translations and NT-provided translations, etc. Machine- translation system 216, in one embod.i meri1. , is any commercially available MT system and i £; i', lustrativeiy only utilized for translations if there were no matches with a higher confidence level from any oi the other memory sources (such as TM data service- 21.4 and the local and private data store?: 2 2'1 and .">;•!,) .. "he fact that MT system 21 f, can be sjbst ant , -\\ ly .iny M'!' .system, or any system capable of using the data in the different stores (e.g. previous translations) to produce translations, greatly enhances the extensibility of the system, because new or' different MT systems can easily be utiil'/ed oy 'I'M matcher 210.
Of course, the MT system extensibility is not the only extensibility in the system, but is only one example. Some other examples of system extensibility include content authoring editors, ' anqii.'.iue p.-'i r sf rs , third party translation mernor ; es , comniun i * y editors, development authoring environments, connection t.o web services, etc. Extensibility :i n these areas and others is supported by the APIs ;.n piat f orm 20 0.
Iri any case, each of the translation resources called upon by TM matcher 2.10 will illustratively provide TM matcher 210 with a confidence- score (or translation rate, recycle rate, Similar measure) indicative of the
then select the '. ocal i zaf ion or Lran.slar.ion from the trusted source whicn provides the translation
aro then downloaded by download manager 212 to local store 224 it they are riot already stored there.
In one illustrative embodiment, a wide variety of input: sources 204 can provide translation inputs to trie various memories in system 200. For example, vendors or software manuiacturers that develop operating systems that incorporate localization platform 200 will illustratively provide trusted terms to the various memories. However, in one omnod i merit , input sources 204 can include the comni: in > : y at large and r.he development community. 'I'he community at large allows anyone that, performs localization services using system 200 to provide a suggested localization of a piece of content to the appropriate memory through data gathering component 2 ():"•. r;'K- ;nput sources 204 may also include the development community which will (as opposed to the community at: large) store translations provided only by developers official !y recognized as such. Thus, it can be seer: that platform 200 allows the local i".,it i on process t :j be opened up for community
i rrvc.. x/cMiu" i,'.. ;:n a vet / large scale- as well as ad~justea
at a grain., la r level (e.g. user decides what to trust and what not) to meet. the user's needs and expect:at. i ens .
Further, data gathering component can dynamical I/ (during set-up, runtime, configuration,
etc.) intermittently collect, new data from a variety of input sources 204 . The new data can of course be new resource data as well as pre- local i zed data or trans; at ,-ir: memory da:, a, to support now applications, new domains, and to perform self turning of a running operating system. This embraces adaptability and accuracy of the system.
How e v o r , a p a r t i c u J a r a p p 1:: cat i o n
that ''or instance, developers arid other contributors might be arjle to obtain • he right to siqn their cont.ent which is relative to the tier they are:1 in, in relation to their application. That means that a certificate of the developer of an application puts that developer in the developer tier foi * hat spec .. (• ic app i : cat i on and all other con; r'itMtors -re cue t.:: e r down in trie "other 1SV",
community or user t.er. The certificates can be trusted relative to the tier of the contributor. For instance, a giver: manufacturer might always have the highest tier, but from that tier on down the user can determine a trusted tier arid within a tier trusted sources. The indication as to which localisation content is to be trusted, by any given application 202 or by any user may be stored in the application rules data store 222. rhe certificates help to establish a t r u s t system f •:) r t r a ri s 1 at: o n s .
The user or developer can also choose hierarchical trusted sources. For instance, based on the origin of the localization content, a user can determine whether to trust only the OS manufacturer, and if none is availaole, then to trust independent software vendor translations, and if those are not available', only then to trust the development community, and so on. In one illustrative embodiment, this hierarchy is established by default, but a user can simply accept or override it with persoral settings. Such settings can be implemented i_n the application rules associated with each application or with an individual machine running the app i ication.
A. so, !• should be noted that private store 22h is HI ni hir to :.oca\ store 22-1, in that it. resides on a user's data store'. However", local store 224 is i i lust rat. : ve 1 y a system wide store while private store.- x26 is a store which can be used to indicate t. r;iste.:t local : nation cor.tent corresponding to an
individual user Lncludinq data entered by the user for the'ir own private use}. Therefore, each individual user may identify different trusted 1 oca 1 -, •/,at iori cont en 1. . That content is identified to that particular user in private store 226. This allows an individual user to customize the localizat i on process even further than that associated with an individual application. For instance, the user can make changes to his or her own appiio.-u ion;;, as needed and till owed by the application- The user can also snare ioca 1 or private stores back to the community.
In addition, certain translations can be locked so that they are not modified. This can be cru Icaliy .i.mportant ~or avoiding potentially malicious translations. For instance, one of the input sources might provide a malicious translation which would translate the term "Click here to -format your hard drive" as "Click here to continue."
Once "I'M matcher 21 o obtains a desired .local , .• ..i' 10:1 f. vr ' he request .! rorn resource manager 206, it applies filters 2'i 8 and application rules from store 222. Filters 238 illustratively define terms which are riot to be placed Lri any localization convent in any given language. For instance, some users niav desire to filter obscene terms or any other' objectionable content. Tnerefore, filters 218 are applied prior to using the localized content requested by resource manager 206. It. will be rioted that applying f i i tors (as well as any other type of
validation) is one step in localization and can be applied .it many steps i.n the process, such as editing, down.l oadi nq, using, etc.
For instance, validation, in general,
occurs; whenever two components exchange data, unless
the components completely trust one another, and the
channel used to communicate is also t.rusted (such as
against surreptitious activity). Therefore, for
instance, if resources are downloaded from a trusted
source, and the resources contain a valid signature,
no other validation (other than validating the
signature. needs t.o oe done. If the source is
trusted but the Cile is riot signed then the channel
used t.o transport the information is evaluated to
determine whether it is also trusted. For example an
unsigned file that has been downloaded from the
1 nt. e r T < ••! :. s mere i i ke 1 y to be tampered with than an
unsigned tile that a user copied from another folder
in the same computer. Depending on several factors it
may dec.ide to undertake a quick functional
validation, or souse additional content validation may
be conducted, such as checking for offensive words or
to ensure terms in the original resource are present
on the target resource (e.g., so "menu" is not
translated as "folder").
App'J icat ion setup/con*" iguration component 240 is ,rsed during setup and post setup cor.tigurat ;on. Duri.ng setup, application 202 registers Its resource's with "local resource store 224. Component 240 .illustratively exposes a user
interface which allows the user' to localize the appJ icat ion t.<) ,-. target "language supported by the plat t. Mil ;! i' o not abroad'/ local i zed . The user interface can a.Uow the user to explicitly select the target:, language. On-demand localization component 241 passes these requests to resource manager 206 and also possibly to I'M matcher 210.
Legacy app 1 icat ion 242 represents applications that were developed and are not aware of platform 200. Compatibility layer 243 supports existing resource interfaces used by application 242, and redirects calls lo resource manager 206.
I'M i.l. •- is a flow diagram which i 1 i us t rates the operation ot platform 200 in greater detaiJ, in accordance; with one embodiment of the present invention. During run time, a user first selects or Launches an application 202. This is indicated by b'locK U'tO in FIG. 1. Next, in this embodiment, resource manager 206 loads the needed resources associatec with the application 202 into cache memory 207 (or , nto another storage device, all of which will he referred to herein as "cache", in this con' ext . This is .noiCriteo by block 302.
In the background, tho operating system (and .r pa r t. i^ul cr the Localization platform 200) begins t rans;a' ing the resources in cache 207 to the desired language. In doing so, platform 200 implements the app] i cat. ion rules 222 associated with application 202,, and the trust. model (i.e., the trusted iocaJ ination sources) associated with
application 202 or the user (whichever apply). Resource manager 206 invokes TM matcher 210 for the resources storeci in cache 207 to obtain their local i.zeo va.ii.ie, iioca ! .1 :'at ion of the resources loaded into cache 207, in the background, is indicated by block 304, in FIG. 3.
It should a1 HO be noted that populating the local .zed resources Cor an app 1 i cat: ion need not wait, uni : 1 r ...nit i -ne . instead, "it can be done during set -up or a i einother \ i me. in addition, some parts of localization can be run at. run-time while others can be done at setup or another time. For instance, some of t. he more computationally expensive or time consuming t asks can be performed iri the background, dui .1 rig setup or at another time, while the quicker tasks may be performed at runtime. In still another embodiment, the tasks can be assigned (by the user) to be performed at. any specific time and the status of these tasks can be displayed as well .
As the resources are localized in the background, not only are the localized values stored in cache 207, bur t. hey are also place-id in local store 224. Therefore, the next time that application 202 is launched, t. he localization process will be much. quicker, because aJl of those resource values that have been localized will already be located in local store 224. Thus, TM matcher 210 need not search TM data service 214 or have T.he values translated using maetsine translation system 216, because the localizations w:;ll be remembered by the:1 system.
Instead, they can sinriply be retrieved from local store 224. Stoiing the translations in local store 224 is indicated by block 306 in FIG. 1. Also, on demand, e-ntJ.ro translations can be loaded into local store 224 using download rnanaqer 212.
01 course1, the present system can also cneck lor updat es. For .instance, a non- ideal trans.! at ion might, initially be chosen because none better; can be located. Later, however, a better trans]ation might be loaded into one of the memories by one ot the sources 204. The resource can then be periodically updated to accommodate this.
Similarly, code1 updates rrriqht: make previously 'local IXC-IK! resources invalid. Therefore, in one embodiment, code cManges trigger relocate /.at ion of: some or all of the resources.
As the resource translations? are made, layout engine 208 identify certain translations that wii.. require modifications to the layout of the display i o'i the application. in addition, the fonts used in the source language in the application are mapped to the fonts in the target, language. This can be done by layout engine 208 or other components at runtime or at a previous time. .Layout and font mappi::g is rid .i cu' ^d by block '-;0-i in FIG. '•< .
Fi i this way, localisation p lav. form 200 .in the operating system continues to localize; the resources associated with the application 202 and stored in cache 207. It may happen, however, that the app 1 cat. .i on makes a request for a resource that
has not. yot been ...ocal i zed in the background. Such a request is .indicated by block 310 in FIG. 3. Resource manager: 206 first determines whether the requested resource has already been localized and stored in cache 207. This is indicated by block 312 in F'IG. 3 . If: so, the localization of the requested resource is simply returned from cache memory 207 to the appli^a'. ion 202. This is indicated by block 314.
Ilowevcir , if the resource has not yet been localized in the background and stored in cache 207, then resource manager 206 .requests localization of the resource from TM matcher 210. TM matcher 210 then requests localization of trie resource from the various, sources, which it. has access to, arid returns the localization of the requested resource. Invoking the TM matcher 210 is indicated by block 316 in FIG. 3. The operation of TM matcher 210 is described in more detail with respect to FIG. 4.
By localizing the- resources in cache 207 in the background, localization plat.form 2CO departs sig:,j! icant;y from prior systems. Prior systems load the Criche w •': h the resources. However, this leads to sign.it ic ant disadvantages in localization. It the localization plat.form waits for the application, to request i resource in order to localize it, on the fly by invoking MT, t nis .1 ,ike...y results in an undesirable delay i.ri the operation of application 202 or the results wii. .1 be limited by the set of algorithms that can be used in such a constrained environment (performance requirements can limit
accuracy) . Current; machine translat i on technology requires approximately one half a second to translate !isn:;ps u.>; ;t o log 3 es'' . It: can use metadata to decide vwhioh pieces of" data in the stores are supposed to constitute the search space (such as domain area, aufnor, approval status, or other metadata) . It can look at restrictions (application rules/ ', a 1 te:t s} on the string itself arid take
advantage of those to produce a better match or a match th.it will be more readily validated. Of con ;so, ; nese features are a I 1 optional and more may be:- added or these can be changed or deleted from the 'TM mat che.r operation, as desired.
FIG. 4 is a flow diagram illustrating one
embodiment, of the operation of TM matcher 210 in more
deta.i 1. , : or : .he sake of example only. Resource
manage: l 0(; first provides TM matcher 210 with a
request for localization. This i.s indicated by block
350 in F.G. 4. TM matcher 210 then obtains trust
model information for the current context. In one
embodiment, the trust model information is stored
with t :.[.;; da la itself, but might also be stored in
private store 226 or in any other source that
identif ies any other items of context upon which
t r u s t. e d ; o c a 1 i z a t. i o n s o u r e e s are to be d e t e r m i n e d
given the present context. The trust model
information can include an indication of which
sources arc trusted, or a list of requirements which
must be met for a localized item to be valid and
considered. This assists in update scenarios as
well . 'Ipdates on code may change the set. of.
const ra inr s t. hat resources nave to meet. Those
changes will require re-validation of previously
assumed valid resources. This is indicated by block
352 in KM.',. 4.
TM matcher 210 then illustratively requests localisations of the resource from all trusted locali/.at : on sources, but may do so in a given order.
The -. j ci(: r and trie number of. sources chocked
illustratively varies depending on the circumstances
(such as whether- the local 1 zation is taking place at
run turne, setup time, in batch processing, etc.).
This ; s . ndi cv.it ed by block 354. In other words, in
one embodiment, 'I'M matcher 210 does not even request
a translation from non trusted sources. In that
ins?, anno, assume that, the user does not wish to trust
trans.'i at ions from the community at large or from the
dove1. opine nt community in input sources 204. TM
mat'.'hot .!'!0 will only ask for localization content
which originated from trusted sources, and will
thereby exclude all of the localization content
provided by the community at iarge and development
community. Of course, the TM matcher 210 will modify
the sources from which localization results are
requested based upon the trusted sources given the
present . :i : ,-!: ;on is correct given the input in trie source l-in.g-.iaqe. it is riot. ..important for purposes of the present invention what particular measure is used to indicate the confidence associated with a translation or other localization. In the ill.is1 ^:-r Jvr- °mb''>di.ment , the scores from all sources
either: use the same measure, or measures which are correlated to one another, so that TM matcher 210 can determine the relative magnitude of the scores. Returning the confidence scores associated with the trans 1 fn t .1 ons or localization content) is indicated by block 3.b6 in F! 0. 4 .
TM matcher 210 then obtains the localized content (e.g., t lie translation) from the highest scoring trusted source. This is indicated by block 3b8. Also, TM matcher 210 can select localized content based on other or additional criteria as well, such as the time required to obtain the localized content, how close the localized content is to the target market, validation criteria or other or i t er i a or any cornb i n.a t ion of cri tor i a . In addition, the TM mat. cner can retrieve localization content, i. '.:om mult iple sources arid combine them.
Once t.iie translation. is received, TM matcher 210 applies the fl.lt ers 218 and other validation to ensure that the localization content (or t. . i ans iav ion) is appropriate given the application and context and any lilt err. or validation criteria desired by the us ex . Applying the filters and other validation is indicated by block 360 in FIG. 4. TM matcher 2 1 0 a i so :i 1 lust rat lively app 1 i es the app !;ca' i i ' >n rules such that the localization content
operation oi. tru.- application or cause improper operation or otherwise crash, the application. It should also be noted that some of the filtering and
vaJ idol .;on processing can be pro-computed, rather than wa.; ' in--.! to port orrri a 1..1 necessary steps at this point in the process.
Once this is done, TM matcher 210 returns the result to resource manager 206. This is indicated by block 362. It will be appreciated that thus process will be performed anytime? TM matcher 210 is invoked by resource manager 206. Thus, the process wi.ll be performed when the resources in cache 207 are being localized in the background, and it will be performed when an application 202 makes a cal ;. ;:;r a no: , as yet, local L/.ed resource.
In "it ner case, 'I'M matcher 2 TO may find that there is no translation available in the desired language or the confidence scores returned are below a given threshold, but that a translation must be undertaken using machine} translation system 216. At that point, .in one embodiment:, resource manager 206 is nor;it. ed, and may request TM matcher 210 to look for a translation in a fallback language. For instance, if the target language is Catalan, app i i'-af : on 202 may request *~ raris'l at i on of a res1' M.I r • '< ••, but one may r;ov. be available in data Ian. However, resource manager 2 0 6 may be configured such that Spanish is a Iirst fallback Language to Catalan. In that case, 'I'M matcher 210 returns to resource manager 206 indicating that no translation is ava Manic :, n Catalan and that machine r ransl at Lori system ,;lf> must be invoked to obtain such a trans; at ion (alternatively, M'T system 216 can be
Called on the first call by TM matcher 210). Resource manager 'A 06 may, instead of taking the performance penalty associated with on-the-fly machine translation, simply request TM matcher 210 to return a translation of the requested resource in Spanish. If one is available, :i t is returned by TM matcher 210.
Of course, a;,; indicated above, the fallback ; oca I '.•:•/ 1 ariiji.ia.:jt:H may be hie:arena 1 1y cascaded to any desjred degree such t,hat various locales are fallbacks for various other locales, the ultimate fallback of which may be the source; language. Thus, if the ultimate, fall back is reached, instead of providing a translation of the requested resource, resource manager- 206 simply returns to the application 202 the requested resource in an ultimate fallback which is ensured by the platform so the application will not crash or lose an interaction point with the user because of tne pi at-form.
'The user can a.l so illustratively se;t how the fallback hierarchy works. For instance, the user c a n i r i d i•:.: a t e t h a t: d i s p 1 a y i n g a g r o u p of re. sour c e s together (e.g., a dialog with several strings) can show parts of the dialog in one language (or local -;:ea t. c. '.mo market ) and parts .in another (e.g., in the.' fallback). Other users may indicate that the displayed group of resources is to all be in one language (01 localized to the same market) .
It w i i .1 also be noted that the user need not launch the application t.o have it: translated by
platform 200. The user can simply select an
appiicatiDH or other software component for
local i^at ion, and piat.iorm 200 can localise It in the
background. For instance, in one embodiment, the
5 user: .1 :ght clicks on an appl i cation arid, from a menu,
selects "Local ixe" . Platform 200 then begins
1 ocal: 7. i nq the application in the background, storing
the localized content in the local store. Content can
cilso be ;ocali/,ed in the background. In one
10 embodiment the user right clicks on a document that
is stored in the f i. i e system or ori a server and
chooses "Localize". The localization platform will
localize the document in the background. The same
applies to documents that are downloaded iron1, the
I i> int e met .
In addition, when an application is installed (or at a later time) the user can select a plurality of different languages for installation. These languages are. then loaded into the local data 20 store 224. 'The translations can be stored on the product compact disc:, or other medium.
FIG. 5 is a block diagram i 1 lust, rat ing the components of platform 200 .in trie development, context . A large number of items are similar to <-.L: those snowr; in r'JG. 2 arid are similarly numbered.
I'M G. b shows assistance platform 380 and
development component 382. Development component 382
can be any desirable development, component such as
V-sua. Studio available from Microsoft. Corporation of
30 Redmond, Washington, or any other desired development
compo/ier.'. t:c r, ,: ,it hor ing software. Assistance
piatform 380 assists ir. authoring content by
interacting with one or more components ot platform
200, sucn as translation platform 381 to ailow the
developer to develop a product which has a high
recycle rate, and thus a greatly reduced cost for
Localization into different languages. Doth
development component 332 and assistance platform 380
consume services provided by platform 200. in doing
530, development component. 382 and assistance pi. at: form
380 i :'i conjunction w.i th the other components build i.n
certain practices into the front end
development / author i rig process which will likely
greatiy enhance the ability of the product to be
local i/.ed to enter into various different markets arid
thus to greatly increase the return on the
development investment.
Build component 384 uses the information provided by the- localisation platform arid/or assistance plat lorrn 380 o.t any other content authcrina t C.H .• 1 t nut. can access the i oeal i xat i. on platform through t.he APIs and t. he application rules in data store: 222 and builds application 202 as well as content documents.
it will a 1.30 be riot, ed that the present discussion of FI'-I. '> proceeds generally with respect to the developer developing an application or an author authoring content. However, the system can be sed for a variety of things regardless of the type
of content or software the developer is developing or t he a ut ho r i s a ut ho r i ric \.
In accordance wit.h one embodiment of the present, invention, there are two ways for a developer or author respectively to use development component 382 to develop software or assistance platform 380 to de?ve.l. op content. The; first is to use a feature in her au: hori ng/deve! opme.nt environment that, through a platform application proqramminq interface (API) or other similar mechanism determines whether any similar content or software has already been developed, and is stored in any of the? memories in platform 200. The second way is for the developer to simply develop the soft, ware or content (original or not) . in the 1 alter case-, pi at form 200 simply acts to provide the developer with feedback as to the recycle rate (e.g., the amount of content/software which can be translated into different "languages in pi at form 200 given previous translations) of the content /software and to suggest practices that will likely increase the recycle rate and also to suggest practices that will inhibit the application from malfunctioning after local ization.
In accordance with the first embodiment, "ho ••onveiu author provides an :rput through ass ;;* .:I:K'" platform 3cU, and assistance platform 380 calls an API or other similar mechanism to author a resource. This is indicated by block 500 in FIG. 6. Assistance platform 380 then invokes TM matcher 210 to across local store? 22 ••! and returns all types of
resouicos that a ; red civ have t r:\ms J at i ons . This is inciicai. ed by block bC)2 in FIG. (> . For .instance, the developer plat, form may invoke an API indicating that the content developer wishes to author a resource. In response, the platform 380 returns an indication of: all of the different classes of resources which are contained .in platform 200 and which already have translations into a variety of different languages. Assume, for example, that the result from the platform and preBC-mted to the user by the developer platform are the classes "menus", and "error mess age•-'•" .
Through the exposed functionality in the API, the developer can choose the "error message" classes and assistance platform 380 requests this information of platform 200 (it may be store in any memory' then .returns all of the different, classes of error messages wluoh are contained .in platform 200. The developer then selects one of the? classes of error messages, and platform 380 returns all of the specific error messages associated with that class. The uaer can then s.inply select one of the error messages, whlc!-, ii^s already rieeri authored, and for whim iocai ization will already be highly efficient (e.g., because, it has already been translated into a variety of different languages or otherwise localized). The developer selecting the type, class and specific resource, if available, is indicated by bl ock L'04 in F 1'G . 6 .
It will, also be appreciated, of course, that the specific, exact message which the developer wishes tc author may not be already available. In that case, the user can select a very close message and modify it. The modified message will likely, in many cases, be able to be localized quite efficiently, because the majority of it was already in ex . s'. enct • in I oca.I. i /'at ion plntLorm 200. In any case, choosing a similar, not identical message will result in a confidence penalty. Modifying a chosen resource is indicated by block 506 in FIG. 6.
This type of recycling provides the author with a high degree of f'lexibi.l ity relative to a prior art localizer that, occurs after development. For instance, the author can change the number of placeables on a software string, while a traditional loca i i/'.er is far more restricted. Also, the author can entirely replace a source sentence (assuming the key . t-r::is are maintained; while a traditional 1 oca 11 :-.;e r may not be able to. Consider the sentence for an error message.: "file {0} does riot exist." The author can change this to "file {o} on drive {l} could not be found.", whereas a conventional locaixzor cannot use t.he trans! at. i on of the first sentence as a translation for the second one because, without. access to the code, the conventional local i/er is not able to change the underlying assumpt. ions in the code regarding the number of pi aceat.u es. The recycling may not only be done with respect t.c text found in messages, but, can also
be dene with respect: t:o common :,JI elements in datd store , ',(.';. k<-us rig p r, o r III elements also enhances t. he- reeycif: rate f.ind Icea.^ i/.af .i on of the product.
During development, the developer may also wish to provide ontology-to-ontology store 232. Ontology is a specification of a conceptualization arid describes the reic.iti.onsh.ips between terms, which al 1 ows semantic encoding oC content., and str ings. One embodiment of an ontology is set out in U.S. Patents No. 6,253,170 and 6,098,033. Another description of ontology is set: out in Grubor, A TRANSLATION APPROACH TO PORTABLE ONTOLOGIES, Knowledge Acquisition, S ( 2 > : 1 9 h 220 ( !. 9 9 5 ) .
In general, words are translated differently depending on context. Specifically, words or terms car be translated differently depending on application context m software local i 7at:.< on . The localization platform 200 has access tc semantic- data in the form of ontology data store 282, that describes the relationship between terms. Ontciog.i es can be- generated manually by entering semari?" .1 o informal ion together with tne word or rein, or aut oma:., i ca.i i.y DV applying algc;ntnms that, are auie to determine the semantic context by the proximity of a words or term to other words or terms. The data store 2B2 is illustratively populated by structures and app i .i ca t.io.r; context derived from the
resou.; e format. , The type.; of semantic encoding in
ontology store 282 alLows platform 200 to di sarrtb iguate the semantics for the resources to be
translated, while:1 also providing powerful search capab; 1 it. tos, because it allows for query disambiguation a?; well. Translation platform 381 determines whether. disambiguation is required at. block SOB in FIG. 6. II BO, ontology store 232 can be accessed to obtain disamb1quating semantic inf ornar i on, or assistance plat.form 380 can request the i.t: samb i guat ;i ;iq semantic information from the author, r.he .same way the development component 382 can do the same; to the developer. This is indicated by block V] 0 in F i G . 6 .
As the developer continues developing the
product, each of the authored resources is subjected
to a .localization rate estimate by translation
platform 381 in platform 200. In estimating the
locai i,:.:11 i on rate of the authored resources,
trans:.j! 1:3:1 platform 38] ideint.ifi.es the percentages
of 'h< rate for the authored content. This is
i.nd:i •.",•)•, e.'j by nio-'K b!6 in FIG. 6. TM matcher- 210 then Mccesses its .localization sources and returns a recycle rate for the newly authored resource or content. This is indicated by block 518 in FIG. 6.
At. this point, p lat form 200 can also be used ;• c notify the author as? to practices which may help the author improve the recycle rate of the product under development, or to alert the author to cert air: practices which may cause the application to ma.i f urn'M" i on once it is localized. Returriinq these hint;- .is : mil-M I e:i :iy block 520 .in FIG. 6. In one ernbod 1 ir.em: , these hint:.s are- provided even if the source of the product is being re-used. The fact that it is being re-used may, of course, mean that some of the checks have alreaidy been performed.
Some examples of practices that might affect recycle rate or application function include, for instance, writing .orig strings, hong strings are not just harder" to understand, they are also more difficult. to translate. In addition software present ••• rhe risk of a buffer overrun tha1.: would crass"! ' Me ctpp'l .c a t i or. . Ot her pract jeep that mav affect: recycle rare 01 application function include the use of special, characters or the use of improper, or informal grammar. Using proper grammar constructs leads to a great increase in the ability to translate the text. 'I'M matcher 210 thus provides a real time feedbacK as to the recycle ra* e of the code; and practi ce tips.
Also, platform 200 can take? certain actions to reduce a negative affect of these problem areas in the content under analysis. These actions will reduce the I ikel nood that' an app] i.cat ion will crash after underqoinq local .zation. Platform 200 can alert the user that these remedial actions will be taken.
A number of other .items should be noted with respect to the present invention. First, it illustratively provides hot key automation, 'rransl.-i! i cm pi at form 381 .illustratively tracks hot keys '"hat are displayed on any given LIT in order to avoid two functions being assigned to the same hot key on a given U! . Translation platform 381 can be invoked to select a hot. key automatically, or it can be s imply invoked to check, to ensure that no hot. key dup.j. i c i i. i on is undertaken on a qiveri Ul . In order to be abJe n> select or suggest a hotkey to the user the platform needs information regarding whi.ch items art; available to tne user simultaneously so it can avoid repetitions. That information is closely related to the OIK: needed to render the information into the u s e r's c ompu te r.
The present, invention car; ai.so provi.de validation and simulation of a runtime environment. Once t: tie developer has authored the component, the deveiope/ can invoke an API on development platform 362 ana platform 200 will simulate a runtime e n v i i' o time n t: u ride r wh i c h .1 o c a 1 i. /. a t i on i s r e qu i. r e d . Trie runtime simulation allows the developer to
after IL has been Localized. This allows the devel.oper to scan for bugs, gauge the aesthetic: appeal or the displays and to make changes, as desir en,
Tlu' present .invention thus enhances the ability ... t :i developer to reuse already developed content. This significantly enhances the recycle rate and Localization of the product.
Further, the present invention provides a system that intelligently combines localized content from trie operating system, applications, the community and third parties, and from machine translation. The resource manager .loads resources of an application by returning requested resources accord:; rig to needed ] ariguage or other cu.ltural or market cr'. t <° r ; a f torn a vat iety of sources or data stores (also referred to as localization content component s ) ,
Ln addit. ion, the localization platform can be used 10 provide localized data to a wide variety of requesting entities, such as applications, browsers, search engines, resource "1 evaders, authoring tools, etc.
Also, by allowing the community and corrimut i : y at. i-jrge to suggest locaJ ization alter:,at . ves , the ere sent invent ion allows community standaid localization to be defined, arid, at times, enables '• oca . i 7. a t i on into some very small markets. For instances, the present .invention allows a user to .Localize u;i English language application for Swahili.
'1'ne user may provide thin localization back to platform 200 as a suggested translation of the various resources i. n the application. Other South African users can cnoose to trust this localized content arid download it. in Swah.i 1 i , or to localize it themselves or modify the localization and provide their own local tzatiori back to platform 200. fn this way, th<-.' appi i cat ion can be loca.; i zed and revised and made available in a market, where 11 might otherwise not be duo to strial 1 market size.
In one ornbocl. merit. , when an input source 204 provides data, data gathering component 205 also records metadata, such as origin, usage, context information (such as resource versioning), confidence level, artr.ibut.es, machine translation hints, etc. Other data can be collected arid sorted as well. Also, in one embodiment, only the input source 204 that provided data can change that data.
The pre£>..'nt invent. 1 on not only provides tor down.; i itjd i ng translations from a community, but. upload , ng them as w<:-i in addition, source' strings can be.- uploaded/downloaded in a sitni lar manner.
It will 3..i.so be noted that third party companies and comrnun, t ies can add new source arid translation memories to platform 200. In one 11 1 us:, r .-_i t. : YO emboo ; merit , plat, form 200 provide:.; a web page or web service tnat enables the addition of a new source term and its metadata. The users will illustratively be authenticated so that platform 200 can deterrn.ne the source oi each newly added item.
In a ci d 11 i on, p "1 a t f' o rm 200 w 111 illustratively work according Lc a published schema (such as an XML schema) which enables users to upload several st; rings at once. Again, the source of each string is known since every operation may require authent : cat j on Such. source strings can i 1 1 ust rat .1 vo ! y be added with one or more trans: ci: K>ns. The platform 200 operates similarly with respect to terms in the term databases.
Also, in accordance with one embodiment, commuri. i r i es arc1 able? lo provide translations to the source st. r.,.ngs in platform 200. When editing translations, the metadata present in the source is illustratively available to the "translator" and the metadata is enforced prior to accepting the translation. This can be done oven: a simple web interface. These translations can be used by other people, ;f t h> • user chooses to share his or her t rans .1 at joiis w;Lh ' lie community.
The? present invention also illustratively allows the- community to review translations that already exist on platform 200. This allows a source of v r ans ia:. ,L.ons ;: •.; determine how many times n.is or her translations have been chosen by other users. This will enable .input sources in the community to build a name for themselves based on the quality of work, arid this dr.ives input sources to do a better tub so as to. become more valued in the community.
In a;'Co? danc:e with yet another embodiment of the present invention, w.hen a developer uploads an
app 1 i cat. i cvn Jor translation, the developer is proviaed wirh an oppoj t urn.', y to enable end users to down] oa •:! their own local i.xed version of the product. If that option is enabled, the user can log into platform 200 and pick which language, engines and translations to use i.n order to generate a personal version oi t.ne product.
for example, the user can ask for the "xyz" vei'sion of a product; while specifying only exact, matches of translation engines using translation memories that the community (or a specific user) has approved. Thin process can be periodically repeated '..o or-r.a.in .1 ;. i giier percentage oi resource translation. Platform 200 can also provides for notifications to users via mail or other alert services when new translations are available.
In accordance with another embodiment, a r h i rd party can add a new source veri f i cat j on (or transit' ten} eng..iro to platform 200. As discussed above, a developer can submit an application to platform 200 to ciet.erni.ine whether am application is highly 1 ocalizable. Third parties can write new engin'-'.'. ' ( f';uprjor! this. Whc-i' a t.nird party develops an eru.'in'- t t,,it. m> ••••' r, t he c:r ;! er ;a t. cj per'forni source? ver'i. i" i; •.••»r ion o . g . , wnen ; •.. ; ;rip 1 ements a desired .interface:) , thon t.he '..hi rd party can upload it to platform 200 and charge back for' users to download the engine. As with the other- parts of the processes desc't . bea w.th respoon to the present invention, signing and aui henticat ion are illustratively used to
ensure that the source of the engine is known and the user has decided to trust that source.
Trans 1 at ion engine's can be added in a similar way, but may illustrati.vf.ily run on the server implement i.rig platform 200 with steps taken to ensure that the translation engine does not corrupt any already existing translation data. In addition, the presen' i riven', i on performs globalisation and inigui::' ... ohecK:- t o ass . 5-'. aui.ho.rs.. The present i nverit. i.on a i so ,.;.: Low;; the community to help an author1. For instance, the community can be asked for a source string on a dialog box in a certain domain, where the source string can be easily localized. This assists the author at the outset in authoring highly ioealizablo content.
It should also be rioted that, while certain functions are assigned to certain components in the embodiment described, that need not; be the case. The fund ;,-ns oo.; id r»- periormed by different components and so some components could be deleted, modified or added, all within t.he scope ot the present invention.
It can thus be seen that the present invention consolidates data for localization from past local rzat::ons of a wide variety of products and a w.i de variety of input sources;. Instead of each application or product having its own memory of translations, which are not accessible by other products, the plat form 200 makes this information availacle, as desired oy the developer or user, to subsequent.. Ioealixation of different, produces. Ir.
als-w changes the ! ocal izcit .1 on process such that end-users nave aooesc to a wider degree of options to customize ( i oral:; /.e) their compuLor experience. It also enables community participation into the process. As a consequence, the localization task itself becomes product independent, only linked to the product tnrouqh the application context. Other applications can access the localized strings at any time if the trust mode.! and application context allow for that .
Although the present. invention has been described w; l h releren.ee to particular embodiments, worKeri-; :-;K'i.l ,.~ed ;n t. :ifj ar't wi i I recognise that changes may be made in form arid detail without departing Crorn the spirit and scope of the invention.
WHAT IS CfA'JMKD IS:
1. A locaJization development system, comprising: a platform configured to receive, from an
authoring component, information to be ioeai : ?.< vl to a tarqet market., distinct, from a source market for which the information was authored, and to calculate a recycle rate for the received information, the recycle rate be:ing indicative of a portion of the .information that has already been 1; n.'rj i'; xed to the target market.
2. The localization development system of claim 1
and further comprising:
a plurality of localization components
corif icfured to provide .information that is 1 oca i :i zed to the t.a rget market .
3. '"he Localization development: system of claim 2
wherein the platform is configured to receive an
indication of a kind of the information to be
localized and '.o access the plurality of localization
component.,-; to determine whether the kind of
information is already local i >:ed to the target
ma T" k e t .
4. The i oca I i /at. ion development, system of claim 3
wherein, f: the kind of information is already
localized to the target market, the platform is
configured t.o provide
the a.l rea iy- J ooa'1 . xed information to the authoring component for selection by a user.
-> - The localisation development system of claim 1 wherein the platform i E; configured to analyze the information to be localized and to provide information indicative of how the information to be ' oca l :.'''.'d can br nod.if.ied t:..> increase the recycle
6. 7'he .i ocal i ;;at. i on development system of claim 1 where;n the authoring component comprises a textual conteni author i rig component.
"I. The localization development system of claim 1 wherein the authoring component comprises:
an application code development component.
8. '!':.(-- . .jccil j zat , en development system of cJairn '1
whereir. the piatforrn is int.egr~at.ed within an
o n e rat i r; q s y s t e m .
9. An operating system, comprising:
d 1 oo il i xa t i o!: pldt:.form including a matching romponent configured to receive1 ^nformat'on co be localized from an authoring component, the matching component . der.t i f y.i ng whether the information to be . ocu" ized is c.i.l ready local i zed on the ocal 12ar. i on 5: I at. form ana whe.re.in the
i-.-cal ,.:',.; i i 01 i plat form . r- configured to
calculate a recycle rate based on an amount
of the information to be localized that is
already localized on the localization
plat form.
10. Trie opera! inq system of claim 9 wherein the
i. oca 1.:. zat ;..cn p 1 at i o rm i s conf igui ed to
calculate the recycle .rate for the information as the information is authored at the authoring component.
11. The t>perat , nu system of claim 9 wherein the
1 oca .1 i /at i on piatiorm includes a plurality of
localization components providing localized
information, the matching component being configured
to access the plurality of localization components to
identify whether the information to be localized is
already localized on the platform.
12. The opera!ing system of claim 11 wherein the
mat.ch'Miq component is conflgure.d to request.
locaJ ;zuti :>n of the '.information to be localized from the .1 :/'(.i i ; zdt; ion components to .identify whether trie .informal ion to be ! ocal • zed is already Localized on t ne p i at f o rm .
13. The operating system of claim 11 wherein each of
the localization components provides a confidence
score in response to the request arid wherein the
pi at. form is configured to calculate the recycle rate based, at least in part, on the confidence score.
•'4. Tl;e ;>perat i nu system oi cla.i.m 9 wherein trie platform ;, s conf i gured to provide selectable categories and instances of localized information to the authoring component for selection by the user du r i. nq a \ 11 h o .ting.
lb. A computer implemented method for localizing i nf orrna t i on, compr i s ing :
receiving, from an authoring component,
information to be localized to a target market , distinct from a source market for .tfhich the information was authored; calculating a recycle rate for the received inf ormeit i on, ;:he recycle rate being indicative of a portion of the information that has already boon localized to the target market; and
providing the recycle rate to the authoring component for display to a user.
16. Tr>- mt-tnod of cla.._.n 1 :; and further comprising: i' '-••:*• i IT:? ar: indication cf <:a catogor'y of ::.ho
; nf ormat. i on to be localized ana i'.o access a plurality of localization components to determine whether the category of .information is already localized to the
target: market at one of the localization components.
17. The method of: claim 16 wherein, if the kind of
information is already localized to the target
market, providing the already-localized information
to the aulhonng component for selection by a user.
18. The method of claim 15 and further comprising:
analyzing the information to be localized to
provide, to the authoring component, information indicative of how the information to be localized can be modified to increase the recycle rate.
| Section | Controller | Decision Date |
|---|---|---|
| # | Name | Date |
|---|---|---|
| 1 | 492-del-2006-Form-18-(03-03-2009).pdf | 2009-03-03 |
| 1 | 492-DEL-2006-RELEVANT DOCUMENTS [15-09-2023(online)].pdf | 2023-09-15 |
| 2 | 492-del-2006-Correspondence-others-(03-03-2009).pdf | 2009-03-03 |
| 2 | 492-DEL-2006-RELEVANT DOCUMENTS [26-09-2022(online)].pdf | 2022-09-26 |
| 3 | 492-DEL-2006-RELEVANT DOCUMENTS [22-09-2021(online)].pdf | 2021-09-22 |
| 3 | 492-del-2006-Assignments-(03-03-2009).pdf | 2009-03-03 |
| 4 | 492-DEL-2006-RELEVANT DOCUMENTS [27-03-2020(online)].pdf | 2020-03-27 |
| 4 | 492-DEL-2006-GPA-(21-06-2010).pdf | 2010-06-21 |
| 5 | 492-DEL-2006-IntimationOfGrant31-05-2019.pdf | 2019-05-31 |
| 5 | 492-DEL-2006-Correspondence-Others-(21-06-2010).pdf | 2010-06-21 |
| 6 | 492-DEL-2006-PatentCertificate31-05-2019.pdf | 2019-05-31 |
| 6 | 492-DEL-2006-Form-1-(02-12-2010).pdf | 2010-12-02 |
| 7 | 492-DEL-2006-Correspondence-Others-(02-12-2010).pdf | 2010-12-02 |
| 7 | 492-DEL-2006-Certified Copy of Priority Document (MANDATORY) [09-05-2019(online)]-1.pdf | 2019-05-09 |
| 8 | 492-del-2006-gpa.pdf | 2011-08-21 |
| 8 | 492-DEL-2006-Certified Copy of Priority Document (MANDATORY) [09-05-2019(online)].pdf | 2019-05-09 |
| 9 | 492-DEL-2006-CORRECTED PAGES [09-05-2019(online)].pdf | 2019-05-09 |
| 9 | 492-del-2006-form-5.pdf | 2011-08-21 |
| 10 | 492-del-2006-form-3.pdf | 2011-08-21 |
| 10 | 492-DEL-2006-MARKED COPY [09-05-2019(online)].pdf | 2019-05-09 |
| 11 | 492-del-2006-form-2.pdf | 2011-08-21 |
| 11 | 492-DEL-2006-Response to office action (Mandatory) [09-05-2019(online)].pdf | 2019-05-09 |
| 12 | 492-del-2006-form-1.pdf | 2011-08-21 |
| 12 | 492-DEL-2006-Written submissions and relevant documents (MANDATORY) [09-05-2019(online)].pdf | 2019-05-09 |
| 13 | 492-del-2006-drawings.pdf | 2011-08-21 |
| 13 | 492-DEL-2006-FORM 3 [03-05-2019(online)].pdf | 2019-05-03 |
| 14 | 492-del-2006-description (complete).pdf | 2011-08-21 |
| 14 | 492-DEL-2006-PETITION UNDER RULE 137 [03-05-2019(online)].pdf | 2019-05-03 |
| 15 | 492-del-2006-correspondence-others.pdf | 2011-08-21 |
| 15 | 492-DEL-2006-RELEVANT DOCUMENTS [03-05-2019(online)].pdf | 2019-05-03 |
| 16 | 492-del-2006-claims.pdf | 2011-08-21 |
| 16 | 492-DEL-2006-Correspondence to notify the Controller (Mandatory) [23-04-2019(online)].pdf | 2019-04-23 |
| 17 | 492-DEL-2006-HearingNoticeLetter.pdf | 2019-04-08 |
| 17 | 492-del-2006-abstract.pdf | 2011-08-21 |
| 18 | 492-DEL-2006_EXAMREPORT.pdf | 2016-06-30 |
| 18 | MTL-GPOA - PRS.pdf ONLINE | 2015-03-05 |
| 19 | Abstract [05-01-2016(online)].pdf | 2016-01-05 |
| 19 | MS to MTL Assignment.pdf ONLINE | 2015-03-05 |
| 20 | Claims [05-01-2016(online)].pdf | 2016-01-05 |
| 20 | FORM-6-801-900(PRS).25.pdf ONLINE | 2015-03-05 |
| 21 | Correspondence [05-01-2016(online)].pdf | 2016-01-05 |
| 21 | MTL-GPOA - PRS.pdf | 2015-03-13 |
| 22 | Description(Complete) [05-01-2016(online)].pdf | 2016-01-05 |
| 22 | MS to MTL Assignment.pdf | 2015-03-13 |
| 23 | Examination Report Reply Recieved [05-01-2016(online)].pdf | 2016-01-05 |
| 23 | FORM-6-801-900(PRS).25.pdf | 2015-03-13 |
| 24 | OTHERS [05-01-2016(online)].pdf | 2016-01-05 |
| 24 | Examination Report Reply Recieved [16-10-2015(online)].pdf | 2015-10-16 |
| 25 | Correspondence [16-10-2015(online)].pdf | 2015-10-16 |
| 25 | Description(Complete) [16-10-2015(online)].pdf | 2015-10-16 |
| 26 | Correspondence [16-10-2015(online)].pdf | 2015-10-16 |
| 26 | Description(Complete) [16-10-2015(online)].pdf | 2015-10-16 |
| 27 | Examination Report Reply Recieved [16-10-2015(online)].pdf | 2015-10-16 |
| 27 | OTHERS [05-01-2016(online)].pdf | 2016-01-05 |
| 28 | Examination Report Reply Recieved [05-01-2016(online)].pdf | 2016-01-05 |
| 28 | FORM-6-801-900(PRS).25.pdf | 2015-03-13 |
| 29 | Description(Complete) [05-01-2016(online)].pdf | 2016-01-05 |
| 29 | MS to MTL Assignment.pdf | 2015-03-13 |
| 30 | Correspondence [05-01-2016(online)].pdf | 2016-01-05 |
| 30 | MTL-GPOA - PRS.pdf | 2015-03-13 |
| 31 | Claims [05-01-2016(online)].pdf | 2016-01-05 |
| 31 | FORM-6-801-900(PRS).25.pdf ONLINE | 2015-03-05 |
| 32 | Abstract [05-01-2016(online)].pdf | 2016-01-05 |
| 32 | MS to MTL Assignment.pdf ONLINE | 2015-03-05 |
| 33 | 492-DEL-2006_EXAMREPORT.pdf | 2016-06-30 |
| 33 | MTL-GPOA - PRS.pdf ONLINE | 2015-03-05 |
| 34 | 492-del-2006-abstract.pdf | 2011-08-21 |
| 34 | 492-DEL-2006-HearingNoticeLetter.pdf | 2019-04-08 |
| 35 | 492-DEL-2006-Correspondence to notify the Controller (Mandatory) [23-04-2019(online)].pdf | 2019-04-23 |
| 35 | 492-del-2006-claims.pdf | 2011-08-21 |
| 36 | 492-del-2006-correspondence-others.pdf | 2011-08-21 |
| 36 | 492-DEL-2006-RELEVANT DOCUMENTS [03-05-2019(online)].pdf | 2019-05-03 |
| 37 | 492-del-2006-description (complete).pdf | 2011-08-21 |
| 37 | 492-DEL-2006-PETITION UNDER RULE 137 [03-05-2019(online)].pdf | 2019-05-03 |
| 38 | 492-del-2006-drawings.pdf | 2011-08-21 |
| 38 | 492-DEL-2006-FORM 3 [03-05-2019(online)].pdf | 2019-05-03 |
| 39 | 492-del-2006-form-1.pdf | 2011-08-21 |
| 39 | 492-DEL-2006-Written submissions and relevant documents (MANDATORY) [09-05-2019(online)].pdf | 2019-05-09 |
| 40 | 492-del-2006-form-2.pdf | 2011-08-21 |
| 40 | 492-DEL-2006-Response to office action (Mandatory) [09-05-2019(online)].pdf | 2019-05-09 |
| 41 | 492-del-2006-form-3.pdf | 2011-08-21 |
| 41 | 492-DEL-2006-MARKED COPY [09-05-2019(online)].pdf | 2019-05-09 |
| 42 | 492-DEL-2006-CORRECTED PAGES [09-05-2019(online)].pdf | 2019-05-09 |
| 42 | 492-del-2006-form-5.pdf | 2011-08-21 |
| 43 | 492-DEL-2006-Certified Copy of Priority Document (MANDATORY) [09-05-2019(online)].pdf | 2019-05-09 |
| 43 | 492-del-2006-gpa.pdf | 2011-08-21 |
| 44 | 492-DEL-2006-Certified Copy of Priority Document (MANDATORY) [09-05-2019(online)]-1.pdf | 2019-05-09 |
| 44 | 492-DEL-2006-Correspondence-Others-(02-12-2010).pdf | 2010-12-02 |
| 45 | 492-DEL-2006-PatentCertificate31-05-2019.pdf | 2019-05-31 |
| 45 | 492-DEL-2006-Form-1-(02-12-2010).pdf | 2010-12-02 |
| 46 | 492-DEL-2006-IntimationOfGrant31-05-2019.pdf | 2019-05-31 |
| 46 | 492-DEL-2006-Correspondence-Others-(21-06-2010).pdf | 2010-06-21 |
| 47 | 492-DEL-2006-RELEVANT DOCUMENTS [27-03-2020(online)].pdf | 2020-03-27 |
| 47 | 492-DEL-2006-GPA-(21-06-2010).pdf | 2010-06-21 |
| 48 | 492-DEL-2006-RELEVANT DOCUMENTS [22-09-2021(online)].pdf | 2021-09-22 |
| 48 | 492-del-2006-Assignments-(03-03-2009).pdf | 2009-03-03 |
| 49 | 492-DEL-2006-RELEVANT DOCUMENTS [26-09-2022(online)].pdf | 2022-09-26 |
| 49 | 492-del-2006-Correspondence-others-(03-03-2009).pdf | 2009-03-03 |
| 50 | 492-del-2006-Form-18-(03-03-2009).pdf | 2009-03-03 |
| 50 | 492-DEL-2006-RELEVANT DOCUMENTS [15-09-2023(online)].pdf | 2023-09-15 |