WO2011136768A1 - Processing content in a plurality of languages - Google Patents
Processing content in a plurality of languages Download PDFInfo
- Publication number
- WO2011136768A1 WO2011136768A1 PCT/US2010/032874 US2010032874W WO2011136768A1 WO 2011136768 A1 WO2011136768 A1 WO 2011136768A1 US 2010032874 W US2010032874 W US 2010032874W WO 2011136768 A1 WO2011136768 A1 WO 2011136768A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- content
- client computer
- computer
- application program
- database
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/40—Processing or translation of natural language
- G06F40/58—Use of machine translation, e.g. for multi-lingual retrieval, for server-side translation for client devices or for real-time translation
Definitions
- Computers may be used to execute programs that display content in many languages, It is desirable to improve the manner in which computers process content in many languages.
- Figure 1 shows a system for processing content in a plurality of languages, constructed in accordance with at least some illustrative embodiments
- Figure 2 is a flow chart showing a method of processing content m a plurality of languages,, constructed in accordance with at least some illustrative embodiments.
- Figure 3 is a diagram showing operation of the system of Figure 1 in accordance with at least some illustrative embodiments
- a client computer for processing content In a plurality of languages.
- the client computer may includes an application program which requests content in a plurality of languages for display when needed from a server computer so to help reduce storage requirements of the client computer.
- the client computer may store the content in an embedded database to help reduce the need for user management of th content.
- the client computer may be configured to automatically receive updated content from the server computer when there are changes to the content at the server computer.
- Figure 1 shows an embodiment of a system 100 for processing content in a plurality of languages.
- the system 100 includes client computer 02 coupled to server computer 128 over network 128.
- the client computer 102 is configured to request and receive content in a plurality of languages from server computer 128.
- the client computer 102 comprises processo 104 coupled to memory 106 which Includes instructions, to. be executed by processor 104 to control the operation of the client computer, in some embodiments, memory 106 comprises content management module 108 which has instructions executable by the processor for managing content for use by embedded content database 110 and application program 116.
- content management module 108 may be configured to manage content requests from application program 116, such as, when application program needs content during execution of the program.
- application program 116 may include user interface (U!) objects or elements, such as buttons, which may be displayed wit text, in some embodiments, during execution of application program 116, the program may need to display text in the buttons.
- the program may send a request to management module 10$ to retrieve the text or other content from embedded database or request the content from server computer.
- the management module 108 is configured to check if the content is stored in embedded database 110. if management module 108 determines that the content is in embedded database 110, then it can retrieve the content from the database and forward it to application program for processing by the program.
- management module 08 may send a request to the sever computer for the content. In this case, management module 108 waits to receive the content from the server. When it does receive the content, it may store it in embedded database 110 and forward it to application program 118 for further processing by the program.
- management module 108 may be capable of establishing a bind relationship between the content of embedded database 110 and the content of database 130 on server computer 128.
- the bind relationship may provide a synchronization mechanism which may allow server computer 128 to notify client computer 102 of any changes to content that occurs at the server computer, in one embodiment, server computer 128 may notify client computer 102 in an asynchronous manner by automatically sending updated content to the client computer when there are changes in content This can be performed without having the client computer request content from the server computer, in one embodiment, client computer 102 may request from server computer 128 for the latest content in a periodic manner.
- client computer may rBquest content on an on-demand manner such as when the application is executing and requires content to operate properly,
- embedded content database 1 10 is configured to store and retrieve content such as text, video, graphics, or other content that can be used by application program 118.
- embedded database 110 can be a database management system which is tightly integrated with application program 116, The database 110 can provide access to stored data, such that the database is "hidden" from the application's end user and provide no user access and requires little or no ongoing maintenance, in one embodiment, embedded databas 1 0 may comprise first content 112 and second content 114.
- the first content 112 may comprise content in a first language and second content 114 may comprise content In a second language translated from the first language. In one embodiment first content may be in the English language and second content may be in the French language.
- the content, or portions thereof, client computer 102 may receive the content from server computer 128 fully translated without having the client computer to perform any translation, in another embodiment, the content, or portions thereof, may be installed in the embedded database when the client computer is shipped and may require no further translation by the client computer.
- the first content 122 and second content may be organized as table entries with text values and identifiers associated or linked with the corresponding identifiers.
- the database can be configured to establish a bind relationship between the content in embedded database and content database of the server computer. This relationship may allow the server computer 128 to notify client computer 102 of any changes to the first content, in one embodiment, sewer computer 128 can notify client computer 102 in an asynchronous manner by automatically sending update content to the client computer as soon as there is a change in content.
- the embedded database 1 10 shown in Figure 1 is for illustrative purposes. It should be understood, that the embedded database can comprise content in more than two languages and languages other than French and English.
- application program 116 may comprise software instructions executable by processor 104.
- the application program 116 can be a word processing program, database program, calendar program, spreadsheet program or any other program capable of being executable by a computer, in one embodiment, application program 116 may comprise first window 118 and second window 120, The application program 118 may provide a user with the capability to navigate between the windows.
- the first window 118 can display first portion of first content 122 and second window 120 can display second portion of first content 124.
- the windows 122, 124 can comprise user interface (Ui) elements or objects such as text boxes, buttons, dropdown lists and/or other objects commonly known,
- application program 116 can be a standard "desktop program" that does not have requirements or functionality for communicating over a network.
- application program may be configured to operate without the need to communicate over a network.
- the application program may be a standalone program which communicates directly with management module and does not have browser functionality to communicate over the internet
- the application program 118 shown In Figure 1 is for illustrative purposes. It should be understood that application program 11.6 can comprise a single window or more than two windows.
- server computer 128 may comprise content database 130, The server computer 128 may be configured to manage content requests from client computer 102. These requests may be generated when application program 116 needs content for proper operation. For example, application program may need to display text during operation and the text may not be available on embedded database 110 at client computer 102. As a result, client computer may send requests to server computer for the necessary content.
- server computer 128 may be configured to detect changes in content ' in database 130 and to notify client computer 102 of such changes. The sever computer 128 can notify the client computer Li an asynchronous manne by automatically sending update content to the client computer as soon as there Is a change in content.
- the content database 130 comprises first content 112 and second content 114
- the content can be in different languages.
- the first content 112 may comprise content in a first language and second content 114 may comprise content in a second language translated from the first language, In one embodiment, first content may be in the English language and second content may be in the French language.
- the content in the content database 130 is synchronized with the content in embedded database 110 of the client computer.
- the content that is sent to client computer 102 Is fully translated In a particular language such as French,
- the translation of the content is performed at the server computer.
- client computer 102 receives fuly translated content from server computer 128,
- the database 130 shown in Figure 1 is shown for illustrative purpose. It should be understood that content database 130 can comprise more than content 112, 14 and be in different languages
- a single client computer 102 Is shown in system 100. However, it should be understood that the system can employ a plurality of client computers.
- the client computer can be any electronic device capable of electronic communication over network 128.
- a single server computer 128 is shown in system 100, but It should be understood that the system can employ a plurality of server computers.
- the network 128 can be any means for allowing electronic communication between electronic devices, in some embodiments, the network can comprise wired or wireless communication means.
- the processor 104 can be a general purpose microprocessor, microcontroller, digital signal processor. , etc. configured to execute software programs or computer-executable instructions.
- the components of a processor are well known in the art and generally include execution units (e.g., integer, fixed point, floating point, etc.), instruction decoding, registers, memories, input/output ports, etc, Interconnected by buses.
- the memory 106 can include various storage media, for example, magnetic storage (e.g., hard disks, floppy disks, tape, etc.), optica!
- the system 100 includes software programming stored in memory 106 that when executed by processor 104 to control the operation of computer 102.
- client computer 102 can include an inpuVoutput subsystem which can comprise input devices, such as a keyboard, a mouse, etc.
- Embodiments can also include various input/output sub-systems to implement, for example, , wired and/or wireless networking.
- computer 102 Is depicted as general purpose computer, however in practice computer 102 can be any of a variety of electronic devices.
- computer 102 can be a telephone, personal digital assistant, music player, desktop computer, laptop computer, satellite . navigation- system, gaming system or other device,
- FIG. 2 shows a flow diagram of a method fo processing conten in a plurality of languages in accordance with various embodiments. The method will -be described with reference to system 100 shown In Figure 1. It should- be understood, that though depicted sequentially as a matter of -convenience, at [east some of the actions shown can be performed in a different order and/or performed in parallel, Additionally, some embodiments may perform only some of the actions shown.
- client computer 102 generates a request for first content 112
- application program 116 may generate the request in response to the user executing application.
- application program 118 may require first content 112 because it displays first content as part of its operation, in some embodiments, management module 108 may manage this request for further processing, as explained below.
- client computer 102 mav check if first content 112 is stored in embedded database 110 of client computer, in some embodiments, management module 108 may receive the above request and check whether first content in stored In embedded database 110. If management module 108 determines thai first content 112 Is stored in embedded database 110, then processing proceeds to block 204 (as explained below) where the management module retrieves the first content from the embedded database. On the other hand, if first management module 108 determines thai first content 112 is not available in embedded database 110, then processing proceeds to block 206 (as explained below), where the management module generates a request to server computer 128 for first content.
- client- computer 102 determines that first content 112 is stored in ' -embedded database 110 and proceeds to retrieve first content from the embedded database.
- management module 108 retrieves first content 112 and forwards the content to application program 116 for further processing such as display by the application program, Once first content has been forwarded to application program 116, processing proceeds to block 210 (as- explained below), where application program displays first content.
- client computer 102 determines that first content 112 is not available in embedded database 1 10, then client computer proceeds to generate a request to server computer 128 for first content The server computer may receive the request and proceed to retrieve first content 112 from content database 130 and then send the content back to client computer 102 for further processing. Processing proceeds to block 208 where client computer 102 awaits to receive first content from server computer. [0022 At block 208, client computer 102 receives first content 112 from server computer 128.
- management module 108 may receive first content and then store the received content in embedded database for future use by application program. In one embodiment, the management module 108 may forward the received first content to application program for display by application program. Processing then proceeds to block 210 (as explained below), where application program processes first content
- application program 118 displays first content 112 at client computer 102.
- application program 116 may format the content in a manner consistent with requirements of the program.
- application program 115 may place the content as part of a Ui element of first window 118.
- the content may be placed i a text box object on first window.
- processing proceeds o block 212 (as explained below) where the client computer proceeds to operate in a normal manner, in some embodiments, client computer may monitor for changes in content, in some embodiments, client computer may be configured to receive changes or updates in content in an asynchronous manner.
- server computer 128 may check for changes or updates in second content 114 at content database 130 located at the server.
- client computer 102 may have already received first content 112 from the server. It is assumed, to .illustrate, that first content 112 is in the English language and that second content! 14 is a French language translation of the first content.
- server computer 128 may send client computer 102 updated first content because there was a change in second content and because second content is a translation of first content
- processing proceeds to block 214 where client computer proceeds to process the updated content
- processing proceeds back to block 212 where the server continues to check for changes in second content it should also be understood, that in addition to checking for changes In second content, server is also checking for changes in first content If there are changes to first content, server computer may aiso notify client computer of such changes,
- server computer sends to client computer updated first content.
- a change in the French translation of the content has an effect on the English language content.
- client computer is synchronized with changes in content in different languages.
- client computer proceeds to display the updated first content at the client computer.
- management module 108 may receive the updated first content and store it In embedded content database at client computer, in this manner, client computer may only need to store the latest version of content and not every version of th content This technique may help reduce storage requirements of the client computer,
- Figure 3 shows the operation of the system of Figure i in accordance with at least one embodiment of the invention.
- the application program 116 may comprise first window 118 and second window 120.
- Thefirst window 118 may be configured to display first portion 122 of first content and second window 120 may be configured to display second portion 124 of first content.
- first window 118 may be configured to display first button 322 and second button 324.
- the first and second buttons are Ui elements. The buttons are for illustrative purposes. It should be understood thai other Ui elements may be used.
- the first button 322 is associated with an identifier labeled "W1. Button”! 3 ⁇ 4 and the second button 324 is associated with an Identifier labeled "W2.button2 K .
- the first content 122 is organized as table entries with text values and identifiers associated or linked with the corresponding button identifiers, in a similar manner, second window 120 may be configured to display first b ton 326 and second button 328.
- the first button 326 is associated with an identifier labeled K W2.Button and second button 328 is associated with an Identifier labeled " 2.buttGn2",
- the second portion of first content 124 may be organized as table entries with text vaiues and identifiers associated or iinked with the corresponding button identifiers,
- application program 118 may reside on client computer 102 and coupled to server computer 128 over network 126. It will be further assumed that the user is interested in having the application program display first content in the Engiish language and then having the application program display second content 114 in the French language. It will he further assumed that only first portion 122 of first content Is stored in embedded database 110. In addition, second portion 124 is not stored in embedded database, but rather, resides on the server computer, As a result, as explained below, client. computer 02 may need to request second portion 124 from server computer 128 when the user causes application program to navigate from first window 118 to second window 120. It is also assumed that the user has selected a word processing program as the application program. Of course, the system may he configured to operate in a similar manner when using any other program such as a database program, calendar program, contact spreadsheet or any other program.
- the user specifies that the local or default language requirement for the content Is to be In the English language.
- the client computer 102 may record this Information for later use such as, for example, when it has to determine which language the first content is to be displayed by the application program, The user may proceed to request that client computer 102 execute application program 116.
- the client computer 102 recognizes that the language preferred by the user is English.
- the dent computer checks whether first portio of first content 122 is stored in embedded database 110. As explained above, it is assumed thai first portion is stored in embedded database, therefore, there may be no need to send a request to server computer for the first portion.
- the client computer 102 proceeds to retrieve first portion of the content 122 from the embedded database and forward it to application program (shown by arrow 302).
- The. application program receives the content and then displays it on first window 118.
- the client computer 102 may establish a bind ' relationship- between first portion of the content 122 and the embedded database 1 10 on ciient computer 102 and content database 130 on server computer 128.
- the bind relationship may allow the server computer 128 to notify client computer 02 of any occurrences of changes to the first content, in one embodiment, server computer 128 can notify client computer 102 in an asynchronous manner by automatically sending update content to the client computer as soon as there is a change in content. This Is performed without the client computer having to send a request to the server com uter for changes.
- the server computer sends the updated content to csient computer.
- the client computer receives the update content, and may overlay the previous content with the updated content.
- client computer 102 may store the updated content in embedded database 110 for subsequent use by application program or for any other purpose.
- application program 116 includes first window 118 and second window 120.
- the application program 116 determines that second window 120 requires second portion 124 of first content to be able to operate correctly (shown by arrow 308). Thai is, it needs the content because it displays it are part of operation, it is assumed that second portion 24 of first content is not stored in ⁇ mbedded database.
- client computer 102 generates a request to server computer 128 to obtain second portion 124 of the first content (shown by arrow 308).
- the server computer 128 receives the request and proceeds to retrieve second portion. Once the server computer finds second portion, it sends the content to the client computer.
- the client computer 102 receives the second portion (shown by arrow 310) and stores it in embedded database110.
- the client computer forwards the content to application program 1 18 which may proceed to display it on second windows 120 (shown by arrow 312),
- client computer 102 also establishes a bind relationship between the second portion 124 of the first content and the embedded database on ciient computer and content database on server computer 128. As explained above, this bind relationship allows- the server computer to notify the client computer of any changes to the first content.
- the bind relationship may allow the server computer to notify the client computer of any changes to the second content.
- This may be beneficial when an application program has a plurality .of Ul elements- comprised of language content text or images and the developer of the application desires to minimize the installation size of the application program. That is, only the content needed by the application during execution is stored on client computer thereby minimizing the storage requirements of the client computer.
- first content 1 2 (including portions 122 and 124) is in the English language and stored in embedded database 110 upo installation of the application program.
- the English language content is installed ' in the client computer as default content for the application program.
- the user desires to have the application program display content in the French language. Since the French content is not stored In the embedded database, the client computer sends the server computer a request for the French content The client computer receives the French content from the server content and stores it in embedded database.
- the client computer may establish a bind operation between French content in the embedded database 110 in client computer and content database 130 In server computer.
- the bind relations ip allows the server computer to notify the client computer of any changes to the second content. This is a beneficial when the developer of the application program sets the default content to be in English language on the client computer and when a network connection is not available.
- the client computer can request that the French content be sent or downloaded and synchronized between the embedded database on the client computer and the content database on the server computer.
- the system 1Q0 . of Figure 1 can provide advantages.
- the relevant localized content may be stored in the embedded database at the client computer.
- the content may be accessed at the client computer on an on-demand basis and synchronized automatically with production localized content at the server computer.
- This system may red ce the work needed In maintaining the client computer synchronized with latest localization updates and also reduce the content deployment size of the application program.
- the system 100 of Figure 1 may be used to improve the language translation process.
- the system may be able reduc the latency .between the time English content is produced for the application program and the time for the generation/update of corresponding translated content
- translators may be notified of the changes, and start working on the translation of text and content.
- content reviewers may be notified in order to review the content and approve the final content.
- the tasks between adding content for translation and reviewing the content may occur in a semi-parallel fashion. This may improve and minimize the latency between content addition and translation.
- the translators may be in lock- ste with the development team in translation.
- the system 100 of Figure i may be configured to operate, in part, according to the Synchronization Framework from Microsoft ⁇ t>.
- the system may comprise two types of databases.
- a production localized main content database may be used to store main localized content after going through a review/approval cycle.
- the cycle may comprise review and approval of content.
- a working localized content database may be used to store relevant content tables (e.g., English/Spanish/ete%) from the main database.
- the content of ihe working database may also form the content of the embedded database at the client computer.
- the server computer may include a translator editor application which may include an Inbox filled with translation tasks.
- the translation tasks may arrive at the Inbo every time there is an update In the database or a modified/new content for the application .program.
- the system may include a runtime component which may provide conflict resolution and auto- update features when performing translation tasks on the working- database.
- the system may include a sync service provider component which can be used to synchronize local replica of desired fable with other replicas.
- the system may provide for synchronization sessions wherein a destination provider is connected with the source provider to synchronize items changed In source replica.
- the working database may provide its current knowledge, accept a list of changes from the production database, detect an conflicts between that list and its own Items, and appl changes to its data store.
- the production database source may use the working database replica's (destination) current knowledge to determine which changes are in its replica that the working database replica does not know about, and send the list- of changes to the provider at the destination.
- the system may inclisde metadata which represents information about replicas and items. This information may be used to track the knowledge that each replica contains so that synchronization can be performed.
- the system may Include a review workflow component which ma provide an automated review and approval process configured to send the relevant sync updates before committing the final information to the production database.
- the system may Include a synchronization proxy provider component to send commands and metadata over the network to the remote provider.
- a proxy component may provide an interface between a remote deployed client provider and the production database,
- a e client computer a user may be able to launch an application and specify the current locale, such as, for example, Spanish. This may cause the system to connect to the production database at the server and request for the Spanish content table.
- a relatively small embedded database may be created which includes the latest updates
- a synchronization table may be created only for the Spanish locale with the content (e.g., images, XML, and so on) as needed.
- the user may be provided wit an option to change locale settings, For example, the user may be abie to specify the current local to be the United States (for example, English language).
- the sync service provider component at the client computer may contact tie remote synchronization proxy provider component at the production server computer for the English content table.
- an English sync table may be created In the embedded database at the client computer.
- the metadata-store may recognize that it may need to keep track of changes in production .server and that It may be responsible for updating the embedded database.
- the system can employ a one-way synchronization technique, wherein the relevant updates from the production database at the server computer are synchronized with the embedded database at the client computer.
- the embedded database may be provided by SQL Server compact and the synchronization process can be handled by the Framework,
- the system may use inline tracking techniques where updates to the database are synchronized immediately and /or in real-time.
- the system may employ asynchronous tracking where an external process can be used for performing change tracking in a periodic manner.
- asynchronous tracking may be beneficial because it may reduce the impact on the performance of an application program.
- the application program may be configured to read content from the embedded database based on the locale, in one embodiment, the application program can be configured to use LING to SQL or ADO.net services.
- a library may be provided for the interaction layer between the application and the Framework. The library ' can be used in Extensible Application Markup Language (XAML) as a markup extension for easier maintainability.
- XAML Extensible Application Markup Language
- a service component asynchronously synchronizes the dat from the embedded database to the production database after the relevant code review automated workflow.
- $040] A description is now provided from the perspective of a translator.
- a sen/ice component sends notification to relevant (or subscribed) locale translator's Inbox.
- the translator may have an embedded database with a relevant locale synchronization table.
- the translator may perform the translation work and the service may synchronize with: the production database after review/approval cycle automated workflow.
- the text may be machine translated before the text is sent to the translator's Inbox in order to minimize the translation time required.
- the relevant locate embedded database may be installed onto the client computer before the computer is shipped, in this scenario, the client computer may not require a network connection, at least, not initially.
- the relevant database may go through an on-demand synchronization process with the production database when the user goes through an initial setup stage at the client computer.
- the client computer may require a network connection initially,
- a service component running in the client computer may synchronously synchronize with the production database at the sever computer when changes in text occur at the server.
- the system may include one file which has the translated content for all country and languages.
- the system may not require separate folders for resource files having translated content information for each country and language. This may reduce the storage requirements of the system.
- the ' system may provide content and resources at the server and only require that the relevant content and resources be downloaded to the client computer. This may help minimize the hard disk footprint of localized content in the client computer.
- the system may not require that ail the content translation and resources be i the client computer. This may help decrease the installation size of the software at the client computer.
- the system may reduce the time between software development and translation activities. This ma enable easier maintenance and process flow from developers to content translators.
- the system may provide automatic synchronization of content of the embedded database which enables the client computer to be up-to-date with content changes in the production database at the server.
- the system can reduce the need for storage by only storing content that has been requested by the application or necessary for the operation of the application program.
- embodiments within the scope of the present invention may include program products comprising computer-readable media fo carrying or having computer-executable instructions or data structures stored thereon.
- Such computer-readable media can be any available media thai can be accessed by a general purpose or special purpose computer.
- Such computer-readable media can comprise RAM, ROM, EP O , EEPRO , CD- ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to carry or store desired program code in the form of computer-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer.
- Computer-executable instructions comprise, for example, instructions and data which cause a general purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions.
- the present invention may be operated in a networked environment using logical connections to one or more remote computers having processors.
- Logical connections may include a local area network (LAN) and a wide area network (WAN) that are presented here by way of example and not limitation.
- LAN local area network
- WAN wide area network
- Such networking environments are commonplace in office-wide or enterprise-wide computer networks, intranets and the internet.
- Those skilled in the art will appreciate that such network computing environments will typically encompass many types of computer system configurations, including personal computers, hand-held devices, multi-processor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, and the like.
- the present subject matter may also be practiced in distributed computing environments where tasks ar performed by local and remote processing devices that are linked (either by hardwired links, wireless links, or by a combination of hardwired or wireless links) through a communications ..network.
- program modules may be located In both local and remote memory storage devices.
- An exemplar system for implementing the overall system or portions of the present disclosure might include a general purpose computing device in the form of a conventional computer, including a processing unit, a system memory, and a system bus that couples various system components including the system memory to . the processing unit.
- the system memory may include read only memory ⁇ ROM) and random access memor (RAM).
- the computer may also include a magnetic hard disk drive for reading from and writing to a magnetic hard disk, a magnetic disk drive for reading from or writing to a removable magnetic disk, and an optical disk drive for reading from or writing to removable optical disk such as a CD-ROM or other optical media.
- the drives and their associated computer-readable media provide nonvolatile storag of computer-executable instructions, data structures, program modules and other data for the computer.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
A method for processing content in a plurality of languages which comprises generating, by an application program at a client computer, a request to a server computer for first content which is in a first language, if the first content is not stored in an embedded database of the client computer. The method comprises automatically receiving from the server computer updated first content in the first language, if there is a change in second content which is content in a second language translated from the first language.
Description
PROCESSING CONTENT IN A PLURALITY OF LANGUAGES
BACKGROUND
[0001] Computers may be used to execute programs that display content in many languages, It is desirable to improve the manner in which computers process content in many languages.
BRIEF DESCRIPTSON OF THE DRAWINGS
[00021 For a detailed description of exemplary embodiments, reference will now be made to the accompanying drawings in which;
[0003] Figure 1 shows a system for processing content in a plurality of languages, constructed in accordance with at least some illustrative embodiments;
1000 ] Figure 2 is a flow chart showing a method of processing content m a plurality of languages,, constructed in accordance with at least some illustrative embodiments; and
O 0S] Figure 3 is a diagram showing operation of the system of Figure 1 in accordance with at least some illustrative embodiments
DETAILED DESCRIPTION
[Ο00β| As will be explained below in further detail, in some embodiments, disclosed is a client computer for processing content In a plurality of languages. The client computer may includes an application program which requests content in a plurality of languages for display when needed from a server computer so to help reduce storage requirements of the client computer. The client computer may store the content in an embedded database to help reduce the need for user management of th content. The client computer may be configured to automatically receive updated content from the server computer when there are changes to the content at the server computer.
[0007] Figure 1 shows an embodiment of a system 100 for processing content in a plurality of languages. The system 100 includes client computer 02 coupled to server computer 128 over network 128. The client computer 102 is configured to request and receive content in a plurality of languages from server computer 128. The client computer 102 comprises processo 104 coupled to memory 106
which Includes instructions, to. be executed by processor 104 to control the operation of the client computer, in some embodiments, memory 106 comprises content management module 108 which has instructions executable by the processor for managing content for use by embedded content database 110 and application program 116.
[0008] In one embodiment, content management module 108 may be configured to manage content requests from application program 116, such as, when application program needs content during execution of the program. For example, application program 116 may include user interface (U!) objects or elements, such as buttons, which may be displayed wit text, in some embodiments, during execution of application program 116, the program may need to display text in the buttons. To obtain the text, the program may send a request to management module 10$ to retrieve the text or other content from embedded database or request the content from server computer. The management module 108 is configured to check if the content is stored in embedded database 110. if management module 108 determines that the content is in embedded database 110, then it can retrieve the content from the database and forward it to application program for processing by the program. On the other hand, If management module 08 determines that the content is not stored in embedded database 110, then it may send a request to the sever computer for the content. In this case, management module 108 waits to receive the content from the server. When it does receive the content, it may store it in embedded database 110 and forward it to application program 118 for further processing by the program.
[0Q09] In one embodiment, management module 108 may be capable of establishing a bind relationship between the content of embedded database 110 and the content of database 130 on server computer 128. The bind relationship may provide a synchronization mechanism which may allow server computer 128 to notify client computer 102 of any changes to content that occurs at the server computer, in one embodiment, server computer 128 may notify client computer 102 in an asynchronous manner by automatically sending updated content to the client computer when there are changes in content This can be performed
without having the client computer request content from the server computer, in one embodiment, client computer 102 may request from server computer 128 for the latest content in a periodic manner. In another embodiment client computer may rBquest content on an on-demand manner such as when the application is executing and requires content to operate properly,
[O01OJ In one embodiment, embedded content database 1 10 is configured to store and retrieve content such as text, video, graphics, or other content that can be used by application program 118. In one embodiment, embedded database 110 can be a database management system which is tightly integrated with application program 116, The database 110 can provide access to stored data,, such that the database is "hidden" from the application's end user and provide no user access and requires little or no ongoing maintenance, in one embodiment, embedded databas 1 0 may comprise first content 112 and second content 114. The first content 112 may comprise content in a first language and second content 114 may comprise content In a second language translated from the first language. In one embodiment first content may be in the English language and second content may be in the French language. The content, or portions thereof, client computer 102 may receive the content from server computer 128 fully translated without having the client computer to perform any translation, in another embodiment, the content, or portions thereof, may be installed in the embedded database when the client computer is shipped and may require no further translation by the client computer. The first content 122 and second content may be organized as table entries with text values and identifiers associated or linked with the corresponding identifiers. The database can be configured to establish a bind relationship between the content in embedded database and content database of the server computer. This relationship may allow the server computer 128 to notify client computer 102 of any changes to the first content, in one embodiment, sewer computer 128 can notify client computer 102 in an asynchronous manner by automatically sending update content to the client computer as soon as there is a change in content. The embedded database 1 10 shown in Figure 1 is for illustrative purposes. It should be
understood, that the embedded database can comprise content in more than two languages and languages other than French and English.
0O111 in one embodiment, application program 116 may comprise software instructions executable by processor 104. The application program 116 can be a word processing program, database program, calendar program, spreadsheet program or any other program capable of being executable by a computer, in one embodiment, application program 116 may comprise first window 118 and second window 120, The application program 118 may provide a user with the capability to navigate between the windows. The first window 118 can display first portion of first content 122 and second window 120 can display second portion of first content 124. The windows 122, 124 can comprise user interface (Ui) elements or objects such as text boxes, buttons, dropdown lists and/or other objects commonly known, When the application program 116 is executed, it can send requests to management module 108 for content In one embodiment, application program 116 can be a standard "desktop program" that does not have requirements or functionality for communicating over a network. In one embodiment, application program may be configured to operate without the need to communicate over a network. For example, the application program may be a standalone program which communicates directly with management module and does not have browser functionality to communicate over the internet The application program 118 shown In Figure 1 is for illustrative purposes. It should be understood that application program 11.6 can comprise a single window or more than two windows.
[0012] In one embodiment, server computer 128 may comprise content database 130, The server computer 128 may be configured to manage content requests from client computer 102. These requests may be generated when application program 116 needs content for proper operation. For example, application program may need to display text during operation and the text may not be available on embedded database 110 at client computer 102. As a result, client computer may send requests to server computer for the necessary content. In one embodiment, server computer 128 may be configured to detect changes in content' in database 130 and to notify client computer 102 of such changes. The
sever computer 128 can notify the client computer Li an asynchronous manne by automatically sending update content to the client computer as soon as there Is a change in content. This can be performed without client computer 102 having to request for the latest content or change in content. The content database 130 comprises first content 112 and second content 114 The content can be in different languages. The first content 112 may comprise content in a first language and second content 114 may comprise content in a second language translated from the first language, In one embodiment, first content may be in the English language and second content may be in the French language. The content in the content database 130 is synchronized with the content in embedded database 110 of the client computer. The content that is sent to client computer 102 Is fully translated In a particular language such as French, The translation of the content is performed at the server computer. In other words, client computer 102 receives fuly translated content from server computer 128, The database 130 shown in Figure 1 is shown for illustrative purpose. It should be understood that content database 130 can comprise more than content 112, 14 and be in different languages
[0013] A single client computer 102 Is shown in system 100. However, it should be understood that the system can employ a plurality of client computers. The client computer can be any electronic device capable of electronic communication over network 128. Likewise, a single server computer 128 is shown in system 100, but It should be understood that the system can employ a plurality of server computers. The network 128 can be any means for allowing electronic communication between electronic devices, in some embodiments, the network can comprise wired or wireless communication means.
[0014] The processor 104 can be a general purpose microprocessor, microcontroller, digital signal processor., etc. configured to execute software programs or computer-executable instructions. The components of a processor are well known in the art and generally include execution units (e.g., integer, fixed point, floating point, etc.), instruction decoding, registers, memories, input/output ports, etc, Interconnected by buses. The memory 106 can include various storage media, for example, magnetic storage (e.g., hard disks, floppy disks,
tape, etc.), optica! storage (e.g.., compact disk, digital video .disk, etc.), or semiconductor memory (e.g., -static or dynamic random-access-memory ("SRAM" or "DRAM"), read-only-memory ("ROM"), FLASH memory, magnetic random access memory fMRA "), etc.). The system 100 includes software programming stored in memory 106 that when executed by processor 104 to control the operation of computer 102.
fOOIS] Some embodiments of client computer 102 can include an inpuVoutput subsystem which can comprise input devices, such as a keyboard, a mouse, etc. Embodiments can also include various input/output sub-systems to implement, for example,, wired and/or wireless networking. In Figure 1, computer 102 Is depicted as general purpose computer, however in practice computer 102 can be any of a variety of electronic devices. For example, computer 102 can be a telephone, personal digital assistant, music player, desktop computer, laptop computer, satellite .navigation- system, gaming system or other device,
[001 SJ Figure 2 shows a flow diagram of a method fo processing conten in a plurality of languages in accordance with various embodiments. The method will -be described with reference to system 100 shown In Figure 1. It should- be understood, that though depicted sequentially as a matter of -convenience, at [east some of the actions shown can be performed in a different order and/or performed in parallel, Additionally, some embodiments may perform only some of the actions shown.
[0017] To illustrate, in one embodiment, it will be assumed that a user is interested In executing application program 118 on client computer. St wi be further assumed that application program 116 Is capable of displaying first content 112 such as text content. It-will be further assumed that first- content 112 Is in the English language and second content 1 14 is in the French language. Further,, the user establishes a network connection over network 126 between client computer 102 and server computer 128. It is also assumed that application program 116 is a word processing program. Of course, the system is configured to operate in. a similar manner when using other programs such as a database program, caiendar program, contact program, spreadsheet program or any othe program.
[0018] At block 200, client computer 102 generates a request for first content 112, In some embodiments, application program 116 may generate the request in response to the user executing application. In one embodiment, application program 118 may require first content 112 because it displays first content as part of its operation, in some embodiments, management module 108 may manage this request for further processing, as explained below.
[00191 At block 202, client computer 102 mav check if first content 112 is stored in embedded database 110 of client computer, in some embodiments, management module 108 may receive the above request and check whether first content in stored In embedded database 110. If management module 108 determines thai first content 112 Is stored in embedded database 110, then processing proceeds to block 204 (as explained below) where the management module retrieves the first content from the embedded database. On the other hand, if first management module 108 determines thai first content 112 is not available in embedded database 110, then processing proceeds to block 206 (as explained below), where the management module generates a request to server computer 128 for first content.
[0020] At block 204, client- computer 102 determines that first content 112 is stored in'-embedded database 110 and proceeds to retrieve first content from the embedded database. In one embodiment, management module 108 retrieves first content 112 and forwards the content to application program 116 for further processing such as display by the application program, Once first content has been forwarded to application program 116, processing proceeds to block 210 (as- explained below), where application program displays first content.
[8021] At- block 208, on the other hand, If client computer 102 determines that first content 112 is not available in embedded database 1 10, then client computer proceeds to generate a request to server computer 128 for first content The server computer may receive the request and proceed to retrieve first content 112 from content database 130 and then send the content back to client computer 102 for further processing. Processing proceeds to block 208 where client computer 102 awaits to receive first content from server computer.
[0022 At block 208, client computer 102 receives first content 112 from server computer 128. In some embodiments, management module 108 may receive first content and then store the received content in embedded database for future use by application program. In one embodiment, the management module 108 may forward the received first content to application program for display by application program. Processing then proceeds to block 210 (as explained below), where application program processes first content
[0023] At block 210, application program 118 displays first content 112 at client computer 102. In one embodiment application program 116 may format the content in a manner consistent with requirements of the program. For example, application program 115 may place the content as part of a Ui element of first window 118. For example, in one embodiment, the content may be placed i a text box object on first window. Once application program 116 displays the content, processing proceeds o block 212 (as explained below) where the client computer proceeds to operate in a normal manner, in some embodiments, client computer may monitor for changes in content, in some embodiments, client computer may be configured to receive changes or updates in content in an asynchronous manner.
[00241 At block 212, server computer 128 may check for changes or updates in second content 114 at content database 130 located at the server. As explained above, client computer 102 may have already received first content 112 from the server. It is assumed, to .illustrate, that first content 112 is in the English language and that second content! 14 is a French language translation of the first content. If there is a change In second content 14, then sen/er computer 128 may send client computer 102 updated first content because there was a change in second content and because second content is a translation of first content Once server computer 128 sends the updated content to client computer 102, processing proceeds to block 214 where client computer proceeds to process the updated content, On the other hand, if there is no change or update in second content, then processing proceeds back to block 212 where the server continues to check for changes in second content it should also be understood, that in addition to checking for changes In second content, server is also checking for changes in
first content If there are changes to first content, server computer may aiso notify client computer of such changes,
[ 025| At block 214, if there is a change in second content, then server computer sends to client computer updated first content. In other words, a change in the French translation of the content has an effect on the English language content. T e client computer Is notified of the change in first content by receiving first content in this manner, client computer is synchronized with changes in content in different languages.
[00261 At block 218, client computer proceeds to display the updated first content at the client computer. In one embodiment, management module 108 may receive the updated first content and store it In embedded content database at client computer, in this manner, client computer may only need to store the latest version of content and not every version of th content This technique may help reduce storage requirements of the client computer,
[0027] Figure 3 shows the operation of the system of Figure i in accordance with at least one embodiment of the invention. To illustrate the operation of the system, in one embodiment, it will, be assumed that a user is interested in executing application program 118 which is configured with first content 112 in the English language, as the default language. The application program 116 may comprise first window 118 and second window 120. Thefirst window 118 may be configured to display first portion 122 of first content and second window 120 may be configured to display second portion 124 of first content. In one embodiment, first window 118 may be configured to display first button 322 and second button 324. The first and second buttons are Ui elements. The buttons are for illustrative purposes. It should be understood thai other Ui elements may be used. The first button 322 is associated with an identifier labeled "W1. Button"! ¾ and the second button 324 is associated with an Identifier labeled "W2.button2K. In one embodiment the first content 122 is organized as table entries with text values and identifiers associated or linked with the corresponding button identifiers, in a similar manner, second window 120 may be configured to display first b ton 326 and second button 328. The first button 326 is associated with an identifier labeled KW2.Button and second button 328 is associated with an
Identifier labeled " 2.buttGn2", The second portion of first content 124 may be organized as table entries with text vaiues and identifiers associated or iinked with the corresponding button identifiers,
|0028J In one embodiment, application program 118 may reside on client computer 102 and coupled to server computer 128 over network 126. it will be further assumed that the user is interested in having the application program display first content in the Engiish language and then having the application program display second content 114 in the French language. It will he further assumed that only first portion 122 of first content Is stored in embedded database 110. In addition, second portion 124 is not stored in embedded database, but rather, resides on the server computer, As a result, as explained below, client. computer 02 may need to request second portion 124 from server computer 128 when the user causes application program to navigate from first window 118 to second window 120. It is also assumed that the user has selected a word processing program as the application program. Of course, the system may he configured to operate in a similar manner when using any other program such as a database program, calendar program, contact spreadsheet or any other program.
[00291 n operation, in one embodiment, the user specifies that the local or default language requirement for the content Is to be In the English language. The client computer 102 may record this Information for later use such as, for example, when it has to determine which language the first content is to be displayed by the application program, The user may proceed to request that client computer 102 execute application program 116. The client computer 102 recognizes that the language preferred by the user is English. The dent computer checks whether first portio of first content 122 is stored in embedded database 110. As explained above, it is assumed thai first portion is stored in embedded database, therefore, there may be no need to send a request to server computer for the first portion. The client computer 102 proceeds to retrieve first portion of the content 122 from the embedded database and forward it to application program (shown by arrow 302). The. application program receives the content and then displays it on first window 118. The client computer 102 may
establish a bind' relationship- between first portion of the content 122 and the embedded database 1 10 on ciient computer 102 and content database 130 on server computer 128. The bind relationship may allow the server computer 128 to notify client computer 02 of any occurrences of changes to the first content, in one embodiment, server computer 128 can notify client computer 102 in an asynchronous manner by automatically sending update content to the client computer as soon as there is a change in content. This Is performed without the client computer having to send a request to the server com uter for changes. For example, If the content *XYZ" is stored at content database and the content changes to "XYYZZ", then the server computer sends the updated content to csient computer. The client computer receives the update content, and may overlay the previous content with the updated content. In addition, client computer 102 may store the updated content in embedded database 110 for subsequent use by application program or for any other purpose.
[0030] The user now proceeds to select second window 120 from program {shown by arrow 304). As explained above, application program 116 includes first window 118 and second window 120. The application program 116 determines that second window 120 requires second portion 124 of first content to be able to operate correctly (shown by arrow 308). Thai is, it needs the content because it displays it are part of operation, it is assumed that second portion 24 of first content is not stored in · mbedded database. As a: result, client computer 102 generates a request to server computer 128 to obtain second portion 124 of the first content (shown by arrow 308). The server computer 128 receives the request and proceeds to retrieve second portion. Once the server computer finds second portion, it sends the content to the client computer. The client computer 102 receives the second portion (shown by arrow 310) and stores it in embedded database110. The client computer forwards the content to application program 1 18 which may proceed to display it on second windows 120 (shown by arrow 312), In addition, as explained above with respect to the bind relationship with first window 118, client computer 102 also establishes a bind relationship between the second portion 124 of the first content and the embedded database on ciient computer and content database on server computer 128. As explained
above, this bind relationship allows- the server computer to notify the client computer of any changes to the first content.
[G031J In other embodiment, continuing with Figure 3, to further Illustrate, it will be assumed that the user is now interested in having the application program display content in a second language such as French. This is represented as first portion of second content 132 and second portion of second content 134. This content Is stored in content database 130 of server computer 128 and not in embedded database 110 at client computer 102. As explained above, client computer 102 established a bind operation between first content in the embedded database and content database in server computer. As a result, the user request to have application program display French content causes the client computer to automatically request the French content. Once client- computer 102 receives this content it may establish a bind operation between second content 114 (first and second portions) in embedded database 110 in client computer and content database 130 in server computer 128. In this manner, the bind relationship may allow the server computer to notify the client computer of any changes to the second content. This may be beneficial when an application program has a plurality .of Ul elements- comprised of language content text or images and the developer of the application desires to minimize the installation size of the application program. That is, only the content needed by the application during execution is stored on client computer thereby minimizing the storage requirements of the client computer.
[0032] In othe embodiment, continuing with Figure 3, to further Illustrate, it will be assumed that first content 1 2 (including portions 122 and 124) is in the English language and stored in embedded database 110 upo installation of the application program. In other words, the English language content is installed' in the client computer as default content for the application program. In operation, the user then desires to have the application program display content in the French language. Since the French content is not stored In the embedded database, the client computer sends the server computer a request for the French content The client computer receives the French content from the server content and stores it in embedded database. The client computer may establish
a bind operation between French content in the embedded database 110 in client computer and content database 130 In server computer. In this manner, the bind relations ip allows the server computer to notify the client computer of any changes to the second content. This is a beneficial when the developer of the application program sets the default content to be in English language on the client computer and when a network connection is not available. When a network connection between the client computer and the server computer becomes available, the client computer can request that the French content be sent or downloaded and synchronized between the embedded database on the client computer and the content database on the server computer.
[00331 In. some embodiments, the system 1Q0. of Figure 1 can provide advantages. Fo example, the relevant localized content may be stored in the embedded database at the client computer. The content may be accessed at the client computer on an on-demand basis and synchronized automatically with production localized content at the server computer. This system may red ce the work needed In maintaining the client computer synchronized with latest localization updates and also reduce the content deployment size of the application program.
[0034]; in some embodiment, the system 100 of Figure 1 may be used to improve the language translation process. For example, the system may be able reduc the latency .between the time English content is produced for the application program and the time for the generation/update of corresponding translated content As developers- add new content for the application program, translators may be notified of the changes, and start working on the translation of text and content. As they translate and submit their deliverable, content reviewers may be notified in order to review the content and approve the final content. The tasks between adding content for translation and reviewing the content may occur in a semi-parallel fashion. This may improve and minimize the latency between content addition and translation. The translators may be in lock- ste with the development team in translation. There may also be a virtual barrier between the deliverables of each team. The developers may not be affected as the content is translated in parallel and approved.
[0 3S] In some embodiments,, the system 100 of Figure i may be configured to operate, in part, according to the Synchronization Framework from Microsoft <t>. The system may comprise two types of databases. First, a production localized main content database may be used to store main localized content after going through a review/approval cycle. The cycle may comprise review and approval of content. Second, a working localized content database may be used to store relevant content tables (e.g., English/Spanish/ete...) from the main database. The content of ihe working database may also form the content of the embedded database at the client computer. The server computer may include a translator editor application which may include an Inbox filled with translation tasks. The translation tasks may arrive at the Inbo every time there is an update In the database or a modified/new content for the application .program. The system .may includ a runtime component which may provide conflict resolution and auto- update features when performing translation tasks on the working- database. The system may include a sync service provider component which can be used to synchronize local replica of desired fable with other replicas.
[0036] .In some embodiments, the system may provide for synchronization sessions wherein a destination provider is connected with the source provider to synchronize items changed In source replica. During, synchronization, the working database may provide its current knowledge, accept a list of changes from the production database, detect an conflicts between that list and its own Items, and appl changes to its data store. The production database source may use the working database replica's (destination) current knowledge to determine which changes are in its replica that the working database replica does not know about, and send the list- of changes to the provider at the destination. The system may inclisde metadata which represents information about replicas and items. This information may be used to track the knowledge that each replica contains so that synchronization can be performed. The system may Include a review workflow component which ma provide an automated review and approval process configured to send the relevant sync updates before committing the final information to the production database. The system may Include a synchronization proxy provider component to send commands and metadata over
the network to the remote provider. A proxy component may provide an interface between a remote deployed client provider and the production database,
[00371 A e client computer, a user may be able to launch an application and specify the current locale, such as, for example, Spanish. This may cause the system to connect to the production database at the server and request for the Spanish content table. At the client computer, a relatively small embedded database may be created which includes the latest updates, A synchronization table may be created only for the Spanish locale with the content (e.g., images, XML, and so on) as needed. The user may be provided wit an option to change locale settings, For example,, the user may be abie to specify the current local to be the United States (for example, English language). Once this is done, the sync service provider component at the client computer may contact tie remote synchronization proxy provider component at the production server computer for the English content table. As a result, an English sync table may be created In the embedded database at the client computer. The metadata-store may recognize that it may need to keep track of changes in production .server and that It may be responsible for updating the embedded database.
[0038] There may be several means of synchronizing updates between the embedded database at the client computer and the production database at the server computer. In one embodiment, the system can employ a one-way synchronization technique, wherein the relevant updates from the production database at the server computer are synchronized with the embedded database at the client computer. The embedded database may be provided by SQL Server compact and the synchronization process can be handled by the Framework, There may be several ways to configure how frequent the information in the production database is to be tracked. For example, the system ma use inline tracking techniques where updates to the database are synchronized immediately and /or in real-time. In another example, the system may employ asynchronous tracking where an external process can be used for performing change tracking in a periodic manner. In one embodiment, asynchronous tracking may be beneficial because it may reduce the impact on the performance of an application program. The application program may be configured to read content from the embedded
database based on the locale, in one embodiment, the application program can be configured to use LING to SQL or ADO.net services. A library may be provided for the interaction layer between the application and the Framework. The library' can be used in Extensible Application Markup Language (XAML) as a markup extension for easier maintainability.
|G03SJ The following is a description of the system from the perspective of different users of the system, !n one embodiment, for example, from the perspective of a developer of content, it wi be assumed that the developer is starting to develop code or content for a new component or III element. The developer may use an editor program to develo the new component. Based on selected locale (for example, master locale - English) in debug configuration, the corresponding synchronization table from the server may be downloaded. The database schema In the production database may be pre-determined and designed beforehand. The developer may add text/content for the application using identifiers and add text values into the embedded database using for example, SQL management studio. Once this work is complete, a service component asynchronously synchronizes the dat from the embedded database to the production database after the relevant code review automated workflow. $040]' A description is now provided from the perspective of a translator. In" one embodiment, once the new master locale (English) content/ text is added in the production database at the server, a sen/ice component sends notification to relevant (or subscribed) locale translator's Inbox. The translator may have an embedded database with a relevant locale synchronization table. The translator may perform the translation work and the service may synchronize with: the production database after review/approval cycle automated workflow. In one embodiment, the text may be machine translated before the text is sent to the translator's Inbox in order to minimize the translation time required.
[0041] A description is now provided from the perspective of a content reviewer. In one embodiment after the work goes through an automated review and approval cycle, the end-of-day's translation work is rerouted to all reviewers. Each reviewer may have the relevant synchronization table for viewing and
approving the content Once approved, the final text/content may be committed and recorded to the production database at the server.
[0042] A description is now provided from the perspective of the user or consumer. In one embodiment, the relevant locate embedded database may be installed onto the client computer before the computer is shipped, in this scenario, the client computer may not require a network connection, at least, not initially. The relevant database may go through an on-demand synchronization process with the production database when the user goes through an initial setup stage at the client computer. In this scenario, the client computer may require a network connection initially, A service component running in the client computer may synchronously synchronize with the production database at the sever computer when changes in text occur at the server.
J0Q43] Embodiments of the present invention may provide o or more advantages. In one embodiment, the system may include one file which has the translated content for all country and languages. The system may not require separate folders for resource files having translated content information for each country and language. This may reduce the storage requirements of the system. In one embodiment the 'system may provide content and resources at the server and only require that the relevant content and resources be downloaded to the client computer. This may help minimize the hard disk footprint of localized content in the client computer. The system may not require that ail the content translation and resources be i the client computer. This may help decrease the installation size of the software at the client computer. In one embodiment, the system may reduce the time between software development and translation activities. This ma enable easier maintenance and process flow from developers to content translators. In one embodiment the system may provide automatic synchronization of content of the embedded database which enables the client computer to be up-to-date with content changes in the production database at the server. The system can reduce the need for storage by only storing content that has been requested by the application or necessary for the operation of the application program.
16
[00441 As noted above, embodiments within the scope of the present invention may include program products comprising computer-readable media fo carrying or having computer-executable instructions or data structures stored thereon. Such computer-readable media can be any available media thai can be accessed by a general purpose or special purpose computer. By way of example, such computer-readable media can comprise RAM, ROM, EP O , EEPRO , CD- ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to carry or store desired program code in the form of computer-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer. When information is transferred or provided over a network or another communications connection (either hardwired, wireless, or a combination of hardwired or wireless) to a computer, the computer properly views the connection as a computer-readable medium. Thus, any such connection is properly termed a computer-readable medium. Combinations of t e above are also to be included within the scope of computer-readable media. Computer-executable instructions comprise, for example, instructions and data which cause a general purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions.
[0O45J Some embodiments of the invention are described in the general context of method steps, which may be implemented In one embodiment by a program product including computer-executable instructions, such as program code, executed by computers in networked, environments. Generally,, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Computer- executable Instructions, associated data structures, and program modules represent examples of program code for executing steps of the methods disclosed herein. The particular sequence of such executable instructions or associated data structures represents examples of corresponding acts for implementing the functions described In such steps.
[GG4S] The present invention, in some embodiments, may be operated in a networked environment using logical connections to one or more remote
computers having processors. Logical connections may include a local area network (LAN) and a wide area network (WAN) that are presented here by way of example and not limitation. Such networking environments are commonplace in office-wide or enterprise-wide computer networks, intranets and the internet. Those skilled in the art will appreciate that such network computing environments will typically encompass many types of computer system configurations, including personal computers, hand-held devices, multi-processor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, and the like. The present subject matter may also be practiced in distributed computing environments where tasks ar performed by local and remote processing devices that are linked (either by hardwired links, wireless links, or by a combination of hardwired or wireless links) through a communications ..network. In a distributed computing environment, program modules may be located In both local and remote memory storage devices.
[004?] An exemplar system for implementing the overall system or portions of the present disclosure might include a general purpose computing device in the form of a conventional computer, including a processing unit, a system memory, and a system bus that couples various system components including the system memory to. the processing unit. The system memory may include read only memory {ROM) and random access memor (RAM). The computer may also include a magnetic hard disk drive for reading from and writing to a magnetic hard disk, a magnetic disk drive for reading from or writing to a removable magnetic disk, and an optical disk drive for reading from or writing to removable optical disk such as a CD-ROM or other optical media. The drives and their associated computer-readable media provide nonvolatile storag of computer-executable instructions, data structures, program modules and other data for the computer.
[0048] Software and web implementations of the present disclosure could be accomplished with standard programming techniques with rule based logic- and other logic to accomplish the various database searching steps, correlation steps, comparison steps and decision steps It should also be noted that the word "component" as used herein and in the claims is intended to encompass
implementations using one or more lines of software code, and/or hardware implementations, and/or equipment for receiving manual inputs.
00491 The foregoing description of embodiments of the present invention has been presented for purposes of illustration and description, it is not intended to be exhaustive or to limit the Invention to the precise form disclosed, and modifications and variations are possible in light of the above teachings or may be acquired from practice of the invention. The embodiments were chosen and described in order to explain the principals of the Invention and Its practical application to enable one skilled in the art to utilize the invention In various embodiments and with various modifications as are suited to the particular use contemplated .
fOOSO] The above discussion is meant to be illustrative of the principles and various- embodiments of t e present disclosure. Numerous variations and modifications will become apparent to those skilled in the art once the above disclosure is fully appreciated. For example although the illustrative embodiments of the present disclosure are shown and described within the context of a single computer, the functionality: of the single computer could be distributed over a plurality of computers, it is intended that the following claims be interpreted to embrace ail such variations and modifications.
Claims
1. A client computer to process content in a plurality of languages comprising:
an embedded database for storage and retrieval of content in a plurality languages, wherein first content is in a first language and second content is content in a second language translated from the first language; and
a content management module configured to;
generate a request to a server computer for the first content, if the first content is not stored In the embedded database, and
automatically receive from the server computer updated first content, .if there is a change in the second content.
2. The client computer of claim 1 further comprising instructions to:
display a first portion of the first content on a first window of the application program at the client computer;
receive a request to display a second portion of the first content on a second window of the application program; and
generate, by the application program at the client computer, a request to the server computer for the second portion of the first content, if the second portion Is not stored in the embedded database of the client computer.
3. The client computer of claim 1 further comprising instructions to;
automatically receive from the server computer the updated first content In the first language, If there is a change In the first- content at the se wer.
4. The client computer of claim 1 further comprising Instructions to:
store the first content In the embedded database at the client computer; retrieve the first content from the embedded database at the client computer; display the first content on a. window of the application program at the client computer; and
overlay the displayed first content with the updated first content
5. A method of processing content in a plurality of languages, the method comprising;
generating, by an application program at a client computer, a request to a server computer for first content which is in a first language, if the first content is not .stored in an embedded database of the client com puter; and
automatically receiving from the server computer updated first content in the first language, if there, is a change in second content which is content in a second language translated from the first language.
8. The method of claim 5 further comprising:
displaying a first portion of the first content on a first window of the application program at the client computer;
receiving a request to display a second portion of the first content on a second window of the application program; and
generating, by the application program at the client computer, a request to the server computer for the second portion of the first content, if the second portion is not stored in the embedded database of the client computer,
7. The method' of claim .5 further comprising:
automatically receiving from the server computer updated first content in the first language, if there is a change in the first content at the server,
8. The method of claim 5 further comprising:
storing the first content in the embedded database at the client computer; retrieving the first content from the embedded database at the client computer;
displaying the first content on a window of the application program at the client computer; and 2Z overlaying the displayed first content with the updated first content
9. The method of claim 5 further comprising;
automatically generate a request to the server computer for second content, if the second content is not stored in the embedded database.
10. A computer-readable medium having stored thereon instructions to be executed, the instructions, when executed by a processor, cause the processor to:
generate a request to a server computer for the first content, if the first content Is not stored in the embedded database; and
automaticall -receive from the server computer updated first content in the first language, if there is a change in second content which is content in a second language translated from the -first language.
11. The computer-readable medium of claim 10, further comprising instructions, which when executed by the process, cause the processor to;
display a first portion of the first content on a first window of the application program at the client computer;
receive a request to display a second portion of the first content on an second window of the application program; and
generate, by the application program at the client computer, a request to the -server computer for the second portion of the first content, if the second portion is not stored In the embedded database of the client computer,
12. The computer-readable medium of claim 10, further comprising instructions, which when executed by the process, cause the processor to;
automatically receive from the ser/er computer updated first content in 'the first language, if there is a change in the first content at the server,
13. The computer-readable medium of claim -10, further comprising instructions, which when executed 'by the process, cause the processor to: store the first content In the embedded database at the client computer; and
retrieve the first content from the embedded database at the client computer;
display the first content on a window of the application program oat the client computer; and
overlay the displayed first content with the updated first content.
14. The computer-readable medium of claim 10, further comprising instructions, which when executed by the process, cause the processor to:
store the first content In the data ase of the client computer; and retrieve the first content from the database of the client computer.
15. The computer-readable medium of claim 10, furthe comprising instructions, which when executed by the process, cause the processor to:
update the displayed first content with the updated content by overlaying the displayed first content with the update first content.
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US13/639,506 US8862661B2 (en) | 2010-04-29 | 2010-04-29 | Processing content in a plurality of languages |
| PCT/US2010/032874 WO2011136768A1 (en) | 2010-04-29 | 2010-04-29 | Processing content in a plurality of languages |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/US2010/032874 WO2011136768A1 (en) | 2010-04-29 | 2010-04-29 | Processing content in a plurality of languages |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2011136768A1 true WO2011136768A1 (en) | 2011-11-03 |
Family
ID=44861808
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/US2010/032874 Ceased WO2011136768A1 (en) | 2010-04-29 | 2010-04-29 | Processing content in a plurality of languages |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US8862661B2 (en) |
| WO (1) | WO2011136768A1 (en) |
Families Citing this family (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20110289424A1 (en) * | 2010-05-21 | 2011-11-24 | Microsoft Corporation | Secure application of custom resources in multi-tier systems |
| US9519642B2 (en) | 2013-02-28 | 2016-12-13 | Open Text Sa Ulc | System, method and computer program product for multilingual content management |
| US9906615B1 (en) * | 2013-02-28 | 2018-02-27 | Open Text Sa Ulc | System and method for selective activation of site features |
| US9723541B2 (en) * | 2014-02-25 | 2017-08-01 | Microsoft Technology Licensing, Llc | Priority access to a priority access channel |
| US20160225016A1 (en) * | 2015-01-30 | 2016-08-04 | Amrish Patel | Advertisement-Based Gaming System And Method |
| US10685006B2 (en) * | 2016-10-21 | 2020-06-16 | Open Text Sa Ulc | Content management system and method for synchronizing content translations |
| US12118981B2 (en) * | 2021-09-15 | 2024-10-15 | Google Llc | Determining multilingual content in responses to a query |
| US12437094B2 (en) * | 2021-09-17 | 2025-10-07 | Salesforce, Inc. | Access controls for external data records |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20020103632A1 (en) * | 2001-01-31 | 2002-08-01 | International Business Machines Corporation | Method, program, and tool for updating the national language versions of documents |
| US20030140316A1 (en) * | 1998-02-23 | 2003-07-24 | David Lakritz | Translation management system |
| US20060210026A1 (en) * | 2005-03-18 | 2006-09-21 | Microsoft Corporation | Dynamic multilingual resource support for applications |
Family Cites Families (17)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| AU7511794A (en) * | 1993-12-22 | 1995-07-10 | Taligent, Inc. | Input methods framework |
| US5392386A (en) * | 1994-02-03 | 1995-02-21 | Inter Hi-Tec Ag | Method and apparatus for adding functionality to computer programs executing under graphical user interfaces |
| US5974372A (en) * | 1996-02-12 | 1999-10-26 | Dst Systems, Inc. | Graphical user interface (GUI) language translator |
| US8489980B2 (en) * | 1998-02-23 | 2013-07-16 | Transperfect Global, Inc. | Translation management system |
| US6092036A (en) * | 1998-06-02 | 2000-07-18 | Davox Corporation | Multi-lingual data processing system and system and method for translating text used in computer software utilizing an embedded translator |
| AU2001249777A1 (en) * | 2000-03-31 | 2001-10-15 | Amikai, Inc. | Method and apparatus for providing multilingual translation over a network |
| CN1391180A (en) * | 2001-06-11 | 2003-01-15 | 国际商业机器公司 | Auxiliary foreign language writing methods and tools |
| US7340388B2 (en) * | 2002-03-26 | 2008-03-04 | University Of Southern California | Statistical translation using a large monolingual corpus |
| US7383542B2 (en) * | 2003-06-20 | 2008-06-03 | Microsoft Corporation | Adaptive machine translation service |
| US7539619B1 (en) * | 2003-09-05 | 2009-05-26 | Spoken Translation Ind. | Speech-enabled language translation system and method enabling interactive user supervision of translation and speech recognition accuracy |
| US7318020B1 (en) * | 2003-10-08 | 2008-01-08 | Microsoft Corporation | Methods and systems for external localization |
| DE10348920A1 (en) * | 2003-10-21 | 2005-05-25 | Bayer Materialscience Ag | Computer system and method for multilingual associative search |
| WO2007133625A2 (en) * | 2006-05-12 | 2007-11-22 | Eij Group Llc | Multi-lingual information retrieval |
| US7983897B2 (en) * | 2007-02-14 | 2011-07-19 | Google Inc. | Machine translation feedback |
| US8473276B2 (en) * | 2008-02-19 | 2013-06-25 | Google Inc. | Universal language input |
| US8635539B2 (en) * | 2008-10-31 | 2014-01-21 | Microsoft Corporation | Web-based language translation memory compilation and application |
| US20110282647A1 (en) * | 2010-05-12 | 2011-11-17 | IQTRANSLATE.COM S.r.l. | Translation System and Method |
-
2010
- 2010-04-29 US US13/639,506 patent/US8862661B2/en not_active Expired - Fee Related
- 2010-04-29 WO PCT/US2010/032874 patent/WO2011136768A1/en not_active Ceased
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20030140316A1 (en) * | 1998-02-23 | 2003-07-24 | David Lakritz | Translation management system |
| US20020103632A1 (en) * | 2001-01-31 | 2002-08-01 | International Business Machines Corporation | Method, program, and tool for updating the national language versions of documents |
| US20060210026A1 (en) * | 2005-03-18 | 2006-09-21 | Microsoft Corporation | Dynamic multilingual resource support for applications |
Also Published As
| Publication number | Publication date |
|---|---|
| US20130031166A1 (en) | 2013-01-31 |
| US8862661B2 (en) | 2014-10-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8869097B2 (en) | Online integrated development environment with code assist | |
| US8862661B2 (en) | Processing content in a plurality of languages | |
| US11126671B2 (en) | Serializing plug-in data in a web page | |
| US11080493B2 (en) | Translation review workflow systems and methods | |
| US8924943B2 (en) | Browser emulator system | |
| Taivalsaari et al. | Web browser as an application platform | |
| CN108984170B (en) | H5 page multilingual rendering method and device | |
| US8161498B2 (en) | Providing globalization functionalities for javascript applications | |
| US8281283B2 (en) | Model-based integration of business logic implemented in enterprise javabeans into a UI framework | |
| US8347287B2 (en) | System and method for localizing a server application using a client-side translator | |
| US8219526B2 (en) | Synchronizing file partitions utilizing a server storage model | |
| Patel | Analyzing the impact of Next. JS on site performance and SEO | |
| US9798522B2 (en) | Generating command line interface using application programming interface specification | |
| US9069829B2 (en) | Data items manager | |
| US8516041B1 (en) | Pre-fetching asynchronously requested content | |
| US8346869B2 (en) | Granular data synchronization for editing multiple data objects | |
| US20060117257A1 (en) | System and method for processing JavaScript resource files | |
| US20140331127A1 (en) | Template based copy and paste function | |
| CN112835568A (en) | A project construction method and device | |
| US20250342035A1 (en) | Systems and methods for providing interactive software-development links via user interfaces | |
| WO2021146640A1 (en) | Automated creation and deployment of websites | |
| US10114617B2 (en) | Rapid visualization rendering package for statistical programming language | |
| US9703848B2 (en) | Caching linked queries for optimized compliance management | |
| CN112738550A (en) | Content data processing method and device, electronic equipment and medium | |
| CN120909587A (en) | Micro front end application operation method, apparatus, device, storage medium and program product |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 10850861 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 13639506 Country of ref document: US |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 10850861 Country of ref document: EP Kind code of ref document: A1 |